{
  "openapi": "3.0.1",
  "info": {
    "title": "Checkout.com API Reference",
    "description": "## Get started\nCheckout.com provides a collection of APIs that enable you to integrate with our various products and services.\nOur 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.\n[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.\nFor more information, see:\n\n - [API endpoints](https://www.checkout.com/docs/developer-resources/api/api-endpoints)\n - [API rate limits](https://www.checkout.com/docs/developer-resources/api/api-rate-limits)\n - [API changes](https://www.checkout.com/docs/developer-resources/api/api-changes)\n - [Idempotency](https://www.checkout.com/docs/developer-resources/api/idempotency)\n - [Private connections](https://www.checkout.com/docs/developer-resources/api/private-connections)\n\n## Base URLs\nThe base URLs you must use for your API calls to the sandbox and production environments are unique to you.\n\n - `https://{prefix}.api.sandbox.checkout.com/{path}`\n - `https://{prefix}.api.checkout.com/{path}`\n - `https://{prefix}.access.sandbox.checkout.com/{path}`\n - `https://{prefix}.access.checkout.com/{path}`\n\nThe 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.\nThe `{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.\nTo find your unique base URL:\n1. Sign in to the Dashboard environment you want to retrieve the base URL for:\n\n    - [Sandbox](https://dashboard.sandbox.checkout.com)\n    - [Production](https://dashboard.checkout.com)\n\n2. Go to _Developers_ > _Overview_.  \n Your unique base URL is displayed on the _Developer overview_ page. For example, `https://vkuhvk4v.api.checkout.com`.\n\n3. Alternatively, go to _Settings_ > _Account details_.  \n Your unique base URL is displayed under _Connection settings_.\n\nIf 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).\nFor more information, see [API endpoints](https://www.checkout.com/docs/developer-resources/api/api-endpoints).\n## Authentication\nWhen you sign up for an account, you can authenticate with either Access keys (OAuth 2.0), or Secret API keys.\nUnless 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.\n\n - **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.\n\n - **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.\n\nNever share your OAuth credentials, API keys, or access tokens. Keep them guarded and secure.\n<SecurityDefinitions />\n",
    "termsOfService": "https://www.checkout.com/legal/terms-and-policies",
    "contact": {
      "name": "Checkout.com Support",
      "url": "https://dashboard.checkout.com/support"
    },
    "version": "v1.0.0"
  },
  "servers": [
    {
      "url": "https://{prefix}.api.sandbox.checkout.com",
      "description": "Sandbox environment",
      "variables": {
        "prefix": {
          "default": "{prefix}",
          "description": "Your unique <a href=\"https://www.checkout.com/docs/developer-resources/api/api-endpoints\" target=\"_blank\">base URL</a>. There is no default value."
        }
      }
    },
    {
      "url": "https://{prefix}.api.checkout.com",
      "description": "Production environment",
      "variables": {
        "prefix": {
          "default": "{prefix}",
          "description": "Your unique <a href=\"https://www.checkout.com/docs/developer-resources/api/api-endpoints\" target=\"_blank\">base URL</a>. There is no default value."
        }
      }
    }
  ],
  "paths": {
    "/account-updater/cards": {
      "post": {
        "tags": [
          "Standalone Account Updater"
        ],
        "summary": "Get updated card credentials",
        "description": "Retrieve updated card credentials. <p/> \nThe following card schemes are supported: \n\n- Mastercard\n- Visa\n- American Express\n",
        "operationId": "RetrieveUpdatedCardDetails",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AccountUpdaterRequest"
              },
              "examples": {
                "card_source": {
                  "summary": "Using card details as source",
                  "value": {
                    "source_options": {
                      "card": {
                        "number": 5436424242424242,
                        "expiry_month": 5,
                        "expiry_year": 2025
                      }
                    }
                  }
                },
                "instrument_source": {
                  "summary": "Using instrument ID as source",
                  "value": {
                    "source_options": {
                      "instrument": {
                        "id": "src_nmukohhu7vbe5f55ndwqzwv2c4"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Request was successful, updated card info is available in the response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountUpdaterResponse"
                },
                "examples": {
                  "card_updated": {
                    "summary": "Successful card update",
                    "value": {
                      "account_update_status": "CARD_UPDATED",
                      "card": {
                        "encrypted_card_number": "3nCryp73dFPANv4lu3",
                        "bin": 543642,
                        "last4": 4242,
                        "expiry_month": 5,
                        "expiry_year": 2025,
                        "fingerprint": "abc123fingerprint"
                      }
                    }
                  },
                  "card_closed": {
                    "summary": "Failed update due to card closed",
                    "value": {
                      "account_update_status": "CARD_CLOSED"
                    }
                  },
                  "card_expiry_updated": {
                    "summary": "Successful card expiry update",
                    "value": {
                      "account_update_status": "CARD_EXPIRY_UPDATED",
                      "card": {
                        "encrypted_card_number": "3nCryp73dFPANv4lu3",
                        "bin": 543642,
                        "last4": 4242,
                        "expiry_month": 5,
                        "expiry_year": 2025,
                        "fingerprint": "abc123fingerprint"
                      }
                    }
                  },
                  "update_failed": {
                    "summary": "Failure to retrieve updated credentials",
                    "value": {
                      "account_update_status": "UPDATE_FAILED",
                      "account_update_failure_code": "UP_TO_DATE"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Not authorized to perform this action"
          },
          "404": {
            "description": "Not Found"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          },
          "502": {
            "description": "Bad Gateway error"
          }
        },
        "security": [
          {
            "OAuth": [
              "vault:real-time-account-updater"
            ]
          }
        ]
      }
    },
    "/accounts/entities": {
      "post": {
        "tags": [
          "Onboarding",
          "Platforms"
        ],
        "summary": "Onboard an entity",
        "description": "Onboard an entity so they can start using Checkout services.",
        "operationId": "onboardEntity",
        "requestBody": {
          "description": "The entity to be onboarded. Use the relevant format for the platform type, region and payload version.",
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/USISVSellerCompany3-0"
                  },
                  {
                    "$ref": "#/components/schemas/USISVSellerSoleTrader3-0"
                  },
                  {
                    "$ref": "#/components/schemas/GBCompanyFull3-0"
                  },
                  {
                    "$ref": "#/components/schemas/EEACompanyFull3-0"
                  },
                  {
                    "$ref": "#/components/schemas/USCompanyFull3-0"
                  },
                  {
                    "$ref": "#/components/schemas/GBCompanyFull2-0"
                  },
                  {
                    "$ref": "#/components/schemas/EEACompanyFull2-0"
                  },
                  {
                    "$ref": "#/components/schemas/USCompanyFull2-0"
                  },
                  {
                    "$ref": "#/components/schemas/GBCompanyLite2-0"
                  },
                  {
                    "$ref": "#/components/schemas/EEACompanyLite2-0"
                  },
                  {
                    "$ref": "#/components/schemas/USCompanyLite2-0"
                  },
                  {
                    "$ref": "#/components/schemas/GBSoleTraderFull3-0"
                  },
                  {
                    "$ref": "#/components/schemas/EEASoleTraderFull3-0"
                  },
                  {
                    "$ref": "#/components/schemas/USSoleTraderFull3-0"
                  },
                  {
                    "$ref": "#/components/schemas/GBSoleTraderFull2-0"
                  },
                  {
                    "$ref": "#/components/schemas/EEASoleTraderFull2-0"
                  },
                  {
                    "$ref": "#/components/schemas/USSoleTraderFull2-0"
                  },
                  {
                    "$ref": "#/components/schemas/GBSoleTraderLite2-0"
                  },
                  {
                    "$ref": "#/components/schemas/EEASoleTraderLite2-0"
                  },
                  {
                    "$ref": "#/components/schemas/USSoleTraderLite2-0"
                  },
                  {
                    "$ref": "#/components/schemas/PlatformsHostedOnboardInviteRequest"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Entity onboarded successfully",
            "headers": {
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              },
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "title": "Company - Platform (3.0)"
                        },
                        {
                          "$ref": "#/components/schemas/EntityBasicResponseWithLinksV3"
                        }
                      ]
                    },
                    {
                      "allOf": [
                        {
                          "title": "Company - Platform (2.0)"
                        },
                        {
                          "$ref": "#/components/schemas/EntityBasicResponseWithLinksV2"
                        }
                      ]
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "409": {
            "description": "Entity onboarding request conflicted with an existing entity",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EntityLinks"
                }
              }
            }
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ValidationError"
                    }
                  ]
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth": [
              "accounts"
            ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\nusing Checkout.Accounts;\nusing Checkout.Common;\n\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.Accounts)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\nOnboardEntityRequest request = new OnboardEntityRequest\n{\n    Reference = \"reference\",\n    ContactDetails = new ContactDetails {Phone = new AccountPhone {Number = \"2345678910\"}},\n    Profile =\n        new Profile\n        {\n            Urls = new List<string> {\"https://www.superheroexample.com\"},\n            Mccs = new List<string> {\"5311\"}\n        },\n    Individual = new Individual\n    {\n        FirstName = \"FirstName\",\n        LastName = \"LastName\",\n        TradingName = \"John's Super Hero Masks\",\n        RegisteredAddress = new Address\n        {\n            AddressLine1 = \"123 High St.\",\n            AddressLine2 = \"Flat 456\",\n            City = \"London\",\n            State = \"GB\",\n            Zip = \"SW1A 1AA\",\n            Country = CountryCode.GB\n        },\n        NationalTaxId = \"TAX123456\",\n        DateOfBirth = new DateOfBirth {Day = 5, Month = 6, Year = 1995},\n        Identification = new Identification {NationalIdNumber = \"AB123456C\"}\n    }\n};\n\ntry\n{\n    OnboardEntityResponse response = await api.AccountsClient().CreateEntity(request);\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/accounts\"\n\t\"github.com/checkout/checkout-sdk-go/common\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Accounts}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nrequest := accounts.OnboardEntityRequest{\n\tReference: \"reference\",\n\tContactDetails: &accounts.ContactDetails{\n\t\tPhone: &accounts.Phone{Number: \"4155552671\"},\n\t},\n\tProfile: &accounts.Profile{\n\t\tUrls: []string{\"https://docs.checkout.com/1\", \"https://docs.checkout.com/2\"},\n\t\tMccs: []string{\"0742\"},\n\t},\n\tIndividual: &accounts.Individual{\n\t\tFirstName:     \"FirstName\",\n\t\tMiddleName:    \"\",\n\t\tLastName:      \"LastName\",\n\t\tTradingName:   \"TradingName\",\n\t\tNationalTaxId: \"TAX123456\",\n\t\tRegisteredAddress: &common.Address{\n\t\t\tAddressLine1: \"123 High St.\",\n\t\t\tAddressLine2: \"Flat 456\",\n\t\t\tCity:         \"London\",\n\t\t\tState:        \"GB\",\n\t\t\tZip:          \"SW1A 1AA\",\n\t\t\tCountry:      common.GB,\n\t\t},\n\t\tDateOfBirth: &accounts.DateOfBirth{\n\t\t\tDay:   5,\n\t\t\tMonth: 6,\n\t\t\tYear:  1990,\n\t\t},\n\t\tIdentification: &accounts.Identification{\n\t\t\tNationalIdNumber: \"AB123456C\",\n\t\t\tDocument: &accounts.Document{\n\t\t\t\tFront: \"number\",\n\t\t\t\tBack:  \"number\",\n\t\t\t},\n\t\t},\n\t},\n}\n\nresponse, err := api.Accounts.CreateEntity(request)\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\nimport com.checkout.accounts.AccountPhone;\nimport com.checkout.accounts.ContactDetails;\nimport com.checkout.accounts.DateOfBirth;\nimport com.checkout.accounts.Document;\nimport com.checkout.accounts.DocumentType;\nimport com.checkout.accounts.Identification;\nimport com.checkout.accounts.Individual;\nimport com.checkout.accounts.OnboardEntityRequest;\nimport com.checkout.accounts.OnboardEntityResponse;\nimport com.checkout.accounts.Profile;\nimport com.checkout.common.Address;\nimport com.checkout.common.CountryCode;\n\n// OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.ACCOUNTS) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\nOnboardEntityRequest onboardEntityRequest = OnboardEntityRequest.builder()\n    .reference(\"reference\")\n    .contactDetails(ContactDetails.builder()\n        .phone(AccountPhone.builder().number(\"2345678910\").build())\n        .build())\n    .profile(Profile.builder()\n        .urls(Arrays.asList(\"https://docs.checkout.com/1\", \"https://docs.checkout.com/2\"))\n        .mccs(Collections.singletonList(\"0742\"))\n        .build())\n    .individual(Individual.builder()\n        .firstName(\"FirstName\")\n        .lastName(\"LastName\")\n        .tradingName(\"TradingName\")\n        .registeredAddress(Address.builder()\n            .addressLine1(\"123 High St.\")\n            .addressLine1(\"Flat 456\")\n            .city(\"London\")\n            .state(\"GB\")\n            .zip(\"SW1A 1AA\")\n            .country(CountryCode.GB)\n            .build())\n        .nationalTaxId(\"TAX123456\")\n        .dateOfBirth(DateOfBirth.builder()\n            .day(5)\n            .month(6)\n            .year(1990)\n            .build())\n        .identification(Identification.builder()\n            .nationalIdNumber(\"AB123456C\")\n            .document(Document.builder()\n                .back(\"number\")\n                .front(\"number\")\n                .type(DocumentType.DRIVING_LICENSE)\n                .build())\n            .build())\n        .build())\n    .build();\n\ntry {\n    OnboardEntityResponse response = api.accountsClient().createEntity(onboardEntityRequest).get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\Accounts\\ContactDetails;\nuse Checkout\\Accounts\\DateOfBirth;\nuse Checkout\\Accounts\\Identification;\nuse Checkout\\Accounts\\Individual;\nuse Checkout\\Accounts\\OnboardEntityRequest;\nuse Checkout\\Accounts\\Profile;\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Common\\Address;\nuse Checkout\\Common\\Country;\nuse Checkout\\Common\\Phone;\nuse Checkout\\Environment;\nuse Checkout\\OAuthScope;\n\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Accounts])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\n$address = new Address();\n$address->address_line1 = \"123 High St.\";\n$address->address_line2 = \"Flat 456\";\n$address->city = \"London\";\n$address->State = \"GB\";\n$address->zip = \"SW1A 1AA\";\n$address->country = Country::$GB;\n\n$phone = new Phone();\n$phone->country_code = \"+1\";\n$phone->number = \"415 555 2671\";\n\n$dateOfBirth = new DateOfBirth();\n$dateOfBirth->day = 5;\n$dateOfBirth->month = 6;\n$dateOfBirth->year = 1996;\n\n$identification = new Identification();\n$identification->national_id_number = \"AB123456C\";\n\n$request = new OnboardEntityRequest();\n$request->reference = uniqid();\n$request->contact_details = new ContactDetails();\n$request->contact_details->phone = $phone;\n$request->profile = new Profile();\n$request->profile->urls = array(\"https://www.superheroexample.com\");\n$request->profile->mccs = array(\"0742\");\n$request->individual = new Individual();\n$request->individual->first_name = \"Bruce\";\n$request->individual->last_name = \"Wayne\";\n$request->individual->trading_name = \"Batman's Super Hero Masks\";\n$request->individual->registered_address = $address;\n$request->individual->national_tax_id = \"TAX123456\";\n$request->individual->date_of_birth = $dateOfBirth;\n$request->individual->identification = $identification;\n\ntry {\n    $response = $api->getAccountsClient()->createEntity($request);\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.accounts.accounts import OnboardEntityRequest, ContactDetails, Profile, Individual, DateOfBirth, Identification\nfrom checkout_sdk.common.common import Phone, Address\nfrom checkout_sdk.common.enums import Country\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\n\n# OAuth\noauth = (\n    CheckoutSdk.builder()\n    .oauth()\n    .client_credentials('client_id', 'client_secret')\n    .environment(Environment.sandbox()) # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.ACCOUNTS])\n    .build()\n)\n\nphone = Phone()\nphone.country_code = '44'\nphone.number = '4155552671'\n\naddress = Address()\naddress.address_line1 = '123 High St.'\naddress.address_line2 = 'Flat 456'\naddress.city = 'London'\naddress.state = 'GB'\naddress.zip = 'SW1A 1AA'\naddress.country = Country.GB\n\nrequest = OnboardEntityRequest()\nrequest.reference = 'reference'\nrequest.contact_details = ContactDetails()\nrequest.contact_details.phone = phone\nrequest.profile = Profile()\nrequest.profile.urls = ['https://docs.checkout.com/url']\nrequest.profile.mccs = ['0742']\nrequest.individual = Individual()\nrequest.individual.first_name = 'First'\nrequest.individual.last_name = 'Last'\nrequest.individual.trading_name = \"Batman's Super Hero Masks\"\nrequest.individual.registered_address = address\nrequest.individual.national_tax_id = 'TAX123456'\nrequest.individual.date_of_birth = DateOfBirth()\nrequest.individual.date_of_birth.day = 5\nrequest.individual.date_of_birth.month = 6\nrequest.individual.date_of_birth.year = 1996\nrequest.individual.identification = Identification()\nrequest.individual.identification.national_id_number = 'AB123456C'\n\ntry:\n    response = api.accounts.create_entity(request)\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n    # Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n    # Invalid authorization"
          }
        ]
      },
      "parameters": [
        {
          "name": "Accept",
          "in": "header",
          "description": "Used to describe the type of content the client can interpret.\nUse the schema_version value to specify the payload format. The latest version is 3.0.",
          "required": true,
          "style": "simple",
          "schema": {
            "type": "string"
          },
          "example": "application/json;schema_version=3.0"
        }
      ]
    },
    "/accounts/entities/{entityId}/members": {
      "get": {
        "tags": [
          "Platforms"
        ],
        "summary": "Get sub-entity Members",
        "description": "<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>\nRetrieve 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.\n\nTo enable the Hosted Onboarding feature, contact your Account Manager.\n",
        "operationId": "getSubEntityMembers",
        "responses": {
          "200": {
            "description": "Sub-Entity member retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformsHostedOnboardGetMembers"
                },
                "examples": {
                  "Get Members": {
                    "value": {
                      "data": [
                        {
                          "user_id": "usr_eyk754cqieqexfh6u46no5nnha"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Sub-entity not found"
          }
        },
        "security": [
          {
            "OAuth": [
              "accounts"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "parameters": [
        {
          "name": "entityId",
          "in": "path",
          "description": "The ID of the sub-entity",
          "required": true,
          "style": "simple",
          "schema": {
            "type": "string"
          },
          "example": "ent_w4jelhppmfiufdnatam37wrfc4"
        }
      ]
    },
    "/accounts/entities/{entityId}/members/{userId}": {
      "put": {
        "tags": [
          "Platforms"
        ],
        "summary": "Reinvite a sub-entity member",
        "description": "<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>\nResend 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.\n\nTo enable the Hosted Onboarding feature, contact your Account Manager.\n",
        "operationId": "reinviteSubEntityMembers",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlatformsHostedOnboardReinviteRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Sub-entity member retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformsHostedOnboardReinviteResponse"
                },
                "examples": {
                  "Get Members": {
                    "value": {
                      "id": "usr_eyk754cqieqexfh6u46no5nnha"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Sub-entity not found"
          }
        },
        "security": [
          {
            "OAuth": [
              "accounts"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "parameters": [
        {
          "name": "entityId",
          "in": "path",
          "description": "The ID of the sub-entity",
          "required": true,
          "style": "simple",
          "schema": {
            "type": "string"
          },
          "example": "ent_w4jelhppmfiufdnatam37wrfc4"
        },
        {
          "name": "userId",
          "in": "path",
          "description": "The ID of the invited user.",
          "required": true,
          "style": "simple",
          "schema": {
            "type": "string"
          },
          "example": "usr_eyk754cqieqexfh6u46no5nnha"
        }
      ]
    },
    "/accounts/entities/{entityId}/payment-instruments/{id}": {
      "get": {
        "tags": [
          "Payment instruments"
        ],
        "summary": "Get payment instrument details",
        "description": "Retrieve the details of a specific payment instrument used for sub-entity payouts.",
        "operationId": "getPlatformsPaymentInstrument",
        "responses": {
          "200": {
            "description": "Payment instrument details",
            "headers": {
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              },
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformsPaymentInstrumentRead"
                },
                "examples": {
                  "BankAccount": {
                    "value": {
                      "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"
                    }
                  },
                  "CardToken": {
                    "value": {
                      "id": "ppi_cwfekfw2d7mmcto5ql4lpjgrxq",
                      "instrument_id": "src_jpu3ev6prk7utb5jonqgvvsshm",
                      "label": "Carol's Card",
                      "country": "GB",
                      "currency": "GBP",
                      "status": "verified",
                      "type": "card_token"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "OAuth": [
              "accounts"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Accounts}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nresponse, err := api.Accounts.RetrievePaymentInstrumentDetails(\"entity_id\", \"payment_instrument_id\")\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          }
        ]
      },
      "patch": {
        "tags": [
          "Payment instruments"
        ],
        "summary": "Update payment instrument details",
        "description": "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.",
        "operationId": "updatePlatformsPaymentInstrument",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlatformsPaymentInstrumentUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Payment instrument updated successfully",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/EntityLinks"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "example": "ppi_qn4nis4k3ykpzzu7cvtuvhqqga"
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "422": {
            "description": "Unprocessable entity",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            }
          },
          "428": {
            "description": "Precondition required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PreconditionRequiredError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth": [
              "accounts"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/accounts\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Accounts}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nrequest := accounts.UpdatePaymentInstrumentRequest{\n\tLabel:   \"Peter's Personal Account\",\n\tDefault: true,\n}\n\nresponse, err := api.Accounts.UpdatePaymentInstrumentDetails(\"entity_id\", \"payment_instrument_id\", request)\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          }
        ]
      },
      "parameters": [
        {
          "name": "entityId",
          "in": "path",
          "description": "The sub-entity's ID.",
          "required": true,
          "style": "simple",
          "schema": {
            "type": "string"
          },
          "example": "ent_w4jelhppmfiufdnatam37wrfc4"
        },
        {
          "name": "id",
          "in": "path",
          "description": "The payment instrument's ID.",
          "required": true,
          "style": "simple",
          "schema": {
            "type": "string"
          },
          "example": "ppi_qn4nis4k3ykpzzu7cvtuvhqqga"
        }
      ]
    },
    "/accounts/entities/{entityId}/reserve-rules/{id}": {
      "get": {
        "tags": [
          "platforms",
          "Reserve rules"
        ],
        "summary": "Get reserve rule details",
        "description": "Retrieve the details of a specific reserve rule.",
        "operationId": "getReserveRule",
        "responses": {
          "200": {
            "description": "Reserve rule details.",
            "headers": {
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              },
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "ETag": {
                "description": "Identifies the current version of the reserve rule.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReserveRuleReadResponse"
                },
                "examples": {
                  "RollingReserveRule": {
                    "value": {
                      "id": "rsv_qn4nis4k3ykpzzu7cvtuvhqqga",
                      "type": "rolling",
                      "valid_from": "2001-01-01T13:33:00.0000000+00:00",
                      "rolling": {
                        "percentage": 10,
                        "holding_duration": {
                          "weeks": 2
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "OAuth": [
              "accounts"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "put": {
        "tags": [
          "platforms",
          "Reserve rules"
        ],
        "summary": "Update reserve rule",
        "description": "Update an upcoming reserve rule. Only reserve rules that have never been active can be updated.",
        "operationId": "updateReserveRule",
        "parameters": [
          {
            "name": "If-Match",
            "in": "header",
            "description": "Identifies a specific version of a reserve rule to update.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "Y3Y9MCZydj0w"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReserveRuleUpdateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Reserve rule updated successfully.",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              },
              "ETag": {
                "description": "Identifies a specific version of a reserve rule.",
                "schema": {
                  "type": "string"
                },
                "example": "Y3Y9MCZydj0w"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReserveRuleWriteResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "412": {
            "description": "Precondition failed. An invalid ETag value was provided in the If-Match header."
          },
          "422": {
            "description": "Unprocessable entity",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            }
          },
          "428": {
            "description": "Precondition required. The If-Match header is required.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PreconditionRequiredError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth": [
              "accounts"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "parameters": [
        {
          "name": "entityId",
          "in": "path",
          "description": "The sub-entity's ID.",
          "required": true,
          "style": "simple",
          "schema": {
            "type": "string"
          },
          "example": "ent_w4jelhppmfiufdnatam37wrfc4"
        },
        {
          "name": "id",
          "in": "path",
          "description": "The reserve rule ID.",
          "required": true,
          "style": "simple",
          "schema": {
            "type": "string"
          },
          "example": "rsv_qn4nis4k3ykpzzu7cvtuvhqqga"
        }
      ]
    },
    "/accounts/entities/{id}": {
      "get": {
        "tags": [
          "Onboarding",
          "Platforms"
        ],
        "summary": "Get entity details",
        "description": "Use this endpoint to retrieve an entity and its full details.",
        "operationId": "getEntityDetails",
        "responses": {
          "200": {
            "description": "Entity retrieved successfully",
            "headers": {
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              },
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/GBCompanyFull3-0"
                    },
                    {
                      "$ref": "#/components/schemas/EEACompanyFull3-0"
                    },
                    {
                      "$ref": "#/components/schemas/USCompanyFull3-0"
                    },
                    {
                      "$ref": "#/components/schemas/GBCompanyFull2-0"
                    },
                    {
                      "$ref": "#/components/schemas/EEACompanyFull2-0"
                    },
                    {
                      "$ref": "#/components/schemas/USCompanyFull2-0"
                    },
                    {
                      "$ref": "#/components/schemas/GBCompanyLite2-0"
                    },
                    {
                      "$ref": "#/components/schemas/EEACompanyLite2-0"
                    },
                    {
                      "$ref": "#/components/schemas/USCompanyLite2-0"
                    },
                    {
                      "$ref": "#/components/schemas/GBSoleTraderFull3-0"
                    },
                    {
                      "$ref": "#/components/schemas/EEASoleTraderFull3-0"
                    },
                    {
                      "$ref": "#/components/schemas/USSoleTraderFull3-0"
                    },
                    {
                      "$ref": "#/components/schemas/GBSoleTraderFull2-0"
                    },
                    {
                      "$ref": "#/components/schemas/EEASoleTraderFull2-0"
                    },
                    {
                      "$ref": "#/components/schemas/USSoleTraderFull2-0"
                    },
                    {
                      "$ref": "#/components/schemas/GBSoleTraderLite2-0"
                    },
                    {
                      "$ref": "#/components/schemas/EEASoleTraderLite2-0"
                    },
                    {
                      "$ref": "#/components/schemas/USSoleTraderLite2-0"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Entity not found"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ValidationError"
                    }
                  ]
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth": [
              "accounts"
            ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\nusing Checkout.Accounts;\n\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.Accounts)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\ntry\n{\n    OnboardEntityDetailsResponse response = await api.AccountsClient().GetEntity(\"entity_id\");\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Accounts}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nresponse, err := api.Accounts.GetEntity(\"entity_id\")\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\nimport com.checkout.accounts.OnboardEntityDetailsResponse;\n\n// OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.ACCOUNTS) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\ntry {\n    OnboardEntityDetailsResponse response = api.accountsClient().getEntity(\"entity_id\").get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Environment;\nuse Checkout\\OAuthScope;\n\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Accounts])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\ntry {\n    $response = $api->getAccountsClient()->getEntity(\"entity_id\");\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\n\n# OAuth\noauth = (\n    CheckoutSdk.builder()\n    .oauth() \n    .client_credentials('client_id', 'client_secret') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.ACCOUNTS]) \n    .build()\n)\n\ntry:\n    response = api.accounts.get_entity('entity_id')\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n    # Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n    # Invalid authorization"
          }
        ]
      },
      "put": {
        "tags": [
          "Onboarding",
          "Platforms"
        ],
        "summary": "Update entity details",
        "description": "Update an entity.\n\n**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.\n",
        "operationId": "updateEntityDetails",
        "requestBody": {
          "description": "The entity to be updated. Use the relevant format for the platform type, region and payload version.",
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/USISVSellerCompany3-0"
                  },
                  {
                    "$ref": "#/components/schemas/USISVSellerSoleTrader3-0"
                  },
                  {
                    "$ref": "#/components/schemas/GBCompanyFull3-0"
                  },
                  {
                    "$ref": "#/components/schemas/EEACompanyFull3-0"
                  },
                  {
                    "$ref": "#/components/schemas/USCompanyFull3-0"
                  },
                  {
                    "$ref": "#/components/schemas/GBCompanyFull2-0"
                  },
                  {
                    "$ref": "#/components/schemas/EEACompanyFull2-0"
                  },
                  {
                    "$ref": "#/components/schemas/USCompanyFull2-0"
                  },
                  {
                    "$ref": "#/components/schemas/GBCompanyLite2-0"
                  },
                  {
                    "$ref": "#/components/schemas/EEACompanyLite2-0"
                  },
                  {
                    "$ref": "#/components/schemas/USCompanyLite2-0"
                  },
                  {
                    "$ref": "#/components/schemas/GBSoleTraderFull3-0"
                  },
                  {
                    "$ref": "#/components/schemas/EEASoleTraderFull3-0"
                  },
                  {
                    "$ref": "#/components/schemas/USSoleTraderFull3-0"
                  },
                  {
                    "$ref": "#/components/schemas/GBSoleTraderFull2-0"
                  },
                  {
                    "$ref": "#/components/schemas/EEASoleTraderFull2-0"
                  },
                  {
                    "$ref": "#/components/schemas/USSoleTraderFull2-0"
                  },
                  {
                    "$ref": "#/components/schemas/GBSoleTraderLite2-0"
                  },
                  {
                    "$ref": "#/components/schemas/EEASoleTraderLite2-0"
                  },
                  {
                    "$ref": "#/components/schemas/USSoleTraderLite2-0"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Entity updated successfully",
            "headers": {
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              },
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/EntityBasicResponseWithLinksV3"
                    },
                    {
                      "$ref": "#/components/schemas/EntityBasicResponseWithLinksV2"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Entity not found"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ValidationError"
                    }
                  ]
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth": [
              "accounts"
            ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\nusing Checkout.Accounts;\nusing Checkout.Common;\n\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.Accounts)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\nOnboardEntityRequest request = new OnboardEntityRequest\n{\n    Reference = \"reference\",\n    ContactDetails = new ContactDetails {Phone = new AccountPhone {Number = \"2345678910\"}},\n    Profile =\n        new Profile\n        {\n            Urls = new List<string> {\"https://www.superheroexample.com\"},\n            Mccs = new List<string> {\"5311\"}\n        },\n    Individual = new Individual\n    {\n        FirstName = \"FirstName\",\n        LastName = \"LastName\",\n        TradingName = \"John's Super Hero Masks\",\n        RegisteredAddress = new Address\n        {\n            AddressLine1 = \"123 High St.\",\n            AddressLine2 = \"Flat 456\",\n            City = \"London\",\n            State = \"GB\",\n            Zip = \"SW1A 1AA\",\n            Country = CountryCode.GB\n        },\n        NationalTaxId = \"TAX123456\",\n        DateOfBirth = new DateOfBirth {Day = 5, Month = 6, Year = 1995},\n        Identification = new Identification {NationalIdNumber = \"AB123456C\"}\n    }\n};\n\ntry\n{\n    OnboardEntityResponse response = await api.AccountsClient().UpdateEntity(\"entity_id\", request);\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/accounts\"\n\t\"github.com/checkout/checkout-sdk-go/common\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Accounts}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nrequest := accounts.OnboardEntityRequest{\n\tReference: \"reference\",\n\tContactDetails: &accounts.ContactDetails{\n\t\tPhone: &accounts.Phone{Number: \"4155552671\"},\n\t},\n\tProfile: &accounts.Profile{\n\t\tUrls: []string{\"https://docs.checkout.com/1\", \"https://docs.checkout.com/2\"},\n\t\tMccs: []string{\"0742\"},\n\t},\n\tIndividual: &accounts.Individual{\n\t\tFirstName:     \"FirstName\",\n\t\tMiddleName:    \"\",\n\t\tLastName:      \"LastName\",\n\t\tTradingName:   \"TradingName\",\n\t\tNationalTaxId: \"TAX123456\",\n\t\tRegisteredAddress: &common.Address{\n\t\t\tAddressLine1: \"123 High St.\",\n\t\t\tAddressLine2: \"Flat 456\",\n\t\t\tCity:         \"London\",\n\t\t\tState:        \"GB\",\n\t\t\tZip:          \"SW1A 1AA\",\n\t\t\tCountry:      common.GB,\n\t\t},\n\t\tDateOfBirth: &accounts.DateOfBirth{\n\t\t\tDay:   5,\n\t\t\tMonth: 6,\n\t\t\tYear:  1990,\n\t\t},\n\t\tIdentification: &accounts.Identification{\n\t\t\tNationalIdNumber: \"AB123456C\",\n\t\t\tDocument: &accounts.Document{\n\t\t\t\tFront: \"number\",\n\t\t\t\tBack:  \"number\",\n\t\t\t},\n\t\t},\n\t},\n}\n\nresponse, err := api.Accounts.UpdateEntity(\"entity_id\", request)\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\nimport com.checkout.accounts.AccountPhone;\nimport com.checkout.accounts.ContactDetails;\nimport com.checkout.accounts.DateOfBirth;\nimport com.checkout.accounts.Document;\nimport com.checkout.accounts.DocumentType;\nimport com.checkout.accounts.Identification;\nimport com.checkout.accounts.Individual;\nimport com.checkout.accounts.OnboardEntityRequest;\nimport com.checkout.accounts.OnboardEntityResponse;\nimport com.checkout.accounts.Profile;\nimport com.checkout.common.Address;\nimport com.checkout.common.CountryCode;\n\n// OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.ACCOUNTS) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\nOnboardEntityRequest request = OnboardEntityRequest.builder()\n    .reference(\"reference\")\n    .contactDetails(ContactDetails.builder()\n    .phone(AccountPhone.builder().number(\"415 555 2671\").build())\n    .build())\n    .profile(Profile.builder()\n        .urls(Collections.singletonList(\"https://docs.checkout.com\"))\n        .mccs(Collections.singletonList(\"0742\"))\n        .build())\n    .individual(Individual.builder()\n        .firstName(\"FirstName\")\n        .lastName(\"LastName\")\n        .tradingName(\"Trading\")\n        .registeredAddress(Address.builder()\n            .addressLine1(\"123 High St.\")\n            .addressLine1(\"Flat 456\")\n            .city(\"London\")\n            .state(\"GB\")\n            .zip(\"SW1A 1AA\")\n            .country(CountryCode.GB)\n            .build())\n        .nationalTaxId(\"TAX123456\")\n        .dateOfBirth(DateOfBirth.builder()\n            .day(5)\n            .month(6)\n            .year(1995)\n            .build())\n        .identification(Identification.builder()\n            .nationalIdNumber(\"AB123456C\")\n            .document(Document.builder()\n                .back(\"number\")\n                .front(\"number\")\n                .type(DocumentType.PASSPORT)\n                .build())\n            .build())\n        .build())\n    .build();\n\ntry {\n    OnboardEntityResponse response = api.accountsClient().updateEntity(request, \"entity_id\").get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\Accounts\\ContactDetails;\nuse Checkout\\Accounts\\DateOfBirth;\nuse Checkout\\Accounts\\Identification;\nuse Checkout\\Accounts\\Individual;\nuse Checkout\\Accounts\\OnboardEntityRequest;\nuse Checkout\\Accounts\\Profile;\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Common\\Address;\nuse Checkout\\Common\\Country;\nuse Checkout\\Common\\Phone;\nuse Checkout\\Environment;\nuse Checkout\\OAuthScope;\n\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Accounts])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\n$address = new Address();\n$address->address_line1 = \"123 High St.\";\n$address->address_line2 = \"Flat 456\";\n$address->city = \"London\";\n$address->State = \"GB\";\n$address->zip = \"SW1A 1AA\";\n$address->country = Country::$GB;\n\n$phone = new Phone();\n$phone->country_code = \"+1\";\n$phone->number = \"415 555 2671\";\n\n$dateOfBirth = new DateOfBirth();\n$dateOfBirth->day = 5;\n$dateOfBirth->month = 6;\n$dateOfBirth->year = 1996;\n\n$identification = new Identification();\n$identification->national_id_number = \"AB123456C\";\n\n$request = new OnboardEntityRequest();\n$request->reference = uniqid();\n$request->contact_details = new ContactDetails();\n$request->contact_details->phone = $phone;\n$request->profile = new Profile();\n$request->profile->urls = array(\"https://www.superheroexample.com\");\n$request->profile->mccs = array(\"0742\");\n$request->individual = new Individual();\n$request->individual->first_name = \"Bruce\";\n$request->individual->last_name = \"Wayne\";\n$request->individual->trading_name = \"Batman's Super Hero Masks\";\n$request->individual->registered_address = $address;\n$request->individual->national_tax_id = \"TAX123456\";\n$request->individual->date_of_birth = $dateOfBirth;\n$request->individual->identification = $identification;\n\ntry {\n    $response = $api->getAccountsClient()->updateEntity($request);\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.accounts.accounts import OnboardEntityRequest, ContactDetails, Profile, Individual, DateOfBirth, Identification\nfrom checkout_sdk.common.common import Phone, Address\nfrom checkout_sdk.common.enums import Country\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\n\n# OAuth\noauth = (\n    CheckoutSdk.builder()\n    .oauth() \n    .client_credentials('client_id', 'client_secret') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.ACCOUNTS]) \n    .build()\n)\n\nphone = Phone()\nphone.country_code = '44'\nphone.number = '4155552671'\n\naddress = Address()\naddress.address_line1 = '123 High St.'\naddress.address_line2 = 'Flat 456'\naddress.city = 'London'\naddress.state = 'GB'\naddress.zip = 'SW1A 1AA'\naddress.country = Country.GB\n\nrequest = OnboardEntityRequest()\nrequest.reference = 'reference'\nrequest.contact_details = ContactDetails()\nrequest.contact_details.phone = phone\nrequest.profile = Profile()\nrequest.profile.urls = ['https://docs.checkout.com/url']\nrequest.profile.mccs = ['0742']\nrequest.individual = Individual()\nrequest.individual.first_name = 'First'\nrequest.individual.last_name = 'Last'\nrequest.individual.trading_name = \"Batman's Super Hero Masks\"\nrequest.individual.registered_address = address\nrequest.individual.national_tax_id = 'TAX123456'\nrequest.individual.date_of_birth = DateOfBirth()\nrequest.individual.date_of_birth.day = 5\nrequest.individual.date_of_birth.month = 6\nrequest.individual.date_of_birth.year = 1996\nrequest.individual.identification = Identification()\nrequest.individual.identification.national_id_number = 'AB123456C'\n\ntry:\n    response = api.accounts.update_entity(\"entity_id\", request)\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n    # Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n    # Invalid authorization"
          }
        ]
      },
      "parameters": [
        {
          "name": "Accept",
          "in": "header",
          "description": "Used to describe the type of content the client can interpret.\nUse the schema_version value to specify the payload format. The latest version is 3.0.",
          "required": true,
          "style": "simple",
          "schema": {
            "type": "string"
          },
          "example": "application/json;schema_version=3.0"
        },
        {
          "name": "id",
          "in": "path",
          "description": "The ID of the entity.",
          "required": true,
          "style": "simple",
          "schema": {
            "type": "string"
          },
          "example": "ent_w4jelhppmfiufdnatam37wrfc4"
        }
      ]
    },
    "/accounts/entities/{id}/business-details": {
      "get": {
        "tags": [
          "Business details"
        ],
        "summary": "Get a sub-entity's business details",
        "description": "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>.\n\nBusiness 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.\n\nTo 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.",
        "operationId": "getSubEntitysBusinessDetails",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The sub-entity's ID.",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            },
            "example": "ent_w4jelhppmfiufdnatam37wrfc4"
          },
          {
            "name": "status",
            "in": "query",
            "description": "The version of the sub-entity's business details to return. `status` selects which values are returned, but does not filter them.\n\nUse `active` to retrieve the values currently in effect. This shows you the values a pending change would replace once approved.\n\nUse `pending` to retrieve the values submitted in a change that is still under review. The request returns `404` if no change is under review.\n\nIf you omit this parameter and a change is under review, the endpoint returns the `pending` values. Otherwise, it returns the `active` values.",
            "allowEmptyValue": true,
            "style": "form",
            "explode": false,
            "schema": {
              "enum": [
                "active",
                "pending"
              ],
              "type": "string"
            },
            "example": "active"
          }
        ],
        "responses": {
          "200": {
            "description": "Business details retrieved successfully",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "title": "Company",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/BusinessDetailsCompany"
                        }
                      ]
                    },
                    {
                      "title": "Sole trader",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/BusinessDetailsSoleTrader"
                        }
                      ]
                    }
                  ]
                },
                "examples": {
                  "Active": {
                    "summary": "Active business details",
                    "value": {
                      "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"
                      ]
                    }
                  },
                  "Pending": {
                    "summary": "Pending business details, with the submitted documents",
                    "value": {
                      "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"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Sub-entity not found, or the sub-entity has no business details"
          },
          "422": {
            "description": "Invalid data sent"
          },
          "429": {
            "description": "Too many requests"
          }
        },
        "security": [
          {
            "OAuth": [
              "accounts"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "put": {
        "tags": [
          "Business details"
        ],
        "summary": "Update a sub-entity's business details",
        "description": "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>.\n\nThis 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.\n\nYou 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.\n\nYou 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.\n\nSome 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.\n\nYou 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.",
        "operationId": "putSubEntitysBusinessDetails",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The sub-entity's ID.",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            },
            "example": "ent_w4jelhppmfiufdnatam37wrfc4"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "title": "Company",
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/BusinessDetailsCompany"
                      }
                    ]
                  },
                  {
                    "title": "Sole trader",
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/BusinessDetailsSoleTrader"
                      }
                    ]
                  }
                ]
              },
              "examples": {
                "Company": {
                  "summary": "Company",
                  "value": {
                    "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"
                      }
                    }
                  }
                },
                "SoleTrader": {
                  "summary": "Sole trader",
                  "value": {
                    "trading_name": "The Online Retail Shop",
                    "principal_address": {
                      "address_line1": "123 Anywhere St.",
                      "city": "Anytown",
                      "zip": "12345-6789",
                      "country": "US",
                      "address_line2": "Apt. 456",
                      "state": "AL"
                    },
                    "additional_trading_names": [
                      "Online Retailer Co"
                    ],
                    "documents": {
                      "company_verification": {
                        "type": "incorporation_document",
                        "front": "file_wxglze3wwywujg4nna5fb7ldli"
                      },
                      "proof_of_principal_address": {
                        "type": "proof_of_address",
                        "front": "file_6lbss42ezvoufcb2beo76rvwly"
                      }
                    }
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Change submitted successfully and is now under review",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "title": "Company",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/BusinessDetailsCompany"
                        }
                      ]
                    },
                    {
                      "title": "Sole trader",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/BusinessDetailsSoleTrader"
                        }
                      ]
                    }
                  ]
                },
                "examples": {
                  "Pending": {
                    "summary": "Change submitted for review",
                    "value": {
                      "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"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Sub-entity not found, or the sub-entity has no business details"
          },
          "409": {
            "description": "A change to the sub-entity's business details is already under review. You can have only one at a time",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                },
                "example": {
                  "request_id": "0HL80RJLS76I7",
                  "error_type": "conflict",
                  "error_codes": [
                    "Entity already has a pending update."
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Unable to process the request. A field is invalid or missing, is not part of this resource, or was changed without its supporting document",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                },
                "example": {
                  "request_id": "0HL80RJLS76I7",
                  "error_type": "invalid_request",
                  "error_codes": [
                    "'trading_name' is invalid.",
                    "'business_type' is not part of this resource."
                  ]
                }
              }
            }
          },
          "429": {
            "description": "Too many requests"
          },
          "502": {
            "description": "We could not validate the change because an upstream service was unavailable. No change was created, so you can retry the request"
          }
        },
        "security": [
          {
            "OAuth": [
              "accounts"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      }
    },
    "/accounts/entities/{id}/payment-instruments": {
      "post": {
        "tags": [
          "Payment instruments"
        ],
        "summary": "Add a payment instrument",
        "description": "Create a bank account payment instrument for your sub-entity. You can use this payment instrument as a payout destination.",
        "operationId": "addPlatformsPaymentInstrument",
        "requestBody": {
          "description": "A JSON payload containing the payment instrument details.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlatformsPaymentInstrumentCreate"
              },
              "examples": {
                "FasterPaymentsBankAccount": {
                  "value": {
                    "label": "Bob's Bank Account",
                    "type": "bank_account",
                    "currency": "GBP",
                    "country": "GB",
                    "instrument_details": {
                      "account_number": 12345678,
                      "bank_code": 50389
                    },
                    "document": {
                      "type": "bank_statement",
                      "file_id": "file_wxglze3wwywujg4nna5fb7ldli"
                    }
                  }
                },
                "SepaBankAccount": {
                  "value": {
                    "label": "Bruno's Bank Account",
                    "type": "bank_account",
                    "currency": "EUR",
                    "country": "FR",
                    "instrument_details": {
                      "iban": "FR1420041010050500013M02606,",
                      "swift_bic": "LZSKFR2E98I"
                    },
                    "document": {
                      "type": "bank_statement",
                      "file_id": "file_wxglze3wwywujg4nna5fb7ldli"
                    }
                  }
                },
                "AchBankAccount": {
                  "value": {
                    "label": "Alex's Bank Account",
                    "type": "bank_account",
                    "currency": "USD",
                    "country": "US",
                    "instrument_details": {
                      "account_number": 12345100,
                      "routing_number": 26009593,
                      "account_type": "savings"
                    },
                    "document": {
                      "type": "bank_statement",
                      "file_id": "file_wxglze3wwywujg4nna5fb7ldli"
                    }
                  }
                },
                "CardToken": {
                  "value": {
                    "label": "Carol's Card",
                    "type": "card_token",
                    "currency": "GBP",
                    "instrument_details": {
                      "token": "tok_ru6xnh53uovethkr2gy3gwpl2a"
                    }
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "headers": {
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              },
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "example": "ppi_qn4nis4k3ykpzzu7cvtuvhqqga"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ValidationError"
                    }
                  ]
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth": [
              "accounts"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/accounts\"\n\t\"github.com/checkout/checkout-sdk-go/common\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n\t\"github.com/checkout/checkout-sdk-go/instruments\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Accounts}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nrequest := accounts.PaymentInstrumentRequest{\n\tLabel:              \"Bob's Bank Account\",\n\tType:               instruments.BankAccount,\n\tCurrency:           common.GBP,\n\tCountry:            common.GB,\n\tDefaultDestination: true,\n\tDocument: &accounts.InstrumentDocument{\n\t\tType:   \"document\",\n\t\tFileId: \"file\",\n\t},\n\tInstrumentDetails: &accounts.InstrumentDetailsFasterPayments{\n\t\tAccountNumber: \"123456789\",\n\t\tBankCode:      \"bank_code\",\n\t},\n}\n\nresponse, err := api.Accounts.CreatePaymentInstrument(\"entity_id\", request)\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          }
        ]
      },
      "get": {
        "tags": [
          "Payment instruments"
        ],
        "summary": "Query payment instruments",
        "description": "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.",
        "operationId": "queryPlatformsPaymentInstruments",
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/PlatformsPaymentInstrumentStatus"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              },
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformsPaymentInstrumentQuery"
                },
                "examples": {
                  "BankAccounts": {
                    "value": {
                      "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"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "OAuth": [
              "accounts"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/accounts\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n)\n\n// API Keys\napi, err := checkout.\n\tBuilder().\n\tStaticKeys().\n\tWithSecretKey(\"secret_key\").\n\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\tBuilder().\n\tOAuth().\n\tWithClientCredentials(\"client_id\", \"client_secret\").\n\tWithScopes([]string{configuration.Accounts}).\n\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nquery := accounts.PaymentInstrumentsQuery{Status: \"pending\"}\n\nresponse, err := api.Accounts.QueryPaymentInstruments(\"entity_id\", query)\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          }
        ]
      },
      "parameters": [
        {
          "name": "id",
          "in": "path",
          "description": "The sub-entity's ID.",
          "required": true,
          "style": "simple",
          "schema": {
            "type": "string"
          },
          "example": "ent_w4jelhppmfiufdnatam37wrfc4"
        }
      ]
    },
    "/accounts/entities/{id}/payout-schedules": {
      "get": {
        "tags": [
          "Payout schedules"
        ],
        "summary": "Retrieve a sub-entity's payout schedule",
        "description": "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.",
        "operationId": "getSubEntitysPayoutSchedule",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the sub-entity",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            },
            "example": "ent_w4jelhppmfiufdnatam37wrfc4"
          }
        ],
        "responses": {
          "200": {
            "description": "Schedule retrieved successfully",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "title": "Standard",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/GetScheduleResponse"
                        }
                      ]
                    },
                    {
                      "title": "SaaS seller",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/GetScheduleResponseIsv"
                        }
                      ]
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized."
          },
          "404": {
            "description": "Sub-entity not found, or scheduled payouts are not available to the sub-entity."
          },
          "422": {
            "description": "Invalid data sent."
          },
          "429": {
            "description": "Too many requests."
          }
        },
        "security": [
          {
            "OAuth": [
              "accounts"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\nusing Checkout.Accounts.Payout.Response;\n\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.Accounts)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\ntry\n{\n    GetScheduleResponse response = await api.AccountsClient().RetrievePayoutSchedule(\"entity_id\");\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Accounts}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nresponse, err := api.Accounts.RetrievePayoutSchedule(\"entity_id\")\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\nimport com.checkout.accounts.payout.schedule.response.GetScheduleResponse;\n\n// OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.ACCOUNTS) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\ntry {\n    GetScheduleResponse response = api.accountsClient().retrievePayoutSchedule(\"entity_id\").get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Environment;\nuse Checkout\\OAuthScope;\n\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Accounts])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\ntry {\n    $response = $api->getAccountsClient()->retrievePayoutSchedule(\"entity_id\");\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\n\n# OAuth\noauth = (\n    CheckoutSdk.builder()\n    .oauth() \n    .client_credentials('client_id', 'client_secret') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.ACCOUNTS]) \n    .build()\n)\n\ntry:\n    response = api.accounts.retrieve_payout_schedule(\"entity_id\")\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n    # Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n    # Invalid authorization"
          }
        ]
      },
      "put": {
        "tags": [
          "Payout schedules"
        ],
        "summary": "Update a sub-entity's payout schedule",
        "description": "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.",
        "operationId": "putSubEntitysPayoutSchedule",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the sub-entity",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            },
            "example": "ent_w4jelhppmfiufdnatam37wrfc4"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "title": "Standard",
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/UpdateScheduleRequest"
                      }
                    ]
                  },
                  {
                    "title": "SaaS seller",
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/UpdateScheduleRequestIsv"
                      }
                    ]
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Schedule updated successfully",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EntityLinks"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "422": {
            "description": "Unprocessable entity",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            }
          },
          "429": {
            "description": "Too many requests"
          }
        },
        "security": [
          {
            "OAuth": [
              "accounts"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\nusing Checkout.Accounts.Payout;\nusing Checkout.Accounts.Payout.Request;\nusing Checkout.Common;\n\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.Accounts)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\nUpdateScheduleRequest scheduleRequest = new UpdateScheduleRequest\n{\n    Enabled = true,\n    Threshold = 1000,\n    Recurrence =\n        new ScheduleFrequencyWeeklyRequest {ByDay = new[] {DaySchedule.Sunday, DaySchedule.Monday}}\n};\n\ntry\n{\n    EmptyResponse emptyResponse = await api.AccountsClient().UpdatePayoutSchedule(\"entity_id\", Currency.USD, scheduleRequest);\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/accounts\"\n\t\"github.com/checkout/checkout-sdk-go/common\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Accounts}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nrequest := accounts.CurrencySchedule{\n\tEnabled:    true,\n\tThreshold:  1000,\n\tRecurrence: accounts.NewScheduleFrequencyWeeklyRequest([]accounts.DaySchedule{accounts.Monday}),\n}\n\nresponse, err := api.Accounts.UpdatePayoutSchedule(\"entity_id\", common.GBP, request)\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\nimport com.checkout.accounts.payout.schedule.DaySchedule;\nimport com.checkout.accounts.payout.schedule.request.ScheduleFrequencyWeeklyRequest;\nimport com.checkout.accounts.payout.schedule.request.UpdateScheduleRequest;\nimport com.checkout.accounts.payout.schedule.response.VoidResponse;\nimport com.checkout.common.Currency;\n\n// OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.ACCOUNTS) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\nUpdateScheduleRequest request = UpdateScheduleRequest.builder()\n    .enabled(true)\n    .threshold(1000)\n    .recurrence(ScheduleFrequencyWeeklyRequest.builder()\n        .byDay(DaySchedule.MONDAY)\n        .build())\n    .build();\n\ntry {\n    VoidResponse response = api.accountsClient().updatePayoutSchedule(\"entity_id\", Currency.USD, request).get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\Balances\\BalancesQuery;\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Common\\Currency;\nuse Checkout\\Environment;\nuse Checkout\\OAuthScope;\n\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Balances])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\n$query = new BalancesQuery();\n$query->query = \"currency:\" . Currency::$GBP;\n\ntry {\n    $response = $api->getBalancesClient()->retrieveEntityBalances(\"entity_id\", $query);\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.accounts.accounts import UpdateScheduleRequest, ScheduleRequest, ScheduleFrequencyWeeklyRequest, DaySchedule\nfrom checkout_sdk.common.enums import Currency\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\n\n# OAuth\noauth = (\n    CheckoutSdk.builder()\n    .oauth() \n    .client_credentials('client_id', 'client_secret') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.ACCOUNTS]) \n    .build()\n)\n\nfrequency = ScheduleFrequencyWeeklyRequest()\nfrequency.by_day = DaySchedule.MONDAY\n\nschedule = ScheduleRequest()\nschedule.frequency = frequency\n\nrequest = UpdateScheduleRequest()\nrequest.enabled = True\nrequest.threshold = 1000\nrequest.recurrence = schedule\n\ntry:\n    response = api.accounts.update_payout_schedule(\"entity_id\", Currency.USD, request)\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n    # Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n    # Invalid authorization"
          }
        ]
      }
    },
    "/accounts/entities/{id}/requirements": {
      "get": {
        "tags": [
          "Onboarding",
          "Platforms"
        ],
        "summary": "Get a list of requirements",
        "description": "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.",
        "operationId": "listEntityRequirements",
        "responses": {
          "200": {
            "description": "Requirements retrieved successfully",
            "headers": {
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              },
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EntityRequirementListResponse"
                },
                "example": {
                  "data": [
                    {
                      "id": "req_5wmacwhrhbzhqkhx5hlqmzje44",
                      "resource": "ent_wxglze3wwywujg4nna5fb7ldli",
                      "resource_type": "company",
                      "reason": "periodic_review",
                      "priority": "critical",
                      "deadline": "2026-05-10T00:00:00.0000000+00:00",
                      "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"
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Sub-entity not found"
          }
        },
        "security": [
          {
            "OAuth": [
              "accounts"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "parameters": [
        {
          "name": "Accept",
          "in": "header",
          "description": "Used to describe the type of content the client can interpret.\nUse the schema_version value to specify the payload format. The latest version is 3.0.",
          "required": true,
          "style": "simple",
          "schema": {
            "type": "string"
          },
          "example": "application/json;schema_version=3.0"
        },
        {
          "name": "id",
          "in": "path",
          "description": "The sub-entity's ID.",
          "required": true,
          "style": "simple",
          "schema": {
            "type": "string"
          },
          "example": "ent_w4jelhppmfiufdnatam37wrfc4"
        }
      ]
    },
    "/accounts/entities/{id}/requirements/{requirementId}": {
      "get": {
        "tags": [
          "Onboarding",
          "Platforms"
        ],
        "summary": "Get requirement details",
        "description": "Retrieve detailed information for a single requirement, including the JSON Schema that defines the shape of the value expected when resolving it.\n\nOnce 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.",
        "operationId": "getEntityRequirement",
        "responses": {
          "200": {
            "description": "Requirement details retrieved successfully",
            "headers": {
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              },
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EntityRequirementDetails"
                },
                "example": {
                  "id": "req_5wmacwhrhbzhqkhx5hlqmzje44",
                  "resource": "ent_wxglze3wwywujg4nna5fb7ldli",
                  "resource_type": "company",
                  "reason": "periodic_review",
                  "priority": "high",
                  "deadline": "2026-06-01T00:00:00.0000000+00:00",
                  "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"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Requirement not found, or a response has already been submitted for it."
          }
        },
        "security": [
          {
            "OAuth": [
              "accounts"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "put": {
        "tags": [
          "Onboarding",
          "Platforms"
        ],
        "summary": "Resolve a requirement",
        "description": "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}`.\n\nThe 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.",
        "operationId": "resolveEntityRequirement",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EntityRequirementUpdateRequest"
              },
              "example": {
                "value": "Acme Holdings Limited"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "description": "Response accepted for processing",
            "headers": {
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              },
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EntityRequirementUpdateResponse"
                },
                "example": {
                  "id": "req_5wmacwhrhbzhqkhx5hlqmzje44",
                  "status": "processing",
                  "submitted_at": "2026-05-05T10:15:30.0000000+00:00",
                  "_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"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "The request body could not be parsed."
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Requirement not found, or a response has already been submitted for it."
          },
          "422": {
            "description": "The supplied `value` did not validate against the requirement's `_schema`.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth": [
              "accounts"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "parameters": [
        {
          "name": "id",
          "in": "path",
          "description": "The sub-entity's ID.",
          "required": true,
          "style": "simple",
          "schema": {
            "type": "string"
          },
          "example": "ent_w4jelhppmfiufdnatam37wrfc4"
        },
        {
          "name": "requirementId",
          "in": "path",
          "description": "The requirement's ID, as returned by `GET /accounts/entities/{id}/requirements`.",
          "required": true,
          "style": "simple",
          "schema": {
            "type": "string"
          },
          "example": "req_5wmacwhrhbzhqkhx5hlqmzje44"
        }
      ]
    },
    "/accounts/entities/{id}/reserve-rules": {
      "post": {
        "tags": [
          "platforms",
          "Reserve rules"
        ],
        "summary": "Add a reserve rule",
        "description": "Create a sub-entity reserve rule.",
        "operationId": "addReserveRule",
        "requestBody": {
          "description": "A JSON payload containing the reserve rule details.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReserveRuleCreateRequest"
              },
              "examples": {
                "RollingReserveRule": {
                  "value": {
                    "type": "rolling",
                    "valid_from": "2001-01-01T13:33:00.0000000+00:00",
                    "rolling": {
                      "percentage": 10,
                      "holding_duration": {
                        "weeks": 2
                      }
                    }
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "headers": {
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              },
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "ETag": {
                "description": "Identifies a specific version of a reserve rule.",
                "schema": {
                  "type": "string"
                },
                "example": "Y3Y9MCZydj0w"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReserveRuleWriteResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ValidationError"
                    }
                  ]
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth": [
              "accounts"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "get": {
        "tags": [
          "platforms",
          "Reserve rules"
        ],
        "summary": "Query reserve rules",
        "description": "Fetch all of the reserve rules for a sub-entity.",
        "operationId": "queryReserveRules",
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              },
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReserveRuleQueryResponse"
                },
                "examples": {
                  "ReserveRules": {
                    "value": {
                      "data": [
                        {
                          "id": "rsv_qn4nis4k3ykpzzu7cvtuvhqqga",
                          "type": "rolling",
                          "valid_from": "2001-01-01T13:33:00.0000000+00:00",
                          "rolling": {
                            "percentage": 10,
                            "holding_duration": {
                              "weeks": 2
                            }
                          }
                        },
                        {
                          "id": "rsv_yk7nmh5jypmqzw5kb6kshj2iiy",
                          "type": "rolling",
                          "valid_from": "2001-02-01T13:33:00.0000000+00:00",
                          "rolling": {
                            "percentage": 15,
                            "holding_duration": {
                              "weeks": 4
                            }
                          }
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "OAuth": [
              "accounts"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "parameters": [
        {
          "name": "id",
          "in": "path",
          "description": "The sub-entity's ID.",
          "required": true,
          "style": "simple",
          "schema": {
            "type": "string"
          },
          "example": "ent_w4jelhppmfiufdnatam37wrfc4"
        }
      ]
    },
    "/address-document-verifications": {
      "post": {
        "tags": [
          "Address Document Verification"
        ],
        "summary": "Create an address document verification",
        "description": "<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>\nCreate an address document verification for an applicant.\n",
        "operationId": "create_address_document_verification",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdvAddressDocumentVerification"
              },
              "examples": {
                "address_document_verification_creation_request_body": {
                  "$ref": "#/components/examples/adv_address_document_verification_creation_request_body"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Address document verification created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdvAddressDocumentVerificationOutput"
                },
                "examples": {
                  "address_document_verification_creation_response_body": {
                    "$ref": "#/components/examples/adv_address_document_verification_creation_response_body"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IdvIdentityVerificationError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IdvIdentityVerificationError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "OAuth": [
              "identity-verification"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "servers": [
        {
          "url": "https://identity-verification.checkout.com",
          "description": "Production environment"
        },
        {
          "url": "https://identity-verification.sandbox.checkout.com",
          "description": "Sandbox environment"
        }
      ]
    },
    "/address-document-verifications/{address_document_verification_id}": {
      "get": {
        "tags": [
          "Address Document Verification"
        ],
        "summary": "Get an address document verification",
        "description": "<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>\nGet the details of an existing address document verification.\n",
        "operationId": "retrieve_address_document_verification",
        "parameters": [
          {
            "name": "address_document_verification_id",
            "in": "path",
            "description": "The address document verification's unique identifier.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/AdvAddressDocumentVerificationId"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Address document verification retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdvAddressDocumentVerificationOutput"
                },
                "examples": {
                  "address_document_verification_response_body": {
                    "$ref": "#/components/examples/adv_address_document_verification_response_body"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "identity-verification"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "servers": [
        {
          "url": "https://identity-verification.checkout.com",
          "description": "Production environment"
        },
        {
          "url": "https://identity-verification.sandbox.checkout.com",
          "description": "Sandbox environment"
        }
      ]
    },
    "/address-document-verifications/{address_document_verification_id}/anonymize": {
      "post": {
        "tags": [
          "Address Document Verification"
        ],
        "summary": "Anonymize an address document verification",
        "description": "<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>\nRemove the personal data from an address document verification.\n",
        "operationId": "anonymize_address_document_verification",
        "parameters": [
          {
            "name": "address_document_verification_id",
            "in": "path",
            "description": "The address document verification's unique identifier.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/AdvAddressDocumentVerificationId"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Personal data removed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdvAddressDocumentVerificationOutput"
                },
                "examples": {
                  "address_document_verification_response_body_anonymized": {
                    "$ref": "#/components/examples/adv_address_document_verification_response_body_anonymized"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "identity-verification"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "servers": [
        {
          "url": "https://identity-verification.checkout.com",
          "description": "Production environment"
        },
        {
          "url": "https://identity-verification.sandbox.checkout.com",
          "description": "Sandbox environment"
        }
      ]
    },
    "/address-document-verifications/{address_document_verification_id}/attempts": {
      "post": {
        "tags": [
          "Address Document Verification"
        ],
        "summary": "Create an address document verification attempt",
        "description": "<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>\nCreate an address document verification attempt.\n\nIf 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:\n\n- `created`\n- `retry_required`\n\nIf you create a new attempt while the status is any other value, you receive a `409 Conflict` response.\n\nImages must not exceed 10MB in size and must be in one of the following formats:\n\n- `JPEG`\n- `PDF`\n- `PNG`\n",
        "operationId": "create_address_document_verification_attempt",
        "parameters": [
          {
            "name": "address_document_verification_id",
            "in": "path",
            "description": "The address document verification's unique identifier.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/AdvAddressDocumentVerificationId"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/AdvAttemptRequest"
              },
              "examples": {
                "attempt_creation_request_body": {
                  "$ref": "#/components/examples/adv_attempt_creation_request_body"
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Address document verification attempt created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdvAttemptResponse"
                },
                "examples": {
                  "attempt_creation_response_body": {
                    "$ref": "#/components/examples/adv_attempt_creation_response_body"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Conflict"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "identity-verification"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "get": {
        "tags": [
          "Address Document Verification"
        ],
        "summary": "Get address document verification attempts",
        "description": "<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>\nGet the details of all attempts for a specific address document verification.\n",
        "operationId": "list_attempts_address_document_verification",
        "parameters": [
          {
            "name": "address_document_verification_id",
            "in": "path",
            "description": "The address document verification's unique identifier.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/AdvAddressDocumentVerificationId"
            }
          },
          {
            "name": "skip",
            "in": "query",
            "description": "The number of attempts to skip.",
            "schema": {
              "type": "integer",
              "default": 0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum number of attempts to return.",
            "schema": {
              "type": "integer",
              "default": 10
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Address document verification attempts retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdvAttemptResponseList"
                },
                "examples": {
                  "attempt_list_response_body": {
                    "$ref": "#/components/examples/adv_attempt_list_response_body"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "identity-verification"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "servers": [
        {
          "url": "https://identity-verification.checkout.com",
          "description": "Production environment"
        },
        {
          "url": "https://identity-verification.sandbox.checkout.com",
          "description": "Sandbox environment"
        }
      ]
    },
    "/address-document-verifications/{address_document_verification_id}/attempts/{attempt_id}": {
      "get": {
        "tags": [
          "Address Document Verification"
        ],
        "summary": "Get an address document verification attempt",
        "description": "<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>\nGet the details of a specific attempt for an address document verification.\n",
        "operationId": "get_address_document_verification_attempt",
        "parameters": [
          {
            "name": "address_document_verification_id",
            "in": "path",
            "description": "The address document verification's unique identifier.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/AdvAddressDocumentVerificationId"
            }
          },
          {
            "name": "attempt_id",
            "in": "path",
            "description": "The attempt's unique identifier.",
            "required": true,
            "schema": {
              "pattern": "^adva_\\w+$",
              "type": "string"
            },
            "example": "adva_tkoi5db4hryu5cei5vwoabr7we"
          }
        ],
        "responses": {
          "200": {
            "description": "Address document verification attempt retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdvAttemptResponse"
                },
                "examples": {
                  "attempt_get_response_body": {
                    "$ref": "#/components/examples/adv_attempt_get_response_body"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "identity-verification"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "servers": [
        {
          "url": "https://identity-verification.checkout.com",
          "description": "Production environment"
        },
        {
          "url": "https://identity-verification.sandbox.checkout.com",
          "description": "Sandbox environment"
        }
      ]
    },
    "/address-document-verifications/{address_document_verification_id}/attempts/{attempt_id}/assets": {
      "get": {
        "tags": [
          "Address Document Verification"
        ],
        "summary": "Get address document verification attempt assets",
        "description": "<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>\nGet the assets (the document image) uploaded for an address document verification attempt.\n\nResults are paginated. Use the `skip` and `limit` query parameters to navigate through pages.\n",
        "operationId": "get_address_document_verification_attempt_assets",
        "parameters": [
          {
            "name": "address_document_verification_id",
            "in": "path",
            "description": "The address document verification's unique identifier.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/AdvAddressDocumentVerificationId"
            }
          },
          {
            "name": "attempt_id",
            "in": "path",
            "description": "The attempt's unique identifier.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/AdvAttemptId"
            }
          },
          {
            "name": "skip",
            "in": "query",
            "description": "The number of assets to skip.",
            "schema": {
              "type": "integer",
              "default": 0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum number of assets to return.",
            "schema": {
              "type": "integer",
              "default": 10
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Address document verification attempt assets retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdvAttemptAssets"
                },
                "examples": {
                  "adv_attempt_assets_response_body": {
                    "$ref": "#/components/examples/adv_attempt_assets_response_body"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "identity-verification"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "servers": [
        {
          "url": "https://identity-verification.checkout.com",
          "description": "Production environment"
        },
        {
          "url": "https://identity-verification.sandbox.checkout.com",
          "description": "Sandbox environment"
        }
      ]
    },
    "/address-document-verifications/{address_document_verification_id}/pdf-report": {
      "get": {
        "tags": [
          "Address Document Verification"
        ],
        "summary": "Get address document verification report",
        "description": "<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>\nGet the report for an address document verification in PDF format.\n\nThe 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.\n",
        "operationId": "pdf_address_document_verification",
        "parameters": [
          {
            "name": "address_document_verification_id",
            "in": "path",
            "description": "The address document verification's unique identifier.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/AdvAddressDocumentVerificationId"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Address document verification report retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IdvPdf"
                },
                "examples": {
                  "address_document_verification_pdf_response_body": {
                    "$ref": "#/components/examples/adv_address_document_verification_pdf_response_body"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "OAuth": [
              "identity-verification"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "servers": [
        {
          "url": "https://identity-verification.checkout.com",
          "description": "Production environment"
        },
        {
          "url": "https://identity-verification.sandbox.checkout.com",
          "description": "Sandbox environment"
        }
      ]
    },
    "/agentic_commerce/delegate_payment": {
      "post": {
        "tags": [
          "Agentic Commerce Protocol"
        ],
        "summary": "Create a delegated payment token",
        "description": "Creates a delegated payment token to securely enable Checkout.com merchants to process agentic payments.\n\nThe token secures cardholder credentials for use in agentic commerce transactions. You must provide: \n  - The card details\n  - The spending constraints (allowance)\n  - The Billing address\n  - The risk signals\n\nThe request must include a valid HMAC-SHA256 signature in the `Signature` header and a timestamp in the `Timestamp` header to verify the request integrity.\n",
        "operationId": "delegatePayment",
        "parameters": [
          {
            "name": "Signature",
            "in": "header",
            "description": "A Base64-encoded HMAC-SHA256 signature used for request body integrity verification.\n\nCompute the signature as follows:\n1. Concatenate the `Timestamp` header value (as a UTF-8 string) with the raw JSON request body (as a UTF-8 string).\n2. Compute the HMAC-SHA256 hash of the concatenated string using your shared HMAC signing key.\n3. Base64-encode the resulting hash.\n\nExample: `Base64(HMAC-SHA256(key, Timestamp + RequestBody))`\n",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "eyJtZX..."
          },
          {
            "name": "Timestamp",
            "in": "header",
            "description": "The timestamp of the request, in RFC 3339 format (for example, `2026-03-11T10:30:00Z`).\n\nThe timestamp must be within 5 minutes of the server time. Requests with a timestamp outside this window are rejected with a `401` response.\n",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "example": "2025-09-25T10:30:00.0000000+00:00"
          },
          {
            "$ref": "#/components/parameters/ckoIdempotencyKey"
          },
          {
            "name": "API-Version",
            "in": "header",
            "description": "The API version to use for the request. If not specified, the default version (`2026-01-30`) is used.\n",
            "schema": {
              "type": "string"
            },
            "example": "2025-09-29"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DelegatedPaymentRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Delegated payment token created successfully",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DelegatedPaymentResponse"
                }
              }
            }
          },
          "400": {
            "description": "Malformed JSON or unreadable request body"
          },
          "401": {
            "description": "Missing or invalid API key, or signature validation failure"
          },
          "403": {
            "description": "Merchant not enabled for the authenticated platform"
          },
          "409": {
            "description": "Idempotency key reused with a different request body",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DelegatedPaymentErrorResponse"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable entity. One or more fields failed validation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DelegatedPaymentErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "An unexpected error occurred while processing the request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DelegatedPaymentErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiSecretKey": [ ]
          }
        ]
      }
    },
    "/aml-verifications": {
      "post": {
        "tags": [
          "AML Screening"
        ],
        "summary": "Create an AML screening",
        "description": "<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>\n Create an [AML screening](https://www.checkout.com/docs/business-operations/manage-identities/screen-aml-databases).\n\nIf the request is successful, you receive a `201 Created` response with the AML screening resource.\n",
        "operationId": "create_aml_verification",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AmlVerification"
              },
              "examples": {
                "Only required data": {
                  "$ref": "#/components/examples/aml_verification_creation_request_body_min"
                },
                "All possible data": {
                  "$ref": "#/components/examples/aml_verification_creation_request_body_max"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "AML screening created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "required": [
                    "applicant_id"
                  ],
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/AmlVerificationOutput"
                    }
                  ]
                },
                "examples": {
                  "aml_verification_response_body": {
                    "$ref": "#/components/examples/aml_verification_response_body"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth": [
              "identity-verification"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "servers": [
        {
          "url": "https://identity-verification.checkout.com",
          "description": "Production environment"
        },
        {
          "url": "https://identity-verification.sandbox.checkout.com",
          "description": "Sandbox environment"
        }
      ]
    },
    "/aml-verifications/{aml_verification_id}": {
      "get": {
        "tags": [
          "AML Screening"
        ],
        "summary": "Get an AML screening",
        "description": "Get the detailed result of an [AML screening](https://www.checkout.com/docs/business-operations/manage-identities/screen-aml-databases).",
        "operationId": "retrieve_aml_screening",
        "parameters": [
          {
            "name": "aml_verification_id",
            "in": "path",
            "description": "The AML screening's unique identifier.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/AmlVerificationId"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "AML screening retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "required": [
                    "applicant_id"
                  ],
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/AmlVerificationOutput"
                    }
                  ]
                },
                "examples": {
                  "aml_verification_response_body": {
                    "$ref": "#/components/examples/aml_verification_response_body"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth": [
              "identity-verification"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "servers": [
        {
          "url": "https://identity-verification.checkout.com",
          "description": "Production environment"
        },
        {
          "url": "https://identity-verification.sandbox.checkout.com",
          "description": "Sandbox environment"
        }
      ]
    },
    "/apms/bacs/notifications": {
      "post": {
        "tags": [
          "Bacs Direct Debit"
        ],
        "summary": "Send a Bacs Direct Debit pre-notification",
        "description": "Send a Bacs Direct Debit pre-notification (advance notice) to a payer ahead of collecting funds from their account.\n",
        "operationId": "sendBacsNotification",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BacsNotificationRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Pre-notification created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BacsNotificationResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiSecretKey": [ ]
          }
        ]
      }
    },
    "/applepay/certificates": {
      "post": {
        "tags": [
          "Apple Pay"
        ],
        "summary": "Upload a payment processing certificate",
        "description": "Upload a payment processing certificate. This will allow you to start processing payments via Apple Pay.\n",
        "operationId": "uploadApplePayCertificate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApplePayCertificateRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Certificate uploaded successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplePayCertificateResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiPublicKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "Node",
            "source": "import { Checkout } from 'checkout-sdk-node';\n\nlet cko = new Checkout('sk_sbox_XXXXX', {\n\tpk: 'pk_sbox_XXXXX',\n});\n\ntry {\n\tconst apple = await cko.applePay.upload({\n\t\tcontent: 'XXXXXXX', // make sure you escape the characters\n\t});\n} catch (err) {\n\tconsole.log(err.name);\n}"
          }
        ]
      }
    },
    "/applepay/enrollments": {
      "post": {
        "tags": [
          "Apple Pay"
        ],
        "summary": "Enroll a domain to the Apple Pay Service",
        "description": "Enroll a domain to the Apple Pay Service\n",
        "operationId": "ApplePayEnrollMerchant",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApplePayEnrollmentRequest"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Merchant successfully enrolled with no content to return"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "415": {
            "description": "Unsupported Media Type"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplePayEnrollmentErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          },
          "502": {
            "description": "Bad Gateway"
          },
          "504": {
            "description": "Gateway Timeout"
          }
        },
        "security": [
          {
            "OAuth": [
              "vault:apme-enrollment"
            ]
          }
        ]
      }
    },
    "/applepay/signing-requests": {
      "post": {
        "tags": [
          "Apple Pay"
        ],
        "summary": "Generate a certificate signing request",
        "description": "Generate a certificate signing request. You'll need to upload this to your Apple Developer account to download a payment processing certificate.\n",
        "operationId": "generateApplePaySigningRequest",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApplePaySigningRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Generated signing request successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplePaySigningRequestResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiPublicKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "Node",
            "source": "import { Checkout } from 'checkout-sdk-node';\n\nlet cko = new Checkout('sk_sbox_XXXXX', {\n\tpk: 'pk_sbox_XXXXX',\n});\n\ntry {\n\tconst apple = await cko.applePay.generate();\n} catch (err) {\n\tconsole.log(err.name);\n}"
          }
        ]
      }
    },
    "/balances/{id}": {
      "get": {
        "tags": [
          "Balances"
        ],
        "summary": "Retrieve entity balances",
        "description": "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.",
        "operationId": "getEntityBalances",
        "parameters": [
          {
            "name": "withCurrencyAccountId",
            "in": "query",
            "description": "Specifies if the response should include the sub-account ID that corresponds to each set of balances.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "balancesAt",
            "in": "query",
            "description": "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.",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2026-05-06T13:59:59.9999999+00:00"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Balances retrieved successfully.",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BalancesResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid query parameter — for example, an unsupported `query` filter value, a non-boolean `withCurrencyAccountId`, or a malformed `balancesAt` value."
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Entity not found"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ValidationError"
                    }
                  ]
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth": [
              "balances"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\nusing Checkout.Balances;\nusing Checkout.Common;\n\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.Balances)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\n\nBalancesQuery query = new BalancesQuery {Query = \"currency:\" + Currency.GBP};\n\ntry\n{\n    BalancesResponse balances = await api.BalancesClient()\n        .RetrieveEntityBalances(\"entitiy_id\", query);\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"fmt\"\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/balances\"\n\t\"github.com/checkout/checkout-sdk-go/common\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Balances}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nquery := balances.QueryFilter{Query: fmt.Sprintf(\"currency:%s\", common.GBP)}\n\nresponse, err := api.Balances.RetrieveEntityBalances(\"entity_id\", query)\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\nimport com.checkout.balances.BalancesQuery;\nimport com.checkout.balances.BalancesResponse;\nimport com.checkout.common.Currency;\n\n// OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.BALANCES) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\nBalancesQuery query = BalancesQuery.builder()\n    .query(\"currency:\" + Currency.EUR)\n    .build();\n\ntry {\n    BalancesResponse response = api.balancesClient().retrieveEntityBalances(\"balance_id\", query).get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\Balances\\BalancesQuery;\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Common\\Currency;\nuse Checkout\\Environment;\nuse Checkout\\OAuthScope;\n\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Balances])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\n$query = new BalancesQuery();\n$query->query = \"currency:\" . Currency::$GBP;\n\ntry {\n    $response = $api->getBalancesClient()->retrieveEntityBalances(\"entity_id\", $query);\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "import checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\nfrom checkout_sdk.balances.balances import BalancesQuery\n\n# OAuth\noauth = (\n    CheckoutSdk.builder()\n    .oauth() \n    .client_credentials('client_id', 'client_secret') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.BALANCES]) \n    .build()\n)\n\nquery = BalancesQuery()\nquery.query = \"string\"\n\ntry:\n    response = api.balances.retrieve_entity_balances(\"entity_id\", query)\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n    # Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n    # Invalid authorization"
          }
        ]
      },
      "servers": [
        {
          "url": "https://balances.checkout.com",
          "description": "Production environment"
        },
        {
          "url": "https://balances.sandbox.checkout.com",
          "description": "Sandbox environment"
        }
      ],
      "parameters": [
        {
          "$ref": "#/components/parameters/EntityId"
        },
        {
          "$ref": "#/components/parameters/Query"
        }
      ]
    },
    "/compliance-requests/{payment_id}": {
      "get": {
        "tags": [
          "Compliance requests"
        ],
        "summary": "Get a compliance request",
        "description": "Retrieve an existing <a href=\"https://www.checkout.com/docs/business-operations/respond-to-compliance-requests\">compliance request</a> by payment ID.",
        "operationId": "ComplianceRequests_GetComplianceRequest",
        "parameters": [
          {
            "name": "payment_id",
            "in": "path",
            "description": "The compliance request's payment ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Compliance request retrieved successfully.",
            "headers": {
              "Cko-Version": {
                "description": "Version of the API that handled the request.",
                "schema": {
                  "type": "string"
                },
                "example": "0.0.1"
              },
              "Cko-Request-Id": {
                "description": "Correlation identifier for this request. Returned when provided via the Cko-Request-Id request header.",
                "schema": {
                  "type": "string"
                },
                "example": "e2ad4d96-5c63-4ae0-9456-5ac3b5f1559e"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ComplianceRequestDetails"
                }
              }
            }
          },
          "400": {
            "description": "Compliance request could not be retrieved. See the response body for more information.",
            "headers": {
              "Cko-Version": {
                "description": "Version of the API that handled the request.",
                "schema": {
                  "type": "string"
                },
                "example": "0.0.1"
              },
              "Cko-Request-Id": {
                "description": "Correlation identifier for this request. Returned when provided via the Cko-Request-Id request header.",
                "schema": {
                  "type": "string"
                },
                "example": "e2ad4d96-5c63-4ae0-9456-5ac3b5f1559e"
              }
            }
          },
          "401": {
            "description": "Unauthorized request",
            "headers": {
              "Cko-Version": {
                "description": "Version of the API that handled the request.",
                "schema": {
                  "type": "string"
                },
                "example": "0.0.1"
              },
              "Cko-Request-Id": {
                "description": "Correlation identifier for this request. Returned when provided via the Cko-Request-Id request header.",
                "schema": {
                  "type": "string"
                },
                "example": "e2ad4d96-5c63-4ae0-9456-5ac3b5f1559e"
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "headers": {
              "Cko-Version": {
                "description": "Version of the API that handled the request.",
                "schema": {
                  "type": "string"
                },
                "example": "0.0.1"
              },
              "Cko-Request-Id": {
                "description": "Correlation identifier for this request. Returned when provided via the Cko-Request-Id request header.",
                "schema": {
                  "type": "string"
                },
                "example": "e2ad4d96-5c63-4ae0-9456-5ac3b5f1559e"
              }
            }
          },
          "404": {
            "description": "Compliance request not found",
            "headers": {
              "Cko-Version": {
                "description": "Version of the API that handled the request.",
                "schema": {
                  "type": "string"
                },
                "example": "0.0.1"
              },
              "Cko-Request-Id": {
                "description": "Correlation identifier for this request. Returned when provided via the Cko-Request-Id request header.",
                "schema": {
                  "type": "string"
                },
                "example": "e2ad4d96-5c63-4ae0-9456-5ac3b5f1559e"
              }
            }
          }
        },
        "security": [
          {
            "OAuth": [
              "compliance-requests",
              "compliance-requests:read"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "Compliance requests"
        ],
        "summary": "Respond to a compliance request",
        "description": "Submit a response to a <a href=\"https://www.checkout.com/docs/business-operations/respond-to-compliance-requests\">compliance request</a>.",
        "operationId": "ComplianceRequests_SubmitComplianceRequestResponse",
        "parameters": [
          {
            "name": "payment_id",
            "in": "path",
            "description": "The compliance request's payment ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The response details.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ComplianceRequestResponse"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Response to compliance request accepted",
            "headers": {
              "Cko-Version": {
                "description": "Version of the API that handled the request.",
                "schema": {
                  "type": "string"
                },
                "example": "0.0.1"
              },
              "Cko-Request-Id": {
                "description": "Correlation identifier for this request. Returned when provided via the Cko-Request-Id request header.",
                "schema": {
                  "type": "string"
                },
                "example": "e2ad4d96-5c63-4ae0-9456-5ac3b5f1559e"
              }
            }
          },
          "400": {
            "description": "Response to compliance request could not be submitted. See the response body for more information.",
            "headers": {
              "Cko-Version": {
                "description": "Version of the API that handled the request.",
                "schema": {
                  "type": "string"
                },
                "example": "0.0.1"
              },
              "Cko-Request-Id": {
                "description": "Correlation identifier for this request. Returned when provided via the Cko-Request-Id request header.",
                "schema": {
                  "type": "string"
                },
                "example": "e2ad4d96-5c63-4ae0-9456-5ac3b5f1559e"
              }
            }
          },
          "401": {
            "description": "Unauthorized request",
            "headers": {
              "Cko-Version": {
                "description": "Version of the API that handled the request.",
                "schema": {
                  "type": "string"
                },
                "example": "0.0.1"
              },
              "Cko-Request-Id": {
                "description": "Correlation identifier for this request. Returned when provided via the Cko-Request-Id request header.",
                "schema": {
                  "type": "string"
                },
                "example": "e2ad4d96-5c63-4ae0-9456-5ac3b5f1559e"
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "headers": {
              "Cko-Version": {
                "description": "Version of the API that handled the request.",
                "schema": {
                  "type": "string"
                },
                "example": "0.0.1"
              },
              "Cko-Request-Id": {
                "description": "Correlation identifier for this request. Returned when provided via the Cko-Request-Id request header.",
                "schema": {
                  "type": "string"
                },
                "example": "e2ad4d96-5c63-4ae0-9456-5ac3b5f1559e"
              }
            }
          },
          "404": {
            "description": "Compliance request not found",
            "headers": {
              "Cko-Version": {
                "description": "Version of the API that handled the request.",
                "schema": {
                  "type": "string"
                },
                "example": "0.0.1"
              },
              "Cko-Request-Id": {
                "description": "Correlation identifier for this request. Returned when provided via the Cko-Request-Id request header.",
                "schema": {
                  "type": "string"
                },
                "example": "e2ad4d96-5c63-4ae0-9456-5ac3b5f1559e"
              }
            }
          },
          "409": {
            "description": "The compliance request has already been responded to.",
            "headers": {
              "Cko-Version": {
                "description": "Version of the API that handled the request.",
                "schema": {
                  "type": "string"
                },
                "example": "0.0.1"
              },
              "Cko-Request-Id": {
                "description": "Correlation identifier for this request. Returned when provided via the Cko-Request-Id request header.",
                "schema": {
                  "type": "string"
                },
                "example": "e2ad4d96-5c63-4ae0-9456-5ac3b5f1559e"
              }
            }
          }
        },
        "security": [
          {
            "OAuth": [
              "compliance-requests",
              "compliance-requests:respond"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      }
    },
    "/connect/token": {
      "post": {
        "tags": [
          "Access"
        ],
        "summary": "Request an access token",
        "description": "OAuth endpoint to exchange your access key ID and access key secret for an access token.",
        "operationId": "requestAnAccessToken",
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "properties": {
                  "grant_type": {
                    "enum": [
                      "client_credentials"
                    ],
                    "type": "string",
                    "example": "client_credentials"
                  },
                  "client_id": {
                    "type": "string",
                    "description": "Access key ID"
                  },
                  "client_secret": {
                    "type": "string",
                    "description": "Access key secret"
                  },
                  "scope": {
                    "type": "string",
                    "description": "The access key scope",
                    "example": "gateway"
                  }
                }
              },
              "examples": {
                "example-1": {
                  "value": {
                    "grant_type": "client_credentials",
                    "client_id": "ack_clckqmmnyfiupexjew7shh5ahe",
                    "client_secret": "Pmg36sDWQ9WxtPR3"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK - A successful access token response as per [RFC6749](https://tools.ietf.org/html/rfc6749#section-4.4.3)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "access_token": {
                      "type": "string",
                      "example": "2YotnFZFEjr1zCsicMWpAA"
                    },
                    "token_type": {
                      "type": "string",
                      "example": "example"
                    },
                    "expires_in": {
                      "type": "number",
                      "example": 3600
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request - An unsuccessful access token response as per [RFC6749](https://tools.ietf.org/html/rfc6749#section-4.4.3)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "enum": [
                        "invalid_request",
                        "invalid_client",
                        "invalid_grant",
                        "unauthorized_client",
                        "unsupported_grant_type",
                        "invalid_scope"
                      ],
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// Please refer to https://github.com/checkout/checkout-sdk-net on how to setup the SDK with OAuth\ntry\n{\n    ICheckoutApi api = CheckoutSdk.Builder().OAuth()\n        .ClientCredentials(\"client_id\", \"client_secret\")\n        .Scopes(OAuthScope.Vault) // more scopes available\n        .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n        .HttpClientFactory(new DefaultHttpClientFactory())\n        .Build();\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "cURL",
            "source": "curl --location 'https://{prefix}.access.checkout.com/connect/token'\n  --header 'Content-Type: application/x-www-form-urlencoded'\n  --data-urlencode 'grant_type=client_credentials'\n  --data-urlencode 'client_id=ack_...' \n  --data-urlencode 'client_secret=...'"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n)\n\n// SDK instantiation for OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Files, configuration.Flow, configuration.Fx, configuration.Gateway,\n\t\t\t\tconfiguration.Marketplace, configuration.SessionsApp, configuration.SessionsBrowser,\n\t\t\t\tconfiguration.Vault, configuration.PayoutsBankDetails, configuration.Disputes}). // more scopes available\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}"
          },
          {
            "lang": "Java",
            "source": "// Please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\n\n// SDK instantiation for OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.FILES, OAuthScope.FLOW, OAuthScope.FX, OAuthScope.GATEWAY,\n            OAuthScope.MARKETPLACE, OAuthScope.SESSIONS_APP, OAuthScope.SESSIONS_BROWSER,\n            OAuthScope.VAULT, OAuthScope.PAYOUTS_BANK_DETAILS) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();"
          },
          {
            "lang": "Node",
            "source": "import { Checkout } from 'checkout-sdk-node';\n\nconst cko = new Checkout();\n\ntry {\n\tconst access_token = await cko.access.request({\n\t\tgrant_type: 'client_credentials',\n\t\tclient_id: 'ack_XXXX',\n\t\tclient_secret: 'XXXXX',\n\t\tscope: 'gateway',\n\t});\n} catch (err) {\n\tconsole.log(err.name);\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Environment;\nuse Checkout\\OAuthScope;\n\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Balances])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();"
          },
          {
            "lang": "Python",
            "source": "# please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.oauth_scopes import OAuthScopes\n\n# SDK instantiation for OAuth\napi = CheckoutSdk.builder() \\\n    .oauth() \\\n    .client_credentials('client_id', 'client_secret') \\\n    .scopes([OAuthScopes.GATEWAY, OAuthScopes.VAULT, OAuthScopes.PAYOUTS_BANK_DETAILS,\n             OAuthScopes.SESSIONS_APP, OAuthScopes.SESSIONS_BROWSER, OAuthScopes.FX, OAuthScopes.MARKETPLACE,\n             OAuthScopes.FILES, OAuthScopes.TRANSFERS, OAuthScopes.BALANCES_VIEW]) \\\n    .build()"
          }
        ]
      },
      "servers": [
        {
          "url": "https://{prefix}.access.checkout.com",
          "description": "Production environment",
          "variables": {
            "prefix": {
              "default": "{prefix}",
              "description": "Your unique <a href=\"https://www.checkout.com/docs/developer-resources/api/api-endpoints\" target=\"_blank\">base URL</a>. There is no default value."
            }
          }
        },
        {
          "url": "https://{prefix}.access.sandbox.checkout.com",
          "description": "Sandbox environment",
          "variables": {
            "prefix": {
              "default": "{prefix}",
              "description": "Your unique <a href=\"https://www.checkout.com/docs/developer-resources/api/api-endpoints\" target=\"_blank\">base URL</a>. There is no default value."
            }
          }
        }
      ]
    },
    "/customers": {
      "post": {
        "tags": [
          "Customers"
        ],
        "summary": "Create a customer",
        "description": "<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.\n",
        "operationId": "createCustomer",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StoreCustomerRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Customer created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreCustomerResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "409": {
            "description": "A concurrent update conflict occurred. Retry the request.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ValidationError"
                    }
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "vault",
              "vault:customers"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\nusing Checkout.Common;\nusing CustomerRequest = Checkout.Customers.CustomerRequest;\n\n//API keys\nICheckoutApi api = CheckoutSdk.Builder().StaticKeys()\n    .SecretKey(\"secret_key\")\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\n//OAuth\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.Vault)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\nCustomerRequest request = new CustomerRequest\n{\n    Email = \"email@docs.checkout.com\",\n    Name = \"FirstName LastName\",\n    Phone = new Phone {CountryCode = \"1\", Number = \"4155552671\"},\n    Metadata = new Dictionary<string, object>() {{\"coupon_code\", \"NY2018\"}, {\"partner_id\", \"123989\"}}\n};\n\ntry\n{\n    IdResponse response = await api.CustomersClient().Create(request);\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/common\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n\t\"github.com/checkout/checkout-sdk-go/customers\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Vault}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nrequest := customers.CustomerRequest{\n\tEmail: \"email@docs.checkout.com\",\n\tName:  \"Name\",\n\tPhone: &common.Phone{\n\t\tCountryCode: \"44\",\n\t\tNumber:      \"4155552671\",\n\t},\n}\n\nresponse, err := api.Customers.Create(request)\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\nimport com.checkout.common.IdResponse;\nimport com.checkout.common.Phone;\nimport com.checkout.customers.CustomerRequest;\n\n// API Keys\nCheckoutApi api = CheckoutSdk.builder()\n    .staticKeys()\n    .secretKey(\"secret_key\")\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\n// OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.GATEWAY) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\nCustomerRequest request = CustomerRequest.builder()\n    .email(\"email@docs.checkout.com\")\n    .name(\"name\")\n    .phone(Phone.builder().countryCode(\"1\").number(\"415 555 2671\").build())\n    .instruments(Arrays.asList(\"instrument_id_1\", \"instrument_id_2\"))\n    .metadata(new HashMap<>())\n    .build();\n\ntry {\n    IdResponse response = api.customersClient().create(request).get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "Node",
            "source": "import { Checkout } from 'checkout-sdk-node';\n\nlet cko = new Checkout('your_client_secret_here', {\n\tclient: 'ack_XXXXXXXXXXXX',\n\tscope: ['gateway'], // array of scopes\n\tenvironment: 'sandbox', // or \"production\"\n        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\"\n});\n\n// Or if you use api keys:\n// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});\n\ntry {\n\tconst customerResponse = await cko.customers.create({\n\t\temail: 'JohnTest@test.com',\n\t\tname: 'John Test',\n\t\tphone: {\n\t\t\tcountry_code: '+1',\n\t\t\tnumber: '4155552671',\n\t\t},\n\t\tmetadata: {\n\t\t\tcoupon_code: 'NY2018',\n\t\t\tpartner_id: 123989,\n\t\t},\n\t});\n} catch (err) {\n\tconsole.log(err.name);\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Common\\Phone;\nuse Checkout\\Customers\\CustomerRequest;\nuse Checkout\\Environment;\nuse Checkout\\OAuthScope;\n\n//API Keys\n$api = CheckoutSdk::builder()->staticKeys()\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->secretKey(\"secret_key\")\n    ->build();\n\n//OAuth\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Gateway])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\n$phone = new Phone();\n$phone->country_code = \"+1\";\n$phone->number = \"415 555 2671\";\n\n$request = new CustomerRequest();\n$request->email = \"email@docs.checkout.com\";\n$request->name = \"name\";\n$request->phone = $phone;\n$request->instruments = [\"instrument_id_1\", \"instrument_id_2\"];\n\ntry {\n    $response = $api->getCustomersClient()->create($request);\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.common.common import Phone\nfrom checkout_sdk.customers.customers import CustomerRequest\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\n\n# API Key\napi_key = (\n    CheckoutSdk.builder()\n    .secret_key('secret_key') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .build()\n)\n\n# OAuth\noauth = (\n    CheckoutSdk.builder()\n    .oauth() \n    .client_credentials('client_id', 'client_secret') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.GATEWAY]) \n    .build()\n)\n\nphone = Phone()\nphone.country_code = '44'\nphone.number = '4155552671'\n\nrequest = CustomerRequest()\nrequest.email = 'email@docs.checkout.com'\nrequest.name = 'Name'\nrequest.phone = phone\nrequest.instruments = ['instrument_id_1', 'instrument_id_2']\n\ntry:\n    response = api.customers.create(request)\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n    # Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n    # Invalid authorization"
          }
        ]
      }
    },
    "/customers/{identifier}": {
      "get": {
        "tags": [
          "Customers"
        ],
        "summary": "Get customer details",
        "description": "Returns the details of a customer and their payment instruments.",
        "operationId": "getCustomerDetails",
        "parameters": [
          {
            "name": "identifier",
            "in": "path",
            "description": "The customer's ID or email",
            "required": true,
            "schema": {
              "type": "string",
              "oneOf": [
                {
                  "title": "Customer ID",
                  "pattern": "^(cus)_(\\w{26})$"
                },
                {
                  "title": "Customer Email",
                  "maxLength": 255,
                  "properties": {
                    "email": {
                      "maxLength": 255,
                      "type": "string",
                      "format": "email"
                    }
                  },
                  "format": "email"
                }
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Customer retrieved successfully",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RetrieveCustomerResponse"
                },
                "examples": {
                  "bank_account": {
                    "value": {
                      "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"
                        }
                      ]
                    }
                  },
                  "card": {
                    "value": {
                      "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"
                        }
                      ]
                    }
                  },
                  "ach": {
                    "value": {
                      "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
                      "email": "brucewayne@gmail.com",
                      "name": "Bruce Wayne",
                      "instruments": [
                        {
                          "type": "ach",
                          "id": "src_wmlfc3zyhqzehihu7giusaaawu",
                          "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q",
                          "created_on": "2021-01-01T00:00:00.0000000+00:00",
                          "modified_on": "2021-01-01T00:00:00.0000000+00:00",
                          "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"
                          }
                        }
                      ]
                    }
                  },
                  "sepa": {
                    "value": {
                      "id": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
                      "email": "brucewayne@gmail.com",
                      "name": "Bruce Wayne",
                      "instruments": [
                        {
                          "type": "sepa",
                          "id": "src_wmlfc3zyhqzehihu7giusaaawu",
                          "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q",
                          "created_on": "2021-01-01T00:00:00.0000000+00:00",
                          "modified_on": "2021-01-01T00:00:00.0000000+00:00",
                          "vault_id": "vid_wmlfc3zyhqzehihu7giusaaawu",
                          "instrument_data": {
                            "account_number": "FR2810096000509685512959O86",
                            "country": "GB",
                            "currency": "GBP",
                            "payment_type": "recurring",
                            "mandate_id": 1234567890,
                            "date_of_signature": "2021-01-01T00:00:00.0000000+00:00"
                          },
                          "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"
                            }
                          }
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Customer not found"
          }
        },
        "security": [
          {
            "OAuth": [
              "vault",
              "vault:customers"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\nusing Checkout.Customers;\n\n//API keys\nICheckoutApi api = CheckoutSdk.Builder().StaticKeys()\n    .SecretKey(\"secret_key\")\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\n//OAuth\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.Vault)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\ntry\n{\n    CustomerDetailsResponse response = await api.CustomersClient().Get(\"customer_id\");\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Vault}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nresponse, err := api.Customers.Get(\"customer_id\")\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\nimport com.checkout.customers.CustomerResponse;\n\n// API Keys\nCheckoutApi api = CheckoutSdk.builder()\n    .staticKeys()\n    .secretKey(\"secret_key\")\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\n// OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.GATEWAY) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\ntry {\n    CustomerResponse response = api.customersClient().get(\"customer_id\").get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "Node",
            "source": "import { Checkout } from 'checkout-sdk-node';\n\nlet cko = new Checkout('your_client_secret_here', {\n\tclient: 'ack_XXXXXXXXXXXX',\n\tscope: ['gateway'], // array of scopes\n\tenvironment: 'sandbox', // or \"production\"\n        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\"\n});\n\n// Or if you use api keys:\n// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});\n\ntry {\n\tconst customerResponse = await cko.customers.get('cus_2tvaccfvs3lulevzg42vgyvtdq');\n} catch (err) {\n\tconsole.log(err.name);\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Environment;\nuse Checkout\\OAuthScope;\n\n//API Keys\n$api = CheckoutSdk::builder()->staticKeys()\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->secretKey(\"secret_key\")\n    ->build();\n\n//OAuth\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Gateway])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\ntry {\n    $response = $api->getCustomersClient()->get(\"customer_id\");\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\n\n# API Key\napi_key = (\n    CheckoutSdk.builder()\n    .secret_key('secret_key') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .build()\n)\n\n# OAuth\noauth = (\n    CheckoutSdk.builder() \n    .oauth() \n    .client_credentials('client_id', 'client_secret') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.GATEWAY]) \n    .build()\n)\n\ntry:\n    response = api.customers.get(\"customer_id\")\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n    # Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n    # Invalid authorization"
          }
        ]
      },
      "patch": {
        "tags": [
          "Customers"
        ],
        "summary": "Update customer details",
        "description": "Update the details of a customer and link payment instruments to them.",
        "operationId": "updateCustomerDetails",
        "parameters": [
          {
            "name": "identifier",
            "in": "path",
            "description": "The customer's ID",
            "required": true,
            "schema": {
              "pattern": "^(cus)_(\\w{26})$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCustomerDetailsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Customer updated successfully"
          },
          "401": {
            "description": "Unauthorized"
          },
          "409": {
            "description": "A concurrent update conflict occurred. Call the [Get customer details](/tag/Customers#operation/getCustomerDetails) to retrieve the latest state before retrying.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ValidationError"
                    }
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            }
          },
          "404": {
            "description": "Customer not found"
          }
        },
        "security": [
          {
            "OAuth": [
              "vault",
              "vault:customers"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\nusing Checkout.Common;\nusing CustomerRequest = Checkout.Customers.CustomerRequest;\n\n//API keys\nICheckoutApi api = CheckoutSdk.Builder().StaticKeys()\n    .SecretKey(\"secret_key\")\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\n//OAuth\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.Vault)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\nCustomerRequest request = new CustomerRequest\n{\n    Email = \"email@docs.checkout.com\",\n    Name = \"FirstName LastName\",\n    Phone = new Phone\n    {\n        CountryCode = \"1\",\n        Number = \"4155552671\"\n    },\n    Metadata = new Dictionary<string, object>()\n    {\n        {\"coupon_code\", \"NY2018\"},\n        {\"partner_id\", \"123989\"}\n    }\n};\n\nCustomerRequest request = new CustomerRequest\n{\n    Email = \"email@docs.checkout.com\",\n    Name = \"FirstName LastName\",\n    Phone = new Phone {CountryCode = \"1\", Number = \"4155552671\"},\n    Metadata = new Dictionary<string, object>() {{\"coupon_code\", \"NY2018\"}, {\"partner_id\", \"123989\"}}\n};\n\ntry\n{\n    await api.CustomersClient().Update(\"customer_id\", request);\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/common\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n\t\"github.com/checkout/checkout-sdk-go/customers\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Vault}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nrequest := customers.CustomerRequest{\n\tEmail: \"email@docs.checkout.com\",\n\tName:  \"Name\",\n\tPhone: &common.Phone{\n\t\tCountryCode: \"44\",\n\t\tNumber:      \"4155552671\",\n\t},\n}\n\nresponse, err := api.Customers.Update(\"customer_id\", request)\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.EmptyResponse;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\nimport com.checkout.common.Phone;\nimport com.checkout.customers.CustomerRequest;\n\n// API Keys\nCheckoutApi api = CheckoutSdk.builder()\n    .staticKeys()\n    .secretKey(\"secret_key\")\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\n// OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.GATEWAY) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\nCustomerRequest customerRequest = CustomerRequest.builder()\n    .email(\"email@docs.checkout.com\")\n    .name(\"name\")\n    .phone(Phone.builder().countryCode(\"1\").number(\"4155552671\").build())\n    .instruments(Arrays.asList(\"instrument_id_1\", \"instrument_id_2\"))\n    .metadata(new HashMap<>())\n    .build();\n\ntry {\n    EmptyResponse response = api.customersClient().update(\"customer_id\", customerRequest).get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "Node",
            "source": "import { Checkout } from 'checkout-sdk-node';\n\nlet cko = new Checkout('your_client_secret_here', {\n\tclient: 'ack_XXXXXXXXXXXX',\n\tscope: ['gateway'], // array of scopes\n\tenvironment: 'sandbox', // or \"production\"\n        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\"\n});\n\n// Or if you use api keys:\n// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});\n\ntry {\n\tconst customerResponse = await cko.customers.update('cus_2tvaccfvs3lulevzg42vgyvtdq', {\n\t\tname: 'James Bond',\n\t});\n} catch (err) {\n\tconsole.log(err.name);\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Common\\Phone;\nuse Checkout\\Customers\\CustomerRequest;\nuse Checkout\\Environment;\nuse Checkout\\OAuthScope;\n\n//API Keys\n$api = CheckoutSdk::builder()->staticKeys()\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->secretKey(\"secret_key\")\n    ->build();\n\n//OAuth\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Gateway])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\n$phone = new Phone();\n$phone->country_code = \"+1\";\n$phone->number = \"415 555 2671\";\n\n$request = new CustomerRequest();\n$request->email = \"email@docs.checkout.com\";\n$request->name = \"name\";\n$request->phone = $phone;\n$request->instruments = [\"instrument_id_1\", \"instrument_id_2\"];\n\ntry {\n    $response = $api->getCustomersClient()->update(\"customer_id\", $request);\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.common.common import Phone\nfrom checkout_sdk.customers.customers import CustomerRequest\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\n\n# API Key\napi_key = (\n    CheckoutSdk.builder() \n    .secret_key('secret_key') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .build()\n)\n\n# OAuth\noauth = (\n    CheckoutSdk.builder() \n    .oauth() \n    .client_credentials('client_id', 'client_secret') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.GATEWAY]) \n    .build()\n)\n\nphone = Phone()\nphone.country_code = '44'\nphone.number = '4155552671'\n\nrequest = CustomerRequest()\nrequest.email = 'email@docs.checkout.com'\nrequest.name = 'Name'\nrequest.phone = phone\nrequest.instruments = ['instrument_id_1', 'instrument_id_2']\n\ntry:\n    response = api.customers.update(request)\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n    # Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n    # Invalid authorization"
          }
        ]
      },
      "delete": {
        "tags": [
          "Customers"
        ],
        "summary": "Delete a customer",
        "description": "Delete a customer and all of their linked payment instruments.",
        "operationId": "deleteCustomer",
        "parameters": [
          {
            "name": "identifier",
            "in": "path",
            "description": "The customer's ID",
            "required": true,
            "schema": {
              "pattern": "^(cus)_(\\w{26})$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Customer deleted successfully"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Customer not found or not associated with client"
          },
          "409": {
            "description": "A concurrent update conflict occurred. Retry the request.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ValidationError"
                    }
                  ]
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth": [
              "vault",
              "vault:customers"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\n\n//API keys\nICheckoutApi api = CheckoutSdk.Builder().StaticKeys()\n    .SecretKey(\"secret_key\")\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\n//OAuth\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.Vault)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\ntry\n{\n    EmptyResponse response = await api.CustomersClient().Delete(\"customer_id\");\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Vault}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nresponse, err := api.Customers.Delete(\"customer_id\")\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.EmptyResponse;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\n\n// API Keys\nCheckoutApi api = CheckoutSdk.builder()\n    .staticKeys()\n    .secretKey(\"secret_key\")\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\n// OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.GATEWAY) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\ntry {\n    EmptyResponse response = api.customersClient().delete(\"customer_id\").get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "Node",
            "source": "import { Checkout } from 'checkout-sdk-node';\n\nlet cko = new Checkout('your_client_secret_here', {\n\tclient: 'ack_XXXXXXXXXXXX',\n\tscope: ['gateway'], // array of scopes\n\tenvironment: 'sandbox', // or \"production\"\n        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\"\n});\n\n// Or if you use api keys:\n// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});\n\ntry {\n\tconst customerResponse = await cko.customers.delete('cus_2tvaccfvs3lulevzg42vgyvtdq');\n} catch (err) {\n\tconsole.log(err.name);\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Environment;\nuse Checkout\\OAuthScope;\n\n//API Keys\n$api = CheckoutSdk::builder()->staticKeys()\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->secretKey(\"secret_key\")\n    ->build();\n\n//OAuth\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Vault])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\ntry {\n    $response = $api->getCustomersClient()->delete(\"customer_id\");\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\n\n# API Key\napi_key = (\n    CheckoutSdk.builder()\n    .secret_key('secret_key') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .build()\n)\n\n# OAuth\noauth = (\n    CheckoutSdk.builder()\n    .oauth() \n    .client_credentials('client_id', 'client_secret') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.GATEWAY]) \n    .build()\n)\n\ntry:\n    response = api.customers.delete(\"customer_id\")\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n    # Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n    # Invalid authorization"
          }
        ]
      }
    },
    "/disputes": {
      "get": {
        "tags": [
          "Disputes"
        ],
        "summary": "Get disputes",
        "description": "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.",
        "operationId": "getDisputes",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "description": "The numbers of results to return",
            "schema": {
              "maximum": 250,
              "minimum": 1,
              "type": "integer",
              "default": 50
            }
          },
          {
            "name": "skip",
            "in": "query",
            "description": "The number of results to skip",
            "schema": {
              "minimum": 0,
              "type": "integer",
              "default": 0
            }
          },
          {
            "name": "from",
            "in": "query",
            "description": "The date and time from which to filter disputes, based on the dispute's `last_update` field",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "to",
            "in": "query",
            "description": "The date and time until which to filter disputes, based on the dispute's `last_update` field",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "id",
            "in": "query",
            "description": "The unique identifier of the dispute",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "entity_ids",
            "in": "query",
            "description": "One or more comma-separated client entities. This works like a logical *OR* operator",
            "schema": {
              "type": "string",
              "example": "ent_wxglze3wwywujg4nna5fb7ldli,ent_vkb5zcy64zoe3cwfmaqvqyqyku"
            }
          },
          {
            "name": "sub_entity_ids",
            "in": "query",
            "description": "One or more comma-separated sub-entities. This works like a logical *OR* operator",
            "schema": {
              "type": "string",
              "example": "ent_uzm3uxtssvmuxnyrfdffcyjxeu,ent_hy5wtzwzeuwefmsnjtdhw4scfi"
            }
          },
          {
            "name": "processing_channel_ids",
            "in": "query",
            "description": "One or more comma-separated processing channels. This works like a logical *OR* operator.",
            "schema": {
              "type": "string",
              "example": "pc_uzm3uxtssvmuxnyrfdffcyjxeu,pc_hy5wtzwzeuwefmsnjtdhw4scfi"
            }
          },
          {
            "name": "segment_ids",
            "in": "query",
            "description": "One or more comma-separated segments. This works like a logical *OR* operator.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "statuses",
            "in": "query",
            "description": "One or more comma-separated statuses. This works like a logical *OR* operator",
            "schema": {
              "type": "string",
              "example": "evidence_required,evidence_under_review"
            }
          },
          {
            "name": "payment_id",
            "in": "query",
            "description": "The unique identifier of the payment",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "payment_reference",
            "in": "query",
            "description": "An optional reference (such as an order ID) that you can use later to identify the payment. Previously known as `TrackId`",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "payment_arn",
            "in": "query",
            "description": "The acquirer reference number (ARN) that you can use to query the issuing bank",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "payment_mcc",
            "in": "query",
            "description": "The merchant category code (MCC) of the payment (ISO 18245)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "this_channel_only",
            "in": "query",
            "description": "If `true`, only returns disputes of the specific channel that the secret key is associated with. Otherwise, returns all disputes for that business",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Disputes retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisputePaged"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "422": {
            "description": "Unprocessable paging",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagingError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth": [
              "disputes",
              "disputes:view"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\nusing Checkout.Disputes;\n\n//API keys\nICheckoutApi api = CheckoutSdk.Builder().StaticKeys()\n    .SecretKey(\"secret_key\")\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\n//OAuth\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.Disputes)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\nDisputesQueryFilter request = new DisputesQueryFilter\n{\n    Limit = 250,\n    To = DateTime.Now,\n};\n\ntry\n{\n    DisputesQueryResponse response = await api.DisputesClient().Query(request);\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n\t\"github.com/checkout/checkout-sdk-go/disputes\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Disputes}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nquery := disputes.QueryFilter{\n\tLimit:            10,\n\tSkip:             5,\n\tFrom:             time.Parse(\"2006-01-02T15:04:05Z\", time.Now().AddDate(0, -1, 0).Format(\"2006-01-02T15:04:05Z\")),\n\tTo:               time.Parse(\"2006-01-02T15:04:05Z\", time.Now().Format(\"2006-01-02T15:04:05Z\")),\n\tStatuses:         strings.Join([]string{disputes.EvidenceRequired, disputes.Accepted}[:], \",\"),\n\tPaymentId:        \"payment_id\",\n\tPaymentReference: \"payment_reference\",\n\tPaymentArn:       \"payment_arn\",\n}\n\nresponse, err := api.Disputes.Query(query)\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\nimport com.checkout.disputes.DisputeStatus;\nimport com.checkout.disputes.DisputesQueryFilter;\nimport com.checkout.disputes.DisputesQueryResponse;\n\n// API Keys\nCheckoutApi api = CheckoutSdk.builder()\n    .staticKeys()\n    .secretKey(\"secret_key\")\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\n// OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.DISPUTES) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\nDisputesQueryFilter query = DisputesQueryFilter.builder()\n    .paymentId(\"payment_id\")\n    .from(LocalDateTime.now().minusMonths(2).toInstant(ZoneOffset.UTC))\n    .to(Instant.now())\n    .paymentArn(\"payment_arn\")\n    .paymentReference(\"payment_reference\")\n    .statuses(String.join(\",\", DisputeStatus.EVIDENCE_UNDER_REVIEW.getStatus(), DisputeStatus.ARBITRATION_WON.getStatus()))\n    .limit(10)\n    .skip(5)\n    .build();\n\ntry {\n    DisputesQueryResponse response = api.disputesClient().query(query).get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "Node",
            "source": "import { Checkout } from 'checkout-sdk-node';\n\nlet cko = new Checkout('your_client_secret_here', {\n\tclient: 'ack_XXXXXXXXXXXX',\n\tscope: ['gateway'], // array of scopes\n\tenvironment: 'sandbox', // or \"production\"\n        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\"\n});\n\n// Or if you use api keys:\n// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});\n\ntry {\n\tconst disputes = await cko.disputes.get({\n\t\tlimit: 5,\n\t\tid: 'dsp_bc94ebda8d275i461229',\n\t});\n} catch (err) {\n\tconsole.log(err.name);\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Disputes\\DisputesQueryFilter;\nuse Checkout\\Environment;\nuse Checkout\\OAuthScope;\n\n//API Keys\n$api = CheckoutSdk::builder()->staticKeys()\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->secretKey(\"secret_key\")\n    ->build();\n\n//OAuth\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Gateway])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\n$query = new DisputesQueryFilter();\n$query->payment_id = \"payment_id\";\n$query->payment_arn = \"payment_arn\";\n$query->payment_reference = \"payment_reference\";\n$query->statuses = \"comma,separated,list,statuses\";\n$query->limit = 10;\n$query->skip = 5;\n$query->to = new DateTime(); // UTC, now\n\n$from = new DateTime();\n$from->setTimezone(new DateTimeZone(\"America/Mexico_City\"));\n$from->sub(new DateInterval(\"P1M\"));\n$query->from = $from;\n\ntry {\n    $response = $api->getDisputesClient()->query($query);\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.disputes.disputes import DisputesQueryFilter\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\n\n# API Key\napi_key = (\n    CheckoutSdk.builder() \n    .secret_key('secret_key') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .build()\n)\n\n# OAuth\noauth = (\n    CheckoutSdk.builder() \n    .oauth() \n    .client_credentials('client_id', 'client_secret') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.DISPUTES, OAuthScopes.DISPUTES_VIEW]) \n    .build()\n)\n\nquery = DisputesQueryFilter()\nnow = datetime.now(timezone.utc)\nquery.from_ = now - relativedelta(months=6)\nquery.to = now\nquery.payment_arn = 'payment_arn'\nquery.payment_reference = 'payment_reference'\nquery.limit = 10\nquery.skip = 5\n\ntry:\n    response = api.disputes.query(query)\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n    # Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n    # Invalid authorization"
          }
        ]
      }
    },
    "/disputes/{dispute_id}": {
      "get": {
        "tags": [
          "Disputes"
        ],
        "summary": "Get dispute details",
        "description": "Returns all the details of a dispute using the dispute identifier.",
        "operationId": "getDisputeDetails",
        "parameters": [
          {
            "name": "dispute_id",
            "in": "path",
            "description": "The dispute identifier",
            "required": true,
            "schema": {
              "pattern": "^(dsp)_(\\\\w{22,26})$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Dispute retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Dispute"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Dispute not found"
          }
        },
        "security": [
          {
            "OAuth": [
              "disputes",
              "disputes:view"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\nusing Checkout.Disputes;\n\n//API keys\nICheckoutApi api = CheckoutSdk.Builder().StaticKeys()\n    .SecretKey(\"secret_key\")\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\n//OAuth\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.Disputes)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\ntry\n{\n    DisputeDetailsResponse response = await api.DisputesClient().GetDisputeDetails(\"disputes_id\");\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Disputes}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nresponse, err := api.Disputes.GetDisputeDetails(\"dispute_id\")\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\nimport com.checkout.disputes.DisputeDetailsResponse;\n\n// API Keys\nCheckoutApi api = CheckoutSdk.builder()\n    .staticKeys()\n    .secretKey(\"secret_key\")\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\n// OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.DISPUTES) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\ntry {\n    DisputeDetailsResponse response = api.disputesClient().getDisputeDetails(\"dispute_id\").get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "Node",
            "source": "import { Checkout } from 'checkout-sdk-node';\n\nlet cko = new Checkout('your_client_secret_here', {\n\tclient: 'ack_XXXXXXXXXXXX',\n\tscope: ['gateway'], // array of scopes\n\tenvironment: 'sandbox', // or \"production\"\n        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\"\n});\n\n// Or if you use api keys:\n// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});\n\ntry {\n\tconst disputeDetails = await cko.disputes.getDetails('dsp_bc94ebda8d275i461229');\n} catch (err) {\n\tconsole.log(err.name);\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Environment;\nuse Checkout\\OAuthScope;\n\n//API Keys\n$api = CheckoutSdk::builder()->staticKeys()\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->secretKey(\"secret_key\")\n    ->build();\n\n//OAuth\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Disputes])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\ntry {\n    $response = $api->getDisputesClient()->getDisputeDetails(\"dispute_id\");\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\n\n# API Key\napi_key = (\n    CheckoutSdk.builder() \n    .secret_key('secret_key') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .build()\n)\n\n# OAuth\noauth = (\n    CheckoutSdk.builder() \n    .oauth() \n    .client_credentials('client_id', 'client_secret') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.DISPUTES, OAuthScopes.DISPUTES_VIEW]) \n    .build()\n)\n\ntry:\n    response = api.disputes.get_dispute_details('dispute_id')\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n    # Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n    # Invalid authorization"
          }
        ]
      }
    },
    "/disputes/{dispute_id}/accept": {
      "post": {
        "tags": [
          "Disputes"
        ],
        "summary": "Accept dispute",
        "description": "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.",
        "operationId": "acceptDispute",
        "parameters": [
          {
            "name": "dispute_id",
            "in": "path",
            "description": "The dispute identifier",
            "required": true,
            "schema": {
              "pattern": "^(dsp)_(\\w{26})$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Dispute accepted successfully"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Dispute not found"
          }
        },
        "security": [
          {
            "OAuth": [
              "disputes",
              "disputes:accept"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\n\n//API keys\nICheckoutApi api = CheckoutSdk.Builder().StaticKeys()\n    .SecretKey(\"secret_key\")\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\n//OAuth\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.Disputes)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\ntry\n{\n    EmptyResponse response = await api.DisputesClient().Accept(\"disputes_id\");\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\"github.com/checkout/checkout-sdk-go\"\n\"github.com/checkout/checkout-sdk-go/configuration\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Disputes}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nresponse, err := api.Disputes.Accept(\"dispute_id\")\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.EmptyResponse;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\n\n// API Keys\nCheckoutApi api = CheckoutSdk.builder()\n    .staticKeys()\n    .secretKey(\"secret_key\")\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\n// OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.DISPUTES) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\ntry {\n    EmptyResponse response = api.disputesClient().accept(\"dispute_id\").get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}\n"
          },
          {
            "lang": "Node",
            "source": "import { Checkout } from 'checkout-sdk-node';\n\nlet cko = new Checkout('your_client_secret_here', {\n\tclient: 'ack_XXXXXXXXXXXX',\n\tscope: ['gateway'], // array of scopes\n\tenvironment: 'sandbox', // or \"production\"\n        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\"\n});\n\n// Or if you use api keys:\n// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});\n\ntry {\n\tconst accept = await cko.disputes.accept('dsp_bc94ebda8d275i461229');\n} catch (err) {\n\tconsole.log(err.name);\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Environment;\nuse Checkout\\OAuthScope;\n\n//API Keys\n$api = CheckoutSdk::builder()->staticKeys()\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->secretKey(\"secret_key\")\n    ->build();\n\n//OAuth\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Disputes])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\ntry {\n    $response = $api->getDisputesClient()->accept(\"dispute_id\");\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\n\n# API Key\napi_key = (\n    CheckoutSdk.builder() \n    .secret_key('secret_key') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .build()\n)\n\n# OAuth\noauth = (\n    CheckoutSdk.builder() \n    .oauth() \n    .client_credentials('client_id', 'client_secret') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.DISPUTES, OAuthScopes.DISPUTES_ACCEPT]) \n    .build()\n)\n\ntry:\n    response = api.disputes.accept('dispute_id')\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n    # Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n    # Invalid authorization\n"
          }
        ]
      }
    },
    "/disputes/{dispute_id}/evidence": {
      "put": {
        "tags": [
          "Disputes"
        ],
        "summary": "Provide dispute evidence",
        "description": "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.**\n",
        "operationId": "provideDisputeEvidence",
        "parameters": [
          {
            "name": "dispute_id",
            "in": "path",
            "description": "The dispute identifier.",
            "required": true,
            "schema": {
              "pattern": "^(dsp)_(\\w{26})$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProvideEvidenceRequest"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Dispute evidence provided successfully"
          },
          "400": {
            "description": "Unprocessable"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Dispute not found"
          },
          "422": {
            "description": "Unprocessable entity",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "request_id": {
                      "type": "string",
                      "description": "The request identifier."
                    },
                    "error_type": {
                      "type": "string",
                      "description": "The error type."
                    },
                    "error_codes": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "The error codes returned from the validation.\n  * `invoice_or_receipt_file_id_invalid`\n  * `invoice_or_receipt_text_invalid`\n  * `invoice_showing_distinct_transactions_file_id_invalid`\n  * `invoice_showing_distinct_transactions_text_invalid`\n  * `customer_communication_file_id_invalid`\n  * `customer_communication_text_invalid`\n  * `refund_or_cancellation_policy_file_id_invalid`\n  * `refund_or_cancellation_policy_text_invalid`\n  * `recurring_transaction_agreement_file_id_invalid`\n  * `proof_of_delivery_or_service_date_file_id_invalid`\n  * `proof_of_delivery_or_service_date_text_invalid`\n  * `additional_evidence_file_id_invalid`\n  * `additional_evidence_text_invalid`\n  * `proof_of_delivery_or_service_text_invalid`\n  * `proof_of_delivery_or_service_text_invalid`\n  * `dispute_not_found`\n  * `should_be_merchandise_or_service`\n  * `should_be_merchandise_or_service_required`\n  * `merchandise_or_service_desc_required`\n  * `merchandise_or_service_desc_invalid`\n  * `delivery_status_invalid`\n  * `tracking_information_required`\n  * `tracking_information_invalid`\n  * `historical_arn_required`\n  * `historical_arn_invalid`\n  * `historical_transaction_date_invalid`\n  * `historical_transaction_address_required`\n  * `historical_transaction_address_invalid`\n  * `historical_transaction_city_required`\n  * `historical_transaction_city_invalid`\n  * `historical_transaction_state_region_required`\n  * `historical_transaction_state_region_invalid_length_2`\n  * `historical_transaction_postalcode_required`\n  * `historical_transaction_postalcode_invalid`\n  * `historical_transaction_country_required`\n  * `historical_transaction_country_invalid`\n  * `historical_transaction_country_should_be_only_numbers`\n  * `not_valid_compelling_evidence_candidate`\n  * `ip_address_and_device_id_is_required`\n  * `ip_address_is_invalid`\n  * `device_id_minimum_15_length`\n  * `two_historical_transactions_required`\n  * `two_core_properties_in_historical_transactions_required`\n  * `historical_transactions_should_be_different`\n  * `merchandise_or_service_provided_date_required`\n"
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth": [
              "disputes",
              "disputes:provide-evidence"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\nusing Checkout.Disputes;\n\n//API keys\nICheckoutApi api = CheckoutSdk.Builder().StaticKeys()\n    .SecretKey(\"secret_key\")\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\n//OAuth\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.Disputes)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\nDisputeEvidenceRequest request = new DisputeEvidenceRequest\n{\n    ProofOfDeliveryOrServiceFile = \"file_xxxxxx\",\n    ProofOfDeliveryOrServiceText = \"proof of delivery or service text\",\n    InvoiceOrReceiptFile = \"file_xxxxxx\",\n    InvoiceOrReceiptText = \"Copy of the invoice\",\n    CustomerCommunicationFile = \"file_xxxxxx\",\n    CustomerCommunicationText = \"Copy of an email exchange with the cardholder\",\n    AdditionalEvidenceFile = \"file_xxxxxx\",\n    AdditionalEvidenceText = \"Scanned document\",\n    InvoiceShowingDistinctTransactionsFile = \"file_xxxxxx\",\n    InvoiceShowingDistinctTransactionsText = \"Copy of invoice #1244 showing two transactions\",\n    RefundOrCancellationPolicyFile = \"file_xxxxxx\",\n    RefundOrCancellationPolicyText = \"Copy of the refund policy\",\n    RecurringTransactionAgreementFile = \"file_xxxxxx\",\n    RecurringTransactionAgreementText = \"Copy of the recurring transaction agreement\",\n    ProofOfDeliveryOrServiceDateFile = \"file_xxxxxx\",\n    ProofOfDeliveryOrServiceDateText = \"Copy of the customer receipt showing the merchandise was delivered\"\n};\n\ntry\n{\n    EmptyResponse response = await api.DisputesClient().PutEvidence(\"disputes_id\", request);\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n\t\"github.com/checkout/checkout-sdk-go/disputes\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Disputes}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nrequest := disputes.Evidence{\n\tProofOfDeliveryOrServiceFile:           \"file_id\",\n\tProofOfDeliveryOrServiceText:           \"proof of delivery or service text\",\n\tInvoiceOrReceiptFile:                   \"file_id\",\n\tInvoiceOrReceiptText:                   \"proof of receipt text\",\n\tInvoiceShowingDistinctTransactionsFile: \"file_id\",\n\tInvoiceShowingDistinctTransactionsText: \"invoice showing distinct transactions text\",\n\tCustomerCommunicationFile:              \"file_id\",\n\tCustomerCommunicationText:              \"customer communication text\",\n\tRefundOrCancellationPolicyFile:         \"file_id\",\n\tRefundOrCancellationPolicyText:         \"refund or cancellation policy text\",\n\tRecurringTransactionAgreementFile:      \"file_id\",\n\tRecurringTransactionAgreementText:      \"recurring transaction agreement text\",\n\tAdditionalEvidenceFile:                 \"file_id\",\n\tAdditionalEvidenceText:                 \"additional evidence text\",\n\tProofOfDeliveryOrServiceDateFile:       \"file_id\",\n\tProofOfDeliveryOrServiceDateText:       \"proof of delivery or service date text\",\n}\n\nresponse, err := api.Disputes.PutEvidence(\"dispute_id\", request)\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.EmptyResponse;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\nimport com.checkout.disputes.DisputeEvidenceRequest;\n\n// API Keys\nCheckoutApi api = CheckoutSdk.builder()\n    .staticKeys()\n    .secretKey(\"secret_key\")\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\n// OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.DISPUTES) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\nDisputeEvidenceRequest evidenceRequest = DisputeEvidenceRequest.builder()\n    .proofOfDeliveryOrServiceFile(\"file_id\")\n    .proofOfDeliveryOrServiceText(\"proof of delivery or service text\")\n    .invoiceOrReceiptFile(\"file_id\")\n    .invoiceOrReceiptText(\"Copy of the invoice\")\n    .invoiceShowingDistinctTransactionsFile(\"file_id\")\n    .invoiceShowingDistinctTransactionsText(\"Copy of invoice #1244 showing two transactions\")\n    .customerCommunicationFile(\"file_id\")\n    .customerCommunicationText(\"Copy of an email exchange with the cardholder\")\n    .refundOrCancellationPolicyFile(\"file_id\")\n    .refundOrCancellationPolicyText(\"Copy of the refund policy\")\n    .recurringTransactionAgreementFile(\"file_id\")\n    .recurringTransactionAgreementText(\"Copy of the recurring transaction agreement\")\n    .additionalEvidenceFile(\"file_id\")\n    .additionalEvidenceText(\"Scanned document\")\n    .proofOfDeliveryOrServiceDateFile(\"file_id\")\n    .proofOfDeliveryOrServiceDateText(\"Copy of the customer receipt showing the merchandise was delivered on 2018-12-20\")\n    .build();\n\ntry {\n    EmptyResponse response = api.disputesClient().putEvidence(\"dispute_id\", evidenceRequest).get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "Node",
            "source": "import { Checkout } from 'checkout-sdk-node';\n\nlet cko = new Checkout('your_client_secret_here', {\n\tclient: 'ack_XXXXXXXXXXXX',\n\tscope: ['gateway'], // array of scopes\n\tenvironment: 'sandbox', // or \"production\"\n        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\"\n});\n\n// Or if you use api keys:\n// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});\n\ntry {\n\tconst evidence = await cko.disputes.provideEvidence('dsp_bc94ebda8d275i461229', {\n\t\tproof_of_delivery_or_service_text: 'http://checkout.com/document.pdf',\n\t});\n} catch (err) {\n\tconsole.log(err.name);\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Disputes\\DisputeEvidenceRequest;\nuse Checkout\\Environment;\nuse Checkout\\OAuthScope;\n\n//API Keys\n$api = CheckoutSdk::builder()->staticKeys()\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->secretKey(\"secret_key\")\n    ->build();\n\n//OAuth\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Disputes])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\n$request = new DisputeEvidenceRequest();\n$request->proof_of_delivery_or_service_file = \"file_id\";\n$request->proof_of_delivery_or_service_text = \"proof of delivery or service text\";\n$request->invoice_or_receipt_file = \"file_id\";\n$request->invoice_or_receipt_text = \"Copy of the invoice\";\n$request->customer_communication_file = \"file_id\";\n$request->customer_communication_text = \"Copy of an email exchange with the cardholder\";\n$request->additional_evidence_file = \"file_id\";\n$request->additional_evidence_text = \"Scanned document\";\n\ntry {\n    $api->getDisputesClient()->putEvidence(\"dispute_id\", $request);\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.disputes.disputes import DisputeEvidenceRequest\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\n\n# API Key\napi_key = (\n    CheckoutSdk.builder() \n    .secret_key('secret_key') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .build()\n)\n\n# OAuth\noauth = (\n    CheckoutSdk.builder() \n    .oauth() \n    .client_credentials('client_id', 'client_secret') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.DISPUTES, OAuthScopes.DISPUTES_PROVIDE_EVIDENCE]) \n    .build()\n)\n\nevidence_request = DisputeEvidenceRequest()\nevidence_request.proof_of_delivery_or_service_file = 'proof_of_delivery_or_service_file'\nevidence_request.proof_of_delivery_or_service_text = 'proof of delivery or service text'\nevidence_request.invoice_or_receipt_file = 'invoice_or_receipt_file'\nevidence_request.invoice_or_receipt_text = 'invoice_or_receipt_text'\nevidence_request.customer_communication_file = 'customer_communication_file'\nevidence_request.customer_communication_text = 'customer_communication_text'\nevidence_request.additional_evidence_file = 'additional_evidence_file'\nevidence_request.additional_evidence_text = 'additional_evidence_text'\n\ntry:\n    response = api.disputes.put_evidence('dispute_id', evidence_request)\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n    # Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n    # Invalid authorization"
          }
        ]
      },
      "get": {
        "tags": [
          "Disputes"
        ],
        "summary": "Get dispute evidence",
        "description": "Retrieves a list of the evidence submitted in response to a specific dispute.\n",
        "operationId": "getDisputeEvidence",
        "parameters": [
          {
            "name": "dispute_id",
            "in": "path",
            "description": "The dispute identifier.",
            "required": true,
            "schema": {
              "pattern": "^(dsp)_(\\w{26})$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Dispute evidence retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Evidence"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Dispute not found"
          }
        },
        "security": [
          {
            "OAuth": [
              "disputes",
              "disputes:view"
            ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\nusing Checkout.Disputes;\n\n//API keys\nICheckoutApi api = CheckoutSdk.Builder().StaticKeys()\n    .SecretKey(\"secret_key\")\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\n//OAuth\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.Disputes)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\ntry\n{\n    DisputeEvidenceResponse response = await api.DisputesClient().GetEvidence(\"disputes_id\");\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Disputes}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nresponse, err := api.Disputes.GetEvidence(\"dispute_id\")\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\nimport com.checkout.disputes.DisputeEvidenceResponse;\n\n// OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.DISPUTES) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\ntry {\n    DisputeEvidenceResponse response = api.disputesClient().getEvidence(\"dispute_id\").get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "Node",
            "source": "import { Checkout } from 'checkout-sdk-node';\n\nlet cko = new Checkout('your_client_secret_here', {\n\tclient: 'ack_XXXXXXXXXXXX',\n\tscope: ['gateway'], // array of scopes\n\tenvironment: 'sandbox', // or \"production\"\n        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\"\n});\n\n// Or if you use api keys:\n// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});\n\ntry {\n\tconst getEvidence = await cko.disputes.getEvidence('dsp_bc94ebda8d275i461229');\n} catch (err) {\n\tconsole.log(err.name);\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Environment;\nuse Checkout\\OAuthScope;\n\n//API Keys\n$api = CheckoutSdk::builder()->staticKeys()\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->secretKey(\"secret_key\")\n    ->build();\n\n//OAuth\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Disputes])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\ntry {\n    $response = $api->getDisputesClient()->getEvidence(\"dispute_id\");\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\n\n# OAuth\noauth = (\n    CheckoutSdk.builder() \n    .oauth() \n    .client_credentials('client_id', 'client_secret') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.DISPUTES, OAuthScopes.DISPUTES_VIEW]) \n    .build()\n)\n\ntry:\n    response = api.disputes.get_evidence('dispute_id')\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n    # Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n    # Invalid authorization"
          }
        ]
      },
      "post": {
        "tags": [
          "Disputes"
        ],
        "summary": "Submit dispute evidence",
        "description": "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.",
        "operationId": "submitDisputeEvidence",
        "parameters": [
          {
            "name": "dispute_id",
            "in": "path",
            "description": "The dispute identifier.",
            "required": true,
            "schema": {
              "pattern": "^(dsp)_(\\w{26})$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Dispute evidence submitted successfully"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Dispute not found"
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "request_id": {
                      "type": "string",
                      "description": "The request identifier."
                    },
                    "error_type": {
                      "type": "string",
                      "description": "The error type."
                    },
                    "error_codes": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "The error codes returned from the validation. Each error code indicates the transaction with the problem.\n  * `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`.\n  * `two_historical_transactions_required` - When using compelling evidence you need to provide at least two historical transactions.\n  * `ip_address_and_device_id_is_required` - When using compelling evidence you need to provide `ip_address` or `device_id`.\n  * `historical_transactions_should_be_different` - When using compelling evidence you need to provide different historical transactions.\n  * `historical_transaction_{transaction_index}_fraud_report` - The ARN provided has a fraud report related.\n  * `historical_transaction_{transaction_index}_active_dispute` - The ARN provided has an active dispute related.\n  * `historical_transaction_{transaction_index}_fraud_dispute` - The ARN provided has a fraud dispute related.\n  * `historical_transaction_{transaction_index}_not_found` - The ARN provided was not found.\n  * `historical_transaction_{transaction_index}_age_invalid` - The historical transaction must be between 120 and 365 days.\n  * `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.\n  * `historical_transaction_{transaction_index}_billing_descriptor_does_not_match` - The billing descriptor from the transaction provided does not match with the disputed transaction.\n  * `historical_transaction_{transaction_index}_card_does_not_match` - The card from the transaction provided does not match with the disputed transaction.\n"
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth": [
              "disputes",
              "disputes:provide-evidence"
            ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\n\n//API keys\nICheckoutApi api = CheckoutSdk.Builder().StaticKeys()\n    .SecretKey(\"secret_key\")\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\n//OAuth\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.Disputes)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\ntry\n{\n    EmptyResponse response = await api.DisputesClient().SubmitEvidence(\"disputes_id\");\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Disputes}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nresponse, err := api.Disputes.SubmitEvidence(\"dispute_id\")\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.EmptyResponse;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\n\n// OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.DISPUTES) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\ntry {\n    EmptyResponse response = api.disputesClient().submitEvidence(\"dispute_id\").get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "Node",
            "source": "import { Checkout } from 'checkout-sdk-node';\n\nlet cko = new Checkout('your_client_secret_here', {\n\tclient: 'ack_XXXXXXXXXXXX',\n\tscope: ['gateway'], // array of scopes\n\tenvironment: 'sandbox', // or \"production\"\n        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\"\n});\n\n// Or if you use api keys:\n// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});\n\ntry {\n\tconst submitEvidence = await cko.disputes.submit('dsp_bc94ebda8d275i461229');\n} catch (err) {\n\tconsole.log(err.name);\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Environment;\nuse Checkout\\OAuthScope;\n\n//API Keys\n$api = CheckoutSdk::builder()->staticKeys()\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->secretKey(\"secret_key\")\n    ->build();\n\n//OAuth\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Disputes])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\ntry {\n    $response = $api->getDisputesClient()->submitEvidence(\"dispute_id\");\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\n\n# OAuth\noauth = (\n    CheckoutSdk.builder() \n    .oauth() \n    .client_credentials('client_id', 'client_secret') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.DISPUTES, OAuthScopes.DISPUTES_VIEW]) \n    .build()\n)\n\ntry:\n    response = api.disputes.submit_evidence('dispute_id')\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n    # Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n    # Invalid authorization"
          }
        ]
      }
    },
    "/disputes/{dispute_id}/evidence/arbitration": {
      "post": {
        "tags": [
          "Disputes"
        ],
        "summary": "Submit dispute arbitration evidence",
        "description": "Submits the previously provided arbitration evidence to the scheme.\n\nYou cannot amend evidence after you submit with this endpoint. Ensure you have provided all of the required information.\n",
        "operationId": "submitDisputeArbitrationEvidence",
        "parameters": [
          {
            "name": "dispute_id",
            "in": "path",
            "description": "The dispute identifier.",
            "required": true,
            "schema": {
              "pattern": "^(dsp)_(\\w{26})$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Dispute arbitration evidence submitted successfully"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Dispute not found"
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "request_id": {
                      "type": "string",
                      "description": "The request identifier."
                    },
                    "error_type": {
                      "type": "string",
                      "description": "The error type."
                    },
                    "error_codes": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "The error codes returned from the validation.\n"
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth": [
              "disputes",
              "disputes:provide-evidence"
            ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\n\n//API keys\nICheckoutApi api = CheckoutSdk.Builder().StaticKeys()\n    .SecretKey(\"secret_key\")\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\n//OAuth\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.Disputes)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\ntry\n{\n    EmptyResponse response = await api.DisputesClient().SubmitArbitrationEvidence(\"disputes_id\");\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Disputes}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nresponse, err := api.Disputes.SubmitArbitrationEvidence(\"dispute_id\")\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.EmptyResponse;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\n\n// OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.DISPUTES) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\ntry {\n    EmptyResponse response = api.disputesClient().submitArbitrationEvidence(\"dispute_id\").get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "Node",
            "source": "import { Checkout } from 'checkout-sdk-node';\n\nlet cko = new Checkout('your_client_secret_here', {\n\tclient: 'ack_XXXXXXXXXXXX',\n\tscope: ['gateway'], // array of scopes\n\tenvironment: 'sandbox', // or \"production\"\n        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\"\n});\n\n// Or if you use api keys:\n// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});\n\ntry {\n\tconst submitEvidence = await cko.disputes.submitArbitration('dsp_bc94ebda8d275i461229');\n} catch (err) {\n\tconsole.log(err.name);\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Environment;\nuse Checkout\\OAuthScope;\n\n//API Keys\n$api = CheckoutSdk::builder()->staticKeys()\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->secretKey(\"secret_key\")\n    ->build();\n\n//OAuth\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Disputes])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\ntry {\n    $response = $api->getDisputesClient()->submitArbitrationEvidence(\"dispute_id\");\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\n\n# OAuth\noauth = (\n    CheckoutSdk.builder()\n    .oauth()\n    .client_credentials('client_id', 'client_secret')\n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.DISPUTES, OAuthScopes.DISPUTES_VIEW])\n    .build()\n)\n\ntry:\n    response = api.disputes.submit_arbitration_evidence('dispute_id')\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n    # Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n    # Invalid authorization"
          }
        ]
      }
    },
    "/disputes/{dispute_id}/evidence/arbitration/submitted": {
      "get": {
        "tags": [
          "Disputes"
        ],
        "summary": "Get dispute submitted arbitration evidence",
        "description": "Retrieves the unique identifier of the PDF file containing all of the evidence submitted to escalate the dispute to arbitration.\n\nTo 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.\n",
        "operationId": "getDisputeSubmittedArbitrationEvidence",
        "parameters": [
          {
            "name": "dispute_id",
            "in": "path",
            "description": "The dispute identifier.",
            "required": true,
            "schema": {
              "pattern": "^(dsp)_(\\w{22,26})$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Dispute retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubmittedEvidenceResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "500": {
            "description": "Internal error"
          }
        },
        "security": [
          {
            "OAuth": [
              "disputes",
              "disputes:view"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      }
    },
    "/disputes/{dispute_id}/evidence/submitted": {
      "get": {
        "tags": [
          "Disputes"
        ],
        "summary": "Get dispute submitted evidence",
        "description": "Retrieves the unique identifier of the PDF file containing all the evidence submitted to represent the dispute case.\n\nTo 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.\n\nEvidence submitted before February 2024 cannot be retrieved using this endpoint.\n",
        "operationId": "getDisputeSubmittedEvidence",
        "parameters": [
          {
            "name": "dispute_id",
            "in": "path",
            "description": "The dispute identifier.",
            "required": true,
            "schema": {
              "pattern": "^(dsp)_(\\w{22,26})$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Dispute retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubmittedEvidenceResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "500": {
            "description": "Internal error"
          }
        },
        "security": [
          {
            "OAuth": [
              "disputes",
              "disputes:view"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      }
    },
    "/disputes/{dispute_id}/schemefiles": {
      "get": {
        "tags": [
          "Disputes"
        ],
        "summary": "Get dispute scheme files",
        "description": "Returns all of the scheme files of a dispute using the dispute identifier. Currently available only for VISA disputes.\n",
        "operationId": "getDisputeSchemeFiles",
        "parameters": [
          {
            "name": "dispute_id",
            "in": "path",
            "description": "The dispute identifier",
            "required": true,
            "schema": {
              "pattern": "^(dsp)_(\\w{22,26})$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Dispute retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SchemeFileResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Dispute not found"
          }
        },
        "security": [
          {
            "OAuth": [
              "disputes",
              "disputes:scheme-files"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Disputes}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nresponse, err := api.Disputes.GetDisputeSchemeFiles(\"dispute_id\")\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          }
        ]
      }
    },
    "/entities/{entityId}/currency-accounts/{currencyAccountId}/top-up-instructions": {
      "get": {
        "tags": [
          "Balances"
        ],
        "summary": "Retrieve top-up instructions",
        "description": "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.",
        "operationId": "getTopUpInstructions",
        "responses": {
          "200": {
            "description": "Top-up instructions retrieved successfully.",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TopUpInstructionsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid `entityId` or `currencyAccountId`."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "The credential lacks access to top-up instructions, or top-ups aren't enabled for the sub-account."
          },
          "404": {
            "description": "The specified sub-account could not be found, or has no top-up instructions available."
          },
          "502": {
            "description": "The request could not be completed. Try again later."
          }
        },
        "security": [
          {
            "OAuth": [
              "balances",
              "balances:top-up-instructions"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "servers": [
        {
          "url": "https://balances.checkout.com",
          "description": "Production environment"
        },
        {
          "url": "https://balances.sandbox.checkout.com",
          "description": "Sandbox environment"
        }
      ],
      "parameters": [
        {
          "name": "entityId",
          "in": "path",
          "description": "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.",
          "required": true,
          "style": "simple",
          "schema": {
            "type": "string"
          },
          "example": "ent_w4jelhppmfiufdnatam37wrfc4"
        },
        {
          "name": "currencyAccountId",
          "in": "path",
          "description": "The ID of the sub-account to retrieve top-up instructions for.",
          "required": true,
          "style": "simple",
          "schema": {
            "type": "string"
          },
          "example": "ca_g5y7d6jo4e2urgforcbf2ey5jm"
        }
      ]
    },
    "/entities/{entityId}/files": {
      "post": {
        "tags": [
          "Platforms"
        ],
        "summary": "Upload a file",
        "description": "Our Platforms solution provides an easy way to upload documentation required for full due diligence.\n\nUse this endpoint to generate a file upload link, which you can then upload a file to using a data-binary type request.\n\nSee the <a href=\"https://checkout.com/docs/platforms/onboarding/api/full/upload-a-file\" target=\"_blank\">documentation</a> for more information.\n\nPlease 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.\n",
        "operationId": "uploadAFile",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlatformsFileUpload"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "File uploaded successfully",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformsFileUploadResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "422": {
            "description": "Unprocessable"
          },
          "429": {
            "description": "Too many requests"
          }
        },
        "security": [
          {
            "OAuth": [
              "files"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "servers": [
          {
            "url": "https://files.checkout.com",
            "description": "Production environment"
          },
          {
            "url": "https://files.sandbox.checkout.com",
            "description": "Sandbox environment"
          }
        ]
      },
      "parameters": [
        {
          "name": "entityId",
          "in": "path",
          "description": "The ID of the sub-entity",
          "required": true,
          "style": "simple",
          "schema": {
            "type": "string"
          },
          "example": "ent_w4jelhppmfiufdnatam37wrfc4"
        }
      ]
    },
    "/entities/{entityId}/files/{fileId}": {
      "get": {
        "tags": [
          "Platforms"
        ],
        "summary": "Retrieve a file",
        "description": "Retrieve information about a previously uploaded file.\n\nPlease 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.\n",
        "operationId": "retrieveAFile",
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              },
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformsFileRetrieveResponse"
                }
              }
            }
          },
          "404": {
            "description": "File not found"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "OAuth": [
              "files",
              "files:retrieve"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "servers": [
          {
            "url": "https://files.checkout.com",
            "description": "Production environment"
          },
          {
            "url": "https://files.sandbox.checkout.com",
            "description": "Sandbox environment"
          }
        ]
      },
      "parameters": [
        {
          "name": "entityId",
          "in": "path",
          "description": "The ID of the sub-entity",
          "required": true,
          "style": "simple",
          "schema": {
            "type": "string"
          },
          "example": "ent_w4jelhppmfiufdnatam37wrfc4"
        },
        {
          "name": "fileId",
          "in": "path",
          "description": "The ID of the file. The value is always prefixed with `file_`.",
          "required": true,
          "style": "simple",
          "schema": {
            "type": "string"
          },
          "example": "file_w4jelhppkaskd0dnatam37wrfc4"
        }
      ]
    },
    "/face-authentications": {
      "post": {
        "tags": [
          "Face Authentication"
        ],
        "summary": "Create a face authentication",
        "description": "<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>\nCreate 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.\n\nEnsure you use your Face Authentication [configuration ID](https://www.checkout.com/docs/business-operations/manage-identities/authenticate-with-biometrics#Configuration). \n",
        "operationId": "create_face_authentication",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FavFaceAuthentication"
              },
              "examples": {
                "face_authentication_creation_request_body": {
                  "$ref": "#/components/examples/fav_face_authentication_creation_request_body"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Face authentication created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "required": [
                    "user_journey_id"
                  ],
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/FavFaceAuthenticationOutput"
                    }
                  ]
                },
                "examples": {
                  "face_authentication_creation_response_body": {
                    "$ref": "#/components/examples/fav_face_authentication_creation_response_body"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FavFaceAuthenticationError"
                },
                "examples": {
                  "face_authentication_creation_request_invalid_body": {
                    "$ref": "#/components/examples/fav_face_authentication_creation_request_invalid_body"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FavFaceAuthenticationError"
                },
                "examples": {
                  "face_authentication_unprocessable_entity_body": {
                    "$ref": "#/components/examples/fav_face_authentication_unprocessable_entity_body"
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "OAuth": [
              "identity-verification"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "servers": [
        {
          "url": "https://identity-verification.checkout.com",
          "description": "Production environment"
        },
        {
          "url": "https://identity-verification.sandbox.checkout.com",
          "description": "Sandbox environment"
        }
      ]
    },
    "/face-authentications/{face_authentication_id}": {
      "get": {
        "tags": [
          "Face Authentication"
        ],
        "summary": "Get a face authentication",
        "description": "<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>\nGet the details of a [face authentication](https://www.checkout.com/docs/business-operations/manage-identities/authenticate-with-biometrics).\n",
        "operationId": "retrieve_face_authentication",
        "parameters": [
          {
            "name": "face_authentication_id",
            "in": "path",
            "description": "The face authentication's unique identifier.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/FavFaceAuthenticationId"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Face authentication retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "required": [
                    "user_journey_id"
                  ],
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/FavFaceAuthenticationOutput"
                    }
                  ]
                },
                "examples": {
                  "Approved Identity Verification Response Body": {
                    "$ref": "#/components/examples/fav_face_authentication_response_body_approved"
                  },
                  "Declined Identity Verification Response Body": {
                    "$ref": "#/components/examples/fav_face_authentication_response_body_declined"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "OAuth": [
              "identity-verification"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "servers": [
        {
          "url": "https://identity-verification.checkout.com",
          "description": "Production environment"
        },
        {
          "url": "https://identity-verification.sandbox.checkout.com",
          "description": "Sandbox environment"
        }
      ]
    },
    "/face-authentications/{face_authentication_id}/anonymize": {
      "post": {
        "tags": [
          "Face Authentication"
        ],
        "summary": "Anonymize a face authentication",
        "description": "<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>\nRemove the personal data in a [face authentication](https://www.checkout.com/docs/business-operations/manage-identities/authenticate-with-biometrics).\n",
        "operationId": "anonymize_face_authentication",
        "parameters": [
          {
            "name": "face_authentication_id",
            "in": "path",
            "description": "The face authentication's unique identifier.",
            "required": true,
            "schema": {
              "pattern": "^fav_\\w+$",
              "type": "string"
            },
            "example": "fav_mtta050yudd54y5iqb5ijh8jtvz"
          }
        ],
        "responses": {
          "200": {
            "description": "Personal data removed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "required": [
                    "user_journey_id"
                  ],
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/FavFaceAuthenticationOutput"
                    }
                  ]
                },
                "examples": {
                  "face_authentication_response_body_anonymized": {
                    "$ref": "#/components/examples/fav_face_authentication_response_body_anonymized"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FavFaceAuthenticationError"
                },
                "examples": {
                  "fav_face_authentication_unprocessable_entity_body": {
                    "$ref": "#/components/examples/fav_face_authentication_unprocessable_entity_body"
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "OAuth": [
              "identity-verification"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "servers": [
        {
          "url": "https://identity-verification.checkout.com",
          "description": "Production environment"
        },
        {
          "url": "https://identity-verification.sandbox.checkout.com",
          "description": "Sandbox environment"
        }
      ]
    },
    "/face-authentications/{face_authentication_id}/attempts": {
      "post": {
        "tags": [
          "Face Authentication"
        ],
        "summary": "Create a face authentication attempt",
        "description": "<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>\nCreate an attempt for a [face authentication](https://www.checkout.com/docs/business-operations/manage-identities/authenticate-with-biometrics).\n\nIf 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:\n\n- `created`\n- `pending`\n- `capture_in_progress`\n- `retry_required`\n\nIf you create a new attempt while the status is any other value, you receive a `409 Conflict` response.\n",
        "operationId": "create_fav_attempt",
        "parameters": [
          {
            "name": "face_authentication_id",
            "in": "path",
            "description": "The face authentication's unique identifier.",
            "required": true,
            "schema": {
              "pattern": "^fav_\\w+$",
              "type": "string"
            },
            "example": "fav_mtta050yudd54y5iqb5ijh8jtvz"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FavAttemptRequest"
              },
              "examples": {
                "Minimal body": {
                  "$ref": "#/components/examples/fav_attempt_creation_request_body_min"
                },
                "All possible data": {
                  "$ref": "#/components/examples/fav_attempt_creation_request_body_max"
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Face authentication attempt created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/FavAttemptResponse"
                    }
                  ]
                },
                "examples": {
                  "identity_verification_creation_response_body": {
                    "$ref": "#/components/examples/fav_attempt_creation_response_body"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Conflict"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "identity-verification"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "get": {
        "tags": [
          "Face Authentication"
        ],
        "summary": "Get face authentication attempts",
        "description": "<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>\nGet the details of all attempts for a specific [face authentication](https://www.checkout.com/docs/business-operations/manage-identities/authenticate-with-biometrics).\n",
        "operationId": "list_fav_attempts",
        "parameters": [
          {
            "name": "face_authentication_id",
            "in": "path",
            "description": "The face authentication's unique identifier.",
            "required": true,
            "schema": {
              "pattern": "^fav_\\w+$",
              "type": "string"
            },
            "example": "fav_mtta050yudd54y5iqb5ijh8jtvz"
          },
          {
            "name": "skip",
            "in": "query",
            "description": "The number of attempts to skip.",
            "schema": {
              "type": "integer",
              "default": 0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum number of attempts to return.",
            "schema": {
              "type": "integer",
              "default": 10
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Face authentication attempts retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/FavAttemptResponseList"
                    }
                  ]
                },
                "examples": {
                  "face_authentication_list_response_body": {
                    "$ref": "#/components/examples/fav_attempt_list_response_body"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "identity-verification"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "servers": [
        {
          "url": "https://identity-verification.checkout.com",
          "description": "Production environment"
        },
        {
          "url": "https://identity-verification.sandbox.checkout.com",
          "description": "Sandbox environment"
        }
      ]
    },
    "/face-authentications/{face_authentication_id}/attempts/{attempt_id}": {
      "get": {
        "tags": [
          "Face Authentication"
        ],
        "summary": "Get a face authentication attempt",
        "description": "<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>\nGet the details of a specific attempt for a [face authentication](https://www.checkout.com/docs/business-operations/manage-identities/authenticate-with-biometrics).\n",
        "operationId": "get_fav_attempt",
        "parameters": [
          {
            "name": "face_authentication_id",
            "in": "path",
            "description": "The face authentication's unique identifier.",
            "required": true,
            "schema": {
              "pattern": "^fav_\\w+$",
              "type": "string"
            },
            "example": "fav_mtta050yudd54y5iqb5ijh8jtvz"
          },
          {
            "name": "attempt_id",
            "in": "path",
            "description": "The attempt's unique identifier.",
            "required": true,
            "schema": {
              "pattern": "^fatp_\\w+$",
              "type": "string"
            },
            "example": "fatp_nk1wbmmczqumwt95k3v39mhbh2w"
          }
        ],
        "responses": {
          "200": {
            "description": "Face authentication attempt retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/FavAttemptResponse"
                    }
                  ]
                },
                "examples": {
                  "face_authentication_list_response_body": {
                    "$ref": "#/components/examples/fav_attempt_get_response_body"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "identity-verification"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "servers": [
        {
          "url": "https://identity-verification.checkout.com",
          "description": "Production environment"
        },
        {
          "url": "https://identity-verification.sandbox.checkout.com",
          "description": "Sandbox environment"
        }
      ]
    },
    "/face-authentications/{face_authentication_id}/attempts/{attempt_id}/assets": {
      "get": {
        "tags": [
          "Face Authentication"
        ],
        "summary": "Get face authentication attempt assets",
        "description": "<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>\nGet the assets (face images and videos) captured during a [face authentication](https://www.checkout.com/docs/business-operations/manage-identities/authenticate-with-biometrics) attempt.\n\nVideos are not exposed by default. Contact your account manager to enable this feature.\n\nResults are paginated. Use the `skip` and `limit` query parameters to navigate through pages.\n",
        "operationId": "get_face_authentication_attempt_assets",
        "parameters": [
          {
            "name": "face_authentication_id",
            "in": "path",
            "description": "The face authentication's unique identifier.",
            "required": true,
            "schema": {
              "pattern": "^fav_\\w+$",
              "type": "string"
            },
            "example": "fav_mtta050yudd54y5iqb5ijh8jtvz"
          },
          {
            "name": "attempt_id",
            "in": "path",
            "description": "The attempt's unique identifier.",
            "required": true,
            "schema": {
              "pattern": "^fatp_\\w+$",
              "type": "string"
            },
            "example": "fatp_nk1wbmmczqumwt95k3v39mhbh2w"
          },
          {
            "name": "skip",
            "in": "query",
            "description": "The number of assets to skip.",
            "schema": {
              "type": "integer",
              "default": 0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum number of assets to return.",
            "schema": {
              "type": "integer",
              "default": 10
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Face authentication attempt assets retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FavAttemptAssets"
                },
                "examples": {
                  "fav_attempt_assets_response_body": {
                    "$ref": "#/components/examples/fav_attempt_assets_response_body"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "identity-verification"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "servers": [
        {
          "url": "https://identity-verification.checkout.com",
          "description": "Production environment"
        },
        {
          "url": "https://identity-verification.sandbox.checkout.com",
          "description": "Sandbox environment"
        }
      ]
    },
    "/files": {
      "post": {
        "tags": [
          "Disputes"
        ],
        "summary": "Upload file",
        "description": "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.",
        "operationId": "uploadFile",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/File"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "File uploaded successfully",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileUploadResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "422": {
            "description": "Unprocessable"
          },
          "429": {
            "description": "Too many requests"
          }
        },
        "security": [
          {
            "OAuth": [
              "disputes",
              "disputes:provide-evidence"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\nusing Checkout.Common;\n\n//API keys\nICheckoutApi api = CheckoutSdk.Builder().StaticKeys()\n    .SecretKey(\"secret_key\")\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\n//OAuth\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.Disputes)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\ntry\n{\n    IdResponse response = await api.DisputesClient().SubmitFile(\"file_path\", \"dispute_evidence\");\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/common\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Files}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nrequest := common.File{\n\tFile:    \"evidence.pdf\",\n\tPurpose: common.DisputesEvidence,\n}\n\nresponse, err := api.Disputes.UploadFile(request)\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\nimport com.checkout.common.FilePurpose;\nimport com.checkout.common.FileRequest;\nimport com.checkout.common.IdResponse;\n\n// API Keys\nCheckoutApi api = CheckoutSdk.builder()\n    .staticKeys()\n    .secretKey(\"secret_key\")\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\n// OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.FILES) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\nFile file = new File(\"evidence.pdf\");\nFileRequest fileRequest = FileRequest.builder()\n    .file(file)\n    .contentType(ContentType.create(\"application/pdf\"))\n    .purpose(FilePurpose.DISPUTE_EVIDENCE)\n    .build();\n\ntry {\n    IdResponse response = api.disputesClient().uploadFile(fileRequest).get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "Node",
            "source": "import { Checkout } from 'checkout-sdk-node';\n\nlet cko = new Checkout('your_client_secret_here', {\n\tclient: 'ack_XXXXXXXXXXXX',\n\tscope: ['gateway'], // array of scopes\n\tenvironment: 'sandbox', // or \"production\"\n        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\"\n});\n\n// Or if you use api keys:\n// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});\n\ntry {\n\tconst file = await cko.files.upload({\n\t\tpath: fs.createReadStream('./test/files/evidence.jpg'),\n\t\tpurpose: 'dispute_evidence',\n\t});\n} catch (err) {\n\tconsole.log(err.name);\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Environment;\nuse Checkout\\Files\\FileRequest;\nuse Checkout\\OAuthScope;\n\n//API Keys\n$api = CheckoutSdk::builder()->staticKeys()\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->secretKey(\"secret_key\")\n    ->build();\n\n//OAuth\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Disputes])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\n$fileRequest = new FileRequest();\n$fileRequest->file = \"path/to/file\";\n$fileRequest->purpose = \"dispute_evidence\";\n\ntry {\n    $response = $api->getDisputesClient()->uploadFile($fileRequest);\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.files.files import FileRequest\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\n\n# API Key\napi_key = (\n    CheckoutSdk.builder() \n    .secret_key('secret_key') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .build()\n)\n\n# OAuth\noauth = (\n    CheckoutSdk.builder() \n    .oauth() \n    .client_credentials('client_id', 'client_secret') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.FILES, OAuthScopes.FILES_UPLOAD]) \n    .build()\n)\n\nrequest = FileRequest()\nrequest.file = 'path/to/file'\nrequest.purpose = 'dispute_evidence'\n\ntry:\n    response = api.disputes.upload_file(request)\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n    # Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n    # Invalid authorization"
          }
        ]
      }
    },
    "/files/{file_id}": {
      "get": {
        "tags": [
          "Disputes"
        ],
        "summary": "Get file information",
        "description": "Retrieve information about a file that was previously uploaded.",
        "operationId": "getFileInformation",
        "parameters": [
          {
            "name": "file_id",
            "in": "path",
            "description": "The file identifier. It is always prefixed by `file_`.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "File information retrieved successfully",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "File not found"
          },
          "429": {
            "description": "Too many requests or duplicate request detected"
          }
        },
        "security": [
          {
            "OAuth": [
              "disputes",
              "disputes:view"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\nusing Checkout.Files;\n\n//API keys\nICheckoutApi api = CheckoutSdk.Builder().StaticKeys()\n    .SecretKey(\"secret_key\")\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\n//OAuth\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.Disputes)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\ntry\n{\n    FileDetailsResponse response = await api.DisputesClient().GetFileDetails(\"file_id\");\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Files}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nresponse, err := api.Disputes.GetFileDetails(\"file_id\")\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\nimport com.checkout.common.FileDetailsResponse;\n\n// API Keys\nCheckoutApi api = CheckoutSdk.builder()\n    .staticKeys()\n    .secretKey(\"secret_key\")\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\n// OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.FILES) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\ntry {\n    FileDetailsResponse response = api.disputesClient().getFileDetails(\"file_id\").get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "Node",
            "source": "import { Checkout } from 'checkout-sdk-node';\n\nlet cko = new Checkout('your_client_secret_here', {\n\tclient: 'ack_XXXXXXXXXXXX',\n\tscope: ['gateway'], // array of scopes\n\tenvironment: 'sandbox', // or \"production\"\n        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\"\n});\n\n// Or if you use api keys:\n// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});\n\ntry {\n\tconst getFile = await cko.files.getFile('file_zna32sccqbwevd3ldmejtplbhu');\n} catch (err) {\n\tconsole.log(err.name);\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Environment;\nuse Checkout\\OAuthScope;\n\n//API Keys\n$api = CheckoutSdk::builder()->staticKeys()\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->secretKey(\"secret_key\")\n    ->build();\n\n//OAuth\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Disputes])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\ntry {\n    $response = $api->getDisputesClient()->getFileDetails(\"file_id\");\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\n\n# API Key\napi_key = (\n    CheckoutSdk.builder() \n    .secret_key('secret_key') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .build()\n)\n\n# OAuth\noauth = (\n    CheckoutSdk.builder() \n    .oauth() \n    .client_credentials('client_id', 'client_secret') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.FILES]) \n    .build()\n)\n\ntry:\n    response = api.disputes.get_file_details(\"file_id\")\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n    # Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n    # Invalid authorization"
          }
        ]
      }
    },
    "/financial-actions": {
      "get": {
        "tags": [
          "Financial actions"
        ],
        "summary": "Get financial actions",
        "description": "Returns the list of financial actions and their details.\n",
        "operationId": "getFinancialActions",
        "parameters": [
          {
            "name": "payment_id",
            "in": "query",
            "description": "The ID of the payment you want to retrieve financial actions for. Required if `action_id` is not used.",
            "schema": {
              "type": "string",
              "example": "pay_qqufsd3rfnqufngwklghlxrzpm"
            }
          },
          {
            "name": "action_id",
            "in": "query",
            "description": "The ID of the action you want to retrieve financial actions for. Required if `payment_id` is not used.",
            "schema": {
              "type": "string",
              "example": "act_wsnyzbzmr2huxcekoj7qqhxwuy"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "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.",
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer",
              "format": "int32",
              "default": 100,
              "example": 5
            }
          },
          {
            "name": "pagination_token",
            "in": "query",
            "description": "A token used for pagination when a response contains results across multiple pages.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Financial actions retrieved successfully",
            "headers": {
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              },
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FinancialActionListResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. Likely cause is that access token is not valid or was not specified."
          },
          "422": {
            "description": "Unprocessable entity",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FinancialActionErrorResponse"
                }
              },
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/FinancialActionErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth": [
              "financial-actions",
              "financial-actions:view"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "label": "curl",
            "source": "curl -i -X GET \\\n'https://{prefix}.api.sandbox.checkout.com/financial-actions?payment_id=pay_qqufsd3rfnqufngwklghlxrzpm&limit=5' \\\n-H 'Authorization: Bearer <YOUR_TOKEN_HERE>'\n"
          },
          {
            "lang": "Java",
            "label": "Java",
            "source": "import java.net.*;\nimport java.net.http.*;\nimport java.util.*;\nimport java.nio.charset.StandardCharsets;\nimport java.util.stream.Collectors;\n\npublic class App {\n  public static void main(String[] args) throws Exception {\n    var httpClient = HttpClient.newBuilder().build();\n\n    HashMap<String, String> params = new HashMap<>();\n    params.put(\"payment_id\", \"pay_qqufsd3rfnqufngwklghlxrzpm\");\n    params.put(\"limit\", \"5\");\n\n    var query = params.keySet().stream()\n      .map(key -> key + \"=\" + URLEncoder.encode(params.get(key), StandardCharsets.UTF_8))\n      .collect(Collectors.joining(\"&\"));\n\n    var host = \"https://{prefix}.api.sandbox.checkout.com\";\n    var pathname = \"/financial-actions\";\n    var request = HttpRequest.newBuilder()\n      .GET()\n      .uri(URI.create(host + pathname + '?' + query))\n      .header(\"Authorization\", \"Bearer <YOUR_TOKEN_HERE>\")\n      .build();\n\n    var response = httpClient.send(request, HttpResponse.BodyHandlers.ofString());\n\n    System.out.println(response.body());\n  }\n}\n"
          },
          {
            "lang": "C#",
            "label": "C#",
            "source": "using System;\nusing System.Net.Http;\nusing System.Threading.Tasks;\n\npublic class Program\n{\n  private readonly IHttpClientFactory _httpClientFactory;\n  public static async Task Main(string[] args)\n  {\n    var client = _httpClientFactory.CreateClient();\n    client.DefaultRequestHeaders.Add(\"Authorization\", \"Bearer <YOUR_TOKEN_HERE>\");\n    var request = await client.GetAsync(\"https://{prefix}.api.sandbox.checkout.com/financial-actions?payment_id=pay_qqufsd3rfnqufngwklghlxrzpm&limit=5\");\n    var response = await request.Content.ReadAsStringAsync();\n\n    Console.WriteLine(response);\n  }\n}\n"
          },
          {
            "lang": "Python",
            "label": "Python",
            "source": "import requests\n\nurl = \"https://{prefix}.api.sandbox.checkout.com/financial-actions\"\n\nquery = {\n  \"payment_id\": \"pay_qqufsd3rfnqufngwklghlxrzpm\",\n  \"limit\": \"5\"\n}\n\nheaders = {\"Authorization\": \"Bearer <YOUR_TOKEN_HERE>\"}\n\nresponse = requests.get(url, headers=headers, params=query)\n\ndata = response.json()\nprint(data)\n"
          }
        ],
        "x-code-samples": [
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n\t\"github.com/checkout/checkout-sdk-go/financial\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.FinancialActions}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nquery := financial.QueryFilter{\n\tPaymentId: \"payment_id\",\n\tActionId:  \"action_id\",\n\tLimit:     20,\n}\n\nresponse, err := api.Financial.GetFinancialActions(query)\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          }
        ]
      }
    },
    "/workflows": {
      "get": {
        "tags": [
          "Workflows"
        ],
        "summary": "Get all workflows",
        "description": "Get all workflows\n",
        "operationId": "getAllWorkflows",
        "responses": {
          "200": {
            "description": "Workflows retrieved successfully",
            "headers": {
              "Cko-Request-Id": {
                "schema": {
                  "$ref": "#/components/schemas/Cko-Request-Id"
                }
              },
              "Cko-Version": {
                "schema": {
                  "$ref": "#/components/schemas/Cko-Version"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get-all-workflows-response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "Internal Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "flow",
              "flow:workflows"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\nusing Checkout.Workflows;\n\n//API keys\nICheckoutApi api = CheckoutSdk.Builder().StaticKeys()\n    .SecretKey(\"secret_key\")\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\n//OAuth\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.Flow)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\ntry\n{\n    GetWorkflowsResponse response = await api.WorkflowsClient().GetWorkflows();\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Flow, configuration.FlowWorkflows}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nresponse, err := api.WorkFlows.GetWorkflows()\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\nimport com.checkout.workflows.GetWorkflowsResponse;\n\n// API Keys\nCheckoutApi api = CheckoutSdk.builder()\n    .staticKeys()\n    .secretKey(\"secret_key\")\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\n// OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.FLOW_WORKFLOWS) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\ntry {\n    GetWorkflowsResponse response = api.workflowsClient().getWorkflows().get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "Node",
            "source": "import { Checkout } from 'checkout-sdk-node';\n\nlet cko = new Checkout('your_client_secret_here', {\n\tclient: 'ack_XXXXXXXXXXXX',\n\tscope: ['gateway'], // array of scopes\n\tenvironment: 'sandbox', // or \"production\"\n        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\"\n});\n\n// Or if you use api keys:\n// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});\n\ntry {\n\tlet workflows = await cko.workflows.getAll();\n} catch (err) {\n\tconsole.log(err.name);\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Environment;\nuse Checkout\\OAuthScope;\n\n//API Keys\n$api = CheckoutSdk::builder()->staticKeys()\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->secretKey(\"secret_key\")\n    ->build();\n\n//OAuth\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Flow])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\n\ntry {\n    $response = $api->getWorkflowsClient()->getWorkflows();\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\n\n# API Key\napi_key = (\n    CheckoutSdk.builder() \n    .secret_key('secret_key') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .build()\n)\n\n# OAuth\noauth = (\n    CheckoutSdk.builder() \n    .oauth() \n    .client_credentials('client_id', 'client_secret') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.FLOW, OAuthScopes.FLOW_WORKFLOWS]) \n    .build()\n)\n\ntry:\n    response = api.workflows.get_workflows()\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n    # Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n    # Invalid authorization"
          }
        ]
      },
      "post": {
        "tags": [
          "Workflows"
        ],
        "summary": "Add a workflow",
        "description": "Add a new workflow\n",
        "operationId": "addWorkflow",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/add-workflow-request"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Workflow added successfully",
            "headers": {
              "Cko-Request-Id": {
                "schema": {
                  "$ref": "#/components/schemas/Cko-Request-Id"
                }
              },
              "Cko-Version": {
                "schema": {
                  "$ref": "#/components/schemas/Cko-Version"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/add-workflow-response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "flow",
              "flow:workflows"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\nusing Checkout.Workflows;\nusing Checkout.Workflows.Actions;\nusing Checkout.Workflows.Actions.Request;\nusing Checkout.Workflows.Conditions.Request;\n\n\n//API keys\nICheckoutApi api = CheckoutSdk.Builder().StaticKeys()\n    .SecretKey(\"secret_key\")\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\n//OAuth\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.Flow)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\nCreateWorkflowRequest request = new CreateWorkflowRequest\n{\n    Name = \"Webhooks workflow\",\n    Conditions = new List<WorkflowConditionRequest>\n    {\n        new EventWorkflowConditionRequest\n        {\n            Events = new Dictionary<string, ISet<string>>\n            {\n                {\n                    \"gateway\",\n                    new HashSet<string>\n                    {\n                        \"payment_approved\",\n                        \"payment_declined\",\n                        \"card_verification_declined\",\n                        \"card_verified\",\n                        \"payment_authorization_incremented\",\n                        \"payment_authorization_increment_declined\",\n                        \"payment_capture_declined\",\n                        \"payment_captured\",\n                        \"payment_refund_declined\",\n                        \"payment_refunded\",\n                        \"payment_void_declined\",\n                        \"payment_voided\"\n                    }\n                },\n                {\n                    \"dispute\",\n                    new HashSet<string>\n                    {\n                        \"dispute_canceled\",\n                        \"dispute_evidence_required\",\n                        \"dispute_expired\",\n                        \"dispute_lost\",\n                        \"dispute_resolved\",\n                        \"dispute_won\"\n                    }\n                }\n            }\n        },\n        new EntityWorkflowConditionRequest\n        {\n            Entities = new List<string>\n            {\n                \"ent_xyfdshfudosfdshfdiosfds\", \"ent_fidjosfjdisofdjsifdosfu\"\n            }\n        },\n        new ProcessingChannelWorkflowConditionRequest\n        {\n            ProcessingChannels = new List<string> {\"pc_axclravnqf5u5ejkweijnp5zc4\"}\n        }\n    },\n    Actions = new List<WorkflowActionRequest>\n    {\n        new WebhookWorkflowActionRequest\n        {\n            Url = \"https://example.com/webhooks\",\n            Headers = new Dictionary<string, string>\n            {\n                {\"Authorization\", \"70ed20ff-ba31-4ea3-b3ef-772f2be1cbdf\"}\n            },\n            Signature = new WebhookSignature\n            {\n                Method = \"HMACSHA256\", Key = \"8V8x0dLK%AyD*DNS8JJr\"\n            }\n        }\n    }\n};\n\ntry\n{\n    CreateWorkflowResponse response = await api.WorkflowsClient().CreateWorkflow(request);\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n\t\"github.com/checkout/checkout-sdk-go/workflows\"\n\t\"github.com/checkout/checkout-sdk-go/workflows/actions\"\n\t\"github.com/checkout/checkout-sdk-go/workflows/conditions\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Flow, configuration.FlowWorkflows}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nentityCondition := conditions.NewEntityConditionRequest()\nentityCondition.Entities = []string{\"workflow_entity_id\"}\n\nprocessingChannelCondition := conditions.NewProcessingChannelConditionRequest()\nprocessingChannelCondition.ProcessingChannels = []string{\"processing_channel_id\"}\n\nwebhookAction := actions.NewWebhookActionRequest()\nwebhookAction.Url = \"https://docs.checkout.com/webhook\"\nwebhookAction.Headers = map[string]string{}\nwebhookAction.Signature = &actions.WebhookSignature{\n\tKey:    \"8V8x0dLK%*DNS8JJr\",\n\tMethod: \"HMACSHA256\",\n}\n\nrequest := workflows.CreateWorkflowRequest{\n\tName:       \"name\",\n\tConditions: []conditions.ConditionsRequest{entityCondition, processingChannelCondition},\n\tActions:    []actions.ActionsRequest{webhookAction},\n}\n\nresponse, err := api.WorkFlows.CreateWorkflow(request)\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\nimport com.checkout.workflows.CreateWorkflowRequest;\nimport com.checkout.workflows.CreateWorkflowResponse;\nimport com.checkout.workflows.actions.WebhookSignature;\nimport com.checkout.workflows.actions.request.WebhookWorkflowActionRequest;\nimport com.checkout.workflows.conditions.request.EntityWorkflowConditionRequest;\nimport com.checkout.workflows.conditions.request.ProcessingChannelWorkflowConditionRequest;\n\n// API Keys\nCheckoutApi api = CheckoutSdk.builder()\n    .staticKeys()\n    .secretKey(\"secret_key\")\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\n// OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.FLOW_WORKFLOWS) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\nWebhookWorkflowActionRequest workflowActionRequest = WebhookWorkflowActionRequest.builder()\n    .url(\"https://docs.checkout.com/webhook\")\n    .headers(new HashMap<>())\n    .signature(WebhookSignature.builder().key(\"8V8x0dLK%AyD*DNS8JJr\").method(\"HMACSHA256\").build())\n    .build();\n\nEntityWorkflowConditionRequest condition1 = EntityWorkflowConditionRequest.builder()\n    .entities(Collections.singletonList(\"workflow_entity_id\"))\n    .build();\n\nProcessingChannelWorkflowConditionRequest condition2 = ProcessingChannelWorkflowConditionRequest.builder()\n    .processingChannels(Collections.singletonList(\"processing_channel_id\"))\n    .build();\n\nCreateWorkflowRequest request = CreateWorkflowRequest.builder()\n    .name(\"name\")\n    .actions(Collections.singletonList(workflowActionRequest))\n    .conditions(Arrays.asList(condition1, condition2))\n    .build();\n\ntry {\n    CreateWorkflowResponse response = api.workflowsClient().createWorkflow(request).get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "Node",
            "source": "import { Checkout } from 'checkout-sdk-node';\n\nlet cko = new Checkout('your_client_secret_here', {\n\tclient: 'ack_XXXXXXXXXXXX',\n\tscope: ['gateway'], // array of scopes\n\tenvironment: 'sandbox', // or \"production\"\n        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\"\n});\n\n// Or if you use api keys:\n// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});\n\ntry {\n\tlet workflows = await cko.workflows.add({\n\t\tname: 'Webhooks workflow',\n\t\tconditions: [\n\t\t\t{\n\t\t\t\ttype: 'event',\n\t\t\t\tevents: {\n\t\t\t\t\tgateway: ['payment_approved', 'payment_declined'],\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'entity',\n\t\t\t\tentities: ['ent_djigcqx4clmufo2sasgomgpqsq'],\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'processing_channel',\n\t\t\t\tprocessing_channels: ['pc_zs5fqhybzc2e3jmq3efvybybpq'],\n\t\t\t},\n\t\t],\n\t\tactions: [\n\t\t\t{\n\t\t\t\ttype: 'webhook',\n\t\t\t\turl: 'https://example.com/webhooks',\n\t\t\t\theaders: {\n\t\t\t\t\tAuthorization: '70ed20ff-ba31-4ea3-b3ef-772f2be1cbdf',\n\t\t\t\t},\n\t\t\t\tsignature: {\n\t\t\t\t\tmethod: 'HMACSHA256',\n\t\t\t\t\tkey: '8V8x0dLK%AyD*DNS8JJr',\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t});\n} catch (err) {\n\tconsole.log(err.name);\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Environment;\nuse Checkout\\OAuthScope;\nuse Checkout\\Workflows\\Actions\\WebhookSignature;\nuse Checkout\\Workflows\\Actions\\WebhookWorkflowActionRequest;\nuse Checkout\\Workflows\\Conditions\\EntityWorkflowConditionRequest;\nuse Checkout\\Workflows\\Conditions\\EventWorkflowConditionRequest;\nuse Checkout\\Workflows\\Conditions\\ProcessingChannelWorkflowConditionRequest;\nuse Checkout\\Workflows\\CreateWorkflowRequest;\n\n//API Keys\n$api = CheckoutSdk::builder()->staticKeys()\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->secretKey(\"secret_key\")\n    ->build();\n\n//OAuth\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Flow])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\n$signature = new WebhookSignature();\n$signature->key = \"8V8x0dLK%AyD*DNS8JJr\";\n$signature->method = \"HMACSHA256\";\n\n$actionRequest = new WebhookWorkflowActionRequest();\n$actionRequest->url = \"https://google.com/fail\";\n$actionRequest->signature = $signature;\n\n$entityWorkflowConditionRequest = new EntityWorkflowConditionRequest();\n$entityWorkflowConditionRequest->entities = [\"entity_id\"];\n\n$eventWorkflowConditionRequest = new EventWorkflowConditionRequest();\n$eventWorkflowConditionRequest->events = [\n    \"gateway\" => [\"payment_approved\",\n        \"payment_declined\",\n        \"card_verification_declined\",\n        \"card_verified\",\n        \"payment_authorization_incremented\",\n        \"payment_authorization_increment_declined\",\n        \"payment_capture_declined\",\n        \"payment_captured\",\n        \"payment_refund_declined\",\n        \"payment_refunded\",\n        \"payment_void_declined\",\n        \"payment_voided\"],\n    \"dispute\" => [\"dispute_canceled\",\n        \"dispute_evidence_required\",\n        \"dispute_expired\",\n        \"dispute_lost\",\n        \"dispute_resolved\",\n        \"dispute_won\"]\n];\n\n$processingChannelWorkflowConditionRequest = new ProcessingChannelWorkflowConditionRequest();\n$processingChannelWorkflowConditionRequest->processing_channels = [\"pc_sdsdsdwdewdsdds\"];\n\n$request = new CreateWorkflowRequest();\n$request->actions = [$actionRequest];\n$request->conditions = [$entityWorkflowConditionRequest, $eventWorkflowConditionRequest,\n    $processingChannelWorkflowConditionRequest];\n$request->name = \"Workflow\";\n$request->active = true;\n\ntry {\n    $response = $api->getWorkflowsClient()->createWorkflow($request);\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\nfrom checkout_sdk.workflows.workflows import WebhookSignature, WebhookWorkflowActionRequest, EntityWorkflowConditionRequest, \n                                        EventWorkflowConditionRequest, ProcessingChannelWorkflowConditionRequest, CreateWorkflowRequest\n\n# API Key\napi_key = (\n    CheckoutSdk.builder() \n    .secret_key('secret_key') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .build()\n)\n\n# OAuth\noauth = (\n    CheckoutSdk.builder() \n    .oauth() \n    .client_credentials('client_id', 'client_secret') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.FLOW, OAuthScopes.FLOW_WORKFLOWS]) \n    .build()\n)\n\nsignature = WebhookSignature()\nsignature.key = 'signature'\nsignature.method = 'HMACSHA256'\n\naction_request = WebhookWorkflowActionRequest()\naction_request.url = 'https://docs.checkout.com/fail'\naction_request.headers = {}\naction_request.signature = signature\n\nentity_condition_request = EntityWorkflowConditionRequest()\nentity_condition_request.entities = ['entity_id']\n\nevent_condition_request = EventWorkflowConditionRequest()\nevent_condition_request.events = {'gateway': ['payment_approved',\n                                              'payment_declined',\n                                              'card_verification_declined',\n                                              'card_verified',\n                                              'payment_authorization_incremented',\n                                              'payment_authorization_increment_declined',\n                                              'payment_capture_declined',\n                                              'payment_captured',\n                                              'payment_refund_declined',\n                                              'payment_refunded',\n                                              'payment_void_declined',\n                                              'payment_voided'],\n                                  'dispute': ['dispute_canceled',\n                                              'dispute_evidence_required',\n                                              'dispute_expired',\n                                              'dispute_lost',\n                                              'dispute_resolved',\n                                              'dispute_won']}\n\nprocessing_channel_condition_request = ProcessingChannelWorkflowConditionRequest()\nprocessing_channel_condition_request.processing_channels = ['processing_channel_id']\n\nrequest = CreateWorkflowRequest()\nrequest.actions = [action_request]\nrequest.conditions = [entity_condition_request, event_condition_request,\n                      processing_channel_condition_request]\nrequest.name = 'Name'\nrequest.active = True\n\ntry:\n    response = api.workflows.create_workflow(request)\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n    # Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n    # Invalid authorization"
          }
        ]
      }
    },
    "/workflows/{workflowId}": {
      "get": {
        "tags": [
          "Workflows"
        ],
        "summary": "Get a workflow",
        "description": "Get the details of a workflow\n",
        "operationId": "getWorkflow",
        "parameters": [
          {
            "name": "workflowId",
            "in": "path",
            "description": "The workflow identifier",
            "required": true,
            "schema": {
              "pattern": "^wf_[a-z0-9]{26}$",
              "type": "string"
            },
            "example": "wf_c7svxlvo2bbuva4f6s3xu4f7wm"
          }
        ],
        "responses": {
          "200": {
            "description": "Workflow retrieved successfully",
            "headers": {
              "Cko-Request-Id": {
                "schema": {
                  "$ref": "#/components/schemas/Cko-Request-Id"
                }
              },
              "Cko-Version": {
                "schema": {
                  "$ref": "#/components/schemas/Cko-Version"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get-workflow-response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Workflow not found"
          },
          "500": {
            "description": "Internal Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "flow",
              "flow:workflows"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\nusing Checkout.Workflows;\n\n//API keys\nICheckoutApi api = CheckoutSdk.Builder().StaticKeys()\n    .SecretKey(\"secret_key\")\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\n//OAuth\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.Flow)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\ntry\n{\n    GetWorkflowResponse response = await api.WorkflowsClient().GetWorkflow(\"workflow_id\");\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Flow, configuration.FlowWorkflows}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nresponse, err := api.WorkFlows.GetWorkflow(\"workflow_id\")\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\nimport com.checkout.workflows.GetWorkflowResponse;\n\n// API Keys\nCheckoutApi api = CheckoutSdk.builder()\n    .staticKeys()\n    .secretKey(\"secret_key\")\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\n// OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.FLOW_WORKFLOWS) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\ntry {\n    GetWorkflowResponse response = api.workflowsClient().getWorkflow(\"workflow_id\").get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "Node",
            "source": "import { Checkout } from 'checkout-sdk-node';\n\nlet cko = new Checkout('your_client_secret_here', {\n\tclient: 'ack_XXXXXXXXXXXX',\n\tscope: ['gateway'], // array of scopes\n\tenvironment: 'sandbox', // or \"production\"\n        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\"\n});\n\n// Or if you use api keys:\n// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});\n\ntry {\n\tlet workflows = await cko.workflows.get('wf_5zm7uccsc6bencaujumvutvfem');\n} catch (err) {\n\tconsole.log(err.name);\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Environment;\nuse Checkout\\OAuthScope;\n\n//API Keys\n$api = CheckoutSdk::builder()->staticKeys()\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->secretKey(\"secret_key\")\n    ->build();\n\n//OAuth\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Flow])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\n\ntry {\n    $response = $api->getWorkflowsClient()->getWorkflow(\"workflow_id\");\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\n\n# API Key\napi_key = (\n    CheckoutSdk.builder() \n    .secret_key('secret_key') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .build()\n)\n\n# OAuth\noauth = (\n    CheckoutSdk.builder() \n    .oauth() \n    .client_credentials('client_id', 'client_secret') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.FLOW, OAuthScopes.FLOW_WORKFLOWS]) \n    .build()\n)\n\ntry:\n    response = api.workflows.get_workflow('workflow_id')\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n    # Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n    # Invalid authorization"
          }
        ]
      },
      "delete": {
        "tags": [
          "Workflows"
        ],
        "summary": "Remove a workflow",
        "description": "Removes a workflow so it is no longer being executed.\nActions of already executed workflows will be still processed.\n",
        "operationId": "removeWorkflow",
        "parameters": [
          {
            "name": "workflowId",
            "in": "path",
            "description": "The workflow identifier",
            "required": true,
            "schema": {
              "pattern": "^wf_[a-z0-9]{26}$",
              "type": "string"
            },
            "example": "wf_c7svxlvo2bbuva4f6s3xu4f7wm"
          }
        ],
        "responses": {
          "204": {
            "description": "Workflow removed successfully",
            "headers": {
              "Cko-Request-Id": {
                "schema": {
                  "$ref": "#/components/schemas/Cko-Request-Id"
                }
              },
              "Cko-Version": {
                "schema": {
                  "$ref": "#/components/schemas/Cko-Version"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Workflow not found"
          },
          "500": {
            "description": "Internal Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "flow",
              "flow:workflows"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\n\n//API keys\nICheckoutApi api = CheckoutSdk.Builder().StaticKeys()\n    .SecretKey(\"secret_key\")\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\n//OAuth\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.Flow)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\ntry\n{\n    EmptyResponse response = await api.WorkflowsClient().RemoveWorkflow(\"workflow_id\");\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Flow, configuration.FlowWorkflows}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nresponse, err := api.WorkFlows.RemoveWorkflow(\"workflow_id\")\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.EmptyResponse;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\n\n// API Keys\nCheckoutApi api = CheckoutSdk.builder()\n    .staticKeys()\n    .secretKey(\"secret_key\")\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\n// OAuth\n    CheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.FLOW, OAuthScope.FLOW_WORKFLOWS) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\ntry {\n    EmptyResponse response = api.workflowsClient().removeWorkflow(\"workflow_id\").get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "Node",
            "source": "import { Checkout } from 'checkout-sdk-node';\n\nlet cko = new Checkout('your_client_secret_here', {\n\tclient: 'ack_XXXXXXXXXXXX',\n\tscope: ['gateway'], // array of scopes\n\tenvironment: 'sandbox', // or \"production\"\n        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\"\n});\n\n// Or if you use api keys:\n// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});\n\ntry {\n\tlet workflows = await cko.workflows.remove('wf_rou7m32mhmyeblg4xebx5pueoi');\n} catch (err) {\n\tconsole.log(err.name);\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Environment;\nuse Checkout\\OAuthScope;\n\n//API Keys\n$api = CheckoutSdk::builder()->staticKeys()\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->secretKey(\"secret_key\")\n    ->build();\n\n//OAuth\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Flow])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\n\ntry {\n    $response = $api->getWorkflowsClient()->removeWorkflow(\"workflow_id\");\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\n\n# API Key\napi_key = (\n    CheckoutSdk.builder() \n    .secret_key('secret_key') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .build()\n)\n\n# OAuth\noauth = (\n    CheckoutSdk.builder() \n    .oauth() \n    .client_credentials('client_id', 'client_secret') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.FLOW, OAuthScopes.FLOW_WORKFLOWS]) \n    .build()\n)\n\ntry:\n    response = api.workflows.remove_workflow('workflow_id')\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n    # Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n    # Invalid authorization"
          }
        ]
      },
      "patch": {
        "tags": [
          "Workflows"
        ],
        "summary": "Patch a workflow",
        "description": "Update a workflow.\n",
        "operationId": "patchWorkflow",
        "parameters": [
          {
            "name": "workflowId",
            "in": "path",
            "description": "The workflow identifier",
            "required": true,
            "schema": {
              "pattern": "^wf_[a-z0-9]{26}$",
              "type": "string"
            },
            "example": "wf_c7svxlvo2bbuva4f6s3xu4f7wm"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/patch-workflow-request"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Workflow updated successfully",
            "headers": {
              "Cko-Request-Id": {
                "schema": {
                  "$ref": "#/components/schemas/Cko-Request-Id"
                }
              },
              "Cko-Version": {
                "schema": {
                  "$ref": "#/components/schemas/Cko-Version"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/patch-workflow-response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Workflow not found"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "flow",
              "flow:workflows"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\nusing Checkout.Workflows;\n\n//API keys\nICheckoutApi api = CheckoutSdk.Builder().StaticKeys()\n    .SecretKey(\"secret_key\")\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\n//OAuth\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.Flow)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\nUpdateWorkflowRequest request = new UpdateWorkflowRequest {Name = \"workflow_name\"};\n\ntry\n{\n    UpdateWorkflowResponse response = await api.WorkflowsClient().UpdateWorkflow(\"workflow_id\", request);\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n\t\"github.com/checkout/checkout-sdk-go/workflows\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Flow, configuration.FlowWorkflows}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nrequest := workflows.UpdateWorkflowRequest{\n\tName:   \"New Name\",\n\tActive: true,\n}\n\nresponse, err := api.WorkFlows.UpdateWorkflow(\"workflow_id\", request)\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\nimport com.checkout.workflows.UpdateWorkflowRequest;\nimport com.checkout.workflows.UpdateWorkflowResponse;\n\n// API Keys\nCheckoutApi api = CheckoutSdk.builder()\n    .staticKeys()\n    .secretKey(\"secret_key\")\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\n// OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.FLOW, OAuthScope.FLOW_WORKFLOWS) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\nUpdateWorkflowRequest request = UpdateWorkflowRequest.builder()\n    .name(\"new name\")\n    .build();\n\ntry {\n    UpdateWorkflowResponse response = api.workflowsClient().updateWorkflow(\"workflow_id\", request).get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "Node",
            "source": "import { Checkout } from 'checkout-sdk-node';\n\nlet cko = new Checkout('your_client_secret_here', {\n\tclient: 'ack_XXXXXXXXXXXX',\n\tscope: ['gateway'], // array of scopes\n\tenvironment: 'sandbox', // or \"production\"\n        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\"\n});\n\n// Or if you use api keys:\n// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});\n\ntry {\n\tlet workflows = await cko.workflows.patch('wf_2i7z3lwdoe5uzmomm7yzrytqdy', {\n\t\tname: 'Webhooks workflow updated',\n\t});\n} catch (err) {\n\tconsole.log(err.name);\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Environment;\nuse Checkout\\OAuthScope;\nuse Checkout\\Workflows\\UpdateWorkflowRequest;\n\n//API Keys\n$api = CheckoutSdk::builder()->staticKeys()\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->secretKey(\"secret_key\")\n    ->build();\n\n//OAuth\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Flow])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\n$request = new UpdateWorkflowRequest();\n$request->name = \"workflow_name\";\n\ntry {\n    $response = $api->getWorkflowsClient()->updateWorkflow(\"workflow_id\", $request);\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\nfrom checkout_sdk.workflows.workflows import UpdateWorkflowRequest\n\n# API Key\napi_key = (\n    CheckoutSdk.builder() \n    .secret_key('secret_key') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .build()\n)\n\n# OAuth\noauth = (\n    CheckoutSdk.builder() \n    .oauth() \n    .client_credentials('client_id', 'client_secret') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.FLOW, OAuthScopes.FLOW_WORKFLOWS]) \n    .build()\n)\n\nrequest = UpdateWorkflowRequest()\nrequest.name = 'New name'\nrequest.active = False\n\ntry:\n    response = api.workflows.update_workflow('workflow_id', request)\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n    # Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n    # Invalid authorization"
          }
        ]
      }
    },
    "/workflows/{workflowId}/actions": {
      "post": {
        "tags": [
          "Workflows"
        ],
        "summary": "Add a workflow action",
        "description": "Adds a workflow action. Actions determine what the workflow will do when it is triggered.\n",
        "operationId": "addWorkflowAction",
        "parameters": [
          {
            "name": "workflowId",
            "in": "path",
            "description": "The workflow identifier",
            "required": true,
            "schema": {
              "pattern": "^wf_[a-z2-7]{26}$",
              "type": "string"
            },
            "example": "wf_c7svxlvo2bbuva4f6s3xu4f7wm"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/add-update-workflow-action-request"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Workflow action added successfully",
            "headers": {
              "Cko-Request-Id": {
                "schema": {
                  "$ref": "#/components/schemas/Cko-Request-Id"
                }
              },
              "Cko-Version": {
                "schema": {
                  "$ref": "#/components/schemas/Cko-Version"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/add-workflow-action-response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Workflow not found"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "flow",
              "flow:workflows"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      }
    },
    "/workflows/{workflowId}/actions/{workflowActionId}": {
      "put": {
        "tags": [
          "Workflows"
        ],
        "summary": "Update a workflow action",
        "description": "Update a workflow action.\n",
        "operationId": "updateWorkflowAction",
        "parameters": [
          {
            "name": "workflowId",
            "in": "path",
            "description": "The workflow identifier",
            "required": true,
            "schema": {
              "pattern": "^wf_[a-z0-9]{26}$",
              "type": "string"
            },
            "example": "wf_c7svxlvo2bbuva4f6s3xu4f7wm"
          },
          {
            "name": "workflowActionId",
            "in": "path",
            "description": "The workflow action identifier",
            "required": true,
            "schema": {
              "pattern": "^wfa_[a-z0-9]{26}$",
              "type": "string"
            },
            "example": "wfa_d5estuyxzshubhly2wu3hloehi"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/add-update-workflow-action-request"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Workflow action updated successfully",
            "headers": {
              "Cko-Request-Id": {
                "schema": {
                  "$ref": "#/components/schemas/Cko-Request-Id"
                }
              },
              "Cko-Version": {
                "schema": {
                  "$ref": "#/components/schemas/Cko-Version"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Workflow or workflow action not found"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "flow",
              "flow:workflows"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\nusing Checkout.Workflows.Actions;\nusing Checkout.Workflows.Actions.Request;\n\n//API keys\nICheckoutApi api = CheckoutSdk.Builder().StaticKeys()\n    .SecretKey(\"secret_key\")\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\n//OAuth\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.Flow)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\nWorkflowActionRequest request = new WebhookWorkflowActionRequest\n{\n    Url = \"https://example.com/webhooks/checkout\",\n    Headers = new Dictionary<string, string>\n    {\n        {\"Authorization\", \"70ed20ff-ba31-4ea3-b3ef-772f2be1cbdf\"}\n    },\n    Signature = new WebhookSignature {Method = \"HMACSHA256\", Key = \"public-signing-key\"}\n};\n\ntry\n{\n    await api.WorkflowsClient().UpdateWorkflowAction(\"workflow_id\", \"action_id\", request);\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n\t\"github.com/checkout/checkout-sdk-go/workflows/actions\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Flow, configuration.FlowWorkflows}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nrequest := actions.NewWebhookActionRequest()\nrequest.Url = \"https://docs.checkout.com/webhook\"\nrequest.Headers = map[string]string{}\nrequest.Signature = &actions.WebhookSignature{\n\tKey:    \"8V8x0dLK%*DNS8JJr\",\n\tMethod: \"HMACSHA256\",\n}\n\nresponse, err := api.WorkFlows.UpdateWorkflowAction(\"workflow_id\", \"action_id\", request)\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.EmptyResponse;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\nimport com.checkout.workflows.actions.WebhookSignature;\nimport com.checkout.workflows.actions.request.WebhookWorkflowActionRequest;\n\n// API Keys\nCheckoutApi api = CheckoutSdk.builder()\n    .staticKeys()\n    .secretKey(\"secret_key\")\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\n// OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.FLOW_WORKFLOWS) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\nWebhookWorkflowActionRequest request = WebhookWorkflowActionRequest.builder()\n    .signature(WebhookSignature.builder().key(\"8V8x0dLK%AyD*DNS8JJr\").method(\"HMACSHA256\").build())\n    .headers(new HashMap<>())\n    .url(\"https://docs.checkout.com/fail\")\n    .build();\n\ntry {\n    EmptyResponse response = api.workflowsClient().updateWorkflowAction(\"workflow_id\", \"action_id\", request).get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "Node",
            "source": "import { Checkout } from 'checkout-sdk-node';\n\nlet cko = new Checkout('your_client_secret_here', {\n\tclient: 'ack_XXXXXXXXXXXX',\n\tscope: ['gateway'], // array of scopes\n\tenvironment: 'sandbox', // or \"production\"\n        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\"\n});\n\n// Or if you use api keys:\n// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});\n\ntry {\n\tlet workflows = await cko.workflows.updateAction('wf_2i7z3lwdoe5uzmomm7yzrytqdy', 'wfa_5qxwp7stgcqufj63mkr42xyeqi', {\n\t\ttype: 'webhook',\n\t\turl: 'https://example.com/updated',\n\t});\n} catch (err) {\n\tconsole.log(err.name);\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Environment;\nuse Checkout\\OAuthScope;\nuse Checkout\\Workflows\\Actions\\WebhookSignature;\nuse Checkout\\Workflows\\Actions\\WebhookWorkflowActionRequest;\n\n//API Keys\n$api = CheckoutSdk::builder()->staticKeys()\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->secretKey(\"secret_key\")\n    ->build();\n\n//OAuth\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Flow])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\n$webhookSignature = new WebhookSignature();\n$webhookSignature->method = \"HMACSHA256\";\n$webhookSignature->key = \"public-signing-key\";\n\n$request = new WebhookWorkflowActionRequest();\n$request->url = \"workflow_name\";\n$request->signature = \"workflow_name\";\n\ntry {\n    $response = $api->getWorkflowsClient()->updateWorkflowAction(\"workflow_id\", \"action_id\", $request);\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\nfrom checkout_sdk.workflows.workflows import WebhookSignature, WebhookWorkflowActionRequest\n\n# API Key\napi_key = (\n    CheckoutSdk.builder() \n    .secret_key('secret_key') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .build()\n)\n\n# OAuth\noauth = (\n    CheckoutSdk.builder() \n    .oauth() \n    .client_credentials('client_id', 'client_secret') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.FLOW, OAuthScopes.FLOW_WORKFLOWS]) \n    .build()\n)\n\nsignature = WebhookSignature()\nsignature.key = '8V8x0dLK%AyD*DNS8JJr'\nsignature.method = 'HMACSHA256'\n\nrequest = WebhookWorkflowActionRequest()\nrequest.url = 'https://docs.checkout.com/fail/fake'\nrequest.signature = signature\n\ntry:\n    response = api.workflows.update_workflow_action('workflow_id', 'action_id', request)\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n    # Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n    # Invalid authorization"
          }
        ]
      },
      "delete": {
        "tags": [
          "Workflows"
        ],
        "summary": "Remove a workflow action",
        "description": "Removes a workflow action. Actions determine what the workflow will do when it is triggered.\n",
        "operationId": "removeWorkflowAction",
        "parameters": [
          {
            "name": "workflowId",
            "in": "path",
            "description": "The workflow identifier",
            "required": true,
            "schema": {
              "pattern": "^wf_[a-z2-7]{26}$",
              "type": "string"
            },
            "example": "wf_c7svxlvo2bbuva4f6s3xu4f7wm"
          },
          {
            "name": "workflowActionId",
            "in": "path",
            "description": "The workflow action identifier",
            "required": true,
            "schema": {
              "pattern": "^wfa_[a-z2-7]{26}$",
              "type": "string"
            },
            "example": "wfa_c7svxlvo2bbuva4f6s3xu4f7wm"
          }
        ],
        "responses": {
          "204": {
            "description": "Workflow action removed successfully",
            "headers": {
              "Cko-Request-Id": {
                "schema": {
                  "$ref": "#/components/schemas/Cko-Request-Id"
                }
              },
              "Cko-Version": {
                "schema": {
                  "$ref": "#/components/schemas/Cko-Version"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Workflow or workflow action not found"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "flow",
              "flow:workflows"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      }
    },
    "/workflows/{workflowId}/conditions": {
      "post": {
        "tags": [
          "Workflows"
        ],
        "summary": "Add a workflow condition",
        "description": "Adds a workflow condition. Conditions determine when the workflow will trigger.\n",
        "operationId": "addWorkflowCondition",
        "parameters": [
          {
            "name": "workflowId",
            "in": "path",
            "description": "The workflow identifier",
            "required": true,
            "schema": {
              "pattern": "^wf_[a-z2-7]{26}$",
              "type": "string"
            },
            "example": "wf_c7svxlvo2bbuva4f6s3xu4f7wm"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/add-update-workflow-condition-request"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Workflow condition added successfully",
            "headers": {
              "Cko-Request-Id": {
                "schema": {
                  "$ref": "#/components/schemas/Cko-Request-Id"
                }
              },
              "Cko-Version": {
                "schema": {
                  "$ref": "#/components/schemas/Cko-Version"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/add-workflow-condition-response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Workflow not found"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "flow",
              "flow:workflows"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      }
    },
    "/workflows/{workflowId}/conditions/{workflowConditionId}": {
      "put": {
        "tags": [
          "Workflows"
        ],
        "summary": "Update a workflow condition",
        "description": "Update a workflow condition.\n",
        "operationId": "updateWorkflowCondition",
        "parameters": [
          {
            "name": "workflowId",
            "in": "path",
            "description": "The workflow identifier",
            "required": true,
            "schema": {
              "pattern": "^wf_[a-z0-9]{26}$",
              "type": "string"
            },
            "example": "wf_c7svxlvo2bbuva4f6s3xu4f7wm"
          },
          {
            "name": "workflowConditionId",
            "in": "path",
            "description": "The workflow condition identifier",
            "required": true,
            "schema": {
              "pattern": "^wfc_[a-z0-9]{26}$",
              "type": "string"
            },
            "example": "wfc_d5estuyxzshubhly2wu3hloehi"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/add-update-workflow-condition-request"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Workflow condition updated successfully",
            "headers": {
              "Cko-Request-Id": {
                "schema": {
                  "$ref": "#/components/schemas/Cko-Request-Id"
                }
              },
              "Cko-Version": {
                "schema": {
                  "$ref": "#/components/schemas/Cko-Version"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Workflow or workflow condition not found"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "flow",
              "flow:workflows"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\nusing Checkout.Workflows.Conditions.Request;\n\n//API keys\nICheckoutApi api = CheckoutSdk.Builder().StaticKeys()\n    .SecretKey(\"secret_key\")\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\n//OAuth\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.Flow)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\nWorkflowConditionRequest request = new EntityWorkflowConditionRequest();\n\ntry\n{\n    EmptyResponse response = await api.WorkflowsClient().UpdateWorkflowCondition(\"workflow_id\", \"condition_id\", request);\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n\t\"github.com/checkout/checkout-sdk-go/workflows/conditions\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Flow, configuration.FlowWorkflows}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nrequest := conditions.NewEventConditionRequest()\nrequest.Events = map[string][]string{}\n\nresponse, err := api.WorkFlows.UpdateWorkflowCondition(\"workflow_id\", \"condition_id\", request)\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.EmptyResponse;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\nimport com.checkout.workflows.conditions.request.EventWorkflowConditionRequest;\n\n// API Keys\nCheckoutApi api = CheckoutSdk.builder()\n    .staticKeys()\n    .secretKey(\"secret_key\")\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\n// OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.FLOW_WORKFLOWS) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\nEventWorkflowConditionRequest request = EventWorkflowConditionRequest.builder()\n    .events(new HashMap<>())\n    .build();\n\ntry {\n    EmptyResponse response = api.workflowsClient().updateWorkflowCondition(\"workflow_id\", \"condition_id\", request).get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "Node",
            "source": "import { Checkout } from 'checkout-sdk-node';\n\nlet cko = new Checkout('your_client_secret_here', {\n\tclient: 'ack_XXXXXXXXXXXX',\n\tscope: ['gateway'], // array of scopes\n\tenvironment: 'sandbox', // or \"production\"\n        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\"\n});\n\n// Or if you use api keys:\n// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});\n\ntry {\n\tlet workflows = await cko.workflows.updateCondition(\n\t\t'wf_2i7z3lwdoe5uzmomm7yzrytqdy',\n\t\t'wfc_ybu4t6aruwju5l6ymlc67ya5ne',\n\t\t{\n\t\t\ttype: 'event',\n\t\t\tevents: {\n\t\t\t\tgateway: ['card_verification_declined', 'card_verified', 'payment_approved'],\n\t\t\t},\n\t\t}\n\t);\n} catch (err) {\n\tconsole.log(err.name);\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Environment;\nuse Checkout\\OAuthScope;\nuse Checkout\\Workflows\\Conditions\\EntityWorkflowConditionRequest;\n\n//API Keys\n$api = CheckoutSdk::builder()->staticKeys()\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->secretKey(\"secret_key\")\n    ->build();\n\n//OAuth\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Flow])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\n$request = new EntityWorkflowConditionRequest();\n\ntry {\n    $response = $api->getWorkflowsClient()->updateWorkflowCondition(\"workflow_id\", \"condition_id\", $request);\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\nfrom checkout_sdk.workflows.workflows import EventWorkflowConditionRequest\n\n# API Key\napi_key = (\n    CheckoutSdk.builder() \n    .secret_key('secret_key') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .build()\n)\n\n# OAuth\noauth = (\n    CheckoutSdk.builder() \n    .oauth() \n    .client_credentials('client_id', 'client_secret') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.FLOW, OAuthScopes.FLOW_WORKFLOWS]) \n    .build()\n)\n\nrequest = EventWorkflowConditionRequest()\nrequest.events = {'gateway': ['card_verified',\n                              'card_verification_declined',\n                              'payment_approved',\n                              'payment_pending',\n                              'payment_declined',\n                              'payment_voided',\n                              'payment_captured',\n                              'payment_refunded'],\n                  'dispute': ['dispute_canceled',\n                              'dispute_evidence_required',\n                              'dispute_expired',\n                              'dispute_lost',\n                              'dispute_resolved',\n                              'dispute_won']}\n\ntry:\n    response = api.workflows.update_workflow_condition('workflow_id', 'condition_id', request)\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n    # Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n    # Invalid authorization"
          }
        ]
      },
      "delete": {
        "tags": [
          "Workflows"
        ],
        "summary": "Remove a workflow condition",
        "description": "Removes a workflow condition. Conditions determine when the workflow will trigger.\n",
        "operationId": "removeWorkflowCondition",
        "parameters": [
          {
            "name": "workflowId",
            "in": "path",
            "description": "The workflow identifier",
            "required": true,
            "schema": {
              "pattern": "^wf_[a-z2-7]{26}$",
              "type": "string"
            },
            "example": "wf_c7svxlvo2bbuva4f6s3xu4f7wm"
          },
          {
            "name": "workflowConditionId",
            "in": "path",
            "description": "The workflow condition identifier",
            "required": true,
            "schema": {
              "pattern": "^wfc_[a-z2-7]{26}$",
              "type": "string"
            },
            "example": "wfc_c7svxlvo2bbuva4f6s3xu4f7wm"
          }
        ],
        "responses": {
          "204": {
            "description": "Workflow condition removed successfully",
            "headers": {
              "Cko-Request-Id": {
                "schema": {
                  "$ref": "#/components/schemas/Cko-Request-Id"
                }
              },
              "Cko-Version": {
                "schema": {
                  "$ref": "#/components/schemas/Cko-Version"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Workflow or workflow condition not found"
          },
          "500": {
            "description": "Internal Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "flow",
              "flow:workflows"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      }
    },
    "/workflows/{workflowId}/test": {
      "post": {
        "tags": [
          "Workflows"
        ],
        "summary": "Test a workflow",
        "description": "Validate a workflow in our Sandbox environment.\n",
        "operationId": "testWorkflow",
        "parameters": [
          {
            "name": "workflowId",
            "in": "path",
            "description": "The workflow identifier",
            "required": true,
            "schema": {
              "pattern": "^wf_[a-z2-7]{26}$",
              "type": "string"
            },
            "example": "wf_c7svxlvo2bbuva4f6s3xu4f7wm"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/test-workflow-request"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Workflow test initiated",
            "headers": {
              "Cko-Request-Id": {
                "schema": {
                  "$ref": "#/components/schemas/Cko-Request-Id"
                }
              },
              "Cko-Version": {
                "schema": {
                  "$ref": "#/components/schemas/Cko-Version"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Workflow not found"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "request_id": {
                      "type": "string",
                      "example": "0HLHPN8802NUF:00000003"
                    },
                    "error_type": {
                      "type": "string",
                      "example": "request_invalid"
                    },
                    "error_codes": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "example": "event_types_invalid"
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "flow",
              "flow:workflows"
            ]
          }
        ]
      },
      "servers": [
        {
          "url": "https://{prefix}.api.sandbox.checkout.com",
          "description": "Sandbox",
          "variables": {
            "prefix": {
              "default": "{prefix}",
              "description": "Your unique <a href=\"https://www.checkout.com/docs/developer-resources/api/api-endpoints\" target=\"_blank\">base URL</a>. There is no default value."
            }
          }
        }
      ]
    },
    "/workflows/event-types": {
      "get": {
        "tags": [
          "Workflows"
        ],
        "summary": "Get event types",
        "description": "Get a list of sources and their events for building new workflows\n",
        "operationId": "getEventTypes",
        "responses": {
          "200": {
            "description": "Event types retrieved successfully",
            "headers": {
              "Cko-Request-Id": {
                "schema": {
                  "$ref": "#/components/schemas/Cko-Request-Id"
                }
              },
              "Cko-Version": {
                "schema": {
                  "$ref": "#/components/schemas/Cko-Version"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get-event-types-response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "Internal Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "flow",
              "flow:workflows"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\nusing Checkout.Workflows.Events;\n\n//API keys\nICheckoutApi api = CheckoutSdk.Builder().StaticKeys()\n    .SecretKey(\"secret_key\")\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\n//OAuth\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.Flow)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\ntry\n{\n    ItemsResponse<EventTypesResponse> response = await api.WorkflowsClient().GetEventTypes();\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Flow, configuration.FlowWorkflows}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nresponse, err := api.WorkFlows.GetEventTypes()\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.Environment;\nimport com.checkout.ItemsResponse;\nimport com.checkout.OAuthScope;\nimport com.checkout.workflows.events.WorkflowEventTypes;\n\n// API Keys\nCheckoutApi api = CheckoutSdk.builder()\n    .staticKeys()\n    .secretKey(\"secret_key\")\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\n// OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.FLOW_WORKFLOWS) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\ntry {\n    ItemsResponse<WorkflowEventTypes> response = api.workflowsClient().getEventTypes().get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "Node",
            "source": "import { Checkout } from 'checkout-sdk-node';\n\nlet cko = new Checkout('your_client_secret_here', {\n\tclient: 'ack_XXXXXXXXXXXX',\n\tscope: ['gateway'], // array of scopes\n\tenvironment: 'sandbox', // or \"production\"\n        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\"\n});\n\n// Or if you use api keys:\n// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});\n\ntry {\n\tlet workflows = await cko.workflows.getEventTypes();\n} catch (err) {\n\tconsole.log(err.name);\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Environment;\nuse Checkout\\OAuthScope;\n\n//API Keys\n$api = CheckoutSdk::builder()->staticKeys()\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->secretKey(\"secret_key\")\n    ->build();\n\n//OAuth\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Flow])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\n\ntry {\n    $response = $api->getWorkflowsClient()->getEventTypes();\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\n\n# API Key\napi_key = (\n    CheckoutSdk.builder() \n    .secret_key('secret_key') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .build()\n)\n\n# OAuth\noauth = (\n    CheckoutSdk.builder() \n    .oauth() \n    .client_credentials('client_id', 'client_secret') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.FLOW, OAuthScopes.FLOW_WORKFLOWS]) \n    .build()\n)\n\ntry:\n    response = api.workflows.get_event_types()\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n    # Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n    # Invalid authorization"
          }
        ]
      }
    },
    "/workflows/events/{eventId}": {
      "get": {
        "tags": [
          "Workflows"
        ],
        "summary": "Get an event",
        "description": "Get the details of an event\n",
        "operationId": "getWorkflowEvent",
        "parameters": [
          {
            "name": "eventId",
            "in": "path",
            "description": "The event identifier",
            "required": true,
            "schema": {
              "pattern": "^evt_[a-z0-9]{26}$",
              "type": "string"
            },
            "example": "evt_x5zm2po6kimubhlfitgt2mfwgi"
          }
        ],
        "responses": {
          "200": {
            "description": "Event retrieved successfully",
            "headers": {
              "Cko-Request-Id": {
                "schema": {
                  "$ref": "#/components/schemas/Cko-Request-Id"
                }
              },
              "Cko-Version": {
                "schema": {
                  "$ref": "#/components/schemas/Cko-Version"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get-event-response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Event not found"
          },
          "500": {
            "description": "Internal Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "flow",
              "flow:events"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\nusing Checkout.Workflows.Events;\n\n//API keys\nICheckoutApi api = CheckoutSdk.Builder().StaticKeys()\n    .SecretKey(\"secret_key\")\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\n//OAuth\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.Flow)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\ntry\n{\n    GetEventResponse response = await api.WorkflowsClient().GetEvent(\"event_id\");\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Flow, configuration.FlowEvents}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nresponse, err := api.WorkFlows.GetEvent(\"event_id\")\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\nimport com.checkout.workflows.events.GetEventResponse;\n\n// API Keys\nCheckoutApi api = CheckoutSdk.builder()\n    .staticKeys()\n    .secretKey(\"secret_key\")\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\n// OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.FLOW_EVENTS) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\ntry {\n    GetEventResponse response = api.workflowsClient().getEvent(\"event_id\").get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "Node",
            "source": "import { Checkout } from 'checkout-sdk-node';\n\nlet cko = new Checkout('your_client_secret_here', {\n\tclient: 'ack_XXXXXXXXXXXX',\n\tscope: ['gateway'], // array of scopes\n\tenvironment: 'sandbox', // or \"production\"\n        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\"\n});\n\n// Or if you use api keys:\n// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});\n\ntry {\n\tlet workflows = await cko.workflows.getEvent('evt_hsfxtjwidv6ulah5gdbiqwqnka');\n} catch (err) {\n\tconsole.log(err.name);\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Environment;\nuse Checkout\\OAuthScope;\n\n//API Keys\n$api = CheckoutSdk::builder()->staticKeys()\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->secretKey(\"secret_key\")\n    ->build();\n\n//OAuth\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Flow])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\n\ntry {\n    $response = $api->getWorkflowsClient()->getEvent(\"event_id\");\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\n\n# API Key\napi_key = (\n    CheckoutSdk.builder() \n    .secret_key('secret_key') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .build()\n)\n\n# OAuth\noauth = (\n    CheckoutSdk.builder() \n    .oauth() \n    .client_credentials('client_id', 'client_secret') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.FLOW, OAuthScopes.FLOW_EVENTS]) \n    .build()\n)\n\ntry:\n    response = api.workflows.get_event('event_id')\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n    # Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n    # Invalid authorization"
          }
        ]
      }
    },
    "/workflows/events/{eventId}/actions/{workflowActionId}": {
      "get": {
        "tags": [
          "Workflows"
        ],
        "summary": "Get action invocations",
        "description": "Get the details of a workflow action executed for the specified event.\n",
        "operationId": "getWorkflowActionInvocations",
        "parameters": [
          {
            "name": "eventId",
            "in": "path",
            "description": "The event identifier",
            "required": true,
            "schema": {
              "pattern": "^evt_[a-z0-9]{26}$",
              "type": "string"
            },
            "example": "evt_x5zm2po6kimubhlfitgt2mfwgi"
          },
          {
            "name": "workflowActionId",
            "in": "path",
            "description": "The workflow action identifier",
            "required": true,
            "schema": {
              "pattern": "^wfa_[a-z0-9]{26}$",
              "type": "string"
            },
            "example": "wfa_uzkxpffkvpiu5fe3h5ira7sqpa"
          }
        ],
        "responses": {
          "200": {
            "description": "Workflow action retrieved successfully",
            "headers": {
              "Cko-Request-Id": {
                "schema": {
                  "$ref": "#/components/schemas/Cko-Request-Id"
                }
              },
              "Cko-Version": {
                "schema": {
                  "$ref": "#/components/schemas/Cko-Version"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get-invocations-response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Event not found"
          },
          "500": {
            "description": "Internal Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "flow",
              "flow:events",
              "flow:workflows"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\nusing Checkout.Workflows.Actions.Response;\n\n//API keys\nICheckoutApi api = CheckoutSdk.Builder().StaticKeys()\n    .SecretKey(\"secret_key\")\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\n//OAuth\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.Flow)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\ntry\n{\n    WorkflowActionInvocationsResponse response = await api.WorkflowsClient().GetActionInvocations(\"event_id\", \"action_id\");\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Flow, configuration.FlowEvents, configuration.FlowWorkflows}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nresponse, err := api.WorkFlows.GetActionInvocations(\"event_id\", \"action_id\")\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\nimport com.checkout.workflows.actions.response.WorkflowActionInvocationsResponse;\n\n// API Keys\nCheckoutApi api = CheckoutSdk.builder()\n    .staticKeys()\n    .secretKey(\"secret_key\")\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\n// OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.FLOW_EVENTS) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\ntry {\n    WorkflowActionInvocationsResponse response = api.workflowsClient().getActionInvocations(\"event_id\", \"action_id\").get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Environment;\nuse Checkout\\OAuthScope;\n\n//API Keys\n$api = CheckoutSdk::builder()->staticKeys()\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->secretKey(\"secret_key\")\n    ->build();\n\n//OAuth\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Flow])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\n\ntry {\n    $response = $api->getWorkflowsClient()->getActionInvocations(\"event_id\", \"action_id\");\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\n\n# API Key\napi_key = (\n    CheckoutSdk.builder() \n    .secret_key('secret_key') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .build()\n)\n\n# OAuth\noauth = (\n    CheckoutSdk.builder() \n    .oauth() \n    .client_credentials('client_id', 'client_secret') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.FLOW, OAuthScopes.FLOW_EVENTS, OAuthScopes.FLOW_WORKFLOWS]) \n    .build()\n)\n\ntry:\n    response = api.workflows.get_action_invocations('event_id', 'action_id')\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n    # Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n    # Invalid authorization"
          }
        ]
      }
    },
    "/workflows/events/{eventId}/reflow": {
      "post": {
        "tags": [
          "Workflows"
        ],
        "summary": "Reflow by event",
        "description": "Reflows a past event denoted by the event ID and triggers the actions of any workflows with matching conditions.\n",
        "operationId": "reflowByEvent",
        "parameters": [
          {
            "name": "eventId",
            "in": "path",
            "description": "The unique identifier for the event to be reflowed.",
            "required": true,
            "schema": {
              "pattern": "^evt_[a-z0-9]{26}$",
              "type": "string"
            },
            "example": "evt_x5zm2po6kimubhlfitgt2mfwgi"
          }
        ],
        "responses": {
          "202": {
            "description": "Event reflow initiated successfully",
            "headers": {
              "Cko-Request-Id": {
                "schema": {
                  "$ref": "#/components/schemas/Cko-Request-Id"
                }
              },
              "Cko-Version": {
                "schema": {
                  "$ref": "#/components/schemas/Cko-Version"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Events for reflow not found"
          },
          "500": {
            "description": "Internal Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "flow",
              "flow:reflow"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\nusing Checkout.Workflows.Reflows;\n\n//API keys\nICheckoutApi api = CheckoutSdk.Builder().StaticKeys()\n    .SecretKey(\"secret_key\")\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\n//OAuth\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.Flow)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\ntry\n{\n    ReflowResponse response = await api.WorkflowsClient().ReflowByEvent(\"event_id\");\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Flow}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nresponse, err := api.WorkFlows.ReflowByEvent(\"event_id\")\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\nimport com.checkout.workflows.reflow.ReflowResponse;\n\n// API Keys\nCheckoutApi api = CheckoutSdk.builder()\n    .staticKeys()\n    .secretKey(\"secret_key\")\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\n// OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.FLOW, OAuthScope.FLOW_WORKFLOWS) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\ntry {\n    ReflowResponse response = api.workflowsClient().reflowByEvent(\"event_id\").get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "Node",
            "source": "import { Checkout } from 'checkout-sdk-node';\n\nlet cko = new Checkout('your_client_secret_here', {\n\tclient: 'ack_XXXXXXXXXXXX',\n\tscope: ['gateway'], // array of scopes\n\tenvironment: 'sandbox', // or \"production\"\n        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\"\n});\n\n// Or if you use api keys:\n// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});\n\ntry {\n\tlet workflows = await cko.workflows.reflowByEvent('evt_hsfxtjwidv6ulah5gdbiqwqnka');\n} catch (err) {\n\tconsole.log(err.name);\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Environment;\nuse Checkout\\OAuthScope;\n\n//API Keys\n$api = CheckoutSdk::builder()->staticKeys()\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->secretKey(\"secret_key\")\n    ->build();\n\n//OAuth\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Flow])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\n\ntry {\n    $response = $api->getWorkflowsClient()->reflowByEvent(\"event_id\");\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\n\n# API Key\napi_key = (\n    CheckoutSdk.builder() \n    .secret_key('secret_key') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .build()\n)\n\n# OAuth\noauth = (\n    CheckoutSdk.builder() \n    .oauth() \n    .client_credentials('client_id', 'client_secret') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.FLOW]) \n    .build()\n)\n\ntry:\n    response = api.workflows.reflow_by_event('event_id')\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n    # Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n    # Invalid authorization"
          }
        ]
      }
    },
    "/workflows/events/{eventId}/workflow/{workflowId}/reflow": {
      "post": {
        "tags": [
          "Workflows"
        ],
        "summary": "Reflow by event and workflow",
        "description": "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.\n",
        "operationId": "reflowByEventAndWorkflow",
        "parameters": [
          {
            "name": "eventId",
            "in": "path",
            "description": "The unique identifier for the event to be reflowed.",
            "required": true,
            "schema": {
              "pattern": "^evt_[a-z0-9]{26}$",
              "type": "string"
            },
            "example": "evt_x5zm2po6kimubhlfitgt2mfwgi"
          },
          {
            "name": "workflowId",
            "in": "path",
            "description": "The identifier of the workflow whose actions you want to trigger.",
            "required": true,
            "schema": {
              "pattern": "^wf_[a-z0-9]{26}$",
              "type": "string"
            },
            "example": "wf_c8zm2po6kimubhlfitgt2mferf"
          }
        ],
        "responses": {
          "202": {
            "description": "Event reflow initiated successfully",
            "headers": {
              "Cko-Request-Id": {
                "schema": {
                  "$ref": "#/components/schemas/Cko-Request-Id"
                }
              },
              "Cko-Version": {
                "schema": {
                  "$ref": "#/components/schemas/Cko-Version"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Events for reflow not found"
          },
          "500": {
            "description": "Internal Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "flow",
              "flow:reflow"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\nusing Checkout.Workflows.Reflows;\n\n//API keys\nICheckoutApi api = CheckoutSdk.Builder().StaticKeys()\n    .SecretKey(\"secret_key\")\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\n//OAuth\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.Flow)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\ntry\n{\n    ReflowResponse response = await api.WorkflowsClient().ReflowByEventAndWorkflow(\"event_id\", \"workflow_id\");\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Flow}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nresponse, err := api.WorkFlows.ReflowByEventAndWorkflow(\"event_id\", \"workflow_id\")\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\nimport com.checkout.workflows.reflow.ReflowResponse;\n\n// API Keys\nCheckoutApi api = CheckoutSdk.builder()\n    .staticKeys()\n    .secretKey(\"secret_key\")\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\n// OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.FLOW, OAuthScope.FLOW_WORKFLOWS) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\ntry {\n    ReflowResponse response = api.workflowsClient().reflowByEventAndWorkflow(\"event_id\", \"workflow_id\").get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "Node",
            "source": "import { Checkout } from 'checkout-sdk-node';\n\nlet cko = new Checkout('your_client_secret_here', {\n\tclient: 'ack_XXXXXXXXXXXX',\n\tscope: ['gateway'], // array of scopes\n\tenvironment: 'sandbox', // or \"production\"\n        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\"\n});\n\n// Or if you use api keys:\n// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});\n\ntry {\n\tlet workflows = await cko.workflows.reflowByEventAndWorkflow(\n\t\t'evt_hsfxtjwidv6ulah5gdbiqwqnka',\n\t\t'wf_6p73pesh75vu7fqo6p6exhpe54'\n\t);\n} catch (err) {\n\tconsole.log(err.name);\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Environment;\nuse Checkout\\OAuthScope;\n\n//API Keys\n$api = CheckoutSdk::builder()->staticKeys()\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->secretKey(\"secret_key\")\n    ->build();\n\n//OAuth\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Flow])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\n\ntry {\n    $response = $api->getWorkflowsClient()->reflowByEventAndWorkflow(\"event_id\", \"workflow_id\");\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\n\n# API Key\napi_key = (\n    CheckoutSdk.builder() \n    .secret_key('secret_key') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .build()\n)\n\n# OAuth\noauth = (\n    CheckoutSdk.builder() \n    .oauth() \n    .client_credentials('client_id', 'client_secret') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.FLOW, OAuthScopes.FLOW_WORKFLOWS]) \n    .build()\n)\n\ntry:\n    response = api.workflows.reflow_by_event_and_workflow('event_id', 'workflow_id')\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n    # Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n    # Invalid authorization"
          }
        ]
      }
    },
    "/workflows/events/reflow": {
      "post": {
        "tags": [
          "Workflows"
        ],
        "summary": "Reflow",
        "description": "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.\n",
        "operationId": "reflowEvents",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/reflow-events-by-event-and-workflow-ids"
                  },
                  {
                    "$ref": "#/components/schemas/reflow-events-by-subject-and-workflow-ids"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "description": "Event reflow initiated successfully",
            "headers": {
              "Cko-Request-Id": {
                "schema": {
                  "$ref": "#/components/schemas/Cko-Request-Id"
                }
              },
              "Cko-Version": {
                "schema": {
                  "$ref": "#/components/schemas/Cko-Version"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Events for reflow not found"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ids-validation-error"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "flow",
              "flow:reflow"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\nusing Checkout.Workflows.Reflows;\n\n//API keys\nICheckoutApi api = CheckoutSdk.Builder().StaticKeys()\n    .SecretKey(\"secret_key\")\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\n//OAuth\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.Flow)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\nReflowRequest request = new ReflowByEventsRequest()\n{\n    Events = new List<string>()\n    {\n        \"evt_lzmo6p0i3612judj754w1ngtil\",\n        \"evt_05z6xuagtti48ajyfbuekg6a0a\"\n    },\n    Workflows = new List<string>()\n    {\n        \"wf_sq8jnqi9i749hhb470bu308uk2\",\n        \"wf_bz91q7i4ks4sr0kasmas2xhp56\"\n\n    }\n};\n\ntry\n{\n    ReflowResponse response = await api.WorkflowsClient().Reflow(request);\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n\t\"github.com/checkout/checkout-sdk-go/workflows/reflows\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Flow}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nrequest := &reflows.ReflowByEventsRequest{\n\tEvents:          []string{\"event_id_1\", \"event_id_2\"},\n\tReflowWorkflows: reflows.ReflowWorkflows{Workflows: []string{\"workflow_id_1\", \"workflow_id_2\"}},\n}\n\nresponse, err := api.WorkFlows.Reflow(request)\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\nimport com.checkout.workflows.reflow.ReflowByEventsRequest;\nimport com.checkout.workflows.reflow.ReflowResponse;\n\n// API Keys\nCheckoutApi api = CheckoutSdk.builder()\n    .staticKeys()\n    .secretKey(\"secret_key\")\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\n// OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.FLOW, OAuthScope.FLOW_WORKFLOWS) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\nReflowByEventsRequest request = ReflowByEventsRequest.builder()\n    .events(Arrays.asList(\"event_id_1\", \"event_id_2\"))\n    .workflows(Arrays.asList(\"workflow_id_1\", \"workflow_id_2\"))\n    .build();\n\ntry {\n    ReflowResponse response = api.workflowsClient().reflow(request).get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "Node",
            "source": "import { Checkout } from 'checkout-sdk-node';\n\nlet cko = new Checkout('your_client_secret_here', {\n\tclient: 'ack_XXXXXXXXXXXX',\n\tscope: ['gateway'], // array of scopes\n\tenvironment: 'sandbox', // or \"production\"\n        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\"\n});\n\n// Or if you use api keys:\n// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});\n\ntry {\n\tlet workflows = await cko.workflows.reflowEventsByEventAndWorkflowIds(\n\t\t['evt_hsfxtjwidv6ulah5gdbiqwqnka'],\n\t\t['wf_6p73pesh75vu7fqo6p6exhpe54']\n\t);\n} catch (err) {\n\tconsole.log(err.name);\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Environment;\nuse Checkout\\OAuthScope;\nuse Checkout\\Workflows\\Reflows\\ReflowByEventsRequest;\n\n//API Keys\n$api = CheckoutSdk::builder()->staticKeys()\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->secretKey(\"secret_key\")\n    ->build();\n\n//OAuth\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Flow])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\n$request = new ReflowByEventsRequest();\n$request->events = array(\"evt_lzmo6p0i3612judj754w1ngtil\");\n$request->workflows = array(\"wf_sq8jnqi9i749hhb470bu308uk2\");\n\ntry {\n    $response = $api->getWorkflowsClient()->reflow($request);\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\nfrom checkout_sdk.workflows.workflows import ReflowByEventsRequest\n\n# API Key\napi_key = (\n    CheckoutSdk.builder() \n    .secret_key('secret_key') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .build()\n)\n\n# OAuth\noauth = (\n    CheckoutSdk.builder() \n    .oauth() \n    .client_credentials('client_id', 'client_secret') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.FLOW, OAuthScopes.FLOW_WORKFLOWS]) \n    .build()\n)\n\nrequest = ReflowByEventsRequest()\nrequest.events = ['event_id_1', 'event_id_2']\nrequest.workflows = ['workflow_id_1', 'workflow_id_2']\n\ntry:\n    response = api.workflows.reflow(request)\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n    # Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n    # Invalid authorization"
          }
        ]
      }
    },
    "/workflows/events/subject/{subjectId}": {
      "get": {
        "tags": [
          "Workflows"
        ],
        "summary": "Get subject events",
        "description": "Get all events that relate to a specific subject\n",
        "operationId": "getSubjectEvents",
        "parameters": [
          {
            "name": "subjectId",
            "in": "path",
            "description": "The event identifier",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "pay_wlu3wxc26jounofs5iez75qaqa"
          }
        ],
        "responses": {
          "200": {
            "description": "Events retrieved successfully",
            "headers": {
              "Cko-Request-Id": {
                "schema": {
                  "$ref": "#/components/schemas/Cko-Request-Id"
                }
              },
              "Cko-Version": {
                "schema": {
                  "$ref": "#/components/schemas/Cko-Version"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/subject-events-response"
                }
              }
            }
          },
          "404": {
            "description": "Subject not found",
            "headers": {
              "Cko-Request-Id": {
                "schema": {
                  "$ref": "#/components/schemas/Cko-Request-Id"
                }
              },
              "Cko-Version": {
                "schema": {
                  "$ref": "#/components/schemas/Cko-Version"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "Internal Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "flow",
              "flow:events"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\nusing Checkout.Workflows.Events;\n\n//API keys\nICheckoutApi api = CheckoutSdk.Builder().StaticKeys()\n    .SecretKey(\"secret_key\")\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\n//OAuth\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.Flow)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\ntry\n{\n    SubjectEventsResponse response = await api.WorkflowsClient().GetSubjectEvents(\"subject_id\");\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Flow, configuration.FlowEvents}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nresponse, err := api.WorkFlows.GetSubjectEvents(\"subject_id\")\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\nimport com.checkout.workflows.events.SubjectEventsResponse;\nimport com.checkout.workflows.reflow.ReflowByEventsRequest;\n\n// API Keys\nCheckoutApi api = CheckoutSdk.builder()\n    .staticKeys()\n    .secretKey(\"secret_key\")\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\n// OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.FLOW_EVENTS) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\nReflowByEventsRequest request = ReflowByEventsRequest.builder()\n    .events(Arrays.asList(\"event_id_1\", \"event_id_2\"))\n    .workflows(Arrays.asList(\"workflow_id_1\", \"workflow_id_2\"))\n    .build();\n\ntry {\n    SubjectEventsResponse response = api.workflowsClient().getSubjectEvents(\"subject_id\").get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "Node",
            "source": "import { Checkout } from 'checkout-sdk-node';\n\nlet cko = new Checkout('your_client_secret_here', {\n\tclient: 'ack_XXXXXXXXXXXX',\n\tscope: ['gateway'], // array of scopes\n\tenvironment: 'sandbox', // or \"production\"\n        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\"\n});\n\n// Or if you use api keys:\n// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});\n\ntry {\n\tlet workflows = await cko.workflows.getSubjectEvents('pay_ymhp72mhubcejmjjwcupzalm5e');\n} catch (err) {\n\tconsole.log(err.name);\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Environment;\nuse Checkout\\OAuthScope;\n\n//API Keys\n$api = CheckoutSdk::builder()->staticKeys()\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->secretKey(\"secret_key\")\n    ->build();\n\n//OAuth\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Flow])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\n\ntry {\n    $response = $api->getWorkflowsClient()->getSubjectEvents(\"subject_id\");\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\n\n# API Key\napi_key = (\n    CheckoutSdk.builder() \n    .secret_key('secret_key') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .build()\n)\n\n# OAuth\noauth = (\n    CheckoutSdk.builder() \n    .oauth() \n    .client_credentials('client_id', 'client_secret') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.FLOW, OAuthScopes.FLOW_EVENTS]) \n    .build()\n)\n\ntry:\n    response = api.workflows.get_subject_events('subject_id')\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n    # Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n    # Invalid authorization"
          }
        ]
      }
    },
    "/workflows/events/subject/{subjectId}/reflow": {
      "post": {
        "tags": [
          "Workflows"
        ],
        "summary": "Reflow by subject",
        "description": "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.\n",
        "operationId": "reflowBySubject",
        "parameters": [
          {
            "name": "subjectId",
            "in": "path",
            "description": "The subject identifier (for example, a payment ID or a dispute ID). The events associated with these subjects will be reflowed.",
            "required": true,
            "schema": {
              "pattern": "^[a-z]{3}_[a-z0-9]{26}$",
              "type": "string"
            },
            "example": "pay_x5zm2po6kimubhlfitgt2mfwgi"
          }
        ],
        "responses": {
          "202": {
            "description": "Event reflow initiated successfully",
            "headers": {
              "Cko-Request-Id": {
                "schema": {
                  "$ref": "#/components/schemas/Cko-Request-Id"
                }
              },
              "Cko-Version": {
                "schema": {
                  "$ref": "#/components/schemas/Cko-Version"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Events for reflow not found"
          },
          "500": {
            "description": "Internal Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "flow",
              "flow:reflow"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\nusing Checkout.Workflows.Reflows;\n\n//API keys\nICheckoutApi api = CheckoutSdk.Builder().StaticKeys()\n    .SecretKey(\"secret_key\")\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\n//OAuth\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.Flow)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\ntry\n{\n    ReflowResponse response = await api.WorkflowsClient().ReflowBySubject(\"subject_id\");\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Flow}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nresponse, err := api.WorkFlows.ReflowBySubject(\"subject_id\")\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\nimport com.checkout.workflows.reflow.ReflowResponse;\n\n// API Keys\nCheckoutApi api = CheckoutSdk.builder()\n    .staticKeys()\n    .secretKey(\"secret_key\")\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\n// OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.FLOW, OAuthScope.FLOW_WORKFLOWS) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\ntry {\n    ReflowResponse response = api.workflowsClient().reflowBySubject(\"subject_id\").get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "Node",
            "source": "import { Checkout } from 'checkout-sdk-node';\n\nlet cko = new Checkout('your_client_secret_here', {\n\tclient: 'ack_XXXXXXXXXXXX',\n\tscope: ['gateway'], // array of scopes\n\tenvironment: 'sandbox', // or \"production\"\n        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\"\n});\n\n// Or if you use api keys:\n// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});\n\ntry {\n\tlet workflows = await cko.workflows.reflowBySubject('pay_ymhp72mhubcejmjjwcupzalm5e');\n} catch (err) {\n\tconsole.log(err.name);\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Environment;\nuse Checkout\\OAuthScope;\n\n//API Keys\n$api = CheckoutSdk::builder()->staticKeys()\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->secretKey(\"secret_key\")\n    ->build();\n\n//OAuth\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Flow])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\n\ntry {\n    $response = $api->getWorkflowsClient()->reflowBySubject(\"subject_id\");\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\n\n# API Key\napi_key = (\n    CheckoutSdk.builder() \n    .secret_key('secret_key') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .build()\n)\n\n# OAuth\noauth = (\n    CheckoutSdk.builder() \n    .oauth() \n    .client_credentials('client_id', 'client_secret') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.FLOW, OAuthScopes.FLOW_WORKFLOWS]) \n    .build()\n)\n\ntry:\n    response = api.workflows.reflow_by_subject('subject_id')\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n    # Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n    # Invalid authorization"
          }
        ]
      }
    },
    "/workflows/events/subject/{subjectId}/workflow/{workflowId}/reflow": {
      "post": {
        "tags": [
          "Workflows"
        ],
        "summary": "Reflow by subject and workflow",
        "description": "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.\n",
        "operationId": "reflowBySubjectAndWorkflow",
        "parameters": [
          {
            "name": "subjectId",
            "in": "path",
            "description": "The subject identifier (for example, a payment ID or a dispute ID). The events associated with these subjects will be reflowed.",
            "required": true,
            "schema": {
              "pattern": "^[a-z]{3}_[a-z0-9]{26}$",
              "type": "string"
            },
            "example": "pay_x5zm2po6kimubhlfitgt2mfwgi"
          },
          {
            "name": "workflowId",
            "in": "path",
            "description": "The identifier of the workflow whose actions you want to trigger.",
            "required": true,
            "schema": {
              "pattern": "^wf_[a-z0-9]{26}$",
              "type": "string"
            },
            "example": "wf_c8zm2po6kimubhlfitgt2mferf"
          }
        ],
        "responses": {
          "202": {
            "description": "Event reflow initiated successfully",
            "headers": {
              "Cko-Request-Id": {
                "schema": {
                  "$ref": "#/components/schemas/Cko-Request-Id"
                }
              },
              "Cko-Version": {
                "schema": {
                  "$ref": "#/components/schemas/Cko-Version"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Events for reflow not found"
          },
          "500": {
            "description": "Internal Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "flow",
              "flow:reflow"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\nusing Checkout.Workflows.Reflows;\n\n//API keys\nICheckoutApi api = CheckoutSdk.Builder().StaticKeys()\n    .SecretKey(\"secret_key\")\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\n//OAuth\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.Flow)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\ntry\n{\n    ReflowResponse response = await api.WorkflowsClient().ReflowBySubjectAndWorkflow(\"subject_id\", \"workflow_id\");\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Flow}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nresponse, err := api.WorkFlows.ReflowBySubjectAndWorkflow(\"subject_id\", \"workflow_id\")\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\nimport com.checkout.workflows.reflow.ReflowResponse;\n\n// API Keys\nCheckoutApi api = CheckoutSdk.builder()\n    .staticKeys()\n    .secretKey(\"secret_key\")\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\n// OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.FLOW, OAuthScope.FLOW_WORKFLOWS) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\ntry {\n    ReflowResponse response = api.workflowsClient().reflowBySubjectAndWorkflow(\"subject_id\", \"workflow_id\").get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "Node",
            "source": "import { Checkout } from 'checkout-sdk-node';\n\nlet cko = new Checkout('your_client_secret_here', {\n\tclient: 'ack_XXXXXXXXXXXX',\n\tscope: ['gateway'], // array of scopes\n\tenvironment: 'sandbox', // or \"production\"\n        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\"\n});\n\n// Or if you use api keys:\n// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});\n\ntry {\n\tlet workflows = await cko.workflows.reflowBySubjectAndWorkflow(\n\t\t'pay_ymhp72mhubcejmjjwcupzalm5e',\n\t\t'wf_6p73pesh75vu7fqo6p6exhpe54'\n\t);\n} catch (err) {\n\tconsole.log(err.name);\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Environment;\nuse Checkout\\OAuthScope;\n\n//API Keys\n$api = CheckoutSdk::builder()->staticKeys()\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->secretKey(\"secret_key\")\n    ->build();\n\n//OAuth\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Flow])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\n\ntry {\n    $response = $api->getWorkflowsClient()->reflowBySubjectAndWorkflow(\"subject_id\", \"workflow_id\");\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\n\n# API Key\napi_key = (\n    CheckoutSdk.builder() \n    .secret_key('secret_key') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .build()\n)\n\n# OAuth\noauth = (\n    CheckoutSdk.builder() \n    .oauth() \n    .client_credentials('client_id', 'client_secret') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.FLOW, OAuthScopes.FLOW_WORKFLOWS]) \n    .build()\n)\n\ntry:\n    response = api.workflows.reflow_by_subject_and_workflow('subject_id', 'workflow_id')\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n    # Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n    # Invalid authorization"
          }
        ]
      }
    },
    "/forex/rates": {
      "get": {
        "tags": [
          "Forex"
        ],
        "summary": "Get FX rates",
        "description": "Get the indicative foreign exchange (FX) rates for:\n\n  - <a href=\"https://www.checkout.com/docs/developer-resources/api/fx-rates-api#Daily_acquiring_FX_rates\" target=\"_blank\">Daily acquiring</a>\n  - <a href=\"https://www.checkout.com/docs/developer-resources/api/fx-rates-api#Scheme_acquiring_FX_rates\" target=\"_blank\">Scheme acquiring</a>\n  - <a href=\"https://www.checkout.com/docs/developer-resources/api/fx-rates-api#Card_payouts_FX_rates\" target=\"_blank\">Card payouts</a>\n\nIf you request an FX rate for a product that is not enabled for your account, you receive a `403 Forbidden` error response.\n",
        "operationId": "getFxRates",
        "parameters": [
          {
            "name": "product",
            "in": "query",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ForexProduct"
            }
          },
          {
            "name": "source",
            "in": "query",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ForexSource"
            }
          },
          {
            "name": "currency_pairs",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "A list of <a href=\"https://www.checkout.com/docs/developer-resources/codes/currency-codes\" target=\"_blank\">currency code</a> pairs to retrieve FX rates for. For example, to request a rate for a USD to GBP conversion, the currency pair is `USDGBP`.<br/>Format – Comma-separated list",
              "example": "USDGBP,EURNOK,JPYCAD"
            }
          },
          {
            "name": "processing_channel_id",
            "in": "query",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ForexProcessingChannelId"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Rates retrieved successfully",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ForexRatesResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "429": {
            "description": "Too Many Requests / Duplicate Requests"
          },
          "422": {
            "description": "Unprocessable Content",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway"
          }
        },
        "security": [
          {
            "OAuth": [
              "fx"
            ]
          }
        ]
      }
    },
    "/forward": {
      "post": {
        "tags": [
          "Forward"
        ],
        "summary": "Forward an API request",
        "description": "Forwards an API request to a third-party endpoint.\n\nFor 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.\n",
        "operationId": "forwardRequest",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ForwardRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The request was successfully forwarded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ForwardResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "422": {
            "description": "Invalid data was sent.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ForwardValidationError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "forward"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "servers": [
          {
            "url": "https://forward.checkout.com",
            "description": "Production environment"
          },
          {
            "url": "https://forward.sandbox.checkout.com",
            "description": "Sandbox environment"
          }
        ]
      }
    },
    "/forward/{id}": {
      "get": {
        "tags": [
          "Forward"
        ],
        "summary": "Get forward request",
        "description": "Retrieve the details of a successfully forwarded API request.    \n\nThe details can be retrieved for up to 14 days after the request was initiated.\n",
        "operationId": "getForwardRequest",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier of the forward request.",
            "required": true,
            "schema": {
              "pattern": "^fwd_[A-Z0-9]{26}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Forward request retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetForwardRequestResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Forward request not found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "forward"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "servers": [
          {
            "url": "https://forward.checkout.com",
            "description": "Production environment"
          },
          {
            "url": "https://forward.sandbox.checkout.com",
            "description": "Sandbox environment"
          }
        ]
      }
    },
    "/googlepay/enrollments": {
      "post": {
        "tags": [
          "Google Pay"
        ],
        "summary": "Enroll an entity to the Google Pay Service",
        "description": "Enroll an entity to the Google Pay Service. \n\nYou must accept the <a href=\"https://payments.developers.google.com/terms/sellertos\">Google terms of service</a> to use this feature.\n",
        "operationId": "GooglePayEnrollMerchant",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GooglePayEnrollmentRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Enrolled successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GooglePayEnrollmentResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized."
          },
          "422": {
            "description": "Invalid request payload.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GooglePayErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error."
          }
        },
        "security": [
          {
            "OAuth": [
              "vault:gpayme-enrollment"
            ]
          }
        ],
        "servers": [
          {
            "url": "https://{prefix}.api.checkout.com",
            "description": "Live API",
            "variables": {
              "prefix": {
                "default": "{prefix}",
                "description": "Your unique <a href=\"https://www.checkout.com/docs/developer-resources/api/api-endpoints\" target=\"_blank\">base URL</a>. There is no default value."
              }
            }
          },
          {
            "url": "https://{prefix}.api.sandbox.checkout.com",
            "description": "Sandbox API",
            "variables": {
              "prefix": {
                "default": "{prefix}",
                "description": "Your unique <a href=\"https://www.checkout.com/docs/developer-resources/api/api-endpoints\" target=\"_blank\">base URL</a>. There is no default value."
              }
            }
          }
        ]
      }
    },
    "/googlepay/enrollments/{entity_id}/domain": {
      "post": {
        "tags": [
          "Google Pay"
        ],
        "summary": "Register a web domain for an enrolled entity",
        "description": "Associates a web domain with the specified enrolled entity.\n",
        "operationId": "GooglePayRegisterDomain",
        "parameters": [
          {
            "name": "entity_id",
            "in": "path",
            "description": "Unique identifier of the entity.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GooglePayRegisterDomainRequest"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Domain registered successfully (no content)."
          },
          "401": {
            "description": "Unauthorized."
          },
          "404": {
            "description": "Entity not found."
          },
          "422": {
            "description": "Invalid domain format or missing parameter.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GooglePayErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error."
          }
        },
        "security": [
          {
            "OAuth": [
              "vault:gpayme-enrollment"
            ]
          }
        ],
        "servers": [
          {
            "url": "https://{prefix}.api.checkout.com",
            "description": "Live API",
            "variables": {
              "prefix": {
                "default": "{prefix}",
                "description": "Your unique <a href=\"https://www.checkout.com/docs/developer-resources/api/api-endpoints\" target=\"_blank\">base URL</a>. There is no default value."
              }
            }
          },
          {
            "url": "https://{prefix}.api.sandbox.checkout.com",
            "description": "Sandbox API",
            "variables": {
              "prefix": {
                "default": "{prefix}",
                "description": "Your unique <a href=\"https://www.checkout.com/docs/developer-resources/api/api-endpoints\" target=\"_blank\">base URL</a>. There is no default value."
              }
            }
          }
        ]
      }
    },
    "/googlepay/enrollments/{entity_id}/domains": {
      "get": {
        "tags": [
          "Google Pay"
        ],
        "summary": "Get registered domains for an entity",
        "description": "Retrieves all web domains registered for the specified entity.\n",
        "operationId": "GooglePayGetRegisteredDomains",
        "parameters": [
          {
            "name": "entity_id",
            "in": "path",
            "description": "Unique identifier of the entity.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved list of domains.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GooglePayDomainListResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized."
          },
          "404": {
            "description": "Entity was not found or no domains are registered."
          },
          "500": {
            "description": "Internal server error."
          }
        },
        "security": [
          {
            "OAuth": [
              "vault:gpayme-enrollment"
            ]
          }
        ],
        "servers": [
          {
            "url": "https://{prefix}.api.checkout.com",
            "description": "Live API",
            "variables": {
              "prefix": {
                "default": "{prefix}",
                "description": "Your unique <a href=\"https://www.checkout.com/docs/developer-resources/api/api-endpoints\" target=\"_blank\">base URL</a>. There is no default value."
              }
            }
          },
          {
            "url": "https://{prefix}.api.sandbox.checkout.com",
            "description": "Sandbox API",
            "variables": {
              "prefix": {
                "default": "{prefix}",
                "description": "Your unique <a href=\"https://www.checkout.com/docs/developer-resources/api/api-endpoints\" target=\"_blank\">base URL</a>. There is no default value."
              }
            }
          }
        ]
      }
    },
    "/googlepay/enrollments/{entity_id}/state": {
      "get": {
        "tags": [
          "Google Pay"
        ],
        "summary": "Get enrollment state",
        "description": "Returns the current enrollment state of an entity.\n",
        "operationId": "GooglePayGetEnrollmentState",
        "parameters": [
          {
            "name": "entity_id",
            "in": "path",
            "description": "Unique identifier of the entity.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved enrollment state.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GooglePayEnrollmentStateResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized."
          },
          "404": {
            "description": "Entity not found."
          },
          "500": {
            "description": "Internal server error."
          }
        },
        "security": [
          {
            "OAuth": [
              "vault:gpayme-enrollment"
            ]
          }
        ],
        "servers": [
          {
            "url": "https://{prefix}.api.checkout.com",
            "description": "Live API",
            "variables": {
              "prefix": {
                "default": "{prefix}",
                "description": "Your unique <a href=\"https://www.checkout.com/docs/developer-resources/api/api-endpoints\" target=\"_blank\">base URL</a>. There is no default value."
              }
            }
          },
          {
            "url": "https://{prefix}.api.sandbox.checkout.com",
            "description": "Sandbox API",
            "variables": {
              "prefix": {
                "default": "{prefix}",
                "description": "Your unique <a href=\"https://www.checkout.com/docs/developer-resources/api/api-endpoints\" target=\"_blank\">base URL</a>. There is no default value."
              }
            }
          }
        ]
      }
    },
    "/hosted-payments": {
      "post": {
        "tags": [
          "Hosted Payments Page"
        ],
        "summary": "Create a Hosted Payments Page session",
        "description": "Create a Hosted Payments Page session and pass through all the payment information, like the amount, currency, country and reference.\n\nTo 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>.\n",
        "operationId": "createAHostedPaymentsSession",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HostedPaymentsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created Hosted Payments Page",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HostedPaymentsResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\nusing Checkout.Common;\nusing Checkout.Payments;\nusing Checkout.Payments.Hosted;\n\nICheckoutApi api = CheckoutSdk.Builder().StaticKeys()\n    .SecretKey(\"secret_key\")\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\nHostedPaymentRequest request = new HostedPaymentRequest()\n{\n    Amount = 10,\n    Currency = Currency.GBP,\n    PaymentType = PaymentType.Regular,\n    PaymentIp = \"192.168.0.1\",\n    BillingDescriptor = new BillingDescriptor() {Name = \"Name\", City = \"City\"},\n    Reference = \"reference\",\n    Description = \"Payment for Gold Necklace\",\n    Customer = new CustomerRequest() {Email = \"email@docs.checkout.com\", Name = \"FirstName LastName\"},\n    Shipping =\n        new ShippingDetails()\n        {\n            Address = new Address()\n            {\n                AddressLine1 = \"123 High St.\",\n                AddressLine2 = \"Flat 456\",\n                City = \"London\",\n                State = \"GB\",\n                Zip = \"SW1A 1AA\",\n                Country = CountryCode.GB\n            },\n            Phone = new Phone() {Number = \"4155552671\", CountryCode = \"1\"}\n        },\n    Billing =\n        new BillingInformation()\n        {\n            Address = new Address()\n            {\n                AddressLine1 = \"123 High St.\",\n                AddressLine2 = \"Flat 456\",\n                City = \"London\",\n                State = \"GB\",\n                Zip = \"SW1A 1AA\",\n                Country = CountryCode.GB\n            },\n            Phone = new Phone() {Number = \"4155552671\", CountryCode = \"1\"}\n        },\n    Recipient =\n        new PaymentRecipient()\n        {\n            DateOfBirth = \"1985-05-15\", AccountNumber = \"5555554444\", Zip = \"SW1A\", LastName = \"LastName\",\n        },\n    Processing = new ProcessingSettings() {Aft = true},\n    Products = new List<Product>() {new Product() {Name = \"Gold Necklace\", Quantity = 1, Price = 1000}},\n    Risk = new RiskRequest() {Enabled = false},\n    SuccessUrl = \"https://example.com/payments/success\",\n    CancelUrl = \"https://example.com/payments/cancel\",\n    FailureUrl = \"https://example.com/payments/failure\",\n    Metadata = new Dictionary<string, object>(),\n    Locale = \"en-GB\",\n    ThreeDs = new ThreeDsRequest() {Enabled = false, AttemptN3D = false},\n    Capture = true,\n    CaptureOn = new DateTime()\n};\n\ntry\n{\n    HostedPaymentResponse response =\n        await api.HostedPaymentsClient().CreateHostedPaymentsPageSession(request);\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/common\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n\t\"github.com/checkout/checkout-sdk-go/payments\"\n\t\"github.com/checkout/checkout-sdk-go/payments/hosted\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\naddress := common.Address{\n\tAddressLine1: \"123 High St.\",\n\tAddressLine2: \"Flat 456\",\n\tCity:         \"London\",\n\tState:        \"GB\",\n\tZip:          \"SW1A 1AA\",\n\tCountry:      common.GB,\n}\n\nphone := common.Phone{\n\tCountryCode: \"1\",\n\tNumber:      \"415 555 2671\",\n}\n\nrequest := hosted.HostedPaymentRequest{\n\tAmount:      10,\n\tCurrency:    common.GBP,\n\tPaymentType: payments.Regular,\n\tBillingDescriptor: &payments.BillingDescriptor{\n\t\tName: \"Name\",\n\t\tCity: \"London\",\n\t},\n\tReference:   \"Reference\",\n\tDescription: \"Description\",\n\tCustomer: &common.CustomerRequest{\n\t\tEmail: \"email@docs.checkout.com\",\n\t\tName:  \"Name\",\n\t},\n\tShipping: &payments.ShippingDetails{\n\t\tAddress: &address,\n\t\tPhone:   &phone,\n\t},\n\tBilling: &payments.BillingInformation{\n\t\tAddress: &address,\n\t\tPhone:   &phone,\n\t},\n\tRecipient: &payments.PaymentRecipient{\n\t\tDateOfBirth:   \"1985-05-15\",\n\t\tAccountNumber: \"999999999\",\n\t\tZip:           \"12345\",\n\t\tLastName:      \"LastName\",\n\t},\n\tProcessing: &payments.ProcessingSettings{Aft: true},\n\tProducts: []payments.Product{\n\t\t{\n\t\t\tName:     \"name\",\n\t\t\tQuantity: 1,\n\t\t\tPrice:    200,\n\t\t},\n\t},\n\tRisk:       &payments.RiskRequest{Enabled: false},\n\tSuccessUrl: \"https://docs.checkout.com/payments/success\",\n\tCancelUrl:  \"https://docs.checkout.com/payments/cancel\",\n\tFailureUrl: \"https://docs.checkout.com/payments/failure\",\n\tLocale:     \"en-GB\",\n\tThreeDs: &payments.ThreeDsRequest{\n\t\tEnabled:            false,\n\t\tAttemptN3D:         false,\n\t\tChallengeIndicator: common.NoChallengeRequested,\n\t},\n\tCapture:   true,\n\tCaptureOn: time.Now().AddDate(0, 0, 30),\n}\n\nresponse, err := api.Hosted.CreateHostedPaymentsPageSession(request)\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\nimport com.checkout.common.Address;\nimport com.checkout.common.ChallengeIndicator;\nimport com.checkout.common.CountryCode;\nimport com.checkout.common.Currency;\nimport com.checkout.common.CustomerRequest;\nimport com.checkout.common.Phone;\nimport com.checkout.common.Product;\nimport com.checkout.payments.BillingDescriptor;\nimport com.checkout.payments.BillingInformation;\nimport com.checkout.payments.PaymentRecipient;\nimport com.checkout.payments.PaymentType;\nimport com.checkout.payments.ProcessingSettings;\nimport com.checkout.payments.RiskRequest;\nimport com.checkout.payments.ShippingDetails;\nimport com.checkout.payments.ThreeDSRequest;\nimport com.checkout.payments.hosted.HostedPaymentRequest;\nimport com.checkout.payments.hosted.HostedPaymentResponse;\n\n// API Keys\nCheckoutApi api = CheckoutSdk.builder()\n        .staticKeys()\n        .secretKey(\"secret_key\")\n        .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n        .build();\n\nHostedPaymentRequest request = HostedPaymentRequest.builder()\n    .amount(10L)\n    .reference(\"reference\")\n    .currency(Currency.GBP)\n    .description(\"Payment\")\n    .customer(new CustomerRequest(null, \"email@docs.checkout.com\", \"Name\", null))\n    .shipping(ShippingDetails.builder()\n        .address(Address.builder()\n        .addressLine1(\"123 High St.\")\n        .addressLine2(\"Flat 456\")\n        .city(\"London\")\n        .state(\"GB\")\n        .zip(\"SW1A 1AA\")\n        .country(CountryCode.GB)\n        .build())\n    .phone(Phone.builder().countryCode(\"1\").number(\"415 555 2671\").build())\n        .build())\n    .billing(BillingInformation.builder()\n        .address(Address.builder()\n        .addressLine1(\"123 High St.\")\n        .addressLine2(\"Flat 456\")\n        .city(\"London\")\n        .state(\"GB\")\n        .zip(\"SW1A 1AA\")\n        .country(CountryCode.GB)\n        .build())\n    .phone(Phone.builder().countryCode(\"1\").number(\"415 555 2671\").build())\n        .build())\n    .recipient(PaymentRecipient.builder()\n        .accountNumber(\"999999999\")\n        .dateOfBirth(\"1985-05-15\")\n        .lastName(\"LastName\")\n        .zip(\"12345\")\n        .build())\n    .processing(ProcessingSettings.builder()\n        .aft(true)\n        .build())\n    .products(Collections.singletonList(Product.builder()\n        .name(\"name\")\n        .quantity(1L)\n        .price(200L)\n        .build()))\n    .risk(new RiskRequest(Boolean.FALSE))\n    .locale(\"en-GB\")\n    .threeDS(ThreeDSRequest.builder()\n    .enabled(Boolean.FALSE)\n    .attemptN3D(Boolean.FALSE)\n    .challengeIndicator(ChallengeIndicator.NO_CHALLENGE_REQUESTED)\n        .build())\n    .capture(true)\n    .captureOn(Instant.now().plus(30, ChronoUnit.DAYS))\n    .paymentType(PaymentType.REGULAR)\n    .billingDescriptor(BillingDescriptor.builder()\n        .city(\"London\")\n        .name(\"name\")\n        .build())\n    .successUrl(\"https://docs.checkout.com/payments/success\")\n    .failureUrl(\"https://docs.checkout.com/payments/success\")\n    .cancelUrl(\"https://docs.checkout.com/payments/success\")\n    .build();\n\ntry {\n    HostedPaymentResponse response = api.hostedPaymentsClient().createHostedPaymentsPageSession(request).get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}\n"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Common\\Address;\nuse Checkout\\Common\\Country;\nuse Checkout\\Common\\Currency;\nuse Checkout\\Common\\CustomerRequest;\nuse Checkout\\Common\\PaymentSourceType;\nuse Checkout\\Common\\Phone;\nuse Checkout\\Common\\Product;\nuse Checkout\\Environment;\nuse Checkout\\Payments\\BillingDescriptor;\nuse Checkout\\Payments\\BillingInformation;\nuse Checkout\\Payments\\Hosted\\HostedPaymentsSessionRequest;\nuse Checkout\\Payments\\PaymentRecipient;\nuse Checkout\\Payments\\PaymentType;\nuse Checkout\\Payments\\ProcessingSettings;\nuse Checkout\\Payments\\RiskRequest;\nuse Checkout\\Payments\\ShippingDetails;\nuse Checkout\\Payments\\ThreeDsRequest;\n\n$api = CheckoutSdk::builder()->staticKeys()\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->secretKey(\"secret_key\")\n    ->build();\n\n$phone = new Phone();\n$phone->country_code = \"+1\";\n$phone->number = \"415 555 2671\";\n\n$address = new Address();\n$address->address_line1 = \"123 High St.\";\n$address->address_line2 = \"Flat 456\";\n$address->city = \"London\";\n$address->State = \"GB\";\n$address->zip = \"SW1A 1AA\";\n$address->country = Country::$GB;\n\n$customerRequest = new CustomerRequest();\n$customerRequest->email = \"email@docs.checkout.com\";\n$customerRequest->name = \"Name\";\n\n$billingInformation = new BillingInformation();\n$billingInformation->address = $address;\n$billingInformation->phone = $phone;\n\n$shippingDetails = new ShippingDetails();\n$shippingDetails->address = $address;\n$shippingDetails->phone = $phone;\n\n$recipient = new PaymentRecipient();\n$recipient->account_number = \"1234567\";\n$recipient->dob = \"1985-05-15\";\n$recipient->last_name = \"LastName\";\n$recipient->zip = \"12345\";\n\n$product = new Product();\n$product->name = \"Product\";\n$product->quantity = 1;\n$product->price = 10;\n\n$products = array($product);\n\n$theeDsRequest = new ThreeDsRequest();\n$theeDsRequest->enabled = false;\n$theeDsRequest->attempt_n3d = false;\n\n$processing = new ProcessingSettings();\n$processing->aft = true;\n\n$risk = new RiskRequest();\n$risk->enabled = false;\n\n$billingDescriptor = new BillingDescriptor();\n$billingDescriptor->city = \"London\";\n$billingDescriptor->name = \"Awesome name\";\n\n$request = new HostedPaymentsSessionRequest();\n$request->amount = 100;\n$request->reference = \"reference\";\n$request->currency = Currency::$GBP;\n$request->description = \"Payment for Gold Necklace\";\n$request->customer = $customerRequest;\n$request->shipping = $shippingDetails;\n$request->billing = $billingInformation;\n$request->recipient = $recipient;\n$request->processing = $processing;\n$request->products = $products;\n$request->risk = $risk;\n$request->success_url = \"https://example.com/payments/success\";\n$request->cancel_url = \"https://example.com/payments/cancel\";\n$request->failure_url = \"https://example.com/payments/failure\";\n$request->locale = \"en-GB\";\n$request->three_ds = $theeDsRequest;\n$request->capture = true;\n$request->payment_type = PaymentType::$regular;\n$request->billing_descriptor = $billingDescriptor;\n$request->allow_payment_methods = array(PaymentSourceType::$card, PaymentSourceType::$ideal);\n\ntry {\n    $response = $api->getHostedPaymentsClient()->createHostedPaymentsPageSession($request);\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}\n"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.common.common import Phone, Address, CustomerRequest, Product\nfrom checkout_sdk.common.enums import Country, Currency, PaymentSourceType\nfrom checkout_sdk.payments.hosted.hosted_payments import HostedPaymentsSessionRequest\nfrom checkout_sdk.payments.payments_previous import BillingInformation\nfrom checkout_sdk.payments.payments import ThreeDsRequest, ProcessingSettings, RiskRequest, ShippingDetails, PaymentRecipient\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\n\n# API Key\napi_key = (\n    CheckoutSdk.builder() \n    .secret_key('secret_key') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .build()\n)\n\nphone = Phone()\nphone.country_code = '44'\nphone.number = '4155552671'\n\naddress = Address()\naddress.address_line1 = '123 High St.'\naddress.address_line2 = 'Flat 456'\naddress.city = 'London'\naddress.state = 'GB'\naddress.zip = 'SW1A 1AA'\naddress.country = Country.GB\n\ncustomer_request = CustomerRequest()\ncustomer_request.email = 'email@docs.checkout.com'\ncustomer_request.name = 'Name'\n\nbilling_information = BillingInformation()\nbilling_information.address = address\nbilling_information.phone = phone\n\nshipping_details = ShippingDetails()\nshipping_details.address = address\nshipping_details.phone = phone\n\nrecipient = PaymentRecipient()\nrecipient.account_number = '123456789'\nrecipient.country = Country.ES\nrecipient.dob = '1985-05-18'\nrecipient.first_name = 'First'\nrecipient.last_name = 'Last'\nrecipient.zip = '12345'\n\nproduct = Product()\nproduct.name = 'Name'\nproduct.quantity = 1\nproduct.price = 10\n\nthree_ds_request = ThreeDsRequest()\nthree_ds_request.enabled = True\nthree_ds_request.attempt_n3d = False\n\nprocessing_settings = ProcessingSettings()\nprocessing_settings.aft = True\n\nrisk_request = RiskRequest()\nrisk_request.enabled = True\n\nrequest = HostedPaymentsSessionRequest()\nrequest.amount = 10\nrequest.reference = 'reference'\nrequest.currency = Currency.GBP\nrequest.description = 'Payment for Gold Necklace'\nrequest.customer = customer_request\nrequest.shipping = shipping_details\nrequest.billing = billing_information\nrequest.recipient = recipient\nrequest.processing = processing_settings\nrequest.products = [product]\nrequest.risk = risk_request\nrequest.success_url = 'https://docs.checkout.com/payments/success'\nrequest.failure_url = 'https://docs.checkout.com/payments/failure'\nrequest.cancel_url = 'https://docs.checkout.com/payments/cancel'\nrequest.locale = 'en-GB'\nrequest.three_ds = three_ds_request\nrequest.capture = True\nrequest.allow_payment_methods = [PaymentSourceType.CARD, PaymentSourceType.KLARNA]\n\ntry:\n    response = api.hosted_payments.create_hosted_payments_page_session(request)\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n    # Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n    # Invalid authorization"
          }
        ]
      }
    },
    "/hosted-payments/{id}": {
      "get": {
        "tags": [
          "Hosted Payments Page"
        ],
        "summary": "Get Hosted Payments Page details",
        "description": "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>\nFor more information, see the <a target=\"_blank\" href=\"https://www.checkout.com/docs/integrate/hosted-payments-page\">Hosted Payments Page documentation</a>.\n",
        "operationId": "getHostedPaymentsPageDetails",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/HostedPaymentId"
                }
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Hosted Payments Page details retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetHostedPaymentsResponse"
                },
                "examples": {
                  "Payment Pending": {
                    "value": {
                      "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"
                        }
                      }
                    }
                  },
                  "Payment Received": {
                    "value": {
                      "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"
                        }
                      }
                    }
                  },
                  "Expired": {
                    "value": {
                      "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"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Hosted Payments Page not found"
          }
        },
        "security": [
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\nusing Checkout.Payments.Hosted;\n\nICheckoutApi api = CheckoutSdk.Builder().StaticKeys()\n    .SecretKey(\"secret_key\")\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\ntry\n{\n    HostedPaymentDetailsResponse response = await api.HostedPaymentsClient().GetHostedPaymentsPageDetails(\"hosted_payment_id\");\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nresponse, err := api.Hosted.GetHostedPaymentsPageDetails(\"hosted_payment_id\")\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\nimport com.checkout.payments.hosted.HostedPaymentDetailsResponse;\n\n// API Keys\nCheckoutApi api = CheckoutSdk.builder()\n        .staticKeys()\n        .secretKey(\"secret_key\")\n        .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n        .build();\n\ntry {\n    HostedPaymentDetailsResponse response = api.hostedPaymentsClient().getHostedPaymentsPageDetails(\"hosted_payment_id\").get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Environment;\n\n$api = CheckoutSdk::builder()\n    ->previous()\n    ->staticKeys()\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->secretKey(\"secret_key\")\n    ->build();\n\ntry {\n    $response = $api->getHostedPaymentsClient()->getHostedPaymentsPageDetails(\"hosted_payment_id\");\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\n\n# API Key\napi_key = (\n    CheckoutSdk.builder() \n    .secret_key('secret_key') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .build()\n)\n\ntry:\n    response = api.hosted_payments.get_hosted_payments_page_details('hosted_payment_id')\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n    # Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n    # Invalid authorization"
          }
        ]
      }
    },
    "/id-document-verifications": {
      "post": {
        "tags": [
          "ID Document Verification"
        ],
        "summary": "Create an ID document verification",
        "description": "<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>\nCreate an [ID document verification](https://www.checkout.com/docs/business-operations/manage-identities/verify-id-documents) for an applicant.\n\nEnsure you use your ID Document Verification [configuration ID](https://www.checkout.com/docs/business-operations/manage-identities/verify-id-documents#Configuration).\n",
        "operationId": "create_id_document_verification",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IddvIdDocumentVerification"
              },
              "examples": {
                "id_document_verification_creation_request_body": {
                  "$ref": "#/components/examples/iddv_id_document_verification_creation_request_body"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "ID document verification created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "required": [
                    "user_journey_id"
                  ],
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/IddvIdDocumentVerificationOutput"
                    }
                  ]
                },
                "examples": {
                  "id_document_verification_creation_response_body": {
                    "$ref": "#/components/examples/iddv_id_document_verification_creation_response_body"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IdvIdentityVerificationError"
                },
                "examples": {
                  "identity_verification_creation_request_invalid_body": {
                    "$ref": "#/components/examples/idv_identity_verification_creation_request_invalid_body"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IdvIdentityVerificationError"
                },
                "examples": {
                  "identity_verification_creation_request_invalid_body": {
                    "$ref": "#/components/examples/idv_identity_verification_creation_request_invalid_body"
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "OAuth": [
              "identity-verification"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "servers": [
        {
          "url": "https://identity-verification.checkout.com",
          "description": "Production environment"
        },
        {
          "url": "https://identity-verification.sandbox.checkout.com",
          "description": "Sandbox environment"
        }
      ]
    },
    "/id-document-verifications/{id_document_verification_id}": {
      "get": {
        "tags": [
          "ID Document Verification"
        ],
        "summary": "Get an ID document verification",
        "description": "<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>\nGet the details of an existing [ID document verification](https://www.checkout.com/docs/business-operations/manage-identities/verify-id-documents).\n",
        "operationId": "retrieve_id_document_verification",
        "parameters": [
          {
            "name": "id_document_verification_id",
            "in": "path",
            "description": "The ID document verification's unique identifier.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IddvIdDocumentVerificationId"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "ID document verification retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "required": [
                    "user_journey_id"
                  ],
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/IddvIdDocumentVerificationOutput"
                    }
                  ]
                },
                "examples": {
                  "id_document_verification_creation_response_body": {
                    "$ref": "#/components/examples/iddv_id_document_verification_creation_response_body"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "identity-verification"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "servers": [
        {
          "url": "https://identity-verification.checkout.com",
          "description": "Production environment"
        },
        {
          "url": "https://identity-verification.sandbox.checkout.com",
          "description": "Sandbox environment"
        }
      ]
    },
    "/id-document-verifications/{id_document_verification_id}/anonymize": {
      "post": {
        "tags": [
          "ID Document Verification"
        ],
        "summary": "Anonymize an ID document verification",
        "description": "<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>\nRemove the personal data from an [ID document verification](https://www.checkout.com/docs/business-operations/manage-identities/verify-id-documents).\n",
        "operationId": "anonymize_id_document_verification",
        "parameters": [
          {
            "name": "id_document_verification_id",
            "in": "path",
            "description": "The ID document verification's unique identifier.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IddvIdDocumentVerificationId"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Personal data removed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "required": [
                    "user_journey_id"
                  ],
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/IddvIdDocumentVerificationOutput"
                    }
                  ]
                },
                "examples": {
                  "id_document_verification_response_body_anonymized": {
                    "$ref": "#/components/examples/iddv_id_document_verification_response_body_anonymized"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "identity-verification"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "servers": [
        {
          "url": "https://identity-verification.checkout.com",
          "description": "Production environment"
        },
        {
          "url": "https://identity-verification.sandbox.checkout.com",
          "description": "Sandbox environment"
        }
      ]
    },
    "/id-document-verifications/{id_document_verification_id}/attempts": {
      "post": {
        "tags": [
          "ID Document Verification"
        ],
        "summary": "Create an ID document verification attempt",
        "description": "<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>\nCreate an [ID document verification](https://www.checkout.com/docs/business-operations/manage-identities/verify-id-documents) attempt.\n\nIf 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:\n\n- `created`\n- `retry_required`\n\nIf you create a new attempt while the status is any other value, you receive a `409 Conflict` response.\n\nImages must not exceed 10MB in size and must be in one of the following formats:\n\n- `JPEG`\n- `PDF`\n- `PNG`\n",
        "operationId": "create_id_document_verification_attempt",
        "parameters": [
          {
            "name": "id_document_verification_id",
            "in": "path",
            "description": "The ID document verification's unique identifier.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IddvIdDocumentVerificationId"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/IddvAttemptRequest"
              },
              "examples": {
                "Minimal body": {
                  "$ref": "#/components/examples/iddv_id_document_verification_attempt_creation_request_body_min"
                },
                "All possible data": {
                  "$ref": "#/components/examples/iddv_id_document_verification_attempt_creation_request_body_max"
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "ID document verification attempt created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/IddvAttemptResponse"
                    }
                  ]
                },
                "examples": {
                  "id_document_verification_creation_response_body": {
                    "$ref": "#/components/examples/iddv_attempt_creation_response_body"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Conflict"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "identity-verification"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "get": {
        "tags": [
          "ID Document Verification"
        ],
        "summary": "Get ID document verification attempts",
        "description": "<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>\nGet the details of all attempts for a specific [ID document verification](https://www.checkout.com/docs/business-operations/manage-identities/verify-id-documents).\n",
        "operationId": "list_attempts_id_document_verification",
        "parameters": [
          {
            "name": "id_document_verification_id",
            "in": "path",
            "description": "The ID document verification's unique identifier.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IddvIdDocumentVerificationId"
            }
          },
          {
            "name": "skip",
            "in": "query",
            "description": "The number of attempts to skip.",
            "schema": {
              "type": "integer",
              "default": 0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum number of attempts to return.",
            "schema": {
              "type": "integer",
              "default": 10
            }
          }
        ],
        "responses": {
          "200": {
            "description": "ID document verification attempts retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/IddvAttemptResponseList"
                    }
                  ]
                },
                "examples": {
                  "id_document_verification_attempt_list_response_body": {
                    "$ref": "#/components/examples/iddv_attempt_list_response_body"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "identity-verification"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "servers": [
        {
          "url": "https://identity-verification.checkout.com",
          "description": "Production environment"
        },
        {
          "url": "https://identity-verification.sandbox.checkout.com",
          "description": "Sandbox environment"
        }
      ]
    },
    "/id-document-verifications/{id_document_verification_id}/attempts/{attempt_id}": {
      "get": {
        "tags": [
          "ID Document Verification"
        ],
        "summary": "Get an ID document verification attempt",
        "description": "<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>\nGet the details of a specific attempt for an [ID document verification](https://www.checkout.com/docs/business-operations/manage-identities/verify-id-documents).\n",
        "operationId": "get_id_document_verification_attempt",
        "parameters": [
          {
            "name": "id_document_verification_id",
            "in": "path",
            "description": "The ID document verification's unique identifier.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IddvIdDocumentVerificationId"
            }
          },
          {
            "name": "attempt_id",
            "in": "path",
            "description": "The attempt's unique identifier.",
            "required": true,
            "schema": {
              "pattern": "^datp_\\w+$",
              "type": "string"
            },
            "example": "datp_tkoi5db4hryu5cei5vwoabraio"
          }
        ],
        "responses": {
          "200": {
            "description": "ID document verification attempt retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/IddvAttemptResponse"
                    }
                  ]
                },
                "examples": {
                  "id_document_verification_attempt_get_response_body": {
                    "$ref": "#/components/examples/iddv_attempt_get_response_body"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "identity-verification"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "servers": [
        {
          "url": "https://identity-verification.checkout.com",
          "description": "Production environment"
        },
        {
          "url": "https://identity-verification.sandbox.checkout.com",
          "description": "Sandbox environment"
        }
      ]
    },
    "/id-document-verifications/{id_document_verification_id}/attempts/{attempt_id}/assets": {
      "get": {
        "tags": [
          "ID Document Verification"
        ],
        "summary": "Get ID document verification attempt assets",
        "description": "<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>\nGet 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.\n\nResults are paginated. Use the `skip` and `limit` query parameters to navigate through pages.\n",
        "operationId": "get_id_document_verification_attempt_assets",
        "parameters": [
          {
            "name": "id_document_verification_id",
            "in": "path",
            "description": "The ID document verification's unique identifier.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IddvIdDocumentVerificationId"
            }
          },
          {
            "name": "attempt_id",
            "in": "path",
            "description": "The attempt's unique identifier.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IddvAttemptId"
            }
          },
          {
            "name": "skip",
            "in": "query",
            "description": "The number of assets to skip.",
            "schema": {
              "type": "integer",
              "default": 0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum number of assets to return.",
            "schema": {
              "type": "integer",
              "default": 10
            }
          }
        ],
        "responses": {
          "200": {
            "description": "ID document verification attempt assets retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IddvAttemptAssets"
                },
                "examples": {
                  "iddv_attempt_assets_response_body": {
                    "$ref": "#/components/examples/iddv_attempt_assets_response_body"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "identity-verification"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "servers": [
        {
          "url": "https://identity-verification.checkout.com",
          "description": "Production environment"
        },
        {
          "url": "https://identity-verification.sandbox.checkout.com",
          "description": "Sandbox environment"
        }
      ]
    },
    "/id-document-verifications/{id_document_verification_id}/pdf-report": {
      "get": {
        "tags": [
          "ID Document Verification"
        ],
        "summary": "Get ID document verification report",
        "description": "<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>\nGet the report for an [ID document verification](https://www.checkout.com/docs/business-operations/manage-identities/verify-id-documents) in PDF format.\n\nThe 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.\n",
        "operationId": "pdf_id_document_verification",
        "parameters": [
          {
            "name": "id_document_verification_id",
            "in": "path",
            "description": "The ID document verification's unique identifier.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IddvIdDocumentVerificationId"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "ID document verification report retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "required": [
                    "pdf_report"
                  ],
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/IdvPdf"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "pdf_report": {
                          "type": "string",
                          "description": "A pre-signed URL to the PDF report.",
                          "format": "uri"
                        }
                      }
                    }
                  ]
                },
                "examples": {
                  "identity_verification_pdf_response_body": {
                    "$ref": "#/components/examples/idv_identity_verification_pdf_response_body"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "OAuth": [
              "identity-verification"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "servers": [
        {
          "url": "https://identity-verification.checkout.com",
          "description": "Production environment"
        },
        {
          "url": "https://identity-verification.sandbox.checkout.com",
          "description": "Sandbox environment"
        }
      ]
    },
    "/applicants": {
      "post": {
        "tags": [
          "Applicants"
        ],
        "summary": "Create an applicant",
        "description": "Create a profile for an [Identities applicant](https://www.checkout.com/docs/business-operations/manage-identities/manage-applicants).",
        "operationId": "create_applicant",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IdvApplicant"
              },
              "examples": {
                "All possible data": {
                  "$ref": "#/components/examples/idv_applicant_creation_request_body"
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Applicant created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IdvApplicant"
                },
                "examples": {
                  "Always replies": {
                    "$ref": "#/components/examples/idv_applicant_response_body"
                  }
                }
              }
            },
            "links": {
              "RetrieveApplicantById": {
                "operationId": "retrieve_applicant",
                "parameters": {
                  "applicant_id": "$response.body#/id"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "examples": {
                  "Invalid phone number": {
                    "value": {
                      "error_type": "request_invalid",
                      "error_codes": [
                        "phone_number__invalid_format"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth": [
              "identity-verification"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "servers": [
        {
          "url": "https://identity-verification.checkout.com",
          "description": "Production environment"
        },
        {
          "url": "https://identity-verification.sandbox.checkout.com",
          "description": "Sandbox environment"
        }
      ]
    },
    "/applicants/{applicant_id}": {
      "get": {
        "tags": [
          "Applicants"
        ],
        "summary": "Get an applicant",
        "description": "Get the details of an [applicant profile](https://www.checkout.com/docs/business-operations/manage-identities/manage-applicants).",
        "operationId": "retrieve_applicant",
        "parameters": [
          {
            "name": "applicant_id",
            "in": "path",
            "description": "The applicant profile's unique identifier.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ApplicantId"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Applicant profile retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IdvApplicant"
                },
                "examples": {
                  "Always replies": {
                    "$ref": "#/components/examples/idv_applicant_response_body"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "OAuth": [
              "identity-verification"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "patch": {
        "tags": [
          "Applicants"
        ],
        "summary": "Update an applicant",
        "description": "Update the details of an [applicant profile](https://www.checkout.com/docs/business-operations/manage-identities/manage-applicants).",
        "operationId": "update_applicant",
        "parameters": [
          {
            "name": "applicant_id",
            "in": "path",
            "description": "The applicant profile's unique identifier.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ApplicantId"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/IdvApplicant"
                  }
                ]
              },
              "examples": {
                "All possible data": {
                  "$ref": "#/components/examples/idv_applicant_update_request_body"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Applicant profile updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IdvApplicant"
                },
                "examples": {
                  "Always replies": {
                    "$ref": "#/components/examples/idv_applicant_response_body"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "identity-verification"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "servers": [
        {
          "url": "https://identity-verification.checkout.com",
          "description": "Production environment"
        },
        {
          "url": "https://identity-verification.sandbox.checkout.com",
          "description": "Sandbox environment"
        }
      ]
    },
    "/applicants/{applicant_id}/anonymize": {
      "post": {
        "tags": [
          "Applicants"
        ],
        "summary": "Anonymize an applicant",
        "description": "Remove the personal data in an [applicant profile](https://www.checkout.com/docs/business-operations/manage-identities/manage-applicants).",
        "operationId": "anonymize_applicant",
        "parameters": [
          {
            "name": "applicant_id",
            "in": "path",
            "description": "The applicant profile's unique identifier.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ApplicantId"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Personal data removed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IdvApplicant"
                },
                "examples": {
                  "Always replies": {
                    "$ref": "#/components/examples/idv_applicant_response_body_anonymized"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "identity-verification"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "servers": [
        {
          "url": "https://identity-verification.checkout.com",
          "description": "Production environment"
        },
        {
          "url": "https://identity-verification.sandbox.checkout.com",
          "description": "Sandbox environment"
        }
      ]
    },
    "/create-and-open-idv": {
      "post": {
        "tags": [
          "Identity Verification"
        ],
        "summary": "Create an identity verification and attempt",
        "description": "<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>\nCreate an [identity verification](https://www.checkout.com/docs/business-operations/manage-identities/verify-identities) and an initial attempt.\n\nIf successful, you receive a `201 Created` response and the identity verification resource, which contains the attempt URL.\n\nEnsure you use your identity verification [configuration ID](https://www.checkout.com/docs/business-operations/manage-identities/verify-identities#Configuration).\n",
        "operationId": "create_and_start_identity_verification",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IdvIdentityVerificationHelper"
              },
              "examples": {
                "Only required data": {
                  "$ref": "#/components/examples/idv_identity_verification_creation_helper_request_body_min"
                },
                "All possible data": {
                  "$ref": "#/components/examples/idv_identity_verification_creation_helper_request_body_max"
                },
                "Use an existing applicant": {
                  "$ref": "#/components/examples/idv_identity_verification_creation_helper_request_body_min_plus_aplt"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Identity verification and attempt created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "required": [
                    "applicant_id",
                    "user_journey_id"
                  ],
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/IdvIdentityVerificationHelper"
                    }
                  ]
                },
                "examples": {
                  "identity_verification_creation_helper_response_body": {
                    "$ref": "#/components/examples/idv_identity_verification_creation_helper_response_body"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth": [
              "identity-verification"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "servers": [
        {
          "url": "https://identity-verification.checkout.com",
          "description": "Production environment"
        },
        {
          "url": "https://identity-verification.sandbox.checkout.com",
          "description": "Sandbox environment"
        }
      ]
    },
    "/identity-verifications": {
      "post": {
        "tags": [
          "Identity Verification"
        ],
        "summary": "Create an identity verification",
        "description": "<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>\nCreate an [identity verification](https://www.checkout.com/docs/business-operations/manage-identities/verify-identities) linked to an applicant.\n\nIf successful, you receive a `201 Created` response with the identity verification resource.\n\nEnsure you use your identity verification [configuration ID](https://www.checkout.com/docs/business-operations/manage-identities/verify-identities#Configuration).\n",
        "operationId": "create_identity_verification",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IdvIdentityVerification"
              },
              "examples": {
                "Only required data": {
                  "$ref": "#/components/examples/idv_identity_verification_creation_request_body_min"
                },
                "All possible data": {
                  "$ref": "#/components/examples/idv_identity_verification_creation_request_body_max"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Identity verification created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "required": [
                    "user_journey_id"
                  ],
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/IdvIdentityVerificationOutput"
                    }
                  ]
                },
                "examples": {
                  "identity_verification_creation_response_body": {
                    "$ref": "#/components/examples/idv_identity_verification_creation_response_body"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IdvIdentityVerificationError"
                },
                "examples": {
                  "identity_verification_creation_request_invalid_body": {
                    "$ref": "#/components/examples/idv_identity_verification_creation_request_invalid_body"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IdvIdentityVerificationError"
                },
                "example": {
                  "error_type": "unprocessable_entity",
                  "error_codes": [
                    "organization__no_configuration"
                  ]
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "OAuth": [
              "identity-verification"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "servers": [
        {
          "url": "https://identity-verification.checkout.com",
          "description": "Production environment"
        },
        {
          "url": "https://identity-verification.sandbox.checkout.com",
          "description": "Sandbox environment"
        }
      ]
    },
    "/identity-verifications/{identity_verification_id}": {
      "get": {
        "tags": [
          "Identity Verification"
        ],
        "summary": "Get an identity verification",
        "description": "<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>\nGet the details of an existing [identity verification](https://www.checkout.com/docs/business-operations/manage-identities/verify-identities).\n",
        "operationId": "retrieve_identity_verification",
        "parameters": [
          {
            "name": "identity_verification_id",
            "in": "path",
            "description": "The identity verification's unique identifier.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IdvIdentityVerificationId"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Identity verification retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "required": [
                    "user_journey_id"
                  ],
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/IdvIdentityVerificationOutput"
                    }
                  ]
                },
                "examples": {
                  "Approved Identity Verification Response Body": {
                    "$ref": "#/components/examples/idv_identity_verification_response_body_approved"
                  },
                  "Declined Identity Verification Response Body": {
                    "$ref": "#/components/examples/idv_identity_verification_response_body_declined"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "OAuth": [
              "identity-verification"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "servers": [
        {
          "url": "https://identity-verification.checkout.com",
          "description": "Production environment"
        },
        {
          "url": "https://identity-verification.sandbox.checkout.com",
          "description": "Sandbox environment"
        }
      ]
    },
    "/identity-verifications/{identity_verification_id}/anonymize": {
      "post": {
        "tags": [
          "Identity Verification"
        ],
        "summary": "Anonymize an identity verification",
        "description": "<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>\nRemove the personal data in an [identity verification](https://www.checkout.com/docs/business-operations/manage-identities/verify-identities).\n",
        "operationId": "anonymize_identity_verification",
        "parameters": [
          {
            "name": "identity_verification_id",
            "in": "path",
            "description": "The identity verification's unique identifier.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IdvIdentityVerificationId"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Personal data removed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "required": [
                    "user_journey_id"
                  ],
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/IdvIdentityVerificationOutput"
                    }
                  ]
                },
                "examples": {
                  "identity_verification_response_body_anonymized": {
                    "$ref": "#/components/examples/idv_identity_verification_response_body_anonymized"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IdvIdentityVerificationError"
                },
                "examples": {
                  "identity_verification_unprocessable_entity_body": {
                    "$ref": "#/components/examples/idv_identity_verification_unprocessable_entity_body"
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "OAuth": [
              "identity-verification"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "servers": [
        {
          "url": "https://identity-verification.checkout.com",
          "description": "Production environment"
        },
        {
          "url": "https://identity-verification.sandbox.checkout.com",
          "description": "Sandbox environment"
        }
      ]
    },
    "/identity-verifications/{identity_verification_id}/attempts": {
      "post": {
        "tags": [
          "Identity Verification"
        ],
        "summary": "Create an identity verification attempt",
        "description": "<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>\nCreate an [identity verification](https://www.checkout.com/docs/business-operations/manage-identities/verify-identities) attempt.\n\nIf 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:\n\n- `created`\n- `pending`\n- `capture_in_progress`\n- `retry_required`\n\nIf you create a new attempt while the status is any other value, you receive a `409 Conflict` response.\n",
        "operationId": "create_attempt",
        "parameters": [
          {
            "name": "identity_verification_id",
            "in": "path",
            "description": "The identity verification's unique identifier.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IdvIdentityVerificationId"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IdvAttemptRequest"
              },
              "examples": {
                "Minimal body": {
                  "$ref": "#/components/examples/idv_attempt_creation_request_body_min"
                },
                "All possible data": {
                  "$ref": "#/components/examples/idv_attempt_creation_request_body_max"
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Identity verification attempt created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/IdvAttemptResponse"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "_links": {
                          "allOf": [
                            {
                              "$ref": "#/components/schemas/IdvAttemptLinks"
                            }
                          ],
                          "readOnly": true
                        }
                      }
                    }
                  ]
                },
                "examples": {
                  "identity_verification_creation_response_body": {
                    "$ref": "#/components/examples/idv_attempt_creation_response_body"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Conflict"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "identity-verification"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "get": {
        "tags": [
          "Identity Verification"
        ],
        "summary": "Get identity verification attempts",
        "description": "<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>\nGet all the attempts for a specific [identity verification](https://www.checkout.com/docs/business-operations/manage-identities/verify-identities).\n",
        "operationId": "list_attempts",
        "parameters": [
          {
            "name": "identity_verification_id",
            "in": "path",
            "description": "The identity verification's unique identifier.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IdvIdentityVerificationId"
            }
          },
          {
            "name": "skip",
            "in": "query",
            "description": "The number of attempts to skip.",
            "schema": {
              "type": "integer",
              "default": 0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum number of attempts to return.",
            "schema": {
              "type": "integer",
              "default": 10
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Identity verification attempts retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/IdvAttemptResponseList"
                    }
                  ]
                },
                "examples": {
                  "identity_verification_list_response_body": {
                    "$ref": "#/components/examples/idv_attempt_list_response_body"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "identity-verification"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "servers": [
        {
          "url": "https://identity-verification.checkout.com",
          "description": "Production environment"
        },
        {
          "url": "https://identity-verification.sandbox.checkout.com",
          "description": "Sandbox environment"
        }
      ]
    },
    "/identity-verifications/{identity_verification_id}/attempts/{attempt_id}": {
      "get": {
        "tags": [
          "Identity Verification"
        ],
        "summary": "Get an identity verification attempt",
        "description": "<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>\nGet the details of a specific attempt for an [identity verification](https://www.checkout.com/docs/business-operations/manage-identities/verify-identities).\n",
        "operationId": "get_attempt",
        "parameters": [
          {
            "name": "identity_verification_id",
            "in": "path",
            "description": "The identity verification's unique identifier.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IdvIdentityVerificationId"
            }
          },
          {
            "name": "attempt_id",
            "in": "path",
            "description": "The attempt's unique identifier.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IdvAttemptId"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Identity verification attempt retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/IdvAttemptResponse"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "_links": {
                          "allOf": [
                            {
                              "$ref": "#/components/schemas/IdvAttemptLinks"
                            }
                          ],
                          "readOnly": true
                        }
                      }
                    }
                  ]
                },
                "examples": {
                  "identity_verification_list_response_body": {
                    "$ref": "#/components/examples/idv_attempt_get_response_body"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "identity-verification"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "servers": [
        {
          "url": "https://identity-verification.checkout.com",
          "description": "Production environment"
        },
        {
          "url": "https://identity-verification.sandbox.checkout.com",
          "description": "Sandbox environment"
        }
      ]
    },
    "/identity-verifications/{identity_verification_id}/attempts/{attempt_id}/assets": {
      "get": {
        "tags": [
          "Identity Verification"
        ],
        "summary": "Get identity verification attempt assets",
        "description": "<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>\nGet 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.\n\nVideos are not exposed by default. Contact your account manager to enable this feature.\n\nResults are paginated. Use the `skip` and `limit` query parameters to navigate through pages.\n",
        "operationId": "get_identity_verification_attempt_assets",
        "parameters": [
          {
            "name": "identity_verification_id",
            "in": "path",
            "description": "The identity verification's unique identifier.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IdvIdentityVerificationId"
            }
          },
          {
            "name": "attempt_id",
            "in": "path",
            "description": "The attempt's unique identifier.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IdvAttemptId"
            }
          },
          {
            "name": "skip",
            "in": "query",
            "description": "The number of assets to skip.",
            "schema": {
              "type": "integer",
              "default": 0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum number of assets to return.",
            "schema": {
              "type": "integer",
              "default": 10
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Identity verification attempt assets retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IdvAttemptAssets"
                },
                "examples": {
                  "idv_attempt_assets_response_body": {
                    "$ref": "#/components/examples/idv_attempt_assets_response_body"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "identity-verification"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "servers": [
        {
          "url": "https://identity-verification.checkout.com",
          "description": "Production environment"
        },
        {
          "url": "https://identity-verification.sandbox.checkout.com",
          "description": "Sandbox environment"
        }
      ]
    },
    "/identity-verifications/{identity_verification_id}/pdf-report": {
      "get": {
        "tags": [
          "Identity Verification"
        ],
        "summary": "Get identity verification report",
        "description": "<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>\nGet the report with the full details of an [identity verification](https://www.checkout.com/docs/business-operations/manage-identities/verify-identities) in PDF format.\n\nThe 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.\n",
        "operationId": "pdf_identity_verification",
        "parameters": [
          {
            "name": "identity_verification_id",
            "in": "path",
            "description": "The identity verification's unique identifier.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IdvIdentityVerificationId"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Identity verification report retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "required": [
                    "pdf_report"
                  ],
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/IdvPdf"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "pdf_report": {
                          "type": "string",
                          "description": "A pre-signed URL to the PDF report.",
                          "format": "uri"
                        }
                      }
                    }
                  ]
                },
                "examples": {
                  "identity_verification_pdf_response_body": {
                    "$ref": "#/components/examples/idv_identity_verification_pdf_response_body"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "OAuth": [
              "identity-verification"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "servers": [
        {
          "url": "https://identity-verification.checkout.com",
          "description": "Production environment"
        },
        {
          "url": "https://identity-verification.sandbox.checkout.com",
          "description": "Sandbox environment"
        }
      ]
    },
    "/instruments": {
      "post": {
        "tags": [
          "Instruments"
        ],
        "summary": "Create an instrument",
        "description": "Create a payment instrument like card, bank, ach or sepa to use for future payments and payouts. \n\nThe 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>.\n",
        "operationId": "createAnInstrument",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StoreInstrumentRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Existing instrument for customer and card details found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreInstrumentResponse"
                },
                "examples": {
                  "bank_account": {
                    "value": {
                      "type": "bank_account",
                      "id": "src_wmlfc3zyhqzehihu7giusaaawu",
                      "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q",
                      "account_number": 13654567455,
                      "bank_code": "123-456"
                    }
                  },
                  "card": {
                    "value": {
                      "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"
                    }
                  },
                  "sepa": {
                    "value": {
                      "type": "sepa",
                      "id": "src_wmlfc3zyhqzehihu7giusaaawu",
                      "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q"
                    }
                  },
                  "ach": {
                    "value": {
                      "type": "ach",
                      "id": "src_wmlfc3zyhqzehihu7giusaaawu",
                      "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q"
                    }
                  },
                  "bacs": {
                    "value": {
                      "type": "bacs",
                      "id": "src_wmlfc3zyhqzehihu7giusaaawu",
                      "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q"
                    }
                  }
                }
              }
            }
          },
          "201": {
            "description": "Instrument created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreInstrumentResponse"
                },
                "examples": {
                  "bank_account": {
                    "value": {
                      "type": "bank_account",
                      "id": "src_wmlfc3zyhqzehihu7giusaaawu",
                      "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q",
                      "account_number": 13654567455,
                      "bank_code": "123-456"
                    }
                  },
                  "card": {
                    "value": {
                      "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"
                    }
                  },
                  "sepa": {
                    "value": {
                      "type": "sepa",
                      "id": "src_wmlfc3zyhqzehihu7giusaaawu",
                      "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q"
                    }
                  },
                  "ach": {
                    "value": {
                      "type": "ach",
                      "id": "src_wmlfc3zyhqzehihu7giusaaawu",
                      "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q"
                    }
                  },
                  "bacs": {
                    "value": {
                      "type": "bacs",
                      "id": "src_wmlfc3zyhqzehihu7giusaaawu",
                      "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "409": {
            "description": "A concurrent update conflict occurred. Retry the request.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ValidationError"
                    }
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "vault",
              "vault:instruments"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\nusing Checkout.Common;\nusing Checkout.Instruments.Create;\n\n//API keys\nICheckoutApi api = CheckoutSdk.Builder().StaticKeys()\n    .SecretKey(\"secret_key\")\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\n//OAuth\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.Vault)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\nCreateTokenInstrumentRequest request = new CreateTokenInstrumentRequest\n{\n    Token = \"tok_asoto22g2fsu7prwomy12sgfsa\",\n    AccountHolder = new AccountHolder()\n    {\n        FirstName = \"FirstName\",\n        LastName = \"LastName\",\n        BillingAddress = new Address()\n        {\n            AddressLine1 = \"123 High St.\",\n            AddressLine2 = \"Flat 456\",\n            City = \"London\",\n            State = \"GB\",\n            Zip = \"SW1A 1AA\",\n            Country = CountryCode.GB\n        },\n        Phone = new Phone() {Number = \"4155552671\", CountryCode = \"1\"}\n    },\n    Customer = new CreateCustomerInstrumentRequest()\n    {\n        Email = \"email@docs.checkout.com\",\n        Name = \"FirstName LastName\",\n        Phone = new Phone() {CountryCode = \"1\", Number = \"4155552671\"},\n        Default = true\n    }\n};\n\ntry\n{\n    CreateInstrumentResponse response = await api.InstrumentsClient().Create(request);\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/common\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n\t\"github.com/checkout/checkout-sdk-go/instruments/nas\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Gateway}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nrequest := nas.NewCreateTokenInstrumentRequest()\nrequest.Token = \"token\"\nrequest.AccountHolder = &common.AccountHolder{\n\tFirstName: \"FirstName\",\n\tLastName:  \"LastName\",\n\tBillingAddress: &common.Address{\n\t\tAddressLine1: \"123 High St.\",\n\t\tAddressLine2: \"Flat 456\",\n\t\tCity:         \"London\",\n\t\tState:        \"GB\",\n\t\tZip:          \"SW1A 1AA\",\n\t\tCountry:      common.GB,\n\t},\n\tPhone: &common.Phone{\n\t\tCountryCode: \"1\",\n\t\tNumber:      \"415 555 2671\",\n\t},\n}\nrequest.Customer = &nas.CreateCustomerInstrumentRequest{Id: \"customer_id\"}\n\nresponse, err := api.Instruments.Create(request)\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\nimport com.checkout.common.AccountHolder;\nimport com.checkout.common.Address;\nimport com.checkout.common.CountryCode;\nimport com.checkout.common.Phone;\nimport com.checkout.instruments.create.CreateCustomerInstrumentRequest;\nimport com.checkout.instruments.create.CreateInstrumentResponse;\nimport com.checkout.instruments.create.CreateInstrumentTokenRequest;\n\n// API Keys\nCheckoutApi api = CheckoutSdk.builder()\n    .staticKeys()\n    .secretKey(\"secret_key\")\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\n// OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.GATEWAY) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\nCreateInstrumentTokenRequest request = CreateInstrumentTokenRequest.builder()\n    .token(\"token\")\n    .accountHolder(AccountHolder.builder()\n        .firstName(\"FirstName\")\n        .lastName(\"LastName\")\n        .phone(Phone.builder().countryCode(\"1\").number(\"415 555 2671\").build())\n        .billingAddress(Address.builder()\n            .addressLine1(\"123 High St.\")\n            .addressLine2(\"Flat 456\")\n            .city(\"London\")\n            .state(\"GB\")\n            .zip(\"SW1A 1AA\")\n            .country(CountryCode.GB)\n            .build())\n        .build())\n    .customer(CreateCustomerInstrumentRequest.builder()\n        .id(\"customer_id\")\n        .build())\n    .build();\n\ntry {\n    CreateInstrumentResponse response = api.instrumentsClient().create(request).get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "Node",
            "source": "import { Checkout } from 'checkout-sdk-node';\n\nlet cko = new Checkout('your_client_secret_here', {\n\tclient: 'ack_XXXXXXXXXXXX',\n\tscope: ['gateway'], // array of scopes\n\tenvironment: 'sandbox', // or \"production\"\n        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\"\n});\n\n// Or if you use api keys:\n// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});\n\ntry {\n\tconst instrument = await cko.instruments.create({\n\t\t// infered type \"token\",\n\t\ttoken: 'tok_bzi43qc6jeee5mmnfo4gnsnera', // Generated by Checkout.Frames\n\t});\n} catch (err) {\n\tconsole.log(err.name);\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Common\\AccountHolder;\nuse Checkout\\Common\\Address;\nuse Checkout\\Common\\Country;\nuse Checkout\\Common\\Phone;\nuse Checkout\\Environment;\nuse Checkout\\Instruments\\Create\\CreateCustomerInstrumentRequest;\nuse Checkout\\Instruments\\Create\\CreateTokenInstrumentRequest;\nuse Checkout\\OAuthScope;\n\n//API Keys\n$api = CheckoutSdk::builder()->staticKeys()\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->secretKey(\"secret_key\")\n    ->build();\n\n//OAuth\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Vault])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\n$phone = new Phone();\n$phone->country_code = \"+1\";\n$phone->number = \"415 555 2671\";\n\n$address = new Address();\n$address->address_line1 = \"123 High St.\";\n$address->address_line2 = \"Flat 456\";\n$address->city = \"London\";\n$address->State = \"GB\";\n$address->zip = \"SW1A 1AA\";\n$address->country = Country::$GB;\n\n$accountHolder = new AccountHolder();\n$accountHolder->first_name = \"John\";\n$accountHolder->last_name = \"Smith\";\n$accountHolder->phone = $phone;\n$accountHolder->billing_address = $address;\n\n$createCustomerInstrumentRequest = new CreateCustomerInstrumentRequest();\n$createCustomerInstrumentRequest->id = \"customer_id\";\n\n$request = new CreateTokenInstrumentRequest();\n$request->token = \"token\";\n$request->account_holder = $accountHolder;\n$request->customer = $createCustomerInstrumentRequest;\n\ntry {\n    $response = $api->getInstrumentsClient()->create($request);\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.common.common import Phone, AccountHolder\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.instruments.instruments import CreateTokenInstrumentRequest, CreateCustomerInstrumentRequest\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\n\n# API Key\napi_key = (\n    CheckoutSdk.builder() \n    .secret_key('secret_key') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .build()\n)\n\n# OAuth\noauth = (\n    CheckoutSdk.builder() \n    .oauth() \n    .client_credentials('client_id', 'client_secret') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.VAULT_INSTRUMENTS]) \n    .build()\n)\n\nphone = Phone()\nphone.country_code = '44'\nphone.number = '4155552671'\n\ncustomer = CreateCustomerInstrumentRequest()\ncustomer.email = 'email@docs.checkout.com'\ncustomer.name = 'Name'\ncustomer.default = True\ncustomer.phone = phone\n\naccount_holder = AccountHolder()\naccount_holder.first_name = 'First'\naccount_holder.last_name = 'Last'\naccount_holder.phone = phone\n\nrequest = CreateTokenInstrumentRequest()\nrequest.token = 'token'\nrequest.account_holder = account_holder\nrequest.customer = customer\n\ntry:\n    response = api.instruments.create(request)\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n# Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n# Invalid authorization"
          }
        ]
      }
    },
    "/instruments/{id}": {
      "get": {
        "tags": [
          "Instruments"
        ],
        "summary": "Get instrument details",
        "description": "Retrieve the details of a payment instrument.",
        "operationId": "getInstrumentDetails",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The instrument ID",
            "required": true,
            "schema": {
              "pattern": "^(src)_(\\w{26})$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Instrument retrieved successfully",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RetrieveInstrumentResponse"
                },
                "examples": {
                  "bank_account": {
                    "value": {
                      "type": "bank_account",
                      "id": "src_wmlfc3zyhqzehihu7giusaaawu",
                      "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q",
                      "account_type": "savings",
                      "account_number": 13654567455,
                      "bank_code": "123-456",
                      "currency": "GBP",
                      "country": "GB"
                    }
                  },
                  "card": {
                    "value": {
                      "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
                    }
                  },
                  "sepa": {
                    "value": {
                      "type": "sepa",
                      "id": "src_wmlfc3zyhqzehihu7giusaaawu",
                      "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q",
                      "created_on": "2021-01-01T00:00:00.0000000+00:00",
                      "modified_on": "2021-01-01T00:00:00.0000000+00:00",
                      "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-01T00:00:00.0000000+00:00"
                      },
                      "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"
                        }
                      }
                    }
                  },
                  "ach": {
                    "value": {
                      "type": "ach",
                      "id": "src_wmlfc3zyhqzehihu7giusaaawu",
                      "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q",
                      "created_on": "2021-01-01T00:00:00.0000000+00:00",
                      "modified_on": "2021-01-01T00:00:00.0000000+00:00",
                      "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"
                      }
                    }
                  },
                  "bacs": {
                    "value": {
                      "type": "bacs",
                      "id": "src_wmlfc3zyhqzehihu7giusaaawu",
                      "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q",
                      "created_on": "2021-01-01T00:00:00.0000000+00:00",
                      "vault_id": "vid_wmlfc3zyhqzehihu7giusaaawu",
                      "instrument_data": {
                        "account_number": 86753246,
                        "bank_code": 40004,
                        "country": "GB",
                        "currency": "GBP",
                        "payment_type": "Recurring"
                      },
                      "account_holder": {
                        "first_name": "Hannah",
                        "last_name": "Bret",
                        "billing_address": {
                          "country": "GB"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Instrument not found"
          }
        },
        "security": [
          {
            "OAuth": [
              "vault",
              "vault:instruments"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\nusing Checkout.Instruments.Get;\n\n//API keys\nICheckoutApi api = CheckoutSdk.Builder().StaticKeys()\n    .SecretKey(\"secret_key\")\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\n//OAuth\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.Vault)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\ntry\n{\n    GetInstrumentResponse response = await api.InstrumentsClient().Get(\"instrument_id\");\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Gateway}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nresponse, err := api.Instruments.Get(\"instrument_id\")\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\nimport com.checkout.instruments.get.GetCardInstrumentResponse;\n\n// API Keys\nCheckoutApi api = CheckoutSdk.builder()\n    .staticKeys()\n    .secretKey(\"secret_key\")\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\n// OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.GATEWAY) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\ntry {\n    // Or GetBankAccountInstrumentResponse\n    GetCardInstrumentResponse response = (GetCardInstrumentResponse) api.instrumentsClient().get(\"instrument_id\").get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}\n"
          },
          {
            "lang": "Node",
            "source": "import { Checkout } from 'checkout-sdk-node';\n\nlet cko = new Checkout('your_client_secret_here', {\n\tclient: 'ack_XXXXXXXXXXXX',\n\tscope: ['gateway'], // array of scopes\n\tenvironment: 'sandbox', // or \"production\"\n        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\"\n});\n\n// Or if you use api keys:\n// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});\n\ntry {\n\tconst instrument = await cko.instruments.get('src_udfsqsgpjykutgs26fiejgizau');\n} catch (err) {\n\tconsole.log(err.name);\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Environment;\nuse Checkout\\OAuthScope;\n\n//API Keys\n$api = CheckoutSdk::builder()->staticKeys()\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->secretKey(\"secret_key\")\n    ->build();\n\n//OAuth\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Vault])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\ntry {\n    $response = $api->getInstrumentsClient()->get(\"instrument_id\");\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\n\n# API Key\napi_key = (\n    CheckoutSdk.builder() \n    .secret_key('secret_key') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .build()\n)\n\n# OAuth\noauth = (\n    CheckoutSdk.builder() \n    .oauth() \n    .client_credentials('client_id', 'client_secret') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.VAULT_INSTRUMENTS]) \n    .build()\n)\n\ntry:\n    response = api.instruments.get('instrument_id')\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n    # Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n    # Invalid authorization\n"
          }
        ]
      },
      "patch": {
        "tags": [
          "Instruments"
        ],
        "summary": "Update an instrument",
        "description": "Update the details of a payment instrument.\n",
        "operationId": "updateInstrument",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The instrument ID",
            "required": true,
            "schema": {
              "pattern": "^(src_)[a-z0-9]{26}$",
              "type": "string"
            },
            "example": "src_ubfj2q76miwundwlk72vxt2i7q"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateInstrumentRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Instrument updated successfully",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateInstrumentResponse"
                },
                "examples": {
                  "card": {
                    "value": {
                      "type": "card",
                      "fingerprint": "smoua2sbuqhupeofwbe77n5nsm"
                    }
                  },
                  "bank_account": {
                    "value": {
                      "type": "bank_account",
                      "fingerprint": "smoua2sbuqhupeofwbe77n5nsm"
                    }
                  },
                  "sepa": {
                    "value": {
                      "type": "sepa",
                      "id": "src_wmlfc3zyhqzehihu7giusaaawu",
                      "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q"
                    }
                  },
                  "ach": {
                    "value": {
                      "type": "ach",
                      "id": "src_wmlfc3zyhqzehihu7giusaaawu",
                      "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q"
                    }
                  },
                  "bacs": {
                    "value": {
                      "type": "bacs",
                      "id": "src_wmlfc3zyhqzehihu7giusaaawu",
                      "fingerprint": "vnsdrvikkvre3dtrjjvlm5du4q"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Instrument not found or not associated with client"
          },
          "409": {
            "description": "A concurrent update conflict occurred. Call the [Get customer details](/tag/Customers#operation/getCustomerDetails) to retrieve the latest state before retrying.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ValidationError"
                    }
                  ]
                }
              }
            }
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "vault",
              "vault:instruments"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\nusing Checkout.Common;\nusing Checkout.Instruments.Update;\n\n//API keys\nICheckoutApi api = CheckoutSdk.Builder().StaticKeys()\n    .SecretKey(\"secret_key\")\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\n//OAuth\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.Vault)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\nUpdateInstrumentRequest request = new UpdateCardInstrumentRequest\n{\n    ExpiryMonth = 10,\n    ExpiryYear = 2027,\n    Name = \"FirstName LastName\",\n    AccountHolder = new AccountHolder()\n    {\n        FirstName = \"FirstName\",\n        LastName = \"LastName\",\n        BillingAddress = new Address()\n        {\n            AddressLine1 = \"123 High St.\",\n            AddressLine2 = \"Flat 456\",\n            City = \"London\",\n            State = \"GB\",\n            Zip = \"SW1A 1AA\",\n            Country = CountryCode.GB\n        },\n        Phone = new Phone() {Number = \"4155552671\", CountryCode = \"1\"}\n    },\n    Customer = new UpdateCustomerRequest() {Id = \"cus_y3oqhf46pyzuxjbcn2giaqnb44\", Default = true}\n};\n\ntry\n{\n    UpdateInstrumentResponse response = await api.InstrumentsClient().Update(\"instrument_id\", request);\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/common\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n\t\"github.com/checkout/checkout-sdk-go/instruments/nas\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Gateway}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nrequest := nas.NewUpdateCardInstrumentRequest()\nrequest.ExpiryMonth = 10\nrequest.ExpiryYear = 2027\nrequest.Name = \"name\"\nrequest.Customer = &common.UpdateCustomerRequest{\n\tId:      \"customer_id\",\n\tDefault: true,\n}\nrequest.AccountHolder = &common.AccountHolder{\n\tFirstName: \"FirstName\",\n\tLastName:  \"LastName\",\n\tBillingAddress: &common.Address{\n\t\tAddressLine1: \"123 High St.\",\n\t\tAddressLine2: \"Flat 456\",\n\t\tCity:         \"London\",\n\t\tState:        \"GB\",\n\t\tZip:          \"SW1A 1AA\",\n\t\tCountry:      common.GB,\n\t},\n\tPhone: &common.Phone{\n\t\tCountryCode: \"1\",\n\t\tNumber:      \"415 555 2671\",\n\t},\n}\n\nresponse, err := api.Instruments.Update(\"instrument_id\", request)\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\nimport com.checkout.common.AccountHolder;\nimport com.checkout.common.Address;\nimport com.checkout.common.CountryCode;\nimport com.checkout.common.Phone;\nimport com.checkout.common.UpdateCustomerRequest;\nimport com.checkout.instruments.update.UpdateInstrumentCardRequest;\nimport com.checkout.instruments.update.UpdateInstrumentResponse;\n\n// API Keys\nCheckoutApi api = CheckoutSdk.builder()\n    .staticKeys()\n    .secretKey(\"secret_key\")\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\n// OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.GATEWAY) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\nUpdateInstrumentCardRequest updateRequest = UpdateInstrumentCardRequest.builder()\n    .expiryMonth(10)\n    .expiryYear(2027)\n    .name(\"name\")\n    .customer(UpdateCustomerRequest.builder().id(\"customer_id\").defaultCustomer(true).build())\n    .accountHolder(AccountHolder.builder()\n        .firstName(\"FirstName\")\n        .lastName(\"LastName\")\n        .phone(Phone.builder().countryCode(\"+1\").number(\"415 555 2671\").build())\n        .billingAddress(Address.builder()\n            .addressLine1(\"123 High St.\")\n            .addressLine2(\"Flat 456\")\n            .city(\"London\")\n            .state(\"GB\")\n            .zip(\"SW1A 1AA\")\n            .country(CountryCode.GB)\n            .build())\n        .build())\n    .build();\n\ntry {\n    UpdateInstrumentResponse response = api.instrumentsClient().update(\"instrument_id\", updateRequest).get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "Node",
            "source": "import { Checkout } from 'checkout-sdk-node';\n\nlet cko = new Checkout('your_client_secret_here', {\n\tclient: 'ack_XXXXXXXXXXXX',\n\tscope: ['gateway'], // array of scopes\n\tenvironment: 'sandbox', // or \"production\"\n        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\"\n});\n\n// Or if you use api keys:\n// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});\n\ntry {\n\tconst instrumentResponse = await cko.instruments.update('src_udfsqsgpjykutgs26fiejgizau', {\n\t\texpiry_year: 2030,\n\t});\n} catch (err) {\n\tconsole.log(err.name);\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Environment;\nuse Checkout\\Instruments\\Update\\UpdateTokenInstrumentRequest;\nuse Checkout\\OAuthScope;\n\n//API Keys\n$api = CheckoutSdk::builder()->staticKeys()\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->secretKey(\"secret_key\")\n    ->build();\n\n//OAuth\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Vault])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\n$request = new UpdateTokenInstrumentRequest();\n$request->token = \"new_token\";\n\ntry {\n    $response = $api->getInstrumentsClient()->update(\"instrument_id\", $request);\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.common.common import Phone, Address, AccountHolder, UpdateCustomerRequest\nfrom checkout_sdk.common.enums import Country\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.instruments.instruments import UpdateCardInstrumentRequest\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\n\n# API Key\napi_key = (\n    CheckoutSdk.builder() \n    .secret_key('secret_key') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .build()\n)\n\n# OAuth\noauth = (\n    CheckoutSdk.builder() \n    .oauth() \n    .client_credentials('client_id', 'client_secret') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.VAULT_INSTRUMENTS]) \n    .build()\n)\n\nphone = Phone()\nphone.country_code = '44'\nphone.number = '4155552671'\n\naddress = Address()\naddress.address_line1 = '123 High St.'\naddress.address_line2 = 'Flat 456'\naddress.city = 'London'\naddress.state = 'GB'\naddress.zip = 'SW1A 1AA'\naddress.country = Country.GB\n\naccount_holder = AccountHolder()\naccount_holder.first_name = \"First\"\naccount_holder.last_name = \"Last\"\naccount_holder.phone = phone\naccount_holder.billing_address = address\n\nupdate_customer_request = UpdateCustomerRequest()\nupdate_customer_request.id = \"customer_id\"\nupdate_customer_request.default = True\n\nrequest = UpdateCardInstrumentRequest()\nrequest.name = 'New Name'\nrequest.expiry_year = 2027\nrequest.expiry_month = 10\nrequest.account_holder = account_holder\nrequest.customer = update_customer_request\n\ntry:\n    response = api.instruments.update('instrument_id', request)\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n    # Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n    # Invalid authorization"
          }
        ]
      },
      "delete": {
        "tags": [
          "Instruments"
        ],
        "summary": "Delete an instrument",
        "description": "Delete a payment instrument.\n",
        "operationId": "deleteInstrument",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the payment instrument to be deleted",
            "required": true,
            "schema": {
              "pattern": "^(src_)[a-z0-9]{26}$",
              "type": "string"
            },
            "example": "src_ubfj2q76miwundwlk72vxt2i7q"
          }
        ],
        "responses": {
          "204": {
            "description": "Instrument deleted successfully"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Instrument not found or not associated with client"
          },
          "409": {
            "description": "A concurrent update conflict occurred. Retry the request.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ValidationError"
                    }
                  ]
                }
              }
            }
          },
          "500": {
            "description": "Internal Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "vault",
              "vault:instruments"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\n\n//API keys\nICheckoutApi api = CheckoutSdk.Builder().StaticKeys()\n    .SecretKey(\"secret_key\")\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\n//OAuth\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.Vault)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\ntry\n{\n    EmptyResponse response = await api.InstrumentsClient().Delete(\"instrument_id\");\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Gateway}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nresponse, err := api.Instruments.Delete(\"instrument_id\")\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.EmptyResponse;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\n\n// API Keys\nCheckoutApi api = CheckoutSdk.builder()\n    .staticKeys()\n    .secretKey(\"secret_key\")\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\n// OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.GATEWAY) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\ntry {\n    EmptyResponse response = api.instrumentsClient().delete(\"instrumentId\").get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "Node",
            "source": "import { Checkout } from 'checkout-sdk-node';\n\nlet cko = new Checkout('your_client_secret_here', {\n\tclient: 'ack_XXXXXXXXXXXX',\n\tscope: ['gateway'], // array of scopes\n\tenvironment: 'sandbox', // or \"production\"\n        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\"\n});\n\n// Or if you use api keys:\n// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});\n\ntry {\n\tconst deleteOutcome = await cko.instruments.delete(instrument.id);\n} catch (err) {\n\tconsole.log(err.name);\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Environment;\nuse Checkout\\OAuthScope;\n\n//API Keys\n$api = CheckoutSdk::builder()->staticKeys()\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->secretKey(\"secret_key\")\n    ->build();\n\n//OAuth\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Vault])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\ntry {\n    $response = $api->getInstrumentsClient()->delete(\"instrument_id\");\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\n\n# API Key\napi_key = (\n    CheckoutSdk.builder() \n    .secret_key('secret_key') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .build()\n)\n\n# OAuth\noauth = (\n    CheckoutSdk.builder() \n    .oauth() \n    .client_credentials('client_id', 'client_secret') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.VAULT_INSTRUMENTS]) \n    .build()\n)\n\ntry:\n    response = api.instruments.delete('instrument_id')\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n    # Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n    # Invalid authorization"
          }
        ]
      }
    },
    "/inventory/{variant_id}": {
      "get": {
        "tags": [
          "Inventory"
        ],
        "summary": "Get stock levels",
        "description": "Returns the current stock levels and sellable availability for a single variant.\n\n`available` is clamped to zero: `max(0, on_hand − reserved − safety_stock)` — this is the value\nan availability feed should publish.\n\nRequires the `agentic:inventory` scope. The merchant is resolved from the token claims; a variant\nowned by another merchant returns `404`.\n",
        "operationId": "getInventoryLevels",
        "parameters": [
          {
            "name": "variant_id",
            "in": "path",
            "description": "The merchant-provided identifier for the variant.",
            "required": true,
            "schema": {
              "maxLength": 128,
              "type": "string"
            },
            "example": "var_123"
          },
          {
            "name": "expand",
            "in": "query",
            "description": "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.\n",
            "schema": {
              "enum": [
                "product"
              ],
              "type": "string"
            },
            "example": "product"
          }
        ],
        "responses": {
          "200": {
            "description": "The current stock levels for the variant.",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryLevels"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid token."
          },
          "403": {
            "description": "The token does not carry the `agentic:inventory` scope."
          },
          "404": {
            "description": "The variant does not exist, or is owned by another merchant.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded."
          }
        },
        "security": [
          {
            "OAuth": [
              "agentic:inventory"
            ]
          }
        ]
      },
      "put": {
        "tags": [
          "Inventory"
        ],
        "summary": "Set stock levels",
        "description": "Sets the absolute stock levels for a variant (Managed mode and corrections). The call is an\nupsert: it returns `201` when the inventory item is created and `200` when an existing item is\nupdated. Availability is recomputed and a `set` entry is written to the ledger. Active\nreservations are never disturbed.\n\nRequires the `agentic:inventory` scope.\n",
        "operationId": "setInventoryLevels",
        "parameters": [
          {
            "name": "variant_id",
            "in": "path",
            "description": "The merchant-provided identifier for the variant.",
            "required": true,
            "schema": {
              "maxLength": 128,
              "type": "string"
            },
            "example": "var_123"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InventorySetLevelsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The variant already existed and its levels were updated.",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryLevels"
                }
              }
            }
          },
          "201": {
            "description": "The inventory item was created.",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryLevels"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid token."
          },
          "403": {
            "description": "The token does not carry the `agentic:inventory` scope."
          },
          "422": {
            "description": "Request validation failed.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded."
          }
        },
        "security": [
          {
            "OAuth": [
              "agentic:inventory"
            ]
          }
        ]
      }
    },
    "/inventory/{variant_id}/product": {
      "get": {
        "tags": [
          "Inventory"
        ],
        "summary": "Get product knowledge",
        "description": "<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>\nReturns the product knowledge for a single variant.\n\nRequires the `agentic:inventory` scope. The merchant is resolved from the token claims; a variant\nowned by another merchant, or one with no product knowledge set, returns `404`.\n",
        "operationId": "getInventoryProduct",
        "parameters": [
          {
            "name": "variant_id",
            "in": "path",
            "description": "The merchant-provided identifier for the variant.",
            "required": true,
            "schema": {
              "maxLength": 128,
              "type": "string"
            },
            "example": "var_123"
          }
        ],
        "responses": {
          "200": {
            "description": "The product knowledge for the variant.",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryProductKnowledge"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid token."
          },
          "403": {
            "description": "The token does not carry the `agentic:inventory` scope."
          },
          "404": {
            "description": "No product knowledge exists for the variant, or the variant is owned by another\nmerchant.\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded."
          }
        },
        "security": [
          {
            "OAuth": [
              "agentic:inventory"
            ]
          }
        ]
      },
      "put": {
        "tags": [
          "Inventory"
        ],
        "summary": "Set product knowledge",
        "description": "<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>\nSets the product knowledge for a variant. The call is an upsert: it returns `201` when the\nproduct knowledge is created and `200` when it is updated.\n\nRequires the `agentic:inventory` scope.\n",
        "operationId": "setInventoryProduct",
        "parameters": [
          {
            "name": "variant_id",
            "in": "path",
            "description": "The merchant-provided identifier for the variant.",
            "required": true,
            "schema": {
              "maxLength": 128,
              "type": "string"
            },
            "example": "var_123"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InventorySetProductRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The variant already had product knowledge, and it was updated.",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryProductKnowledge"
                }
              }
            }
          },
          "201": {
            "description": "The product knowledge was created for the variant.",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryProductKnowledge"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid token."
          },
          "403": {
            "description": "The token does not carry the `agentic:inventory` scope."
          },
          "422": {
            "description": "Request validation failed.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded."
          }
        },
        "security": [
          {
            "OAuth": [
              "agentic:inventory"
            ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Inventory"
        ],
        "summary": "Delete product knowledge",
        "description": "<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>\nDeletes the product knowledge for a variant. Stock levels and reservations for the variant are\nunaffected.\n\nRequires the `agentic:inventory` scope.\n",
        "operationId": "deleteInventoryProduct",
        "parameters": [
          {
            "name": "variant_id",
            "in": "path",
            "description": "The merchant-provided identifier for the variant.",
            "required": true,
            "schema": {
              "maxLength": 128,
              "type": "string"
            },
            "example": "var_123"
          }
        ],
        "responses": {
          "204": {
            "description": "The product knowledge existed and was deleted.",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            }
          },
          "401": {
            "description": "Missing or invalid token."
          },
          "403": {
            "description": "The token does not carry the `agentic:inventory` scope."
          },
          "404": {
            "description": "No product knowledge exists for the variant, or the variant is owned by another\nmerchant.\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded."
          }
        },
        "security": [
          {
            "OAuth": [
              "agentic:inventory"
            ]
          }
        ]
      }
    },
    "/inventory/adjustments": {
      "post": {
        "tags": [
          "Inventory"
        ],
        "summary": "Adjust stock",
        "description": "Applies a relative delta to a variant's physical stock (`on_hand`) with a mandatory reason (for example, damaged or found stock).\nThe call fails if the delta drives the physical stock below zero. An `adjust` entry is written to the ledger.\n\nRequires the `agentic:inventory` scope.\n",
        "operationId": "adjustInventory",
        "parameters": [
          {
            "$ref": "#/components/parameters/ckoIdempotencyKey"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InventoryAdjustmentRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Idempotent replay of an earlier adjustment made with the same key.",
            "headers": {
              "Cache-Control": {
                "description": "Present on an idempotent replay to indicate the response is the cached original result.",
                "schema": {
                  "type": "string"
                }
              },
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryLevels"
                }
              }
            }
          },
          "201": {
            "description": "The adjustment was applied.",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryLevels"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid token."
          },
          "403": {
            "description": "The token does not carry the `agentic:inventory` scope."
          },
          "404": {
            "description": "The variant does not exist.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "The adjustment drives the physical stock below zero.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryErrorResponse"
                }
              }
            }
          },
          "422": {
            "description": "Request validation failed.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded."
          }
        },
        "security": [
          {
            "OAuth": [
              "agentic:inventory"
            ]
          }
        ]
      }
    },
    "/inventory/ingestions": {
      "post": {
        "tags": [
          "Inventory"
        ],
        "summary": "Submit a batch ingestion",
        "description": "Submits a batch of up to 500 items, covering stock, product knowledge, or both, for\nasynchronous 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\n`/inventory/ingestions/{id}/results`.\n\nIngestion sets the baseline stock and never overrides an active reservation, so it can never cause an oversell.\n\nInclude 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.\n\nRequires the `agentic:inventory` scope.\n",
        "operationId": "createInventoryIngestion",
        "parameters": [
          {
            "$ref": "#/components/parameters/ckoIdempotencyKey"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InventoryIngestionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "description": "The batch was accepted for processing, or the original job on an idempotent replay.",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryIngestion"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid token."
          },
          "403": {
            "description": "The token does not carry the `agentic:inventory` scope."
          },
          "409": {
            "description": "The `Cko-Idempotency-Key` was reused with a different request body (`idempotency_key_reuse`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryErrorResponse"
                }
              }
            }
          },
          "413": {
            "description": "The batch exceeds the maximum number of items (`payload_too_large`). Nothing is applied.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryErrorResponse"
                }
              }
            }
          },
          "422": {
            "description": "Request validation failed.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded, or the merchant already has the maximum number of ingestion jobs in\nflight (`too_many_concurrent_ingestions`).\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth": [
              "agentic:inventory"
            ]
          }
        ]
      }
    },
    "/inventory/ingestions/{id}": {
      "get": {
        "tags": [
          "Inventory"
        ],
        "summary": "Get an ingestion job",
        "description": "Returns an ingestion job and its current state and counts. Poll this until `state` is either:\n- `completed`\n- `completed_with_errors`, or\n- `failed`\n\nThen read the per-item report at `/inventory/ingestions/{id}/results`.\n\nRequires the `agentic:inventory` scope. A job owned by another merchant returns `404`.\n",
        "operationId": "getInventoryIngestion",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ingestion identifier.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "ing_01hzy8q2m4n6p8r0s2t4v6w8x0"
          }
        ],
        "responses": {
          "200": {
            "description": "The ingestion job.",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryIngestion"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid token."
          },
          "403": {
            "description": "The token does not carry the `agentic:inventory` scope."
          },
          "404": {
            "description": "The ingestion does not exist, or is owned by another merchant (`ingestion_not_found`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded."
          }
        },
        "security": [
          {
            "OAuth": [
              "agentic:inventory"
            ]
          }
        ]
      }
    },
    "/inventory/ingestions/{id}/results": {
      "get": {
        "tags": [
          "Inventory"
        ],
        "summary": "Get an ingestion job's results",
        "description": "Returns the per-item results report for a terminal ingestion job. By default only the rejected\nrows are listed, so you can fix and re-submit them; pass `include=all` to list every row.\nReturns `409 results_not_ready` until the job is terminal.\n\nRequires the `agentic:inventory` scope. A job owned by another merchant returns `404`.\n",
        "operationId": "getInventoryIngestionResults",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ingestion identifier.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "ing_01hzy8q2m4n6p8r0s2t4v6w8x0"
          },
          {
            "name": "include",
            "in": "query",
            "description": "Set to `all` to include accepted items as well as rejected ones. Defaults to rejected only.",
            "schema": {
              "enum": [
                "all"
              ],
              "type": "string"
            },
            "example": "all"
          }
        ],
        "responses": {
          "200": {
            "description": "The per-item results report.",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryIngestionResults"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid token."
          },
          "403": {
            "description": "The token does not carry the `agentic:inventory` scope."
          },
          "404": {
            "description": "The ingestion does not exist, or is owned by another merchant (`ingestion_not_found`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "The job has not reached a terminal state yet (`results_not_ready`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded."
          }
        },
        "security": [
          {
            "OAuth": [
              "agentic:inventory"
            ]
          }
        ]
      }
    },
    "/inventory/ingestions/{id}/start": {
      "post": {
        "tags": [
          "Inventory"
        ],
        "summary": "Start processing an uploaded file",
        "description": "Begins processing a CSV file that was uploaded to the presigned `upload_url`. Validates and\nparses the file, then queues it, moving the job out of `awaiting_upload`. Poll the job for\nstatus and read the per-item report as for a JSON batch.\n\nRequires the `agentic:inventory` scope.\n",
        "operationId": "startInventoryIngestion",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ingestion identifier.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "ing_01hzy93x5b7d9f1h3k5m7p9r1t"
          }
        ],
        "responses": {
          "202": {
            "description": "The uploaded file was accepted and queued for processing.",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryIngestion"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid token."
          },
          "403": {
            "description": "The token does not carry the `agentic:inventory` scope."
          },
          "404": {
            "description": "The ingestion does not exist, or is owned by another merchant (`ingestion_not_found`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "The job is not awaiting an upload, or the file has not been uploaded yet\n(`invalid_state`, `upload_not_found`).\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryErrorResponse"
                }
              }
            }
          },
          "413": {
            "description": "The uploaded file exceeds the size or row limit (`payload_too_large`). Nothing is applied.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryErrorResponse"
                }
              }
            }
          },
          "422": {
            "description": "The uploaded file could not be read (`invalid_file`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded."
          }
        },
        "security": [
          {
            "OAuth": [
              "agentic:inventory"
            ]
          }
        ]
      }
    },
    "/inventory/ingestions/uploads": {
      "post": {
        "tags": [
          "Inventory"
        ],
        "summary": "Create a CSV upload slot",
        "description": "Creates an upload slot for a CSV ingestion by generating a short-lived, `PUT`-only presigned\nURL.\nReturns `202 Accepted` with a job in the `awaiting_upload` state carrying an `upload_url` and a `start` link.\n\nUpload the file directly to `upload_url` (it never transits the API), then call the `start` operation to begin processing.\n\nRequires the `agentic:inventory` scope.\n",
        "operationId": "createInventoryIngestionUpload",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InventoryIngestionUploadRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "The upload slot was created. Upload the file to `upload_url`, then call `start`.",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryIngestion"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid token."
          },
          "403": {
            "description": "The token does not carry the `agentic:inventory` scope."
          },
          "422": {
            "description": "Request validation failed.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded, or the merchant already has the maximum number of ingestion jobs in\nflight (`too_many_concurrent_ingestions`).\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth": [
              "agentic:inventory"
            ]
          }
        ]
      }
    },
    "/inventory/reservations": {
      "post": {
        "tags": [
          "Inventory"
        ],
        "summary": "Create a reservation",
        "description": "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.\n\nThe 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.\n\nRequires the `agentic:inventory` scope.\n",
        "operationId": "createInventoryReservation",
        "parameters": [
          {
            "$ref": "#/components/parameters/ckoIdempotencyKey"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InventoryReservationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Idempotent replay of an earlier reservation made with the same key.",
            "headers": {
              "Cache-Control": {
                "description": "Present on an idempotent replay to indicate the response is the cached original reservation.",
                "schema": {
                  "type": "string"
                }
              },
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryReservation"
                }
              }
            }
          },
          "201": {
            "description": "The reservation was created and the stock is held.",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryReservation"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid token."
          },
          "403": {
            "description": "The token does not carry the `agentic:inventory` scope."
          },
          "404": {
            "description": "One of the requested variants does not exist.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Not enough stock to hold one of the variants or the idempotency key was reused with a different request body.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryErrorResponse"
                }
              }
            }
          },
          "422": {
            "description": "Request validation failed.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded."
          }
        },
        "security": [
          {
            "OAuth": [
              "agentic:inventory"
            ]
          }
        ]
      }
    },
    "/inventory/reservations/{id}": {
      "get": {
        "tags": [
          "Inventory"
        ],
        "summary": "Get a reservation",
        "description": "Returns a reservation in any state. A reservation with a `held` status past its `expires_at` is reported as `expired`.\nThe `_links` field returns the operations valid for the reservation's current state.\n\nRequires the `agentic:inventory` scope. A reservation owned by another merchant returns `404`.\n",
        "operationId": "getInventoryReservation",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The reservation identifier.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "rsv_tkoi5db4hryu5cei5vwoabr7we"
          }
        ],
        "responses": {
          "200": {
            "description": "The reservation.",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryReservation"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid token."
          },
          "403": {
            "description": "The token does not carry the `agentic:inventory` scope."
          },
          "404": {
            "description": "The reservation does not exist, or is owned by another merchant (`reservation_not_found`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded."
          }
        },
        "security": [
          {
            "OAuth": [
              "agentic:inventory"
            ]
          }
        ]
      }
    },
    "/inventory/reservations/{id}/commit": {
      "post": {
        "tags": [
          "Inventory"
        ],
        "summary": "Commit a reservation",
        "description": "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.\nThe reservation moves to `committed`, and `commit` entries are written to the ledger.\n\nThe 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.\n\nRequires the `agentic:inventory` scope.\n",
        "operationId": "commitInventoryReservation",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The reservation identifier.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "rsv_tkoi5db4hryu5cei5vwoabr7we"
          }
        ],
        "responses": {
          "200": {
            "description": "The reservation was committed (or is already committed).",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryReservation"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid token."
          },
          "403": {
            "description": "The token does not carry the `agentic:inventory` scope."
          },
          "404": {
            "description": "The reservation does not exist, or is owned by another merchant.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "The reservation expired or was released. You must create a new reservation.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded."
          }
        },
        "security": [
          {
            "OAuth": [
              "agentic:inventory"
            ]
          }
        ]
      }
    },
    "/inventory/reservations/{id}/release": {
      "post": {
        "tags": [
          "Inventory"
        ],
        "summary": "Release a reservation",
        "description": "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.\nThe reservation moves to `released`, and `release` entries are written to the ledger.\n\nRequires the `agentic:inventory` scope.\n",
        "operationId": "releaseInventoryReservation",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The reservation identifier.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "rsv_tkoi5db4hryu5cei5vwoabr7we"
          }
        ],
        "responses": {
          "200": {
            "description": "The reservation was released (or is already released, or had already expired — in which case\n`state` reads `expired`).\n",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryReservation"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid token."
          },
          "403": {
            "description": "The token does not carry the `agentic:inventory` scope."
          },
          "404": {
            "description": "The reservation does not exist, or is owned by another merchant.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "The reservation was already committed and cannot be released; use an adjustment to return stock for a completed sale.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded."
          }
        },
        "security": [
          {
            "OAuth": [
              "agentic:inventory"
            ]
          }
        ]
      }
    },
    "/issuing/access/connect/token": {
      "post": {
        "tags": [
          "Cardholder access tokens"
        ],
        "summary": "Request an access token",
        "description": "OAuth endpoint to exchange your access key ID and access key secret for an access token.",
        "operationId": "requestCardholderAccessToken",
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "properties": {
                  "grant_type": {
                    "enum": [
                      "client_credentials"
                    ],
                    "type": "string",
                    "example": "client_credentials"
                  },
                  "client_id": {
                    "type": "string",
                    "description": "Access key ID."
                  },
                  "client_secret": {
                    "type": "string",
                    "description": "Access key secret."
                  },
                  "cardholder_id": {
                    "$ref": "#/components/schemas/IssuingCardholderId"
                  },
                  "single_use": {
                    "type": "boolean",
                    "description": "Specifies if the request is for a single-use token.\nSingle-use tokens are required for sensitive endpoints.\n",
                    "example": true
                  }
                }
              },
              "examples": {
                "example-1": {
                  "value": {
                    "grant_type": "client_credentials",
                    "client_id": "ack_clckqmmnyfiupexjew7shh5ahe",
                    "client_secret": "Pmg36sDWQ9WxtPR3",
                    "cardholder_id": "crh_d3ozhf43pcq2xbldn2g45qnb44",
                    "single_use": true
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Cardholder access token retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "access_token": {
                      "type": "string",
                      "example": "2YotnFZFEjr1zCsicMWpAA"
                    },
                    "token_type": {
                      "type": "string",
                      "example": "example"
                    },
                    "expires_in": {
                      "type": "number",
                      "description": "The remaining time the access token is valid for, in seconds.",
                      "example": 3600
                    },
                    "scope": {
                      "type": "string",
                      "example": "issuing:card-management-write issuing:card-management-read"
                    }
                  },
                  "additionalProperties": false
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "enum": [
                        "invalid_request",
                        "invalid_client",
                        "invalid_grant",
                        "unauthorized_client",
                        "unsupported_grant_type",
                        "invalid_scope"
                      ],
                      "type": "string"
                    }
                  },
                  "additionalProperties": false
                }
              }
            }
          },
          "415": {
            "description": "Unsupported Media Type"
          },
          "429": {
            "description": "Too Many Requests"
          },
          "406": {
            "description": "Not Acceptable"
          }
        },
        "security": [
          {
            "OAuth": [ ]
          }
        ]
      }
    },
    "/issuing/cardholders": {
      "post": {
        "tags": [
          "Cardholders"
        ],
        "summary": "Create a cardholder",
        "description": "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.",
        "operationId": "createCardholder",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/add-cardholder-request"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Cardholder created successfully",
            "headers": {
              "cko-request-id": {
                "schema": {
                  "$ref": "#/components/schemas/cko-request-id"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/add-cardholder-response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IssuingValidationError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "issuing:card-management-write"
            ]
          }
        ]
      }
    },
    "/issuing/cardholders/{cardholderId}": {
      "get": {
        "tags": [
          "Cardholders"
        ],
        "summary": "Get cardholder details",
        "description": "Retrieve the details for a cardholder you created previously.",
        "operationId": "getCardholder",
        "parameters": [
          {
            "name": "cardholderId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IssuingCardholderId"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Cardholder retrieved successfully",
            "headers": {
              "cko-request-id": {
                "schema": {
                  "$ref": "#/components/schemas/cko-request-id"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get-cardholder-response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Cardholder not found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "issuing:card-management-read"
            ]
          }
        ]
      },
      "patch": {
        "tags": [
          "Cardholders"
        ],
        "summary": "Update a cardholder",
        "description": "Updates the details of an existing cardholder.",
        "operationId": "updateCardholder",
        "parameters": [
          {
            "name": "cardholderId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IssuingCardholderId"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/update-cardholder-request"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Cardholder updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/update-cardholder-response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Cardholder not found"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IssuingValidationError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "issuing:card-management-write"
            ]
          }
        ]
      }
    },
    "/issuing/cardholders/{cardholderId}/cards": {
      "get": {
        "tags": [
          "Cardholders"
        ],
        "summary": "Get a cardholder's cards",
        "description": "Retrieves the cards issued to the specified cardholder.\n\nCard credentials are not returned in the response.\nThe response is limited to a maximum of 150 cards.\n",
        "operationId": "getCardholderCards",
        "parameters": [
          {
            "name": "cardholderId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IssuingCardholderId"
            }
          },
          {
            "name": "statuses",
            "in": "query",
            "description": "The card statuses to filter the results by.\nCards matching any status in this list are returned. If the list is empty, all cards are returned.\nFormat - Comma-separated list\n",
            "schema": {
              "type": "string"
            },
            "example": "active,suspended"
          }
        ],
        "responses": {
          "200": {
            "description": "Cardholder's cards retrieved successfully",
            "headers": {
              "cko-request-id": {
                "schema": {
                  "$ref": "#/components/schemas/cko-request-id"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get-cardholder-cards-response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Cardholder not found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "issuing:card-management-read"
            ]
          }
        ]
      }
    },
    "/issuing/cards": {
      "post": {
        "tags": [
          "Cards"
        ],
        "summary": "Create a card",
        "description": "Creates a physical or virtual card and issues it to the specified cardholder.",
        "operationId": "createCard",
        "parameters": [
          {
            "$ref": "#/components/parameters/IssuingCkoIdempotencyKey"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/add-card-request"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Card created successfully",
            "headers": {
              "cko-request-id": {
                "schema": {
                  "$ref": "#/components/schemas/cko-request-id"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/add-card-response"
                },
                "examples": {
                  "virtual": {
                    "value": {
                      "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:12.0000000+00:00"
                    }
                  },
                  "physical": {
                    "value": {
                      "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:12.0000000+00:00"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IssuingValidationError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "OAuth": [
              "issuing:card-management-write"
            ]
          }
        ]
      }
    },
    "/issuing/cards/{cardId}": {
      "get": {
        "tags": [
          "Cards"
        ],
        "summary": "Get card details",
        "description": "Retrieves the details for a card you issued previously.\n\nThe card's credentials are not returned in the response.\n",
        "operationId": "getCard",
        "parameters": [
          {
            "name": "cardId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IssuingCardId"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Card retrieved successfully",
            "headers": {
              "cko-request-id": {
                "schema": {
                  "$ref": "#/components/schemas/cko-request-id"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get-card-response"
                },
                "examples": {
                  "virtual": {
                    "value": {
                      "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"
                    }
                  },
                  "physical": {
                    "value": {
                      "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"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Card not found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "issuing:card-management-read"
            ]
          }
        ]
      },
      "patch": {
        "tags": [
          "Cards"
        ],
        "summary": "Update card details",
        "description": "Update the details of an issued card.\n\nOnly the fields for which you provide values will be updated. If you pass `null`, the existing value will be removed.\n",
        "operationId": "updateCard",
        "parameters": [
          {
            "name": "cardId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IssuingCardId"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/update-card-request"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Card updated successfully",
            "headers": {
              "cko-request-id": {
                "schema": {
                  "$ref": "#/components/schemas/cko-request-id"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/update-card-response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Card not found"
          },
          "422": {
            "description": "Invalid data was sent.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IssuingValidationError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "issuing:card-management-write"
            ]
          }
        ]
      }
    },
    "/issuing/cards/{cardId}/3ds-enrollment": {
      "post": {
        "tags": [
          "Cards"
        ],
        "summary": "Enroll a card in 3DS",
        "description": "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.\n\nTwo-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.\n",
        "operationId": "enrollCard",
        "parameters": [
          {
            "name": "cardId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IssuingCardId"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/security_question"
                  },
                  {
                    "$ref": "#/components/schemas/Password"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "description": "3DS card enrollment completed successfully",
            "headers": {
              "cko-request-id": {
                "schema": {
                  "$ref": "#/components/schemas/cko-request-id"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/3ds-enrollment-post-response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Card not found"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IssuingValidationError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "issuing:card-management-write"
            ]
          }
        ]
      },
      "patch": {
        "tags": [
          "Cards"
        ],
        "summary": "Update a card's 3DS details",
        "description": "Updates a card's 3DS enrollment details. At least one of the fields is required.",
        "operationId": "updateCardEnrollmentDetails",
        "parameters": [
          {
            "name": "cardId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IssuingCardId"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "title": "security_question",
                    "type": "object",
                    "properties": {
                      "security_pair": {
                        "$ref": "#/components/schemas/3dsSecurityPair"
                      },
                      "locale": {
                        "$ref": "#/components/schemas/3dsLocale"
                      },
                      "phone_number": {
                        "$ref": "#/components/schemas/3dsPhoneNumber"
                      }
                    }
                  },
                  {
                    "title": "password",
                    "type": "object",
                    "properties": {
                      "password": {
                        "$ref": "#/components/schemas/3dsPassword"
                      },
                      "locale": {
                        "$ref": "#/components/schemas/3dsLocale"
                      },
                      "phone_number": {
                        "$ref": "#/components/schemas/3dsPhoneNumber"
                      }
                    }
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "description": "Card 3DS details updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/3ds-enrollment-patch-response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Card not found"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IssuingValidationError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "issuing:card-management-write"
            ]
          }
        ]
      },
      "get": {
        "tags": [
          "Cards"
        ],
        "summary": "Get a card's 3DS enrollment details",
        "description": "Retrieves a card's 3DS enrollment details.",
        "operationId": "getCardEnrollmentDetails",
        "parameters": [
          {
            "name": "cardId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IssuingCardId"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Card 3DS enrollment details retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/3ds-enrollment-get-response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Card not found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "issuing:card-management-read"
            ]
          }
        ]
      }
    },
    "/issuing/cards/{cardId}/activate": {
      "post": {
        "tags": [
          "Cards"
        ],
        "summary": "Activate a card",
        "description": "Activates an `inactive` or `suspended` card so that incoming authorizations can be approved. \n\nActivating 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.\n",
        "operationId": "activateCard",
        "parameters": [
          {
            "name": "cardId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IssuingCardId"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Card activated successfully",
            "headers": {
              "cko-request-id": {
                "schema": {
                  "$ref": "#/components/schemas/cko-request-id"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/activate-card-response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Card not found"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IssuingValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth": [
              "issuing:card-management-write"
            ]
          }
        ]
      }
    },
    "/issuing/cards/{cardId}/credentials": {
      "get": {
        "tags": [
          "Cards"
        ],
        "summary": "Get the card credentials",
        "description": "Retrieves the credentials for a card you issued previously.",
        "operationId": "getCardCredentials",
        "parameters": [
          {
            "name": "cardId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IssuingCardId"
            }
          },
          {
            "name": "credentials",
            "in": "query",
            "schema": {
              "enum": [
                "number",
                "cvc2",
                "number,cvc2"
              ],
              "type": "string",
              "description": "The credentials to retrieve.\n\nYou can either specify `number` or `cvc2` to retrieve the specified credential, or both as a comma-separated list. For example, to retrieve both the CVC and PAN:\n\n```\n\"credentials\": \"number, cvc2\"\n```\n",
              "example": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Card credentials retrieved successfully",
            "headers": {
              "cko-request-id": {
                "schema": {
                  "$ref": "#/components/schemas/cko-request-id"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Credentials"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Card not found"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IssuingValidationError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "OAuth": [
              "issuing:card-management-read"
            ]
          }
        ]
      }
    },
    "/issuing/cards/{cardId}/renew": {
      "post": {
        "tags": [
          "Cards"
        ],
        "summary": "Renew a card",
        "description": "Renew an `active`, `inactive`, or `suspended` card. A card cannot be renewed if it is `revoked`, `expired`, or is a single use virtual card. \n\nThe renewed card will have a different, nonconsecutive number (PAN), expiry date, and CVV. \n\nAny 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.\n",
        "operationId": "renewCard",
        "parameters": [
          {
            "name": "cardId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IssuingCardId"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/physical_card"
                  },
                  {
                    "$ref": "#/components/schemas/virtual_card"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Card renewed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/renew-card-response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Card not found"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IssuingValidationError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported Media Type"
          },
          "429": {
            "description": "Too Many Requests"
          },
          "406": {
            "description": "Not Acceptable"
          }
        },
        "security": [
          {
            "OAuth": [
              "issuing:card-management-write"
            ]
          }
        ]
      }
    },
    "/issuing/cards/{cardId}/revoke": {
      "post": {
        "tags": [
          "Cards"
        ],
        "summary": "Revoke a card",
        "description": "Revokes an `inactive`, `active`, or `suspended` card to permanently decline all incoming authorizations.\n\nThis is a permanent action. Revoked cards cannot be reactivated.\n",
        "operationId": "revokeCard",
        "parameters": [
          {
            "name": "cardId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IssuingCardId"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/revoke-card-request"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Card revoked successfully",
            "headers": {
              "cko-request-id": {
                "schema": {
                  "$ref": "#/components/schemas/cko-request-id"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/revoke-card-response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Card not found"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IssuingValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth": [
              "issuing:card-management-write"
            ]
          }
        ]
      }
    },
    "/issuing/cards/{cardId}/suspend": {
      "post": {
        "tags": [
          "Cards"
        ],
        "summary": "Suspend a card",
        "description": "Suspends an `active` or `inactive` card to temporarily decline all incoming authorizations.\n\nA `suspended` card can be reactivated.\n",
        "operationId": "suspendCard",
        "parameters": [
          {
            "name": "cardId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IssuingCardId"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/suspend-card-request"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Card suspended successfully",
            "headers": {
              "cko-request-id": {
                "schema": {
                  "$ref": "#/components/schemas/cko-request-id"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/suspend-card-response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Card not found"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IssuingValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth": [
              "issuing:card-management-write"
            ]
          }
        ]
      }
    },
    "/issuing/controls": {
      "post": {
        "tags": [
          "Controls"
        ],
        "summary": "Create a control",
        "description": "Creates a control and applies it to the specified target.",
        "operationId": "createControl",
        "parameters": [
          {
            "$ref": "#/components/parameters/IssuingCkoIdempotencyKey"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/add-control-request"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Control created successfully",
            "headers": {
              "cko-request-id": {
                "schema": {
                  "$ref": "#/components/schemas/cko-request-id"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/add-control-response"
                },
                "examples": {
                  "velocity_limit": {
                    "value": {
                      "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:12.0000000+00:00",
                      "last_modified_date": "2023-03-12T18:20:12.0000000+00:00",
                      "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"
                          ]
                        }
                      }
                    }
                  },
                  "mcc_limit": {
                    "value": {
                      "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:12.0000000+00:00",
                      "last_modified_date": "2023-03-12T18:20:12.0000000+00:00",
                      "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"
                          ]
                        }
                      }
                    }
                  },
                  "mid_limit": {
                    "value": {
                      "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:12.0000000+00:00",
                      "last_modified_date": "2023-03-12T18:20:12.0000000+00:00",
                      "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"
                          ]
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Target not found"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IssuingValidationError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "OAuth": [
              "issuing:controls-write"
            ]
          }
        ]
      },
      "get": {
        "tags": [
          "Controls"
        ],
        "summary": "Get controls by target",
        "description": "Retrieves a list of spending controls applied to the specified target.",
        "operationId": "getControlByTarget",
        "parameters": [
          {
            "name": "target_id",
            "in": "query",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IssuingTargetId"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Target's controls retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get-controls-array-response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Target not found"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IssuingValidationError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "issuing:controls-read"
            ]
          }
        ]
      }
    },
    "/issuing/controls/{controlId}": {
      "get": {
        "tags": [
          "Controls"
        ],
        "summary": "Get control details",
        "description": "Retrieves the details of an existing control.",
        "operationId": "getControl",
        "parameters": [
          {
            "name": "controlId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IssuingControlId"
            }
          },
          {
            "name": "cardId",
            "in": "query",
            "description": "The unique identifier for the card you want to get the remaining cascading velocity control for.",
            "schema": {
              "$ref": "#/components/schemas/IssuingCardId"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Control retrieved successfully",
            "headers": {
              "cko-request-id": {
                "schema": {
                  "$ref": "#/components/schemas/cko-request-id"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get-control-response"
                },
                "examples": {
                  "velocity_limit": {
                    "value": {
                      "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:12.0000000+00:00",
                      "last_modified_date": "2023-03-12T18:20:12.0000000+00:00",
                      "velocity_limit": {
                        "amount_remaining": 45000,
                        "amount_limit": 50000,
                        "velocity_window": {
                          "type": "weekly"
                        },
                        "mcc_list": [
                          4121,
                          4582
                        ]
                      }
                    }
                  },
                  "mcc_limit": {
                    "value": {
                      "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:12.0000000+00:00",
                      "last_modified_date": "2023-03-12T18:20:12.0000000+00:00",
                      "mcc_limit": {
                        "type": "allow",
                        "mcc_list": [
                          5932,
                          5411
                        ]
                      }
                    }
                  },
                  "mid_limit": {
                    "value": {
                      "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:12.0000000+00:00",
                      "last_modified_date": "2023-03-12T18:20:12.0000000+00:00",
                      "mid_limit": {
                        "type": "allow",
                        "mid_list": [
                          593278,
                          541114
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Control not found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "issuing:controls-read"
            ]
          }
        ]
      },
      "put": {
        "tags": [
          "Controls"
        ],
        "summary": "Update a control",
        "description": "Updates an existing control.",
        "operationId": "updateControl",
        "parameters": [
          {
            "name": "controlId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IssuingControlId"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/update-control-request-mcc-limit"
                  },
                  {
                    "$ref": "#/components/schemas/update-control-request-mid-limit"
                  },
                  {
                    "$ref": "#/components/schemas/update-control-request-velocity-limit"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Control updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/update-control-response"
                },
                "examples": {
                  "velocity_limit": {
                    "value": {
                      "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:12.0000000+00:00",
                      "last_modified_date": "2023-03-12T18:20:12.0000000+00:00",
                      "velocity_limit": {
                        "amount_remaining": 45000,
                        "amount_limit": 50000,
                        "velocity_window": {
                          "type": "weekly"
                        },
                        "mcc_list": [
                          4121,
                          4582
                        ]
                      }
                    }
                  },
                  "mcc_limit": {
                    "value": {
                      "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:12.0000000+00:00",
                      "last_modified_date": "2023-03-12T18:20:12.0000000+00:00",
                      "mcc_limit": {
                        "type": "allow",
                        "mcc_list": [
                          5932,
                          5411
                        ]
                      }
                    }
                  },
                  "mid_limit": {
                    "value": {
                      "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:12.0000000+00:00",
                      "last_modified_date": "2023-03-12T18:20:12.0000000+00:00",
                      "mid_limit": {
                        "type": "allow",
                        "mid_list": [
                          593278,
                          541114
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IssuingValidationError"
                }
              }
            }
          },
          "404": {
            "description": "Control not found"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "OAuth": [
              "issuing:controls-write"
            ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Controls"
        ],
        "summary": "Remove a control",
        "description": "Removes an existing control from the target it was applied to.\n\nIf you want to reapply an equivalent control to the target, you must create a new control.\n",
        "operationId": "deleteControl",
        "parameters": [
          {
            "name": "controlId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IssuingControlId"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Control deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/remove-control-response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Control not found"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IssuingValidationError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "OAuth": [
              "issuing:controls-write"
            ]
          }
        ]
      }
    },
    "/issuing/controls/control-groups": {
      "post": {
        "tags": [
          "Control groups"
        ],
        "summary": "Create a control group",
        "description": "Creates a control group and applies it to the specified target.",
        "operationId": "createControlGroup",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/add-control-group-request"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Control group created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/add-control-group-response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Target not found"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IssuingValidationError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "OAuth": [
              "issuing:controls-write"
            ]
          }
        ]
      },
      "get": {
        "tags": [
          "Control groups"
        ],
        "summary": "Get a target's control groups",
        "description": "Retrieves a list of control groups applied to the specified target.",
        "operationId": "getControlGroupByTarget",
        "parameters": [
          {
            "name": "target_id",
            "in": "query",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IssuingTargetId"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Target's control groups retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get-control-groups-array-response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Target not found"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IssuingValidationError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "issuing:controls-read"
            ]
          }
        ]
      }
    },
    "/issuing/controls/control-groups/{controlGroupId}": {
      "get": {
        "tags": [
          "Control groups"
        ],
        "summary": "Get control group details",
        "description": "Retrieves the details of a control group you created previously.",
        "operationId": "getControlGroup",
        "parameters": [
          {
            "name": "controlGroupId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IssuingControlGroupId"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Control group retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/add-control-group-response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Control group not found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "issuing:controls-read"
            ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Control groups"
        ],
        "summary": "Remove a control group",
        "description": "Removes the control group and all the controls it contains.\n\nIf you want to reapply an equivalent control group to the card, you'll need to create a new control group.\n",
        "operationId": "deleteControlGroup",
        "parameters": [
          {
            "name": "controlGroupId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IssuingControlGroupId"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Control group deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/remove-control-group-response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Control group not found"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IssuingValidationError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "OAuth": [
              "issuing:controls-write"
            ]
          }
        ]
      }
    },
    "/issuing/controls/control-profiles": {
      "post": {
        "tags": [
          "Control profiles"
        ],
        "summary": "Create a control profile",
        "description": "Creates a control profile.",
        "operationId": "createControlProfile",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/add-control-profile-request"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Control profile created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/add-update-control-profile-response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IssuingValidationError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "OAuth": [
              "issuing:controls-write"
            ]
          }
        ]
      },
      "get": {
        "tags": [
          "Control profiles"
        ],
        "summary": "Get all control profiles",
        "description": "Retrieves a list of control profiles for the currently authenticated client, or for a specific card if a card ID is provided.",
        "operationId": "getControlProfilesByTarget",
        "parameters": [
          {
            "name": "target_id",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/IssuingCardId"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Control profiles retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get-control-profiles-client-response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Client not found"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IssuingValidationError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "issuing:controls-read"
            ]
          }
        ]
      }
    },
    "/issuing/controls/control-profiles/{controlProfileId}": {
      "get": {
        "tags": [
          "Control profiles"
        ],
        "summary": "Get control profile details",
        "description": "Retrieves the details of an existing control profile.",
        "operationId": "getControlProfile",
        "parameters": [
          {
            "name": "controlProfileId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IssuingControlProfileId"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Control profile retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/add-update-control-profile-response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Control profile not found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "issuing:controls-read"
            ]
          }
        ]
      },
      "patch": {
        "tags": [
          "Control profiles"
        ],
        "summary": "Update a control profile",
        "description": "Update the control profile",
        "operationId": "updateControlProfile",
        "parameters": [
          {
            "name": "controlProfileId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IssuingControlProfileId"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/update-control-profile-request"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Control profile updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/add-update-control-profile-response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Control profile not found"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "OAuth": [
              "issuing:controls-write"
            ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Control profiles"
        ],
        "summary": "Remove a control profile",
        "description": "Removes the control profile. A control profile cannot be removed if it is used by a control.",
        "operationId": "deleteControlProfile",
        "parameters": [
          {
            "name": "controlProfileId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IssuingControlProfileId"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Control profile deleted successfully"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Control profile not found"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "503": {
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "OAuth": [
              "issuing:controls-write"
            ]
          }
        ]
      }
    },
    "/issuing/controls/control-profiles/{controlProfileId}/add/{targetId}": {
      "post": {
        "tags": [
          "Control profiles"
        ],
        "summary": "Add target to control profile",
        "description": "Adds a target to an existing control profile.",
        "operationId": "addTargetToControlProfile",
        "parameters": [
          {
            "name": "controlProfileId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IssuingControlProfileId"
            }
          },
          {
            "name": "targetId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IssuingTargetIdToAddToControlProfile"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Target added successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/add-control-profile-target-response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Control profile not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IssuingNotFoundError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "issuing:controls-write"
            ]
          }
        ]
      }
    },
    "/issuing/controls/control-profiles/{controlProfileId}/remove/{targetId}": {
      "post": {
        "tags": [
          "Control profiles"
        ],
        "summary": "Remove target from control profile",
        "description": "Removes a target from an existing control profile.",
        "operationId": "removeTargetFromControlProfile",
        "parameters": [
          {
            "name": "controlProfileId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IssuingControlProfileId"
            }
          },
          {
            "name": "targetId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IssuingTargetIdToRemoveFromControlProfile"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Target removed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/remove-control-profile-target-response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Control profile not found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "issuing:controls-write"
            ]
          }
        ]
      }
    },
    "/issuing/digital-cards/{digitalCardId}": {
      "get": {
        "tags": [
          "Digital cards"
        ],
        "summary": "Get digital card details",
        "description": "Retrieves the details for a digital card.\n",
        "operationId": "getDigitalCard",
        "parameters": [
          {
            "name": "digitalCardId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IssuingDigitalCardId"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Digital card retrieved successfully",
            "headers": {
              "cko-request-id": {
                "schema": {
                  "$ref": "#/components/schemas/cko-request-id"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get-digital-card-response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Digital card not found"
          },
          "406": {
            "description": "Not Acceptable"
          },
          "429": {
            "description": "Too Many Requests"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "issuing:card-management-read"
            ]
          }
        ]
      }
    },
    "/issuing/disputes": {
      "post": {
        "tags": [
          "Issuing disputes"
        ],
        "summary": "Create an Issuing dispute",
        "description": "<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>\nCreate 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).\nThe transaction must already be cleared and not refunded.\n",
        "operationId": "createDispute",
        "parameters": [
          {
            "$ref": "#/components/parameters/IssuingCkoIdempotencyKeyRequired"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/create-dispute-request"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Dispute already exists for this transaction/presentment",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get-dispute-response"
                }
              }
            }
          },
          "201": {
            "description": "Dispute created successfully",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/create-dispute-response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized Request",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              }
            }
          },
          "422": {
            "description": "Dispute is ineligble",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IssuingValidationError"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests"
          },
          "415": {
            "description": "Unsupported Media Type"
          },
          "406": {
            "description": "Not Acceptable"
          }
        },
        "security": [
          {
            "OAuth": [
              "issuing:disputes-write"
            ]
          }
        ]
      }
    },
    "/issuing/disputes/{disputeId}": {
      "get": {
        "tags": [
          "Issuing disputes"
        ],
        "summary": "Get an Issuing dispute",
        "description": "<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>\nRetrieve the details of an [Issuing dispute](https://www.checkout.com/docs/card-issuing/manage-cardholder-transactions/manage-issuing-disputes).\n",
        "operationId": "getDispute",
        "parameters": [
          {
            "name": "disputeId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IssuingDisputeId"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Issuing dispute retrieved successfully",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get-dispute-response"
                }
              }
            }
          },
          "default": {
            "description": "Issuing dispute response retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get-dispute-response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized Request",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              }
            }
          },
          "404": {
            "description": "Issuing dispute not found",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              }
            }
          },
          "403": {
            "description": "Forbidden"
          },
          "429": {
            "description": "Too Many Requests"
          },
          "415": {
            "description": "Unsupported Media Type"
          },
          "406": {
            "description": "Not Acceptable"
          }
        },
        "security": [
          {
            "OAuth": [
              "issuing:disputes-read"
            ]
          }
        ]
      }
    },
    "/issuing/disputes/{disputeId}/amend": {
      "post": {
        "tags": [
          "Issuing disputes"
        ],
        "summary": "Amend an Issuing dispute",
        "description": "<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>\nAmend an [Issuing dispute](https://www.checkout.com/docs/card-issuing/manage-cardholder-transactions/manage-issuing-disputes)\nthat has been blocked from proceeding. This endpoint is used when the dispute's submission\ncould not go through — either because the DR team requested changes before sending to the\ncard scheme, or because the card scheme returned the submission for a fixable reason (in\nwhich case the DR team reviews the rejection and instructs the consumer via `action_details`).\n\nThis 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`\nlink in the GET response is present whenever an amendment is required.\n\nCheck `action_details.instructions` in `GET /issuing/disputes/{id}` for the specific changes\nrequired before calling this endpoint.\n\n### Chargeback stage (`status_reason: chargeback_change_requested`, `chargeback_evidence_invalid_or_insufficient`)\n\nAddress changes required before the chargeback can proceed. This covers two scenarios:\n\n- **issuing rejection:** The Disputes Resolution team reviews the submission and rejects providing corrective instructions via `action_details`.\n\n- **Scheme rejection:** The card scheme returned the chargeback for a fixable reason.\n\n### Escalation stage (`status_reason: escalation_change_requested`, `prearbitration_evidence_invalid_or_insufficient`)\n\nAddress changes required before the escalation (pre-arbitration or arbitration) can proceed.\nThe same two scenarios apply as at the chargeback stage. `reason_change_justification`\nis **required** when changing the `reason` at this stage.\n",
        "operationId": "amendDispute",
        "parameters": [
          {
            "$ref": "#/components/parameters/IssuingCkoIdempotencyKeyRequired"
          },
          {
            "name": "disputeId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IssuingDisputeId"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/amend-dispute-request"
              },
              "examples": {
                "chargeback_change": {
                  "summary": "Amend chargeback — DR team or scheme requested changes",
                  "value": {
                    "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."
                  }
                },
                "chargeback_change_fraud": {
                  "summary": "Amend chargeback — fraud reason code (fraud_details required)",
                  "value": {
                    "reason": 4837,
                    "fraud_details": {
                      "fraud_type": "card_not_present_fraud",
                      "description": "Cardholder confirmed they did not make any online purchases on this date."
                    },
                    "evidence": [
                      {
                        "name": "notarised_fraud_affidavit.pdf",
                        "content": "JVBERi0xLjQKJeLjz9M...",
                        "description": "Notarised fraud affidavit as requested by DR team."
                      }
                    ],
                    "action_response": "Notarised affidavit provided as requested."
                  }
                },
                "escalation_change": {
                  "summary": "Amend escalation — reason code change (reason_change_justification required)",
                  "value": {
                    "reason": 4837,
                    "reason_change_justification": "The cardholder's sworn statement confirms this was an unauthorized transaction. Reason code 4837 (No Cardholder Authorization) more accurately reflects the fraud nature and is required for pre-arbitration at this stage.",
                    "evidence": [
                      {
                        "name": "fraud_affidavit.pdf",
                        "content": "JVBERi0xLjQKJeLjz9M...",
                        "description": "Completed fraud affidavit signed by cardholder."
                      }
                    ],
                    "fraud_details": {
                      "fraud_type": "counterfeit_card",
                      "description": "Cardholder's PIN was used without their knowledge, likely via skimming at the point of sale."
                    },
                    "action_response": "Reason updated to 4837 per DR team guidance. Fraud affidavit attached."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Your corrections were accepted; the dispute continues processing.",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get-dispute-response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized Request",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              }
            }
          },
          "404": {
            "description": "Issuing dispute not found",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              }
            }
          },
          "409": {
            "description": "This dispute is not in a state that accepts corrections (e.g. not action_required).",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              }
            }
          },
          "422": {
            "description": "Request is missing required information — for example, `fraud_details` for a fraud reason code,\nor `reason_change_justification` when changing the reason code at the escalation stage.\n",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              }
            }
          }
        },
        "security": [
          {
            "OAuth": [
              "issuing:disputes-write"
            ]
          }
        ]
      }
    },
    "/issuing/disputes/{disputeId}/cancel": {
      "post": {
        "tags": [
          "Issuing disputes"
        ],
        "summary": "Cancel an Issuing dispute",
        "description": "<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>\nCancel an [Issuing dispute](https://www.checkout.com/docs/card-issuing/manage-cardholder-transactions/manage-issuing-disputes).\nIf you decide not to proceed with a dispute, you can cancel it either:\n* While the dispute `status` is `processing` and `status_reason` is `chargeback_pending` or `chargeback_processed`\nFor 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>.\n",
        "operationId": "cancelDispute",
        "parameters": [
          {
            "$ref": "#/components/parameters/IssuingCkoIdempotencyKeyRequired"
          },
          {
            "name": "disputeId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IssuingDisputeId"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Issuing dispute cancellation requested successfully",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              }
            }
          },
          "401": {
            "description": "Unauthorized Request",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              }
            }
          },
          "404": {
            "description": "Issuing dispute not found",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              }
            }
          },
          "409": {
            "description": "Issuing dispute cannot be canceled",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              }
            }
          },
          "422": {
            "description": "Request missing required information",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              }
            }
          }
        },
        "security": [
          {
            "OAuth": [
              "issuing:disputes-write"
            ]
          }
        ]
      }
    },
    "/issuing/disputes/{disputeId}/escalate": {
      "post": {
        "tags": [
          "Issuing disputes"
        ],
        "summary": "Escalate an Issuing dispute",
        "description": "<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>\nEscalate an [Issuing dispute](https://www.checkout.com/docs/card-issuing/manage-cardholder-transactions/manage-issuing-disputes) to pre-arbitration or arbitration.\n",
        "operationId": "escalateDispute",
        "parameters": [
          {
            "$ref": "#/components/parameters/IssuingCkoIdempotencyKeyRequired"
          },
          {
            "name": "disputeId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IssuingDisputeId"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/escalate-dispute-request"
              },
              "example": {
                "justification": "The cardholder maintains that the goods were not received.",
                "amount": 100,
                "reason_change": {
                  "reason": 4837,
                  "justification": "Reason changed due to evidence from the acquirer."
                },
                "additional_evidence": [
                  {
                    "name": "evidence.pdf",
                    "content": "c29tZSBiYXNlNjQgZGF0YQ==",
                    "description": "Goods were not received."
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Issuing dispute escalation requested successfully",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              }
            }
          },
          "401": {
            "description": "Unauthorized Request",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              }
            }
          },
          "404": {
            "description": "Issuing dispute not found",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              }
            }
          },
          "409": {
            "description": "Issuing dispute cannot be escalated",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              }
            }
          },
          "422": {
            "description": "Request missing required information",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              }
            }
          }
        },
        "security": [
          {
            "OAuth": [
              "issuing:disputes-write"
            ]
          }
        ]
      }
    },
    "/issuing/disputes/{disputeId}/submit": {
      "post": {
        "tags": [
          "Issuing disputes"
        ],
        "summary": "Submit an Issuing dispute",
        "description": "<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>\nUse 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.\n\nYou 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`.\nThis 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.\n",
        "operationId": "submitDispute",
        "parameters": [
          {
            "$ref": "#/components/parameters/IssuingCkoIdempotencyKeyRequired"
          },
          {
            "name": "disputeId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IssuingDisputeId"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/submit-dispute-request"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Issuing dispute submitted successfully",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get-dispute-response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized Request",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              }
            }
          },
          "404": {
            "description": "Issuing dispute not found",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              }
            }
          },
          "409": {
            "description": "Issuing dispute cannot be submitted",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              }
            }
          },
          "422": {
            "description": "Request missing required information",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              }
            }
          }
        },
        "deprecated": true,
        "security": [
          {
            "OAuth": [
              "issuing:disputes-write"
            ]
          }
        ]
      }
    },
    "/issuing/simulate/authorizations": {
      "post": {
        "tags": [
          "Card testing"
        ],
        "summary": "Simulate authorization",
        "description": "Simulate an authorization request with a card you issued previously.",
        "operationId": "simulateAuthorization",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SimulateAuthorizationRequest"
              },
              "examples": {
                "Purchase - Authorization": {
                  "value": {
                    "card": {
                      "id": "crd_fa6psq242dcd6fdn5gifcq1491",
                      "expiry_month": 5,
                      "expiry_year": 2025
                    },
                    "transaction": {
                      "type": "purchase",
                      "amount": 2500,
                      "currency": "GBP",
                      "merchant": {
                        "category_code": 7399
                      }
                    }
                  }
                },
                "Purchase - Pre-authorization": {
                  "value": {
                    "card": {
                      "id": "crd_fa6psq242dcd6fdn5gifcq1491",
                      "expiry_month": 5,
                      "expiry_year": 2025
                    },
                    "transaction": {
                      "type": "purchase",
                      "amount": 2500,
                      "currency": "GBP",
                      "merchant": {
                        "category_code": 7399
                      },
                      "authorization_type": "pre_authorization"
                    }
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Authorization processed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SimulateAuthorizationResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IssuingValidationError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "issuing:transactions-write"
            ]
          }
        ]
      }
    },
    "/issuing/simulate/authorizations/{id}/authorizations": {
      "post": {
        "tags": [
          "Card testing"
        ],
        "summary": "Simulate incrementing an authorization",
        "description": "Simulate an incremental authorization request for an existing approved transaction.\n\nIncremental authorizations increase the total authorized amount of the transaction. For example, adding a restaurant bill to an existing hotel booking.\n",
        "operationId": "simulateIncrementalAuthorization",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IssuingTransactionId"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SimulateIncrementalAuthorizationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Authorization processed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SimulateIncrementalAuthorizationResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Authorization not found"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IssuingValidationError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "issuing:transactions-write"
            ]
          }
        ]
      }
    },
    "/issuing/simulate/authorizations/{id}/presentments": {
      "post": {
        "tags": [
          "Card testing"
        ],
        "summary": "Simulate clearing",
        "description": "Simulate the clearing of an existing approved authorization.",
        "operationId": "simulatePresentment",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IssuingTransactionId"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PresentmentRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "description": "Presentment accepted"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Authorization not found"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IssuingValidationError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "issuing:transactions-write"
            ]
          }
        ]
      }
    },
    "/issuing/simulate/authorizations/{id}/refunds": {
      "post": {
        "tags": [
          "Card testing"
        ],
        "summary": "Simulate refund",
        "description": "Simulate the refund of an existing approved authorization, after it has been cleared.",
        "operationId": "simulateRefund",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IssuingTransactionId"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SimulateRefundRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "description": "Refund accepted"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Presentment not found"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IssuingValidationError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "issuing:transactions-write"
            ]
          }
        ]
      }
    },
    "/issuing/simulate/authorizations/{id}/reversals": {
      "post": {
        "tags": [
          "Card testing"
        ],
        "summary": "Simulate reversal",
        "description": "Simulate the reversal of an existing approved authorization.",
        "operationId": "simulateReversal",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IssuingTransactionId"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReversalRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Reversal processed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReversalResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Authorization not found"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IssuingValidationError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "issuing:transactions-write"
            ]
          }
        ]
      }
    },
    "/issuing/simulate/oob/authentication": {
      "post": {
        "tags": [
          "Out-of-band authentication simulator"
        ],
        "summary": "Simulate an out-of-band (OOB) authentication request.",
        "description": "Simulate a request to your back-end from an out-of-band (OOB) authentication provider.",
        "operationId": "simulateOobAuthentication",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/simulate-oob-authentication-request"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Card not found"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IssuingValidationError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "issuing:card-management-read"
            ]
          }
        ]
      }
    },
    "/issuing/transactions": {
      "get": {
        "tags": [
          "Transactions"
        ],
        "summary": "Get a list of transactions",
        "description": "<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>\nReturns a list of transactions based on the matching input parameters in reverse chronological order, with the most recent transactions shown first.\n",
        "operationId": "getTransactions",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum number of transactions returned (between 10-100). The default is 10.",
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "skip",
            "in": "query",
            "description": "The number of transactions to skip. The default is 0.",
            "schema": {
              "maximum": 500,
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "cardholder_id",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/IssuingCardholderId"
            }
          },
          {
            "name": "card_id",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/IssuingCardId"
            }
          },
          {
            "name": "entity_id",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/IssuingEntityId"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "An optional filter for the transaction lifecycle status.",
            "schema": {
              "enum": [
                "authorized",
                "declined",
                "canceled",
                "cleared",
                "refunded",
                "disputed"
              ],
              "type": "string"
            },
            "example": "disputed"
          },
          {
            "name": "from",
            "in": "query",
            "description": "An optional start date filter for transactions, in ISO 8601 format.",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "example": "2023-08-15T17:30:09.0000000+00:00"
          },
          {
            "name": "to",
            "in": "query",
            "description": "An optional end date filter for transactions, in ISO 8601 format.",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "example": "2023-09-15T17:30:09.0000000+00:00"
          }
        ],
        "responses": {
          "200": {
            "description": "Transactions returned successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get-transactions-response"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "429": {
            "description": "Too Many Requests"
          },
          "422": {
            "description": "Matching parameters not valid."
          }
        },
        "security": [
          {
            "OAuth": [
              "issuing:transactions-read"
            ]
          }
        ]
      }
    },
    "/issuing/transactions/{transactionId}": {
      "get": {
        "tags": [
          "Transactions"
        ],
        "summary": "Get a single transaction",
        "description": "<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>\nGet the details of a transaction using its ID.\n",
        "operationId": "getTransactionById",
        "parameters": [
          {
            "name": "transactionId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/IssuingTransactionId"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Issuing transaction retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get-transaction-response"
                }
              }
            }
          },
          "default": {
            "description": "Issuing transaction response retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get-transaction-response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Transaction Not Found"
          },
          "406": {
            "description": "Not Acceptable"
          },
          "403": {
            "description": "Forbidden"
          },
          "429": {
            "description": "Too Many Requests"
          }
        },
        "security": [
          {
            "OAuth": [
              "issuing:transactions-read"
            ]
          }
        ]
      }
    },
    "/metadata/card": {
      "post": {
        "tags": [
          "Card metadata"
        ],
        "summary": "Get card metadata",
        "description": "<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>\nReturns a single metadata record for the card specified by the Primary Account Number (PAN), Bank Identification Number (BIN), token, or instrument supplied.\n",
        "operationId": "requestCardMetadata",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CardMetadataRequest"
              },
              "examples": {
                "card": {
                  "value": {
                    "source": {
                      "type": "card",
                      "number": 4539467987109256
                    },
                    "format": "basic"
                  }
                },
                "bin": {
                  "value": {
                    "source": {
                      "type": "bin",
                      "bin": 424242
                    },
                    "format": "card_payouts"
                  }
                },
                "token": {
                  "value": {
                    "source": {
                      "type": "token",
                      "token": "tok_ubfj2q76miwundwlk72vxt2i7q"
                    },
                    "format": "basic"
                  }
                },
                "id": {
                  "value": {
                    "source": {
                      "type": "id",
                      "id": "src_e7hqezhxdfeetnyfdv3ayu6yru"
                    },
                    "format": "card_payouts"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Metadata for the card number, BIN, token, or instrument ID provided",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardMetadataResponse"
                },
                "examples": {
                  "basic": {
                    "value": {
                      "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"
                    }
                  },
                  "card_payouts": {
                    "value": {
                      "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"
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Card Metadata not found"
          },
          "415": {
            "description": "Unsupported Media Type"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          },
          "502": {
            "description": "Bad Gateway"
          },
          "504": {
            "description": "Gateway Timeout"
          }
        },
        "security": [
          {
            "OAuth": [
              "vault:card-metadata"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n\t\"github.com/checkout/checkout-sdk-go/metadata\"\n\t\"github.com/checkout/checkout-sdk-go/metadata/sessions\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.VaultCardMetadata}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nrequest := metadata.CardMetadataRequest{\n\tSource: sources.NewRequestCardSource(\"card_number\"),\n\tFormat: metadata.Basic,\n}\n\nresponse, err := api.Metadata.RequestCardMetadata(request)\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          }
        ]
      }
    },
    "/network-tokens": {
      "post": {
        "tags": [
          "Network Tokens"
        ],
        "summary": "Provision a Network Token",
        "description": "<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.\n",
        "operationId": "provisionNetworkToken",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NetworkTokensRequest"
              },
              "examples": {
                "id": {
                  "value": {
                    "source": {
                      "type": "id",
                      "id": "src_wmlfc3zyhqzehihu7giusaaawu"
                    }
                  }
                },
                "card": {
                  "value": {
                    "source": {
                      "type": "card",
                      "number": 4539467987109256,
                      "expiry_month": 10,
                      "expiry_year": 2027
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Responding with existing network token",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NetworkTokensResponse"
                }
              }
            }
          },
          "201": {
            "description": "Network token provisioned",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NetworkTokensResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "415": {
            "description": "Unsupported Media Type"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          },
          "502": {
            "description": "Bad Gateway"
          },
          "504": {
            "description": "Gateway Timeout"
          }
        },
        "security": [
          {
            "OAuth": [
              "vault:network-tokens"
            ]
          }
        ]
      }
    },
    "/network-tokens/{network_token_id}": {
      "get": {
        "tags": [
          "Network Tokens"
        ],
        "summary": "Get Network Token",
        "description": "<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 \ndetails like last four and expiry date.\n",
        "operationId": "getNetworkToken",
        "parameters": [
          {
            "name": "network_token_id",
            "in": "path",
            "description": "Unique token ID assigned by Checkout.com for each token",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "nt_xgu3isllqfyu7ktpk5z2yxbwna"
          }
        ],
        "responses": {
          "200": {
            "description": "Network Token details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NetworkTokensRetrieveResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Network Token not found"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "502": {
            "description": "Bad Gateway"
          },
          "504": {
            "description": "Gateway Timeout"
          }
        },
        "security": [
          {
            "OAuth": [
              "vault:network-tokens"
            ]
          }
        ]
      }
    },
    "/network-tokens/{network_token_id}/cryptograms": {
      "post": {
        "tags": [
          "Network Tokens"
        ],
        "summary": "Request a cryptogram",
        "description": "<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>\nUsing network token ID as an input, this endpoint returns token cryptogram.\n",
        "operationId": "provisionCryptogram",
        "parameters": [
          {
            "name": "network_token_id",
            "in": "path",
            "description": "Unique token ID assigned by Checkout.com for each token",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "nt_xgu3isllqfyu7ktpk5z2yxbwna"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NetworkTokensCryptogramRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Cryptogram from the network token",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NetworkTokensCryptogramResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Network Token not found"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          },
          "502": {
            "description": "Bad Gateway"
          },
          "504": {
            "description": "Gateway Timeout"
          }
        },
        "security": [
          {
            "OAuth": [
              "vault:network-tokens"
            ]
          }
        ]
      }
    },
    "/network-tokens/{network_token_id}/delete": {
      "patch": {
        "tags": [
          "Network Tokens"
        ],
        "summary": "Permanently deletes a network token",
        "description": "<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.\n",
        "operationId": "deleteNetworkToken",
        "parameters": [
          {
            "name": "network_token_id",
            "in": "path",
            "description": "Unique token ID assigned by Checkout.com for each token",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "nt_xgu3isllqfyu7ktpk5z2yxbwna"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NetworkTokensRequestDelete"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Ok"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Network token not found"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          },
          "502": {
            "description": "Bad Gateway. Error from scheme"
          },
          "504": {
            "description": "Timeout while waiting for a scheme response"
          }
        },
        "security": [
          {
            "OAuth": [
              "vault:network-tokens"
            ]
          }
        ]
      }
    },
    "/payment-contexts": {
      "post": {
        "tags": [
          "Payment Context"
        ],
        "summary": "Request a Payment Context",
        "description": "Send a Payment Context request.\n<br><br><b>Note</b>: Successful Payment Context requests will always return a 201 response.\n\nEffective 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.\n",
        "operationId": "requestAPaymentContext",
        "parameters": [
          {
            "$ref": "#/components/parameters/ckoIdempotencyKey"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentContext"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Payment Context Created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentContextResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "405": {
            "description": "Method Not Allowed. Not supported for creating new integrations on this resource."
          },
          "429": {
            "description": "Too many requests or duplicate request detected.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "request_id": {
                      "type": "string",
                      "example": "0HL80RJLS76I7"
                    },
                    "error_type": {
                      "type": "string",
                      "example": "request_invalid"
                    },
                    "error_codes": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "example": "duplicate_request"
                      }
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Invalid data was sent.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            }
          },
          "502": {
            "description": "Bad gateway"
          }
        },
        "security": [
          {
            "OAuth": [
              "gateway",
              "gateway:payment-contexts"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      }
    },
    "/payment-contexts/{id}": {
      "get": {
        "tags": [
          "Payment Context"
        ],
        "summary": "Get Payment Context details",
        "description": "Returns all the Payment Context details.",
        "operationId": "getPaymentContext",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/PaymentContextId"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Payment Context retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentContextDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Payment Context not found."
          }
        },
        "security": [
          {
            "OAuth": [
              "Payment Context"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      }
    },
    "/payment-links": {
      "post": {
        "tags": [
          "Payment Links"
        ],
        "summary": "Create a Payment Link",
        "description": "Create a Payment Link and pass through all the payment information, like the amount, currency, country and reference.\n",
        "operationId": "createAPaymentLinkSession",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentLinksRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Create Payment Link Page",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentLinksResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\nusing Checkout.Common;\nusing Checkout.Payments;\nusing Checkout.Payments.Links;\n\nICheckoutApi api = CheckoutSdk.Builder().StaticKeys()\n    .SecretKey(\"secret_key\")\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\nPaymentLinkRequest request = new PaymentLinkRequest\n{\n    Amount = 10,\n    Currency = Currency.GBP,\n    PaymentType = PaymentType.Regular,\n    PaymentIp = \"192.168.0.1\",\n    BillingDescriptor = new BillingDescriptor() {Name = \"string\", City = \"string\"},\n    Reference = \"reference\",\n    Description = \"Payment for Gold Necklace\",\n    ExpiresIn = 604800,\n    Customer = new CustomerRequest() {Email = \"email@docs.checkout.com\", Name = \"FirstName LastName\"},\n    Shipping =\n        new ShippingDetails()\n        {\n            Address = new Address()\n            {\n                AddressLine1 = \"123 High St.\",\n                AddressLine2 = \"Flat 456\",\n                City = \"London\",\n                State = \"GB\",\n                Zip = \"SW1A 1AA\",\n                Country = CountryCode.GB\n            },\n            Phone = new Phone() {Number = \"4155552671\", CountryCode = \"1\"}\n        },\n    Billing =\n        new BillingInformation()\n        {\n            Address = new Address()\n            {\n                AddressLine1 = \"123 High St.\",\n                AddressLine2 = \"Flat 456\",\n                City = \"London\",\n                State = \"GB\",\n                Zip = \"SW1A 1AA\",\n                Country = CountryCode.GB\n            },\n            Phone = new Phone() {Number = \"4155552671\", CountryCode = \"1\"}\n        },\n    Recipient =\n        new PaymentRecipient()\n        {\n            DateOfBirth = \"1985-05-15\",\n            AccountNumber = \"5555554444\",\n            Zip = \"SW1A\",\n            LastName = \"LastName\",\n        },\n    Processing = new ProcessingSettings() {Aft = true},\n    Products = new List<Product>() {new Product() {Name = \"Gold Necklace\", Quantity = 1, Price = 1000}},\n    Metadata = new Dictionary<string, object>(),\n    ThreeDs = new ThreeDsRequest() {Enabled = false, AttemptN3D = false},\n    Risk = new RiskRequest() {Enabled = false},\n    ReturnUrl = \"https://example.com/payments/success\",\n    Locale = \"en-GB\",\n    Capture = true,\n    CaptureOn = new DateTime()\n};\n\ntry\n{\n    PaymentLinkResponse response = await api.PaymentLinksClient().Create(request);\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/common\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n\t\"github.com/checkout/checkout-sdk-go/payments\"\n\t\"github.com/checkout/checkout-sdk-go/payments/links\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\naddress := common.Address{\n\tAddressLine1: \"123 High St.\",\n\tAddressLine2: \"Flat 456\",\n\tCity:         \"London\",\n\tState:        \"GB\",\n\tZip:          \"SW1A 1AA\",\n\tCountry:      common.GB,\n}\n\nphone := common.Phone{\n\tCountryCode: \"1\",\n\tNumber:      \"415 555 2671\",\n}\n\nrequest := links.PaymentLinkRequest{\n\tAmount:      10,\n\tCurrency:    common.GBP,\n\tPaymentType: payments.Regular,\n\tBillingDescriptor: &payments.BillingDescriptor{\n\t\tName: \"Name\",\n\t\tCity: \"London\",\n\t},\n\tReference:   \"Reference\",\n\tDescription: \"Description\",\n\tExpiresIn:   604800,\n\tCustomer: &common.CustomerRequest{\n\t\tEmail: \"email@docs.checkout.com\",\n\t\tName:  \"Name\",\n\t},\n\tShipping: &payments.ShippingDetails{\n\t\tAddress: &address,\n\t\tPhone:   &phone,\n\t},\n\tBilling: &payments.BillingInformation{\n\t\tAddress: &address,\n\t\tPhone:   &phone,\n\t},\n\tRecipient: &payments.PaymentRecipient{\n\t\tDateOfBirth:   \"1985-05-15\",\n\t\tAccountNumber: \"999999999\",\n\t\tZip:           \"12345\",\n\t\tLastName:      \"LastName\",\n\t},\n\tProcessing: &payments.ProcessingSettings{Aft: true},\n\tProducts: []payments.Product{\n\t\t{\n\t\t\tName:     \"name\",\n\t\t\tQuantity: 1,\n\t\t\tPrice:    200,\n\t\t},\n\t},\n\tRisk:      &payments.RiskRequest{Enabled: false},\n\tReturnUrl: \"https://docs.checkout.com/return\",\n\tLocale:    \"en-GB\",\n\tThreeDs: &payments.ThreeDsRequest{\n\t\tEnabled:            false,\n\t\tAttemptN3D:         false,\n\t\tChallengeIndicator: common.NoChallengeRequested,\n\t},\n\tCapture:   true,\n\tCaptureOn: time.Now().AddDate(0, 0, 30),\n}\n\nresponse, err := api.Links.CreatePaymentLink(request)\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.common.Address;\nimport com.checkout.common.ChallengeIndicator;\nimport com.checkout.common.CountryCode;\nimport com.checkout.common.Currency;\nimport com.checkout.common.CustomerRequest;\nimport com.checkout.common.Phone;\nimport com.checkout.common.Product;\nimport com.checkout.payments.BillingDescriptor;\nimport com.checkout.payments.BillingInformation;\nimport com.checkout.payments.PaymentRecipient;\nimport com.checkout.payments.PaymentType;\nimport com.checkout.payments.ProcessingSettings;\nimport com.checkout.payments.RiskRequest;\nimport com.checkout.payments.ShippingDetails;\nimport com.checkout.payments.ThreeDSRequest;\nimport com.checkout.payments.links.PaymentLinkRequest;\nimport com.checkout.payments.links.PaymentLinkResponse;\n\n// API Keys\nCheckoutApi api = CheckoutSdk.builder()\n    .staticKeys()\n    .secretKey(\"secret_key\")\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\nPaymentLinkRequest paymentLinksRequest = PaymentLinkRequest.builder()\n    .amount(10L)\n    .currency(Currency.GBP)\n    .reference(\"reference\")\n    .description(\"description\")\n    .expiresIn(604800)\n    .customer(new CustomerRequest(null, \"email@docs.checkout.com\", \"Name\", null))\n    .shipping(ShippingDetails.builder()\n        .address(Address.builder()\n        .addressLine1(\"123 High St.\")\n        .addressLine2(\"Flat 456\")\n        .city(\"London\")\n        .state(\"GB\")\n        .zip(\"SW1A 1AA\")\n        .country(CountryCode.GB)\n        .build())\n    .phone(Phone.builder().countryCode(\"1\").number(\"415 555 2671\").build())\n        .build())\n    .billing(BillingInformation.builder()\n        .address(Address.builder()\n        .addressLine1(\"123 High St.\")\n        .addressLine2(\"Flat 456\")\n        .city(\"London\")\n        .state(\"GB\")\n        .zip(\"SW1A 1AA\")\n        .country(CountryCode.GB)\n        .build())\n    .phone(Phone.builder().countryCode(\"1\").number(\"415 555 2671\").build())\n        .build())\n    .recipient(PaymentRecipient.builder()\n        .accountNumber(\"999999999\")\n        .dateOfBirth(\"1985-05-15\")\n        .lastName(\"LastName\")\n        .zip(\"12345\")\n        .build())\n    .processing(ProcessingSettings.builder()\n        .aft(true)\n        .build())\n    .capture(true)\n    .captureOn(Instant.now().plus(30, ChronoUnit.DAYS))\n    .products(Collections.singletonList(Product.builder()\n        .name(\"name\")\n        .quantity(1L)\n        .price(200L)\n        .build()))\n    .threeDS(ThreeDSRequest.builder()\n        .enabled(Boolean.FALSE)\n        .attemptN3D(Boolean.FALSE)\n        .challengeIndicator(ChallengeIndicator.NO_CHALLENGE_REQUESTED)\n        .build())\n    .risk(new RiskRequest(Boolean.FALSE))\n    .returnUrl(\"https://docs.checkout.com/success\")\n    .locale(\"en-GB\")\n    .paymentType(PaymentType.REGULAR)\n    .billingDescriptor(BillingDescriptor.builder()\n        .city(\"London\")\n        .name(\"name\")\n        .build())\n    .build();\n\ntry {\n    PaymentLinkResponse response = api.paymentLinksClient().createPaymentLink(paymentLinksRequest).get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Common\\Address;\nuse Checkout\\Common\\Country;\nuse Checkout\\Common\\Currency;\nuse Checkout\\Common\\CustomerRequest;\nuse Checkout\\Common\\Phone;\nuse Checkout\\Common\\Product;\nuse Checkout\\Environment;\nuse Checkout\\Payments\\BillingInformation;\nuse Checkout\\Payments\\Links\\PaymentLinkRequest;\nuse Checkout\\Payments\\PaymentRecipient;\nuse Checkout\\Payments\\ProcessingSettings;\nuse Checkout\\Payments\\RiskRequest;\nuse Checkout\\Payments\\ShippingDetails;\nuse Checkout\\Payments\\ThreeDsRequest;\n\n$api = CheckoutSdk::builder()->staticKeys()\n        ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n        ->secretKey(\"secret_key\")\n        ->build();\n\n$phone = new Phone();\n$phone->country_code = \"+1\";\n$phone->number = \"415 555 2671\";\n\n$address = new Address();\n$address->address_line1 = \"123 High St.\";\n$address->address_line2 = \"Flat 456\";\n$address->city = \"London\";\n$address->State = \"GB\";\n$address->zip = \"SW1A 1AA\";\n$address->country = Country::$GB;\n\n$customerRequest = new CustomerRequest();\n$customerRequest->email = \"\";\n$customerRequest->name = \"Name\";\n\n$billingInformation = new BillingInformation();\n$billingInformation->address = $address;\n$billingInformation->phone = $phone;\n\n$shippingDetails = new ShippingDetails();\n$shippingDetails->address = $address;\n$shippingDetails->phone = $phone;\n\n$recipient = new PaymentRecipient();\n$recipient->account_number = \"1234567\";\n$recipient->dob = \"1985-05-15\";\n$recipient->last_name = \"Last\";\n$recipient->zip = \"12345\";\n\n$product = new Product();\n$product->name = \"Product\";\n$product->quantity = 1;\n$product->price = 10;\n\n$products = array($product);\n\n$theeDsRequest = new ThreeDsRequest();\n$theeDsRequest->enabled = false;\n$theeDsRequest->attempt_n3d = false;\n\n$processing = new ProcessingSettings();\n$processing->aft = true;\n\n$risk = new RiskRequest();\n$risk->enabled = false;\n\n$request = new PaymentLinkRequest();\n$request->amount = 1000;\n$request->reference = \"reference\";\n$request->currency = Currency::$GBP;\n$request->description = \"Description\";\n$request->customer = $customerRequest;\n$request->shipping = $shippingDetails;\n$request->billing = $billingInformation;\n$request->recipient = $recipient;\n$request->processing = $processing;\n$request->products = $products;\n$request->risk = $risk;\n$request->locale = \"en-GB\";\n$request->three_ds = $theeDsRequest;\n$request->capture = true;\n\ntry {\n    $response = $api->getPaymentLinksClient()->createPaymentLink($request);\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.common.common import Phone, Address, CustomerRequest, Product\nfrom checkout_sdk.common.enums import Country, Currency, PaymentSourceType\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.payments.links.payments_links import PaymentLinkRequest\nfrom checkout_sdk.payments.payments import ThreeDsRequest, ProcessingSettings, RiskRequest, ShippingDetails, PaymentRecipient\nfrom checkout_sdk.payments.payments_previous import BillingInformation\n\n# API Key\napi_key = (\n    CheckoutSdk.builder() \n    .secret_key('secret_key') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .build()\n)\n\nphone = Phone()\nphone.country_code = '44'\nphone.number = '4155552671'\n\naddress = Address()\naddress.address_line1 = '123 High St.'\naddress.address_line2 = 'Flat 456'\naddress.city = 'London'\naddress.state = 'GB'\naddress.zip = 'SW1A 1AA'\naddress.country = Country.GB\n\ncustomer_request = CustomerRequest()\ncustomer_request.email = 'email@docs.checkout.com'\ncustomer_request.name = 'Name'\n\nbilling_information = BillingInformation()\nbilling_information.address = address\nbilling_information.phone = phone\n\nshipping_details = ShippingDetails()\nshipping_details.address = address\nshipping_details.phone = phone\n\nrecipient = PaymentRecipient()\nrecipient.account_number = '123456789'\nrecipient.country = Country.ES\nrecipient.dob = '1985-05-18'\nrecipient.first_name = 'First'\nrecipient.last_name = 'Last'\nrecipient.zip = '12345'\n\nproduct = Product()\nproduct.name = 'Product Name'\nproduct.quantity = 1\nproduct.price = 10\n\nthree_ds_request = ThreeDsRequest()\nthree_ds_request.enabled = True\nthree_ds_request.attempt_n3d = False\n\nprocessing_settings = ProcessingSettings()\nprocessing_settings.aft = True\n\nrisk_request = RiskRequest()\nrisk_request.enabled = True\n\nrequest = PaymentLinkRequest()\nrequest.amount = 10\nrequest.reference = 'reference'\nrequest.currency = Currency.GBP\nrequest.description = 'Payment for Gold Necklace'\nrequest.customer = customer_request\nrequest.shipping = shipping_details\nrequest.billing = billing_information\nrequest.recipient = recipient\nrequest.processing = processing_settings\nrequest.products = [product]\nrequest.risk = risk_request\nrequest.return_url = 'https://docs.checkout.com/payments/return'\nrequest.locale = 'en-GB'\nrequest.three_ds = three_ds_request\nrequest.expires_in = 6400\nrequest.capture = True\nrequest.allow_payment_methods = [PaymentSourceType.CARD, PaymentSourceType.IDEAL]\n\ntry:\n    response = api.payments_links.create_payment_link(request)\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n    # Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n    # Invalid authorization"
          }
        ]
      }
    },
    "/payment-links/{id}": {
      "get": {
        "tags": [
          "Payment Links"
        ],
        "summary": "Get Payment Link details",
        "description": "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>\nFor more information, see the <a target=\"_blank\" href=\"https://www.checkout.com/docs/integrate/payment-links\">Payment Links documentation</a>.\n",
        "operationId": "getPaymentLinkDetails",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/PaymentLinkId"
                }
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Payment Link details retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetPaymentLinkResponse"
                },
                "examples": {
                  "Active": {
                    "value": {
                      "id": "pl_ELqQJXdXzabU",
                      "status": "Active",
                      "amount": 100,
                      "currency": "GBP",
                      "reference": "ORD-123A",
                      "description": "Payment for Gold Necklace",
                      "created_on": "2021-08-19T20:25:28.7250000+00:00",
                      "expires_on": "2021-08-20T20:25:28.0000000+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 Received": {
                    "value": {
                      "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.7250000+00:00",
                      "expires_on": "2021-08-20T20:25:28.0000000+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"
                        }
                      }
                    }
                  },
                  "Expired": {
                    "value": {
                      "id": "pl_ELqQJXdXzabU",
                      "status": "Expired",
                      "amount": 100,
                      "currency": "GBP",
                      "reference": "ORD-123A",
                      "description": "Payment for Gold Necklace",
                      "created_on": "2021-08-19T20:25:28.7250000+00:00",
                      "expires_on": "2021-08-20T20:25:28.0000000+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"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Payment Link session not found"
          }
        },
        "security": [
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\nusing Checkout.Payments.Links;\n\nICheckoutApi api = CheckoutSdk.Builder().StaticKeys()\n    .SecretKey(\"secret_key\")\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\ntry\n{\n    PaymentLinkDetailsResponse response = await api.PaymentLinksClient().Get(\"payment_link_id\");\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nresponse, err := api.Links.GetPaymentLink(\"request_id\")\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\nimport com.checkout.payments.links.PaymentLinkDetailsResponse;\n\n// API Keys\nCheckoutApi api = CheckoutSdk.builder()\n    .staticKeys()\n    .secretKey(\"secret_key\")\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\ntry {\n    PaymentLinkDetailsResponse response = api.paymentLinksClient().getPaymentLink(\"payment_link_id\").get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Environment;\n\n$api = CheckoutSdk::builder()->staticKeys()\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->secretKey(\"secret_key\")\n    ->build();\n\ntry {\n    $response = $api->getPaymentLinksClient()->getPaymentLink(\"payment_link_id\");\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\n\n# API Key\napi_key = (\n    CheckoutSdk.builder() \n    .secret_key('secret_key') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .build()\n)\n\ntry:\n    response = api.payments_links.get_payment_link('payment_link_id')\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n    # Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n    # Invalid authorization"
          }
        ]
      }
    },
    "/payment-methods": {
      "get": {
        "tags": [
          "Payment Methods"
        ],
        "summary": "Get available payment methods",
        "description": "<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>\nGet a list of all available payment methods for a specific Processing Channel ID.\n",
        "operationId": "getPaymentMethods",
        "parameters": [
          {
            "name": "processing_channel_id",
            "in": "query",
            "required": true,
            "schema": {
              "pattern": "^(pc)_(\\w{26})$",
              "type": "string",
              "description": "The processing channel to be used for payment methods retrieval.",
              "example": "pc_q4dbxom5jbgudnjzjpz7j2z6uq"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Enabled payment methods retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentMethodsResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Processing channel not found"
          }
        },
        "security": [
          {
            "OAuth": [
              "gateway"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      }
    },
    "/payment-sessions": {
      "post": {
        "tags": [
          "Flow"
        ],
        "summary": "Request a Payment Session",
        "description": "Creates a payment session.\n\nThe 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.\n\nYou 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>.\n",
        "operationId": "CreatePaymentSession",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePaymentSessionsRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "A Payment Session.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreatePaymentSessionsResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (Empty Response)."
          },
          "422": {
            "description": "Invalid data was sent.",
            "content": {
              "application/problem+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentSessionsValidationErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too many requests.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentSessionsRateLimitedResponse"
                }
              }
            }
          },
          "502": {
            "description": "Bad gateway."
          }
        },
        "security": [
          {
            "OAuth": [
              "gateway:payment",
              "payment-sessions"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      }
    },
    "/payment-sessions/{id}/submit": {
      "post": {
        "tags": [
          "Flow"
        ],
        "summary": "Submit a Payment Session",
        "description": "Submit a payment attempt for a payment session.\n\nThis 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>.\nYou must send the unmodified response body as the response of the `handleSubmit` callback.\n",
        "operationId": "SubmitPaymentSession",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The Payment Sessions unique identifier",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/PaymentSessionId"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitPaymentSessionsRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Payment processed successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubmitPaymentSessionsProcessedResponse"
                },
                "examples": {
                  "Approved": {
                    "value": {
                      "id": "pay_mbabizu24mvu3mela5njyhpit4",
                      "status": "Approved",
                      "type": "card"
                    }
                  },
                  "Declined": {
                    "value": {
                      "id": "pay_mbabizu24mvu3mela5njyhpit4",
                      "status": "Declined",
                      "type": "card",
                      "decline_reason": "insufficient_funds"
                    }
                  }
                }
              }
            }
          },
          "202": {
            "description": "Payment asynchronous or further action required.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubmitPaymentSessionsActionRequiredResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (Empty Response)."
          },
          "422": {
            "description": "Invalid data was sent.",
            "content": {
              "application/problem+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentSessionsValidationErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too many requests or duplicate request detected.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentSessionsRateLimitedResponse"
                }
              }
            }
          },
          "502": {
            "description": "Bad gateway."
          }
        },
        "security": [
          {
            "OAuth": [
              "gateway:payment",
              "payment-sessions"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      }
    },
    "/payment-sessions/complete": {
      "post": {
        "tags": [
          "Flow"
        ],
        "summary": "Request a Payment Session with Payment",
        "description": "Create a payment session and submit a payment attempt for it.\n\nThe 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.\n\nThis 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.\n",
        "operationId": "CreateAndSubmitPaymentSession",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateAndSubmitPaymentSessionsRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Payment processed successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateAndSubmitPaymentSessionsProcessedResponse"
                },
                "examples": {
                  "Approved": {
                    "value": {
                      "id": "pay_mbabizu24mvu3mela5njyhpit4",
                      "status": "Approved",
                      "type": "card",
                      "payment_session_id": "ps_2Un6I6lRpIAiIEwQIyxWVnV9CqQ",
                      "payment_session_secret": "pss_9823241e-2cec-4c98-b23d-7b29ow4e2e34"
                    }
                  },
                  "Declined": {
                    "value": {
                      "id": "pay_mbabizu24mvu3mela5njyhpit4",
                      "status": "Declined",
                      "type": "card",
                      "decline_reason": "insufficient_funds"
                    }
                  }
                }
              }
            }
          },
          "202": {
            "description": "Payment asynchronous or further action required.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateAndSubmitPaymentSessionsActionRequiredResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized (Empty Response)."
          },
          "422": {
            "description": "Invalid data was sent.",
            "content": {
              "application/problem+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentSessionsValidationErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too many requests or duplicate request detected.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentSessionsRateLimitedResponse"
                }
              }
            }
          },
          "502": {
            "description": "Bad gateway."
          }
        },
        "security": [
          {
            "OAuth": [
              "gateway:payment",
              "payment-sessions"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      }
    },
    "/payments": {
      "post": {
        "tags": [
          "Payments"
        ],
        "summary": "Request a payment or payout",
        "description": "Send a payment or payout.<br><br><b>Note</b>: successful payout requests will always return a 202 response.\n",
        "operationId": "requestAPaymentOrPayout",
        "parameters": [
          {
            "$ref": "#/components/parameters/ckoIdempotencyKey"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/PaymentRequest"
                  },
                  {
                    "$ref": "#/components/schemas/PaymentContextPaymentRequest"
                  },
                  {
                    "$ref": "#/components/schemas/CardPayoutRequest"
                  },
                  {
                    "$ref": "#/components/schemas/BankPayoutRequest"
                  },
                  {
                    "$ref": "#/components/schemas/UnreferencedRefundRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Payment processed successfully",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentResponse"
                },
                "examples": {
                  "PaymentResponse": {
                    "value": {
                      "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:12.0000000+00:00",
                      "reference": "ORD-5023-4E89",
                      "processing": {
                        "retrieval_reference_number": 909913440644,
                        "acquirer_transaction_id": 4.406443090994999E+20,
                        "recommendation_code": 2,
                        "partner_order_id": "5GK24544NA744002L",
                        "scheme_merchant_id": 123456
                      },
                      "eci": 6,
                      "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": {
            "description": "Payment asynchronous or further action required",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/PaymentAcceptedResponse"
                    },
                    {
                      "$ref": "#/components/schemas/PaymentContextPaymentResponse"
                    },
                    {
                      "$ref": "#/components/schemas/BankPayoutAcceptedResponse"
                    },
                    {
                      "$ref": "#/components/schemas/CardPayoutAcceptedResponse"
                    },
                    {
                      "$ref": "#/components/schemas/UnreferencedRefundAcceptedResponse"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "429": {
            "description": "Too many requests or duplicate request detected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "request_id": {
                      "type": "string",
                      "example": "0HL80RJLS76I7"
                    },
                    "error_type": {
                      "type": "string",
                      "example": "request_invalid"
                    },
                    "error_codes": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "example": "duplicate_request"
                      }
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            }
          },
          "502": {
            "description": "Bad gateway"
          }
        },
        "security": [
          {
            "OAuth": [
              "gateway",
              "gateway:payment"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\nusing Checkout.Common;\nusing Checkout.Payments;\nusing Checkout.Payments.Request;\nusing Checkout.Payments.Request.Source;\nusing Checkout.Payments.Response;\n\n//API keys\nICheckoutApi api = CheckoutSdk.Builder().StaticKeys()\n    .SecretKey(\"secret_key\")\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\n//OAuth\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.Gateway)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\nPaymentRequest request = new PaymentRequest\n{\n    Source = new RequestTokenSource {Token = \"tok_4gzeau5o2uqubbk6fufs3m7p54\"},\n    Amount = 10,\n    Currency = Currency.USD,\n    PaymentType = PaymentType.Recurring,\n    Reference = \"reference\",\n    Description = \"Set of 3 masks\",\n    Capture = true,\n    CaptureOn = new DateTime(),\n    Customer =\n        new CustomerRequest\n        {\n            Id = \"cus_udst2tfldj6upmye2reztkmm4i\",\n            Email = \"email@docs.checkout.com\",\n            Name = \"FirstName LastName\"\n        },\n    BillingDescriptor = new BillingDescriptor {Name = \"SUPERHEROES.COM\", City = \"GOTHAM\"},\n    Shipping =\n        new ShippingDetails\n        {\n            Address = new Address\n            {\n                AddressLine1 = \"123 High St.\",\n                AddressLine2 = \"Flat 456\",\n                City = \"London\",\n                State = \"GB\",\n                Zip = \"SW1A 1AA\",\n                Country = CountryCode.GB\n            },\n            Phone = new Phone {Number = \"4155552671\", CountryCode = \"1\"}\n        },\n    ThreeDs =\n        new ThreeDsRequest\n        {\n            Enabled = true,\n            AttemptN3D = true,\n            Eci = \"05\",\n            Cryptogram = \"AgAAAAAAAIR8CQrXcIhbQAAAAAA=\",\n            Xid = \"MDAwMDAwMDAwMDAwMDAwMzIyNzY=\",\n            Version = \"2.0.1\"\n        },\n    PreviousPaymentId = \"pay_fun26akvvjjerahhctaq2uzhu4\",\n    Risk = new RiskRequest {Enabled = false},\n    SuccessUrl = \"https://example.com/payments/success\",\n    FailureUrl = \"https://example.com/payments/failure\",\n    PaymentIp = \"192.168.0.1\",\n    Recipient = new PaymentRecipient\n    {\n        DateOfBirth = \"1985-05-15\", AccountNumber = \"5555554444\", Zip = \"SW1A\", LastName = \"LastName\",\n    },\n    Metadata = new Dictionary<string, object> {{\"coupon_code\", \"NY2018\"}, {\"partner_id\", 123989}}\n};\n\ntry\n{\n    PaymentResponse response = await api.PaymentsClient().RequestPayment(request);\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/common\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n\t\"github.com/checkout/checkout-sdk-go/payments\"\n\t\"github.com/checkout/checkout-sdk-go/payments/nas\"\n\t\"github.com/checkout/checkout-sdk-go/payments/nas/sessions\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Gateway, configuration.GatewayPayment}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nsource := sources.NewRequestCardSource()\nsource.Number = \"123456789\"\nsource.ExpiryMonth = 10\nsource.ExpiryYear = 2027\nsource.Cvv = \"123\"\nsource.Stored = false\n\nsender := nas.NewRequestIndividualSender()\nsender.FirstName = \"FirstName\"\nsender.LastName = \"LastName\"\nsender.Address = &common.Address{\n\tAddressLine1: \"123 High St.\",\n\tAddressLine2: \"Flat 456\",\n\tCity:         \"London\",\n\tState:        \"GB\",\n\tZip:          \"SW1A 1AA\",\n\tCountry:      common.GB,\n}\nsender.Identification = &nas.Identification{\n\tType:           nas.DrivingLicence,\n\tNumber:         \"1234\",\n\tIssuingCountry: common.GB,\n}\n\nrequest := nas.PaymentRequest{\n\tSource:              source,\n\tAmount:              10,\n\tCurrency:            common.GBP,\n\tReference:           \"reference\",\n\tCapture:             false,\n\tThreeDsRequest:      &payments.ThreeDsRequest{\n\t\tEnabled:               true,\n\t\tChallengeIndicator:    common.NoChallengeRequested,\n\t},\n\tProcessingChannelId: \"processing_channel_id\",\n\tSuccessUrl:          \"https://docs.checkout.com/success\",\n\tFailureUrl:          \"https://docs.checkout.com/failure\",\n\tSender:              sender,\n}\n\nresponse, err := api.Payments.RequestPayment(request, nil) // or \"RequestPayout(request PayoutRequest, idempotencyKey *string)\"\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\nimport com.checkout.common.AccountHolderIdentification;\nimport com.checkout.common.AccountHolderIdentificationType;\nimport com.checkout.common.Address;\nimport com.checkout.common.ChallengeIndicator;\nimport com.checkout.common.CountryCode;\nimport com.checkout.common.Currency;\nimport com.checkout.payments.ThreeDSRequest;\nimport com.checkout.payments.request.PaymentRequest;\nimport com.checkout.payments.request.source.RequestCardSource;\nimport com.checkout.payments.response.PaymentResponse;\nimport com.checkout.payments.sender.PaymentIndividualSender;\n\n// API Keys\nCheckoutApi api = CheckoutSdk.builder()\n    .staticKeys()\n    .secretKey(\"secret_key\")\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\n// OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.GATEWAY) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\nRequestCardSource source = RequestCardSource.builder()\n    .number(\"123456789\")\n    .expiryMonth(10)\n    .expiryYear(2027)\n    .cvv(\"123\")\n    .stored(false)\n    .build();\n\nPaymentIndividualSender sender = PaymentIndividualSender.builder()\n    .firstName(\"FirstName\")\n    .lastName(\"LastName\")\n    .address(Address.builder()\n        .addressLine1(\"123 High St.\")\n        .addressLine2(\"Flat 456\")\n        .city(\"London\")\n        .state(\"GB\")\n        .zip(\"SW1A 1AA\")\n        .country(CountryCode.GB)\n        .build())\n    .identification(AccountHolderIdentification.builder()\n        .type(AccountHolderIdentificationType.DRIVING_LICENCE)\n        .number(\"1234\")\n        .issuingCountry(CountryCode.GB)\n        .build())\n    .build();\n\nThreeDSRequest threeDSRequest = ThreeDSRequest.builder()\n    .enabled(true)\n    .challengeIndicator(ChallengeIndicator.NO_CHALLENGE_REQUESTED)\n    .build();\n\nPaymentRequest request = PaymentRequest.builder()\n    .source(source)\n    .sender(sender)\n    .capture(false)\n    .reference(\"reference\")\n    .amount(10L)\n    .currency(Currency.GBP)\n    .threeDS(threeDSRequest)\n    .successUrl(\"https://docs.checkout.com/success\")\n    .failureUrl(\"https://docs.checkout.com/failure\")\n    .build();\n\ntry {\n    PaymentResponse response = api.paymentsClient().requestPayment(request).get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "Node",
            "source": "import { Checkout } from 'checkout-sdk-node';\n\nlet cko = new Checkout('your_client_secret_here', {\n\tclient: 'ack_XXXXXXXXXXXX',\n\tscope: ['gateway'], // array of scopes\n\tenvironment: 'sandbox', // or \"production\"\n        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\"\n});\n\n// Or if you use api keys:\n// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});\n\ntry {\n\tconst payment = await cko.payments.request({\n\t\tsource: {\n\t\t\t// inferred type: \"token\"\n\t\t\ttoken: 'tok_bzi43qc6jeee5mmnfo4gnsnera', // Generated by Checkout.Frames\n\t\t\tbilling_address: {\n\t\t\t\taddress_line1: '123 High St.',\n\t\t\t\taddress_line2: 'Flat 456',\n\t\t\t\tcity: 'London',\n\t\t\t\tstate: 'GB',\n\t\t\t\tzip: 'W1W W1W',\n\t\t\t\tcountry: 'GB',\n\t\t\t},\n\t\t\tphone: {\n\t\t\t\tcountry_code: '44',\n\t\t\t\tnumber: '7123456789',\n\t\t\t},\n\t\t},\n\t\tcurrency: 'USD',\n\t\tamount: 1000,\n\t\tpayment_type: 'Regular',\n\t\treference: 'ORDER 1234',\n\t\tdescription: 'Mint Tea',\n\t\tcustomer: {\n\t\t\temail: 'new_user@email.com',\n\t\t\tname: 'John Smith',\n\t\t},\n\t\tmetadata: {\n\t\t\tvalue: 'My value',\n\t\t},\n\t});\n} catch (err) {\n\tconsole.log(err.name);\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Common\\Address;\nuse Checkout\\Common\\Country;\nuse Checkout\\Common\\Currency;\nuse Checkout\\Common\\CustomerRequest;\nuse Checkout\\Common\\Phone;\nuse Checkout\\Environment;\nuse Checkout\\OAuthScope;\nuse Checkout\\Payments\\Request\\PaymentRequest;\nuse Checkout\\Payments\\Request\\Source\\RequestCardSource;\nuse Checkout\\Payments\\Sender\\Identification;\nuse Checkout\\Payments\\Sender\\IdentificationType;\nuse Checkout\\Payments\\Sender\\PaymentIndividualSender;\n\n//API Keys\n$api = CheckoutSdk::builder()->staticKeys()\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->secretKey(\"secret_key\")\n    ->build();\n\n//OAuth\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Gateway])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\n$phone = new Phone();\n$phone->country_code = \"+1\";\n$phone->number = \"415 555 2671\";\n\n$address = new Address();\n$address->address_line1 = \"123 High St.\";\n$address->address_line2 = \"Flat 456\";\n$address->city = \"London\";\n$address->State = \"GB\";\n$address->zip = \"SW1A 1AA\";\n$address->country = Country::$GB;\n\n$requestCardSource = new RequestCardSource();\n$requestCardSource->name = \"Name\";\n$requestCardSource->number = \"Number\";\n$requestCardSource->expiry_year = 2026;\n$requestCardSource->expiry_month = 10;\n$requestCardSource->cvv = \"123\";\n$requestCardSource->billing_address = $address;\n$requestCardSource->phone = $phone;\n\n$customerRequest = new CustomerRequest();\n$customerRequest->email = \"email@docs.checkout.com\";\n$customerRequest->name = \"Customer\";\n\n$identification = new Identification();\n$identification->issuing_country = Country::$GT;\n$identification->number = \"1234\";\n$identification->type = IdentificationType::$drivingLicence;\n\n$paymentIndividualSender = new PaymentIndividualSender();\n$paymentIndividualSender->fist_name = \"FirstName\";\n$paymentIndividualSender->last_name = \"LastName\";\n$paymentIndividualSender->address = $address;\n$paymentIndividualSender->identification = $identification;\n\n$request = new PaymentRequest();\n$request->source = $requestCardSource;\n$request->capture = true;\n$request->reference = \"reference\";\n$request->amount = 10;\n$request->currency = Currency::$USD;\n$request->customer = $customerRequest;\n$request->sender = $paymentIndividualSender;\n\ntry {\n    $response = $api->getPaymentsClient()->requestPayment($request);\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.common.common import Phone, Address, CustomerRequest\nfrom checkout_sdk.common.enums import Country, Currency\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\nfrom checkout_sdk.payments.payments import PaymentRequestCardSource, Identification, IdentificationType, \n                                        PaymentIndividualSender, PaymentRequest\n\n# API Key\napi_key = (\n    CheckoutSdk.builder() \n    .secret_key('secret_key') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .build()\n)\n\n# OAuth\noauth = (\n    CheckoutSdk.builder() \n    .oauth() \n    .client_credentials('client_id', 'client_secret') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.GATEWAY]) \n    .build()\n)\n\nphone = Phone()\nphone.country_code = '44'\nphone.number = '4155552671'\n\naddress = Address()\naddress.address_line1 = '123 High St.'\naddress.address_line2 = 'Flat 456'\naddress.city = 'London'\naddress.state = 'GB'\naddress.zip = 'SW1A 1AA'\naddress.country = Country.GB\n\nrequest_card_source = PaymentRequestCardSource()\nrequest_card_source.number = 'number'\nrequest_card_source.expiry_month = 10\nrequest_card_source.expiry_year = 2027\nrequest_card_source.cvv = 123\nrequest_card_source.name = 'Name'\nrequest_card_source.billing_address = address\nrequest_card_source.phone = phone\n\ncustomer_request = CustomerRequest()\ncustomer_request.email = 'email@docs.checkout.com'\ncustomer_request.name = 'Name'\n\nidentification = Identification()\nidentification.issuing_country = Country.GT\nidentification.number = '1234'\nidentification.type = IdentificationType.DRIVING_LICENSE\n\npayment_individual_sender = PaymentIndividualSender()\npayment_individual_sender.first_name = 'First'\npayment_individual_sender.last_name = 'Last'\npayment_individual_sender.address = address\npayment_individual_sender.identification = identification\n\nrequest = PaymentRequest()\nrequest.source = request_card_source\nrequest.reference = 'reference'\nrequest.amount = 10\nrequest.currency = Currency.USD\nrequest.capture = False\nrequest.customer = customer_request\nrequest.sender = payment_individual_sender\n\ntry:\n    response = api.payments.request_payment(request)\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n# Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n# Invalid authorization"
          }
        ]
      },
      "get": {
        "tags": [
          "Payments"
        ],
        "summary": "Get payment lists",
        "description": "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.\n\nThis 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.\n",
        "operationId": "getPaymentsList",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "description": "The numbers of results to retrieve",
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer",
              "format": "int32",
              "default": 10
            }
          },
          {
            "name": "skip",
            "in": "query",
            "description": "The number of results to skip",
            "schema": {
              "maximum": 999999999,
              "minimum": 0,
              "type": "integer",
              "format": "int64",
              "default": 0
            }
          },
          {
            "name": "reference",
            "in": "query",
            "description": "A reference, such as an order ID, that can be used to identify the payment",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Payments retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentPaged"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Payment not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable paging",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagingError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth": [
              "gateway",
              "gateway:payment-details"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n\t\"github.com/checkout/checkout-sdk-go/payments\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Gateway, configuration.GatewayPayment}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nquery := payments.QueryRequest{\n\tLimit:     10,\n\tSkip:      0,\n\tReference: \"reference\",\n}\n\nresponse, err := api.Payments.RequestPaymentList(query)\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          }
        ]
      }
    },
    "/payments/{id}": {
      "get": {
        "tags": [
          "Payments"
        ],
        "summary": "Get payment details",
        "description": "Returns the details of the payment with the specified identifier string.\n\nIf the payment method requires a redirection to a third party (e.g., 3D Secure),\nthe redirect URL back to your site will include a `cko-session-id` query parameter\ncontaining a payment session ID that can be used to obtain the details of the payment, for example:\n\nhttps://example.com/success?cko-session-id=sid_ubfj2q76miwundwlk72vxt2i7q.\n",
        "operationId": "getPaymentDetails",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The payment or payment session identifier",
            "required": true,
            "schema": {
              "pattern": "^(pay|sid)_(\\w{26})$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Payment retrieved successfully",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/PaymentDetails"
                    },
                    {
                      "$ref": "#/components/schemas/PayoutDetails"
                    },
                    {
                      "$ref": "#/components/schemas/CardPayoutDetails"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Payment not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests"
          }
        },
        "security": [
          {
            "OAuth": [
              "gateway",
              "gateway:payment-details"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\nusing Checkout.Payments.Response;\n\n//API keys\nICheckoutApi api = CheckoutSdk.Builder().StaticKeys()\n    .SecretKey(\"secret_key\")\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\n//OAuth\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.Gateway)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\ntry\n{\n    GetPaymentResponse response = await api.PaymentsClient().GetPaymentDetails(\"payment_id\");\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Gateway, configuration.GatewayPayment}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nresponse, err := api.Payments.GetPaymentDetails(\"payment_id\")\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\nimport com.checkout.payments.response.GetPaymentResponse;\n\n// API Keys\nCheckoutApi api = CheckoutSdk.builder()\n    .staticKeys()\n    .secretKey(\"secret_key\")\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\n// OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.GATEWAY) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\ntry {\n    GetPaymentResponse response = api.paymentsClient().getPayment(\"payment_id\").get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "Node",
            "source": "import { Checkout } from 'checkout-sdk-node';\n\nlet cko = new Checkout('your_client_secret_here', {\n\tclient: 'ack_XXXXXXXXXXXX',\n\tscope: ['gateway'], // array of scopes\n\tenvironment: 'sandbox', // or \"production\"\n        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\"\n});\n\n// Or if you use api keys:\n// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});\n\ntry {\n\tconst payment = await cko.payments.get('pay_je5hbbb4u3oe7k4u3lbwlu3zkq');\n} catch (err) {\n\tconsole.log(err.name);\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Environment;\nuse Checkout\\OAuthScope;\n\n//API Keys\n$api = CheckoutSdk::builder()->staticKeys()\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->secretKey(\"secret_key\")\n    ->build();\n\n//OAuth\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Gateway])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\ntry {\n    $response = $api->getPaymentsClient()->getPaymentDetails(\"payment_id\");\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\n\n# API Key\napi_key = (\n    CheckoutSdk.builder() \n    .secret_key('secret_key') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .build()\n)\n\n# OAuth\noauth = (\n    CheckoutSdk.builder() \n    .oauth() \n    .client_credentials('client_id', 'client_secret') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.GATEWAY]) \n    .build()\n)\n\ntry:\n    response = api.payments.get_payment_details('payment_id')\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n    # Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n    # Invalid authorization"
          }
        ]
      }
    },
    "/payments/{id}/actions": {
      "get": {
        "tags": [
          "Payments"
        ],
        "summary": "Get payment actions",
        "description": "Returns all the actions associated with a payment ordered by processing date in descending order (latest first).\n",
        "operationId": "getPaymentActions",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The payment identifier",
            "required": true,
            "schema": {
              "pattern": "^(pay)_(\\w{26})$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Payment actions retrieved successfully",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/PaymentActionsResponse"
                    },
                    {
                      "$ref": "#/components/schemas/CardPayoutActionsResponse"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Payment not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests"
          }
        },
        "security": [
          {
            "OAuth": [
              "gateway",
              "gateway:payment-details"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\nusing Checkout.Payments;\n\n//API keys\nICheckoutApi api = CheckoutSdk.Builder().StaticKeys()\n    .SecretKey(\"secret_key\")\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\n//OAuth\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.Gateway)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\ntry\n{\n    ItemsResponse<PaymentAction> response = await api.PaymentsClient().GetPaymentActions(\"payment_id\");\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Gateway, configuration.GatewayPayment}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nresponse, err := api.Payments.GetPaymentActions(\"payment_id\")\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.Environment;\nimport com.checkout.ItemsResponse;\nimport com.checkout.OAuthScope;\nimport com.checkout.payments.PaymentAction;\n\n// API Keys\nCheckoutApi api = CheckoutSdk.builder()\n    .staticKeys()\n    .secretKey(\"secret_key\")\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\n// OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.GATEWAY) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\ntry {\n    ItemsResponse<PaymentAction> response = api.paymentsClient().getPaymentActions(\"payment_id\").get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "Node",
            "source": "import { Checkout } from 'checkout-sdk-node';\n\nlet cko = new Checkout('your_client_secret_here', {\n\tclient: 'ack_XXXXXXXXXXXX',\n\tscope: ['gateway'], // array of scopes\n\tenvironment: 'sandbox', // or \"production\"\n        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\"\n});\n\n// Or if you use api keys:\n// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});\n\ntry {\n\tconst payment = await cko.payments.getActions('pay_je5hbbb4u3oe7k4u3lbwlu3zkq');\n} catch (err) {\n\tconsole.log(err.name);\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Environment;\nuse Checkout\\OAuthScope;\n\n//API Keys\n$api = CheckoutSdk::builder()->staticKeys()\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->secretKey(\"secret_key\")\n    ->build();\n\n//OAuth\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Gateway])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\ntry {\n    $response = $api->getPaymentsClient()->getPaymentActions(\"payment_id\");\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\n\n# API Key\napi_key = (\n    CheckoutSdk.builder() \n    .secret_key('secret_key') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .build()\n)\n\n# OAuth\noauth = (\n    CheckoutSdk.builder() \n    .oauth() \n    .client_credentials('client_id', 'client_secret') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.GATEWAY, OAuthScopes.GATEWAY_PAYMENT_DETAILS]) \n    .build()\n)\n\ntry:\n    response = api.payments.get_payment_actions('payment_id')\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n    # Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n    # Invalid authorization"
          }
        ]
      }
    },
    "/payments/{id}/authorizations": {
      "post": {
        "tags": [
          "Payments"
        ],
        "summary": "Increment authorization",
        "description": "Request an incremental authorization to increase the authorization amount or extend the authorization's validity period.\n",
        "operationId": "incrementPaymentAuthorization",
        "parameters": [
          {
            "$ref": "#/components/parameters/ckoIdempotencyKey"
          },
          {
            "name": "id",
            "in": "path",
            "description": "The payment identifier",
            "required": true,
            "schema": {
              "pattern": "^(pay)_(\\w{26})$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthorizationRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Authorization processed successfully",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthorizationResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Incremental authorization not allowed"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            }
          },
          "404": {
            "description": "Payment not found"
          },
          "502": {
            "description": "Bad gateway"
          }
        },
        "security": [
          {
            "OAuth": [
              "gateway",
              "gateway:payment-authorizations"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\nusing Checkout.Payments.Request;\nusing Checkout.Payments.Response;\n\n//API keys\nICheckoutApi api = CheckoutSdk.Builder().StaticKeys()\n    .SecretKey(\"secret_key\")\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\n//OAuth\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.Gateway)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\nAuthorizationRequest authorizationRequest = new AuthorizationRequest\n{\n    Amount = 100, Reference = \"payment_reference\"\n};\n\ntry\n{\n    // Optional: idempotencyKey as a third parameter for idempotent requests\n    AuthorizationResponse response = await api.PaymentsClient().IncrementPaymentAuthorization(\"payment_id\", authorizationRequest);\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\nimport com.checkout.payments.request.AuthorizationRequest;\nimport com.checkout.payments.response.AuthorizationResponse;\n\n// API Keys\nCheckoutApi api = CheckoutSdk.builder()\n    .staticKeys()\n    .secretKey(\"secret_key\")\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\n// OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.GATEWAY) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\nAuthorizationRequest authorizationRequest = AuthorizationRequest.builder()\n    .amount(100L)\n    .reference(\"reference\")\n    .build();\n\ntry {\n    // Optional: idempotencyKey as a third parameter for idempotent requests\n    AuthorizationResponse response = api.paymentsClient().incrementPaymentAuthorization(\"payment_id\", authorizationRequest).get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "Node",
            "source": "import { Checkout } from 'checkout-sdk-node';\n\nlet cko = new Checkout('your_client_secret_here', {\n\tclient: 'ack_XXXXXXXXXXXX',\n\tscope: ['gateway'], // array of scopes\n\tenvironment: 'sandbox', // or \"production\"\n        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\"\n});\n\n// Or if you use api keys:\n// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});\n\ntry {\n\tconst increment = await cko.payments.increment('pay_bvxdyo7xdssuhcx3e74dpcrfmu', {\n\t\tamount: 200,\n\t});\n} catch (err) {\n\tconsole.log(err.name);\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Environment;\nuse Checkout\\OAuthScope;\nuse Checkout\\Payments\\AuthorizationRequest;\n\n//API Keys\n$api = CheckoutSdk::builder()->staticKeys()\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->secretKey(\"secret_key\")\n    ->build();\n\n//OAuth\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Gateway])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\n$request = new AuthorizationRequest();\n$request->amount = 10;\n$request->reference = \"reference\";\n$request->metadata = array(\"param1\" => \"value1\", \"param2\" => \"value2\");\n\ntry {\n    // Optional: idempotencyKey as a third parameter for idempotent requests\n    $response = $api->getPaymentsClient()->incrementPaymentAuthorization(\"payment_id\", $request);\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\nfrom checkout_sdk.payments.payments import AuthorizationRequest\n\n# API Key\napi_key = (\n    CheckoutSdk.builder() \n    .secret_key('secret_key') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .build()\n)\n\n# OAuth\noauth = (\n    CheckoutSdk.builder() \n    .oauth() \n    .client_credentials('client_id', 'client_secret') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.GATEWAY]) \n    .build()\n)\n\nrequest = AuthorizationRequest()\nrequest.amount = 10\nrequest.reference = 'reference'\n\ntry:\n    # Optional: idempotencyKey as a third parameter for idempotent requests\n    response = api.payments.increment_payment_authorization('payment_id', request)\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n# Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n# Invalid authorization"
          }
        ]
      }
    },
    "/payments/{id}/cancellations": {
      "post": {
        "tags": [
          "Payments"
        ],
        "summary": "Cancel a scheduled retry",
        "description": "Cancels an upcoming retry, if there is one scheduled\n\nCancellation requests are processed asynchronously. You can use [workflows](#tag/Workflows) to be notified if the cancellation is successful.\n",
        "operationId": "cancelAPayment",
        "parameters": [
          {
            "$ref": "#/components/parameters/ckoIdempotencyKey"
          },
          {
            "name": "id",
            "in": "path",
            "description": "The unique payment identifier.",
            "required": true,
            "schema": {
              "pattern": "^(pay)_(\\w{26})$",
              "type": "string"
            },
            "example": "pay_mbabizu24mvu3mela5njyhpit4"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CancellationRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Cancellation accepted",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CancellationAcceptedResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "422": {
            "description": "Invalid data sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            }
          },
          "403": {
            "description": "Cancellation not allowed"
          },
          "404": {
            "description": "Payment not found"
          },
          "429": {
            "description": "Too Many Requests"
          },
          "502": {
            "description": "Bad gateway"
          }
        },
        "security": [
          {
            "OAuth": [
              "gateway",
              "gateway:payment-cancellations"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      }
    },
    "/payments/{id}/captures": {
      "post": {
        "tags": [
          "Payments"
        ],
        "summary": "Capture a payment",
        "description": "Captures a payment if supported by the payment method.\n\nFor card payments, capture requests are processed asynchronously. You can use [workflows](#tag/Workflows) to be notified if the capture is successful.\n",
        "operationId": "captureAPayment",
        "parameters": [
          {
            "$ref": "#/components/parameters/ckoIdempotencyKey"
          },
          {
            "name": "id",
            "in": "path",
            "description": "The payment identifier",
            "required": true,
            "schema": {
              "pattern": "^(pay)_(\\w{26})$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CaptureRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Capture accepted",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CaptureAcceptedResponse"
                }
              }
            }
          },
          "200": {
            "description": "Payment is already captured",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/IdempotentActionResponse"
                    },
                    {
                      "type": "object"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Capture not allowed"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            }
          },
          "404": {
            "description": "Payment not found"
          },
          "502": {
            "description": "Bad gateway"
          }
        },
        "security": [
          {
            "OAuth": [
              "gateway",
              "gateway:payment-captures"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\nusing Checkout.Payments;\n\n//API keys\nICheckoutApi api = CheckoutSdk.Builder().StaticKeys()\n    .SecretKey(\"secret_key\")\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\n//OAuth\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.Gateway)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\nCaptureRequest request = new CaptureRequest\n{\n    Amount = 10,\n    Reference = \"reference\",\n    Metadata = new Dictionary<string, object>() {{\"coupon_code\", \"NY2018\"}, {\"partner_id\", \"123989\"}}\n};\n\ntry\n{\n    CaptureResponse response = await api.PaymentsClient().CapturePayment(\"payment_id\", request);\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n\t\"github.com/checkout/checkout-sdk-go/payments/nas\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Gateway, configuration.GatewayPayment}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nrequest := nas.CaptureRequest{\n\tAmount:    10,\n\tReference: \"partial capture\",\n\tMetadata: map[string]interface{}{},\n}\n\nresponse, err := api.Payments.CapturePayment(\"payment_id\", request, nil)\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\nimport com.checkout.payments.CaptureRequest;\nimport com.checkout.payments.CaptureResponse;\n\n// API Keys\nCheckoutApi api = CheckoutSdk.builder()\n    .staticKeys()\n    .secretKey(\"secret_key\")\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\n// OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.GATEWAY) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\nCaptureRequest captureRequest = CaptureRequest.builder()\n    .amount(10L)\n    .reference(\"partial capture\")\n    .metadata(new HashMap<>())\n    .build();\n\ntry {\n    // or, capturePayment(\"payment_id\") for a full capture\n    CaptureResponse response = api.paymentsClient().capturePayment(\"payment_id\", captureRequest).get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}\n\n"
          },
          {
            "lang": "Node",
            "source": "import { Checkout } from 'checkout-sdk-node';\n\nlet cko = new Checkout('your_client_secret_here', {\n\tclient: 'ack_XXXXXXXXXXXX',\n\tscope: ['gateway'], // array of scopes\n\tenvironment: 'sandbox', // or \"production\"\n        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\"\n});\n\n// Or if you use api keys:\n// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});\n\ntry {\n\tconst payment = await cko.payments.capture('pay_je5hbbb4u3oe7k4u3lbwlu3zkq', {\n\t\tamount: 1000,\n\t\treference: 'CAPTURE ORDER 1234',\n\t\tmetadata: {\n\t\t\tvalue: 'my value',\n\t\t},\n\t});\n} catch (err) {\n\tconsole.log(err.name);\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Environment;\nuse Checkout\\OAuthScope;\nuse Checkout\\Payments\\CaptureRequest;\n\n//API Keys\n$api = CheckoutSdk::builder()->staticKeys()\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->secretKey(\"secret_key\")\n    ->build();\n\n//OAuth\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Gateway])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\n$request = new CaptureRequest();\n$request->reference = \"partial capture\";\n$request->amount = 5;\n\ntry {\n    // or, capturePayment(\"payment_id\") for a full capture\n    $response = $api->getPaymentsClient()->capturePayment(\"payment_id\", $request);\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\nfrom checkout_sdk.payments.payments import CaptureRequest\n\n# API Key\napi_key = (\n    CheckoutSdk.builder() \n    .secret_key('secret_key') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .build()\n)\n\n# OAuth\noauth = (\n    CheckoutSdk.builder() \n    .oauth() \n    .client_credentials('client_id', 'client_secret') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.GATEWAY]) \n    .build()\n)\n\nrequest = CaptureRequest()\nrequest.reference = 'reference'\nrequest.amount = 10\n\ntry:\n    # or, capture_payment('payment_id') for a full capture\n    response = api.payments.capture_payment('payment_id', request)\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n# Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n# Invalid authorization\n\n"
          }
        ]
      }
    },
    "/payments/{id}/refunds": {
      "post": {
        "tags": [
          "Payments"
        ],
        "summary": "Refund a payment",
        "description": "Refunds a payment if supported by the payment method.\n\nFor card payments, refund requests are processed asynchronously. You can use [workflows](#tag/Workflows) to be notified if the refund is successful.\n",
        "operationId": "refundAPayment",
        "parameters": [
          {
            "$ref": "#/components/parameters/ckoIdempotencyKey"
          },
          {
            "name": "id",
            "in": "path",
            "description": "The payment identifier",
            "required": true,
            "schema": {
              "pattern": "^(pay)_(\\w{26})$",
              "type": "string"
            },
            "example": "pay_mbabizu24mvu3mela5njyhpit4"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RefundRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Refund accepted",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RefundAcceptedResponse"
                }
              }
            }
          },
          "200": {
            "description": "Payment is already refunded",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/IdempotentActionResponse"
                    },
                    {
                      "type": "object"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            }
          },
          "403": {
            "description": "Refund not allowed"
          },
          "404": {
            "description": "Payment not found"
          },
          "429": {
            "description": "Too Many Requests"
          },
          "502": {
            "description": "Bad gateway"
          }
        },
        "security": [
          {
            "OAuth": [
              "gateway",
              "gateway:payment-refunds"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\nusing Checkout.Payments;\n\n//API keys\nICheckoutApi api = CheckoutSdk.Builder().StaticKeys()\n    .SecretKey(\"secret_key\")\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\n//OAuth\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.Gateway)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\nRefundRequest request = new RefundRequest()\n{\n    Amount = 10,\n    Reference = \"reference\",\n    Metadata = new Dictionary<string, object>() {{\"coupon_code\", \"NY2018\"}, {\"partner_id\", \"123989\"}}\n};\n\ntry\n{\n    RefundResponse response = await api.PaymentsClient().RefundPayment(\"payment_id\", request);\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n\t\"github.com/checkout/checkout-sdk-go/payments\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Gateway, configuration.GatewayPayment}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nrequest := payments.RefundRequest{\n\tAmount:    10,\n\tReference: \"partial refund\",\n\tMetadata: map[string]interface{}{},\n}\n\nresponse, err := api.Payments.RefundPayment(\"payment_id\", request, nil)\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\nimport com.checkout.payments.RefundRequest;\nimport com.checkout.payments.RefundResponse;\n\n// API Keys\nCheckoutApi api = CheckoutSdk.builder()\n    .staticKeys()\n    .secretKey(\"secret_key\")\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\n// OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.GATEWAY) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\nRefundRequest refundRequest = RefundRequest.builder()\n    .reference(\"partial refund\")\n    .amount(10L)\n    .metadata(new HashMap<>())\n    .build();\n\ntry {\n    // or, refundPayment(\"payment_id\") for a full refund\n    RefundResponse response = api.paymentsClient().refundPayment(\"payment_id\", refundRequest).get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "Node",
            "source": "import { Checkout } from 'checkout-sdk-node';\n\nlet cko = new Checkout('your_client_secret_here', {\n\tclient: 'ack_XXXXXXXXXXXX',\n\tscope: ['gateway'], // array of scopes\n\tenvironment: 'sandbox', // or \"production\"\n        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\"\n});\n\n// Or if you use api keys:\n// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});\n\ntry {\n\tconst payment = await cko.payments.refund('pay_je5hbbb4u3oe7k4u3lbwlu3zkq', {\n\t\tamount: 1000,\n\t\treference: 'REFUND ORDER 1234',\n\t\tmetadata: {\n\t\t\tvalue: 'my value',\n\t\t},\n\t});\n} catch (err) {\n\tconsole.log(err.name);\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Environment;\nuse Checkout\\OAuthScope;\nuse Checkout\\Payments\\RefundRequest;\n\n//API Keys\n$api = CheckoutSdk::builder()->staticKeys()\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->secretKey(\"secret_key\")\n    ->build();\n\n//OAuth\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Gateway])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\n$request = new RefundRequest();\n$request->reference = \"reference\";\n$request->amount = 10;\n\ntry {\n    // or, refundPayment(\"payment_id\") for a full refund\n    $response = $api->getPaymentsClient()->refundPayment(\"payment_id\", $request);\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\nfrom checkout_sdk.payments.payments import RefundRequest\n\n# API Key\napi_key = (\n    CheckoutSdk.builder() \n    .secret_key('secret_key') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .build()\n)\n\n# OAuth\noauth = (\n    CheckoutSdk.builder() \n    .oauth() \n    .client_credentials('client_id', 'client_secret') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.GATEWAY]) \n    .build()\n)\n\nrequest = RefundRequest()\nrequest.reference = 'reference'\nrequest.amount = 10\n\ntry:\n    # or, refundPayment('payment_id') for a full refund\n    response = api.payments.refund_payment('payment_id', request)\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n# Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n# Invalid authorization"
          }
        ]
      }
    },
    "/payments/{id}/reversals": {
      "post": {
        "tags": [
          "Payments"
        ],
        "summary": "Reverse a payment",
        "description": "Returns funds back to the customer by automatically performing the appropriate payment action depending on the payment's status.\n\nFor more information, see <a href=\"https://www.checkout.com/docs/payments/manage-payments/reverse-a-payment\">Reverse a payment</a>.\n",
        "operationId": "reversePayment",
        "parameters": [
          {
            "$ref": "#/components/parameters/ckoIdempotencyKey"
          },
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the payment.",
            "required": true,
            "schema": {
              "pattern": "^(pay)_(\\w{26})$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentReversalRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Reversal accepted",
            "headers": {
              "Cko-Request-Id": {
                "schema": {
                  "$ref": "#/components/schemas/Cko-Request-Id"
                }
              },
              "Cko-Version": {
                "schema": {
                  "$ref": "#/components/schemas/Cko-Version"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentReversalAcceptedResponse"
                }
              }
            }
          },
          "200": {
            "description": "Payment is already reversed",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/IdempotentActionResponse"
                    },
                    {
                      "type": "object"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ValidationError"
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "Reversals not supported for this payment"
          },
          "404": {
            "description": "Payment not found"
          },
          "502": {
            "description": "Bad gateway"
          }
        },
        "security": [
          {
            "OAuth": [
              "gateway",
              "gateway:payment-voids",
              "gateway:payment-refunds",
              "gateway:payment-cancellations"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      }
    },
    "/payments/{id}/voids": {
      "post": {
        "tags": [
          "Payments"
        ],
        "summary": "Void a payment",
        "description": "Voids a payment if supported by the payment method.\n\nFor card payments, void requests are processed asynchronously. You can use [workflows](#tag/Workflows) to be notified if the void is successful.\n",
        "operationId": "voidAPayment",
        "parameters": [
          {
            "$ref": "#/components/parameters/ckoIdempotencyKey"
          },
          {
            "name": "id",
            "in": "path",
            "description": "The payment identifier",
            "required": true,
            "schema": {
              "pattern": "^(pay)_(\\w{26})$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VoidRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Void accepted",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidAcceptedResponse"
                }
              }
            }
          },
          "200": {
            "description": "Payment is already voided",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/IdempotentActionResponse"
                    },
                    {
                      "type": "object"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            }
          },
          "403": {
            "description": "Void not allowed"
          },
          "404": {
            "description": "Payment not found"
          },
          "502": {
            "description": "Bad gateway"
          }
        },
        "security": [
          {
            "OAuth": [
              "gateway",
              "gateway:payment-voids"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\nusing Checkout.Payments;\n\n//API keys\nICheckoutApi api = CheckoutSdk.Builder().StaticKeys()\n    .SecretKey(\"secret_key\")\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\n//OAuth\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.Gateway)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\nVoidRequest request = new VoidRequest\n{\n    Reference = \"reference\",\n    Metadata = new Dictionary<string, object> {{\"coupon_code\", \"NY2018\"}, {\"partner_id\", \"123989\"}}\n};\n\ntry\n{\n    VoidResponse response = await api.PaymentsClient().VoidPayment(\"payment_id\", request);\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n\t\"github.com/checkout/checkout-sdk-go/payments\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Gateway, configuration.GatewayPayment}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nrequest := payments.VoidRequest{\n\tReference: \"reference\",\n\tMetadata:  map[string]interface{}{},\n}\n\nresponse, err := api.Payments.VoidPayment(\"payment_id\", request, nil)\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\nimport com.checkout.payments.VoidRequest;\nimport com.checkout.payments.VoidResponse;\n\n// API Keys\nCheckoutApi api = CheckoutSdk.builder()\n    .staticKeys()\n    .secretKey(\"secret_key\")\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\n// OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.GATEWAY) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\nVoidRequest voidRequest = VoidRequest.builder()\n    .reference(\"reference\")\n    .metadata(new HashMap<>())\n    .build();\n\ntry {\n    // or, voidPayment(\"payment_id\")\n    VoidResponse response = api.paymentsClient().voidPayment(\"payment_id\", voidRequest).get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "Node",
            "source": "import { Checkout } from 'checkout-sdk-node';\n\nlet cko = new Checkout('your_client_secret_here', {\n\tclient: 'ack_XXXXXXXXXXXX',\n\tscope: ['gateway'], // array of scopes\n\tenvironment: 'sandbox', // or \"production\"\n        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\"\n});\n\n// Or if you use api keys:\n// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});\n\ntry {\n\tconst payment = await cko.payments.void('pay_je5hbbb4u3oe7k4u3lbwlu3zkq', {\n\t\tamount: 1000,\n\t\treference: 'VOID ORDER 1234',\n\t\tmetadata: {\n\t\t\tvalue: 'my value',\n\t\t},\n\t});\n} catch (err) {\n\tconsole.log(err.name);\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Environment;\nuse Checkout\\OAuthScope;\nuse Checkout\\Payments\\VoidRequest;\n\n//API Keys\n$api = CheckoutSdk::builder()->staticKeys()\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->secretKey(\"secret_key\")\n    ->build();\n\n//OAuth\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Gateway])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\n$request = new VoidRequest();\n$request->reference = \"reference\";\n\ntry {\n    // or, voidPayment(\"payment_id\")\n    $response = $api->getPaymentsClient()->voidPayment(\"payment_id\", $request);\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\nfrom checkout_sdk.payments.payments import VoidRequest\n\n# API Key\napi_key = (\n    CheckoutSdk.builder() \n    .secret_key('secret_key') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .build()\n)\n\n# OAuth\noauth = (\n    CheckoutSdk.builder() \n    .oauth() \n    .client_credentials('client_id', 'client_secret') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.GATEWAY]) \n    .build()\n)\n\nrequest = VoidRequest()\nrequest.reference = 'reference'\n\ntry:\n    # or, void_payment('payment_id')\n    response = api.payments.void_payment('payment_id', request)\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n# Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n# Invalid authorization"
          }
        ]
      }
    },
    "/payments/search": {
      "post": {
        "tags": [
          "Payments"
        ],
        "summary": "Search payments",
        "description": "<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>\n\nSearch and filter through your payment data to retrieve payments that match your query.\n\nIf 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.\n\nFor 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.\n",
        "operationId": "search",
        "requestBody": {
          "description": "Search query.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SearchRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful search",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/PayinResponse"
                    },
                    {
                      "$ref": "#/components/schemas/BankPayoutResponse"
                    },
                    {
                      "$ref": "#/components/schemas/CardPayoutResponse"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "422": {
            "description": "Query validation error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth": [
              "payments:search"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      }
    },
    "/payments/setups": {
      "post": {
        "tags": [
          "Payment Setups"
        ],
        "summary": "Create a Payment Setup",
        "description": "<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>\n\nCreates a Payment Setup.\n\nTo 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.\n",
        "operationId": "createAPaymentSetup",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentSetup"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Payment Setup created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentSetup"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed. Provide a valid API key or access token."
          },
          "403": {
            "description": "You do not have permission to create a Payment Setup."
          },
          "422": {
            "description": "One or more fields failed validation. See the response body for details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentSetupValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth": [
              "gateway",
              "gateway:payment",
              "vault"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      }
    },
    "/payments/setups/{id}": {
      "put": {
        "tags": [
          "Payment Setups"
        ],
        "summary": "Update a Payment Setup",
        "description": "<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>\n\nUpdates a Payment Setup.\n\nUpdate 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.\n",
        "operationId": "updateAPaymentSetup",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier of the Payment Setup to update.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentSetup"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Payment Setup updated.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentSetup"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed. Provide a valid API key or access token."
          },
          "403": {
            "description": "You do not have permission to update this Payment Setup."
          },
          "422": {
            "description": "One or more fields failed validation. See the response body for details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentSetupValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth": [
              "gateway",
              "gateway:payment",
              "vault"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      },
      "get": {
        "tags": [
          "Payment Setups"
        ],
        "summary": "Get a Payment Setup",
        "description": "<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>\n\nRetrieves a Payment Setup by its unique identifier.\n",
        "operationId": "getAPaymentSetup",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier of the Payment Setup to retrieve.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Payment Setup details returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentSetup"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed. Provide a valid API key."
          },
          "403": {
            "description": "You do not have permission to retrieve this Payment Setup."
          }
        },
        "security": [
          {
            "OAuth": [
              "gateway",
              "gateway:payment",
              "vault"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      }
    },
    "/payments/setups/{id}/confirm/{payment_method_name}": {
      "post": {
        "tags": [
          "Payment Setups"
        ],
        "summary": "Confirm a Payment Setup",
        "description": "<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>\n\nConfirm a Payment Setup to begin processing the payment request with your chosen payment method.\n",
        "operationId": "confirmAPaymentSetup",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier of the Payment Setup.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "payment_method_name",
            "in": "path",
            "description": "The name of the payment method to process the payment with (For example, `tabby`, `klarna`, `card`).",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Payment Setup confirmation attempt successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentSetup"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed. Provide a valid API key or access token."
          },
          "403": {
            "description": "You do not have permission to update this Payment Setup."
          },
          "422": {
            "description": "One or more fields failed validation. See the response body for details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentSetupValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth": [
              "gateway",
              "gateway:payment",
              "vault"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ]
      }
    },
    "/reports": {
      "get": {
        "tags": [
          "Reports"
        ],
        "summary": "Get all reports",
        "description": "Returns the list of reports and their details.\n",
        "operationId": "getReports",
        "parameters": [
          {
            "name": "created_after",
            "in": "query",
            "description": "Filters reports to those created on or after the specified timestamp, in UTC. <br/>Format – ISO 8601 code",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-02-17T00:00:00.0000000+00:00"
            }
          },
          {
            "name": "created_before",
            "in": "query",
            "description": "Filters reports to those created before the specified timestamp, in UTC. <br/>Format – ISO 8601 code",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-02-19T00:00:00.0000000+00:00"
            }
          },
          {
            "name": "entity_id",
            "in": "query",
            "description": "Filters reports to those created for the specified entity. <br/>Sub-entity IDs are not supported.",
            "schema": {
              "pattern": "^(ent)_(\\w{26})$",
              "type": "string",
              "example": "ent_znj4ih5kn4fuxiaquoudv5mvwy"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "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.",
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer",
              "format": "int32",
              "default": 100,
              "example": 5
            }
          },
          {
            "name": "pagination_token",
            "in": "query",
            "description": "A token used to paginate multiple pages of results.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Reports retrieved successfully",
            "headers": {
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              },
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportListResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized – Access token may be invalid or missing"
          },
          "422": {
            "description": "Unprocessable entity",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportErrorResponse"
                }
              },
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth": [
              "reports",
              "reports:view"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n\t\"github.com/checkout/checkout-sdk-go/reports\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Reports}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nquery := reports.QueryFilter{\n\tCreatedAfter:  time.Parse(\"2006-01-02\", time.Now().AddDate(0, 0, -10).Format(\"2006-01-02\")),\n\tCreatedBefore: time.Parse(\"2006-01-02\", time.Now().Format(\"2006-01-02\")),\n\tEntityId:      \"entity_id\",\n\tLimit:         20,\n}\n\nresponse, err := api.Reports.GetAllReports(query)\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          }
        ]
      }
    },
    "/reports/{id}": {
      "get": {
        "tags": [
          "Reports"
        ],
        "summary": "Get report details",
        "description": "Use this endpoint to retrieve a specific report using its ID.\n",
        "operationId": "getReportDetails",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the report to retrieve.",
            "required": true,
            "schema": {
              "pattern": "^(rpt)_(\\w{26})$",
              "type": "string",
              "example": "rpt_lmmldzousk7etoqijqundqexa4"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Report details retrieved successfully",
            "headers": {
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              },
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. Likely causes include an invalid or unspecified access token."
          },
          "404": {
            "description": "No report with the specified ID was found.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ReportErrorResponse"
                    }
                  ]
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth": [
              "reports",
              "reports:view"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Reports}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nresponse, err := api.Reports.GetReportDetails(\"report_id\")\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          }
        ]
      }
    },
    "/reports/{id}/files/{fileId}": {
      "get": {
        "tags": [
          "Reports"
        ],
        "summary": "Get report file",
        "description": "Use this endpoint to retrieve a specific file from a given report using their respective IDs.\n",
        "operationId": "getReportFile",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the report that the file belongs to.",
            "required": true,
            "schema": {
              "pattern": "^(rpt)_(\\w{26})$",
              "type": "string",
              "example": "rpt_lmmldzousk7etoqijqundqexa4"
            }
          },
          {
            "name": "fileId",
            "in": "path",
            "description": "The ID of the file to retrieve.",
            "required": true,
            "schema": {
              "pattern": "^(file)_(\\w{26})$",
              "type": "string",
              "example": "file_7ysmgfkj4ipunduud22uf73iey"
            }
          }
        ],
        "responses": {
          "302": {
            "description": "Redirect to the report file download location.",
            "headers": {
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              },
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Location": {
                "description": "Link to download the file. Expires after 30 seconds.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. Likely causes include an invalid or unspecified access token."
          },
          "404": {
            "description": "No report with the specified ID was found.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ReportErrorResponse"
                    }
                  ]
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth": [
              "reports",
              "reports:view"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Reports}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nresponse, err := api.Reports.GetReportFile(\"report_id\", \"file_id\")\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          }
        ]
      }
    },
    "/secrets": {
      "post": {
        "tags": [
          "Forward"
        ],
        "summary": "Create secret",
        "description": "Create a new secret with a plaintext value.\n\n**Validation Rules:**\n- `name`: 1-64 characters, alphanumeric + underscore\n- `value`: max 8KB\n- `entity_id` (optional): when provided, secret is scoped to this entity\n\n**Response:**\nReturns metadata.\n",
        "operationId": "createSecret",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSecretPlaintextRequest"
              },
              "examples": {
                "plaintext": {
                  "summary": "Plain text secret",
                  "value": {
                    "name": "secret_name",
                    "value": "plaintext",
                    "entity_id": "ent_12345"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Secret created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SecretResponse"
                },
                "examples": {
                  "created_secret": {
                    "summary": "Created secret",
                    "value": {
                      "name": "secret_name",
                      "created_at": "2025-10-14T00:00:00.0000000+00:00",
                      "updated_at": "2025-10-14T00:00:00.0000000+00:00",
                      "version": 1,
                      "entity_id": "ent_123"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                },
                "examples": {
                  "invalid_name": {
                    "summary": "Invalid secret name",
                    "value": {
                      "error_type": "validation_error",
                      "error_codes": [
                        "invalid_secret_name"
                      ]
                    }
                  },
                  "value_too_large": {
                    "summary": "Value too large",
                    "value": {
                      "error_type": "validation_error",
                      "error_codes": [
                        "secret_value_too_large"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict - secret with this name already exists"
          },
          "500": {
            "description": "Internal Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "forward",
              "forward:secrets"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "servers": [
          {
            "url": "https://forward.checkout.com",
            "description": "Production environment"
          },
          {
            "url": "https://forward.sandbox.checkout.com",
            "description": "Sandbox environment"
          }
        ]
      },
      "get": {
        "tags": [
          "Forward"
        ],
        "summary": "List secrets",
        "description": "Returns metadata for secrets scoped for client_id.\n",
        "operationId": "listSecrets",
        "responses": {
          "200": {
            "description": "List of secrets",
            "content": {
              "application/json": {
                "schema": {
                  "required": [
                    "data"
                  ],
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/SecretResponse"
                      }
                    }
                  }
                },
                "examples": {
                  "list_secrets": {
                    "summary": "List of secrets",
                    "value": {
                      "data": [
                        {
                          "name": "secret_name_1",
                          "created_at": "2025-10-14T00:00:00.0000000+00:00",
                          "updated_at": "2025-10-14T00:00:00.0000000+00:00",
                          "version": 1,
                          "entity_id": "ent_123"
                        },
                        {
                          "name": "secret_name_2",
                          "created_at": "2025-10-14T01:00:00.0000000+00:00",
                          "updated_at": "2025-10-14T01:00:00.0000000+00:00",
                          "version": 2,
                          "entity_id": "ent_456"
                        },
                        {
                          "name": "secret_name_3",
                          "created_at": "2025-10-14T02:00:00.0000000+00:00",
                          "updated_at": "2025-10-14T02:00:00.0000000+00:00",
                          "version": 3,
                          "entity_id": "ent_789"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "Internal Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "forward",
              "forward:secrets"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "servers": [
          {
            "url": "https://forward.checkout.com",
            "description": "Production environment"
          },
          {
            "url": "https://forward.sandbox.checkout.com",
            "description": "Sandbox environment"
          }
        ]
      }
    },
    "/secrets/{name}": {
      "patch": {
        "tags": [
          "Forward"
        ],
        "summary": "Update secret",
        "description": "Update an existing secret. After updating, the version is automatically incremented.\n\n**Validation Rules:**\n- Only `value` and `entity_id` can be updated\n- `value`: max 8KB\n\n**Response:**\nReturns updated metadata with incremented version.\n",
        "operationId": "updateSecret",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "description": "Secret name.",
            "required": true,
            "schema": {
              "pattern": "^[a-zA-Z0-9_]{1,64}$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSecretRequest"
              },
              "examples": {
                "update_value": {
                  "summary": "Update with plaintext value.",
                  "value": {
                    "entity_id": "ent_1234",
                    "value": "NEW_VALUE_1"
                  }
                },
                "update_entity": {
                  "summary": "Only updates the entity scope.",
                  "value": {
                    "entity_id": "ent_5678"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Secret updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SecretResponse"
                },
                "examples": {
                  "updated_secret": {
                    "summary": "Updated secret",
                    "value": {
                      "name": "secret_name_1",
                      "created_at": "2025-10-14T00:00:00.0000000+00:00",
                      "updated_at": "2025-10-14T12:00:00.0000000+00:00",
                      "version": 2,
                      "entity_id": "ent_123"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Secret not found"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "forward",
              "forward:secrets"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "servers": [
          {
            "url": "https://forward.checkout.com",
            "description": "Production environment"
          },
          {
            "url": "https://forward.sandbox.checkout.com",
            "description": "Sandbox environment"
          }
        ]
      },
      "delete": {
        "tags": [
          "Forward"
        ],
        "summary": "Delete secret",
        "description": "Permanently delete a secret by name.\n",
        "operationId": "deleteSecret",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "description": "Secret name.",
            "required": true,
            "schema": {
              "pattern": "^[a-zA-Z0-9_]{1,64}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Secret deleted successfully"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Secret not found"
          },
          "500": {
            "description": "Internal Error"
          }
        },
        "security": [
          {
            "OAuth": [
              "forward",
              "forward:secrets"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "servers": [
          {
            "url": "https://forward.checkout.com",
            "description": "Production environment"
          },
          {
            "url": "https://forward.sandbox.checkout.com",
            "description": "Sandbox environment"
          }
        ]
      }
    },
    "/sessions": {
      "post": {
        "tags": [
          "Standalone"
        ],
        "summary": "Request a session",
        "description": "Create a payment session to authenticate a cardholder before requesting a payment.\nPayment sessions can be linked to one or more payments (in the case of recurring and other merchant-initiated payments).\n\nThe `next_actions` object in the response tells you which actions can be performed next.\n",
        "operationId": "createSession",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SessionRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Session processed successfully",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateSessionOkResponse"
                }
              }
            }
          },
          "202": {
            "description": "Session accepted and further action required",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateSessionAcceptedResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden. Ensure scope matches `\"channel_data.channel\"`: Use `sessions:app` for `\"app\"` and `sessions:browser` for `\"browser\"`.\n",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service not available. A temporary server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth": [
              "sessions:app",
              "sessions:browser"
            ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/common\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n\t\"github.com/checkout/checkout-sdk-go/sessions\"\n\t\"github.com/checkout/checkout-sdk-go/sessions/completion\"\n\t\"github.com/checkout/checkout-sdk-go/sessions/sources\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.SessionsApp, configuration.SessionsBrowser}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nsource := sources.NewSessionCardSource()\nsource.Number = \"12345678\"\nsource.ExpiryMonth = 10\nsource.ExpiryYear = 2027\n\ncompletion := completion.NewHostedCompletion()\ncompletion.SuccessUrl = \"https://docs.checkout.com/sessions/success\"\ncompletion.FailureUrl = \"https://docs.checkout.com/sessions/fail\"\n\nrequest := sessions.SessionRequest{\n\tSource:                 source,\n\tAmount:                 10,\n\tCurrency:               common.GBP,\n\tProcessingChannelId:    \"processing_channel_id\",\n\tAuthenticationType:     sessions.RegularAuthType,\n\tAuthenticationCategory: sessions.Payment,\n\tChallengeIndicator:     common.NoPreference,\n\tReference:              \"reference\",\n\tTransactionType:        sessions.GoodsService,\n\tShippingAddress: &sources.SessionAddress{\n\t\tAddress: common.Address{\n\t\t\tAddressLine1: \"123 High St.\",\n\t\t\tAddressLine2: \"Flat 456\",\n\t\t\tCity:         \"London\",\n\t\t\tState:        \"GB\",\n\t\t\tZip:          \"SW1A 1AA\",\n\t\t\tCountry:      common.GB,\n\t\t},\n\t},\n\tCompletion:  completion,\n}\n\nresponse, err := api.Sessions.RequestSession(request)\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          }
        ]
      }
    },
    "/sessions/{id}": {
      "get": {
        "tags": [
          "Standalone"
        ],
        "summary": "Get session details",
        "description": "Returns the details of the session with the specified identifier string.\n",
        "operationId": "getSession",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Session ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "channel",
            "in": "header",
            "description": "Optionally provide the type of channnel so you only get the relevant actions",
            "schema": {
              "enum": [
                "browser",
                "app"
              ],
              "type": "string",
              "description": "If a value is not provided, and if the `status` is `pending`, then `next_actions` will return `collect_channel_data` and if available, `issuer_fingerprint`.",
              "example": "browser"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Session retrieved successfully",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetSessionResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden. This can happen when the OAuth token scope is `sessions:app`, but the session was initiated with the scope `sessions:browser`.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Session not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "502": {
            "description": "Bad gateway"
          }
        },
        "security": [
          {
            "OAuth": [
              "sessions:app",
              "sessions:browser"
            ]
          },
          {
            "SessionSecret": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.SessionsApp, configuration.SessionsBrowser}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nresponse, err := api.Sessions.GetSessionDetails(\"session_id\", \"session_secret\") // \"session_secret\" is optional\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          }
        ]
      }
    },
    "/sessions/{id}/collect-data": {
      "put": {
        "tags": [
          "Standalone"
        ],
        "summary": "Update a session",
        "description": "Update a session by providing information about the environment.",
        "operationId": "updateSession",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Session ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChannelData"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Session updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetSessionResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Session not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable channel information",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth": [
              "sessions:app",
              "sessions:browser"
            ]
          },
          {
            "SessionSecret": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/common\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n\t\"github.com/checkout/checkout-sdk-go/sessions/channels\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.SessionsApp, configuration.SessionsBrowser}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nchannel := channels.NewBrowserSession()\nchannel.AcceptHeader = \"Accept:  *.*, q=0.1\"\nchannel.JavaEnabled = true\nchannel.Language = \"FR-fr\"\nchannel.ColorDepth = \"16\"\nchannel.ScreenWidth = \"1920\"\nchannel.ScreenHeight = \"1080\"\nchannel.Timezone = \"60\"\nchannel.UserAgent = \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36\"\nchannel.ThreeDsMethodCompletion = common.Y\nchannel.IpAddress = \"1.12.123.255\"\n\nresponse, err := api.Sessions.UpdateSession(\"session_id\", channel,\"session_secret\") // \"session_secret\" is optional\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          }
        ]
      }
    },
    "/sessions/{id}/complete": {
      "post": {
        "tags": [
          "Standalone"
        ],
        "summary": "Complete a session",
        "description": "Completes a session by posting the following request to the callback URL. This step is optional and only applies to non-hosted sessions:\n```\n{\n   \"session_id\": \"sid_llraltf4jlwu5dxdtprcv7ba5i\",\n   \"amount\" : 6540,\n   \"currency\": \"USD\",\n   \"status\": \"approved\",\n   \"authentication_type\": \"regular\",\n   \"authentication_category\": \"payment\",\n   \"reference\": \"ORD-5023-4E89\",\n   \"approved\": true,\n   \"protocol_version\": \"2.2.0\",\n   \"response_code\": \"Y\",\n   \"response_status_reason\": \"01\",\n   \"cryptogram\": \"MTIzNDU2Nzg5MDA5ODc2NTQzMjE=\",\n   \"eci\": \"05\",\n   \"xid\": \"XSUErNftqkiTdlkpSk8p32GWOFA\",\n   \"cardholder_info\": \"Card declined. Please contact your issuing bank.\",\n   \"challenged\": true\n}\n```\n<br/>\nThe 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.\n",
        "operationId": "completeSession",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Session ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Session completed successfully"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Session not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth": [
              "sessions:app",
              "sessions:browser"
            ]
          },
          {
            "SessionSecret": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.SessionsApp, configuration.SessionsBrowser}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nresponse, err := api.Sessions.CompleteSession(\"session_id\", \"session_secret\") // \"session_secret\" is optional\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          }
        ]
      }
    },
    "/sessions/{id}/issuer-fingerprint": {
      "put": {
        "tags": [
          "Standalone"
        ],
        "summary": "Update session 3DS Method completion indicator",
        "description": "Update the session's 3DS Method completion indicator based on the result of accessing the 3DS Method URL.",
        "operationId": "updateSessionThreeDsMethodCompletion",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Session ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ThreeDsMethodCompletion"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Session updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetSessionResponseAfterChannelDataSupplied"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Session not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable channel information",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth": [
              "sessions:browser"
            ]
          },
          {
            "SessionSecret": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/common\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n\t\"github.com/checkout/checkout-sdk-go/sessions\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.SessionsApp, configuration.SessionsBrowser}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nrequest := sessions.ThreeDsMethodCompletionRequest{ThreeDsMethodCompletion: common.Y}\n\nresponse, err := api.Sessions.Update3dsMethodCompletion(\"session_id\", request, \"session_secret\") // \"session_secret\" is optional\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          }
        ]
      }
    },
    "/simulate/entities/{entityId}/requirements-due": {
      "post": {
        "tags": [
          "Onboarding Simulator"
        ],
        "summary": "Set requirements due",
        "description": "**Sandbox only** — not available in Production.\n\nMarks the specified requirement fields as due on an entity. Use this to test how your integration handles the requirements-due state.",
        "requestBody": {
          "description": "The requirement fields to mark as due.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SimulatorSetRequirementsDueRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Requirements due set successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SimulatorSetRequirementsDueResponse"
                }
              }
            }
          },
          "400": {
            "description": "Unknown or missing fields",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SimulatorErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Entity not found"
          },
          "502": {
            "description": "Dependency error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SimulatorErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth": [
              "accounts"
            ]
          }
        ]
      },
      "parameters": [
        {
          "name": "entityId",
          "in": "path",
          "description": "The ID of the entity.",
          "required": true,
          "style": "simple",
          "schema": {
            "type": "string"
          },
          "example": "ent_w4jelhppmfiufdnatam37wrfc4"
        }
      ]
    },
    "/simulate/entities/{entityId}/scenarios/{scenarioId}": {
      "post": {
        "tags": [
          "Onboarding Simulator"
        ],
        "summary": "Run scenario",
        "description": "**Sandbox only** — not available in Production.\n\nExecutes a pre-defined scenario against an entity, triggering the associated state transition or capability change. Use GET /simulate/scenarios to list available scenario IDs.",
        "responses": {
          "200": {
            "description": "Scenario executed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SimulatorRunScenarioResponse"
                }
              }
            }
          },
          "202": {
            "description": "Scenario execution accepted and in progress",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SimulatorRunScenarioResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Entity or scenario not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SimulatorErrorResponse"
                }
              }
            }
          },
          "502": {
            "description": "Dependency error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SimulatorErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth": [
              "accounts"
            ]
          }
        ]
      },
      "parameters": [
        {
          "name": "entityId",
          "in": "path",
          "description": "The ID of the entity.",
          "required": true,
          "style": "simple",
          "schema": {
            "type": "string"
          },
          "example": "ent_w4jelhppmfiufdnatam37wrfc4"
        },
        {
          "name": "scenarioId",
          "in": "path",
          "description": "The ID of the scenario to run.",
          "required": true,
          "style": "simple",
          "schema": {
            "type": "string"
          },
          "example": "go_active"
        }
      ]
    },
    "/simulate/entities/{entityId}/status": {
      "post": {
        "tags": [
          "Onboarding Simulator"
        ],
        "summary": "Set entity status",
        "description": "**Sandbox only** — not available in Production.\n\nForces the entity to the specified status, bypassing normal onboarding flow. Use this to test how your integration handles different entity states.",
        "requestBody": {
          "description": "The status to apply to the entity.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SimulatorSetStatusRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Status updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SimulatorSetStatusResponse"
                }
              }
            }
          },
          "202": {
            "description": "Status transition accepted and in progress",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SimulatorSetStatusResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid status value or transition not allowed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SimulatorErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Entity not found"
          },
          "502": {
            "description": "Dependency error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SimulatorErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth": [
              "accounts"
            ]
          }
        ]
      },
      "parameters": [
        {
          "name": "entityId",
          "in": "path",
          "description": "The ID of the entity.",
          "required": true,
          "style": "simple",
          "schema": {
            "type": "string"
          },
          "example": "ent_w4jelhppmfiufdnatam37wrfc4"
        }
      ]
    },
    "/simulate/requirements-due": {
      "get": {
        "tags": [
          "Onboarding Simulator"
        ],
        "summary": "List available requirements",
        "description": "**Sandbox only** — not available in Production.\n\nReturns 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.",
        "responses": {
          "200": {
            "description": "Requirements listed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SimulatorAvailableRequirement"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Simulator not available in this environment. These endpoints are not registered in production."
          }
        },
        "security": [
          {
            "OAuth": [
              "accounts"
            ]
          }
        ]
      }
    },
    "/simulate/scenarios": {
      "get": {
        "tags": [
          "Onboarding Simulator"
        ],
        "summary": "List scenarios",
        "description": "**Sandbox only** — not available in Production.\n\nReturns all pre-defined scenarios available. Use the scenario IDs when calling the run scenario endpoint.",
        "responses": {
          "200": {
            "description": "Scenarios listed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SimulatorScenario"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Simulator not available in this environment. These endpoints are not registered in production."
          }
        },
        "security": [
          {
            "OAuth": [
              "accounts"
            ]
          }
        ]
      }
    },
    "/tokens": {
      "post": {
        "tags": [
          "Tokens"
        ],
        "summary": "Request a token",
        "description": "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.\nTo create a token, please authenticate using your public key.\n\n**Please note:** You should only use the `card` type for testing purposes.\n",
        "operationId": "requestAToken",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TokenRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Reference token created successfully",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TokenResponse"
                },
                "examples": {
                  "card": {
                    "value": {
                      "type": "card",
                      "token": "tok_ubfj2q76miwundwlk72vxt2i7q",
                      "expires_on": "2023-07-11T15:57:32.4350000+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"
                    }
                  },
                  "googlepay": {
                    "value": {
                      "type": "googlepay",
                      "token": "tok_ubfj2q76miwundwlk72vxt2i7q",
                      "expires_on": "2023-07-11T15:57:32.4350000+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"
                    }
                  },
                  "applepay": {
                    "value": {
                      "type": "applepay",
                      "token": "tok_ubfj2q76miwundwlk72vxt2i7q",
                      "expires_on": "2023-07-11T15:57:32.4350000+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"
                    }
                  },
                  "cvv": {
                    "value": {
                      "type": "cvv",
                      "token": "tok_ubfj2q76miwundwlk72vxt2i7q",
                      "expires_on": "2023-07-11T15:57:32.4350000+00:00"
                    }
                  },
                  "pin": {
                    "value": {
                      "type": "pin",
                      "token": "tok_ubfj2q76miwundwlk72vxt2i7q",
                      "expires_on": "2023-07-11T15:57:32.4350000+00:00"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            }
          },
          "504": {
            "description": "Gateway timeout"
          }
        },
        "security": [
          {
            "ApiPublicKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\nusing Checkout.Common;\nusing Checkout.Tokens;\n\nICheckoutApi api = CheckoutSdk.Builder().StaticKeys()\n    .PublicKey(\"public_key\")\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\nCardTokenRequest request = new CardTokenRequest\n{\n    Number = \"4543474002249996\",\n    ExpiryMonth = 10,\n    ExpiryYear = 2027,\n    Name = \"FirstName LastName\",\n    Cvv = \"123\",\n    BillingAddress = new Address()\n    {\n        AddressLine1 = \"123 High St.\",\n        AddressLine2 = \"Flat 456\",\n        City = \"London\",\n        State = \"GB\",\n        Zip = \"SW1A 1AA\",\n        Country = CountryCode.GB\n    },\n    Phone = new Phone() {Number = \"4155552671\", CountryCode = \"1\"}\n};\n\ntry\n{\n    CardTokenResponse response = await api.TokensClient().Request(request);\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/common\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n\t\"github.com/checkout/checkout-sdk-go/tokens\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tPrevious().\n\t\t\tWithPublicKey(\"public_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nrequest := tokens.CardTokenRequest{\n\tType:        tokens.Card,\n\tNumber:      \"123456789\",\n\tExpiryMonth: 10,\n\tExpiryYear:  2025,\n\tName:        \"Name\",\n\tCVV:         \"123\",\n\tBillingAddress: &common.Address{\n\t\tAddressLine1: \"123 High St.\",\n\t\tAddressLine2: \"Flat 456\",\n\t\tCity:         \"London\",\n\t\tState:        \"GB\",\n\t\tZip:          \"SW1A 1AA\",\n\t\tCountry:      common.GB,\n\t},\n\tPhone: &common.Phone{\n\t\tCountryCode: \"1\",\n\t\tNumber:      \"415 555 2671\",\n\t},\n}\n\nresponse, err := api.Tokens.RequestCardToken(request)\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\nimport com.checkout.common.Address;\nimport com.checkout.common.CountryCode;\nimport com.checkout.tokens.CardTokenRequest;\nimport com.checkout.tokens.CardTokenResponse;\n\n// API Keys\nCheckoutApi api = CheckoutSdk.builder()\n    .staticKeys()\n    .publicKey(\"public_key\")\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\nCardTokenRequest request = CardTokenRequest.builder()\n    .number(\"1234567\")\n    .expiryMonth(10)\n    .expiryYear(2027)\n    .billingAddress(Address.builder()\n    .addressLine1(\"123 High St.\")\n    .addressLine2(\"Flat 456\")\n    .city(\"London\")\n    .state(\"GB\")\n    .zip(\"SW1A 1AA\")\n    .country(CountryCode.GB)\n    .build())\n    .build();\n\ntry {\n    CardTokenResponse response = api.tokensClient().requestCardToken(request).get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "Node",
            "source": "import { Checkout } from 'checkout-sdk-node';\n\nlet cko = new Checkout('your_client_secret_here', {\n\tclient: 'ack_XXXXXXXXXXXX',\n\tscope: ['gateway'], // array of scopes\n\tenvironment: 'sandbox', // or \"production\"\n        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\"\n});\n\n// Or if you use api keys:\n// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});\n\ntry {\n\tconst token = await cko.tokens.request({\n\t\t// infered type: \"applepay\"\n\t\ttoken_data: {\n\t\t\tversion: 'EC_v1',\n\t\t\tdata: 't7GeajLB9skXB6QSWfEpPA4WPhDqB7ekdd+F7588arLzve...',\n\t\t\tsignature: 'MIAGCSqGbGUg...',\n\t\t\theader: {\n\t\t\t\tephemeralPublicKey: 'MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgA...',\n\t\t\t\tpublicKeyHash: 'tqYV+tmG9aMh+l/K6cicUnPqkb1gUiLjSTM9gEz6...',\n\t\t\t\ttransactionId: '3cee89679130a4b...',\n\t\t\t},\n\t\t},\n\t});\n} catch (err) {\n\tconsole.log(err.name);\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Common\\Address;\nuse Checkout\\Common\\Country;\nuse Checkout\\Common\\Phone;\nuse Checkout\\Environment;\nuse Checkout\\Tokens\\CardTokenRequest;\n\n$api = CheckoutSdk::builder()\n    ->staticKeys()\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->publicKey(\"public_ey\")\n    ->build();\n\n$phone = new Phone();\n$phone->country_code = \"+1\";\n$phone->number = \"415 555 2671\";\n\n$address = new Address();\n$address->address_line1 = \"123 High St.\";\n$address->address_line2 = \"Flat 456\";\n$address->city = \"London\";\n$address->State = \"GB\";\n$address->zip = \"SW1A 1AA\";\n$address->country = Country::$GB;\n\n$request = new CardTokenRequest();\n$request->name = \"Name\";\n$request->number = \"123456789\";\n$request->expiry_year = 2027;\n$request->expiry_month = 10;\n$request->cvv = \"123\";\n$request->billing_address = $address;\n$request->phone = $phone;\n\ntry {\n    $response = $api->getTokensClient()->requestCardToken($request);\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.common.common import Phone, Address\nfrom checkout_sdk.common.enums import Country\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.tokens.tokens import CardTokenRequest\n\n# API Key\napi_key = (\n    CheckoutSdk.builder() \n    .public_key('public_key') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .build()\n)\n\nphone = Phone()\nphone.country_code = '44'\nphone.number = '4155552671'\n\naddress = Address()\naddress.address_line1 = '123 High St.'\naddress.address_line2 = 'Flat 456'\naddress.city = 'London'\naddress.state = 'GB'\naddress.zip = 'SW1A 1AA'\naddress.country = Country.GB\n\nrequest = CardTokenRequest()\nrequest.number = 'number'\nrequest.expiry_month = 10\nrequest.expiry_year = 2027\nrequest.cvv = 123\nrequest.name = 'Name'\nrequest.billing_address = address\nrequest.phone = phone\n\ntry:\n    response = api.tokens.request_card_token(request)\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n    # Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n    # Invalid authorization"
          }
        ]
      }
    },
    "/tokens/{tokenId}/metadata": {
      "get": {
        "tags": [
          "Tokens"
        ],
        "summary": "Get token metadata",
        "description": "Returns the details for an active token without consuming it. The token remains usable after this call.\n\nPossible responses:\n\n - `200` – Active and recently-used tokens (still within the 15-minute window).\n - `410` – Expired tokens.\n - `404` – Not found tokens, or of an unsupported type (for example, `cvv` or `pin`). \n",
        "operationId": "getTokenMetadata",
        "parameters": [
          {
            "name": "tokenId",
            "in": "path",
            "description": "The token ID",
            "required": true,
            "schema": {
              "pattern": "^(tok)_(\\w{26})$",
              "type": "string",
              "example": "tok_4gzeau5o2uqubbk6fudbloo47a"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Token metadata retrieved successfully",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TokenMetadataResponse"
                },
                "example": {
                  "token": "tok_4gzeau5o2uqubbk6fudbloo47a",
                  "type": "card",
                  "expires_on": "2026-05-14T10:11:12.0000000+00:00",
                  "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"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Token not found, or token type does not support metadata retrieval"
          },
          "410": {
            "description": "Token has expired",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            }
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            }
          },
          "504": {
            "description": "Gateway timeout"
          }
        },
        "security": [
          {
            "ApiSecretKey": [ ]
          },
          {
            "OAuth": [
              "vault:tokens-metadata"
            ]
          }
        ]
      }
    },
    "/transfers": {
      "post": {
        "tags": [
          "Transfers"
        ],
        "summary": "Initiate a transfer of funds",
        "description": "Initiate a transfer of funds from source entity to destination entity.\n",
        "operationId": "createTransfer",
        "parameters": [
          {
            "$ref": "#/components/parameters/ckoIdempotencyKeyRequired"
          }
        ],
        "requestBody": {
          "description": "The details of the transfer.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTransferRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Transfer successfully created.",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateTransferResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ValidationError"
                    }
                  ]
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth": [
              "transfers:create"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\nusing Checkout.Transfers;\n\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.Transfers)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\nCreateTransferRequest createTransferRequest =\n    new CreateTransferRequest\n    {\n        Source = new TransferSourceRequest {Amount = 100, Id = \"entity_source_id\"},\n        Destination = new TransferDestinationRequest {Id = \"entity_destination_id\"},\n        TransferType = TransferType.Commission\n    };\n\ntry\n{\n    CreateTransferResponse createTransferResponse =\n        await api.TransfersClient().InitiateTransferOfFunds(createTransferRequest);\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n\t\"github.com/checkout/checkout-sdk-go/transfers\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Transfers}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nrequest := transfers.TransferRequest{\n\tReference:    \"reference\",\n\tTransferType: transfers.Commission,\n\tSource: &transfers.TransferSourceRequest{\n\t\tId:     \"entity_id\",\n\t\tAmount: 100,\n\t},\n\tDestination: &transfers.TransferDestinationRequest{Id: \"destination_id\"},\n}\n\nresponse, err := api.Transfers.InitiateTransferOfFounds(request, nil)\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\nimport com.checkout.transfers.CreateTransferResponse;\nimport com.checkout.transfers.CreateTransferRequest;\nimport com.checkout.transfers.TransferDestinationRequest;\nimport com.checkout.transfers.TransferSourceRequest;\nimport com.checkout.transfers.TransferType;\n\n// OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.TRANSFERS_CREATE) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\nCreateTransferRequest request = CreateTransferRequest.builder()\n    .reference(\"reference\")\n    .transferType(TransferType.COMMISSION)\n        .source(TransferSourceRequest.builder()\n        .id(\"entity_id\")\n        .amount(100L)\n        .build())\n    .destination(TransferDestinationRequest.builder()\n        .id(\"destination_id\")\n        .build())\n    .build();\n\ntry {\n    CreateTransferResponse response = api.transfersClient().initiateTransferOfFunds(request).get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Environment;\nuse Checkout\\OAuthScope;\nuse Checkout\\Transfers\\CreateTransferRequest;\nuse Checkout\\Transfers\\TransferDestination;\nuse Checkout\\Transfers\\TransferSource;\nuse Checkout\\Transfers\\TransferType;\n\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Transfers])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\n$transferSource = new TransferSource();\n$transferSource->id = \"ent_kidtcgc3ge5unf4a5i6enhnr5m\";\n$transferSource->amount = 100;\n\n$transferDestination = new TransferDestination();\n$transferDestination->id = \"ent_w4jelhppmfiufdnatam37wrfc4\";\n\n$request = new CreateTransferRequest();\n$request->transfer_type = TransferType::$commission;\n$request->source = $transferSource;\n$request->destination = $transferDestination;\n\ntry {\n    $response = $api->getTransfersClient()->initiateTransferOfFunds($request);\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "import checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\nfrom checkout_sdk.transfers.transfers import CreateTransferRequest, TransferType, TransferSource, TransferDestination\n\n# OAuth\noauth = (\n    CheckoutSdk.builder() \n    .oauth() \n    .client_credentials('client_id', 'client_secret') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.TRANSFERS]) \n    .build()\n)\n\nsource = TransferSource()\nsource.id = \"source_id\"\nsource.amount = 100\n\ndestination = TransferDestination()\ndestination.id = \"destination_id\"\n\nrequest = CreateTransferRequest()\nrequest.reference = \"superhero1234\"\nrequest.transfer_type = TransferType.COMMISSION\nrequest.source = source\nrequest.destination = destination\n\ntry:\n    # Optional: idempotencyKey as a second parameter for idempotent requests\n    response = api.transfers.initiate_transfer_of_funds(request)\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n    # Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n    # Invalid authorization"
          }
        ]
      },
      "servers": [
        {
          "url": "https://transfers.checkout.com",
          "description": "Production environment"
        },
        {
          "url": "https://transfers.sandbox.checkout.com",
          "description": "Sandbox environment"
        }
      ]
    },
    "/transfers/{id}": {
      "get": {
        "tags": [
          "Transfers"
        ],
        "summary": "Retrieve a transfer",
        "description": "Retrieve transfer details using the transfer identifier.",
        "operationId": "getTransferDetails",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The transfer identifier",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "tra_y3oqhf46pyzuxjbcn2giaqnb4"
          }
        ],
        "responses": {
          "200": {
            "description": "Transfer found",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Transfer"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Transfer not found"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ValidationError"
                    }
                  ]
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth": [
              "transfers:view"
            ]
          },
          {
            "ApiSecretKey": [ ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\nusing Checkout.Transfers;\n\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.Transfers)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\nCreateTransferRequest createTransferRequest =\n    new CreateTransferRequest\n    {\n        Source = new TransferSourceRequest {Amount = 100, Id = \"entity_source_id\"},\n        Destination = new TransferDestinationRequest {Id = \"entity_destination_id\"},\n        TransferType = TransferType.Commission\n    };\n\ntry\n{\n    TransferDetailsResponse transferDetailsResponse = await api.TransfersClient().RetrieveATransfer(\"transfer_id\");\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n)\n\n// API Keys\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tStaticKeys().\n\t\t\tWithSecretKey(\"secret_key\").\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.Transfers}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nresponse, err := api.Transfers.RetrieveTransfer(\"transfer_id\")\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-java\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\nimport com.checkout.transfers.TransferDetailsResponse;\n\n// OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.TRANSFERS_VIEW) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\ntry {\n    TransferDetailsResponse response = api.transfersClient().retrieveATransfer(\"transfer_id\").get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Environment;\nuse Checkout\\OAuthScope;\n\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$Transfers])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\ntry {\n    $response = $api->getTransfersClient()->retrieveATransfer(\"transfer_id\");\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "import checkout_sdk\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\n\n# OAuth\noauth = (\n    CheckoutSdk.builder() \n    .oauth() \n    .client_credentials('client_id', 'client_secret') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.TRANSFERS]) \n    .build()\n)\n\ntry:\n    response = api.transfers.retrieve_a_transfer(\"transfer_id\")\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n    # Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n    # Invalid authorization"
          }
        ]
      },
      "servers": [
        {
          "url": "https://transfers.checkout.com",
          "description": "Production environment"
        },
        {
          "url": "https://transfers.sandbox.checkout.com",
          "description": "Sandbox environment"
        }
      ]
    },
    "/validation/bank-accounts/{country}/{currency}": {
      "get": {
        "tags": [
          "Instruments"
        ],
        "summary": "Get bank account field formatting",
        "description": "Returns the bank account field formatting required to create bank account instruments or perform payouts for the specified country and currency.\n",
        "operationId": "getBankAccountFields",
        "parameters": [
          {
            "name": "country",
            "in": "path",
            "description": "The two-letter <a href=\"https://www.checkout.com/docs/resources/codes/country-codes\" target=\"_blank\">ISO country code</a>\n",
            "required": true,
            "schema": {
              "maxLength": 2,
              "minLength": 2,
              "type": "string"
            }
          },
          {
            "name": "currency",
            "in": "path",
            "description": "The three-letter <a href=\"https://www.checkout.com/docs/resources/codes/currency-codes\" target=\"_blank\">ISO currency code</a>\n",
            "required": true,
            "schema": {
              "maxLength": 3,
              "minLength": 3,
              "type": "string"
            }
          },
          {
            "name": "account-holder-type",
            "in": "query",
            "description": "The type of account holder that will be used to filter the fields returned\n",
            "schema": {
              "enum": [
                "individual",
                "corporate",
                "government"
              ],
              "type": "string"
            }
          },
          {
            "name": "payment-network",
            "in": "query",
            "description": "The banking network that will be used to filter the fields returned\n",
            "schema": {
              "enum": [
                "local",
                "sepa",
                "fps",
                "ach",
                "fedwire",
                "swift"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Bank account fields retrieved successfully",
            "headers": {
              "Cko-Request-Id": {
                "$ref": "#/components/headers/Cko-Request-Id"
              },
              "Cko-Version": {
                "$ref": "#/components/headers/Cko-Version"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BankAccountFields"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Fields not found"
          },
          "422": {
            "description": "Invalid data was sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth": [
              "payouts:bank-details"
            ]
          }
        ],
        "x-code-samples": [
          {
            "lang": "C#",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-net\nusing Checkout.Common;\nusing Checkout.Instruments.Get;\n\n\nICheckoutApi api = CheckoutSdk.Builder().OAuth()\n    .ClientCredentials(\"client_id\", \"client_secret\")\n    .Scopes(OAuthScope.PayoutsBankDetails)\n    .Environment(Environment.Sandbox)\n    .EnvironmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .HttpClientFactory(new DefaultHttpClientFactory())\n    .Build();\n\nBankAccountFieldQuery request = new BankAccountFieldQuery\n{\n    AccountHolderType = AccountHolderType.Individual, PaymentNetwork = PaymentNetwork.Local\n};\n\ntry\n{\n    BankAccountFieldResponse response = await api.InstrumentsClient()\n        .GetBankAccountFieldFormatting(CountryCode.GB, Currency.GBP, request);\n}\ncatch (CheckoutApiException e)\n{\n    // API error\n    string requestId = e.RequestId;\n    var statusCode = e.HttpStatusCode;\n    IDictionary<string, object> errorDetails = e.ErrorDetails;\n}\ncatch (CheckoutArgumentException e)\n{\n    // Bad arguments\n}\ncatch (CheckoutAuthorizationException e)\n{\n    // Invalid authorization\n}"
          },
          {
            "lang": "Go",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-go\nimport (\n\t\"github.com/checkout/checkout-sdk-go\"\n\t\"github.com/checkout/checkout-sdk-go/common\"\n\t\"github.com/checkout/checkout-sdk-go/configuration\"\n\tinstruments \"github.com/checkout/checkout-sdk-go/instruments/nas\"\n)\n\n// OAuth\napi, err := checkout.\n\t\t\tBuilder().\n\t\t\tOAuth().\n\t\t\tWithClientCredentials(\"client_id\", \"client_secret\").\n\t\t\tWithScopes([]string{configuration.PayoutsBankDetails}).\n\t\t\tWithEnvironment(configuration.Sandbox()). // or Environment.PRODUCTION\n                        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.\n\t\t\tBuild()\nif err != nil {\n\treturn nil, err\n}\n\nquery := instruments.QueryBankAccountFormatting{\n\tAccountHolderType: common.Individual,\n\tPaymentNetwork:    instruments.Local,\n}\n\nresponse, err := api.Instruments.GetBankAccountFieldFormatting(\"GB\", \"GBP\", query)\nif err != nil {\n\treturn nil, err\n}\n\nreturn response, nil"
          },
          {
            "lang": "Java",
            "source": "// For more information please refer to https://github.com/checkout/checkout-sdk-javaç\nimport com.checkout.CheckoutApi;\nimport com.checkout.CheckoutApiException;\nimport com.checkout.CheckoutArgumentException;\nimport com.checkout.CheckoutAuthorizationException;\nimport com.checkout.CheckoutSdk;\nimport com.checkout.Environment;\nimport com.checkout.OAuthScope;\nimport com.checkout.common.AccountHolderType;\nimport com.checkout.common.CountryCode;\nimport com.checkout.common.Currency;\nimport com.checkout.instruments.get.BankAccountFieldQuery;\nimport com.checkout.instruments.get.BankAccountFieldResponse;\nimport com.checkout.instruments.get.PaymentNetwork;\n\n// OAuth\nCheckoutApi api = CheckoutSdk.builder()\n    .oAuth()\n    .clientCredentials(\"client_id\", \"client_secret\")\n    .scopes(OAuthScope.PAYOUTS_BANK_DETAILS) // more scopes available\n    .environment(Environment.SANDBOX) // or Environment.PRODUCTION\n    .environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    .build();\n\nBankAccountFieldQuery query = BankAccountFieldQuery.builder()\n    .accountHolderType(AccountHolderType.INDIVIDUAL)\n    .paymentNetwork(PaymentNetwork.LOCAL)\n    .build();\n\ntry {\n    BankAccountFieldResponse response = api.instrumentsClient().getBankAccountFieldFormatting(CountryCode.GB, Currency.GBP, query).get();\n} catch (CheckoutApiException e) {\n    // API error\n    String requestId = e.getRequestId();\n    int statusCode = e.getHttpStatusCode();\n    Map<String, Object> errorDetails = e.getErrorDetails();\n} catch (CheckoutArgumentException e) {\n    // Bad arguments\n} catch (CheckoutAuthorizationException e) {\n    // Invalid authorization\n}"
          },
          {
            "lang": "Node",
            "source": "import { Checkout } from 'checkout-sdk-node';\n\nlet cko = new Checkout('your_client_secret_here', {\n\tclient: 'ack_XXXXXXXXXXXX',\n\tscope: ['gateway'], // array of scopes\n\tenvironment: 'sandbox', // or \"production\"\n        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\"\n});\n\n// Or if you use api keys:\n// const cko = new Checkout('sk_sbox_XXX', { pk: 'pk_sbox_XXX'}});\n\ntry {\n\tconst bank = await cko.instruments.getBankAccountFieldFormatting('GB', 'GBP');\n} catch (err) {\n\tconsole.log(err.name);\n}"
          },
          {
            "lang": "PHP",
            "source": "<?php\n//For more information please refer to https://github.com/checkout/checkout-sdk-php\n\nuse Checkout\\CheckoutApiException;\nuse Checkout\\CheckoutAuthorizationException;\nuse Checkout\\CheckoutSdk;\nuse Checkout\\Common\\AccountHolderType;\nuse Checkout\\Common\\Country;\nuse Checkout\\Common\\Currency;\nuse Checkout\\Environment;\nuse Checkout\\Instruments\\Get\\BankAccountFieldQuery;\nuse Checkout\\Instruments\\Get\\PaymentNetwork;\nuse Checkout\\OAuthScope;\n\n$api = CheckoutSdk::builder()->oAuth()\n    ->clientCredentials(\"client_id\", \"client_secret\")\n    ->scopes([OAuthScope::$PayoutsBankDetails])\n    ->environment(Environment::sandbox())\n    ->environmentSubdomain(\"{prefix}\") // Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see https://www.checkout.com/docs/developer-resources/api/api-endpoints.\n    ->build();\n\n$request = new BankAccountFieldQuery();\n$request->payment_network = PaymentNetwork::$local;\n$request->account_holder_type = AccountHolderType::$individual;\n\ntry {\n    $response = $api->getInstrumentsClient()->getBankAccountFieldFormatting(Country::$GB, Currency::$GBP, $request);\n} catch (CheckoutApiException $e) {\n    // API error\n    $error_details = $e->error_details;\n    $http_status_code = isset($e->http_metadata) ? $e->http_metadata->getStatusCode() : null;\n} catch (CheckoutAuthorizationException $e) {\n    // Bad Invalid authorization\n}"
          },
          {
            "lang": "Python",
            "source": "# For more information please refer to https://github.com/checkout/checkout-sdk-python\nimport checkout_sdk\nfrom checkout_sdk.instruments.instruments import BankAccountFieldQuery, AccountHolderType, PaymentNetwork\nfrom checkout_sdk.checkout_sdk import CheckoutSdk\nfrom checkout_sdk.common.enums import Country, Currency\nfrom checkout_sdk.environment import Environment\nfrom checkout_sdk.exception import CheckoutApiException, CheckoutArgumentException, CheckoutAuthorizationException\nfrom checkout_sdk.oauth_scopes import OAuthScopes\n\n# OAuth\noauth = (\n    CheckoutSdk.builder() \n    .oauth() \n    .client_credentials('client_id', 'client_secret') \n    .environment(Environment.sandbox())  # or Environment.production()\n    .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.\n    .scopes([OAuthScopes.PAYOUTS_BANK_DETAILS]) \n    .build()\n)\n\nquery = BankAccountFieldQuery()\nquery.account_holder_type = AccountHolderType.INDIVIDUAL\nquery.payment_network = PaymentNetwork.LOCAL\n\ntry:\n    response = api.instruments.get_bank_account_field_formatting(Country.GB, Currency.GBP, query)\nexcept CheckoutApiException as err:\n    # API error\n    request_id = err.request_id\n    status_code = err.http_status_code\n    error_details = err.error_details\n    http_response = err.http_response\nexcept CheckoutArgumentException as err:\n    # Bad arguments\n\nexcept CheckoutAuthorizationException as err:\n    # Invalid authorization"
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "Address": {
        "type": "object",
        "properties": {
          "address_line1": {
            "maxLength": 200,
            "type": "string",
            "description": "The first line of the address.",
            "example": "123 High St."
          },
          "address_line2": {
            "maxLength": 200,
            "type": "string",
            "description": "The second line of the address. <p/>\n\n For SEPA payments, this value has a maximum length of 10 characters.\n",
            "example": "Flat 456"
          },
          "city": {
            "maxLength": 50,
            "type": "string",
            "description": "The address city.",
            "example": "London"
          },
          "state": {
            "maxLength": 3,
            "type": "string",
            "description": "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": {
            "maxLength": 50,
            "type": "string",
            "description": "The address zip or postal code.",
            "example": "SW1A 1AA"
          },
          "country": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string",
            "description": "The two-letter <a href=\"https://www.checkout.com/docs/resources/codes/country-codes\" target=\"_blank\">ISO country code</a> of the address.",
            "example": "GB"
          }
        }
      },
      "AdvAddress": {
        "type": "object",
        "properties": {
          "address_line1": {
            "maxLength": 250,
            "type": "string",
            "description": "The first line of the address.",
            "example": "123 Main Street"
          },
          "address_line2": {
            "maxLength": 250,
            "type": "string",
            "description": "The second line of the address.",
            "example": "Apt 4B"
          },
          "city": {
            "maxLength": 50,
            "type": "string",
            "description": "The city or town.",
            "example": "London"
          },
          "state": {
            "maxLength": 50,
            "type": "string",
            "description": "The state, county, or province.",
            "example": "Greater London"
          },
          "zip": {
            "maxLength": 50,
            "type": "string",
            "description": "The postal or ZIP code.",
            "example": "SW1A 1AA"
          },
          "country": {
            "maxLength": 2,
            "type": "string",
            "description": "The two-letter <a href=\"https://www.checkout.com/docs/resources/codes/country-codes\" target=\"_blank\">ISO country code</a> of the address.",
            "example": "GB"
          }
        },
        "description": "The address extracted from the document."
      },
      "AdvAddressDocumentResult": {
        "type": "object",
        "properties": {
          "document_type": {
            "type": "string",
            "description": "The type of address document submitted.",
            "example": "utility_bill"
          },
          "issuer": {
            "type": "string",
            "description": "The issuer of the address document.",
            "example": "EDF Energy"
          },
          "full_names": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "The full name of a person named on the document."
            },
            "description": "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.",
            "example": [
              "Hannah Bret"
            ]
          },
          "issue_date": {
            "type": "string",
            "description": "The date the document was issued.",
            "format": "date",
            "example": "2024-01-15T00:00:00.0000000"
          },
          "address": {
            "$ref": "#/components/schemas/AdvAddress"
          }
        },
        "description": "The result of the address document check.",
        "readOnly": true
      },
      "AdvAddressDocumentVerification": {
        "required": [
          "applicant_id",
          "user_journey_id"
        ],
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/AdvAddressDocumentVerificationBase"
          }
        ]
      },
      "AdvAddressDocumentVerificationBase": {
        "type": "object",
        "properties": {
          "applicant_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ApplicantId"
              }
            ]
          },
          "user_journey_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IdvUserJourneyId"
              }
            ]
          },
          "declared_data": {
            "$ref": "#/components/schemas/IdvDeclaredData"
          }
        }
      },
      "AdvAddressDocumentVerificationId": {
        "pattern": "^adv_\\w+$",
        "type": "string",
        "description": "The address document verification's unique identifier.",
        "readOnly": true,
        "example": "adv_tkoi5db4hryu5cei5vwoabr7we"
      },
      "AdvAddressDocumentVerificationOutput": {
        "required": [
          "id",
          "applicant_id",
          "user_journey_id",
          "status",
          "response_codes",
          "_links"
        ],
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/DatedObject"
          },
          {
            "$ref": "#/components/schemas/AdvAddressDocumentVerificationBase"
          }
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/AdvAddressDocumentVerificationId"
          },
          "status": {
            "$ref": "#/components/schemas/AdvVerificationStatuses"
          },
          "address_document": {
            "$ref": "#/components/schemas/AdvAddressDocumentResult"
          },
          "response_codes": {
            "$ref": "#/components/schemas/IdvResponseCodes"
          },
          "risk_labels": {
            "$ref": "#/components/schemas/IdvRiskLabels"
          },
          "_links": {
            "$ref": "#/components/schemas/IdvIdentityVerificationLinks"
          }
        }
      },
      "AdvAttemptAsset": {
        "required": [
          "type",
          "_links"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "document"
            ],
            "type": "string",
            "description": "The type of asset."
          },
          "_links": {
            "required": [
              "asset_url"
            ],
            "type": "object",
            "properties": {
              "asset_url": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/IdvHalLink"
                  }
                ]
              }
            }
          }
        }
      },
      "AdvAttemptAssets": {
        "required": [
          "total_count",
          "skip",
          "limit",
          "data",
          "_links"
        ],
        "type": "object",
        "properties": {
          "total_count": {
            "type": "integer",
            "description": "The total number of assets."
          },
          "skip": {
            "type": "integer",
            "description": "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": {
            "type": "integer",
            "description": "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": {
            "minItems": 0,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AdvAttemptAsset"
            },
            "description": "The list of assets for the current page."
          },
          "_links": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IdvSelfLink"
              },
              {
                "$ref": "#/components/schemas/IdvNextLink"
              },
              {
                "$ref": "#/components/schemas/IdvPreviousLink"
              }
            ],
            "description": "The details of links to the previous, current, and next resources.",
            "readOnly": true
          }
        }
      },
      "AdvAttemptId": {
        "pattern": "^adva_\\w+$",
        "type": "string",
        "description": "The unique identifier for the address document verification attempt.",
        "readOnly": true,
        "example": "adva_tkoi5db4hryu5cei5vwoabr7we"
      },
      "AdvAttemptRequest": {
        "required": [
          "document"
        ],
        "type": "object",
        "properties": {
          "document": {
            "type": "string",
            "description": "The address document image to upload.",
            "format": "binary"
          }
        }
      },
      "AdvAttemptResponse": {
        "required": [
          "id",
          "status",
          "response_codes",
          "_links"
        ],
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/DatedObject"
          }
        ],
        "properties": {
          "id": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/AdvAttemptId"
              }
            ]
          },
          "status": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/AdvAttemptStates"
              }
            ]
          },
          "response_codes": {
            "minItems": 0,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IdvResponseCode"
            },
            "description": "One or more [response codes](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes) that provide more information about the status.",
            "readOnly": true
          },
          "_links": {
            "$ref": "#/components/schemas/IdvSelfLink"
          }
        }
      },
      "AdvAttemptResponseList": {
        "required": [
          "total_count",
          "skip",
          "limit",
          "data",
          "_links"
        ],
        "type": "object",
        "properties": {
          "total_count": {
            "type": "integer",
            "description": "The total number of attempts."
          },
          "skip": {
            "type": "integer",
            "description": "The number of attempts skipped."
          },
          "limit": {
            "type": "integer",
            "description": "The maximum number of attempts returned."
          },
          "data": {
            "minItems": 0,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AdvAttemptResponse"
            },
            "description": "The details of the attempts."
          },
          "_links": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IdvSelfLink"
              },
              {
                "$ref": "#/components/schemas/IdvNextLink"
              },
              {
                "$ref": "#/components/schemas/IdvPreviousLink"
              }
            ],
            "description": "The details of links to the previous, current, and next resources.",
            "readOnly": true
          }
        }
      },
      "AdvAttemptStates": {
        "enum": [
          "checks_in_progress",
          "checks_inconclusive",
          "completed",
          "quality_checks_aborted",
          "quality_checks_in_progress",
          "terminated"
        ],
        "type": "string",
        "description": "The [status](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Attempt_statuses) of the address document verification attempt."
      },
      "AdvVerificationStatuses": {
        "enum": [
          "created",
          "quality_checks_in_progress",
          "checks_in_progress",
          "approved",
          "declined",
          "retry_required",
          "inconclusive"
        ],
        "type": "string",
        "description": "The address document [verification status](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Check_statuses)."
      },
      "DelegatedPaymentAllowance": {
        "required": [
          "reason",
          "max_amount",
          "currency",
          "merchant_id",
          "checkout_session_id",
          "expires_at"
        ],
        "type": "object",
        "properties": {
          "reason": {
            "enum": [
              "one_time"
            ],
            "type": "string",
            "description": "The reason for the allowance.",
            "example": "one_time"
          },
          "max_amount": {
            "type": "integer",
            "description": "The maximum amount that can be charged using the delegated payment token.\n\nProvide the amount in the <a href=\"https://www.checkout.com/docs/resources/calculating-the-amount\" target=\"_blank\">minor currency unit</a>.\n",
            "example": 10000
          },
          "currency": {
            "maxLength": 3,
            "minLength": 3,
            "type": "string",
            "description": "The three-letter <a href=\"https://www.checkout.com/docs/resources/codes/currency-codes\" target=\"_blank\">ISO 4217 currency code</a>.",
            "example": "USD"
          },
          "merchant_id": {
            "maxLength": 256,
            "type": "string",
            "description": "The unique identifier of the merchant that will process the payment.",
            "example": "cli_vkuhvk4vjn2edkps7dfsq6emqm"
          },
          "checkout_session_id": {
            "type": "string",
            "description": "The identifier of the checkout session associated with this delegated payment.",
            "example": "1PQrsT"
          },
          "expires_at": {
            "type": "string",
            "description": "The expiry time of the delegated payment token, in RFC 3339 format. Must be a time in the future.\n",
            "format": "date-time",
            "example": "2025-10-09T07:20:50.5200000+00:00"
          }
        },
        "description": "The spending constraints that define what the delegated payment token is authorized for."
      },
      "DelegatedPaymentBillingAddress": {
        "required": [
          "name",
          "line_one",
          "city",
          "postal_code",
          "country"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 256,
            "type": "string",
            "description": "The full name of the customer.",
            "example": "John Doe"
          },
          "line_one": {
            "maxLength": 60,
            "type": "string",
            "description": "The first line of the street address.",
            "example": "123 Fake St."
          },
          "line_two": {
            "maxLength": 60,
            "type": "string",
            "description": "The second line of the street address.",
            "example": "Unit 1"
          },
          "city": {
            "maxLength": 60,
            "type": "string",
            "description": "The city of the billing address.",
            "example": "San Francisco"
          },
          "state": {
            "type": "string",
            "description": "The state, county, province, or region of the billing address.",
            "example": "CA"
          },
          "postal_code": {
            "maxLength": 20,
            "type": "string",
            "description": "The postal code or ZIP code of the billing address.",
            "example": "12345"
          },
          "country": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string",
            "description": "The two-letter <a href=\"https://www.checkout.com/docs/resources/codes/country-codes\" target=\"_blank\">ISO 3166-1 alpha-2 country code</a>.",
            "example": "US"
          }
        },
        "description": "The customer billing address associated with the delegated payment."
      },
      "DelegatedPaymentErrorResponse": {
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "invalid_request",
              "rate_limit_exceeded",
              "processing_error",
              "service_unavailable"
            ],
            "type": "string",
            "description": "The error category.\n",
            "example": "invalid_request"
          },
          "code": {
            "type": "string",
            "description": "A machine-readable error code identifying the specific error.",
            "example": "invalid_card"
          },
          "message": {
            "type": "string",
            "description": "A human-readable description of the error.",
            "example": "Missing/malformed field"
          },
          "param": {
            "type": "string",
            "description": "A JSONPath-style reference to the request field that caused the error, or null if not applicable.",
            "nullable": true,
            "example": "$.payment_method.number"
          }
        },
        "description": "The error response returned when a delegated payment request fails."
      },
      "DelegatedPaymentMethodCard": {
        "required": [
          "type",
          "card_number_type",
          "number",
          "metadata"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "card"
            ],
            "type": "string",
            "description": "The payment method type.",
            "example": "card"
          },
          "card_number_type": {
            "enum": [
              "fpan",
              "network_token"
            ],
            "type": "string",
            "description": "The type of card number provided.\n\n- `fpan` – a Funding Primary Account Number. The card number printed on the card.\n- `network_token` – a provisioned network token that represents the underlying card.\n",
            "example": "fpan"
          },
          "number": {
            "type": "string",
            "description": "The full card number.\n",
            "example": "4242424242424242"
          },
          "exp_month": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string",
            "description": "The card expiry month, in two-digit format (MM).",
            "example": "11"
          },
          "exp_year": {
            "maxLength": 4,
            "minLength": 4,
            "type": "string",
            "description": "The card expiry year, in four-digit format (YYYY).",
            "example": "2026"
          },
          "name": {
            "type": "string",
            "description": "The name of the cardholder as it appears on the card.",
            "example": "Jane Doe"
          },
          "cvc": {
            "maxLength": 4,
            "minLength": 3,
            "type": "string",
            "description": "The card verification code (CVC/CVV).",
            "example": "223"
          },
          "cryptogram": {
            "type": "string",
            "description": "The cryptogram associated with a network token transaction. Required when `card_number_type` is `network_token`.",
            "example": "gXc5UCLnM6ckD7pjM1TdPA=="
          },
          "eci_value": {
            "type": "string",
            "description": "The Electronic Commerce Indicator (ECI) or Security Level Indicator (SLI) value for network token transactions.",
            "example": "07"
          },
          "checks_performed": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of verification checks that have been performed on the card.",
            "example": [
              "avs",
              "cvv",
              "ani",
              "auth0"
            ]
          },
          "iin": {
            "maxLength": 6,
            "minLength": 6,
            "type": "string",
            "description": "The Issuer Identification Number (IIN), also known as the Bank Identification Number (BIN). This is typically the first 6 digits of the card number.",
            "example": "123456"
          },
          "display_card_funding_type": {
            "enum": [
              "credit",
              "debit",
              "prepaid"
            ],
            "type": "string",
            "description": "The funding type of the card, used for display purposes.",
            "example": "credit"
          },
          "display_wallet_type": {
            "type": "string",
            "description": "The wallet type associated with the card, used for display purposes (for example, Apple Pay or Google Pay).",
            "example": "wallet"
          },
          "display_brand": {
            "type": "string",
            "description": "The card brand, used for display purposes (for example, Visa, Mastercard).",
            "example": "Visa"
          },
          "display_last4": {
            "maxLength": 4,
            "minLength": 4,
            "type": "string",
            "description": "The last four digits of the card number, used for display purposes.",
            "example": "4242"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key-value pairs containing additional payment method metadata.",
            "example": {
              "issuing_bank": "temp"
            }
          }
        },
        "description": "The card details for a delegated payment."
      },
      "DelegatedPaymentRequest": {
        "required": [
          "payment_method",
          "allowance",
          "risk_signals",
          "metadata"
        ],
        "type": "object",
        "properties": {
          "payment_method": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DelegatedPaymentMethodCard"
              }
            ],
            "description": "The card payment method details."
          },
          "allowance": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DelegatedPaymentAllowance"
              }
            ],
            "description": "The spending constraints for the delegated payment token."
          },
          "billing_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DelegatedPaymentBillingAddress"
              }
            ],
            "description": "The customer billing address."
          },
          "risk_signals": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DelegatedPaymentRiskSignal"
            },
            "description": "An array of risk assessment signals provided by the platform."
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key-value pairs to attach to the delegated payment request.\n\nThe `metadata` object only supports string values.\n",
            "example": {
              "campaign": "q4"
            }
          }
        },
        "description": "<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>\nThe request body for creating a delegated payment token.\n"
      },
      "DelegatedPaymentResponse": {
        "required": [
          "id",
          "created",
          "metadata"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the provisioned payment token.",
            "example": "vt_abc123def456ghi789"
          },
          "created": {
            "type": "string",
            "description": "The date and time the token was created, in RFC 3339 format.",
            "format": "date-time",
            "example": "2026-03-11T10:30:00.0000000+00:00"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A set of key-value pairs containing response metadata.",
            "example": {
              "psp": "checkout.com"
            }
          }
        },
        "description": "The response returned when a delegated payment token is successfully created."
      },
      "DelegatedPaymentRiskSignal": {
        "required": [
          "type",
          "score",
          "action"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of risk signal.",
            "example": "card_testing"
          },
          "score": {
            "type": "integer",
            "description": "The risk score associated with this signal.",
            "example": 10
          },
          "action": {
            "type": "string",
            "description": "The action taken based on the risk assessment.",
            "example": "blocked"
          }
        },
        "description": "A risk assessment signal provided by the platform to support fraud decisioning."
      },
      "InventoryAdjustmentRequest": {
        "required": [
          "variant_id",
          "delta",
          "reason"
        ],
        "type": "object",
        "properties": {
          "variant_id": {
            "maxLength": 128,
            "type": "string",
            "description": "The identifier of the variant to adjust. The variant must already exist.",
            "example": "var_123"
          },
          "delta": {
            "type": "integer",
            "description": "The signed change to apply to `on_hand`. Must be non-zero. A negative delta that\nwould drive `on_hand` below zero is rejected with `409 conflict`.\n",
            "example": -3
          },
          "reason": {
            "maxLength": 256,
            "minLength": 1,
            "type": "string",
            "description": "A required free-text reason recorded in the ledger (for example, damage or found stock).\nMust not contain personal data.\n",
            "example": "damaged in warehouse"
          }
        },
        "description": "<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>\nThe request body for applying a relative adjustment to a variant's on-hand stock.\n"
      },
      "InventoryErrorResponse": {
        "type": "object",
        "properties": {
          "request_id": {
            "type": "string",
            "description": "The identifier of the request, for support and correlation.",
            "example": "req_7f3c9a12b8d54e6f"
          },
          "error_type": {
            "type": "string",
            "description": "A high-level classification of the error.",
            "example": "conflict"
          },
          "error_codes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "One or more machine-readable error codes, in the `[subject]_[error]` form.",
            "example": [
              "insufficient_stock"
            ]
          },
          "variant_id": {
            "type": "string",
            "description": "The first variant that failed the request (present on `insufficient_stock`).",
            "example": "var_123"
          },
          "available": {
            "type": "integer",
            "description": "The current sellable availability of the failing variant (present on `insufficient_stock`).",
            "example": 1
          }
        },
        "description": "<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>\nThe error envelope returned by the inventory endpoints. On an `insufficient_stock` conflict it\nalso names the first failing variant and its current availability.\n"
      },
      "InventoryHalLink": {
        "type": "object",
        "properties": {
          "href": {
            "type": "string",
            "description": "Absolute URI of the linked resource.",
            "example": "https://api.checkout.com/inventory/var_123"
          },
          "actions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The HTTP methods supported on the linked resource.",
            "example": [
              "GET"
            ]
          },
          "types": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The media types supported on the linked resource.",
            "example": [
              "application/json"
            ]
          }
        },
        "description": "A HAL link describing a related operation on the resource."
      },
      "InventoryIngestion": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ingestion identifier, in the `ing_{base32-encoded GUID}` format.",
            "example": "ing_01hzy8q2m4n6p8r0s2t4v6w8x0"
          },
          "state": {
            "enum": [
              "awaiting_upload",
              "accepted",
              "processing",
              "completed",
              "completed_with_errors",
              "failed"
            ],
            "type": "string",
            "description": "The current state of the job. `awaiting_upload` is only used by the CSV flow, between\nrequesting an upload slot and starting processing. `completed`, `completed_with_errors`\nand `failed` are terminal.\n",
            "example": "accepted"
          },
          "mode": {
            "enum": [
              "upsert"
            ],
            "type": "string",
            "description": "The update semantics for the batch. Only `upsert` is available in this version.",
            "example": "upsert"
          },
          "counts": {
            "$ref": "#/components/schemas/InventoryIngestionCounts"
          },
          "failure_reason": {
            "allOf": [
              {
                "$ref": "#/components/schemas/InventoryIngestionFailureReason"
              }
            ],
            "description": "Present only when `state` is `failed`."
          },
          "upload_url": {
            "type": "string",
            "description": "A short-lived, `PUT`-only presigned URL to upload the CSV file to. Present only on the\nresponse to a CSV upload-slot request.\n",
            "example": "https://inventory-ingestions.s3.eu-west-1.amazonaws.com/ingestions/mer_1/ing_.../payload.csv?X-Amz-Signature=..."
          },
          "created_on": {
            "type": "string",
            "description": "The date and time the job was created.",
            "format": "date-time",
            "example": "2026-09-24T15:04:05.0000000+00:00"
          },
          "modified_on": {
            "type": "string",
            "description": "The date and time the job was last updated.",
            "format": "date-time",
            "example": "2026-09-24T15:04:11.0000000+00:00"
          },
          "_links": {
            "type": "object",
            "properties": {
              "self": {
                "$ref": "#/components/schemas/InventoryHalLink"
              },
              "results": {
                "$ref": "#/components/schemas/InventoryHalLink"
              },
              "start": {
                "$ref": "#/components/schemas/InventoryHalLink"
              }
            },
            "description": "Links to the operations valid for the job's current state. An `awaiting_upload` job also\nexposes `start`.\n"
          }
        },
        "description": "<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>\nAn asynchronous batch-ingestion job and its current state. Poll it until `state` is terminal,\nthen read the per-item report at `/inventory/ingestions/{id}/results`.\n"
      },
      "InventoryIngestionCounts": {
        "type": "object",
        "properties": {
          "received": {
            "type": "integer",
            "description": "The number of items received in the batch or parsed from the file.",
            "example": 500
          },
          "accepted": {
            "type": "integer",
            "description": "The number of items applied successfully so far.",
            "example": 498
          },
          "rejected": {
            "type": "integer",
            "description": "The number of items rejected so far, each recorded in the results report.",
            "example": 2
          },
          "pending": {
            "type": "integer",
            "description": "The number of items still to be processed. `0` once the job is terminal.",
            "example": 0
          }
        },
        "description": "<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>\nThe running item tally for an ingestion job. `pending` reaches `0` when the job is terminal.\n"
      },
      "InventoryIngestionFailureReason": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "A machine-readable failure code.",
            "example": "file_unreadable"
          },
          "message": {
            "type": "string",
            "description": "A human-readable explanation of the failure.",
            "example": "The uploaded file could not be read as CSV."
          }
        },
        "description": "<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>\nWhy an ingestion job failed as a whole. Present only when `state` is `failed`. A merchant-owned\ncode (for example `file_unreadable`) can be acted on directly; a Checkout-owned code\n(`internal_error`, `processing_timeout`) is alerted on our side and a re-submit is idempotency-safe.\n"
      },
      "InventoryIngestionItem": {
        "required": [
          "variant_id"
        ],
        "type": "object",
        "anyOf": [
          {
            "required": [
              "stock"
            ]
          },
          {
            "required": [
              "product"
            ]
          }
        ],
        "properties": {
          "variant_id": {
            "maxLength": 128,
            "type": "string",
            "description": "The merchant's variant identifier, unique within the merchant.",
            "example": "var_123"
          },
          "stock": {
            "$ref": "#/components/schemas/InventorySetLevelsRequest"
          },
          "product": {
            "$ref": "#/components/schemas/InventorySetProductRequest"
          }
        },
        "description": "<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>\nOne item in a JSON batch. Provide:\n- `stock` to set stock\n- `product` to set product knowledge, or\n- both.\n\nAt least one of the two must be present.\n"
      },
      "InventoryIngestionItemResult": {
        "type": "object",
        "properties": {
          "index": {
            "type": "integer",
            "description": "The zero-based position of the item in the submitted batch or file.",
            "example": 1
          },
          "variant_id": {
            "type": "string",
            "description": "The variant identifier the item targeted.",
            "example": "var_123"
          },
          "status": {
            "enum": [
              "accepted",
              "rejected"
            ],
            "type": "string",
            "description": "Whether the item was applied or rejected.",
            "example": "rejected"
          },
          "error_codes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The collection of one or more machine-readable rejection codes, in the `[subject]_[error]` form. Empty for an accepted item.",
            "example": [
              "on_hand_negative"
            ]
          }
        },
        "description": "<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>\nThe outcome for a single item in the batch.\n"
      },
      "InventoryIngestionRequest": {
        "required": [
          "items"
        ],
        "type": "object",
        "properties": {
          "mode": {
            "enum": [
              "upsert"
            ],
            "type": "string",
            "description": "The update semantics for the batch. Only `upsert` is available in this version.",
            "default": "upsert",
            "example": "upsert"
          },
          "items": {
            "maxItems": 500,
            "minItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InventoryIngestionItem"
            },
            "description": "The list of items to apply. Up to 500 items per batch."
          }
        },
        "description": "<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>\nThe body of a JSON batch submit. Processing is asynchronous and non-atomic: good items apply\neven if some are rejected.\n"
      },
      "InventoryIngestionResults": {
        "type": "object",
        "properties": {
          "ingestion_id": {
            "type": "string",
            "description": "The ingestion identifier the report belongs to.",
            "example": "ing_01hzy8q2m4n6p8r0s2t4v6w8x0"
          },
          "counts": {
            "$ref": "#/components/schemas/InventoryIngestionCounts"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InventoryIngestionItemResult"
            },
            "description": "The list of per-item outcomes."
          }
        },
        "description": "<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>\nThe per-item results report for a terminal ingestion job. By default `items` lists only the\nrejected rows; request `?include=all` to list every row.\n"
      },
      "InventoryIngestionUploadRequest": {
        "type": "object",
        "properties": {
          "mode": {
            "enum": [
              "upsert"
            ],
            "type": "string",
            "description": "The update semantics for the upload. Only `upsert` is available in this version.",
            "default": "upsert",
            "example": "upsert"
          },
          "format": {
            "enum": [
              "csv"
            ],
            "type": "string",
            "description": "The uploaded file format. Only `csv` is available in this version.",
            "default": "csv",
            "example": "csv"
          }
        },
        "description": "<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>\nThe body of a CSV upload-slot request. The response returns a presigned `upload_url` to `PUT`\nthe file to and a `start` link to begin processing.\n"
      },
      "InventoryLevels": {
        "type": "object",
        "properties": {
          "variant_id": {
            "type": "string",
            "description": "The merchant-provided identifier for the variant.",
            "example": "var_123"
          },
          "on_hand": {
            "type": "integer",
            "description": "Physical stock known to Checkout.com.",
            "example": 10
          },
          "reserved": {
            "type": "integer",
            "description": "The sum of all currently active holds against this variant.",
            "example": 2
          },
          "safety_stock": {
            "type": "integer",
            "description": "A buffer quantity withheld from sale.",
            "example": 1
          },
          "available": {
            "type": "integer",
            "description": "The sellable quantity, clamped to zero: `max(0, on_hand − reserved − safety_stock)`.\nThis is the value an availability feed should publish.\n",
            "example": 7
          },
          "state": {
            "enum": [
              "in_stock",
              "limited",
              "out_of_stock"
            ],
            "type": "string",
            "description": "A derived availability state for the variant.",
            "example": "in_stock"
          },
          "source": {
            "enum": [
              "managed",
              "sync"
            ],
            "type": "string",
            "description": "How the levels are maintained. Always `managed` in the current version.",
            "example": "managed"
          },
          "created_on": {
            "type": "string",
            "description": "The date and time the inventory item was created.",
            "format": "date-time",
            "example": "2026-07-01T09:15:00.0000000+00:00"
          },
          "modified_on": {
            "type": "string",
            "description": "The date and time the inventory item was last modified.",
            "format": "date-time",
            "example": "2026-07-13T14:02:11.0000000+00:00"
          },
          "product": {
            "allOf": [
              {
                "$ref": "#/components/schemas/InventoryProductKnowledge"
              }
            ],
            "description": "The variant's product knowledge, embedded when `expand=product` is passed on the request and\nproduct knowledge exists for the variant. Omitted otherwise.\n"
          },
          "_links": {
            "type": "object",
            "properties": {
              "self": {
                "$ref": "#/components/schemas/InventoryHalLink"
              },
              "set": {
                "$ref": "#/components/schemas/InventoryHalLink"
              }
            },
            "description": "Links to related operations on the variant."
          }
        },
        "description": "<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>\nThe current stock levels and sellable availability for a single variant.\n"
      },
      "InventoryMoney": {
        "required": [
          "amount",
          "currency"
        ],
        "type": "object",
        "properties": {
          "amount": {
            "type": "integer",
            "description": "The amount in the <a href=\"https://www.checkout.com/docs/resources/calculating-the-amount\" target=\"_blank\">minor currency unit</a>.\n",
            "example": 1999
          },
          "currency": {
            "maxLength": 3,
            "minLength": 3,
            "type": "string",
            "description": "The three-letter <a href=\"https://www.checkout.com/docs/resources/codes/currency-codes\" target=\"_blank\">ISO 4217 currency code</a>.",
            "example": "USD"
          }
        },
        "description": "A monetary amount in the currency's minor units."
      },
      "InventoryProductKnowledge": {
        "required": [
          "variant_id",
          "title",
          "description",
          "product_url",
          "image_url",
          "condition",
          "created_on",
          "modified_on",
          "_links"
        ],
        "type": "object",
        "properties": {
          "variant_id": {
            "type": "string",
            "description": "The merchant-provided identifier for the variant.",
            "example": "var_123"
          },
          "title": {
            "type": "string",
            "description": "The product's display title.",
            "example": "Classic leather belt, brown"
          },
          "description": {
            "type": "string",
            "description": "The product's display description.",
            "example": "A full-grain leather belt with a brushed nickel buckle."
          },
          "product_url": {
            "type": "string",
            "description": "The canonical URL for the product page.",
            "example": "https://merchant.example.com/products/classic-leather-belt-brown"
          },
          "image_url": {
            "type": "string",
            "description": "The URL of the primary product image.",
            "example": "https://merchant.example.com/images/belt-brown-main.jpg"
          },
          "additional_image_urls": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Additional product image URLs, beyond `image_url`.",
            "example": [
              "https://merchant.example.com/images/belt-brown-alt1.jpg"
            ]
          },
          "video_url": {
            "type": "string",
            "description": "The URL of a product video.",
            "example": "https://merchant.example.com/videos/belt-brown.mp4"
          },
          "model_3d_url": {
            "type": "string",
            "description": "The URL of a 3D model of the product.",
            "example": "https://merchant.example.com/models/belt-brown.glb"
          },
          "sku": {
            "type": "string",
            "description": "The merchant's stock-keeping unit for the product.",
            "example": "BELT-BRN-001"
          },
          "gtin": {
            "type": "string",
            "description": "The product's Global Trade Item Number (UPC, EAN, ISBN, or JAN).",
            "example": "00012345678905"
          },
          "mpn": {
            "type": "string",
            "description": "The product's Manufacturer Part Number.",
            "example": "MPN-4471"
          },
          "brand": {
            "type": "string",
            "description": "The product's brand name.",
            "example": "Acme Leathercraft"
          },
          "category": {
            "type": "string",
            "description": "The merchant's category for the product.",
            "example": "Apparel & Accessories > Belts"
          },
          "price": {
            "$ref": "#/components/schemas/InventoryMoney"
          },
          "sale_price": {
            "$ref": "#/components/schemas/InventoryMoney"
          },
          "sale_price_starts_at": {
            "type": "string",
            "description": "The date and time from which `sale_price` applies. Paired with `sale_price`.",
            "format": "date-time",
            "example": "2026-08-01T00:00:00.0000000+00:00"
          },
          "sale_price_ends_at": {
            "type": "string",
            "description": "The date and time after which `sale_price` no longer applies. Paired with `sale_price`.",
            "format": "date-time",
            "example": "2026-08-31T23:59:59.0000000+00:00"
          },
          "group_id": {
            "type": "string",
            "description": "The identifier shared by all variants of the same product (for example, the same belt in\ndifferent sizes). When set, `color` and `size` are both required.\n",
            "example": "grp_belt_classic"
          },
          "group_title": {
            "type": "string",
            "description": "A display title for the variant group.",
            "example": "Classic leather belt"
          },
          "color": {
            "type": "string",
            "description": "The variant's color. Required when `group_id` is set.",
            "example": "Brown"
          },
          "size": {
            "type": "string",
            "description": "The variant's size. Required when `group_id` is set.",
            "example": "M"
          },
          "size_system": {
            "type": "string",
            "description": "The sizing system that `size` is expressed in.",
            "example": "US"
          },
          "gender": {
            "type": "string",
            "description": "The target gender for the product.",
            "example": "unisex"
          },
          "condition": {
            "enum": [
              "new",
              "used",
              "refurbished"
            ],
            "type": "string",
            "description": "The product's condition. Always present; defaults to `new` when not provided.",
            "example": "new"
          },
          "material": {
            "type": "string",
            "description": "The product's primary material.",
            "example": "Full-grain leather"
          },
          "age_group": {
            "type": "string",
            "description": "The target age group for the product.",
            "example": "adult"
          },
          "length": {
            "type": "number",
            "description": "The product's length. Provided together with `width`, `height` and `dimension_unit`, or not at all.",
            "example": 110
          },
          "width": {
            "type": "number",
            "description": "The product's width. Provided together with `length`, `height` and `dimension_unit`, or not at all.",
            "example": 3.5
          },
          "height": {
            "type": "number",
            "description": "The product's height. Provided together with `length`, `width` and `dimension_unit`, or not at all.",
            "example": 0.5
          },
          "dimension_unit": {
            "type": "string",
            "description": "The unit that `length`, `width` and `height` are expressed in.",
            "example": "cm"
          },
          "weight": {
            "type": "number",
            "description": "The product's weight. Provided together with `weight_unit`, or not at all.",
            "example": 0.2
          },
          "weight_unit": {
            "type": "string",
            "description": "The unit that `weight` is expressed in.",
            "example": "kg"
          },
          "expiration_date": {
            "type": "string",
            "description": "The date and time after which the product should no longer be offered.",
            "format": "date-time",
            "example": "2027-01-01T00:00:00.0000000+00:00"
          },
          "harmonized_system_code": {
            "type": "string",
            "description": "The product's Harmonized System (HS) code, for customs purposes.",
            "example": "4203.30"
          },
          "country_of_origin": {
            "type": "string",
            "description": "The two-letter ISO 3166-1 alpha-2 country of origin.",
            "example": "IT"
          },
          "seller_name": {
            "type": "string",
            "description": "The name of the seller of record, when different from the merchant.",
            "example": "Acme Leathercraft Ltd"
          },
          "seller_url": {
            "type": "string",
            "description": "The URL of the seller of record.",
            "example": "https://acme-leathercraft.example.com"
          },
          "seller_privacy_policy": {
            "type": "string",
            "description": "The URL of the seller's privacy policy.",
            "example": "https://acme-leathercraft.example.com/privacy"
          },
          "seller_tos": {
            "type": "string",
            "description": "The URL of the seller's terms of service.",
            "example": "https://acme-leathercraft.example.com/terms"
          },
          "created_on": {
            "type": "string",
            "description": "The date and time the product knowledge was created.",
            "format": "date-time",
            "example": "2026-08-01T09:15:00.0000000+00:00"
          },
          "modified_on": {
            "type": "string",
            "description": "The date and time the product knowledge was last modified.",
            "format": "date-time",
            "example": "2026-08-13T14:02:11.0000000+00:00"
          },
          "_links": {
            "type": "object",
            "properties": {
              "self": {
                "$ref": "#/components/schemas/InventoryHalLink"
              },
              "set": {
                "$ref": "#/components/schemas/InventoryHalLink"
              },
              "delete": {
                "$ref": "#/components/schemas/InventoryHalLink"
              }
            },
            "description": "Links to related operations on the variant's product knowledge."
          }
        },
        "description": "<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>\nThe product knowledge for a single variant: the merchandising fields an AI agent needs to\npresent, compare and recommend a product, independent of stock and pricing operations.\n\nOptional fields are omitted from the response entirely when not set.\n"
      },
      "InventoryReservation": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The reservation identifier, in the `rsv_{base32-encoded GUID}` format.",
            "example": "rsv_tkoi5db4hryu5cei5vwoabr7we"
          },
          "state": {
            "enum": [
              "held",
              "committed",
              "released",
              "expired"
            ],
            "type": "string",
            "description": "The current state of the hold. A `held` reservation past its `expires_at` is reported\nas `expired`. Transitions out of `held` are terminal.\n",
            "example": "held"
          },
          "owner_type": {
            "type": "string",
            "description": "Echo of the owning caller kind.",
            "example": "ucp_session"
          },
          "owner_reference": {
            "type": "string",
            "description": "Echo of the owning session or checkout reference.",
            "example": "cs_8f42"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InventoryReservationItem"
            },
            "description": "The variants and quantities held by this reservation."
          },
          "expires_at": {
            "type": "string",
            "description": "The server-authoritative time at which the hold expires.",
            "format": "date-time",
            "example": "2026-07-14T08:47:00.0000000+00:00"
          },
          "created_on": {
            "type": "string",
            "description": "The date and time the reservation was created.",
            "format": "date-time",
            "example": "2026-07-14T08:32:00.0000000+00:00"
          },
          "_links": {
            "type": "object",
            "properties": {
              "self": {
                "$ref": "#/components/schemas/InventoryHalLink"
              },
              "commit": {
                "$ref": "#/components/schemas/InventoryHalLink"
              },
              "release": {
                "$ref": "#/components/schemas/InventoryHalLink"
              }
            },
            "description": "Links to the operations valid for the reservation's current state. A `held` reservation\nexposes `self`, `commit` and `release`; a terminal reservation exposes `self` only.\n"
          }
        },
        "description": "<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>\nA stock hold and its current lifecycle state.\n"
      },
      "InventoryReservationItem": {
        "required": [
          "variant_id",
          "quantity"
        ],
        "type": "object",
        "properties": {
          "variant_id": {
            "maxLength": 128,
            "type": "string",
            "description": "The identifier of the variant to hold. The variant must already exist.",
            "example": "var_123"
          },
          "quantity": {
            "minimum": 1,
            "type": "integer",
            "description": "The quantity to hold for this variant.",
            "example": 2
          }
        },
        "description": "A single variant and quantity within a reservation."
      },
      "InventoryReservationRequest": {
        "required": [
          "owner_type",
          "owner_reference",
          "items"
        ],
        "type": "object",
        "properties": {
          "owner_type": {
            "maxLength": 64,
            "type": "string",
            "description": "The kind of caller that owns the hold.",
            "example": "ucp_session"
          },
          "owner_reference": {
            "maxLength": 256,
            "type": "string",
            "description": "An opaque reference to the owning session or checkout.",
            "example": "cs_8f42"
          },
          "items": {
            "maxItems": 45,
            "minItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InventoryReservationItem"
            },
            "description": "The variants and quantities to hold. `variant_id`s must be unique within the request."
          },
          "ttl_seconds": {
            "maximum": 3600,
            "minimum": 60,
            "type": "integer",
            "description": "How long the hold remains valid before it auto-expires. Defaults to `900`.",
            "example": 900
          }
        },
        "description": "<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>\nThe request body for creating an atomic multi-variant hold. All items are reserved together\nor none are. The hold is protocol-neutral: it is bound to an `owner_type` / `owner_reference`\nsupplied by the calling protocol adapter (for example, a UCP session or an ACP checkout).\n"
      },
      "InventorySetLevelsRequest": {
        "required": [
          "on_hand"
        ],
        "type": "object",
        "properties": {
          "on_hand": {
            "minimum": 0,
            "type": "integer",
            "description": "The absolute physical stock to set for the variant.",
            "example": 25
          },
          "safety_stock": {
            "minimum": 0,
            "type": "integer",
            "description": "The buffer quantity to withhold from sale. Defaults to `0` when the item is\ncreated and is left unchanged on update if omitted.\n",
            "example": 2
          },
          "reason": {
            "maxLength": 256,
            "type": "string",
            "description": "An optional free-text reason recorded in the ledger. Must not contain personal data.\n",
            "example": "stock take 2026-07"
          }
        },
        "description": "<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>\nThe request body for setting absolute stock levels on a variant.\n"
      },
      "InventorySetProductRequest": {
        "required": [
          "title",
          "description",
          "product_url",
          "image_url"
        ],
        "type": "object",
        "properties": {
          "title": {
            "maxLength": 512,
            "type": "string",
            "description": "The product's display title.",
            "example": "Classic leather belt, brown"
          },
          "description": {
            "maxLength": 4000,
            "type": "string",
            "description": "The product's display description.",
            "example": "A full-grain leather belt with a brushed nickel buckle."
          },
          "product_url": {
            "maxLength": 2048,
            "type": "string",
            "description": "The canonical URL for the product page.",
            "example": "https://merchant.example.com/products/classic-leather-belt-brown"
          },
          "image_url": {
            "maxLength": 2048,
            "type": "string",
            "description": "The URL of the primary product image.",
            "example": "https://merchant.example.com/images/belt-brown-main.jpg"
          },
          "additional_image_urls": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Additional product image URLs, beyond `image_url`.",
            "example": [
              "https://merchant.example.com/images/belt-brown-alt1.jpg"
            ]
          },
          "video_url": {
            "type": "string",
            "description": "The URL of a product video.",
            "example": "https://merchant.example.com/videos/belt-brown.mp4"
          },
          "model_3d_url": {
            "type": "string",
            "description": "The URL of a 3D model of the product.",
            "example": "https://merchant.example.com/models/belt-brown.glb"
          },
          "sku": {
            "maxLength": 128,
            "type": "string",
            "description": "The merchant's stock-keeping unit for the product.",
            "example": "BELT-BRN-001"
          },
          "gtin": {
            "type": "string",
            "description": "The product's Global Trade Item Number (UPC, EAN, ISBN, or JAN).",
            "example": "00012345678905"
          },
          "mpn": {
            "type": "string",
            "description": "The product's Manufacturer Part Number.",
            "example": "MPN-4471"
          },
          "brand": {
            "type": "string",
            "description": "The product's brand name.",
            "example": "Acme Leathercraft"
          },
          "category": {
            "type": "string",
            "description": "The merchant's category for the product.",
            "example": "Apparel & Accessories > Belts"
          },
          "price": {
            "allOf": [
              {
                "$ref": "#/components/schemas/InventoryMoney"
              }
            ],
            "description": "The product's regular price. When provided together with `sale_price`, `sale_price` must\nuse the same currency and be less than or equal to `price`.\n"
          },
          "sale_price": {
            "allOf": [
              {
                "$ref": "#/components/schemas/InventoryMoney"
              }
            ],
            "description": "The product's discounted price. Must share `price`'s currency and be less than or equal\nto `price`.\n"
          },
          "sale_price_starts_at": {
            "type": "string",
            "description": "The date and time from which `sale_price` applies. Paired with `sale_price`.",
            "format": "date-time",
            "example": "2026-08-01T00:00:00.0000000+00:00"
          },
          "sale_price_ends_at": {
            "type": "string",
            "description": "The date and time after which `sale_price` no longer applies. Paired with `sale_price`.",
            "format": "date-time",
            "example": "2026-08-31T23:59:59.0000000+00:00"
          },
          "group_id": {
            "type": "string",
            "description": "The identifier shared by all variants of the same product (for example, the same belt in\ndifferent sizes). When set, `color` and `size` are both required.\n",
            "example": "grp_belt_classic"
          },
          "group_title": {
            "type": "string",
            "description": "A display title for the variant group.",
            "example": "Classic leather belt"
          },
          "color": {
            "type": "string",
            "description": "The variant's color. Required when `group_id` is set.",
            "example": "Brown"
          },
          "size": {
            "type": "string",
            "description": "The variant's size. Required when `group_id` is set.",
            "example": "M"
          },
          "size_system": {
            "type": "string",
            "description": "The sizing system that `size` is expressed in.",
            "example": "US"
          },
          "gender": {
            "type": "string",
            "description": "The target gender for the product.",
            "example": "unisex"
          },
          "condition": {
            "enum": [
              "new",
              "used",
              "refurbished"
            ],
            "type": "string",
            "description": "The product's condition, as an exact lowercase match of one of the enum values.\nDefaults to `new` when omitted.\n",
            "example": "new"
          },
          "material": {
            "type": "string",
            "description": "The product's primary material.",
            "example": "Full-grain leather"
          },
          "age_group": {
            "type": "string",
            "description": "The target age group for the product.",
            "example": "adult"
          },
          "length": {
            "type": "number",
            "description": "The product's length. `length`, `width`, `height` and `dimension_unit` must be provided\ntogether, or not at all.\n",
            "example": 110
          },
          "width": {
            "type": "number",
            "description": "The product's width. `length`, `width`, `height` and `dimension_unit` must be provided\ntogether, or not at all.\n",
            "example": 3.5
          },
          "height": {
            "type": "number",
            "description": "The product's height. `length`, `width`, `height` and `dimension_unit` must be provided\ntogether, or not at all.\n",
            "example": 0.5
          },
          "dimension_unit": {
            "type": "string",
            "description": "The unit that `length`, `width` and `height` are expressed in. Required when any of\n`length`, `width` or `height` is set.\n",
            "example": "cm"
          },
          "weight": {
            "type": "number",
            "description": "The product's weight. Must be provided together with `weight_unit`, or not at all.",
            "example": 0.2
          },
          "weight_unit": {
            "type": "string",
            "description": "The unit that `weight` is expressed in. Required when `weight` is set.",
            "example": "kg"
          },
          "expiration_date": {
            "type": "string",
            "description": "The date and time after which the product should no longer be offered.",
            "format": "date-time",
            "example": "2027-01-01T00:00:00.0000000+00:00"
          },
          "harmonized_system_code": {
            "type": "string",
            "description": "The product's Harmonized System (HS) code, for customs purposes.",
            "example": "4203.30"
          },
          "country_of_origin": {
            "type": "string",
            "description": "The two-letter ISO 3166-1 alpha-2 country of origin.",
            "example": "IT"
          },
          "seller_name": {
            "type": "string",
            "description": "The name of the seller of record, when different from the merchant.",
            "example": "Acme Leathercraft Ltd"
          },
          "seller_url": {
            "type": "string",
            "description": "The URL of the seller of record.",
            "example": "https://acme-leathercraft.example.com"
          },
          "seller_privacy_policy": {
            "type": "string",
            "description": "The URL of the seller's privacy policy.",
            "example": "https://acme-leathercraft.example.com/privacy"
          },
          "seller_tos": {
            "type": "string",
            "description": "The URL of the seller's terms of service.",
            "example": "https://acme-leathercraft.example.com/terms"
          }
        },
        "description": "<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>\nThe request body for setting the product knowledge for a variant. The call is an upsert.\n"
      },
      "AmlVerification": {
        "required": [
          "id"
        ],
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/DatedObject"
          },
          {
            "$ref": "#/components/schemas/AmlVerificationBase"
          }
        ],
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AmlVerificationId"
              }
            ],
            "readOnly": true
          }
        }
      },
      "AmlVerificationBase": {
        "required": [
          "status",
          "_links",
          "applicant_id",
          "search_parameters"
        ],
        "type": "object",
        "properties": {
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AmlVerificationStatuses"
              }
            ],
            "readOnly": true
          },
          "applicant_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ApplicantId"
              }
            ]
          },
          "search_parameters": {
            "$ref": "#/components/schemas/SearchParameters"
          },
          "monitored": {
            "type": "boolean",
            "description": "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": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AmlVerificationLinks"
              }
            ],
            "readOnly": true
          }
        }
      },
      "AmlVerificationCreateBase": {
        "required": [
          "status",
          "_links"
        ],
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/AmlVerificationBase"
          }
        ]
      },
      "AmlVerificationId": {
        "pattern": "^amlv_\\w+$",
        "type": "string",
        "description": "The AML screening's unique identifier.",
        "readOnly": true,
        "example": "amlv_tkoi5db4hryu5cei5vwoabr7we"
      },
      "AmlVerificationLinks": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/IdvSelfLink"
          }
        ]
      },
      "AmlVerificationOutput": {
        "required": [
          "id"
        ],
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/DatedObject"
          },
          {
            "$ref": "#/components/schemas/AmlVerificationCreateBase"
          }
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/AmlVerificationId"
          }
        }
      },
      "AmlVerificationStatuses": {
        "enum": [
          "created",
          "screening_in_progress",
          "approved",
          "declined",
          "review_required"
        ],
        "type": "string",
        "description": "The [screening status](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Check_statuses).",
        "readOnly": true
      },
      "SearchParameters": {
        "required": [
          "configuration_identifier"
        ],
        "type": "object",
        "properties": {
          "configuration_identifier": {
            "type": "string",
            "description": "Your AML Screening [configuration ID](https://www.checkout.com/docs/business-operations/manage-identities/screen-aml-databases#Configuration).",
            "example": "12345678-1234-1234-1234-123456789012"
          }
        },
        "description": "The screening's configuration details."
      },
      "ApplePayCertificateRequest": {
        "required": [
          "content"
        ],
        "type": "object",
        "properties": {
          "content": {
            "type": "string",
            "description": "The certificate content",
            "example": "MIIEfTCCBCOgAwIBAgIID/asezaWNycwCgYIKoZIzj0EAwIwgYAxNDAyBgNVBAMMK0FwcGxlIFdvcmxkd2lkZSBEZXZlbG9wZXIgUmVsYXRpb25zIENBIC0gRzIxJjAkBgNVBAsMHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRMwEQYDVQQKDApBcHBsZSBJbmMuMQswCQYDVQQGEwJVUzAeFw0yMTA2MTExMzQ0MjVaFw0yMzA3MTExMzQ0MjRaMIGuMS0wKwYKCZImiZPyLGQBAQwdbWVyY2hhbnQuY29tLmNoZWNrb3V0LnNhbmRib3gxQzBBBgNVBAMMOkFwcGxlIFBheSBQYXltZW50IFByb2Nlc3Npbmc6bWVyY2hhbnQuY29tLmNoZWNrb3V0LnNhbmRib3gxEzARBgNVBAsMCkUzMlhCUUs0UTUxFjAUBgNVBAoMDUNoZWNrb3V0IEx0ZC4xCzAJBgNVBAYTAkdCMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEsvyUM9D1cssldH+VPptEn4VAw/Q6ovJuHVlyBSRaPGLHFce04lCiT/xnXOWRkUxyCzQWKhfG2zo19u4s+evx7aOCAlUwggJRMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUhLaEzDqGYnIWWZToGqO9SN863wswRwYIKwYBBQUHAQEEOzA5MDcGCCsGAQUFBzABhitodHRwOi8vb2NzcC5hcHBsZS5jb20vb2NzcDA0LWFwcGxld3dkcmNhMjAxMIIBHQYDVR0gBIIBFDCCARAwggEMBgkqhkiG92NkBQEwgf4wgcMGCCsGAQUFBwICMIG2DIGzUmVsaWFuY2Ugb24gdGhpcyBjZXJ0aWZpY2F0ZSBieSBhbnkgcGFydHkgYXNzdW1lcyBhY2NlcHRhbmNlIG9mIHRoZSB0aGVuIGFwcGxpY2FibGUgc3RhbmRhcmQgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdXNlLCBjZXJ0aWZpY2F0ZSBwb2xpY3kgYW5kIGNlcnRpZmljYXRpb24gcHJhY3RpY2Ugc3RhdGVtZW50cy4wNgYIKwYBBQUHAgEWKmh0dHA6Ly93d3cuYXBwbGUuY29tL2NlcnRpZmljYXRlYXV0aG9yaXR5LzA2BgNVHR8ELzAtMCugKaAnhiVodHRwOi8vY3JsLmFwcGxlLmNvbS9hcHBsZXd3ZHJjYTIuY3JsMB0GA1UdDgQWBBRNhvr33NDuM4QxBZd16a+ACbHoEzAOBgNVHQ8BAf8EBAMCAygwTwYJKoZIhvdjZAYgBEIMQDdGRjg0REI5MDE5NkVGN0I5RTc4NDZEMjg4NzZCNkJGRDU2RjM4MDlCNzUyNjAzRDM4QzcxNUJFMTY2M0JENEMwCgYIKoZIzj0EAwIDSAAwRQIgTjywMwOrLX3TwDUrPn7yDGL/dhc+VNudv0uGBOWRyXACIQClFQFvgx+hfTwVdHt8klrswpgtZtbYjs74p9GYuc8Puw=="
          }
        },
        "description": "Certificate content to be added an account"
      },
      "ApplePayCertificateResponse": {
        "required": [
          "id",
          "public_key_hash",
          "valid_from",
          "valid_until"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^aplc_(\\w{26})$",
            "type": "string",
            "description": "The identifier of the account domain",
            "example": "aplc_hefptsiydvkexnzzb35zrlqgfq"
          },
          "public_key_hash": {
            "type": "string",
            "description": "Hash of the certificate public key",
            "example": "tqYV+tmG9aMh+l/K6cicUnPqkb1gUiLjSTM9gEz6Nl0="
          },
          "valid_from": {
            "type": "string",
            "description": "When the certificate is valid from",
            "format": "date-time",
            "example": "2021-01-01T17:32:28.0000000+00:00"
          },
          "valid_until": {
            "type": "string",
            "description": "When the certificate is valid until",
            "format": "date-time",
            "example": "2025-01-01T17:32:28.0000000+00:00"
          }
        },
        "description": "Response for an attached certificate for an account"
      },
      "ApplePayEnrollmentErrorResponse": {
        "type": "object",
        "properties": {
          "error_codes": {
            "type": "array",
            "items": {
              "enum": [
                "invalid_request",
                "domain_not_enrolled",
                "domain_does_not_exist",
                "domain_verification_failed",
                "invalid_domain"
              ],
              "type": "string"
            }
          },
          "error_type": {
            "enum": [
              "invalid_request",
              "domain_not_enrolled",
              "domain_does_not_exist",
              "domain_verification_failed"
            ],
            "type": "string"
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "ApplePayEnrollmentRequest": {
        "type": "object",
        "properties": {
          "domain": {
            "minLength": 1,
            "type": "string",
            "description": "The domain to enroll",
            "example": "someDomain.com"
          }
        },
        "description": "The enrollment request used to onboard the domain"
      },
      "ApplePaySigningRequest": {
        "type": "object",
        "properties": {
          "protocol_version": {
            "enum": [
              "ec_v1",
              "rsa_v1"
            ],
            "type": "string",
            "description": "The protocol version of the encryption type used.",
            "default": "ec_v1"
          }
        },
        "description": "The encryption type used for the signing request."
      },
      "ApplePaySigningRequestResponse": {
        "required": [
          "content"
        ],
        "type": "object",
        "properties": {
          "content": {
            "type": "string",
            "description": "The signing request content",
            "example": "-----BEGIN CERTIFICATE REQUEST-----MIIBSDCB8AIBADCBjzELMAkGA1UEBhMCR0IxDzANBgNVBAgMBkxvbmRvbjEPMA0GA1UEBwwGTG9uZG9uMRUwEwYDVQQKDAxDaGVja291dC5jb20xCzAJBgNVBA8MAklUMRUwEwYDVQQDDAxjaGVja291dC5jb20xIzAhBgkqhkiG9w0BCQEWFHN1cHBvcnRAY2hlY2tvdXQuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEXf/MDFRLSblykajGm0GE+lUNoOIEa0DbWc7Bv3s55bYtW1fJo2/MJIPojUKuKUx2VsEfGmmqXKbq4IhAr0bM8TAKBggqhkjOPQQDAgNHADBEAiAo1Dv4TXTacSeIfy4HDjzPMQY2+OxTW6szRJjGyfKgXQIgdHAX0BmI+1rozysjXv8MvoxehQIGACQ+UWJle+UZ2ms=-----END CERTIFICATE REQUEST-----"
          }
        },
        "description": "Retrieve a signing request for an account to begin certification process"
      },
      "ApplicantId": {
        "pattern": "^aplt_\\w+$",
        "type": "string",
        "description": "The applicant's unique identifier.",
        "readOnly": true,
        "example": "aplt_tkoi5db4hryu5cei5vwoabr7we"
      },
      "Attempt": {
        "type": "object",
        "properties": {
          "scheme": {
            "enum": [
              "accel",
              "amex",
              "cartes_bancaires",
              "diners",
              "discover",
              "jcb",
              "mada",
              "maestro",
              "mastercard",
              "nyce",
              "omannet",
              "pulse",
              "shazam",
              "star",
              "upi",
              "visa"
            ],
            "type": "string",
            "description": "The card scheme to use for the payment attempt."
          }
        }
      },
      "BacsNotificationRequest": {
        "required": [
          "source_id",
          "notification_type",
          "collection_date",
          "amount",
          "currency",
          "billing_descriptor",
          "customer_email",
          "support_email"
        ],
        "type": "object",
        "properties": {
          "source_id": {
            "pattern": "^(src)_(\\w{26})$",
            "type": "string",
            "description": "The ID of the Bacs Direct Debit instrument to notify against.",
            "example": "src_wmlfc3zyhqzehihu7giusaaawu"
          },
          "notification_type": {
            "enum": [
              "advance_notice"
            ],
            "type": "string",
            "description": "The type of pre-notification being sent to the payer.",
            "example": "advance_notice"
          },
          "collection_date": {
            "type": "string",
            "description": "The date the funds will be collected from the payer's account, in the format yyyy-MM-dd.",
            "format": "date",
            "example": "2026-07-15T00:00:00.0000000"
          },
          "amount": {
            "minimum": 1,
            "type": "integer",
            "description": "The amount to be collected, in the currency's minor unit.",
            "format": "int64",
            "example": 4999
          },
          "currency": {
            "maxLength": 3,
            "minLength": 3,
            "type": "string",
            "description": "The three-letter ISO 4217 currency code of the collection.",
            "example": "GBP"
          },
          "reference": {
            "maxLength": 50,
            "type": "string",
            "description": "A reference you can use to identify the collection.",
            "example": "INV-12345"
          },
          "customer_email": {
            "type": "string",
            "description": "The email address of the payer that the pre-notification is sent to.",
            "format": "email",
            "example": "customer@example.com"
          },
          "billing_descriptor": {
            "maxLength": 25,
            "type": "string",
            "description": "The billing descriptor that appears on the payer's bank statement.",
            "example": "CHECKOUT"
          },
          "support_email": {
            "type": "string",
            "description": "The support email address included in the pre-notification.",
            "format": "email",
            "example": "support@test.com"
          },
          "support_phone": {
            "type": "string",
            "description": "The support phone number included in the pre-notification, in E.164 format.",
            "example": "+447700900123"
          }
        },
        "description": "Bacs Direct Debit notification request"
      },
      "BacsNotificationResponse": {
        "required": [
          "event_id"
        ],
        "type": "object",
        "properties": {
          "event_id": {
            "type": "string",
            "description": "The unique identifier of the notification event.",
            "example": "evt_lzr4csdtddwetactr6phd3kea4"
          }
        },
        "description": "Bacs Direct Debit pre-notification response"
      },
      "Balance": {
        "title": "Balance values",
        "type": "object",
        "properties": {
          "pending": {
            "type": "number",
            "description": "The total incoming funds that will be added to the Available balance once cleared.",
            "example": 23000
          },
          "available": {
            "type": "number",
            "description": "The funds that are available for processing.",
            "example": 50000
          },
          "payable": {
            "type": "number",
            "description": "The funds reserved from the Available balance for outgoing transactions that are yet to clear.",
            "example": 2700
          },
          "collateral": {
            "type": "number",
            "description": "The funds held by Checkout.com to cover potential liabilities and risk events associated with your payment processing.",
            "example": 6000
          },
          "operational": {
            "type": "number",
            "description": "The funds held for processing Payouts and Issuing payments when the Available balance is insufficient.",
            "example": 7000
          },
          "collateral_breakdown": {
            "title": "Collateral breakdown",
            "required": [
              "fixed_reserve",
              "rolling_reserve"
            ],
            "type": "object",
            "properties": {
              "fixed_reserve": {
                "type": "number",
                "description": "The portion of the `collateral` balance held as a fixed reserve.",
                "example": 4000
              },
              "rolling_reserve": {
                "type": "number",
                "description": "The portion of the `collateral` balance held as a rolling reserve.",
                "example": 2000
              }
            },
            "description": "A breakdown of the funds held in the `collateral` balance."
          }
        },
        "description": "The respective balance values."
      },
      "BalancesResponse": {
        "title": "Balances response",
        "type": "object",
        "properties": {
          "data": {
            "title": "Balances",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CurrencyAccountBalance"
            },
            "description": "The list of requested balances."
          }
        },
        "description": "A list of balances for each currency account returned from the request."
      },
      "CurrencyAccountBalance": {
        "title": "Currency Account Balance",
        "type": "object",
        "properties": {
          "currency_account_id": {
            "type": "string",
            "description": "The unique identifier of the currency account (sub-account). Returned only when the request is made with `withCurrencyAccountId=true`.",
            "example": "ca_g5y7d6jo4e2urgforcbf2ey5jm"
          },
          "descriptor": {
            "type": "string",
            "description": "A descriptor for the currency account.",
            "example": "Revenue Account 1"
          },
          "holding_currency": {
            "type": "string",
            "description": "The holding currency of the currency account (the three character ISO 4217 code).",
            "example": "EUR"
          },
          "balances_as_of": {
            "type": "string",
            "description": "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.",
            "format": "date-time",
            "example": "2026-05-06T13:59:59.9999999+00:00"
          },
          "balances": {
            "$ref": "#/components/schemas/Balance"
          }
        },
        "description": "The currency account details and balance."
      },
      "TopUpBankDetails": {
        "title": "Top-up bank details",
        "type": "object",
        "properties": {
          "domestic": {
            "$ref": "#/components/schemas/TopUpFundingDetails"
          },
          "international": {
            "$ref": "#/components/schemas/TopUpFundingDetails"
          }
        },
        "description": "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."
      },
      "TopUpFundingDetails": {
        "title": "Top-up funding details",
        "required": [
          "beneficiary_account_name",
          "bank_name"
        ],
        "type": "object",
        "properties": {
          "beneficiary_account_name": {
            "type": "string",
            "description": "The name of the account that receives the funds.",
            "example": "Acme Inc"
          },
          "beneficiary_address": {
            "type": "string",
            "description": "The address of the beneficiary, if the rail requires it.",
            "example": "1 Example Street, Exampleville, EX, 00000, US"
          },
          "bank_name": {
            "type": "string",
            "description": "The name of the bank that receives the funds.",
            "example": "Example Bank"
          },
          "bank_address": {
            "type": "string",
            "description": "The address of the receiving bank, if the rail requires it.",
            "example": "1 Example Street, Exampleville, EX, 00000, US"
          },
          "account_number": {
            "type": "string",
            "description": "The account number of the receiving account.",
            "example": "1234567890"
          },
          "sort_code": {
            "type": "string",
            "description": "The sort code of the receiving bank. Returned for United Kingdom domestic transfers.",
            "example": "000000"
          },
          "routing_number": {
            "type": "string",
            "description": "The routing number of the receiving bank. Returned for United States domestic transfers.",
            "example": "000000000"
          },
          "iban": {
            "type": "string",
            "description": "The International Bank Account Number of the receiving account.",
            "example": "GB00EXAM00000000000000"
          },
          "swift_code": {
            "type": "string",
            "description": "The SWIFT or BIC code of the receiving bank. Returned for international transfers.",
            "example": "TESTUS00XXX"
          }
        },
        "description": "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."
      },
      "TopUpInstructionsResponse": {
        "title": "Top-up instructions",
        "required": [
          "currency_account_id",
          "currency",
          "payment_reference",
          "bank_details"
        ],
        "type": "object",
        "properties": {
          "currency_account_id": {
            "type": "string",
            "description": "The unique identifier of the sub-account that the instructions apply to.",
            "example": "ca_g5y7d6jo4e2urgforcbf2ey5jm"
          },
          "currency": {
            "type": "string",
            "description": "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.",
            "example": "USD"
          },
          "payment_reference": {
            "type": "string",
            "description": "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.",
            "example": "TP-ABC123"
          },
          "bank_details": {
            "$ref": "#/components/schemas/TopUpBankDetails"
          }
        },
        "description": "The bank details and payment reference used to top up a sub-account."
      },
      "CardPayoutAcceptedResponse": {
        "title": "Card Payout",
        "required": [
          "id",
          "status",
          "instruction",
          "_links"
        ],
        "type": "object",
        "properties": {
          "id": {
            "maxLength": 30,
            "minLength": 30,
            "pattern": "^(pay)_(\\w{26})$",
            "type": "string",
            "description": "The payment's unique identifier.",
            "example": "pay_8n2n4o4dsasergngxiq3cx4xtu"
          },
          "status": {
            "enum": [
              "Accepted",
              "Rejected"
            ],
            "type": "string",
            "description": "The payout status.",
            "example": "Accepted"
          },
          "reference": {
            "maxLength": 50,
            "type": "string",
            "description": "The reference you provided in the payout request.",
            "example": "example payout"
          },
          "destination": {
            "type": "object",
            "properties": {
              "account_holder": {
                "type": "object",
                "properties": {
                  "id": {
                    "maxLength": 30,
                    "minLength": 30,
                    "pattern": "^(src)_(\\w{26})$",
                    "type": "string",
                    "description": "The payment destination identifier (e.g., a card source identifier)",
                    "example": "src_nwd3m4in3hkuddfpjsaevunhdy"
                  }
                },
                "description": "The account holder details."
              }
            },
            "description": "The payout destination."
          },
          "instruction": {
            "type": "object",
            "properties": {
              "funds_transfer_type": {
                "type": "string",
                "description": "Scheme categorisation of the client (FD, MT, AA etc.)",
                "example": "AA"
              }
            },
            "description": "Details about the instruction for the payout."
          },
          "_links": {
            "required": [
              "self"
            ],
            "type": "object",
            "properties": {
              "self": {
                "required": [
                  "href"
                ],
                "type": "object",
                "properties": {
                  "href": {
                    "type": "string",
                    "description": "The link URL",
                    "example": "https://{prefix}.api.sandbox.checkout.com/payments/pay_8n2n4o4dsasergngxiq3cx4xtu"
                  }
                },
                "description": "The payout URI."
              }
            },
            "description": "The links related to the payout."
          }
        },
        "description": "Payout accepted response"
      },
      "CardPayoutActionsResponse": {
        "minItems": 1,
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/PaymentAction"
        },
        "description": "The payout actions.\n",
        "example": [
          {
            "id": "act_z4s46odkw3uerbgujmxdjknthu",
            "type": "Payout",
            "processed_on": "2018-01-20T10:30:48.0000000+00:00",
            "amount": 1000,
            "approved": true,
            "response_code": 10000,
            "response_summary": "Approved"
          }
        ]
      },
      "CardPayoutDetails": {
        "required": [
          "id",
          "requested_on",
          "processed_on",
          "source",
          "destination",
          "amount",
          "currency",
          "status",
          "links"
        ],
        "type": "object",
        "properties": {
          "id": {
            "maxLength": 30,
            "minLength": 30,
            "pattern": "^(pay)_(\\w{26})$",
            "type": "string",
            "description": "The unique identifier for the payout.",
            "example": "pay_8n2n4o4dsasergngxiq3cx4xtu"
          },
          "requested_on": {
            "type": "string",
            "description": "The UTC date and time the payout was requested.",
            "format": "date-time",
            "example": "2019-08-24T14:15:22.0000000+00:00"
          },
          "processed_on": {
            "type": "string",
            "description": "If the scheme has finished processing the payout request, the UTC date and time the payout was approved or declined.",
            "format": "date-time",
            "nullable": true,
            "example": "2019-08-24T14:15:22.0000000+00:00"
          },
          "source": {
            "required": [
              "type",
              "id",
              "amount",
              "currency"
            ],
            "type": "object",
            "properties": {
              "type": {
                "enum": [
                  "currency_account"
                ],
                "type": "string",
                "description": "The source used to fund the payout.",
                "example": "currency_account"
              },
              "id": {
                "maxLength": 29,
                "minLength": 29,
                "pattern": "^(ca)_(\\w{26})$",
                "type": "string",
                "description": "The identifier for the currency account used to fund the payout.",
                "example": "ca_y3oqhf46pyzuxjbcn2giaqnb44"
              },
              "amount": {
                "type": "integer",
                "description": "The amount to be paid out from the currency account.",
                "example": 100
              },
              "currency": {
                "maxLength": 3,
                "minLength": 3,
                "type": "string",
                "description": "The currency associated with the currency account, as a [three-letter ISO 4217 code](https://www.checkout.com/docs/developer-resources/codes/currency-codes).",
                "example": "GBP"
              }
            },
            "description": "The source of the payout."
          },
          "destination": {
            "required": [
              "type",
              "expiry_year",
              "expiry_month",
              "account_holder",
              "last4",
              "fingerprint",
              "bin"
            ],
            "type": "object",
            "properties": {
              "bin": {
                "type": "string",
                "description": "The first six or eight digits of the card number.",
                "example": "424242"
              },
              "type": {
                "enum": [
                  "token",
                  "id",
                  "card"
                ],
                "type": "string",
                "description": "The payout destination type.",
                "example": "token"
              },
              "token": {
                "maxLength": 30,
                "minLength": 30,
                "pattern": "^(tok)_(\\w{26})$",
                "type": "string",
                "description": "If `type` = `token`. The Checkout.com token  (eg a card, wallet or token)",
                "example": "tok_ihvkileifkzebkgnhkskbglyte"
              },
              "id": {
                "type": "string",
                "description": "The payment source identifier. For example, a card source ID.",
                "example": "ca_y3oqhf46pyzuxjbcn2giaqnb44"
              },
              "expiry_year": {
                "maxLength": 4,
                "minLength": 4,
                "type": "integer",
                "description": "The card expiration year.",
                "example": 2024
              },
              "expiry_month": {
                "maxLength": 2,
                "minLength": 1,
                "type": "integer",
                "description": "The card expiration month.",
                "example": 12
              },
              "account_holder": {
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "individual",
                      "corporate",
                      "government"
                    ],
                    "type": "string",
                    "description": "The account holder type.",
                    "example": "individual"
                  },
                  "first_name": {
                    "maxLength": 35,
                    "type": "string",
                    "description": "Present if `destination.account_holder.type` is `individual`.",
                    "example": "John"
                  },
                  "last_name": {
                    "maxLength": 35,
                    "type": "string",
                    "description": "Present if `destination.account_holder.type` is `individual`.",
                    "example": "Smith"
                  },
                  "company_name": {
                    "maxLength": 35,
                    "type": "string",
                    "description": "Present if `destination.account_holder.type` is `corporate` or `government`.",
                    "example": "ABC International"
                  }
                },
                "description": "The account holder's details."
              },
              "scheme": {
                "type": "string",
                "description": "The card scheme.",
                "example": "visa"
              },
              "last4": {
                "type": "string",
                "description": "The last four digits of the card number.",
                "example": "4242"
              },
              "fingerprint": {
                "type": "string",
                "description": "The card's unique fingerprint.",
                "example": "436d1eb12c4b92b9eeb1e798dea93a718c78f5362c7fb5d84b51c72a869b6101"
              },
              "card_type": {
                "enum": [
                  "UNKNOWN",
                  "CREDIT",
                  "DEBIT",
                  "PREPAID",
                  "CHARGE",
                  "DEFERRED DEBIT"
                ],
                "type": "string",
                "description": "The card type.",
                "example": "CREDIT"
              },
              "card_category": {
                "enum": [
                  "UNKNOWN",
                  "CONSUMER",
                  "COMMERCIAL"
                ],
                "type": "string",
                "description": "The card category.",
                "example": "CONSUMER"
              },
              "issuer": {
                "type": "string",
                "description": "The issuer name.",
                "example": "ABC Bank"
              },
              "issuer_country": {
                "type": "string",
                "description": "The issuer country, as a [two-letter ISO country code](https://www.checkout.com/docs/developer-resources/codes/country-codes).",
                "example": "GB"
              },
              "product_id": {
                "type": "string",
                "description": "The issuer or card scheme product identifier.",
                "example": "A"
              },
              "product_type": {
                "type": "string",
                "description": "The issuer or card scheme product type.",
                "example": "Visa Traditional"
              }
            },
            "description": "The payout destination."
          },
          "amount": {
            "type": "integer",
            "description": "The amount to be paid out to the recipient. This will be equal to `destination.amount`.",
            "example": 100
          },
          "currency": {
            "type": "string",
            "description": "The destination currency, as a [three-letter ISO 4217 code](https://www.checkout.com/docs/developer-resources/codes/currency-codes).",
            "example": "GBP"
          },
          "reference": {
            "maxLength": 50,
            "type": "string",
            "description": "An internal reference to identify the payout.",
            "example": "example payout"
          },
          "billing_descriptor": {
            "type": "object",
            "properties": {
              "reference": {
                "maxLength": 14,
                "type": "string",
                "description": "The dynamic billing descriptor displayed on the payout recipient's bank account statement. \n\nOnly alphanumeric characters are supported.\n",
                "example": "Card Payout"
              }
            },
            "description": "Details about the billing descriptor."
          },
          "status": {
            "enum": [
              "pending",
              "approved",
              "declined"
            ],
            "type": "string",
            "description": "The status of the payout.",
            "example": "approved"
          },
          "sender": {
            "type": "object",
            "properties": {
              "type": {
                "enum": [
                  "individual",
                  "corporate",
                  "government"
                ],
                "type": "string",
                "description": "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).",
                "example": "individual"
              },
              "first_name": {
                "maxLength": 35,
                "type": "string",
                "description": "Present if `sender.type` is `individual`.",
                "example": "Hayley"
              },
              "last_name": {
                "maxLength": 35,
                "type": "string",
                "description": "Present if `sender.type` is `individual`.",
                "example": "Jones"
              },
              "company_name": {
                "maxLength": 35,
                "type": "string",
                "description": "Present if `sender.type` is `corporate` or `government`.",
                "example": "YXZ International"
              }
            },
            "description": "Details about the payout sender."
          },
          "scheme_id": {
            "type": "string",
            "description": "The scheme transaction identifier.",
            "example": "199254206471459"
          },
          "instruction": {
            "type": "object",
            "properties": {
              "funds_transfer_type": {
                "type": "string",
                "description": "Scheme categorisation of the client (FD, MT, AA etc.)",
                "example": "AA"
              }
            },
            "description": "Details about the instruction for the payout."
          },
          "metadata": {
            "type": "object",
            "description": "A set of key-value pairs to attach to the payment.\n\nYou can use this to store additional information in a structured format.\n",
            "example": {
              "payout_ref": "MQIBN2"
            }
          },
          "links": {
            "type": "object",
            "properties": {
              "self": {
                "required": [
                  "href"
                ],
                "type": "object",
                "properties": {
                  "href": {
                    "type": "string",
                    "description": "The link URL.",
                    "example": "https://{prefix}.api.sandbox.checkout.com/payments/pay_8n2n4o4dsasergngxiq3cx4xtu"
                  }
                },
                "description": "The payout URI."
              }
            },
            "description": "The links related to the payment."
          }
        },
        "description": "Payout accepted response"
      },
      "CardPayoutItems": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "type": {
              "enum": [
                "digital",
                "physical"
              ],
              "type": "string",
              "description": "The item type. For example, `physical` or `digital`.\n\nThis field is used to provide item level metadata where applicable.\n",
              "example": "digital"
            },
            "sub_type": {
              "enum": [
                "blockchain",
                "cbdc",
                "cryptocurrency",
                "nft",
                "stablecoin"
              ],
              "type": "string",
              "description": "The digital item type.\n\nIf `type` is set to `digital`, this field is required.\n",
              "example": "stablecoin"
            }
          },
          "description": "The order's line item or product that is being paid out."
        },
        "description": "The order's line items."
      },
      "01_CardPayoutRequest_DestinationAccountHolderIndividual": {
        "title": "individual",
        "required": [
          "type",
          "first_name",
          "last_name"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "individual"
            ],
            "type": "string",
            "description": "The type of account receiving the payout.",
            "example": "individual"
          },
          "first_name": {
            "maxLength": 50,
            "type": "string",
            "description": "The account holder's first name.\n\nThe combination of `first_name`, `middle_name`, and `last_name` should exceed 3 letters in length.\nThis 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):\n \n- a single character\n- all non-alphabetic characters\n\nThis field is not required if the first name is already stored with the `token` or payment instrument `id` provided in `destination`.\n"
          },
          "middle_name": {
            "maxLength": 50,
            "type": "string",
            "description": "The account holder's middle name.\n\nThe combination of `first_name`, `middle_name`, and `last_name` should exceed 3 letters in length.\n"
          },
          "last_name": {
            "maxLength": 50,
            "type": "string",
            "description": "The account holder's last name.\n\nThe combination of `first_name`, `middle_name`, and `last_name` should exceed 3 letters in length.\nThis 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):\n \n  - a single character\n  - all non-alphabetic characters\n\n\nThis field is not required if the last name is already stored with the `token` or payment instrument `id` provided in `destination`.\n"
          }
        },
        "description": "The payout destination account holder's details."
      },
      "01_CardPayoutRequest_DestinationTypeCardAccountHolderIndividual": {
        "title": "individual",
        "required": [
          "type",
          "first_name",
          "last_name"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "individual"
            ],
            "type": "string",
            "description": "The type of account receiving the payout.",
            "example": "individual"
          },
          "first_name": {
            "maxLength": 50,
            "type": "string",
            "description": "The account holder's first name.\n\nThe combination of `first_name`, `middle_name`, and `last_name` should exceed 3 letters in length.  \nThis 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):\n\n- a single character\n- all non-alphabetic characters\n"
          },
          "middle_name": {
            "maxLength": 50,
            "type": "string",
            "description": "The account holder's middle name.\n\nThe combination of `first_name`, `middle_name`, and `last_name` should exceed 3 letters in length.\n"
          },
          "last_name": {
            "maxLength": 50,
            "type": "string",
            "description": "The account holder's last name.\n\nThe combination of `first_name`, `middle_name`, and `last_name` should exceed 3 letters in length.\nThis 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):\n\n  - a single character\n  - all non-alphabetic characters\n"
          },
          "billing_address": {
            "type": "object",
            "properties": {
              "address_line1": {
                "maxLength": 200,
                "type": "string",
                "description": "The first line of the address.\n"
              },
              "address_line2": {
                "maxLength": 200,
                "type": "string",
                "description": "The second line of the address."
              },
              "city": {
                "maxLength": 50,
                "minLength": 3,
                "type": "string",
                "description": "The address city."
              },
              "state": {
                "maxLength": 3,
                "minLength": 2,
                "type": "string",
                "description": "The address state.\n"
              },
              "zip": {
                "maxLength": 10,
                "type": "string",
                "description": "The address ZIP or postal code.\n\nYou must provide United States ZIPs in the format `00000`, or `00000-0000`.\n"
              },
              "country": {
                "maxLength": 2,
                "minLength": 2,
                "type": "string",
                "description": "The address country, as a [two-letter ISO country code](https://www.checkout.com/docs/developer-resources/codes/country-codes).\n"
              }
            },
            "description": "The account holder's billing address.\n\nIf your company is incorporated in the United States, this field is required for all card payouts you perform.\n"
          },
          "phone": {
            "required": [
              "country_code",
              "number"
            ],
            "type": "object",
            "properties": {
              "country_code": {
                "maxLength": 7,
                "minLength": 1,
                "type": "string",
                "description": "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": {
                "maxLength": 25,
                "minLength": 6,
                "type": "string",
                "description": "The digits for the phone number, not including the `country_code`."
              }
            },
            "description": "The account holder's phone number."
          },
          "identification": {
            "required": [
              "type",
              "number"
            ],
            "type": "object",
            "properties": {
              "type": {
                "enum": [
                  "passport",
                  "driving_license",
                  "national_id",
                  "company_registration",
                  "tax_id"
                ],
                "type": "string",
                "description": "The type of identification for the account holder."
              },
              "number": {
                "maxLength": 25,
                "type": "string",
                "description": "The account holder's identification number."
              },
              "issuing_country": {
                "maxLength": 2,
                "minLength": 2,
                "type": "string",
                "description": "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).\n\nProviding `issuing_country` increases the likelihood of a successful identity verification.\n"
              },
              "date_of_expiry": {
                "maxLength": 10,
                "minLength": 10,
                "type": "string",
                "description": "If applicable, the expiration date of the account holder's identification, in the format `YYYY-MM-DD`.\n\nProviding `date_of_expiry` increases the likelihood of a successful identity verification.\n"
              }
            },
            "description": "The account holder's identification.\n\nProviding identification details for the payout recipient increases the likelihood of a successful payout.\n"
          },
          "email": {
            "maxLength": 255,
            "type": "string",
            "description": "The account holder's email address."
          },
          "date_of_birth": {
            "maxLength": 10,
            "minLength": 10,
            "type": "string",
            "description": "The account holder's date of birth, in the format `YYYY-MM-DD`."
          },
          "country_of_birth": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string",
            "description": "The account holder's country of birth, as a [two-letter ISO country code](https://www.checkout.com/docs/developer-resources/codes/country-codes)."
          }
        },
        "description": "The payout destination account holder's details."
      },
      "02_CardPayoutRequest_DestinationAccountHolderCorporate": {
        "title": "corporate",
        "required": [
          "type",
          "company_name"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "corporate"
            ],
            "type": "string",
            "description": "The type of account receiving the payout.",
            "example": "corporate"
          },
          "company_name": {
            "maxLength": 50,
            "type": "string",
            "description": "The corporate account holder's company name.\n\nThis 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):\n \n  - a single character\n  - all non-alphabetic characters\n"
          }
        },
        "description": "The payout destination account holder's details."
      },
      "02_CardPayoutRequest_DestinationTypeCardAccountHolderCorporate": {
        "title": "corporate",
        "required": [
          "type",
          "company_name"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "corporate"
            ],
            "type": "string",
            "description": "The type of account receiving the payout.",
            "example": "corporate"
          },
          "company_name": {
            "maxLength": 50,
            "type": "string",
            "description": "The corporate account holder's company name.\n  \nThis 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):\n\n  - a single character\n  - all non-alphabetic characters\n"
          },
          "billing_address": {
            "type": "object",
            "properties": {
              "address_line1": {
                "maxLength": 200,
                "type": "string",
                "description": "The first line of the address.\n"
              },
              "address_line2": {
                "maxLength": 200,
                "type": "string",
                "description": "The second line of the address."
              },
              "city": {
                "maxLength": 50,
                "minLength": 3,
                "type": "string",
                "description": "The address city."
              },
              "state": {
                "maxLength": 3,
                "minLength": 2,
                "type": "string",
                "description": "The address state."
              },
              "zip": {
                "maxLength": 10,
                "type": "string",
                "description": "The address ZIP or postal code.\n\nYou must provide US ZIPs in the format `00000`, or `00000-0000`.\n"
              },
              "country": {
                "maxLength": 2,
                "minLength": 2,
                "type": "string",
                "description": "The address country, as a [two-letter ISO country code](https://www.checkout.com/docs/developer-resources/codes/country-codes).\n"
              }
            },
            "description": "The account holder's billing address.\n\nIf your company is incorporated in the United States, this field is required for all card payouts you perform.\n"
          },
          "phone": {
            "required": [
              "country_code",
              "number"
            ],
            "type": "object",
            "properties": {
              "country_code": {
                "maxLength": 7,
                "minLength": 1,
                "type": "string",
                "description": "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": {
                "maxLength": 25,
                "minLength": 6,
                "type": "string",
                "description": "The digits of the phone number, not including the `country_code`."
              }
            },
            "description": "The account holder's phone number."
          },
          "identification": {
            "required": [
              "type",
              "number"
            ],
            "type": "object",
            "properties": {
              "type": {
                "enum": [
                  "passport",
                  "driving_license",
                  "national_id",
                  "company_registration",
                  "tax_id"
                ],
                "type": "string",
                "description": "The type of identification for the account holder."
              },
              "number": {
                "maxLength": 25,
                "type": "string",
                "description": "The account holder's identification number."
              },
              "issuing_country": {
                "maxLength": 2,
                "minLength": 2,
                "type": "string",
                "description": "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).\n\nProviding `issuing_country` increases the likelihood of a successful identity verification.\n"
              },
              "date_of_expiry": {
                "maxLength": 10,
                "minLength": 10,
                "type": "string",
                "description": "If applicable, the expiration date of the account holder's identification, in the format `YYYY-MM-DD`.\n\nProviding `date_of_expiry` increases the likelihood of a successful identity verification.\n"
              }
            },
            "description": "The account holder's identification.\n\nProviding identification details for the payout recipient increases the likelihood of a successful payout.\n"
          },
          "email": {
            "maxLength": 255,
            "type": "string",
            "description": "The account holder's email address."
          }
        },
        "description": "The payout destination account holder's details."
      },
      "03_CardPayoutRequest_DestinationAccountHolderGovernment": {
        "title": "government",
        "required": [
          "type",
          "company_name"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "government"
            ],
            "type": "string",
            "description": "The type of account receiving the payout.",
            "example": "government"
          },
          "company_name": {
            "maxLength": 50,
            "type": "string",
            "description": "The government account holder's company name.\n\nThis 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):\n \n  - a single character\n  - all non-alphabetic characters\n"
          }
        },
        "description": "The payout destination account holder's details."
      },
      "03_CardPayoutRequest_DestinationTypeCardAccountHolderGovernment": {
        "title": "government",
        "required": [
          "type",
          "company_name"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "government"
            ],
            "type": "string",
            "description": "The type of account receiving the payout.",
            "example": "government"
          },
          "company_name": {
            "maxLength": 50,
            "type": "string",
            "description": "The account holder's company name.\n  \nThis 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):\n\n  - a single character\n  - all non-alphabetic characters\n"
          },
          "billing_address": {
            "type": "object",
            "properties": {
              "address_line1": {
                "maxLength": 200,
                "type": "string",
                "description": "The first line of the address.\n"
              },
              "address_line2": {
                "maxLength": 200,
                "type": "string",
                "description": "The second line of the address."
              },
              "city": {
                "maxLength": 50,
                "minLength": 3,
                "type": "string",
                "description": "The address city."
              },
              "state": {
                "maxLength": 3,
                "minLength": 2,
                "type": "string",
                "description": "The address state.\n"
              },
              "zip": {
                "maxLength": 10,
                "type": "string",
                "description": "The address ZIP or postal code.\n\nYou must provide United States ZIPs in the format `00000`, or `00000-0000`.\n"
              },
              "country": {
                "maxLength": 2,
                "minLength": 2,
                "type": "string",
                "description": "The address country, as a [two-letter ISO country code](https://www.checkout.com/docs/developer-resources/codes/country-codes).\n"
              }
            },
            "description": "The account holder's billing address.\n\nIf your company is incorporated in the United States, this field is required for all card payouts you perform.\n"
          },
          "phone": {
            "required": [
              "country_code",
              "number"
            ],
            "type": "object",
            "properties": {
              "country_code": {
                "maxLength": 7,
                "minLength": 1,
                "type": "string",
                "description": "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": {
                "maxLength": 25,
                "minLength": 6,
                "type": "string",
                "description": "The digits for the phone number, not including the `country_code`."
              }
            },
            "description": "The account holder's phone number."
          },
          "identification": {
            "required": [
              "type",
              "number"
            ],
            "type": "object",
            "properties": {
              "type": {
                "enum": [
                  "passport",
                  "driving_license",
                  "national_id",
                  "company_registration",
                  "tax_id"
                ],
                "type": "string",
                "description": "The type of identification for the account holder."
              },
              "number": {
                "maxLength": 25,
                "type": "string",
                "description": "The account holder's identification number."
              },
              "issuing_country": {
                "maxLength": 2,
                "minLength": 2,
                "type": "string",
                "description": "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).\n\nProviding `issuing_country` increases the likelihood of a successful identity verification.\n"
              },
              "date_of_expiry": {
                "maxLength": 10,
                "minLength": 10,
                "type": "string",
                "description": "If applicable, the expiration date of the account holder's identification, in the format `YYYY-MM-DD`.\n\nProviding `date_of_expiry` increases the likelihood of a successful identity verification.\n"
              }
            },
            "description": "The account holder's identification.\n\nProviding identification details for the payout recipient increases the likelihood of a successful payout.\n"
          },
          "email": {
            "maxLength": 255,
            "type": "string",
            "description": "The account holder's email address."
          }
        },
        "description": "The payout destination account holder's details."
      },
      "01_CardPayoutRequest_DestinationTypeCard": {
        "title": "card",
        "required": [
          "type",
          "number",
          "expiry_month",
          "expiry_year",
          "account_holder"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "card"
            ],
            "type": "string",
            "description": "The payout destination type.",
            "example": "card"
          },
          "number": {
            "maxLength": 19,
            "type": "string",
            "description": "The card number."
          },
          "expiry_month": {
            "maxLength": 2,
            "minLength": 1,
            "type": "integer",
            "description": "The card's expiration month."
          },
          "expiry_year": {
            "maxLength": 4,
            "minLength": 4,
            "type": "integer",
            "description": "The card's expiration year."
          },
          "account_holder": {
            "type": "object",
            "description": "The payout destination account holder.",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "individual": "#/components/schemas/01_CardPayoutRequest_DestinationTypeCardAccountHolderIndividual",
                "corporate": "#/components/schemas/02_CardPayoutRequest_DestinationTypeCardAccountHolderCorporate",
                "government": "#/components/schemas/03_CardPayoutRequest_DestinationTypeCardAccountHolderGovernment"
              }
            }
          }
        },
        "description": "A card payout destination."
      },
      "02_CardPayoutRequest_DestinationTypeNetworkToken": {
        "title": "network_token",
        "required": [
          "type",
          "token",
          "expiry_month",
          "expiry_year",
          "token_type",
          "account_holder"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "network_token"
            ],
            "type": "string",
            "description": "The destination type.",
            "example": "network_token"
          },
          "token": {
            "type": "string",
            "description": "The network token's Primary Account Number (PAN).",
            "example": "4543474002249996"
          },
          "expiry_month": {
            "minimum": 1,
            "maxLength": 2,
            "minLength": 1,
            "type": "integer",
            "description": "The network token's expiration month.",
            "example": 6
          },
          "expiry_year": {
            "maxLength": 4,
            "minLength": 4,
            "type": "integer",
            "description": "The network token's expiration year.",
            "example": 2025
          },
          "token_type": {
            "enum": [
              "vts",
              "mdes",
              "applepay",
              "googlepay"
            ],
            "type": "string",
            "description": "The network token type."
          },
          "cryptogram": {
            "maxLength": 50,
            "type": "string",
            "description": "The network token's Base64-encoded cryptographic identifier (TAVV).\n\nThe cryptogram is used by card schemes to validate the token verification result.\n",
            "example": "hv8mUFzPzRZoCAAAAAEQBDMAAAA="
          },
          "eci": {
            "maxLength": 2,
            "type": "string",
            "description": "The network token's Electronic Commerce Indicator (ECI) security level.",
            "example": "05"
          },
          "account_holder": {
            "type": "object",
            "description": "The payout destination account holder.",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "individual": "#/components/schemas/01_CardPayoutRequest_DestinationTypeCardAccountHolderIndividual",
                "corporate": "#/components/schemas/02_CardPayoutRequest_DestinationTypeCardAccountHolderCorporate",
                "government": "#/components/schemas/03_CardPayoutRequest_DestinationTypeCardAccountHolderGovernment"
              }
            }
          }
        },
        "description": "A network token payout destination."
      },
      "03_CardPayoutRequest_DestinationTypeId": {
        "title": "id",
        "required": [
          "type",
          "id",
          "account_holder"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "id"
            ],
            "type": "string",
            "description": "The payout destination type.",
            "example": "id"
          },
          "id": {
            "maxLength": 30,
            "minLength": 30,
            "pattern": "^(src)_(\\w{26})$",
            "type": "string",
            "description": "The payment source ID. This will be an ID with the prefix `src_`."
          },
          "account_holder": {
            "type": "object",
            "description": "The payout destination account holder.",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "individual": "#/components/schemas/01_CardPayoutRequest_DestinationAccountHolderIndividual",
                "corporate": "#/components/schemas/02_CardPayoutRequest_DestinationAccountHolderCorporate",
                "government": "#/components/schemas/03_CardPayoutRequest_DestinationAccountHolderGovernment"
              }
            }
          }
        },
        "description": "A payment instrument payout destination."
      },
      "04_CardPayoutRequest_DestinationTypeToken": {
        "title": "token",
        "required": [
          "type",
          "token",
          "account_holder"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "token"
            ],
            "type": "string",
            "description": "The payout destination type.",
            "example": "token"
          },
          "token": {
            "maxLength": 30,
            "minLength": 30,
            "pattern": "^(tok)_(\\w{26})$",
            "type": "string",
            "description": "The Checkout.com card token ID. This will be an ID with the prefix `tok_`."
          },
          "account_holder": {
            "type": "object",
            "description": "The payout destination account holder.",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "individual": "#/components/schemas/01_CardPayoutRequest_DestinationAccountHolderIndividual",
                "corporate": "#/components/schemas/02_CardPayoutRequest_DestinationAccountHolderCorporate",
                "government": "#/components/schemas/03_CardPayoutRequest_DestinationAccountHolderGovernment"
              }
            }
          }
        },
        "description": "A token payout destination."
      },
      "01_CardPayoutRequest_SenderAccountHolderIndividual": {
        "title": "individual",
        "required": [
          "type",
          "first_name",
          "last_name",
          "address",
          "reference",
          "reference_type",
          "source_of_funds"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of entity performing the payout.",
            "example": "individual"
          },
          "first_name": {
            "maxLength": 50,
            "type": "string",
            "description": "The sender's first name.\n\nThe combination of `first_name`, `middle_name`, and `last_name` should exceed 3 letters in length.\nThis 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):\n\n- a single character\n- all non-alphabetic characters\n"
          },
          "middle_name": {
            "maxLength": 50,
            "type": "string",
            "description": "The sender's middle name.\n\nThe combination of `first_name`, `middle_name`, and `last_name` should exceed 3 letters in length.\n"
          },
          "last_name": {
            "maxLength": 50,
            "type": "string",
            "description": "The sender's last name.\n\nThe combination of `first_name`, `middle_name`, and `last_name` must exceed 3 letters in length.\nThis 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):\n\n  - a single character\n  - all non-alphabetic characters\n"
          },
          "address": {
            "required": [
              "address_line1",
              "city",
              "country"
            ],
            "type": "object",
            "properties": {
              "address_line1": {
                "maxLength": 200,
                "type": "string",
                "description": "The first line of the address."
              },
              "address_line2": {
                "maxLength": 200,
                "type": "string",
                "description": "The second line of the address."
              },
              "city": {
                "maxLength": 50,
                "minLength": 3,
                "type": "string",
                "description": "The address city."
              },
              "state": {
                "maxLength": 3,
                "minLength": 2,
                "type": "string",
                "description": "The address state.\n\nThis field is required if `sender.address.country` is `US` or `CA`.\n"
              },
              "zip": {
                "maxLength": 10,
                "type": "string",
                "description": "The address ZIP or postal code.\n\nThis field is required if `sender.address.country` is `US`. You must provide US ZIPs in the format `00000`, or `00000-0000`.\n"
              },
              "country": {
                "maxLength": 2,
                "minLength": 2,
                "type": "string",
                "description": "The address country, as a [two-letter ISO country code](https://www.checkout.com/docs/developer-resources/codes/country-codes)."
              }
            },
            "description": "The sender's residential address."
          },
          "reference": {
            "maxLength": 15,
            "minLength": 5,
            "type": "string",
            "description": "The unique identifier for the sender. For example, a customer number.\n\nOnly alphanumeric characters are supported.\n"
          },
          "reference_type": {
            "enum": [
              "other"
            ],
            "type": "string",
            "description": "The type of identifier used as the `sender.reference`."
          },
          "source_of_funds": {
            "enum": [
              "credit",
              "debit",
              "prepaid",
              "deposit_account",
              "mobile_money_account",
              "cash"
            ],
            "type": "string",
            "description": "The source of the funds used to fund the card payout."
          },
          "identification": {
            "required": [
              "type",
              "number"
            ],
            "type": "object",
            "properties": {
              "type": {
                "enum": [
                  "passport",
                  "driving_license",
                  "national_id",
                  "company_registration",
                  "tax_id"
                ],
                "type": "string",
                "description": "The type of identification for the sender."
              },
              "number": {
                "type": "string",
                "description": "The sender's identification number."
              },
              "issuing_country": {
                "maxLength": 2,
                "minLength": 2,
                "type": "string",
                "description": "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": {
                "maxLength": 10,
                "minLength": 10,
                "type": "string",
                "description": "If applicable, the expiration date of the sender's identification, in the format `YYYY-MM-DD`."
              }
            },
            "description": "The sender's identification.\n\nThis field is required if the card's `issuer_country` is one of:\n\n  - `AR` (Argentina)\n  - `BR` (Brazil)\n  - `CO` (Colombia)\n  - `PE` (Peru)\n\nTo 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).\n"
          },
          "date_of_birth": {
            "maxLength": 10,
            "minLength": 10,
            "type": "string",
            "description": "The sender's date of birth, in the format `YYYY-MM-DD`.\n\nThis field is required for cross-border money transfers.\n"
          },
          "country_of_birth": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string",
            "description": "The sender's country of birth, as a [two-letter ISO country code](https://www.checkout.com/docs/developer-resources/codes/country-codes)."
          },
          "nationality": {
            "maxLength": 2,
            "minLength": 2,
            "description": "The sender's nationality, as a [two-letter ISO country code](https://www.checkout.com/docs/developer-resources/codes/country-codes)."
          }
        }
      },
      "02_CardPayoutRequest_SenderAccountHolderCorporate": {
        "title": "corporate",
        "required": [
          "type",
          "company_name",
          "address",
          "reference",
          "reference_type",
          "source_of_funds"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of entity performing the payout.",
            "example": "corporate"
          },
          "company_name": {
            "maxLength": 35,
            "type": "string",
            "description": "The corporate sender's company name.\n    \nThis 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):\n\n  - a single character\n  - all non-alphabetic characters\n"
          },
          "address": {
            "required": [
              "address_line1",
              "city",
              "country"
            ],
            "type": "object",
            "properties": {
              "address_line1": {
                "maxLength": 200,
                "type": "string",
                "description": "The first line of the address."
              },
              "address_line2": {
                "maxLength": 200,
                "type": "string",
                "description": "The second line of the address."
              },
              "city": {
                "maxLength": 50,
                "type": "string",
                "description": "The address city."
              },
              "state": {
                "maxLength": 3,
                "minLength": 2,
                "type": "string",
                "description": "The address state.\n\nThis field is required if `sender.address.country` is `US` or `CA`.\n"
              },
              "zip": {
                "maxLength": 10,
                "type": "string",
                "description": "The address ZIP or postal code.\n\nThis field is required if `sender.address.country` is `US`. You must provide US ZIPs in the format `00000`, or `00000-0000`.\n"
              },
              "country": {
                "maxLength": 2,
                "minLength": 2,
                "type": "string",
                "description": "The address country, as a [two-letter ISO country code](https://www.checkout.com/docs/developer-resources/codes/country-codes)."
              }
            },
            "description": "The sender's registered corporate address."
          },
          "reference": {
            "maxLength": 15,
            "minLength": 5,
            "type": "string",
            "description": "The unique identifier for the sender. For example, a customer number.\n  \nOnly alphanumeric characters are supported.\n"
          },
          "reference_type": {
            "enum": [
              "other"
            ],
            "type": "string",
            "description": "The type of identifier used as the `reference`."
          },
          "source_of_funds": {
            "enum": [
              "credit",
              "debit",
              "prepaid",
              "deposit_account",
              "mobile_money_account",
              "cash"
            ],
            "type": "string",
            "description": "The source of the funds used to fund the card payout."
          },
          "identification": {
            "required": [
              "type",
              "number"
            ],
            "type": "object",
            "properties": {
              "type": {
                "enum": [
                  "passport",
                  "driving_license",
                  "national_id",
                  "company_registration",
                  "tax_id"
                ],
                "type": "string",
                "description": "The type of identification for the sender."
              },
              "number": {
                "type": "string",
                "description": "The sender's identification number."
              },
              "issuing_country": {
                "maxLength": 2,
                "minLength": 2,
                "type": "string",
                "description": "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": {
                "maxLength": 10,
                "minLength": 10,
                "type": "string",
                "description": "If applicable, the expiration date of the sender's identification, in the format `YYYY-MM-DD`."
              }
            },
            "description": "The sender's identification.\n\nThis field is required if the card's `issuer_country` is one of:\n\n  - `AR` (Argentina)\n  - `BR` (Brazil)\n  - `CO` (Colombia)\n  - `PE` (Peru)\n\nTo 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).\n"
          }
        }
      },
      "03_CardPayoutRequest_SenderAccountHolderGovernment": {
        "title": "government",
        "required": [
          "type",
          "company_name",
          "address",
          "reference",
          "reference_type",
          "source_of_funds"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of entity performing the payout.",
            "example": "government"
          },
          "company_name": {
            "maxLength": 35,
            "type": "string",
            "description": "The sender's company name.\n      \nThis 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):\n\n  - a single character\n  - all non-alphabetic characters\n"
          },
          "address": {
            "required": [
              "address_line1",
              "city",
              "country"
            ],
            "type": "object",
            "properties": {
              "address_line1": {
                "maxLength": 200,
                "type": "string",
                "description": "The first line of the address."
              },
              "address_line2": {
                "maxLength": 200,
                "type": "string",
                "description": "The second line of the address."
              },
              "city": {
                "maxLength": 50,
                "type": "string",
                "description": "The address city."
              },
              "state": {
                "maxLength": 3,
                "minLength": 2,
                "type": "string",
                "description": "The address state.\n\nThis field is required if `sender.address.country` is `US` or `CA`.\n"
              },
              "zip": {
                "maxLength": 10,
                "type": "string",
                "description": "The address ZIP or postal code.\n\nThis field is required if `sender.address.country` is `US`. You must provide US ZIPs in the format `00000`, or `00000-0000`.\n"
              },
              "country": {
                "maxLength": 2,
                "minLength": 2,
                "type": "string",
                "description": "The address country, as a [two-letter ISO country code](https://www.checkout.com/docs/developer-resources/codes/country-codes)."
              }
            },
            "description": "The sender's registered corporate address."
          },
          "reference": {
            "maxLength": 15,
            "minLength": 5,
            "type": "string",
            "description": "The unique identifier for the sender. For example, a customer number.\nOnly alphanumeric characters are supported.\n"
          },
          "reference_type": {
            "enum": [
              "other"
            ],
            "type": "string",
            "description": "The type of identifier used as the `reference`."
          },
          "source_of_funds": {
            "enum": [
              "credit",
              "debit",
              "prepaid",
              "deposit_account",
              "mobile_money_account",
              "cash"
            ],
            "type": "string",
            "description": "The source of the funds used to fund the card payout."
          },
          "identification": {
            "required": [
              "type",
              "number"
            ],
            "type": "object",
            "properties": {
              "type": {
                "enum": [
                  "passport",
                  "driving_license",
                  "national_id",
                  "company_registration",
                  "tax_id"
                ],
                "type": "string",
                "description": "The type of identification for the sender."
              },
              "number": {
                "type": "string",
                "description": "The sender's identification number."
              },
              "issuing_country": {
                "maxLength": 2,
                "minLength": 2,
                "type": "string",
                "description": "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": {
                "maxLength": 10,
                "minLength": 10,
                "type": "string",
                "description": "If applicable, the expiration date of the sender's identification, in the format `YYYY-MM-DD`."
              }
            },
            "description": "The sender's identification.\n\nThis field is required if the card's `issuer_country` is one of:\n\n  - `AR` (Argentina)\n  - `BR` (Brazil)\n  - `CO` (Colombia)\n  - `PE` (Peru)\n\nTo 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).\n"
          }
        }
      },
      "CardPayoutRequest": {
        "title": "Card Payout",
        "required": [
          "source",
          "destination",
          "currency",
          "instruction",
          "processing_channel_id"
        ],
        "type": "object",
        "properties": {
          "source": {
            "required": [
              "type",
              "id"
            ],
            "type": "object",
            "properties": {
              "type": {
                "enum": [
                  "currency_account"
                ],
                "type": "string",
                "description": "The payout source type."
              },
              "id": {
                "maxLength": 29,
                "minLength": 29,
                "pattern": "^(ca)_(\\w{26})$",
                "type": "string",
                "description": "The ID of the currency account that will fund the payout."
              }
            },
            "description": "The source of the payout."
          },
          "destination": {
            "$ref": "#/components/schemas/CardPayoutRequestDestination"
          },
          "amount": {
            "minimum": 0,
            "type": "integer",
            "description": "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.\n"
          },
          "currency": {
            "type": "string",
            "description": "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.\n"
          },
          "instruction": {
            "required": [
              "funds_transfer_type"
            ],
            "type": "object",
            "properties": {
              "funds_transfer_type": {
                "type": "string",
                "description": "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. \n\nYou can only use codes that have been assigned to you by the card schemes and Checkout.com, based on your business case and requirements. \n\nIf you have only been assigned one funds transfer type code, this field is optional.\n"
              },
              "purpose": {
                "enum": [
                  "family_support",
                  "expatriation",
                  "travel_and_tourism",
                  "education",
                  "medical_treatment",
                  "emergency_need",
                  "leisure",
                  "savings",
                  "gifts",
                  "donations",
                  "financial_services",
                  "it_services",
                  "investment",
                  "insurance",
                  "loan_payment",
                  "pension",
                  "royalties",
                  "other",
                  "income"
                ],
                "type": "string",
                "description": "The purpose of the payout.\n\nThis field is required if the card's `issuer_country` is one of:\n\n  - `AR` (Argentina)\n  - `BD` (Bangladesh)\n  - `CL` (Chile)\n  - `CO` (Colombia)\n  - `EG` (Egypt)\n  - `IN` (India)\n  - `MX` (Mexico)\n  - `SA` (Saudi Arabia)\n\nTo 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).\n"
              }
            },
            "description": "Additional details about the payout instruction."
          },
          "items": {
            "$ref": "#/components/schemas/CardPayoutItems"
          },
          "processing_channel_id": {
            "maxLength": 29,
            "minLength": 29,
            "pattern": "^(pc)_(\\w{26})$",
            "type": "string",
            "description": "The unique identifier for the processing channel."
          },
          "sender": {
            "$ref": "#/components/schemas/CardPayoutRequestSender"
          },
          "reference": {
            "maxLength": 50,
            "type": "string",
            "description": "A custom reference to identify the payout. For example, an order number."
          },
          "previous_payment_id": {
            "type": "string",
            "description": "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>.\n\nIf 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:\n\n- If the previous AFT was processed by Checkout.com, use the previous payment's ID.\n- If the previous AFT was processed by another payment service provider (PSP), use the scheme's transaction ID.\n",
            "example": "pay_fun26akvvjjerahhctaq2uzhu4"
          },
          "metadata": {
            "type": "object",
            "description": "Stores additional information about the transaction with custom fields.\n\nYou 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. \n\nYou can only supply primitive data types with one level of depth. Fields of type `object` or `array` are not supported.\n"
          },
          "segment": {
            "$ref": "#/components/schemas/Segment"
          },
          "processing": {
            "type": "object",
            "properties": {
              "affiliate_id": {
                "maxLength": 15,
                "pattern": "^[a-zA-Z0-9]{1,15}$",
                "type": "string",
                "description": "The unique identifier for Visa-registered ramp providers.\n\nMust only contain alphanumeric characters.\n\nIf you're a Visa-registered ramp provider operating with affiliates, this field is required.\n"
              },
              "affiliate_url": {
                "type": "string",
                "description": "The affiliate URL.\n\nIf you're a Visa-registered ramp provider operating with affiliates, this field is required.\n",
                "example": "www.mycrypto.com"
              },
              "processing_speed": {
                "enum": [
                  "fast"
                ],
                "type": "string",
                "description": "The speed at which the payout is processed. \n\nOnly applicable for <a href=\"https://www.checkout.com/docs/payments/manage-payments/refund-a-payment/refund-a-payment-without-a-reference\">unreferenced refunds</a>.\n"
              },
              "purchase_country": {
                "maxLength": 2,
                "type": "string",
                "description": "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.\n\nIf you're a Visa-registered ramp provider operating with affiliates, this field is required.\n",
                "example": "GB"
              }
            },
            "description": "Returns information related to the processing of the payment."
          }
        }
      },
      "CardPayoutRequestDestination": {
        "required": [
          "type"
        ],
        "type": "object",
        "description": "The destination of the payout.",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "card": "#/components/schemas/01_CardPayoutRequest_DestinationTypeCard",
            "network_token": "#/components/schemas/02_CardPayoutRequest_DestinationTypeNetworkToken",
            "id": "#/components/schemas/03_CardPayoutRequest_DestinationTypeId",
            "token": "#/components/schemas/04_CardPayoutRequest_DestinationTypeToken"
          }
        }
      },
      "CardPayoutRequestSender": {
        "required": [
          "type"
        ],
        "type": "object",
        "description": "The sender of the payout.\n\nThis field is required for [money transfer](https://www.checkout.com/docs/payments/request-payouts/card-payouts#Fund_Transfer_Types) card payouts.\n",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "individual": "#/components/schemas/01_CardPayoutRequest_SenderAccountHolderIndividual",
            "corporate": "#/components/schemas/02_CardPayoutRequest_SenderAccountHolderCorporate",
            "government": "#/components/schemas/03_CardPayoutRequest_SenderAccountHolderGovernment"
          }
        }
      },
      "Cko-Request-Id": {
        "maxLength": 40,
        "type": "string",
        "description": "The unique identifier of the request",
        "example": "12345678-1234-1234-1234-123456789abc"
      },
      "Cko-Version": {
        "type": "string",
        "description": "The version of the API"
      },
      "ComplianceRequestDetails": {
        "type": "object",
        "properties": {
          "payment_id": {
            "type": "string",
            "description": "The compliance request's payment ID.",
            "nullable": true,
            "example": "pay_fun26akvvjjerahhctaq2uzhu4"
          },
          "client_id": {
            "type": "string",
            "description": "The compliance request's client ID.",
            "nullable": true,
            "example": "cli_vkuhvk4vjn2edkps7dfsq6emqm"
          },
          "entity_id": {
            "type": "string",
            "description": "The compliance request's entity ID.",
            "nullable": true,
            "example": "ent_azsiyswl7bwe2ynjzujy7lcjca"
          },
          "segment_id": {
            "type": "string",
            "description": "The compliance request's segment ID.",
            "nullable": true,
            "example": "seg_siopnqocrc4ehgyer4tpepq5pp"
          },
          "amount": {
            "type": "string",
            "description": "The payment's transaction amount.",
            "nullable": true,
            "example": "38.23"
          },
          "currency": {
            "type": "string",
            "description": "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>.",
            "nullable": true,
            "example": "HKD"
          },
          "recipient_name": {
            "type": "string",
            "description": "The payment's recipient's name.",
            "nullable": true,
            "example": "Jia Tsang"
          },
          "requested_on": {
            "type": "string",
            "description": "The date and time when the compliance request was initiated.",
            "nullable": true,
            "example": "2026-02-04T15:46:44.9663151Z"
          },
          "status": {
            "type": "string",
            "description": "The compliance request's status.",
            "nullable": true,
            "example": "responded"
          },
          "fields": {
            "$ref": "#/components/schemas/RequestedFields"
          },
          "transaction_reference": {
            "type": "string",
            "description": "The payment's transaction reference.",
            "nullable": true,
            "example": "ref-abc"
          },
          "sender_reference": {
            "type": "string",
            "description": "The payment sender's reference.",
            "nullable": true,
            "example": "ref-def"
          },
          "last_updated": {
            "type": "string",
            "description": "The date and time when the compliance request was last updated.",
            "nullable": true,
            "example": "2026-02-04T15:47:18.6326970Z"
          },
          "sender_name": {
            "type": "string",
            "description": "The payment sender's name.",
            "nullable": true,
            "example": "Ali Farid"
          },
          "payment_type": {
            "type": "string",
            "description": "The payment type.",
            "nullable": true,
            "example": "PayToCard"
          }
        },
        "additionalProperties": false,
        "description": "Represents a compliance request."
      },
      "ComplianceRequestRespondedField": {
        "required": [
          "name",
          "not_available",
          "value"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The field name being responded to.",
            "nullable": true,
            "example": "date_of_birth"
          },
          "value": {
            "description": "The value provided for the field.",
            "nullable": true
          },
          "not_available": {
            "type": "boolean",
            "description": "Indicates whether the value is unavailable for this field.",
            "example": false
          }
        },
        "additionalProperties": false,
        "description": "Describes a single response field provided for a compliance request."
      },
      "ComplianceRequestRespondedFields": {
        "type": "object",
        "properties": {
          "sender": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ComplianceRequestRespondedField"
            },
            "description": "The fields provided for the sender.",
            "nullable": true
          },
          "recipient": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ComplianceRequestRespondedField"
            },
            "description": "The fields provided for the recipient.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Groups the responded fields by party (sender/recipient)."
      },
      "ComplianceRequestResponse": {
        "required": [
          "fields"
        ],
        "type": "object",
        "properties": {
          "fields": {
            "$ref": "#/components/schemas/ComplianceRequestRespondedFields"
          },
          "comments": {
            "type": "string",
            "description": "Optional free-text comment provided with the response.",
            "nullable": true,
            "example": "Optional comment"
          }
        },
        "additionalProperties": false,
        "description": "Represents the payload used to respond to a compliance request."
      },
      "RequestedField": {
        "required": [
          "name",
          "type"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The requested field name.",
            "nullable": true,
            "example": "date_of_birth"
          },
          "type": {
            "type": "string",
            "description": "The requested field type. For example, \"string\" or \"date\".",
            "nullable": true,
            "example": "date"
          },
          "value": {
            "type": "string",
            "description": "The current value for the requested field, if available.",
            "nullable": true,
            "example": "2000-01-01"
          }
        },
        "additionalProperties": false,
        "description": "Describes a single requested field within a compliance request."
      },
      "RequestedFields": {
        "required": [
          "recipient",
          "sender"
        ],
        "type": "object",
        "properties": {
          "sender": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RequestedField"
            },
            "description": "The list of requested sender details.",
            "nullable": true
          },
          "recipient": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RequestedField"
            },
            "description": "The list of requested recipient details.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Groups the requested fields by party (sender/recipient)."
      },
      "CustomerRequest": {
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^(cus)_(\\w{26})$",
            "type": "string",
            "description": "The identifier of an existing customer",
            "example": "cus_y3oqhf46pyzuxjbcn2giaqnb44"
          },
          "email": {
            "maxLength": 255,
            "type": "string",
            "description": "The customer's email address. \n\nIf `source.type` is set to `sequra`, this field is required.\n\nIf `source.type` is set to `tamara`, this field is required and has a maximum length of 50 characters.\n",
            "format": "email",
            "example": "brucewayne@gmail.com"
          },
          "name": {
            "maxLength": 255,
            "type": "string",
            "description": "The customer's name. Required if `source.type` is:\n  - `alipay_cn`\n  - `alipay_hk`\n  - `alipay_plus`\n  - `dana`\n  - `gcash`\n  - `kakaopay`\n  - `sequra`\n  - `tamara`\n  - `tng`\n  - `truemoney`\n",
            "example": "Bruce Wayne"
          },
          "tax_number": {
            "maxLength": 13,
            "type": "string",
            "description": "Contains the customer's value-added tax (VAT) registration number.",
            "example": "1350693505279"
          },
          "phone": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/PhoneNumber"
              }
            ],
            "description": "The customer's phone number. Required if `source.type` is `tamara`"
          },
          "summary": {
            "$ref": "#/components/schemas/CustomerSummary"
          }
        },
        "description": "The customer's details. Required if `source.type` is `tamara`"
      },
      "CustomerResponse": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^(cus)_(\\w{26})$",
            "type": "string",
            "description": "The customer's unique identifier. This can be passed as a source when making a payment.",
            "example": "cus_y3oqhf46pyzuxjbcn2giaqnb44"
          },
          "email": {
            "type": "string",
            "description": "The customer's email address.",
            "example": "johnsmith@example.com"
          },
          "name": {
            "type": "string",
            "description": "The customer's name.",
            "example": "John Smith"
          },
          "phone": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/PhoneNumber"
              }
            ],
            "description": "The customer's phone number."
          },
          "summary": {
            "$ref": "#/components/schemas/CustomerSummary"
          }
        },
        "description": "Stored customer details"
      },
      "RetrieveCustomerAchInstrumentResponse": {
        "title": "ach",
        "required": [
          "type",
          "id",
          "fingerprint",
          "created_on",
          "modified_on",
          "vault_id",
          "instrument_data",
          "account_holder"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The instrument type",
            "example": "ach"
          },
          "id": {
            "type": "string",
            "description": "The unique identifier of the payment source or destination. \n\nYou can use the `id` in future payments.\n",
            "example": "src_wmlfc3zyhqzehihu7giusaaawu"
          },
          "fingerprint": {
            "pattern": "^([a-z0-9]{26})$",
            "type": "string",
            "description": "A token that can uniquely identify this instrument across all customers.",
            "example": "vnsdrvikkvre3dtrjjvlm5du4q"
          },
          "created_on": {
            "type": "string",
            "description": "The date and time the instrument was created.",
            "format": "date-time",
            "example": "2021-01-01T00:00:00.0000000+00:00"
          },
          "modified_on": {
            "type": "string",
            "description": "The date and time the instrument was last modified.",
            "format": "date-time",
            "example": "2021-01-01T00:00:00.0000000+00:00"
          },
          "vault_id": {
            "type": "string",
            "description": "The Vault ID currently attached to the instrument.",
            "example": "vid_wmlfc3zyhqzehihu7giusaaawu"
          },
          "instrument_data": {
            "required": [
              "account_type",
              "account_number",
              "bank_code",
              "currency",
              "country"
            ],
            "type": "object",
            "properties": {
              "account_type": {
                "enum": [
                  "savings",
                  "checking"
                ],
                "type": "string",
                "description": "The type of Direct Debit account",
                "example": "savings"
              },
              "account_number": {
                "maxLength": 17,
                "minLength": 4,
                "type": "string",
                "description": "The account number of the Direct Debit account",
                "example": "4099999992"
              },
              "bank_code": {
                "maxLength": 9,
                "minLength": 8,
                "type": "string",
                "description": "The bank code of the Direct Debit account",
                "example": "211370545"
              },
              "currency": {
                "maxLength": 3,
                "minLength": 3,
                "type": "string",
                "description": "The currency of the account",
                "example": "USD"
              },
              "country": {
                "maxLength": 2,
                "minLength": 2,
                "type": "string",
                "description": "The country of the account",
                "example": "US"
              }
            },
            "description": "The details of the bank account"
          },
          "account_holder": {
            "required": [
              "first_name",
              "last_name",
              "company_name",
              "type"
            ],
            "type": "object",
            "properties": {
              "first_name": {
                "type": "string",
                "description": "First name. Required for individual account holder type",
                "example": "John"
              },
              "last_name": {
                "type": "string",
                "description": "Last name. Required for individual account holder type",
                "example": "Smith"
              },
              "company_name": {
                "type": "string",
                "description": "Company name. Required for corporate account holder type",
                "example": "Smith Enterprises"
              },
              "type": {
                "enum": [
                  "individual",
                  "corporate"
                ],
                "type": "string",
                "description": "Account holder type"
              }
            },
            "description": "The account holder details"
          },
          "customer": {
            "$ref": "#/components/schemas/RetrieveInstrumentCustomerResponse"
          }
        },
        "description": "card instrument response"
      },
      "RetrieveCustomerBankAccountInstrumentResponse": {
        "title": "bank_account",
        "required": [
          "type",
          "id",
          "fingerprint",
          "currency",
          "country"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The instrument type",
            "example": "bank_account"
          },
          "id": {
            "type": "string",
            "description": "The unique identifier of the payment source or destination that can be used later for payments",
            "example": "src_wmlfc3zyhqzehihu7giusaaawu"
          },
          "fingerprint": {
            "pattern": "^([a-z0-9]{26})$",
            "type": "string",
            "description": "A token that can uniquely identify this instrument across all customers",
            "example": "vnsdrvikkvre3dtrjjvlm5du4q"
          },
          "account_type": {
            "enum": [
              "savings",
              "current",
              "cash"
            ],
            "type": "string",
            "description": "The type of account",
            "example": "savings"
          },
          "account_number": {
            "type": "string",
            "description": "Number (which can contain letters) that identifies the account",
            "example": "13654567455"
          },
          "bank_code": {
            "type": "string",
            "description": "Code that identifies the bank",
            "example": "123-456"
          },
          "branch_code": {
            "type": "string",
            "description": "Code that identifies the bank branch",
            "example": "6443"
          },
          "iban": {
            "type": "string",
            "description": "Internationally agreed standard for identifying bank account",
            "example": "HU93116000060000000012345676"
          },
          "bban": {
            "type": "string",
            "description": "The combination of bank code and/or branch code and account number",
            "example": "3704 0044 0532 0130 00"
          },
          "swift_bic": {
            "type": "string",
            "description": "8 or 11 character code which identifies the bank or bank branch",
            "example": "37040044"
          },
          "currency": {
            "type": "string",
            "description": "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",
            "example": "GBP"
          },
          "country": {
            "type": "string",
            "description": "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",
            "example": "GB"
          },
          "account_holder": {
            "$ref": "#/components/schemas/AccountHolder"
          },
          "bank": {
            "$ref": "#/components/schemas/BankDetails"
          }
        },
        "description": "Bank account details"
      },
      "RetrieveCustomerCardInstrumentResponse": {
        "title": "card",
        "required": [
          "type",
          "id",
          "fingerprint",
          "expiry_month",
          "expiry_year",
          "last4",
          "bin"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The instrument type",
            "example": "card"
          },
          "id": {
            "type": "string",
            "description": "The unique identifier of the payment source or destination that can be used later for payments",
            "example": "src_wmlfc3zyhqzehihu7giusaaawu"
          },
          "fingerprint": {
            "pattern": "^([a-z0-9]{26})$",
            "type": "string",
            "description": "A token that can uniquely identify this instrument across all customers",
            "example": "vnsdrvikkvre3dtrjjvlm5du4q"
          },
          "expiry_month": {
            "minimum": 1,
            "maxLength": 2,
            "type": "integer",
            "description": "The expiry month",
            "example": 6
          },
          "expiry_year": {
            "maxLength": 4,
            "minLength": 4,
            "type": "integer",
            "description": "The expiry year",
            "example": 2025
          },
          "scheme": {
            "type": "string",
            "description": "The card scheme",
            "example": "VISA"
          },
          "last4": {
            "maxLength": 4,
            "minLength": 4,
            "type": "string",
            "description": "The last four digits of the card number",
            "example": "9996"
          },
          "bin": {
            "type": "string",
            "description": "The card issuer's bank identification number (BIN)",
            "example": "454347"
          },
          "card_type": {
            "enum": [
              "CREDIT",
              "DEBIT",
              "PREPAID",
              "CHARGE"
            ],
            "type": "string",
            "description": "The card type",
            "example": "CREDIT"
          },
          "card_category": {
            "enum": [
              "CONSUMER",
              "COMMERCIAL"
            ],
            "type": "string",
            "description": "The card category",
            "example": "CONSUMER"
          },
          "issuer": {
            "type": "string",
            "description": "The name of the card issuer",
            "example": "GOTHAM STATE BANK"
          },
          "issuer_country": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string",
            "description": "The card issuer's country (<a href=\"https://www.checkout.com/docs/resources/codes/country-codes\" target=\"blank\">two-letter ISO code</a>)",
            "example": "US"
          },
          "product_id": {
            "type": "string",
            "description": "The issuer/card scheme product identifier",
            "example": "F"
          },
          "product_type": {
            "type": "string",
            "description": "The issuer/card scheme product type",
            "example": "CLASSIC"
          },
          "account_holder": {
            "type": "object",
            "properties": {
              "first_name": {
                "type": "string",
                "description": "The first name of the account holder",
                "example": "John"
              },
              "last_name": {
                "type": "string",
                "description": "The last name of the account holder",
                "example": "Smith"
              },
              "billing_address": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Address"
                  }
                ],
                "description": "The billing address of the account holder"
              },
              "phone": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PhoneNumber"
                  }
                ],
                "description": "The phone number of the account holder"
              }
            },
            "description": "The account holder details"
          },
          "card_wallet_type": {
            "enum": [
              "googlepay",
              "applepay"
            ],
            "type": "string",
            "description": "The type of digital wallet used for the card."
          }
        },
        "description": "card instrument response"
      },
      "RetrieveCustomerInstrumentResponse": {
        "required": [
          "type"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/RetrieveCustomerBankAccountInstrumentResponse"
          },
          {
            "$ref": "#/components/schemas/RetrieveCustomerCardInstrumentResponse"
          },
          {
            "$ref": "#/components/schemas/RetrieveCustomerAchInstrumentResponse"
          },
          {
            "$ref": "#/components/schemas/RetrieveCustomerSepaInstrumentResponse"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "bank_account": "#/components/schemas/RetrieveCustomerBankAccountInstrumentResponse",
            "card": "#/components/schemas/RetrieveCustomerCardInstrumentResponse",
            "ach": "#/components/schemas/RetrieveCustomerAchInstrumentResponse",
            "sepa": "#/components/schemas/RetrieveCustomerSepaInstrumentResponse"
          }
        }
      },
      "RetrieveCustomerResponse": {
        "required": [
          "id",
          "email"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The customer's unique identifier",
            "example": "cus_y3oqhf46pyzuxjbcn2giaqnb44"
          },
          "email": {
            "type": "string",
            "description": "The customer's email address",
            "format": "email",
            "example": "brucewayne@gmail.com"
          },
          "default": {
            "type": "string",
            "description": "The ID for this customer's default instrument",
            "example": "src_wmlfc3zyhqzehihu7giusaaawu"
          },
          "name": {
            "type": "string",
            "description": "The customer's name",
            "example": "Bruce Wayne"
          },
          "phone": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PhoneNumber"
              }
            ],
            "description": "The customer's phone number"
          },
          "metadata": {
            "type": "object",
            "description": "A set of key-value pairs that is attached to a customer",
            "example": {
              "coupon_code": "NY2018",
              "partner_id": 123989
            }
          },
          "instruments": {
            "title": "Instrument",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RetrieveCustomerInstrumentResponse"
            },
            "description": "The details of the instruments linked to this customer",
            "example": [
              {
                "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"
              }
            ]
          }
        },
        "description": "Customer retrieved successfully"
      },
      "RetrieveCustomerSepaInstrumentResponse": {
        "title": "sepa",
        "required": [
          "type",
          "id",
          "fingerprint",
          "created_on",
          "modified_on",
          "vault_id"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The instrument type",
            "example": "sepa"
          },
          "id": {
            "type": "string",
            "description": "The unique identifier of the payment source or destination. \n\nYou can use the `id` in future payments.\n",
            "example": "src_wmlfc3zyhqzehihu7giusaaawu"
          },
          "fingerprint": {
            "pattern": "^([a-z0-9]{26})$",
            "type": "string",
            "description": "A token that can uniquely identify this instrument across all customers.",
            "example": "vnsdrvikkvre3dtrjjvlm5du4q"
          },
          "created_on": {
            "type": "string",
            "description": "The date and time the instrument was created.",
            "format": "date-time",
            "example": "2021-01-01T00:00:00.0000000+00:00"
          },
          "modified_on": {
            "type": "string",
            "description": "The date and time the instrument was last modified.",
            "format": "date-time",
            "example": "2021-01-01T00:00:00.0000000+00:00"
          },
          "vault_id": {
            "type": "string",
            "description": "The Vault ID currently attached to the instrument.",
            "example": "vid_wmlfc3zyhqzehihu7giusaaawu"
          },
          "instrument_data": {
            "required": [
              "country",
              "account_number",
              "currency",
              "payment_type",
              "mandate_id",
              "date_of_signature"
            ],
            "type": "object",
            "properties": {
              "account_number": {
                "maxLength": 34,
                "minLength": 15,
                "type": "string",
                "description": "The International Bank Account Number (IBAN) of the account.",
                "example": "FR2810096000509685512959O86"
              },
              "country": {
                "maxLength": 2,
                "minLength": 2,
                "type": "string",
                "description": "The country of the account.",
                "example": "GB"
              },
              "currency": {
                "maxLength": 3,
                "minLength": 3,
                "type": "string",
                "description": "The currency of the account.",
                "example": "GBP"
              },
              "payment_type": {
                "enum": [
                  "recurring",
                  "regular"
                ],
                "type": "string",
                "description": "The type of payment.",
                "example": "recurring"
              },
              "mandate_id": {
                "maxLength": 35,
                "minLength": 1,
                "type": "string",
                "description": "The mandate ID.\n\nIf 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.\n",
                "example": "1234567890"
              },
              "date_of_signature": {
                "maxLength": 10,
                "minLength": 10,
                "type": "string",
                "description": "The date the mandate was signed.\n\nIf `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.\n",
                "format": "date",
                "example": "2021-01-01T00:00:00.0000000"
              }
            },
            "description": "The details of the SEPA mandate."
          },
          "account_holder": {
            "required": [
              "first_name",
              "last_name",
              "billing_address"
            ],
            "type": "object",
            "properties": {
              "first_name": {
                "type": "string",
                "description": "The first name of the account holder.",
                "example": "Hannah"
              },
              "last_name": {
                "type": "string",
                "description": "The last name of the account holder.",
                "example": "Bret"
              },
              "billing_address": {
                "required": [
                  "address_line1",
                  "address_line2",
                  "city",
                  "zip",
                  "country"
                ],
                "type": "object",
                "properties": {
                  "address_line1": {
                    "type": "string",
                    "description": "The first line of the address.",
                    "example": "123 High St."
                  },
                  "address_line2": {
                    "type": "string",
                    "description": "The second line of the address.",
                    "example": "Flat 456"
                  },
                  "city": {
                    "type": "string",
                    "description": "The address city.",
                    "example": "London"
                  },
                  "zip": {
                    "type": "string",
                    "description": "The address ZIP or postal code.",
                    "example": "SW1A 1AA"
                  },
                  "country": {
                    "maxLength": 2,
                    "minLength": 2,
                    "type": "string",
                    "description": "The address country.",
                    "example": "GB"
                  }
                },
                "description": "The billing address of the account holder."
              }
            },
            "description": "The account holder's details."
          },
          "customer": {
            "$ref": "#/components/schemas/RetrieveInstrumentCustomerResponse"
          }
        },
        "description": "card instrument response"
      },
      "StoreCustomerRequest": {
        "required": [
          "email"
        ],
        "type": "object",
        "properties": {
          "email": {
            "maxLength": 255,
            "type": "string",
            "description": "The customer's email address",
            "format": "email",
            "example": "brucewayne@gmail.com"
          },
          "name": {
            "maxLength": 255,
            "type": "string",
            "description": "The customer's name",
            "example": "Bruce Wayne"
          },
          "phone": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PhoneNumber"
              }
            ],
            "description": "The customer's phone number"
          },
          "metadata": {
            "type": "object",
            "description": "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.",
            "example": {
              "coupon_code": "NY2018",
              "partner_id": 123989
            }
          },
          "default": {
            "type": "string",
            "description": "The ID of the instrument you want to set as this customer's default instrument",
            "example": "src_wmlfc3zyhqzehihu7giusaaawu"
          }
        },
        "description": "Create a customer"
      },
      "StoreCustomerResponse": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The customer's unique identifier",
            "example": "cus_y3oqhf46pyzuxjbcn2giaqnb44"
          }
        },
        "description": "Customer created successfully"
      },
      "UpdateCustomerDetailsRequest": {
        "type": "object",
        "properties": {
          "email": {
            "maxLength": 255,
            "type": "string",
            "description": "The email address of the customer",
            "format": "email",
            "example": "brucewayne@gmail.com"
          },
          "name": {
            "maxLength": 255,
            "type": "string",
            "description": "The name of the customer",
            "example": "Bruce Wayne"
          },
          "phone": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PhoneNumber"
              }
            ],
            "description": "The customer's phone number"
          },
          "metadata": {
            "type": "object",
            "description": "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.",
            "example": {
              "coupon_code": "NY2018",
              "partner_id": 123989
            }
          },
          "default": {
            "type": "string",
            "description": "The ID of this customer's default instrument",
            "example": "src_wmlfc3zyhqzehihu7giusaaawu"
          }
        },
        "description": "The customer's details"
      },
      "DatedObject": {
        "required": [
          "created_on",
          "modified_on"
        ],
        "type": "object",
        "properties": {
          "created_on": {
            "type": "string",
            "description": "The date and time when the resource was created, in UTC. <br/>Format – `yyyy-mm-ddThh:mm:ss.sss`",
            "format": "date-time",
            "readOnly": true,
            "example": "2025-07-21T17:32:28.0000000+00:00"
          },
          "modified_on": {
            "type": "string",
            "description": "The date and time when the resource was modified, in UTC. <br/>Format – `yyyy-mm-ddThh:mm:ss.sss`",
            "format": "date-time",
            "readOnly": true,
            "example": "2025-07-21T17:40:32.0000000+00:00"
          }
        }
      },
      "CompellingEvidence": {
        "required": [
          "merchandise_or_service",
          "merchandise_or_service_desc",
          "merchandise_or_service_provided_date",
          "historical_transactions"
        ],
        "type": "object",
        "properties": {
          "merchandise_or_service": {
            "type": "string",
            "description": "Value can be either \"Merchandise\" or \"Services\".",
            "example": "Merchandise"
          },
          "merchandise_or_service_desc": {
            "maxLength": 5000,
            "minLength": 1,
            "type": "string",
            "description": "Description of the merchandise or service that this transaction was for.",
            "example": "Subscription payment"
          },
          "merchandise_or_service_provided_date": {
            "type": "string",
            "description": "The date and time the merchandise or service was provided, in UTC format.",
            "format": "date-time",
            "example": "2024-07-25T11:23:06.0000000+00:00"
          },
          "shipping_delivery_status": {
            "type": "string",
            "description": "Status of the order. Only valid if merchandise_or_services is equal to \"Merchandise”.\n  * `not_shipped`\n  * `back_ordered`\n  * `in_transit`\n  * `partial_shipped`\n  * `shipped`\n  * `cancelled`\n  * `shipping_exception`\n  * `picked_up_by_customer`\n  * `delivered`\n  * `other`\n",
            "example": "shipped"
          },
          "tracking_information": {
            "maxLength": 50,
            "type": "string",
            "description": "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:\n  * `in_transit`\n  * `partial_shipped`\n  * `shipped`\n  * `shipping_exception`\n  * `delivered`\n  * `other`\n",
            "example": "129481229312"
          },
          "user_id": {
            "maxLength": 50,
            "type": "string",
            "description": "User ID is synonymous to Customer Account/log in ID.",
            "example": "user@cko.com"
          },
          "ip_address": {
            "type": "string",
            "description": "IpAddress used in the transaction. Should be either IPV4 or IPV6.",
            "example": "192.168.1.150"
          },
          "device_id": {
            "maxLength": 64,
            "minLength": 15,
            "type": "string",
            "description": "Device used in the transaction.",
            "example": "device_123_x_1220"
          },
          "shipping_address": {
            "required": [
              "address",
              "city",
              "postal_code",
              "country"
            ],
            "type": "object",
            "properties": {
              "address": {
                "maxLength": 50,
                "type": "string",
                "description": "It describes the main address."
              },
              "address2": {
                "maxLength": 50,
                "type": "string",
                "description": "Any additional information about the address."
              },
              "city": {
                "maxLength": 50,
                "type": "string",
                "description": "The name of the city."
              },
              "state_region": {
                "maxLength": 2,
                "minLength": 2,
                "type": "string",
                "description": "The state for the address. Required if the country is \"US\" or \"CA\" (Canada)."
              },
              "postal_code": {
                "maxLength": 9,
                "type": "string",
                "description": "The postal code of the address."
              },
              "country": {
                "maxLength": 3,
                "minLength": 3,
                "type": "string",
                "description": "The three digit ISO code of the country.",
                "example": "826"
              }
            },
            "description": "The shipping address provided for this transaction."
          },
          "historical_transactions": {
            "type": "array",
            "items": {
              "required": [
                "historical_arn",
                "merchandise_or_service_desc"
              ],
              "type": "object",
              "properties": {
                "historical_arn": {
                  "maxLength": 23,
                  "minLength": 22,
                  "type": "string",
                  "description": "The Acquirer reference number (ARN) of the capture transaction."
                },
                "merchandise_or_service_desc": {
                  "maxLength": 5000,
                  "minLength": 1,
                  "type": "string",
                  "description": "Description of the merchandise or service that this transaction was for."
                }
              }
            },
            "description": "List of historical transactions. At least two transactions."
          }
        }
      },
      "Dispute": {
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^(dsp)_(\\w{22,26})$",
            "type": "string",
            "description": "The dispute identifier. This is the same as the payment action ID.",
            "example": "dsp_rbhwd2qrg13uhrp2newfarfder"
          },
          "entity_id": {
            "type": "string",
            "description": "The client entity linked to this dispute.",
            "example": "ent_wxglze3wwywujg4nna5fb7ldli"
          },
          "sub_entity_id": {
            "type": "string",
            "description": "The sub-entity linked to this dispute.",
            "example": "ent_uzm3uxtssvmuxnyrfdffcyjxeu"
          },
          "reference": {
            "type": "string",
            "description": "An optional reference to identify the dispute.",
            "example": "dispute-09"
          },
          "category": {
            "enum": [
              "fraudulent",
              "unrecognized",
              "canceled_recurring",
              "product_service_not_received",
              "not_as_described",
              "credit_not_issued",
              "duplicate",
              "incorrect_amount",
              "general"
            ],
            "type": "string",
            "description": "The reason for the dispute. [Find out more](https://www.checkout.com/docs/risk-management/disputes/responding-to-disputes/dispute-reasons-and-recommended-evidence)",
            "example": "fraudulent"
          },
          "amount": {
            "type": "number",
            "description": "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.",
            "example": 999
          },
          "currency": {
            "type": "string",
            "description": "The processing currency.",
            "example": "GBP"
          },
          "reason_code": {
            "type": "string",
            "description": "The reason code provided by the card scheme.",
            "example": "10.4"
          },
          "status": {
            "enum": [
              "evidence_required",
              "evidence_under_review",
              "resolved",
              "won",
              "lost",
              "canceled",
              "expired",
              "accepted",
              "arb_evidence_submitted",
              "arbitration_under_review",
              "arbitration_won",
              "arbitration_lost"
            ],
            "type": "string",
            "description": "The current status of the dispute.",
            "example": "evidence_required"
          },
          "resolved_reason": {
            "enum": [
              "rapid_dispute_resolution",
              "negative_amount",
              "already_refunded"
            ],
            "type": "string",
            "description": "If the dispute is automatically resolved, `resolved_reason` will contain the reason why it was resolved.",
            "example": "already_refunded"
          },
          "relevant_evidence": {
            "type": "array",
            "items": {
              "type": "array",
              "items": {
                "enum": [
                  "proof_of_delivery_or_service",
                  "invoice_or_receipt",
                  "invoice_showing_distinct_transactions",
                  "customer_communication",
                  "refund_or_cancellation_policy",
                  "recurring_transaction_agreement",
                  "proof_of_delivery_or_service_date additional_evidence",
                  "compelling_evidence"
                ],
                "type": "string"
              },
              "example": [
                "proof_of_delivery_or_service",
                "compelling_evidence"
              ]
            },
            "description": "<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": {
            "type": "string",
            "description": "The deadline by which you must respond to the dispute. \n\nThis is equal to the `received_on` date + `n` calendar days, where `n` is the number of days set by the scheme or acquirer.\n",
            "format": "date-time",
            "example": "2018-08-21T00:00:00.0000000+00:00"
          },
          "received_on": {
            "type": "string",
            "description": "The date and time at which the dispute was issued.",
            "format": "date-time",
            "example": "2018-08-01T04:00:10.0000000+00:00"
          },
          "last_update": {
            "type": "string",
            "description": "The date and time at which the dispute was last updated.",
            "format": "date-time",
            "example": "2018-08-04T10:53:13.0000000+00:00"
          },
          "is_ce_candidate": {
            "type": "boolean",
            "description": "Indicates whether the dispute is eligible for compelling evidence.",
            "example": true
          },
          "payment": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentData"
              }
            ],
            "description": "Provides details for the payment linked to the dispute."
          },
          "evidence_list": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "file": {
                  "type": "string",
                  "description": "The file's unique identifier."
                },
                "text": {
                  "type": "string",
                  "description": "A description for the evidence file."
                },
                "type": {
                  "enum": [
                    "proof_of_delivery_or_service",
                    "invoice_or_receipt",
                    "invoice_showing_distinct_transactions",
                    "customer_communication",
                    "refund_or_cancellation_policy",
                    "recurring_transaction_agreement",
                    "proof_of_delivery_or_service_date",
                    "additional_evidence",
                    "compelling_evidence",
                    "arbitration_no_review",
                    "arbitration_review_required"
                  ],
                  "type": "string",
                  "description": "The type of evidence the file is intended to support.",
                  "example": "proof_of_delivery_or_service"
                },
                "dispute_id": {
                  "type": "string"
                }
              }
            },
            "description": "List of evidence files provided for the dispute."
          },
          "evidence_bundle": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "dispute_id": {
                  "type": "string",
                  "description": "The unique identifier of the dispute associated with the bundle.",
                  "example": "dsp_rbhwd2qrg13uhrp2newfab"
                },
                "filename": {
                  "type": "string",
                  "description": "The name of the bundled evidence file."
                },
                "file_size": {
                  "type": "number",
                  "description": "The file size of the bundled evidence file, in KB."
                },
                "is_file_oversized": {
                  "type": "boolean",
                  "description": "Specifies whether the bundled file exceeded the maximum file size limit."
                },
                "created_at": {
                  "type": "string",
                  "description": "The date and time the file was created, in UTC format.",
                  "format": "date-time"
                },
                "modified_at": {
                  "type": "string",
                  "description": "The date and time the file was last modified, in UTC format.",
                  "format": "date-time"
                }
              }
            },
            "description": "The bundled evidence file sent to the scheme."
          },
          "segment_id": {
            "type": "string",
            "description": "The unique identifier of the business segment that the payment belongs to."
          },
          "_links": {
            "type": "object",
            "properties": {
              "self": {
                "properties": {
                  "href": {
                    "example": "https://{prefix}.api.checkout.com/disputes/dsp_rbhwd2qrg13uhrp2newf"
                  }
                },
                "description": "The dispute retrieval endpoint."
              },
              "evidence": {
                "properties": {
                  "href": {
                    "example": "https://{prefix}.api.checkout.com/disputes/dsp_rbhwd2qrg13uhrp2newf/evidence"
                  }
                },
                "description": "The dispute evidence retrieval endpoint."
              }
            }
          }
        }
      },
      "DisputePaged": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "description": "The numbers of items to return.",
            "example": 10
          },
          "skip": {
            "type": "integer",
            "description": "The number of results to skip.",
            "example": 10
          },
          "from": {
            "type": "string",
            "description": "The date and time from which to filter disputes, based on the dispute's `last_update` field.",
            "format": "date-time",
            "example": "2018-08-12T01:15:56.0000000+00:00"
          },
          "to": {
            "type": "string",
            "description": "The date and time until which to filter disputes, based on the dispute's `last_update` field.",
            "format": "date-time",
            "example": "2018-08-13T11:09:01.0000000+00:00"
          },
          "id": {
            "pattern": "^(dsp)_(\\w{22,26})$",
            "type": "string",
            "description": "The unique identifier of the dispute.",
            "example": "dsp_rbhwd2qrg13uhrp2newfcd"
          },
          "entity_ids": {
            "type": "string",
            "description": "One or more comma-separated client entities. This works like a logical *OR* operator.",
            "example": "ent_wxglze3wwywujg4nna5fb7ldli,ent_vkb5zcy64zoe3cwfmaqvqyqyku"
          },
          "sub_entity_ids": {
            "type": "string",
            "description": "One or more comma-separated sub-entities. This works like a logical *OR* operator.",
            "example": "ent_uzm3uxtssvmuxnyrfdffcyjxeu,ent_hy5wtzwzeuwefmsnjtdhw4scfi"
          },
          "processing_channel_ids": {
            "type": "string",
            "description": "One or more comma-separated processing channels. This works like a logical *OR* operator.",
            "example": "pc_uzm3uxtssvmuxnyrfdffcyjxeu,pc_hy5wtzwzeuwefmsnjtdhw4scfi"
          },
          "segment_ids": {
            "type": "string",
            "description": "One or more comma-separated segments. This works like a logical *OR* operator."
          },
          "statuses": {
            "type": "string",
            "description": "One or more comma-separated statuses. This works like a logical *OR* operator.",
            "example": "evidence_required,evidence_under_review"
          },
          "payment_id": {
            "pattern": "^pay_(\\w{26})$",
            "type": "string",
            "description": "The unique identifier of the payment.",
            "example": "pay_lzmo6p0i3612judj754w1ngtil"
          },
          "payment_reference": {
            "type": "string",
            "description": "An optional reference (such as an order ID) that you can use later to identify the payment. Previously known as `TrackId`.",
            "example": "th7zxa1kcnqmes8"
          },
          "payment_arn": {
            "type": "string",
            "description": "The acquirer reference number (ARN) that you can use to query the issuing bank.",
            "example": "74548998294293193445538"
          },
          "payment_mcc": {
            "type": "string",
            "description": "The merchant category code (MCC) of the payment (ISO 18245).",
            "example": "5021"
          },
          "this_channel_only": {
            "type": "boolean",
            "description": "If `true`, only returns disputes of the specific channel that the secret key is associated with. Otherwise, returns all disputes for that business.",
            "example": true
          },
          "total_count": {
            "type": "integer",
            "description": "The total number of disputes retrieved (without taking into consideration skip and limit parameters).",
            "example": 1
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DisputeSummary"
            },
            "description": "The list of disputes."
          }
        }
      },
      "DisputeSummary": {
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^(dsp)_(\\w{22,26})$",
            "type": "string",
            "description": "The dispute identifier. This is the same as the action ID in the reconciliation API or the charge ID in the Hub.",
            "example": "dsp_rbhwd2qrg13uhrp2newfafreds"
          },
          "entity_id": {
            "type": "string",
            "description": "The client entity linked to this dispute",
            "example": "ent_wxglze3wwywujg4nna5fb7ldli"
          },
          "sub_entity_id": {
            "type": "string",
            "description": "The sub-entity linked to this dispute",
            "example": "ent_uzm3uxtssvmuxnyrfdffcyjxeu"
          },
          "processing_channel": {
            "type": "string",
            "description": "The processing channel linked to the dispute.",
            "example": "pc_uzm3uxtssvmuxnyrfdffcyjxeu"
          },
          "segment_id": {
            "type": "string"
          },
          "category": {
            "enum": [
              "fraudulent",
              "unrecognized",
              "canceled_recurring",
              "product_service_not_received",
              "not_as_described",
              "credit_not_issued",
              "duplicate",
              "incorrect_amount",
              "general"
            ],
            "type": "string",
            "description": "The reason for the dispute. [Find out more](https://www.checkout.com/docs/risk-management/disputes/responding-to-disputes/dispute-reasons-and-recommended-evidence)",
            "example": "fraudulent"
          },
          "status": {
            "enum": [
              "evidence_required",
              "evidence_under_review",
              "resolved",
              "won",
              "lost",
              "canceled",
              "expired",
              "accepted",
              "arbitration_under_review",
              "arbitration_won",
              "arbitration_lost"
            ],
            "type": "string",
            "description": "The current status of the dispute",
            "example": "evidence_required"
          },
          "amount": {
            "type": "number",
            "description": "The amount that is being disputed, in the processing currency",
            "example": 999
          },
          "currency": {
            "type": "string",
            "description": "The currency the payment was made in",
            "example": "GBP"
          },
          "reason_code": {
            "type": "string",
            "description": "The reason code provided by the card scheme",
            "example": "10.4"
          },
          "payment_id": {
            "type": "string",
            "description": "The unique payment identifier",
            "example": "pay_88cb4e671m1da22e9bbbyx"
          },
          "payment_action_id": {
            "type": "string",
            "description": "The unique identifier of the payment action",
            "example": "act_mbabizu24mvu3mela5njyhpit4"
          },
          "payment_reference": {
            "type": "string",
            "description": "An optional reference (such as an order ID) a merchant can use to later identify the charge. Previously known as TrackId",
            "example": "th7zxa1kcnqmes8"
          },
          "payment_arn": {
            "type": "string",
            "description": "The acquirer reference number that can be used to query the issuing bank",
            "example": "74548998294293193445538"
          },
          "payment_mcc": {
            "type": "string",
            "description": "The merchant category code (MCC) of the payment (ISO 18245)",
            "example": "5021"
          },
          "payment_method": {
            "type": "string",
            "description": "The payment method/card scheme",
            "example": "VISA"
          },
          "evidence_required_by": {
            "type": "string",
            "description": "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",
            "format": "date-time",
            "example": "2018-08-22T00:00:00.0000000+00:00"
          },
          "received_on": {
            "type": "string",
            "description": "The date and time at which the dispute was issued",
            "format": "date-time",
            "example": "2018-08-01T01:15:56.0000000+00:00"
          },
          "last_update": {
            "type": "string",
            "description": "The date and time at which the dispute was last updated",
            "format": "date-time",
            "example": "2018-08-12T04:15:56.0000000+00:00"
          },
          "resolved_reason": {
            "enum": [
              "rapid_dispute_resolution",
              "negative_amount",
              "already_refunded"
            ],
            "type": "string",
            "description": "If the dispute is automatically resolved, `resolved_reason` will contain the reason it was resolved",
            "example": "already_refunded"
          },
          "is_ce_candidate": {
            "type": "boolean",
            "description": "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>.\n",
            "example": true
          },
          "_links": {
            "type": "object",
            "properties": {
              "self": {
                "properties": {
                  "href": {
                    "example": "https://{prefix}.api.checkout.com/disputes/dsp_rbhwd2qrg13uhrp2newf"
                  }
                },
                "description": "The dispute retrieval endpoint"
              }
            }
          }
        }
      },
      "Evidence": {
        "type": "object",
        "properties": {
          "proof_of_delivery_or_service_file": {
            "type": "string",
            "description": "A file containing proof of delivery of goods or services.",
            "example": "file_jmbfgkjromvcrn9t4qu4"
          },
          "proof_of_delivery_or_service_text": {
            "type": "string",
            "description": "A brief description of the file provided in `proof_of_delivery_or_service_file`. \n\nAlternatively, you can provide a link to an externally-hosted file containing the description.\n",
            "example": "Description of evidence available at: http://checkout.com/evidenceDocument.pdf"
          },
          "proof_of_delivery_or_service_date_file": {
            "type": "string",
            "description": "A file showing the delivery date of the provided service or merchandise.",
            "example": "file_jmbfgkjromvcrn9t4qu4"
          },
          "proof_of_delivery_or_service_date_text": {
            "type": "string",
            "description": "A brief description of the file provided in `proof_of_delivery_or_service_date_file`. \n\nAlternatively, you can provide a link to an externally-hosted file containing the description.\n",
            "example": "Copy of the customer receipt showing the merchandise was delivered on 2018-12-20"
          },
          "invoice_or_receipt_file": {
            "type": "string",
            "description": "A file containing an invoice or receipt.",
            "example": "file_jmbfgkjromvcrn9t4qu4"
          },
          "invoice_or_receipt_text": {
            "type": "string",
            "description": "A brief description of the file provided in `invoice_or_receipt_file`. \n\nAlternatively, you can provide a link to an externally-hosted file containing the description.\n",
            "example": "Copy of the invoice"
          },
          "invoice_showing_distinct_transactions_file": {
            "type": "string",
            "description": "A file containing an invoice which shows two distinct transactions.",
            "example": "file_jmbfgkjromvcrn9t4qu4"
          },
          "invoice_showing_distinct_transactions_text": {
            "type": "string",
            "description": "A brief description of the file provided in `invoice_showing_distinct_transactions_file`. \n\nAlternatively, you can provide a link to an externally-hosted file containing the description.\n",
            "example": "Copy of invoice #1244 showing two transactions"
          },
          "customer_communication_file": {
            "type": "string",
            "description": "A file containing proof of communication with the customer.",
            "example": "file_jmbfgkjromvcrn9t4qu4"
          },
          "customer_communication_text": {
            "type": "string",
            "description": "A brief description of the file provided in `customer_communication_file`. \n\nAlternatively, you can provide a link to an externally-hosted file containing the description.\n",
            "example": "Copy of an email exchange with the cardholder"
          },
          "refund_or_cancellation_policy_file": {
            "type": "string",
            "description": "A file containing the refund or cancellation policy.",
            "example": "file_jmbfgkjromvcrn9t4qu4"
          },
          "refund_or_cancellation_policy_text": {
            "type": "string",
            "description": "A brief description of the file provided in `refund_or_cancellation_policy_file`. \n\nAlternatively, you can provide a link to an externally-hosted file containing the description.\n",
            "example": "Copy of the refund policy"
          },
          "recurring_transaction_agreement_file": {
            "type": "string",
            "description": "A file containing the recurring transaction agreement.",
            "example": "file_jmbfgkjromvcrn9t4qu4"
          },
          "recurring_transaction_agreement_text": {
            "type": "string",
            "description": "A brief description of the file provided in `recurring_transaction_agreement_file`. \n\nAlternatively, you can provide a link to an externally-hosted file containing the description.\n",
            "example": "Copy of the recurring transaction agreement"
          },
          "additional_evidence_file": {
            "type": "string",
            "description": "A file containing additional supporting documents.",
            "example": "file_jmbfgkjromvcrn9t4qu4"
          },
          "additional_evidence_text": {
            "type": "string",
            "description": "A brief description of the file provided in `additional_evidence_file`. \n\nAlternatively, you can provide a link to an externally-hosted file containing the description.\n",
            "example": "Scanned document"
          },
          "arbitration_no_review_files": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The evidence to submit directly to the scheme when you escalate the dispute to arbitration.\n\nEvidence you provide with this field is submitted directly to the scheme.\n",
            "example": [
              "file_jmbfgkjromvcrn9t4qu4",
              "file_kmbfgkjromvcrn9t4qu5"
            ]
          },
          "arbitration_no_review_text": {
            "type": "string",
            "description": "A brief description of the file provided in `arbitration_no_review_files`. \n\nAlternatively, you can provide a link to an externally-hosted file containing the description.\n",
            "example": "Evidence for arbitration"
          },
          "arbitration_review_required_files": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The evidence to submit to the Checkout.com Dispute Resolution team for review. \n\nYou'll be advised on the likelihood of success if you choose to escalate the dispute to arbitration.\n",
            "example": [
              "file_jmbfgkjromvcrn9t4qu4",
              "file_kmbfgkjromvcrn9t4qu5"
            ]
          },
          "arbitration_review_required_text": {
            "type": "string",
            "description": "A brief description of the file provided in `arbitration_review_required_files`. \n\nAlternatively, you can provide a link to an externally-hosted file containing the description.\n",
            "example": "Evidence for arbitration"
          },
          "compelling_evidence": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/CompellingEvidence"
              }
            ],
            "description": "Used to resolve friendly fraud with merchant historical transactions."
          }
        }
      },
      "File": {
        "required": [
          "file",
          "purpose"
        ],
        "type": "object",
        "properties": {
          "file": {
            "type": "string",
            "description": "The path of the file to upload, and its type. <br><i>This must be a local path.</i>",
            "example": "file=@/path/receipt.png;type=image/png"
          },
          "purpose": {
            "type": "string",
            "description": "The purpose of the file upload. \n\nIf 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`.\n",
            "example": "dispute_evidence"
          }
        }
      },
      "FilePurpose": {
        "enum": [
          "dispute_evidence",
          "arbitration_evidence",
          "submitted_evidence"
        ],
        "type": "string",
        "description": "The purpose of the file. \n\nThe value `submitted_evidence` represents the finalized evidence which was uploaded to the scheme portals.\n",
        "example": "dispute_evidence"
      },
      "FileResult": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The file identifier",
            "example": "file_6lbss42ezvoufcb2beo76rvwly"
          },
          "filename": {
            "type": "string",
            "description": "The filename, including its extension",
            "example": "receipt.jpg"
          },
          "purpose": {
            "$ref": "#/components/schemas/FilePurpose"
          },
          "size": {
            "type": "integer",
            "description": "The size of the file upload object (in bytes)",
            "example": 1024
          },
          "uploaded_on": {
            "type": "string",
            "description": "The date and time file was uploaded (in UTC)",
            "format": "date-time",
            "example": "2019-05-17T16:48:52.0000000+00:00"
          },
          "_links": {
            "type": "object",
            "properties": {
              "self": {
                "properties": {
                  "href": {
                    "example": "https://{prefix}.api.checkout.com/files/file_6lbss42ezvoufcb2beo76rvwly"
                  }
                },
                "description": "The file information retrieval URL"
              },
              "download": {
                "properties": {
                  "href": {
                    "example": "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"
                  }
                },
                "description": "The temporary file download URL. This expires after 60 minutes"
              }
            }
          }
        },
        "description": "File was retrieved successfully"
      },
      "FileUploadResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The file identifier",
            "example": "file_6lbss42ezvoufcb2beo76rvwly"
          },
          "_links": {
            "type": "object",
            "properties": {
              "self": {
                "properties": {
                  "href": {
                    "example": "https://{prefix}.api.checkout.com/files/file_6lbss42ezvoufcb2beo76rvwly"
                  }
                },
                "description": "The file information retrieval URL"
              }
            }
          }
        },
        "description": "File uploaded successfully"
      },
      "PaymentData": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The payment's unique identifier",
            "example": "pay_mbabizu24mvu3mela5njyhpit4"
          },
          "action_id": {
            "type": "string",
            "description": "The unique identifier of the payment action",
            "example": "act_mbabizu24mvu3mela5njyhpit4"
          },
          "processing_channel_id": {
            "pattern": "^(pc)_(\\w{26})$",
            "type": "string",
            "description": "The processing channel used for the payment.",
            "example": "pc_q4dbxom5jbgudnjzjpz7j2z6uq"
          },
          "amount": {
            "type": "number",
            "description": "The amount that is being disputed, in the processing currency",
            "example": 999
          },
          "currency": {
            "type": "string",
            "description": "The payment currency",
            "example": "GBP"
          },
          "reference": {
            "type": "string",
            "description": "An optional reference to identify the payment."
          },
          "method": {
            "type": "string",
            "description": "The payment method used",
            "example": "Visa"
          },
          "acquirer_reference_number": {
            "type": "string",
            "description": "The acquirer reference number (ARN)",
            "example": "AA246873253573571073808"
          },
          "mcc": {
            "type": "string",
            "description": "The <a href= \"https://www.checkout.com/docs/resources/codes/merchant-category-codes\">merchant category code (MCC)</a> for the payment.",
            "example": "5021"
          },
          "3ds": {
            "type": "object",
            "properties": {
              "version": {
                "type": "string",
                "description": "The 3D Secure version used for authentication.",
                "example": "2.1.0"
              },
              "enrolled": {
                "type": "string",
                "description": "The issuer's 3D Secure (3DS) enrollment status:\n  - `Y`: issuer enrolled\n  - `N`: customer not enrolled\n  - `U`: enrollment status unknown\n",
                "example": "Y"
              }
            },
            "description": "Specifies if the payment was authenticated with 3DS."
          },
          "eci": {
            "type": "string",
            "description": "The final Electronic Commerce Indicator (ECI) security level used to authorize the payment.\n\nThe ECI indicator is applicable to 3D Secure (3DS) and network token payments.\n",
            "example": "06"
          },
          "has_refund": {
            "type": "boolean",
            "description": "Specifies whether there is a refund against the payment."
          },
          "processed_on": {
            "type": "string",
            "description": "The date and time at which the payment was requested",
            "format": "date-time",
            "example": "2018-08-01T08:18:10.0000000+00:00"
          }
        }
      },
      "ProvideEvidenceRequest": {
        "type": "object",
        "properties": {
          "proof_of_delivery_or_service_file": {
            "type": "string",
            "description": "A file containing proof of delivery of goods or services.",
            "example": "file_jmbfgkjromvcrn9t4qu4"
          },
          "proof_of_delivery_or_service_text": {
            "maximum": 500,
            "type": "string",
            "description": "A brief description of the file provided in `proof_of_delivery_or_service_file`. \n\nAlternatively, you can provide a link to an externally-hosted file containing the description.\n",
            "example": "Description of evidence available at: http://checkout.com/evidenceDocument.pdf"
          },
          "proof_of_delivery_or_service_date_file": {
            "type": "string",
            "description": "A file showing the delivery date of the provided service or merchandise.",
            "example": "file_jmbfgkjromvcrn9t4qu4"
          },
          "proof_of_delivery_or_service_date_text": {
            "maximum": 500,
            "type": "string",
            "description": "A brief description of the file provided in `proof_of_delivery_or_service_date_file`. \n\nAlternatively, you can provide a link to an externally-hosted file containing the description.\n",
            "example": "Copy of the customer receipt showing the merchandise was delivered on 2018-12-20"
          },
          "invoice_or_receipt_file": {
            "type": "string",
            "description": "A file containing an invoice or receipt.",
            "example": "file_jmbfgkjromvcrn9t4qu4"
          },
          "invoice_or_receipt_text": {
            "maximum": 500,
            "type": "string",
            "description": "A brief description of the file provided in `invoice_or_receipt_file`. \n\nAlternatively, you can provide a link to an externally-hosted file containing the description.\n",
            "example": "Copy of the invoice"
          },
          "invoice_showing_distinct_transactions_file": {
            "type": "string",
            "description": "A file containing invoice showing two distinct transactions.",
            "example": "file_jmbfgkjromvcrn9t4qu4"
          },
          "invoice_showing_distinct_transactions_text": {
            "maximum": 500,
            "type": "string",
            "description": "A brief description of the file provided in `invoice_showing_distinct_transactions_file`. \n\nAlternatively, you can provide a link to an externally-hosted file containing the description.\n",
            "example": "Copy of invoice #1244 showing two transactions"
          },
          "customer_communication_file": {
            "type": "string",
            "description": "A file containing customer communication.",
            "example": "file_jmbfgkjromvcrn9t4qu4"
          },
          "customer_communication_text": {
            "maximum": 500,
            "type": "string",
            "description": "A brief description of the file provided in `customer_communication_file`. \n\nAlternatively, you can provide a link to an externally-hosted file containing the description.\n",
            "example": "Copy of an email exchange with the cardholder"
          },
          "refund_or_cancellation_policy_file": {
            "type": "string",
            "description": "A file containing refund/cancellation policy",
            "example": "file_jmbfgkjromvcrn9t4qu4"
          },
          "refund_or_cancellation_policy_text": {
            "maximum": 500,
            "type": "string",
            "description": "A brief description of the file provided in `refund_or_cancellation_policy_file`. \n\nAlternatively, you can provide a link to an externally-hosted file containing the description.\n",
            "example": "Copy of the refund policy"
          },
          "recurring_transaction_agreement_file": {
            "type": "string",
            "description": "A file containing the recurring transaction agreement",
            "example": "file_jmbfgkjromvcrn9t4qu4"
          },
          "recurring_transaction_agreement_text": {
            "maximum": 500,
            "type": "string",
            "description": "A brief description of the file provided in `recurring_transaction_agreement_file`. \n\nAlternatively, you can provide a link to an externally-hosted file containing the description.\n",
            "example": "Copy of the recurring transaction agreement"
          },
          "additional_evidence_file": {
            "type": "string",
            "description": "A file containing additional supporting documents.",
            "example": "file_jmbfgkjromvcrn9t4qu4"
          },
          "additional_evidence_text": {
            "maximum": 500,
            "type": "string",
            "description": "A brief description of the file provided in `additional_evidence_file`. \n\nAlternatively, you can provide a link to an externally-hosted file containing the description.\n",
            "example": "Scanned document"
          },
          "arbitration_no_review_files": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The evidence to submit directly to the scheme when you escalate the dispute to arbitration.\n\nEvidence you provide with this field is submitted directly to the scheme.\n",
            "example": [
              "file_jmbfgkjromvcrn9t4qu4",
              "file_kmbfgkjromvcrn9t4qu5"
            ]
          },
          "arbitration_no_review_text": {
            "maximum": 500,
            "type": "string",
            "description": "A brief description of the file provided in `arbitration_no_review_files`. \n\nAlternatively, you can provide a link to an externally-hosted file containing the description.\n",
            "example": "Evidence for arbitration"
          },
          "arbitration_review_required_files": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The evidence to submit to the Checkout.com Dispute Resolution team for review. \n\nYou'll be advised on the likelihood of success if you choose to escalate the dispute to arbitration.\n",
            "example": [
              "file_jmbfgkjromvcrn9t4qu4",
              "file_kmbfgkjromvcrn9t4qu5"
            ]
          },
          "arbitration_review_required_text": {
            "maximum": 500,
            "type": "string",
            "description": "A brief description of the file provided in `arbitration_review_required_files`. \n\nAlternatively, you can provide a link to an externally-hosted file containing the description.\n",
            "example": "Evidence for arbitration"
          },
          "compelling_evidence": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/CompellingEvidence"
              }
            ],
            "description": "Used to resolve friendly fraud with merchant historical transactions."
          },
          "_links": {
            "type": "object",
            "properties": {
              "self": {
                "properties": {
                  "href": {
                    "example": "https://{prefix}.api.checkout.com/disputes/dsp_rbhwd2qrg13uhrp2newf12/evidence"
                  }
                },
                "description": "The evidence retrieval endpoint."
              },
              "parent": {
                "properties": {
                  "href": {
                    "example": "https://{prefix}.api.checkout.com/disputes/dsp_rbhwd2qrg13uhrp2newf12"
                  }
                },
                "description": "The dispute retrieval endpoint."
              }
            }
          }
        }
      },
      "SchemeFileResponse": {
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^dsp_(\\w{22,26})$",
            "type": "string",
            "description": "The dispute identifier",
            "example": "dsp_rbhwd2qrg13uhrp2newfab"
          },
          "files": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "dispute_status": {
                  "type": "string",
                  "description": "The dispute status of the scheme file",
                  "example": "dispute_lost"
                },
                "file": {
                  "type": "string",
                  "description": "The scheme file identifier",
                  "example": "file_6lbss42ezvoufcb2beo76rvwly"
                }
              }
            },
            "description": "The scheme files of a dispute"
          },
          "_links": {
            "type": "object",
            "properties": {
              "self": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Link"
                  }
                ],
                "description": "The dispute scheme files retrieval endpoint",
                "example": {
                  "href": "https://{prefix}.api.checkout.com/disputes/dsp_rbhwd2qrg13uhrp2newf/schemefiles"
                }
              }
            }
          }
        }
      },
      "SubmittedEvidenceResponse": {
        "type": "object",
        "properties": {
          "file_id": {
            "pattern": "^(file)_(\\w{26})$",
            "type": "string",
            "description": "The unique identifier for the PDF file containing all of the submitted evidence.",
            "example": "file_iweu3nxyt6zund3gwhg7wo4fhq"
          },
          "_links": {
            "type": "object",
            "properties": {
              "self": {
                "type": "object",
                "properties": {
                  "href": {
                    "type": "string",
                    "example": "https://{prefix}.api.checkout.com/disputes/dsp_f28bcafe073z72ad4a18/evidence/submitted"
                  }
                },
                "description": "The endpoint you can use to retrieve the unique identifier of the PDF file containing all of the submitted dispute evidence."
              }
            }
          }
        }
      },
      "Error": {
        "type": "object",
        "properties": {
          "request_id": {
            "type": "string",
            "example": "0HL80RJLS76I7"
          },
          "error_type": {
            "type": "string",
            "example": "request_malformed"
          }
        }
      },
      "FavActiveLink": {
        "required": [
          "verification_url"
        ],
        "type": "object",
        "properties": {
          "verification_url": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IdvHalLink"
              }
            ],
            "description": "The attempt URL to redirect the applicant to."
          }
        }
      },
      "FavApplicantSessionInformation": {
        "title": "ApplicantSessionInformation",
        "type": "object",
        "properties": {
          "ip_address": {
            "type": "string",
            "description": "The applicant's IP address during the attempt.",
            "example": "123.4.5.6"
          },
          "number_of_sessions": {
            "type": "integer",
            "description": "The number of sessions the applicant opened during the attempt.",
            "readOnly": true,
            "example": 3
          },
          "user_agent": {
            "type": "string",
            "description": "The user agent of the browser the applicant used during the attempt.",
            "readOnly": true,
            "example": "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": {
            "$ref": "#/components/schemas/IdvInitialDevices"
          }
        },
        "description": "The details of the attempt."
      },
      "FavAttemptAsset": {
        "required": [
          "type",
          "_links"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "face_image",
              "face_video"
            ],
            "type": "string",
            "description": "The type of asset."
          },
          "_links": {
            "required": [
              "asset_url"
            ],
            "type": "object",
            "properties": {
              "asset_url": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/IdvHalLink"
                  }
                ]
              }
            }
          }
        }
      },
      "FavAttemptAssets": {
        "required": [
          "total_count",
          "skip",
          "limit",
          "data",
          "_links"
        ],
        "type": "object",
        "properties": {
          "total_count": {
            "type": "integer",
            "description": "The total number of assets."
          },
          "skip": {
            "type": "integer",
            "description": "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": {
            "type": "integer",
            "description": "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": {
            "minItems": 0,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FavAttemptAsset"
            },
            "description": "The list of assets for the current page."
          },
          "_links": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IdvSelfLink"
              },
              {
                "$ref": "#/components/schemas/IdvNextLink"
              },
              {
                "$ref": "#/components/schemas/IdvPreviousLink"
              }
            ],
            "description": "The details of links to the previous, current, and next resources.",
            "readOnly": true
          }
        }
      },
      "FavAttemptId": {
        "pattern": "^fatp_\\w+$",
        "type": "string",
        "description": "The unique identifier for the face authentication attempt.",
        "readOnly": true,
        "example": "fatp_tkoi5db4hryu5cei5vwoabraio"
      },
      "FavAttemptLinks": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/IdvSelfLink"
          },
          {
            "$ref": "#/components/schemas/FavActiveLink"
          }
        ]
      },
      "FavAttemptRequest": {
        "required": [
          "redirect_url"
        ],
        "type": "object",
        "properties": {
          "redirect_url": {
            "type": "string",
            "description": "The URL to redirect the applicant to after the attempt.",
            "format": "uri"
          },
          "phone_number": {
            "$ref": "#/components/schemas/IdvPhoneNumber"
          },
          "client_information": {
            "$ref": "#/components/schemas/FavClientInformation"
          }
        }
      },
      "FavAttemptResponse": {
        "required": [
          "redirect_url",
          "id",
          "_links",
          "status",
          "created_on",
          "modified_on",
          "response_codes"
        ],
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/DatedObject"
          }
        ],
        "properties": {
          "id": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/FavAttemptId"
              }
            ]
          },
          "redirect_url": {
            "type": "string",
            "description": "The URL to redirect the applicant to after the attempt."
          },
          "status": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/IdvAttemptStatuses"
              }
            ]
          },
          "response_codes": {
            "minItems": 0,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IdvResponseCode"
            },
            "description": "One or more [response codes](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes) that provide more information about the status.",
            "readOnly": true
          },
          "phone_number": {
            "$ref": "#/components/schemas/IdvPhoneNumber"
          },
          "client_information": {
            "$ref": "#/components/schemas/FavClientInformation"
          },
          "applicant_session_information": {
            "$ref": "#/components/schemas/FavApplicantSessionInformation"
          },
          "_links": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FavAttemptLinks"
              }
            ],
            "description": "The details of links related to the resource.",
            "readOnly": true
          }
        }
      },
      "FavAttemptResponseList": {
        "required": [
          "total_count",
          "skip",
          "limit",
          "_links",
          "data"
        ],
        "type": "object",
        "properties": {
          "total_count": {
            "type": "integer",
            "description": "The total number of attempts."
          },
          "skip": {
            "type": "integer",
            "description": "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.",
            "default": 0
          },
          "limit": {
            "type": "integer",
            "description": "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.",
            "default": 10
          },
          "data": {
            "minItems": 0,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FavAttemptResponse"
            },
            "description": "The details of the attempt."
          },
          "_links": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IdvSelfLink"
              },
              {
                "$ref": "#/components/schemas/IdvNextLink"
              },
              {
                "$ref": "#/components/schemas/IdvPreviousLink"
              }
            ],
            "description": "The details of links to the previous, current, and next resources.",
            "readOnly": true
          }
        }
      },
      "FavClientInformation": {
        "title": "ClientInformation",
        "type": "object",
        "properties": {
          "pre_selected_residence_country": {
            "pattern": "^[A-Z]{2}",
            "type": "string",
            "description": "The applicant's residence country. <br/>Standard – [ISO alpha-2 country code](/developer-resources/codes/country-codes) <br/>Example – `FR`",
            "example": "FR"
          },
          "pre_selected_language": {
            "type": "string",
            "description": "The language you want to use for the user interface. <br/>Format – IETF BCP 47 language tag",
            "format": "IETF BCP 47 language tag",
            "example": "en-US"
          }
        },
        "description": "The applicant's details."
      },
      "FavFaceAuthentication": {
        "required": [
          "id"
        ],
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/DatedObject"
          },
          {
            "$ref": "#/components/schemas/FavFaceAuthenticationBase"
          }
        ],
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FavFaceAuthenticationId"
              }
            ],
            "readOnly": true
          }
        }
      },
      "FavFaceAuthenticationBase": {
        "required": [
          "applicant_id",
          "response_codes",
          "risk_labels",
          "status",
          "user_journey_id",
          "_links"
        ],
        "type": "object",
        "properties": {
          "applicant_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ApplicantId"
              }
            ]
          },
          "user_journey_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IdvUserJourneyId"
              }
            ]
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FavVerificationStatuses"
              }
            ],
            "readOnly": true
          },
          "response_codes": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IdvResponseCodes"
              }
            ],
            "readOnly": true
          },
          "risk_labels": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IdvRiskLabels"
              }
            ],
            "readOnly": true
          },
          "face": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IdvFace"
              }
            ],
            "readOnly": true
          },
          "_links": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FavFaceAuthenticationLinks"
              }
            ],
            "readOnly": true
          }
        }
      },
      "FavFaceAuthenticationCreateBase": {
        "required": [
          "status",
          "_links",
          "applicant_id",
          "response_codes",
          "risk_labels"
        ],
        "type": "object",
        "properties": {
          "applicant_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ApplicantId"
              }
            ]
          },
          "user_journey_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IdvUserJourneyId"
              }
            ]
          },
          "status": {
            "$ref": "#/components/schemas/FavVerificationStatuses"
          },
          "face": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IdvFace"
              }
            ],
            "readOnly": true
          },
          "response_codes": {
            "$ref": "#/components/schemas/IdvResponseCodes"
          },
          "risk_labels": {
            "$ref": "#/components/schemas/IdvRiskLabels"
          },
          "_links": {
            "$ref": "#/components/schemas/FavFaceAuthenticationLinks"
          }
        }
      },
      "FavFaceAuthenticationError": {
        "required": [
          "error_type",
          "error_codes"
        ],
        "type": "object",
        "properties": {
          "error_type": {
            "enum": [
              "unprocessable_entity",
              "request_invalid"
            ],
            "type": "string",
            "description": "The type of error."
          },
          "error_codes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The error codes."
          }
        }
      },
      "FavFaceAuthenticationId": {
        "pattern": "^fav_\\w+$",
        "type": "string",
        "description": "The face authentication's unique identifier.",
        "readOnly": true,
        "example": "fav_mtta050yudd54y5iqb5ijh8jtvz"
      },
      "FavFaceAuthenticationLinks": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/IdvSelfLink"
          },
          {
            "$ref": "#/components/schemas/IdvApplicantLink"
          }
        ],
        "description": "The details of links related to the resource."
      },
      "FavFaceAuthenticationOutput": {
        "required": [
          "id"
        ],
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/DatedObject"
          },
          {
            "$ref": "#/components/schemas/FavFaceAuthenticationCreateBase"
          }
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/FavFaceAuthenticationId"
          }
        }
      },
      "FavVerificationStatuses": {
        "enum": [
          "approved",
          "capture_in_progress",
          "checks_in_progress",
          "created",
          "declined",
          "inconclusive",
          "pending",
          "refused",
          "retry_required"
        ],
        "type": "string",
        "description": "The [face authentication status](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Check_statuses).",
        "readOnly": true
      },
      "FinancialAction": {
        "required": [
          "payment_id",
          "action_id",
          "action_type",
          "entity_id",
          "currency_account_id",
          "processed_on",
          "requested_on"
        ],
        "type": "object",
        "properties": {
          "payment_id": {
            "pattern": "^(pay)_(\\w{26})$",
            "type": "string",
            "description": "The unique ID of the payment to which a financial action is associated.",
            "example": "pay_qqufsd3rfnqufngwklghlxrzpm"
          },
          "action_id": {
            "pattern": "^(act)_(\\w{26})$",
            "type": "string",
            "description": "The unique ID of a given financial action impacting your balances.",
            "example": "act_wsnyzbzmr2huxcekoj7qqhxwuy"
          },
          "action_type": {
            "type": "string",
            "description": "The type of action processed. For example, authorization, capture, refund, chargeback, pay to card.",
            "example": "Capture"
          },
          "entity_id": {
            "pattern": "^(ent)_(\\w{26})$",
            "type": "string",
            "description": "The unique ID of the entity for which the payment was processed.",
            "example": "ent_xozz5q2yvxsetbslrvjxugbsyy"
          },
          "sub_entity_id": {
            "pattern": "^(ent)_(\\w{26})$",
            "type": "string",
            "description": "The unique ID of the sub-entity for which the payment was processed.",
            "example": "ent_6akzb5simnkejihbnw6udjpecq"
          },
          "currency_account_id": {
            "pattern": "^(ca)_(\\w{26})$",
            "type": "string",
            "description": "The unique ID of the currency account to which the financial action amount was charged.",
            "example": "ca_oo5z564in66ujcsxlbhjsar3p4"
          },
          "payment_method": {
            "type": "string",
            "description": "The payment method associated with the financial action.",
            "example": "MASTERCARD"
          },
          "processing_channel_id": {
            "pattern": "^(pc)_(\\w{26})$",
            "type": "string",
            "description": "The unique ID for processing channel configurations.",
            "example": "pc_y7hikmc5flhuvav47blunjsdui"
          },
          "mid": {
            "type": "string",
            "description": "An optional merchant ID used to segment your payments traffic with card schemes.",
            "example": "mid-12345"
          },
          "response_code": {
            "type": "string",
            "description": "The payment request response code.",
            "example": "10000"
          },
          "response_description": {
            "type": "string",
            "description": "A description of the payment request response code.",
            "example": "Approved"
          },
          "region": {
            "enum": [
              "Domestic",
              "International",
              "Intra",
              "IntraEEA",
              "IntraEuropean_SEPA"
            ],
            "type": "string",
            "description": "The region where this payment occurred.",
            "example": "International"
          },
          "card_type": {
            "enum": [
              "CREDIT",
              "DEBIT",
              "PREPAID",
              "CHARGE"
            ],
            "type": "string",
            "description": "The card type used to make the payment",
            "example": "CREDIT"
          },
          "card_category": {
            "enum": [
              "CONSUMER",
              "COMMERCIAL"
            ],
            "type": "string",
            "description": "The card category used to make the payment. For example, consumer or commercial.",
            "example": "CONSUMER"
          },
          "issuer_country": {
            "type": "string",
            "description": "Two-digit ISO country code of the country where the payment is processed.",
            "example": "US"
          },
          "merchant_category_code": {
            "type": "string",
            "description": "Four-digit code for retail financial services expressed in ISO 18245 format, classifying the types of goods or services you provide.",
            "example": "5311"
          },
          "fx_trade_id": {
            "type": "string",
            "description": "The unique ID of the foreign exchange trade executed in fulfillment of a financial action.",
            "example": "trd_intsaxljgi6uzkxnv6lex3xayu"
          },
          "acquirer_reference_number": {
            "type": "string",
            "description": "The unique number assigned to a transaction when it moves through the payment flow between the merchant bank and the cardholder's bank.",
            "example": "01234567890123456789012"
          },
          "account_funding_transaction": {
            "type": "boolean",
            "description": "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.",
            "example": true
          },
          "scheme_fx_adjustment_eligible": {
            "type": "boolean",
            "description": "A flag to mark if the transaction honors the scheme exchange rate applicable at the time of authorization for both authorization and settlement movements.",
            "example": true
          },
          "processed_on": {
            "type": "string",
            "description": "An ISO 8601 timestamp of when the action was processed and impacted your balances, in UTC.",
            "format": "date-time",
            "example": "2022-02-18T13:00:12.3570000+00:00"
          },
          "requested_on": {
            "type": "string",
            "description": "An ISO 8601 timestamp of when a gateway request was made for an action, in UTC.",
            "format": "date-time",
            "example": "2022-02-18T13:00:11.7240000+00:00"
          },
          "breakdown": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FinancialActionBreakdown"
            },
            "description": "The breakdown of amounts within this financial action."
          },
          "bin": {
            "type": "string",
            "description": "Identifier for the financial institution that issued the card.",
            "example": "444444"
          },
          "issuing_bank": {
            "type": "string",
            "description": "The bank that issued the card used to make the payment.",
            "example": "Bank Name"
          },
          "payment_type": {
            "type": "string",
            "description": "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.",
            "example": "Regular"
          }
        },
        "additionalProperties": false,
        "description": "Financial actions response details."
      },
      "FinancialActionBreakdown": {
        "required": [
          "breakdown_type",
          "fx_rate_applied",
          "holding_currency",
          "holding_currency_amount",
          "processing_currency",
          "processing_currency_amount"
        ],
        "type": "object",
        "properties": {
          "breakdown_type": {
            "type": "string",
            "description": "A description of the type of fee or amount. For example, authorization fee.",
            "example": "Scheme Fixed Fee"
          },
          "fx_rate_applied": {
            "type": "number",
            "description": "The foreign exchange rate applied to a processed financial action.",
            "example": 1.24
          },
          "holding_currency": {
            "type": "string",
            "description": "Three-digit ISO currency code of the currency a financial action is held and paid out in.",
            "example": "USD"
          },
          "holding_currency_amount": {
            "type": "number",
            "description": "The associated amount of the financial action in the holding currency.",
            "example": 0.19526938
          },
          "processing_currency": {
            "type": "string",
            "description": "Three-digit ISO currency code of a financial action when processed.",
            "example": "GBP"
          },
          "processing_currency_amount": {
            "type": "number",
            "description": "The associated amount of the financial action in the processing currency.",
            "example": 0.1581682
          },
          "transaction_currency": {
            "type": "string",
            "description": "The currency of the transaction.",
            "example": "EUR"
          },
          "transaction_currency_amount": {
            "type": "number",
            "description": "The transaction amount, expressed in the transaction currency.",
            "example": 0.18031175
          },
          "processing_to_transaction_currency_fx_rate": {
            "type": "number",
            "description": "The foreign exchange rate between the processing currency and the transaction currency.",
            "example": 1.14
          },
          "transaction_to_holding_currency_fx_rate": {
            "type": "number",
            "description": "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.",
            "example": 1.08
          },
          "fee_detail": {
            "type": "string",
            "description": "The additional level of granularity for predicted scheme fees applied.",
            "example": "Visa Fixed Acquirer Network Fee"
          },
          "reserve_rate": {
            "type": "string",
            "description": "The percentage amount reserved from the payment.",
            "example": "5%"
          },
          "reserve_release_date": {
            "type": "string",
            "description": "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.",
            "format": "date-time",
            "example": "2023-06-21T09:15:34.7820000+00:00"
          },
          "reserve_deducted_date": {
            "type": "string",
            "description": "The date the reserve was deducted from the payment.",
            "format": "date-time",
            "example": "2022-02-18T13:00:12.3570000+00:00"
          },
          "tax_fx_rate": {
            "type": "number",
            "description": "The foreign exchange rate between the holding currency and the tax currency at the point the financial action was processed.",
            "example": 1.45
          },
          "scheme_fx_adjustment_processing_currency": {
            "type": "string",
            "description": "The processing currency of the transactions covered by the scheme FX adjustment.",
            "example": "GBP"
          },
          "scheme_fx_adjustment_rate_applied": {
            "type": "number",
            "description": "The rate applied to calculate the scheme FX adjustment over eligible transactions.",
            "example": 1.45
          },
          "entity_country_tax_currency": {
            "type": "string",
            "description": "The currency of the country your entity resides in for tax purposes, if applicable.",
            "example": "AUD"
          },
          "tax_currency_amount": {
            "type": "number",
            "description": "The amount of tax applied, expressed in the tax currency.",
            "example": 1.1
          }
        }
      },
      "FinancialActionErrorResponse": {
        "type": "object",
        "properties": {
          "request_id": {
            "type": "string",
            "description": "Request ID",
            "example": "0HMJGFVAQ35TL:00000117"
          },
          "error_type": {
            "type": "string",
            "description": "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/>\n"
          },
          "error_codes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "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/>\n"
          }
        },
        "additionalProperties": false,
        "description": "Error Response"
      },
      "FinancialActionListResponse": {
        "type": "object",
        "properties": {
          "count": {
            "type": "integer",
            "description": "The total number of financial actions on the current page.",
            "format": "int32",
            "example": 1
          },
          "limit": {
            "maximum": 100,
            "minimum": 1,
            "type": "integer",
            "description": "The maximum number of results included per page.",
            "format": "int32",
            "default": 100,
            "example": 5
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "allOf": [
                {
                  "$ref": "#/components/schemas/FinancialAction"
                }
              ],
              "description": "The list of financial actions from the current page."
            }
          },
          "_links": {
            "type": "object",
            "properties": {
              "self": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/FinancialActionsSelfLink"
                  }
                ],
                "description": "The `self` object.",
                "example": {
                  "href": "https://{prefix}.api.checkout.com/financial-actions?payment_id=pay_qqufsd3rfnqufngwklghlxrzpm&limit=5"
                }
              },
              "next": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/FinancialActionsNextLink"
                  }
                ],
                "description": "The `next` object.",
                "example": {
                  "href": "https://{prefix}.api.checkout.com/financial-actions?payment_id=pay_qqufsd3rfnqufngwklghlxrzpm&limit=5&pagination_token=string"
                }
              }
            },
            "description": "The `links` object."
          }
        },
        "additionalProperties": false,
        "description": "The list of financial actions in the response."
      },
      "FinancialActionsLink": {
        "type": "object",
        "properties": {
          "href": {
            "type": "string"
          }
        }
      },
      "FinancialActionsNextLink": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FinancialActionsLink"
          }
        ]
      },
      "FinancialActionsSelfLink": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FinancialActionsLink"
          }
        ]
      },
      "get-event-response": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique event identifier",
            "example": "evt_az5sblvku4ge3dwpztvyizgcau"
          },
          "source": {
            "type": "string",
            "description": "The source of the event",
            "example": "gateway"
          },
          "type": {
            "type": "string",
            "description": "The event type",
            "example": "payment_approved"
          },
          "timestamp": {
            "type": "string",
            "description": "The date/time the event occurred",
            "format": "date-time"
          },
          "version": {
            "type": "string",
            "description": "The version of the event",
            "example": "1.0.0"
          },
          "data": {
            "$ref": "#/components/schemas/event-data"
          },
          "action_invocations": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "workflow_id": {
                  "pattern": "^wf_[a-z0-9]{26}$",
                  "type": "string",
                  "description": "The workflow identifier",
                  "example": "wf_c7svxlvo2bbuva4f6s3xu4f7wm"
                },
                "workflow_action_id": {
                  "type": "string",
                  "description": "The workflow action identifier",
                  "example": "wfa_uzkxpffkvpiu5fe3h5ira7sqpa"
                },
                "status": {
                  "enum": [
                    "pending",
                    "successful",
                    "failed"
                  ],
                  "type": "string",
                  "description": "The status of the workflow action."
                },
                "_links": {
                  "minItems": 1,
                  "required": [
                    "self"
                  ],
                  "type": "object",
                  "properties": {
                    "self": {
                      "type": "object",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Link"
                        }
                      ],
                      "description": "Workflow action results for this event"
                    }
                  },
                  "description": "Links related to the workflow action",
                  "example": {
                    "self": {
                      "href": "https://{prefix}.api.checkout.com/events/evt_az5sblvku4ge3dwpztvyizgcau/actions/wfa_uzkxpffkvpiu5fe3h5ira7sqpa"
                    }
                  }
                }
              }
            },
            "description": "The list of the actions that trigger this event."
          },
          "_links": {
            "allOf": [
              {
                "$ref": "#/components/schemas/event-links"
              }
            ]
          }
        }
      },
      "get-event-types-response": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "description": "The unique identifier of the event source",
              "example": "gateway"
            },
            "display_name": {
              "type": "string",
              "description": "The display name of the event source",
              "example": "Gateway"
            },
            "description": {
              "type": "string",
              "description": "A description of the event source",
              "example": "Events from the Checkout.com payment gateway"
            },
            "events": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The event type identifier",
                    "example": "payment_approved"
                  },
                  "display_name": {
                    "type": "string",
                    "description": "The display name of the event",
                    "example": "Payment Authorized"
                  },
                  "description": {
                    "type": "string",
                    "description": "A description of the event",
                    "example": "Occurs when a payment is successfully authorized by the Checkout.com payment gateway"
                  }
                }
              },
              "description": "The events raised by the source"
            }
          }
        }
      },
      "event-data": {
        "type": "object",
        "description": "The event data",
        "example": {
          "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": 5.019795474187129E+20,
            "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:59.0000000+00:00",
          "reference": "ORD-5023-4E89",
          "metadata": {
            "coupon_code": "NY2018",
            "partner_id": 123989
          }
        }
      },
      "event-links": {
        "minItems": 1,
        "required": [
          "self"
        ],
        "type": "object",
        "properties": {
          "self": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/Link"
              }
            ],
            "description": "The URI of the event"
          }
        },
        "description": "Links related to the event",
        "example": {
          "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"
          }
        }
      },
      "source-events-hashmap": {
        "type": "object",
        "additionalProperties": {
          "type": "array",
          "items": {
            "type": "string",
            "description": "The source event types",
            "example": "payment_approved"
          },
          "description": "The event source"
        },
        "example": {
          "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"
          ]
        }
      },
      "subject-events-response": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The unique event identifier",
                  "example": "evt_az5sblvku4ge3dwpztvyizgcau"
                },
                "type": {
                  "type": "string",
                  "description": "The event type",
                  "example": "payment_approved"
                },
                "timestamp": {
                  "type": "string",
                  "description": "The date/time the event occurred",
                  "format": "date-time"
                },
                "_links": {
                  "$ref": "#/components/schemas/event-links"
                }
              }
            },
            "example": [
              {
                "id": "evt_zrrgsvsr47ou7fng4shy4mtf64",
                "type": "payment_approved",
                "timestamp": "2019-05-23T08:25:53.0000000+00:00",
                "_links": {
                  "self": {
                    "href": "https://{prefix}.api.checkout.com/events/evt_zrrgsvsr47ou7fng4shy4mtf64"
                  }
                }
              },
              {
                "id": "evt_wgwdfyem4ode5furs5swyy6b2u",
                "type": "payment_captured",
                "timestamp": "2019-05-24T07:00:53.0000000+00:00",
                "_links": {
                  "self": {
                    "href": "https://{prefix}.api.checkout.com/events/evt_zrrgsvsr47ou7fng4shy4mtf64"
                  }
                }
              }
            ]
          }
        }
      },
      "ids-validation-error": {
        "type": "object",
        "properties": {
          "request_id": {
            "type": "string",
            "example": "0HL80RJLS76I7"
          },
          "error_type": {
            "type": "string",
            "example": "request_invalid"
          },
          "error_codes": {
            "type": "array",
            "items": {
              "type": "string",
              "example": "event_ids_invalid"
            },
            "example": [
              "event_ids_invalid",
              "workflow_ids_invalid"
            ]
          }
        }
      },
      "reflow-events-by-event-and-workflow-ids": {
        "required": [
          "events"
        ],
        "type": "object",
        "properties": {
          "events": {
            "type": "array",
            "items": {
              "pattern": "^evt_[a-z0-9]{26}$",
              "type": "string",
              "description": "The identifiers of the events you want reflowed.",
              "example": "evt_hnmnr6hdbslqlc38jd8mn35bk9"
            },
            "description": "A list of IDs for the events you want reflowed.",
            "example": [
              "evt_lzmo6p0i3612judj754w1ngtil",
              "evt_05z6xuagtti48ajyfbuekg6a0a"
            ]
          },
          "workflows": {
            "type": "array",
            "items": {
              "pattern": "^wf_[a-z0-9]{26}$",
              "type": "string",
              "description": "The identifiers of the workflows you want retriggered.",
              "example": "wf_iiutwnpb1p8044f2aq2znez9c6"
            },
            "description": "A list of IDs for the workflows whose actions you want to retrigger.",
            "example": [
              "wf_sq8jnqi9i749hhb470bu308uk2",
              "wf_bz91q7i4ks4sr0kasmas2xhp56"
            ]
          }
        }
      },
      "reflow-events-by-subject-and-workflow-ids": {
        "required": [
          "subjects"
        ],
        "type": "object",
        "properties": {
          "subjects": {
            "type": "array",
            "items": {
              "pattern": "^[a-z]{3}_[a-z0-9]{26}$",
              "type": "string",
              "description": "The identifiers of the subjects (for example, payment IDs and dispute IDs) whose events you want reflowed."
            },
            "description": "A list of subject IDs (for example, payment IDs and disputes IDs). The events associated with these subjects will be reflowed.",
            "example": [
              "pay_lzmo6p0i3612judj754w1ngtil",
              "pay_ol8zt9jviq4mkark1bo5b4i9sk"
            ]
          },
          "workflows": {
            "type": "array",
            "items": {
              "pattern": "^wf_[a-z0-9]{26}$",
              "type": "string",
              "description": "The identifiers of the workflows you want retriggered."
            },
            "description": "A list of IDs for the workflows whose actions you want to retrigger.",
            "example": [
              "wf_sq8jnqi9i749hhb470bu308uk2",
              "wf_bz91q7i4ks4sr0kasmas2xhp56"
            ]
          }
        }
      },
      "get-invocations-response": {
        "type": "object",
        "properties": {
          "workflow_id": {
            "pattern": "^wf_[a-z0-9]{26}$",
            "type": "string",
            "description": "The workflow identifier",
            "example": "wf_c7svxlvo2bbuva4f6s3xu4f7wm"
          },
          "event_id": {
            "type": "string",
            "description": "The unique event identifier.",
            "example": "evt_az5sblvku4ge3dwpztvyizgcau"
          },
          "workflow_action_id": {
            "type": "string",
            "description": "The worklow action identifier.",
            "example": "wfa_uzkxpffkvpiu5fe3h5ira7sqpa"
          },
          "action_type": {
            "type": "string",
            "description": "The workflow action type.",
            "example": "webhook"
          },
          "status": {
            "enum": [
              "pending",
              "successful",
              "failed"
            ],
            "type": "string",
            "description": "The status of the workflow action. It aggregates the past invocations outcome.",
            "example": "successful"
          },
          "action_invocations": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "invocation_id": {
                  "type": "string",
                  "description": "The invocation identifier.",
                  "example": "ivc_az5sb1vku4ge3dwpztvy"
                },
                "timestamp": {
                  "type": "string",
                  "description": "The date/time the action was invoked for the event.",
                  "format": "date-time",
                  "example": "2019-05-23T08:26:59.0000000+00:00"
                },
                "retry": {
                  "type": "boolean",
                  "description": "Whether the invocation has been retried.",
                  "example": true
                },
                "succeeded": {
                  "type": "boolean",
                  "description": "Whether the invocation completed successfully.",
                  "example": false
                },
                "final": {
                  "type": "boolean",
                  "description": "Indicates whether this is the final attempt.",
                  "example": false
                },
                "result_details": {
                  "type": "object",
                  "description": "The result details returned from the action."
                }
              }
            },
            "description": "The list of the actions that trigger this event.",
            "example": [
              {
                "invocation_id": "ivc_az5sblvku4ge3dwpztvyizgcau",
                "timestamp": "2019-05-23T08:26:59.0000000+00:00",
                "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:01.0000000+00:00"
                }
              },
              {
                "invocation_id": "ivc_az5sblvku4ge3dwpztvyizgcau",
                "timestamp": "2019-05-23T08:27:01.0000000+00:00",
                "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:01.0000000+00:00"
                }
              }
            ]
          },
          "_links": {
            "minItems": 1,
            "required": [
              "self"
            ],
            "type": "object",
            "properties": {
              "self": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Link"
                  }
                ],
                "description": "Workflow action results for this event"
              }
            },
            "description": "Links related to the workflow action",
            "example": {
              "self": {
                "href": "https://{prefix}.api.checkout.com/events/evt_az5sblvku4ge3dwpztvyizgcau/actions/wfa_uzkxpffkvpiu5fe3h5ira7sqpa"
              }
            }
          }
        }
      },
      "get-webhook-action": {
        "title": "webhook",
        "required": [
          "id",
          "type",
          "url"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The workflow action identifier",
            "example": "wfa_tisekcawefze3l27uaai6hz74y"
          },
          "type": {
            "type": "string",
            "description": "The type of workflow action",
            "example": "webhook"
          },
          "url": {
            "type": "string",
            "description": "Your webhook endpoint URL",
            "format": "uri",
            "example": "https://example.com/webhooks/checkout"
          },
          "headers": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "description": "The HTTP header value"
            },
            "description": "Optional [HTTP headers](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers) added to the request",
            "example": {
              "Authorization": "<AUTHORIZATION_UUID>"
            }
          },
          "signature": {
            "required": [
              "key"
            ],
            "type": "object",
            "properties": {
              "method": {
                "type": "string",
                "description": "The signing method, defaults to HMAC SHA256",
                "example": "HMACSHA256"
              },
              "key": {
                "type": "string",
                "description": "The key used the sign the webhook",
                "example": "public-signing-key"
              }
            },
            "description": "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."
          },
          "_links": {
            "$ref": "#/components/schemas/workflow-action-links"
          }
        },
        "description": "Action that sends a webhook"
      },
      "get-workflow-action": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/get-webhook-action"
          }
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The workflow action identifier",
            "example": "wfa_tisekcawefze3l27uaai6hz74y"
          },
          "type": {
            "type": "string",
            "description": "The type of workflow action",
            "example": "webhook"
          }
        },
        "description": "The workflow action",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "webhook": "#/components/schemas/get-webhook-action"
          }
        }
      },
      "patch-response-webhook-action": {
        "title": "webhook",
        "required": [
          "id",
          "type",
          "url"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The workflow action identifier",
            "example": "wfa_itja4x7zgzye3andzqq62u4hvq"
          },
          "type": {
            "type": "string",
            "description": "The type of workflow action",
            "example": "webhook"
          },
          "url": {
            "type": "string",
            "description": "Your webhook endpoint URL",
            "format": "uri",
            "example": "https://example.com/webhooks/checkout"
          },
          "headers": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "description": "The HTTP header value"
            },
            "description": "The optional [HTTP headers](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers) added to the request",
            "example": {
              "Authorization": "<AUTHORIZATION_UUID>"
            }
          },
          "signature": {
            "required": [
              "key"
            ],
            "type": "object",
            "properties": {
              "method": {
                "type": "string",
                "description": "The signing method, defaults to `HMACSHA256`",
                "example": "HMACSHA256"
              },
              "key": {
                "type": "string",
                "description": "The key used the sign the webhook",
                "example": "public-signing-key"
              }
            },
            "description": "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."
          }
        },
        "description": "The action that sends a webhook"
      },
      "patch-response-workflow-action": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/patch-response-webhook-action"
          }
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The workflow action identifier",
            "example": "wfa_itja4x7zgzye3andzqq62u4hvq"
          },
          "type": {
            "type": "string",
            "description": "The type of workflow action",
            "example": "webhook"
          }
        },
        "description": "The workflow patch action",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "webhook": "#/components/schemas/patch-response-webhook-action"
          }
        }
      },
      "patch-webhook-action": {
        "title": "webhook",
        "required": [
          "type",
          "url"
        ],
        "type": "object",
        "properties": {
          "workflow_action_id": {
            "type": "string",
            "description": "The workflow action identifier needed to update an existing action ID. Do not include this property if you want to add a new action.",
            "example": "wfa_itja4x7zgzye3andzqq62u4hvq"
          },
          "type": {
            "type": "string",
            "description": "The type of workflow action",
            "example": "webhook"
          },
          "url": {
            "type": "string",
            "description": "Your webhook endpoint URL",
            "format": "uri",
            "example": "https://example.com/webhooks/checkout"
          },
          "headers": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "description": "The HTTP header value"
            },
            "description": "The optional [HTTP headers](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers) added to the request",
            "example": {
              "Authorization": "<AUTHORIZATION_UUID>"
            }
          },
          "signature": {
            "required": [
              "key"
            ],
            "type": "object",
            "properties": {
              "method": {
                "type": "string",
                "description": "The signing method, defaults to `HMACSHA256`",
                "example": "HMACSHA256"
              },
              "key": {
                "type": "string",
                "description": "The key used the sign the webhook",
                "example": "public-signing-key"
              }
            },
            "description": "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."
          }
        },
        "description": "The action that sends a webhook"
      },
      "patch-workflow-action": {
        "required": [
          "type"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/patch-webhook-action"
          }
        ],
        "properties": {
          "workflow_action_id": {
            "type": "string",
            "description": "The workflow action identifier needed to update an existing action ID. Do not include this property if you want to add a new action.",
            "example": "wfa_itja4x7zgzye3andzqq62u4hvq"
          },
          "type": {
            "type": "string",
            "description": "The type of workflow action",
            "example": "webhook"
          }
        },
        "description": "The workflow action",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "webhook": "#/components/schemas/patch-webhook-action"
          }
        }
      },
      "webhook-action": {
        "title": "webhook",
        "required": [
          "type",
          "url"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of workflow action",
            "example": "webhook"
          },
          "url": {
            "type": "string",
            "description": "Your webhook endpoint URL",
            "format": "uri",
            "example": "https://example.com/webhooks/checkout"
          },
          "headers": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "description": "The HTTP header value"
            },
            "description": "Optional [HTTP headers](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers) added to the request",
            "example": {
              "Authorization": "<AUTHORIZATION_UUID>"
            }
          },
          "signature": {
            "required": [
              "key"
            ],
            "type": "object",
            "properties": {
              "method": {
                "type": "string",
                "description": "The signing method used to sign the webhook. If no value is specified, the value defaults to `HMAC SHA256`.",
                "example": "HMACSHA256"
              },
              "key": {
                "type": "string",
                "description": "The key used to sign the webhook",
                "example": "public-signing-key"
              }
            },
            "description": "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."
          }
        },
        "description": "Action that sends a webhook"
      },
      "workflow-action": {
        "required": [
          "type"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/webhook-action"
          }
        ],
        "description": "The workflow action",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "webhook": "#/components/schemas/webhook-action"
          }
        }
      },
      "add-update-workflow-action-request": {
        "required": [
          "type"
        ],
        "type": "object",
        "description": "The workflow action",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "webhook": "#/components/schemas/webhook-action"
          }
        },
        "example": {
          "type": "webhook",
          "url": "https://example.com/webhooks",
          "headers": {
            "Authorization": "<AUTHORIZATION_UUID>"
          }
        }
      },
      "add-update-workflow-condition-request": {
        "required": [
          "type"
        ],
        "type": "object",
        "description": "The workflow condition",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "event": "#/components/schemas/event-condition",
            "entity": "#/components/schemas/entity-condition",
            "processing_channel": "#/components/schemas/processing-channel-condition"
          }
        },
        "example": {
          "type": "event",
          "events": {
            "gateway": [
              "payment_approved",
              "payment_pending",
              "payment_declined"
            ]
          }
        }
      },
      "add-workflow-action-response": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The workflow action identifier",
            "example": "wfa_wlu3wxc26jounofs5iez75qaqa"
          },
          "_links": {
            "$ref": "#/components/schemas/workflow-action-links"
          }
        }
      },
      "add-workflow-condition-response": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The workflow condition identifier",
            "example": "wfc_wlu3wxc26jounofs5iez75qaqa"
          },
          "_links": {
            "$ref": "#/components/schemas/workflow-condition-links"
          }
        }
      },
      "add-workflow-request": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "A name you can use to describe your workflow",
            "example": "Webhooks workflow"
          },
          "active": {
            "type": "boolean",
            "description": "Indicates whether the workflow is currently active",
            "default": true,
            "example": true
          },
          "conditions": {
            "minItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/workflow-condition"
            },
            "description": "Only one condition of the same type is permitted"
          },
          "actions": {
            "minItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/workflow-action"
            },
            "description": "One or more workflow actions"
          }
        },
        "example": {
          "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"
              }
            }
          ]
        }
      },
      "add-workflow-response": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The workflow identifier",
            "example": "wf_wlu3wxc26jounofs5iez75qaqa"
          },
          "_links": {
            "$ref": "#/components/schemas/workflow-links"
          }
        }
      },
      "entity-condition": {
        "title": "entity",
        "required": [
          "type",
          "entities"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of the workflow condition",
            "example": "entity"
          },
          "entities": {
            "$ref": "#/components/schemas/source-entity-hashmap"
          }
        },
        "description": "The condition that filters, based on the NAS entity. It does not apply to MBC accounts."
      },
      "event-condition": {
        "title": "event",
        "required": [
          "type",
          "events"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of the workflow condition",
            "example": "event"
          },
          "events": {
            "$ref": "#/components/schemas/source-events-hashmap"
          }
        },
        "description": "Condition that enables a source"
      },
      "get-entity-condition": {
        "title": "entity",
        "required": [
          "id",
          "type",
          "entities"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The workflow condition identifier",
            "example": "wfc_tisekcawefze3l27uaai6hz74y"
          },
          "type": {
            "type": "string",
            "description": "The type of the workflow condition",
            "example": "entity"
          },
          "entities": {
            "$ref": "#/components/schemas/source-entity-hashmap"
          },
          "_links": {
            "$ref": "#/components/schemas/workflow-condition-links"
          }
        },
        "description": "Condition that filters based on the entity"
      },
      "get-event-condition": {
        "title": "event",
        "required": [
          "id",
          "type",
          "events"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The workflow condition identifier",
            "example": "wfc_tisekcawefze3l27uaai6hz74y"
          },
          "type": {
            "type": "string",
            "description": "The type of the workflow condition",
            "example": "event"
          },
          "events": {
            "$ref": "#/components/schemas/source-events-hashmap"
          },
          "_links": {
            "$ref": "#/components/schemas/workflow-condition-links"
          }
        },
        "description": "Condition that enables a source"
      },
      "get-processing-channel-condition": {
        "title": "processing_channel",
        "required": [
          "id",
          "type",
          "processing_channels"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The workflow condition identifier",
            "example": "wfc_tisekcawefze3l27uaai6hz74y"
          },
          "type": {
            "type": "string",
            "description": "The type of the workflow condition",
            "example": "processing_channel"
          },
          "processing_channels": {
            "$ref": "#/components/schemas/source-processing-channel-hashmap"
          },
          "_links": {
            "$ref": "#/components/schemas/workflow-condition-links"
          }
        },
        "description": "Condition that filters based on the processing channel"
      },
      "get-workflow-condition": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/get-event-condition"
          },
          {
            "$ref": "#/components/schemas/get-entity-condition"
          },
          {
            "$ref": "#/components/schemas/get-processing-channel-condition"
          }
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The workflow condition identifier",
            "example": "wfc_tisekcawefze3l27uaai6hz74y"
          },
          "type": {
            "type": "string",
            "description": "The type of the workflow condition",
            "example": "event"
          }
        },
        "description": "The get workflow condition",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "event": "#/components/schemas/get-event-condition",
            "entity": "#/components/schemas/get-entity-condition",
            "processing_channel": "#/components/schemas/get-processing-channel-condition"
          }
        }
      },
      "patch-entity-condition": {
        "title": "entity",
        "required": [
          "id",
          "type",
          "entities"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The workflow condition identifier",
            "example": "wfc_tisekcawefze3l27uaai6hz74e"
          },
          "type": {
            "type": "string",
            "description": "The type of the workflow condition",
            "example": "entity"
          },
          "entities": {
            "$ref": "#/components/schemas/source-entity-hashmap"
          }
        },
        "description": "The condition that filters, based on the NAS entity. It does not apply to MBC accounts."
      },
      "patch-event-condition": {
        "title": "event",
        "required": [
          "id",
          "type",
          "events"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The workflow condition identifier",
            "example": "wfc_tisekcawefze3l27uaai6hz74e"
          },
          "type": {
            "type": "string",
            "description": "The type of the workflow condition",
            "example": "event"
          },
          "events": {
            "$ref": "#/components/schemas/source-events-hashmap"
          }
        },
        "description": "The condition that enables a source"
      },
      "patch-processing-channel-condition": {
        "title": "processing_channel",
        "required": [
          "id",
          "type",
          "processing_channels"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The workflow condition identifier",
            "example": "wfc_tisekcawefze3l27uaai6hz74e"
          },
          "type": {
            "type": "string",
            "description": "The type of the workflow condition",
            "example": "processing_channel"
          },
          "processing_channels": {
            "$ref": "#/components/schemas/source-processing-channel-hashmap"
          }
        },
        "description": "The condition that filters, based on the NAS processing channel. It does not apply to MBC accounts."
      },
      "patch-workflow-condition": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/patch-event-condition"
          },
          {
            "$ref": "#/components/schemas/patch-entity-condition"
          },
          {
            "$ref": "#/components/schemas/patch-processing-channel-condition"
          }
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The workflow condition identifier",
            "example": "wfc_tisekcawefze3l27uaai6hz74e"
          },
          "type": {
            "type": "string",
            "description": "The type of the workflow condition",
            "example": "event"
          }
        },
        "description": "The workflow condition",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "event": "#/components/schemas/patch-event-condition",
            "entity": "#/components/schemas/patch-entity-condition",
            "processing_channel": "#/components/schemas/patch-processing-channel-condition"
          }
        }
      },
      "processing-channel-condition": {
        "title": "processing_channel",
        "required": [
          "type",
          "processing_channels"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of the workflow condition",
            "example": "processing_channel"
          },
          "processing_channels": {
            "$ref": "#/components/schemas/source-processing-channel-hashmap"
          }
        },
        "description": "Condition that filters based on the NAS processing channel. It's not applicable for MBC accounts"
      },
      "source-entity-hashmap": {
        "pattern": "^ent_[a-z0-9]{26}$",
        "minItems": 1,
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "ent_axclravnqf5u5ejkweijnp5zc4",
        "example": [
          "ent_axclravnqf5u5ejkweijnp5zc4",
          "ent_fidjosfjdisofdjsifdosfuzc4"
        ]
      },
      "source-processing-channel-hashmap": {
        "pattern": "^pc_[a-z2-7]{26}$",
        "minItems": 1,
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "pc_axclravnqf5u5ejkweijnp5zc4",
        "example": [
          "pc_axclravnqf5u5ejkweijnp5zc4",
          "pc_aascravnas5u5ejkseijnp9zc2"
        ]
      },
      "workflow-condition": {
        "required": [
          "type"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/event-condition"
          },
          {
            "$ref": "#/components/schemas/entity-condition"
          },
          {
            "$ref": "#/components/schemas/processing-channel-condition"
          }
        ],
        "description": "The workflow condition",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "event": "#/components/schemas/event-condition",
            "entity": "#/components/schemas/entity-condition",
            "processing_channel": "#/components/schemas/processing-channel-condition"
          }
        }
      },
      "get-all-workflows-response": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "pattern": "^wf_[a-z0-9]{26}$",
                  "type": "string",
                  "description": "The unique identifier of the workflow",
                  "example": "wf_wlu3wxc26jounofs5iez75qaqa"
                },
                "name": {
                  "type": "string",
                  "description": "The name of your workflow",
                  "example": "Webhooks workflow"
                },
                "active": {
                  "type": "boolean",
                  "description": "Indicates whether the workflow is currently active",
                  "example": true
                },
                "_links": {
                  "$ref": "#/components/schemas/workflow-links"
                }
              }
            }
          }
        }
      },
      "get-workflow-response": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The workflow identifier",
            "example": "wf_34pacj7ae6wexju4avpecxvp6e"
          },
          "name": {
            "type": "string",
            "description": "A name you can use to describe your workflow",
            "example": "Webhooks workflow"
          },
          "active": {
            "type": "boolean",
            "description": "Indicates whether the workflow is currently active",
            "example": true
          },
          "conditions": {
            "minItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/get-workflow-condition"
            },
            "description": "One or more workflow conditions"
          },
          "actions": {
            "minItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/get-workflow-action"
            },
            "description": "One or more workflow actions"
          },
          "_links": {
            "$ref": "#/components/schemas/workflow-links"
          }
        },
        "example": {
          "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"
            }
          }
        }
      },
      "patch-workflow-request": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "A name to describe the workflow",
            "example": "Webhooks workflow"
          },
          "active": {
            "type": "boolean",
            "description": "Indicates whether the workflow is currently active",
            "example": true
          },
          "conditions": {
            "minItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/workflow-condition"
            },
            "description": "One or more workflow conditions"
          },
          "actions": {
            "minItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/patch-workflow-action"
            },
            "description": "One or more workflow actions"
          }
        },
        "example": {
          "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"
              }
            }
          ]
        }
      },
      "patch-workflow-response": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The workflow identifier",
            "example": "wf_c7svxlvo2bbuva4f6s3xu4f7wm"
          },
          "name": {
            "type": "string",
            "description": "A name you can use to describe your workflow",
            "example": "Webhooks workflow"
          },
          "active": {
            "type": "boolean",
            "description": "Indicates whether the workflow is currently active",
            "example": true
          },
          "conditions": {
            "minItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/patch-workflow-condition"
            },
            "description": "One or more workflow conditions"
          },
          "actions": {
            "minItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/patch-response-workflow-action"
            },
            "description": "One or more workflow actions"
          },
          "_links": {
            "$ref": "#/components/schemas/workflow-links"
          }
        },
        "example": {
          "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"
            }
          }
        }
      },
      "workflow-action-links": {
        "minItems": 1,
        "type": "object",
        "properties": {
          "self": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/Link"
              }
            ],
            "description": "The URI of the workflow action"
          }
        },
        "description": "Links related to the workflow action",
        "example": {
          "self": {
            "href": "https://{prefix}.api.checkout.com/workflows/wf_wlu3wxc26jounofs5iez75qaqa/actions/wfa_wlu3wxc26jounofs5iez75qaqa"
          }
        }
      },
      "workflow-condition-links": {
        "minItems": 1,
        "type": "object",
        "properties": {
          "self": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/Link"
              }
            ],
            "description": "The URI of the workflow condition"
          }
        },
        "description": "Links related to the workflow condition",
        "example": {
          "self": {
            "href": "https://{prefix}.api.checkout.com/workflows/wf_wlu3wxc26jounofs5iez75qaqa/conditions/wfc_wlu3wxc26jounofs5iez75qaqa"
          }
        }
      },
      "workflow-links": {
        "minItems": 1,
        "required": [
          "self"
        ],
        "type": "object",
        "properties": {
          "self": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/Link"
              }
            ],
            "description": "The URI of the workflow"
          }
        },
        "description": "Links related to the workflow",
        "example": {
          "self": {
            "href": "https://{prefix}.api.checkout.com/workflows/wf_wlu3wxc26jounofs5iez75qaqa"
          }
        }
      },
      "test-workflow-request": {
        "type": "object",
        "properties": {
          "event_types": {
            "title": "Event Types by Source",
            "type": "object",
            "additionalProperties": {
              "title": "Source",
              "type": "array",
              "items": {
                "title": "Event Type",
                "type": "string"
              },
              "description": "List of event types for this source"
            },
            "description": "Map of source names to their corresponding event types (e.g., gateway, issuing, authentication, etc.)"
          }
        },
        "example": {
          "event_types": {
            "gateway": [
              "payment_approved",
              "payment_captured"
            ],
            "issuing": [
              "3ds_card_enrolled",
              "3ds_card_information_changed"
            ]
          }
        }
      },
      "ForexRate": {
        "type": "object",
        "properties": {
          "exchange_rate": {
            "type": "number",
            "description": "The FX rate with Checkout.com margin applied. Up to eight decimal places provided in response.",
            "format": "double",
            "example": 1.14208777
          },
          "currency_pair": {
            "type": "string",
            "description": "Currency pair",
            "example": "GBPUSD"
          },
          "valid_from": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Timestamp"
              }
            ],
            "description": "ISO-8601 timestamp of when the FX rate became available in UTC. This applies to the Scheme Acquiring product only."
          }
        }
      },
      "ForexRatesResponse": {
        "type": "object",
        "properties": {
          "product": {
            "$ref": "#/components/schemas/ForexProduct"
          },
          "source": {
            "$ref": "#/components/schemas/ForexSource"
          },
          "rates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ForexRate"
            },
            "description": "List of FX rates with Checkout.com margin applied"
          },
          "invalid_currency_pairs": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Currency pair"
            },
            "description": "List of currency pairs that Checkout.com was unable to provide rates for",
            "example": [
              "XXX",
              "AAA",
              "ZZZ"
            ]
          }
        },
        "example": {
          "product": "card_payouts",
          "source": "visa",
          "rates": [
            {
              "exchange_rate": 1.14208777,
              "currency_pair": "GBPEUR"
            },
            {
              "exchange_rate": 0.83708142,
              "currency_pair": "USDGBP"
            }
          ],
          "invalid_currency_pairs": [
            "XXXAAA"
          ]
        }
      },
      "ForexProcessingChannelId": {
        "pattern": "^(pc)_(\\w{26})$",
        "type": "string",
        "description": "The <a href=\"https://www.checkout.com/docs/business-operations/use-the-dashboard/manage-processing-channels\" target=\"_blank\">processing channel's</a> unique identifier.",
        "example": "pc_vxt6yftthv4e5flqak6w2i7rim"
      },
      "ForexProduct": {
        "enum": [
          "card_payouts",
          "daily_acquiring",
          "scheme_acquiring"
        ],
        "type": "string",
        "description": "The Checkout.com Forex product you want to get rates for.",
        "example": "card_payouts"
      },
      "ForexSource": {
        "enum": [
          "mastercard",
          "visa"
        ],
        "type": "string",
        "description": "The scheme that provided the FX rates.<br/>If `product` is `daily_acquiring`, this field is not required.",
        "example": "visa"
      },
      "ForwardRequest": {
        "required": [
          "source",
          "destination_request"
        ],
        "type": "object",
        "properties": {
          "source": {
            "$ref": "#/components/schemas/ForwardRequestSource"
          },
          "reference": {
            "maxLength": 80,
            "type": "string",
            "description": "The unique reference for the forward request.",
            "example": "ORD-5023-4E89"
          },
          "processing_channel_id": {
            "pattern": "^(pc)_(\\w{26})$",
            "type": "string",
            "description": "The processing channel ID to associate the billing for the forward request with.",
            "example": "pc_azsiyswl7bwe2ynjzujy7lcjca"
          },
          "network_token": {
            "$ref": "#/components/schemas/ForwardRequestNetworkToken"
          },
          "destination_request": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ForwardDestinationRequest"
              }
            ],
            "description": "The parameters of the forward request."
          }
        },
        "description": "The request template to forward to the third-party endpoint.\n\nTemplate values will be replaced before the request is forwarded.\n"
      },
      "ForwardResponse": {
        "required": [
          "request_id"
        ],
        "type": "object",
        "properties": {
          "request_id": {
            "type": "string",
            "description": "The unique identifier for the forward request.",
            "example": "fwd_01HK153X00VZ1K15Z3HYC0QGPN"
          },
          "destination_response": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ForwardBodyResponse"
              }
            ],
            "description": "The HTTP response received from the destination, if the forward request completed successfully. Sensitive PCI data will be removed from the response."
          },
          "source": {
            "required": [
              "bin",
              "last4",
              "fingerprint"
            ],
            "type": "object",
            "properties": {
              "id": {
                "pattern": "^src_[a-z0-9]{26}$",
                "type": "string",
                "description": "The identifier of the payment instrument with the forwarded card credentials.\n\nWhen `source.type` is `\"token\"`, only returned if the `source.store_for_future_use` is true.\n",
                "example": "src_evls5rkafabudm3x6gejc4bbo4"
              },
              "bin": {
                "maxLength": 8,
                "type": "string",
                "description": "The card issuer's Bank Identification Number (BIN)",
                "example": "45434748"
              },
              "last4": {
                "maxLength": 4,
                "minLength": 4,
                "type": "string",
                "description": "The last four digits of the card number",
                "example": "9996"
              },
              "fingerprint": {
                "maxLength": 64,
                "minLength": 64,
                "type": "string",
                "description": "Uniquely identifies this particular card. You can use this to compare cards across customers.",
                "example": "B086A9386241A0BDCBEFAFC1E4FD5C3DD04684AAD21A126CB426C05555AC86A9"
              }
            },
            "description": "The metadata of the forwarded card credentials."
          }
        },
        "description": "The response to the forward request."
      },
      "GetForwardRequestResponse": {
        "required": [
          "request_id",
          "entity_id",
          "destination_request",
          "created_on"
        ],
        "type": "object",
        "properties": {
          "request_id": {
            "type": "string",
            "description": "The unique identifier for the forward request.",
            "example": "fwd_01HK153X00VZ1K15Z3HYC0QGPN"
          },
          "reference": {
            "type": "string",
            "description": "The unique reference for the forward request.",
            "example": "ORD-5023-4E89"
          },
          "entity_id": {
            "type": "string",
            "description": "The client entity linked to the forward request.",
            "example": "ent_lp6h57qskk6ubewfk3pq4f2c2y"
          },
          "destination_request": {
            "allOf": [
              {
                "$ref": "#/components/schemas/GetForwardRequestDestinationRequest"
              }
            ],
            "description": "The parameters of the HTTP request forwarded to the destination."
          },
          "destination_response": {
            "allOf": [
              {
                "$ref": "#/components/schemas/GetForwardRequestDestinationResponse"
              }
            ],
            "description": "The HTTP response received from the destination. \n\nSensitive PCI data is not included in the response.\n"
          },
          "created_on": {
            "type": "string",
            "description": "The date and time the forward request was created, in UTC.",
            "format": "date-time",
            "example": "2024-01-02T15:04:05.0000000+00:00"
          }
        },
        "description": "The response to the forward request."
      },
      "ForwardBodyHeadersRequest": {
        "required": [
          "raw"
        ],
        "type": "object",
        "properties": {
          "encrypted": {
            "maxLength": 8192,
            "type": "string",
            "description": "The encrypted headers to include in the forward request, as a JSON object with string values encrypted with JSON Web Encryption (JWE).",
            "example": "<JWE encrypted JSON object with string values>"
          },
          "raw": {
            "maxProperties": 16,
            "type": "object",
            "additionalProperties": {
              "maxLength": 5120,
              "type": "string",
              "description": "The header value.",
              "x-additionalPropertiesName": "<Header-Name>"
            },
            "description": "The raw headers to include in the forward request.",
            "example": {
              "Idempotency-Key": "xe4fad12367dfgrds",
              "Content-Type": "application/json"
            }
          }
        },
        "description": "The request headers to include in the forward request."
      },
      "ForwardBodyResponse": {
        "required": [
          "status",
          "headers",
          "body"
        ],
        "type": "object",
        "properties": {
          "status": {
            "type": "number",
            "description": "The HTTP status code of the destination response.",
            "example": 201
          },
          "headers": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "The header values.",
              "x-additionalPropertiesName": "<Header-Name>"
            },
            "description": "The destination response's HTTP headers.",
            "example": {
              "Cko-Request-Id": [
                "5fa7ee8c-f82d-4440-a6dc-e8c859b03235"
              ],
              "Content-Type": [
                "application/json"
              ]
            }
          },
          "body": {
            "type": "string",
            "description": "The destination response's HTTP message body.",
            "example": "{\"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\"}}}"
          }
        },
        "description": "The response returned by the third-party endpoint the forward request was sent to."
      },
      "ForwardDestinationRequest": {
        "required": [
          "url",
          "method",
          "headers",
          "body"
        ],
        "type": "object",
        "properties": {
          "url": {
            "maxLength": 1024,
            "type": "string",
            "description": "The URL to forward the request to.",
            "example": "https://example.com/payments"
          },
          "method": {
            "enum": [
              "GET",
              "HEAD",
              "POST",
              "PUT",
              "DELETE",
              "OPTIONS",
              "TRACE",
              "PATCH"
            ],
            "type": "string",
            "description": "The HTTP method to use for the forward request.",
            "example": "POST"
          },
          "headers": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/ForwardBodyHeadersRequest"
              }
            ],
            "description": "The HTTP headers to include in the forward request."
          },
          "body": {
            "maxLength": 16384,
            "type": "string",
            "description": "The HTTP message body to include in the forward request.\n\nIf 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}}`.\n",
            "example": "{\"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": {
            "$ref": "#/components/schemas/ForwardRequestSignature"
          },
          "variables": {
            "maxItems": 10,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "description": "The variable name.",
                  "example": "card_data"
                },
                "value": {
                  "type": "string",
                  "description": "The variable value.",
                  "example": "{\"card_number\":\"{{card_number}}\",\"expiry\":\"{{card_expiry_month}}\"}"
                }
              }
            },
            "description": "The variables used in the forward request body. \n\nYou 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}}`. \n",
            "example": [
              {
                "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": {
            "maxItems": 10,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "description": "The query parameter name.",
                  "example": "api_key"
                },
                "value": {
                  "type": "string",
                  "description": "The query parameter value.",
                  "example": "1234567890"
                }
              }
            },
            "description": "The query parameters used in the forward request. These values are added to the destination URL as query parameters.\n",
            "example": [
              {
                "name": "api_key",
                "value": "1234567890"
              },
              {
                "name": "user_id",
                "value": "1234567890"
              }
            ]
          }
        },
        "description": "The details of the request to forward."
      },
      "ForwardRequestNetworkToken": {
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean",
            "description": "Specifies whether to use a network token.",
            "example": true
          },
          "request_cryptogram": {
            "type": "boolean",
            "description": "Specifies whether to generate a cryptogram. For example, for customer-initiated transactions (CITs).\n\nIf you set `network_token.enabled` to `true`, you must provide this field.\n",
            "example": false
          }
        },
        "description": "Specifies if and how a network token should be used in the forward request."
      },
      "ForwardRequestSignature": {
        "required": [
          "type"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/ForwardRequestSignatureDLocal"
          },
          {
            "$ref": "#/components/schemas/ForwardRequestSignatureMastercard"
          },
          {
            "$ref": "#/components/schemas/ForwardRequestSignatureVisa"
          }
        ],
        "description": "Optional configuration to add a signature to the forwarded HTTP request.\n",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "dlocal": "#/components/schemas/ForwardRequestSignatureDLocal",
            "mastercard": "#/components/schemas/ForwardRequestSignatureMastercard",
            "visa": "#/components/schemas/ForwardRequestSignatureVisa"
          }
        },
        "example": {
          "type": "dlocal",
          "dlocal_parameters": {
            "secret_key": "9f439fe1a9f96e67b047d3c1a28c33a2e"
          }
        }
      },
      "ForwardRequestSignatureDLocal": {
        "title": "dlocal",
        "required": [
          "type",
          "dlocal_parameters"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The identifier of the supported signature generation method or a specific third-party service.",
            "example": "dlocal"
          },
          "dlocal_parameters": {
            "required": [
              "secret_key"
            ],
            "type": "object",
            "properties": {
              "secret_key": {
                "type": "string",
                "description": "The secret key used to generate the request signature. This is part of the dLocal API credentials.\n"
              }
            },
            "description": "The parameters required to generate an HMAC signature for the dLocal API. See their [documentation](https://docs.dlocal.com/reference/payins-security) for details.\n\nThis method requires you to provide the `X-Login` header value in the destination request headers.\n\nWhen used, the Forward API appends the `X-Date` and `Authorization` headers to the outgoing HTTP request before forwarding.  \n"
          }
        }
      },
      "ForwardRequestSignatureMastercard": {
        "title": "mastercard",
        "required": [
          "type",
          "mastercard_parameters"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The identifier of the supported signature generation method or a specific third-party service.",
            "example": "mastercard"
          },
          "mastercard_parameters": {
            "required": [
              "consumer_key",
              "signing_key"
            ],
            "type": "object",
            "properties": {
              "consumer_key": {
                "type": "string",
                "description": "An identifier of the client application. Part of the Mastercard APIs credentials.\n"
              },
              "signing_key": {
                "type": "string",
                "description": "A 2048-bit private RSA key used to generate request signatures and confirming ownership of the consumer key. Part of the Mastercard APIs credentials.\n"
              }
            },
            "description": "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/).\n\nWhen used, the Forward API appends the `Authorization` header to the outgoing HTTP request before forwarding.\n"
          }
        }
      },
      "ForwardRequestSignatureVisa": {
        "title": "visa",
        "required": [
          "type",
          "visa_parameters"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The identifier of the supported signature generation method or a specific third-party service.",
            "example": "visa"
          },
          "visa_parameters": {
            "required": [
              "shared_secret"
            ],
            "type": "object",
            "properties": {
              "shared_secret": {
                "type": "string",
                "description": "The secret key used to generate the request signature; part of the Visa API credentials.\n"
              },
              "remove_resource_path_prefix": {
                "type": "string",
                "description": "Some Visa APIs require a prefix to be removed from the resource path used to calculate the signature.<br/>\nBy default, only the leading slash is removed. </p>\n\nFor more information, see [Visa documentation](https://developer.visa.com/pages/working-with-visa-apis/x-pay-token). \n",
                "default": "/"
              }
            },
            "description": "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).\n\nThis method requires you to provide the `apikey` query parameter value in the destination request.\n\nWhen used, the Forward API appends the `X-PAY-TOKEN` header to the outgoing HTTP request before forwarding.\n"
          }
        }
      },
      "ForwardRequestSource": {
        "required": [
          "type"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/ForwardRequestIdSource"
          },
          {
            "$ref": "#/components/schemas/ForwardRequestTokenSource"
          }
        ],
        "description": "The payment source to enrich the forward request with.\n\nYou 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}}`.\n",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "id": "#/components/schemas/ForwardRequestIdSource",
            "token": "#/components/schemas/ForwardRequestTokenSource"
          }
        },
        "example": {
          "id": "src_v5rgkf3gdtpuzjqesyxmyodnya",
          "type": "id"
        }
      },
      "ForwardValidationError": {
        "required": [
          "request_id",
          "error_type",
          "error_codes"
        ],
        "type": "object",
        "properties": {
          "request_id": {
            "type": "string",
            "example": "fwd_01HK153X00VZ1K15Z3HYC0QGPN"
          },
          "error_type": {
            "type": "string",
            "example": "request_invalid"
          },
          "error_codes": {
            "type": "array",
            "items": {
              "type": "string",
              "example": "processing_channel_id_required"
            }
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "The field's error messages.",
              "x-additionalPropertiesName": "<field_name>"
            },
            "example": {
              "processing_channel_id": [
                "The processing_channel_id field is required"
              ]
            }
          }
        }
      },
      "GetForwardRequestDestinationRequest": {
        "required": [
          "url",
          "method",
          "headers",
          "body"
        ],
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "description": "The URL of the forward request.",
            "example": "https://example.com/payments"
          },
          "method": {
            "type": "string",
            "description": "The HTTP method of the forward request.",
            "example": "POST"
          },
          "headers": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "description": "The header value.",
              "x-additionalPropertiesName": "<Header-Name>"
            },
            "description": "The HTTP headers of the forward request. \n\nEncrypted and sensitive header values are redacted.\n",
            "example": {
              "Authorization": "***redacted***",
              "Idempotency-Key": "xe4fad12367dfgrds",
              "Content-Type": "application/json"
            }
          },
          "body": {
            "type": "string",
            "description": "The HTTP message body of the forward request. \n\nThis 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.\n",
            "example": "{\"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}"
          }
        },
        "description": "The details of the request to forward."
      },
      "GetForwardRequestDestinationResponse": {
        "required": [
          "status",
          "headers",
          "body"
        ],
        "type": "object",
        "properties": {
          "status": {
            "type": "number",
            "description": "The HTTP status code returned with the destination response.",
            "example": 201
          },
          "headers": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "The header values.",
              "x-additionalPropertiesName": "<Header-Name>"
            },
            "description": "The destination response's HTTP headers.",
            "example": {
              "Cko-Request-Id": [
                "5fa7ee8c-f82d-4440-a6dc-e8c859b03235"
              ],
              "Content-Type": [
                "application/json"
              ]
            }
          },
          "body": {
            "type": "string",
            "description": "The destination response's HTTP message body.",
            "example": "{\"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\"}}}"
          }
        },
        "description": "The response returned by the third-party endpoint the forward request was sent to."
      },
      "ForwardRequestIdSource": {
        "title": "id",
        "required": [
          "type",
          "id"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The payment source type.",
            "example": "id"
          },
          "id": {
            "pattern": "^(src)_(\\w{26})$",
            "type": "string",
            "description": "The unique identifier of the payment instrument.",
            "example": "src_wmlfc3zyhqzehihu7giusaaawu"
          },
          "cvv_token": {
            "pattern": "^(tok)_(\\w{26})$",
            "type": "string",
            "description": "The unique token for the card's security code.\n\nCheckout.com does not store a card's Card Verification Value (CVV) with its associated payment instrument. \n\nTo 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.\n\nThe token will replace the placeholder `{{card_cvv}}` value in `destination_request.body`.\n",
            "example": "tok_wnw2grxl4hbufp7q55tw2pb2t4"
          },
          "pin_token": {
            "pattern": "^(tok)_(\\w{26})$",
            "type": "string",
            "description": "The unique token for the first 2 digits of the card's Personal Identification Number (PIN).  \n\nCheckout.com does not store a card's PIN with its associated payment instrument. \n\nIn specific regions, card holders must enter the first two digits of their 4-digit card PIN to confirm card ownership.  \n\nTo provide the first 2 digits of the PIN with your forward request:  \n\n1. Collect the PIN from the user.  \n2. tokenize it using the  `/tokens` [endpoint](/#operation/requestAToken) setting `type` to `pin`.  \n3. Pass the resulting  `token` value of the response in this field.  \n\nThis token replaces the `{{card_pin}}` placeholder value in `destination_request.body`.  \n",
            "example": "tok_wnw2grxl4hbufp7q55tw2pb2t4"
          }
        },
        "description": "The payment instrument to enrich the forward request with."
      },
      "ForwardRequestTokenSource": {
        "title": "token",
        "required": [
          "type",
          "token"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The payment source type.",
            "example": "token"
          },
          "token": {
            "pattern": "^(tok)_(\\w{26})$",
            "type": "string",
            "description": "The unique Checkout.com token.",
            "example": "tok_ubfj2q76miwundwlk72vxt2i7q"
          },
          "store_for_future_use": {
            "type": "boolean",
            "description": "Specifies whether to store the tokenized credentials as a payment instrument and return its identifier in the response.",
            "default": false
          }
        },
        "description": "The token to enrich the forward request with."
      },
      "CreateSecretPlaintextRequest": {
        "required": [
          "name",
          "value"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 64,
            "minLength": 1,
            "pattern": "^[a-zA-Z0-9_]{1,64}$",
            "type": "string",
            "description": "Secret name. <br/>\nFormat – 1-64 characters. Alphanumeric and underscore.\n",
            "example": "secret_name"
          },
          "value": {
            "maxLength": 8192,
            "type": "string",
            "description": "Plaintext secret value. Max 8KB.",
            "example": "my_secret_value"
          },
          "entity_id": {
            "type": "string",
            "description": "Optional.When provided, the secret is scoped to this entity",
            "example": "ent_svrxgarj6qru5pzx4m4movyney"
          }
        },
        "description": "Request to create a secret with plaintext value"
      },
      "SecretResponse": {
        "required": [
          "name",
          "created_at",
          "updated_at",
          "version"
        ],
        "type": "object",
        "properties": {
          "name": {
            "pattern": "^[a-zA-Z0-9_]{1,64}$",
            "type": "string",
            "description": "Secret name (1-64 characters, alphanumeric and underscore)",
            "example": "secret_name"
          },
          "created_at": {
            "type": "string",
            "description": "Timestamp when the secret was created.",
            "format": "date-time",
            "example": "2025-10-14T00:00:00.0000000+00:00"
          },
          "updated_at": {
            "type": "string",
            "description": "Timestamp when the secret was last updated.",
            "format": "date-time",
            "example": "2025-10-14T00:00:00.0000000+00:00"
          },
          "version": {
            "minimum": 1,
            "type": "integer",
            "description": "Version number.",
            "example": 1
          },
          "entity_id": {
            "type": "string",
            "description": "Entity ID if the secret is scoped to a specific entity.",
            "example": "ent_123"
          }
        },
        "description": "Secret response metadata. The secret value is never returned in responses."
      },
      "UpdateSecretRequest": {
        "type": "object",
        "properties": {
          "entity_id": {
            "type": "string",
            "description": "Update the entity scope.",
            "example": "ent_kf3pqe272lqevcpx5xtlndgcii"
          },
          "value": {
            "maxLength": 8192,
            "type": "string",
            "description": "New plaintext secret value. Max 8KB.",
            "example": "NEW_VALUE_1"
          }
        },
        "description": "Request to update an existing secret. At least one of `value` or `entity_id` must be provided.\n"
      },
      "GooglePayDomainListResponse": {
        "required": [
          "domains"
        ],
        "type": "object",
        "properties": {
          "domains": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "hostname"
            },
            "description": "The list of domains registered for the entity."
          }
        },
        "additionalProperties": false
      },
      "GooglePayEnrollmentRequest": {
        "required": [
          "entity_id",
          "email_address",
          "accept_terms_of_service"
        ],
        "type": "object",
        "properties": {
          "entity_id": {
            "type": "string",
            "description": "The unique identifier of the entity to enroll.",
            "example": "ent_uzm3uxtssvmuxnyrfdffcyjxeu"
          },
          "email_address": {
            "type": "string",
            "description": "The email address of the user accepting the <a href=https://payments.developers.google.com/terms/sellertos>Google terms of service</a>.",
            "example": "test@gmail.com"
          },
          "accept_terms_of_service": {
            "type": "boolean",
            "description": "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.",
            "example": true
          }
        },
        "additionalProperties": false
      },
      "GooglePayEnrollmentResponse": {
        "required": [
          "tos_accepted_time",
          "state"
        ],
        "type": "object",
        "properties": {
          "merchant_id": {
            "type": "string",
            "description": "The Google Pay merchant ID associated with the entity.",
            "example": "01234567890123456789"
          },
          "tos_accepted_time": {
            "type": "string",
            "description": "An ISO 8601 timestamp of when the [Google terms of service](https://payments.developers.google.com/terms/sellertos) were accepted.",
            "format": "date-time",
            "example": "2014-10-02T15:01:23.0000000+00:00"
          },
          "state": {
            "enum": [
              "ACTIVE",
              "INACTIVE"
            ],
            "type": "string",
            "description": "The current enrollment state of the entity."
          }
        },
        "additionalProperties": false
      },
      "GooglePayEnrollmentStateResponse": {
        "required": [
          "state"
        ],
        "type": "object",
        "properties": {
          "state": {
            "enum": [
              "ACTIVE",
              "INACTIVE"
            ],
            "type": "string",
            "description": "The current enrollment state of the entity."
          }
        },
        "additionalProperties": false
      },
      "GooglePayErrorResponse": {
        "type": "object",
        "properties": {
          "error_codes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "error_type": {
            "enum": [
              "invalid_request"
            ],
            "type": "string"
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "GooglePayRegisterDomainRequest": {
        "required": [
          "web_domain"
        ],
        "type": "object",
        "properties": {
          "web_domain": {
            "type": "string",
            "description": "The web domain to register for an actively enrolled entity.",
            "format": "hostname",
            "example": "some.example.com"
          }
        },
        "additionalProperties": false
      },
      "GetHostedPaymentsResponse": {
        "required": [
          "id",
          "status",
          "amount",
          "currency",
          "billing",
          "success_url",
          "cancel_url",
          "failure_url",
          "_links"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/GetHostedPaymentsResponseStatusPaymentPending"
          },
          {
            "$ref": "#/components/schemas/GetHostedPaymentsResponseStatusPaymentReceived"
          },
          {
            "$ref": "#/components/schemas/GetHostedPaymentsResponseStatusExpired"
          }
        ],
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/HostedPaymentId"
              }
            ],
            "example": "hpp_xGQBg0AXl3cM"
          },
          "status": {
            "enum": [
              "Payment Pending",
              "Payment Received",
              "Expired"
            ],
            "type": "string",
            "description": "The status of the Hosted Payments Page:\n  - `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.\n  - `Payment Received`: A payment has been received successfully using this Hosted Payments Page.\n  - `Expired`: The Hosted Payments Page has expired and can no longer be accessed.\n",
            "example": "Payment Pending"
          },
          "payment_id": {
            "type": "string",
            "description": "Unique identifier for an in progress or completed payment for this Payment Link.",
            "example": "pay_88cb4e671m1da22e9bbbyx"
          },
          "amount": {
            "type": "integer",
            "description": "The original payment amount.",
            "example": 100
          },
          "currency": {
            "type": "string",
            "description": "The three-letter <a href=\"https://www.checkout.com/docs/resources/codes/currency-codes\" target=\"blank\">ISO currency code</a> of the payment.<br>",
            "example": "GBP"
          },
          "reference": {
            "type": "string",
            "description": "Your reference for the payment.",
            "example": "ORD-123A"
          },
          "description": {
            "type": "string",
            "description": "A description of the payment.",
            "example": "Payment for Gold Necklace"
          },
          "customer": {
            "type": "object",
            "properties": {
              "email": {
                "type": "string",
                "description": "The email address for the customer.",
                "format": "email",
                "example": "brucewayne@email.com"
              },
              "name": {
                "type": "string",
                "description": "The customer's name.",
                "example": "Bruce Wayne"
              }
            },
            "description": "The customer's details."
          },
          "billing": {
            "required": [
              "address"
            ],
            "type": "object",
            "properties": {
              "address": {
                "required": [
                  "country"
                ],
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Address"
                  }
                ],
                "description": "The billing address."
              },
              "phone": {
                "required": [
                  "number"
                ],
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PhoneNumber"
                  }
                ],
                "description": "The customer's phone number."
              }
            },
            "additionalProperties": false,
            "description": "The billing details."
          },
          "products": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentInterfacesProducts"
              }
            ]
          },
          "metadata": {
            "type": "object",
            "description": "Any additional information stored at the point of creation."
          },
          "success_url": {
            "type": "string",
            "description": "The provided URL your customer will be redirected to upon a successful payment.",
            "format": "uri",
            "example": "https://example.com/success"
          },
          "cancel_url": {
            "type": "string",
            "description": "The provided URL your customer will be redirected to if the payment is cancelled.",
            "format": "uri",
            "example": "https://example.com/cancel"
          },
          "failure_url": {
            "type": "string",
            "description": "The provided URL your customer will be redirected to upon a failed payment.",
            "format": "uri",
            "example": "https://example.com/failure"
          },
          "amount_allocations": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AmountAllocations"
              }
            ]
          },
          "_links": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/GetHostedPaymentsResponseLinks"
              }
            ],
            "description": "The links related to the Hosted Payments Page."
          }
        },
        "discriminator": {
          "propertyName": "status",
          "mapping": {
            "Payment Pending": "#/components/schemas/GetHostedPaymentsResponseStatusPaymentPending",
            "Payment Received": "#/components/schemas/GetHostedPaymentsResponseStatusPaymentReceived",
            "Expired": "#/components/schemas/GetHostedPaymentsResponseStatusExpired"
          }
        }
      },
      "GetHostedPaymentsResponseLinks": {
        "minItems": 2,
        "required": [
          "self",
          "redirect"
        ],
        "type": "object",
        "properties": {
          "self": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/Link"
              }
            ],
            "description": "The URI of the Hosted Payments Page details."
          },
          "redirect": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/Link"
              }
            ],
            "description": "The link to visit the Hosted Payments Page."
          },
          "payment": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/Link"
              }
            ],
            "description": "The URI of the in progress or completed payment for this Hosted Payments Page."
          },
          "payment_actions": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/Link"
              }
            ],
            "description": "The URI of the actions associated with the in progress or completed payment for this Hosted Payments Page."
          }
        },
        "description": "The links related to the Hosted Payments Page.",
        "example": {
          "self": {
            "href": "https://{prefix}.api.sandbox.checkout.com/hosted-payments/hpp_xGQBg0AXl3cM"
          },
          "redirect": {
            "href": "https://pay.sandbox.checkout.com/page/hpp_xGQBg0AXl3cM"
          }
        }
      },
      "GetHostedPaymentsResponseStatusExpired": {
        "title": "Expired",
        "required": [
          "id",
          "status",
          "amount",
          "currency",
          "billing",
          "success_url",
          "cancel_url",
          "failure_url",
          "_links"
        ],
        "type": "object",
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/HostedPaymentId"
              }
            ],
            "example": "hpp_xGQBg0AXl3cM"
          },
          "status": {
            "enum": [
              "Expired"
            ],
            "type": "string",
            "description": "The status of the Hosted Payments Page:\n  - `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.\n  - `Payment Received`: A payment has been received successfully using this Hosted Payments Page.\n  - `Expired`: The Hosted Payments Page has expired and can no longer be accessed.\n",
            "example": "Expired"
          },
          "payment_id": {
            "type": "string",
            "description": "Unique identifier for an in progress or completed payment for this Payment Link.",
            "example": "pay_88cb4e671m1da22e9bbbyx"
          },
          "amount": {
            "type": "integer",
            "description": "The original payment amount.",
            "example": 100
          },
          "currency": {
            "type": "string",
            "description": "The three-letter <a href=\"https://www.checkout.com/docs/resources/codes/currency-codes\" target=\"blank\">ISO currency code</a> of the payment.<br>",
            "example": "GBP"
          },
          "reference": {
            "type": "string",
            "description": "Your reference for the payment.",
            "example": "ORD-123A"
          },
          "description": {
            "type": "string",
            "description": "A description of the payment.",
            "example": "Payment for Gold Necklace"
          },
          "customer": {
            "type": "object",
            "properties": {
              "email": {
                "type": "string",
                "description": "The email address for the customer.",
                "format": "email",
                "example": "brucewayne@email.com"
              },
              "name": {
                "type": "string",
                "description": "The customer's name.",
                "example": "Bruce Wayne"
              }
            },
            "description": "The customer's details."
          },
          "billing": {
            "required": [
              "address"
            ],
            "type": "object",
            "properties": {
              "address": {
                "required": [
                  "country"
                ],
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Address"
                  }
                ],
                "description": "The billing address."
              },
              "phone": {
                "required": [
                  "number"
                ],
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PhoneNumber"
                  }
                ],
                "description": "The customer's phone number."
              }
            },
            "additionalProperties": false,
            "description": "The billing details."
          },
          "products": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentInterfacesProducts"
              }
            ]
          },
          "metadata": {
            "type": "object",
            "description": "Any additional information stored at the point of creation."
          },
          "success_url": {
            "type": "string",
            "description": "The provided URL your customer will be redirected to upon a successful payment.",
            "format": "uri",
            "example": "https://example.com/success"
          },
          "cancel_url": {
            "type": "string",
            "description": "The provided URL your customer will be redirected to if the payment is cancelled.",
            "format": "uri",
            "example": "https://example.com/cancel"
          },
          "failure_url": {
            "type": "string",
            "description": "The provided URL your customer will be redirected to upon a failed payment.",
            "format": "uri",
            "example": "https://example.com/failure"
          },
          "amount_allocations": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AmountAllocations"
              }
            ]
          },
          "_links": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/GetHostedPaymentsResponseLinks"
              }
            ],
            "description": "The links related to the Hosted Payments Page."
          }
        },
        "description": "An expired Hosted Payments Page."
      },
      "GetHostedPaymentsResponseStatusPaymentPending": {
        "title": "Payment Pending",
        "required": [
          "id",
          "status",
          "amount",
          "currency",
          "billing",
          "success_url",
          "cancel_url",
          "failure_url",
          "_links"
        ],
        "type": "object",
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/HostedPaymentId"
              }
            ],
            "example": "hpp_xGQBg0AXl3cM"
          },
          "status": {
            "enum": [
              "Payment Pending"
            ],
            "type": "string",
            "description": "The status of the Hosted Payments Page:\n  - `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.\n  - `Payment Received`: A payment has been received successfully using this Hosted Payments Page.\n  - `Expired`: The Hosted Payments Page has expired and can no longer be accessed.\n",
            "example": "Payment Pending"
          },
          "payment_id": {
            "type": "string",
            "description": "Unique identifier for an in progress or completed payment for this Payment Link.",
            "example": "pay_88cb4e671m1da22e9bbbyx"
          },
          "amount": {
            "type": "integer",
            "description": "The original payment amount.",
            "example": 100
          },
          "currency": {
            "type": "string",
            "description": "The three-letter <a href=\"https://www.checkout.com/docs/resources/codes/currency-codes\" target=\"blank\">ISO currency code</a> of the payment.<br>",
            "example": "GBP"
          },
          "reference": {
            "type": "string",
            "description": "Your reference for the payment.",
            "example": "ORD-123A"
          },
          "description": {
            "type": "string",
            "description": "A description of the payment.",
            "example": "Payment for Gold Necklace"
          },
          "customer": {
            "type": "object",
            "properties": {
              "email": {
                "type": "string",
                "description": "The email address for the customer.",
                "format": "email",
                "example": "brucewayne@email.com"
              },
              "name": {
                "type": "string",
                "description": "The customer's name.",
                "example": "Bruce Wayne"
              }
            },
            "description": "The customer's details."
          },
          "billing": {
            "required": [
              "address"
            ],
            "type": "object",
            "properties": {
              "address": {
                "required": [
                  "country"
                ],
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Address"
                  }
                ],
                "description": "The billing address."
              },
              "phone": {
                "required": [
                  "number"
                ],
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PhoneNumber"
                  }
                ],
                "description": "The customer's phone number."
              }
            },
            "additionalProperties": false,
            "description": "The billing details."
          },
          "products": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentInterfacesProducts"
              }
            ]
          },
          "metadata": {
            "type": "object",
            "description": "Any additional information stored at the point of creation."
          },
          "success_url": {
            "type": "string",
            "description": "The provided URL your customer will be redirected to upon a successful payment.",
            "format": "uri",
            "example": "https://example.com/success"
          },
          "cancel_url": {
            "type": "string",
            "description": "The provided URL your customer will be redirected to if the payment is cancelled.",
            "format": "uri",
            "example": "https://example.com/cancel"
          },
          "failure_url": {
            "type": "string",
            "description": "The provided URL your customer will be redirected to upon a failed payment.",
            "format": "uri",
            "example": "https://example.com/failure"
          },
          "amount_allocations": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AmountAllocations"
              }
            ]
          },
          "_links": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/GetHostedPaymentsResponseLinks"
              }
            ],
            "description": "The links related to the Hosted Payments Page."
          }
        },
        "description": "A Hosted Payments Page that can accept a payment from a customer."
      },
      "GetHostedPaymentsResponseStatusPaymentReceived": {
        "title": "Payment Received",
        "required": [
          "id",
          "status",
          "amount",
          "currency",
          "billing",
          "success_url",
          "cancel_url",
          "failure_url",
          "_links",
          "payment_id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/HostedPaymentId"
              }
            ],
            "example": "hpp_xGQBg0AXl3cM"
          },
          "status": {
            "enum": [
              "Payment Received"
            ],
            "type": "string",
            "description": "The status of the Hosted Payments Page:\n  - `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.\n  - `Payment Received`: A payment has been received successfully using this Hosted Payments Page.\n  - `Expired`: The Hosted Payments Page has expired and can no longer be accessed.\n",
            "example": "Payment Received"
          },
          "payment_id": {
            "type": "string",
            "description": "Unique identifier for an in progress or completed payment for this Payment Link.",
            "example": "pay_88cb4e671m1da22e9bbbyx"
          },
          "amount": {
            "type": "integer",
            "description": "The original payment amount.",
            "example": 100
          },
          "currency": {
            "type": "string",
            "description": "The three-letter <a href=\"https://www.checkout.com/docs/resources/codes/currency-codes\" target=\"blank\">ISO currency code</a> of the payment.<br>",
            "example": "GBP"
          },
          "reference": {
            "type": "string",
            "description": "Your reference for the payment.",
            "example": "ORD-123A"
          },
          "description": {
            "type": "string",
            "description": "A description of the payment.",
            "example": "Payment for Gold Necklace"
          },
          "customer": {
            "type": "object",
            "properties": {
              "email": {
                "type": "string",
                "description": "The email address for the customer.",
                "format": "email",
                "example": "brucewayne@email.com"
              },
              "name": {
                "type": "string",
                "description": "The customer's name.",
                "example": "Bruce Wayne"
              }
            },
            "description": "The customer's details."
          },
          "billing": {
            "required": [
              "address"
            ],
            "type": "object",
            "properties": {
              "address": {
                "required": [
                  "country"
                ],
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Address"
                  }
                ],
                "description": "The billing address."
              },
              "phone": {
                "required": [
                  "number"
                ],
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PhoneNumber"
                  }
                ],
                "description": "The customer's phone number."
              }
            },
            "additionalProperties": false,
            "description": "The billing details."
          },
          "products": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentInterfacesProducts"
              }
            ]
          },
          "metadata": {
            "type": "object",
            "description": "Any additional information stored at the point of creation."
          },
          "success_url": {
            "type": "string",
            "description": "The provided URL your customer will be redirected to upon a successful payment.",
            "format": "uri",
            "example": "https://example.com/success"
          },
          "cancel_url": {
            "type": "string",
            "description": "The provided URL your customer will be redirected to if the payment is cancelled.",
            "format": "uri",
            "example": "https://example.com/cancel"
          },
          "failure_url": {
            "type": "string",
            "description": "The provided URL your customer will be redirected to upon a failed payment.",
            "format": "uri",
            "example": "https://example.com/failure"
          },
          "amount_allocations": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AmountAllocations"
              }
            ]
          },
          "_links": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/GetHostedPaymentsResponseLinks"
              }
            ],
            "description": "The links related to the Hosted Payments Page."
          }
        },
        "description": "A Hosted Payments Page that has received a payment"
      },
      "HostedPaymentId": {
        "maxLength": 16,
        "minLength": 16,
        "pattern": "^hpp_[A-Za-z0-9_-]{12}$",
        "type": "string",
        "description": "The unique identifier for a Hosted Payments Page."
      },
      "HostedPaymentsRequest": {
        "required": [
          "currency",
          "billing",
          "success_url",
          "cancel_url",
          "failure_url"
        ],
        "type": "object",
        "properties": {
          "amount": {
            "minimum": 0,
            "type": "integer",
            "description": "The payment amount. The exact format <a href=\"https://www.checkout.com/docs/resources/calculating-the-amount\" target=\"_blank\">depends on the currency</a>",
            "example": 1000
          },
          "currency": {
            "maxLength": 3,
            "minLength": 3,
            "type": "string",
            "description": "The three-letter <a href=\"https://www.checkout.com/docs/resources/codes/currency-codes\" target=\"blank\">ISO currency code</a> of the payment",
            "example": "GBP"
          },
          "payment_type": {
            "enum": [
              "Regular",
              "Recurring"
            ],
            "type": "string",
            "description": "This must be specified for card payments where the cardholder is not present (i.e., recurring or mail order / telephone order)",
            "default": "Regular"
          },
          "authorization_type": {
            "enum": [
              "Final",
              "Estimated"
            ],
            "type": "string",
            "description": "The authorization type.",
            "default": "Final",
            "example": "Estimated"
          },
          "payment_plan": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentSessionPaymentPlanRecurring"
              }
            ]
          },
          "payment_ip": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IPAddress"
              }
            ],
            "description": "The Customers IP address. Only IPv4 and IPv6 addresses are accepted.",
            "deprecated": true
          },
          "billing_descriptor": {
            "required": [
              "name",
              "city"
            ],
            "type": "object",
            "properties": {
              "name": {
                "maxLength": 25,
                "type": "string",
                "description": "A dynamic description of the change"
              },
              "city": {
                "maxLength": 13,
                "minLength": 1,
                "type": "string",
                "description": "The city from which the charge originated"
              },
              "reference": {
                "maxLength": 50,
                "type": "string",
                "description": "The reference shown on the statement. Required for payouts to bank accounts."
              }
            },
            "description": "An optional description that is displayed on the customer's statement identifying a purchase"
          },
          "reference": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentInterfacesReference"
              }
            ]
          },
          "description": {
            "maxLength": 100,
            "type": "string",
            "description": "A description of the payment",
            "example": "Payment for Gold Necklace"
          },
          "display_name": {
            "type": "string",
            "description": "The merchant name to display to customers on the checkout page.",
            "example": "The Jewelry Shop"
          },
          "processing_channel_id": {
            "pattern": "^(pc)_(\\w{26})$",
            "type": "string",
            "description": "The processing channel to be used for the payment",
            "example": "pc_q4dbxom5jbgudnjzjpz7j2z6uq"
          },
          "amount_allocations": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AmountAllocations"
              }
            ]
          },
          "customer": {
            "type": "object",
            "properties": {
              "email": {
                "maxLength": 255,
                "type": "string",
                "description": "The customer's email address.",
                "format": "email",
                "example": "ali.farid@example.com"
              },
              "name": {
                "maxLength": 255,
                "type": "string",
                "description": "The customer's name.\n\nThis will only set the name for new customers.\n",
                "example": "Ali Farid"
              },
              "phone": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PaymentInterfacesPhoneNumber"
                  }
                ],
                "description": "The customer's phone number."
              },
              "summary": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PaymentInterfacesCustomerSummary"
                  }
                ]
              }
            },
            "description": "The customer's details"
          },
          "shipping": {
            "required": [
              "address"
            ],
            "type": "object",
            "properties": {
              "address": {
                "required": [
                  "country"
                ],
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Address"
                  }
                ],
                "description": "The customer's address to ship to."
              },
              "phone": {
                "required": [
                  "number"
                ],
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PhoneNumber"
                  }
                ],
                "description": "The customer's phone number"
              }
            },
            "description": "The address any products are being sent to."
          },
          "billing": {
            "required": [
              "address"
            ],
            "type": "object",
            "properties": {
              "address": {
                "required": [
                  "country"
                ],
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Address"
                  }
                ],
                "description": "The billing address"
              },
              "phone": {
                "required": [
                  "number"
                ],
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PhoneNumber"
                  }
                ],
                "description": "The customer's phone number. This will override the phone number specified during tokenization"
              }
            },
            "additionalProperties": false,
            "description": "The billing details"
          },
          "recipient": {
            "$ref": "#/components/schemas/PaymentInterfacesRecipient"
          },
          "processing": {
            "$ref": "#/components/schemas/PaymentInterfacesProcessing"
          },
          "allow_payment_methods": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentInterfacesPaymentMethodEnum"
              }
            ],
            "description": "Specifies which payment method options to present to the customer.\n\nThe values in this field override any equivalent values in `disabled_payment_methods`.\n\nSome 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.\n",
            "example": [
              "card",
              "applepay",
              "googlepay"
            ]
          },
          "disabled_payment_methods": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentInterfacesPaymentMethods"
              }
            ],
            "description": "Specifies which payment method options to not present to the customer.\n\nIf you specify the same payment method in this field and in `allow_payment_methods`, the `disabled_payment_methods` value will be overridden.\n\nAny payment method options not explicitly specified in this field will be presented to the customer by default.\n",
            "example": [
              "eps",
              "ideal",
              "knet"
            ]
          },
          "products": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentInterfacesProducts"
              }
            ]
          },
          "risk": {
            "required": [
              "enabled"
            ],
            "type": "object",
            "properties": {
              "enabled": {
                "type": "boolean",
                "description": "Specifies whether to perform a risk assessment.",
                "default": true,
                "example": false
              }
            },
            "description": "Configures the risk assessment performed during payment processing."
          },
          "customer_retry": {
            "type": "object",
            "properties": {
              "max_attempts": {
                "maximum": 5,
                "minimum": 0,
                "type": "integer",
                "description": "The maximum number of customer retry attempts, excluding the initial payment attempt.",
                "default": 5,
                "example": 2
              }
            },
            "description": "Configures the parameters for customer retries.\n\nA 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.\n"
          },
          "sender": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentInterfacesSender"
              }
            ],
            "description": "The sender of the payment."
          },
          "success_url": {
            "maxLength": 255,
            "type": "string",
            "description": "For redirect payment methods, this overrides the default success redirect URL configured on your account",
            "format": "uri",
            "example": "https://example.com/payments/success"
          },
          "cancel_url": {
            "maxLength": 255,
            "type": "string",
            "description": "The URL to which the customer should be directed if they cancel the payment",
            "format": "uri",
            "example": "https://example.com/payments/cancel"
          },
          "failure_url": {
            "maxLength": 255,
            "type": "string",
            "description": "For redirect payment methods, this overrides the default failure redirect URL configured on your account",
            "format": "uri",
            "example": "https://example.com/payments/failure"
          },
          "metadata": {
            "title": "The Metadata Schema",
            "type": "object",
            "description": "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": {
            "enum": [
              "ar",
              "da-DK",
              "de-DE",
              "el",
              "en-GB",
              "es-ES",
              "fi-FI",
              "fil-PH",
              "fr-FR",
              "hi-IN",
              "id-ID",
              "it-IT",
              "ja-JP",
              "ms-MY",
              "nb-NO",
              "nl-NL",
              "pt-PT",
              "sv-SE",
              "th-TH",
              "vi-VN",
              "zh-CN",
              "zh-HK",
              "zh-TW"
            ],
            "type": "string",
            "description": "Creates a translated version of the page in the specified language",
            "default": "en-GB"
          },
          "3ds": {
            "type": "object",
            "properties": {
              "enabled": {
                "type": "boolean",
                "description": "Whether to process this payment as a 3D Secure payment",
                "default": false,
                "example": false
              },
              "attempt_n3d": {
                "type": "boolean",
                "description": "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.",
                "default": false,
                "example": false
              },
              "challenge_indicator": {
                "enum": [
                  "no_preference",
                  "no_challenge_requested",
                  "challenge_requested",
                  "challenge_requested_mandate"
                ],
                "type": "string",
                "description": "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.",
                "default": "no_preference"
              },
              "allow_upgrade": {
                "type": "boolean",
                "description": "Whether to process this payment as 3D Secure if the authorization was soft declined because 3DS authentication is required.",
                "default": true
              },
              "exemption": {
                "enum": [
                  "low_value",
                  "secure_corporate_payment",
                  "trusted_listing",
                  "transaction_risk_assessment",
                  "3ds_outage",
                  "sca_delegation",
                  "out_of_sca_scope",
                  "other",
                  "low_risk_program",
                  "recurring_operation"
                ],
                "type": "string",
                "description": "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>."
              }
            },
            "description": "Information required for 3D Secure payments"
          },
          "capture": {
            "type": "boolean",
            "description": "Whether to capture the payment (if applicable).",
            "example": true
          },
          "capture_on": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Timestamp"
              }
            ],
            "description": "A timestamp (ISO 8601 code) that determines when the payment should be captured.\nProviding this field will automatically set `capture` to true.\n"
          },
          "instruction": {
            "type": "object",
            "properties": {
              "purpose": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Purpose"
                  }
                ]
              }
            },
            "description": "Details about the payment instruction."
          },
          "payment_method_configuration": {
            "type": "object",
            "properties": {
              "applepay": {
                "type": "object",
                "properties": {
                  "account_holder": {
                    "required": [
                      "type"
                    ],
                    "type": "object",
                    "description": "The account holder's details.",
                    "discriminator": {
                      "propertyName": "type",
                      "mapping": {
                        "individual": "#/components/schemas/01_PaymentSessionRequest_AccountHolderIndividual",
                        "corporate": "#/components/schemas/02_PaymentSessionRequest_AccountHolderCorporate",
                        "government": "#/components/schemas/03_PaymentSessionRequest_AccountHolderGovernment"
                      }
                    }
                  },
                  "store_payment_details": {
                    "$ref": "#/components/schemas/PaymentInterfacesStorePaymentDetails"
                  }
                },
                "description": "Configuration options specific to Apple Pay payments."
              },
              "card": {
                "type": "object",
                "properties": {
                  "store_payment_details": {
                    "enum": [
                      "disabled",
                      "enabled",
                      "collect_consent"
                    ],
                    "type": "string",
                    "description": "Specifies whether you intend to store the cardholder's payment details.\n\nIf you set this field to `enabled` or `collect_consent`, you must:\n\n- Have obtained consent from the cardholder to store their payment details\n- Provide `customer.id` or `customer.email` in the request\n\nYou do not need to provide this field if `payment_type` is set to one of the following values:\n\n - `Installment`\n - `Recurring`\n - `Unscheduled`\n",
                    "default": "disabled"
                  },
                  "account_holder": {
                    "required": [
                      "type"
                    ],
                    "type": "object",
                    "description": "The account holder's details.",
                    "discriminator": {
                      "propertyName": "type",
                      "mapping": {
                        "individual": "#/components/schemas/01_PaymentSessionRequest_AccountHolderIndividual",
                        "corporate": "#/components/schemas/02_PaymentSessionRequest_AccountHolderCorporate",
                        "government": "#/components/schemas/03_PaymentSessionRequest_AccountHolderGovernment"
                      }
                    }
                  }
                },
                "description": "Configuration options specific to card payments."
              },
              "googlepay": {
                "type": "object",
                "properties": {
                  "account_holder": {
                    "required": [
                      "type"
                    ],
                    "type": "object",
                    "description": "The account holder's details.",
                    "discriminator": {
                      "propertyName": "type",
                      "mapping": {
                        "individual": "#/components/schemas/01_PaymentSessionRequest_AccountHolderIndividual",
                        "corporate": "#/components/schemas/02_PaymentSessionRequest_AccountHolderCorporate",
                        "government": "#/components/schemas/03_PaymentSessionRequest_AccountHolderGovernment"
                      }
                    }
                  },
                  "store_payment_details": {
                    "$ref": "#/components/schemas/PaymentInterfacesStorePaymentDetails"
                  }
                },
                "description": "Configuration options specific to Google Pay payments."
              },
              "stored_card": {
                "type": "object",
                "properties": {
                  "customer_id": {
                    "pattern": "^(cus)_(\\w{26})$",
                    "type": "string",
                    "description": "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.\n\nThis value takes precedence over `payment_method_configuration.stored_card.instrument_ids` when determining the stored cards to present to the customer.\n"
                  },
                  "instrument_ids": {
                    "maxItems": 10,
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "pattern": "^(src)_(\\w{26})$",
                      "type": "string"
                    },
                    "description": "The unique identifiers for card Instruments. Enables stored card payment method if any one of them exists.\n\nThe 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.\n"
                  },
                  "default_instrument_id": {
                    "pattern": "^(src)_(\\w{26})$",
                    "type": "string",
                    "description": "The unique identifier for the payment instrument to present to the customer as the default option."
                  }
                },
                "description": "Configuration options specific to stored card payments."
              }
            },
            "description": "Configuration options for specific payment methods."
          }
        }
      },
      "HostedPaymentsResponse": {
        "required": [
          "id",
          "_links"
        ],
        "type": "object",
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/HostedPaymentId"
              }
            ],
            "example": "hpp_xGQBg0AXl3cM"
          },
          "reference": {
            "type": "string",
            "description": "A reference you can later use to identify this payment, such as an order number.",
            "example": "ORD-5023-4E89"
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "code": {
                  "type": "string",
                  "description": "The reason for the warning",
                  "example": "payment_method_unavailable"
                },
                "description": {
                  "type": "string",
                  "description": "The description of the warning code",
                  "example": "The card was provided in the `allow_payment_methods` object, but no card schemes are configured."
                },
                "value": {
                  "enum": [
                    "card",
                    "sofort",
                    "ideal",
                    "knet",
                    "bancontact",
                    "eps",
                    "p24",
                    "multibanco"
                  ],
                  "type": "string",
                  "description": "Payment method for which the warning applies"
                }
              }
            },
            "description": "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."
          },
          "_links": {
            "type": "object",
            "properties": {
              "self": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Link"
                  }
                ],
                "example": {
                  "href": "https://{prefix}.api.sandbox.checkout.com/hosted-payments/hpp_xGQBg0AXl3cM"
                }
              },
              "redirect": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Link"
                  }
                ],
                "example": {
                  "href": "https://pay.sandbox.checkout.com/page/hpp_xGQBg0AXl3cM"
                }
              }
            },
            "description": "The links related to the hosted payment.",
            "readOnly": true
          }
        },
        "example": {
          "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"
            }
          }
        }
      },
      "PaymentInterfacesCustomerSummary": {
        "type": "object",
        "properties": {
          "registration_date": {
            "type": "string",
            "description": "The date the customer registered.",
            "format": "date",
            "example": "2023-05-01T00:00:00.0000000"
          },
          "first_transaction_date": {
            "type": "string",
            "description": "The date of the customer's first transaction.",
            "format": "date",
            "example": "2023-07-01T00:00:00.0000000"
          },
          "last_payment_date": {
            "type": "string",
            "description": "The date of the customer's last payment.",
            "format": "date",
            "example": "2023-08-01T00:00:00.0000000"
          },
          "total_order_count": {
            "type": "integer",
            "description": "The total number of orders made by the customer.",
            "example": 15
          },
          "last_payment_amount": {
            "type": "number",
            "description": "The amount of the customer's last payment.",
            "format": "float",
            "example": 500
          },
          "is_premium_customer": {
            "type": "boolean",
            "description": "Specifies whether the customer is a premium customer.",
            "example": true
          },
          "is_returning_customer": {
            "type": "boolean",
            "description": "Specifies whether the customer is a returning customer.",
            "example": true
          },
          "lifetime_value": {
            "type": "number",
            "description": "The customer's lifetime value. This is the total monetary amount that the customer has ordered, in their local currency, excluding the following:\n\n- canceled orders\n- rejected payments\n- refunded payments\n- Tamara payments\n\nThe lifetime value is an indicator of how valuable the relationship with the customer is to your company.\n",
            "format": "float",
            "example": 500
          }
        },
        "description": "Summary of the customer's transaction history. <br> Used for risk assessment when `source.type` is `Tamara`"
      },
      "PaymentInterfacesPanPreference": {
        "enum": [
          "fpan",
          "dpan"
        ],
        "type": "string",
        "description": "Specifies the preferred type of Primary Account Number (PAN) for the payment:\n\n* DPAN: Uses the Checkout.com Network Token.\n* FPAN: Uses the full card number.\n\n**Note**: This only works when `source.type` is any of:\n  - `cards`\n  - `instruments`\n  - `tokens`\n"
      },
      "PaymentInterfacesPaymentMethod": {
        "type": "string",
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentInterfacesPaymentMethodEnum"
          }
        ]
      },
      "PaymentInterfacesPaymentMethodEnum": {
        "enum": [
          "alipay_cn",
          "alipay_hk",
          "alma",
          "applepay",
          "bancontact",
          "benefit",
          "bizum",
          "card",
          "dana",
          "eps",
          "gcash",
          "googlepay",
          "ideal",
          "kakaopay",
          "klarna",
          "knet",
          "mbway",
          "mobilepay",
          "multibanco",
          "octopus",
          "p24",
          "paynow",
          "paypal",
          "plaid",
          "qpay",
          "sepa",
          "stcpay",
          "stored_card",
          "tabby",
          "tamara",
          "tng",
          "truemoney",
          "twint",
          "vipps",
          "wechatpay"
        ],
        "type": "string"
      },
      "PaymentInterfacesPaymentMethods": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/PaymentInterfacesPaymentMethodEnum"
        }
      },
      "PaymentInterfacesPhoneNumber": {
        "type": "object",
        "properties": {
          "country_code": {
            "maxLength": 7,
            "minLength": 1,
            "type": "string",
            "description": "The international <a href=\"https://www.checkout.com/docs/resources/codes/country-codes\" target=\"_blank\">country calling code</a>.",
            "example": "+1"
          },
          "number": {
            "maxLength": 25,
            "minLength": 6,
            "type": "string",
            "description": "The phone number.",
            "example": "415 555 2671"
          }
        },
        "description": "A phone number"
      },
      "PaymentInterfacesProcessing": {
        "type": "object",
        "properties": {
          "aft": {
            "type": "boolean",
            "description": "Indicates whether the payment is an [Account Funding Transaction](https://www.checkout.com/docs/payments/manage-payments/account-funding-transactions)"
          },
          "discount_amount": {
            "minimum": 0,
            "type": "number",
            "description": "The discount amount applied to the transaction by the merchant.",
            "example": 0
          },
          "shipping_amount": {
            "minimum": 0,
            "type": "number",
            "description": "The total freight or shipping and handling charges for the transaction.",
            "example": 300
          },
          "tax_amount": {
            "minimum": 0,
            "type": "number",
            "description": "The customer's value-added tax registration number.",
            "example": 3000
          },
          "invoice_id": {
            "maxLength": 127,
            "type": "string",
            "description": "Invoice ID number."
          },
          "brand_name": {
            "maxLength": 127,
            "type": "string",
            "description": "The label that overrides the business name in the PayPal account on the PayPal pages."
          },
          "locale": {
            "maxLength": 10,
            "minLength": 2,
            "pattern": "^[a-z]{2}(?:-[A-Z][a-z]{3})?(?:-(?:[A-Z]{2}))?$",
            "type": "string",
            "description": "The language and region of the customer in ISO 639-2 language code; value consists of language-country.",
            "example": "en-US"
          },
          "partner_customer_risk_data": {
            "type": "object",
            "properties": {
              "key": {
                "type": "string",
                "description": "The key for the pair."
              },
              "value": {
                "type": "string",
                "description": "The value for the pair."
              }
            },
            "description": "An array of key-and-value pairs with merchant-specific data for the transaction."
          },
          "custom_payment_method_ids": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "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": {
            "$ref": "#/components/schemas/PaymentInterfacesProcessingAirlineData"
          },
          "accommodation_data": {
            "$ref": "#/components/schemas/PaymentInterfacesProcessingAccommodationData"
          },
          "order_id": {
            "maxLength": 17,
            "type": "string",
            "description": "The number provided by the cardholder. Purchase order or invoice number may be used.",
            "example": "123456789"
          },
          "surcharge_amount": {
            "minimum": 0,
            "type": "integer",
            "description": "Surcharge amount applied to the transaction in minor units by the merchant.",
            "format": "int64",
            "example": 200
          },
          "duty_amount": {
            "minimum": 0,
            "type": "number",
            "description": "The total charges for any import/export duty included in the transaction.",
            "example": 0
          },
          "shipping_tax_amount": {
            "minimum": 0,
            "type": "number",
            "description": "The tax amount of the freight or shipping and handling charges for the transaction.",
            "example": 100
          },
          "affiliate_id": {
            "maxLength": 15,
            "pattern": "^[a-zA-Z0-9]{1,15}$",
            "type": "string",
            "description": "The unique identifier for Visa-registered ramp providers. \n\nMust only contain alphanumeric characters.\n\nIf you're a Visa-registered ramp provider operating with affiliates, this field is required.\n"
          },
          "affiliate_url": {
            "type": "string",
            "description": "The affiliate URL.\n\nIf you're a Visa-registered ramp provider operating with affiliates, this field is required.\n",
            "example": "www.mycrypto.com"
          },
          "purchase_country": {
            "type": "string",
            "description": "The purchase country of the customer. ISO 3166 alpha-2 purchase country."
          },
          "merchant_initiated_reason": {
            "enum": [
              "Delayed_charge",
              "Resubmission",
              "No_show",
              "Reauthorization"
            ],
            "type": "string",
            "description": "Indicates the reason for a merchant-initiated payment request."
          },
          "campaign_id": {
            "type": "integer",
            "description": "Unique number of the campaign this payment will be running in. Only required for Afterpay campaign invoices."
          },
          "original_order_amount": {
            "minimum": 0,
            "type": "number",
            "description": "The payment for a merchant's order may be split, and the original order price indicates the transaction amount of the entire order.",
            "example": 10
          },
          "receipt_id": {
            "maxLength": 32,
            "type": "string",
            "description": "Merchant receipt ID.",
            "example": "10"
          },
          "merchant_callback_url": {
            "type": "string",
            "description": "A URL which you can use to notify the customer that the order has been created."
          },
          "line_of_business": {
            "type": "string",
            "description": "<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>\nThe line of business that the payment is associated with.\n",
            "example": "Flights"
          },
          "pan_preference": {
            "$ref": "#/components/schemas/PaymentInterfacesPanPreference"
          },
          "provision_network_token": {
            "$ref": "#/components/schemas/PaymentInterfacesProvisionNetworkToken"
          },
          "reconciliation_id": {
            "type": "string",
            "description": "Transaction identifier used to track a payment request",
            "example": "4123495123"
          },
          "aggregator": {
            "$ref": "#/components/schemas/PaymentInterfacesProcessingAggregator"
          }
        },
        "description": "Use the processing object to influence or override the data sent during card processing"
      },
      "PaymentInterfacesProcessingAccommodationData": {
        "type": "array",
        "items": {
          "title": "Accommodation Data",
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "description": "For lodging, contains the lodging name that appears on the storefront/customer receipts. For cruise, contains the ship name booked for the cruise.",
              "example": "The Sea View Hotel"
            },
            "booking_reference": {
              "type": "string",
              "description": "A unique identifier for the booking.",
              "example": "HOTEL123"
            },
            "check_in_date": {
              "type": "string",
              "description": "For lodging, contains the actual or scheduled date the guest checked-in. For cruise, contains the cruise departure date also known as sail date.",
              "format": "date",
              "example": "2023-06-20T00:00:00.0000000"
            },
            "check_out_date": {
              "type": "string",
              "description": "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.",
              "format": "date",
              "example": "2023-06-23T00:00:00.0000000"
            },
            "address": {
              "type": "object",
              "properties": {
                "address_line1": {
                  "type": "string",
                  "description": "The first line of the address.",
                  "example": "123 Beach Road"
                },
                "zip": {
                  "type": "string",
                  "description": "The postal code for the address.",
                  "example": "10001"
                }
              },
              "description": "The address details of the accommodation."
            },
            "state": {
              "type": "string",
              "description": "The state or province of the address country (ISO 3166-2 code of up to two alphanumeric characters).",
              "example": "FL"
            },
            "country": {
              "type": "string",
              "description": "The ISO country code of the address.",
              "example": "USA"
            },
            "city": {
              "type": "string",
              "description": "The address city.",
              "example": "Los Angeles"
            },
            "number_of_rooms": {
              "type": "integer",
              "description": "The total number of rooms booked for the accommodation.",
              "example": 2
            },
            "guests": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "first_name": {
                    "type": "string",
                    "description": "The first name of the guest.",
                    "example": "Jane"
                  },
                  "last_name": {
                    "type": "string",
                    "description": "The last name of the guest.",
                    "example": "Doe"
                  },
                  "date_of_birth": {
                    "type": "string",
                    "description": "The date of birth of the guest.",
                    "format": "date",
                    "example": "1985-07-14T00:00:00.0000000"
                  }
                }
              },
              "description": "Contains information about the guests staying at the accommodation."
            },
            "room": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "rate": {
                    "type": "string",
                    "description": "For lodging, contains the nightly rate for one room. For cruise, contains the total cost of the cruise.",
                    "example": "70"
                  },
                  "number_of_nights_at_room_rate": {
                    "type": "string",
                    "description": "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.",
                    "example": "3"
                  }
                }
              },
              "description": "Contains information about the rooms booked by the customer."
            }
          }
        },
        "description": "Contains information about the accommodation booked by the customer."
      },
      "PaymentInterfacesProcessingAggregator": {
        "title": "Aggregator",
        "type": "object",
        "properties": {
          "sub_merchant_id": {
            "type": "string",
            "description": "ID that you assigned to the sub-entity.",
            "example": "9cf70789ba90123"
          },
          "aggregator_id_visa": {
            "type": "string",
            "description": "Visa identifier of the payment aggregator.",
            "example": "10012345"
          },
          "aggregator_id_mc": {
            "type": "string",
            "description": "Mastercard identifier of the payment aggregator.",
            "example": "00000123456"
          }
        },
        "description": "Contains information about the payment aggregator."
      },
      "PaymentInterfacesProcessingAirlineData": {
        "type": "array",
        "items": {
          "title": "Airline Data",
          "type": "object",
          "properties": {
            "ticket": {
              "type": "object",
              "properties": {
                "number": {
                  "type": "string",
                  "description": "The ticket's unique identifier.",
                  "example": "045-21351455613"
                },
                "issue_date": {
                  "type": "string",
                  "description": "Date the airline ticket was issued.",
                  "format": "date",
                  "example": "2023-05-20T00:00:00.0000000"
                },
                "issuing_carrier_code": {
                  "type": "string",
                  "description": "Carrier code of the ticket issuer.",
                  "example": "AI"
                },
                "travel_package_indicator": {
                  "type": "string",
                  "description": "C = Car rental reservation, A = Airline flight reservation, B = Both car rental and airline flight reservations included, N = Unknown.",
                  "example": "B"
                },
                "travel_agency_name": {
                  "type": "string",
                  "description": "The name of the travel agency.",
                  "example": "World Tours"
                },
                "travel_agency_code": {
                  "type": "string",
                  "description": "The unique identifier from IATA or ARC for the travel agency that issues the ticket.",
                  "example": "01"
                }
              },
              "description": "Contains information about the airline ticket."
            },
            "passenger": {
              "oneOf": [
                {
                  "title": "Array of Passenger Data",
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PaymentInterfacesProcessingAirlinePassengerData"
                  },
                  "description": "Array of passengers on the flight."
                },
                {
                  "$ref": "#/components/schemas/PaymentInterfacesProcessingAirlinePassengerData"
                }
              ],
              "description": "Contains information about the passenger(s) on the flight. PayPal requires a single object."
            },
            "flight_leg_details": {
              "title": "Flight Leg Details",
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "flight_number": {
                    "type": "string",
                    "description": "The flight identifier.",
                    "example": "101"
                  },
                  "carrier_code": {
                    "type": "string",
                    "description": "The IATA 2-letter accounting code (PAX) that identifies the carrier. This field is required if the airline data includes leg details.",
                    "example": "BA"
                  },
                  "class_of_travelling": {
                    "type": "string",
                    "description": "A one-letter travel class identifier. The following are common: F = First class, J = Business class, Y = Economy class, W = Premium economy.",
                    "example": "J"
                  },
                  "departure_airport": {
                    "type": "string",
                    "description": "The IATA three-letter airport code of the departure airport. This field is required if the airline data includes leg details.",
                    "example": "LHR"
                  },
                  "departure_date": {
                    "type": "string",
                    "description": "The date of the scheduled take off.",
                    "format": "date",
                    "example": "2023-06-19T00:00:00.0000000"
                  },
                  "departure_time": {
                    "type": "string",
                    "description": "The time of the scheduled take off.",
                    "example": "15:30"
                  },
                  "arrival_airport": {
                    "type": "string",
                    "description": "The IATA 3-letter airport code of the destination airport. This field is required if the airline data includes leg details.",
                    "example": "LAX"
                  },
                  "stop_over_code": {
                    "type": "string",
                    "description": "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.",
                    "example": "x"
                  },
                  "fare_basis_code": {
                    "type": "string",
                    "description": "The fare basis code, alphanumeric.",
                    "example": "SPRSVR"
                  }
                }
              },
              "description": "Contains information about the flight leg(s) booked by the customer."
            }
          }
        },
        "description": "Contains information about the airline ticket and flights booked by the customer."
      },
      "PaymentInterfacesProcessingAirlinePassengerData": {
        "title": "Single-Object Passenger Data",
        "type": "object",
        "properties": {
          "first_name": {
            "type": "string",
            "description": "The passenger's first name.",
            "example": "John"
          },
          "last_name": {
            "type": "string",
            "description": "The passenger's last name.",
            "example": "White"
          },
          "date_of_birth": {
            "type": "string",
            "description": "The passenger's date of birth.",
            "format": "date",
            "example": "1990-05-26T00:00:00.0000000"
          },
          "address": {
            "type": "object",
            "properties": {
              "country": {
                "type": "string",
                "description": "The two-letter ISO country code of the passenger's country residence.",
                "example": "US"
              }
            },
            "description": "Contains information about the passenger's address."
          }
        },
        "description": "Contains information about a passenger on the flight."
      },
      "PaymentInterfacesProcessingBase": {
        "type": "object",
        "properties": {
          "pan_preference": {
            "$ref": "#/components/schemas/PaymentInterfacesPanPreference"
          },
          "provision_network_token": {
            "$ref": "#/components/schemas/PaymentInterfacesProvisionNetworkToken"
          }
        },
        "description": "Use the processing object to influence or override the data sent during card processing"
      },
      "PaymentInterfacesProducts": {
        "maxItems": 1000,
        "minItems": 1,
        "type": "array",
        "items": {
          "required": [
            "name",
            "quantity",
            "price"
          ],
          "type": "object",
          "properties": {
            "reference": {
              "maxLength": 255,
              "type": "string",
              "description": "The item reference or product stock keeping unit (SKU)."
            },
            "url": {
              "maxLength": 1024,
              "type": "string",
              "description": "Link to the line item's product page.",
              "example": "https://example.com/products/gold-necklace"
            },
            "name": {
              "maxLength": 255,
              "type": "string",
              "description": "The descriptive name of the line item.",
              "example": "Gold Necklace"
            },
            "quantity": {
              "minimum": 1,
              "type": "integer",
              "description": "The number of line items.",
              "example": 1
            },
            "price": {
              "minimum": 0,
              "type": "integer",
              "description": "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>.\n",
              "example": 1000
            }
          },
          "additionalProperties": false
        },
        "description": "Contains details about the products in the order."
      },
      "PaymentInterfacesProvisionNetworkToken": {
        "type": "boolean",
        "description": "Indicates whether to provision a network token for the payment.",
        "default": true,
        "example": true
      },
      "PaymentInterfacesRecipient": {
        "type": "object",
        "properties": {
          "dob": {
            "maxLength": 10,
            "type": "string",
            "description": "The recipient's date of birth, in the format `YYYY-MM-DD`.",
            "format": "date",
            "example": "1985-05-15T00:00:00.0000000"
          },
          "account_number": {
            "maxLength": 34,
            "type": "string",
            "description": "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.",
            "example": "5555554444"
          },
          "address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "The recipient's address."
          },
          "first_name": {
            "maxLength": 50,
            "type": "string",
            "description": "The recipient's first name.",
            "example": "Jia"
          },
          "last_name": {
            "maxLength": 50,
            "type": "string",
            "description": "The recipient's last name.",
            "example": "Tsang"
          }
        },
        "description": "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>."
      },
      "PaymentInterfacesReference": {
        "maxLength": 50,
        "type": "string",
        "description": "A reference you can use to identify the payment. For example, an order number. \n  - For Amex payments, this must be at most 30 characters.\n  - For Benefit payments, the reference must be a unique alphanumeric value.\n  - For iDEAL payments, the reference is required and must be an alphanumeric value with a 35-character limit.\n",
        "example": "ORD-123A"
      },
      "PaymentInterfacesSender": {
        "type": "object",
        "description": "The sender type. If set to `instrument`, the sender information (name and address) will be retrieved from the payment instrument.",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "individual": "#/components/schemas/01_PaymentInterfacesIndividualSender",
            "corporate": "#/components/schemas/02_PaymentInterfacesCorporateSender",
            "instrument": "#/components/schemas/03_PaymentInterfacesInstrumentSender"
          }
        }
      },
      "01_PaymentInterfacesIndividualSender": {
        "title": "individual",
        "required": [
          "type",
          "first_name",
          "last_name"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "individual"
            ],
            "type": "string",
            "description": "The type of sender",
            "example": "individual"
          },
          "reference": {
            "type": "string",
            "description": "The sender's reference for the payout",
            "example": "8285282045818"
          },
          "first_name": {
            "maxLength": 50,
            "type": "string",
            "description": "The sender's first name",
            "example": "John"
          },
          "last_name": {
            "maxLength": 50,
            "type": "string",
            "description": "The sender's last name",
            "example": "Jones"
          },
          "dob": {
            "maxLength": 10,
            "type": "string",
            "description": "This field is deprecated. Use `date_of_birth` instead.\n\nThe sender's date of birth, in the format `yyyy-mm-dd`.\n",
            "format": "date",
            "example": "1985-05-15T00:00:00.0000000",
            "deprecated": true
          },
          "date_of_birth": {
            "maxLength": 10,
            "type": "string",
            "description": "The sender's date of birth, in the format `yyyy-mm-dd`.",
            "format": "date",
            "example": "1985-05-15T00:00:00.0000000"
          },
          "address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "The sender's address"
          },
          "identification": {
            "type": "object",
            "properties": {
              "type": {
                "enum": [
                  "passport",
                  "driving_licence",
                  "national_id"
                ],
                "type": "string",
                "description": "The type of identification used to identify the sender",
                "example": "driving_licence"
              },
              "number": {
                "type": "string",
                "description": "The identification number",
                "example": "1234"
              },
              "issuing_country": {
                "type": "string",
                "description": "The two-letter ISO country code of the country that issued the identification",
                "example": "GT"
              }
            }
          }
        }
      },
      "02_PaymentInterfacesCorporateSender": {
        "title": "corporate",
        "required": [
          "type",
          "company_name"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "corporate"
            ],
            "type": "string",
            "description": "The type of sender",
            "example": "corporate"
          },
          "reference": {
            "type": "string",
            "description": "The sender's reference for the payout",
            "example": "8285282045818"
          },
          "company_name": {
            "type": "string",
            "description": "The corporate sender's company name."
          },
          "address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "The sender's registered corporate address."
          }
        },
        "description": "Store a previously tokenized instrument."
      },
      "03_PaymentInterfacesInstrumentSender": {
        "title": "instrument",
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "instrument"
            ],
            "type": "string",
            "description": "The type of sender",
            "example": "instrument"
          },
          "reference": {
            "type": "string",
            "description": "The sender's reference for the payout",
            "example": "8285282045818"
          }
        },
        "description": "Store a previously tokenized instrument"
      },
      "IddvAttemptAsset": {
        "required": [
          "type",
          "_links"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "document_front_image",
              "document_back_image"
            ],
            "type": "string",
            "description": "The type of asset."
          },
          "_links": {
            "required": [
              "asset_url"
            ],
            "type": "object",
            "properties": {
              "asset_url": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/IdvHalLink"
                  }
                ]
              }
            }
          }
        }
      },
      "IddvAttemptAssets": {
        "required": [
          "total_count",
          "skip",
          "limit",
          "data",
          "_links"
        ],
        "type": "object",
        "properties": {
          "total_count": {
            "type": "integer",
            "description": "The total number of assets."
          },
          "skip": {
            "type": "integer",
            "description": "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": {
            "type": "integer",
            "description": "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": {
            "minItems": 0,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IddvAttemptAsset"
            },
            "description": "The list of assets for the current page."
          },
          "_links": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IdvSelfLink"
              },
              {
                "$ref": "#/components/schemas/IdvNextLink"
              },
              {
                "$ref": "#/components/schemas/IdvPreviousLink"
              }
            ],
            "description": "The details of links to the previous, current, and next resources.",
            "readOnly": true
          }
        }
      },
      "IddvAttemptId": {
        "pattern": "^datp_\\w+$",
        "type": "string",
        "description": "The unique identifier for the ID document verification attempt.",
        "readOnly": true,
        "example": "datp_tkoi5db4hryu5cei5vwoabraio"
      },
      "IddvAttemptRequest": {
        "required": [
          "document_front"
        ],
        "type": "object",
        "properties": {
          "document_front": {
            "type": "string",
            "description": "The image of the front of the document to upload.",
            "format": "binary"
          },
          "document_back": {
            "type": "string",
            "description": "The image of the back of the document to upload.",
            "format": "binary"
          }
        }
      },
      "IddvAttemptResponse": {
        "required": [
          "id",
          "status",
          "response_codes",
          "_links"
        ],
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/DatedObject"
          }
        ],
        "properties": {
          "id": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/IddvAttemptId"
              }
            ]
          },
          "status": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/IddvAttemptStates"
              }
            ]
          },
          "response_codes": {
            "minItems": 0,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IdvResponseCode"
            },
            "description": "One or more [response codes](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes) that provide more information about the status.",
            "readOnly": true
          },
          "_links": {
            "$ref": "#/components/schemas/IdvSelfLink"
          }
        }
      },
      "IddvAttemptResponseList": {
        "required": [
          "total_count",
          "skip",
          "limit",
          "_links",
          "data"
        ],
        "type": "object",
        "properties": {
          "total_count": {
            "type": "integer",
            "description": "The total number of attempts."
          },
          "skip": {
            "type": "integer",
            "description": "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": {
            "type": "integer",
            "description": "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": {
            "minItems": 0,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IddvAttemptResponse"
            },
            "description": "The details of the attempt."
          },
          "_links": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IdvSelfLink"
              },
              {
                "$ref": "#/components/schemas/IdvNextLink"
              },
              {
                "$ref": "#/components/schemas/IdvPreviousLink"
              }
            ],
            "description": "The details of links to the previous, current, and next resources.",
            "readOnly": true
          }
        }
      },
      "IddvAttemptStates": {
        "enum": [
          "checks_in_progress",
          "checks_inconclusive",
          "completed",
          "quality_checks_aborted",
          "quality_checks_in_progress",
          "terminated"
        ],
        "type": "string",
        "description": "The [status](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Attempt_statuses) of the ID document verification attempt."
      },
      "IddvIdDocumentVerification": {
        "required": [
          "id"
        ],
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/DatedObject"
          },
          {
            "$ref": "#/components/schemas/IddvIdDocumentVerificationBase"
          }
        ],
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IddvIdDocumentVerificationId"
              }
            ],
            "readOnly": true
          }
        }
      },
      "IddvIdDocumentVerificationBase": {
        "required": [
          "applicant_id",
          "user_journey_id"
        ],
        "type": "object",
        "properties": {
          "applicant_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ApplicantId"
              }
            ]
          },
          "user_journey_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IdvUserJourneyId"
              }
            ]
          },
          "declared_data": {
            "$ref": "#/components/schemas/IdvDeclaredData"
          }
        }
      },
      "IddvIdDocumentVerificationCreateBase": {
        "required": [
          "status",
          "_links",
          "applicant_id",
          "response_codes"
        ],
        "type": "object",
        "properties": {
          "applicant_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ApplicantId"
              }
            ]
          },
          "user_journey_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IdvUserJourneyId"
              }
            ]
          },
          "status": {
            "$ref": "#/components/schemas/IddvVerificationStatuses"
          },
          "declared_data": {
            "$ref": "#/components/schemas/IdvDeclaredData"
          },
          "document": {
            "$ref": "#/components/schemas/IdvDocument"
          },
          "response_codes": {
            "$ref": "#/components/schemas/IdvResponseCodes"
          },
          "_links": {
            "$ref": "#/components/schemas/IdvIdentityVerificationLinks"
          }
        }
      },
      "IddvIdDocumentVerificationId": {
        "pattern": "^iddv_\\w+$",
        "type": "string",
        "description": "The ID document verification's unique identifier.",
        "readOnly": true,
        "example": "iddv_tkoi5db4hryu5cei5vwoabr7we"
      },
      "IddvIdDocumentVerificationOutput": {
        "required": [
          "id"
        ],
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/DatedObject"
          },
          {
            "$ref": "#/components/schemas/IddvIdDocumentVerificationCreateBase"
          }
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/IddvIdDocumentVerificationId"
          }
        }
      },
      "IddvVerificationStatuses": {
        "enum": [
          "created",
          "quality_checks_in_progress",
          "checks_in_progress",
          "approved",
          "declined",
          "retry_required",
          "inconclusive"
        ],
        "type": "string",
        "description": "The ID document [verification status](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Check_statuses)."
      },
      "IdvActiveLink": {
        "required": [
          "verification_url"
        ],
        "type": "object",
        "properties": {
          "verification_url": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IdvHalLink"
              }
            ],
            "description": "The attempt URL."
          }
        }
      },
      "IdvAddress": {
        "type": "object",
        "properties": {
          "address_line1": {
            "maxLength": 250,
            "type": "string",
            "description": "The first line of the address.",
            "example": "123 Main Street"
          },
          "address_line2": {
            "maxLength": 250,
            "type": "string",
            "description": "The second line of the address.",
            "example": "Apt 4B"
          },
          "city": {
            "maxLength": 50,
            "type": "string",
            "description": "The city or town.",
            "example": "London"
          },
          "state": {
            "maxLength": 50,
            "type": "string",
            "description": "The state, county, or province.",
            "example": "Greater London"
          },
          "zip": {
            "maxLength": 50,
            "type": "string",
            "description": "The postal or ZIP code.",
            "example": "SW1A 1AA"
          },
          "country": {
            "maxLength": 2,
            "type": "string",
            "description": "The two-letter <a href=\"https://www.checkout.com/docs/developer-resources/codes/country-codes\" target=\"_blank\">ISO country code</a> of the address.",
            "example": "GB"
          }
        },
        "description": "The applicant's address."
      },
      "IdvApplicant": {
        "required": [
          "id"
        ],
        "allOf": [
          {
            "$ref": "#/components/schemas/DatedObject"
          },
          {
            "$ref": "#/components/schemas/IdvBaseApplicant"
          },
          {
            "$ref": "#/components/schemas/IdvApplicantLinks"
          }
        ],
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ApplicantId"
              }
            ],
            "readOnly": true
          }
        }
      },
      "IdvApplicantLink": {
        "required": [
          "applicant"
        ],
        "type": "object",
        "properties": {
          "applicant": {
            "$ref": "#/components/schemas/IdvHalLink"
          }
        },
        "description": "The URL to the applicant's profile."
      },
      "IdvApplicantLinks": {
        "required": [
          "_links"
        ],
        "type": "object",
        "properties": {
          "_links": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IdvSelfLink"
              }
            ],
            "readOnly": true
          }
        }
      },
      "IdvApplicantSessionInformation": {
        "title": "ApplicantSessionInformation",
        "type": "object",
        "properties": {
          "ip_address": {
            "type": "string",
            "description": "The applicant's IP address during the attempt.",
            "example": "123:456:789:00"
          },
          "number_of_sessions": {
            "type": "integer",
            "description": "The number of sessions the applicant opened during the attempt.",
            "readOnly": true,
            "example": 3
          },
          "user_agent": {
            "type": "string",
            "description": "The user agent of the browser the applicant used during the attempt.",
            "readOnly": true,
            "example": "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": {
            "$ref": "#/components/schemas/IdvInitialDevices"
          },
          "selected_documents": {
            "minItems": 0,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IdvSelectedDocument"
            },
            "description": "The documents the applicant selected in order.",
            "readOnly": true
          }
        },
        "description": "The details of the attempt."
      },
      "IdvAttemptAsset": {
        "required": [
          "type",
          "_links"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "face_image",
              "face_video",
              "document_front_image",
              "document_back_image",
              "document_front_video",
              "document_back_video",
              "document_signature_image",
              "secondary_document_front_image",
              "secondary_document_back_image",
              "secondary_document_front_video",
              "secondary_document_back_video",
              "secondary_document_signature_image"
            ],
            "type": "string",
            "description": "The type of asset."
          },
          "_links": {
            "required": [
              "asset_url"
            ],
            "type": "object",
            "properties": {
              "asset_url": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/IdvHalLink"
                  }
                ]
              }
            }
          }
        }
      },
      "IdvAttemptAssets": {
        "required": [
          "total_count",
          "skip",
          "limit",
          "data",
          "_links"
        ],
        "type": "object",
        "properties": {
          "total_count": {
            "type": "integer",
            "description": "The total number of assets."
          },
          "skip": {
            "type": "integer",
            "description": "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": {
            "type": "integer",
            "description": "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": {
            "minItems": 0,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IdvAttemptAsset"
            },
            "description": "The list of assets for the current page."
          },
          "_links": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IdvSelfLink"
              },
              {
                "$ref": "#/components/schemas/IdvNextLink"
              },
              {
                "$ref": "#/components/schemas/IdvPreviousLink"
              }
            ],
            "description": "The details of links to the previous, current, and next resources.",
            "readOnly": true
          }
        }
      },
      "IdvAttemptId": {
        "pattern": "^iatp_\\w+$",
        "type": "string",
        "description": "The unique identifier for the attempt.",
        "readOnly": true,
        "example": "iatp_tkoi5db4hryu5cei5vwoabraio"
      },
      "IdvAttemptLinks": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/IdvSelfLink"
          },
          {
            "$ref": "#/components/schemas/IdvActiveLink"
          }
        ]
      },
      "IdvAttemptRequest": {
        "required": [
          "redirect_url"
        ],
        "type": "object",
        "properties": {
          "redirect_url": {
            "type": "string",
            "description": "The URL to redirect the applicant to after the attempt.",
            "format": "uri"
          },
          "phone_number": {
            "$ref": "#/components/schemas/IdvPhoneNumber"
          },
          "client_information": {
            "$ref": "#/components/schemas/IdvClientInformation"
          }
        }
      },
      "IdvAttemptResponse": {
        "required": [
          "redirect_url",
          "id",
          "status",
          "created_on",
          "modified_on",
          "response_codes",
          "applicant_session_information"
        ],
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/DatedObject"
          }
        ],
        "properties": {
          "id": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/IdvAttemptId"
              }
            ]
          },
          "redirect_url": {
            "type": "string",
            "description": "The URL to redirect the applicant to after the attempt."
          },
          "status": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/IdvAttemptStatuses"
              }
            ]
          },
          "response_codes": {
            "minItems": 0,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IdvResponseCode"
            },
            "description": "One or more [response codes](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes) that provide more information about the status.",
            "readOnly": true
          },
          "phone_number": {
            "$ref": "#/components/schemas/IdvPhoneNumber"
          },
          "client_information": {
            "$ref": "#/components/schemas/IdvClientInformation"
          },
          "applicant_session_information": {
            "$ref": "#/components/schemas/IdvApplicantSessionInformation"
          }
        }
      },
      "IdvAttemptResponseList": {
        "required": [
          "total_count",
          "skip",
          "limit",
          "_links",
          "data"
        ],
        "type": "object",
        "properties": {
          "total_count": {
            "type": "integer",
            "description": "The total number of attempts."
          },
          "skip": {
            "type": "integer",
            "description": "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": {
            "type": "integer",
            "description": "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": {
            "minItems": 0,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IdvAttemptResponse"
            },
            "description": "The details of the attempt."
          },
          "_links": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IdvSelfLink"
              },
              {
                "$ref": "#/components/schemas/IdvNextLink"
              },
              {
                "$ref": "#/components/schemas/IdvPreviousLink"
              }
            ],
            "description": "The details of links to the previous, current, and next resources.",
            "readOnly": true
          }
        }
      },
      "IdvAttemptStatuses": {
        "enum": [
          "capture_aborted",
          "capture_in_progress",
          "checks_inconclusive",
          "checks_in_progress",
          "completed",
          "expired",
          "pending_redirection",
          "capture_refused",
          "terminated"
        ],
        "type": "string",
        "description": "The [attempt status](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Attempt_statuses).",
        "readOnly": true
      },
      "IdvBaseApplicant": {
        "type": "object",
        "properties": {
          "external_applicant_id": {
            "pattern": "^ext_\\w+$",
            "type": "string",
            "description": "Your reference for the applicant.",
            "example": "ext_osdfdfdb4hryu5cei5vwoabrk5k"
          },
          "email": {
            "type": "string",
            "description": "The applicant's email address.",
            "format": "email",
            "example": "hannah.bret@example.com"
          },
          "external_applicant_name": {
            "maxLength": 255,
            "type": "string",
            "description": "The applicant's full name.",
            "example": "Hannah Bret"
          }
        }
      },
      "IdvCertification": {
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "diatf"
            ],
            "type": "string",
            "description": "The certification type."
          },
          "data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IdvDiatfCertificationData"
              }
            ],
            "description": "The certification data. The properties returned depend on the certification `type`."
          }
        },
        "description": "The details of a certification associated with the identity verification.",
        "readOnly": true
      },
      "IdvCertifications": {
        "minItems": 0,
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/IdvCertification"
        },
        "description": "The certifications associated with the identity verification.",
        "readOnly": true
      },
      "IdvClientInformation": {
        "title": "ClientInformation",
        "type": "object",
        "properties": {
          "pre_selected_residence_country": {
            "pattern": "^[A-Z]{2}",
            "type": "string",
            "description": "The applicant's residence country. <br/>Standard – [ISO alpha-2 country code](/developer-resources/codes/country-codes) <br/>Example – `FR`",
            "example": "FR"
          },
          "pre_selected_document_issuing_country": {
            "pattern": "^[A-Z]{2}",
            "type": "string",
            "description": "The country that issued the applicant's identity document. <br/>Standard – [ISO alpha-2 country code](/developer-resources/codes/country-codes) <br/>Example – `FR`",
            "example": "FR"
          },
          "pre_selected_document_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IdvDocumentTypes"
              }
            ],
            "description": "The type of identity document the applicant uses for the attempt."
          },
          "pre_selected_language": {
            "type": "string",
            "description": "The language you want to use for the user interface. <br/>Format – IETF BCP 47 language tag",
            "format": "IETF BCP 47 language tag",
            "example": "en-US"
          }
        },
        "description": "The applicant's details."
      },
      "IdvCountryCode": {
        "pattern": "^[A-Za-z]{2}$",
        "type": "string",
        "description": "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`",
        "format": "ISO 3166-1 alpha-2",
        "example": "US"
      },
      "IdvDeclaredData": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 255,
            "minLength": 2,
            "type": "string",
            "description": "The applicant's name.",
            "example": "Hannah Bret"
          },
          "birth_date": {
            "type": "string",
            "description": "The applicant's birth date. <br/>Format – `YYYY-MM-DD`",
            "format": "date",
            "example": "1994-10-15T00:00:00.0000000"
          }
        },
        "description": "The personal details provided by the applicant."
      },
      "IdvDiatfCertificationData": {
        "type": "object",
        "properties": {
          "gpg45_profile": {
            "enum": [
              "M1A",
              "M1C",
              "H1A"
            ],
            "type": "string",
            "description": "The GPG 45 identity profile the verification meets."
          },
          "level_of_confidence": {
            "enum": [
              "medium",
              "high"
            ],
            "type": "string",
            "description": "The level of confidence in the verified identity."
          },
          "right_to_work": {
            "type": "string",
            "description": "The outcome of the applicant's right to work check.",
            "example": "GRANTED"
          }
        },
        "description": "The certification data returned for the `diatf` certification type.",
        "readOnly": true
      },
      "IdvDocument": {
        "required": [
          "document_type",
          "document_issuing_country",
          "front_image_signed_url"
        ],
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/IdvIdentity"
          },
          {
            "properties": {
              "personal_number": {
                "maxLength": 255,
                "type": "string",
                "description": "The applicant's personal number. This depends on the document type."
              },
              "tax_identification_number": {
                "maxLength": 255,
                "type": "string",
                "description": "The tax identification number (TIN) extracted from the document."
              },
              "document_type": {
                "$ref": "#/components/schemas/IdvDocumentTypes"
              },
              "document_issuing_country": {
                "$ref": "#/components/schemas/IdvCountryCode"
              },
              "document_number": {
                "maxLength": 255,
                "type": "string",
                "description": "The document number extracted from the document."
              },
              "document_expiry_date": {
                "type": "string",
                "description": "The document expiry date extracted from the document.",
                "format": "date"
              },
              "document_issue_date": {
                "type": "string",
                "description": "The document issue date extracted from the document.",
                "format": "date"
              },
              "document_issue_place": {
                "maxLength": 255,
                "type": "string",
                "description": "The document's place of issue extracted from the document."
              },
              "document_mrz": {
                "pattern": "^([A-Z0-9<]{2}[A-Z0-9<]{1,38}[\\n\\r])+([A-Z0-9<]{2}[A-Z0-9<]{1,44}[\\n\\r])?([A-Z0-9<]{2}[A-Z0-9<]{1,44}[\\n\\r])?$",
                "type": "string",
                "description": "The machine-readable zone (MRZ) data extracted from the document."
              },
              "address": {
                "maxLength": 1000,
                "type": "string",
                "description": "The address extracted from the document.",
                "example": "123 Main Street, London, SW1A 1AA"
              },
              "permit_obtaining_date": {
                "type": "string",
                "description": "The date the residence permit was obtained, extracted from the document.",
                "format": "date"
              },
              "permit_expiry_date": {
                "type": "string",
                "description": "The residence permit expiry date extracted from the document.",
                "format": "date"
              },
              "permit_type_detailed": {
                "maxLength": 255,
                "type": "string",
                "description": "The detailed residence permit type extracted from the document."
              },
              "permit_type_remarks": {
                "maxLength": 255,
                "type": "string",
                "description": "The residence permit remarks extracted from the document."
              },
              "front_image_signed_url": {
                "$ref": "#/components/schemas/IdvPreSignedUrl"
              },
              "back_image_signed_url": {
                "$ref": "#/components/schemas/IdvPreSignedUrl"
              },
              "signature_image_signed_url": {
                "$ref": "#/components/schemas/IdvPreSignedUrl"
              }
            }
          }
        ],
        "description": "The applicant's identity document details.",
        "readOnly": true
      },
      "IdvDocumentList": {
        "maxItems": 2,
        "minItems": 0,
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/IdvDocument"
        },
        "description": "The details of the applicant's identity documents.",
        "readOnly": true
      },
      "IdvDocumentTypes": {
        "enum": [
          "Driving licence",
          "ID",
          "Other",
          "Passport",
          "Residence Permit",
          "Travel Document",
          "Visa"
        ],
        "type": "string",
        "description": "The type of identity document."
      },
      "IdvDomesticPhoneNumber": {
        "pattern": "^\\d{1,14}$",
        "type": "string",
        "description": "The applicant's mobile number, without the country code.",
        "example": "5555550102"
      },
      "IdvFace": {
        "required": [
          "image_signed_url"
        ],
        "type": "object",
        "properties": {
          "image_signed_url": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IdvPreSignedUrl"
              }
            ],
            "description": "The URL to the face image."
          }
        },
        "description": "The details of the image of the applicant's face extracted from the video.",
        "readOnly": true
      },
      "IdvGender": {
        "enum": [
          "M",
          "F"
        ],
        "type": "string",
        "description": "The applicant's gender."
      },
      "IdvHalLink": {
        "required": [
          "href"
        ],
        "type": "object",
        "properties": {
          "href": {
            "type": "string",
            "format": "uri"
          }
        },
        "description": "The URL to the applicant profile resource."
      },
      "IdvIdentity": {
        "required": [
          "full_name",
          "birth_date"
        ],
        "type": "object",
        "properties": {
          "full_name": {
            "maxLength": 510,
            "minLength": 2,
            "type": "string",
            "description": "The applicant's full name.",
            "readOnly": true
          },
          "first_names": {
            "maxLength": 255,
            "minLength": 1,
            "type": "string",
            "description": "The applicant's first names.",
            "readOnly": true
          },
          "last_name": {
            "maxLength": 255,
            "minLength": 1,
            "type": "string",
            "description": "The applicant's last name.",
            "readOnly": true
          },
          "last_name_at_birth": {
            "maxLength": 255,
            "minLength": 1,
            "type": "string",
            "description": "The applicant's last name at birth.",
            "readOnly": true
          },
          "birth_date": {
            "type": "string",
            "description": "The applicant's birth date. <br/>Format `YYYY-MM-DD`",
            "format": "date",
            "readOnly": true
          },
          "birth_place": {
            "maxLength": 255,
            "minLength": 1,
            "type": "string",
            "description": "The applicant's birth place.",
            "readOnly": true
          },
          "nationality": {
            "$ref": "#/components/schemas/IdvCountryCode"
          },
          "gender": {
            "$ref": "#/components/schemas/IdvGender"
          }
        },
        "description": "The details of the applicant's verified identity.",
        "readOnly": true
      },
      "IdvIdentityDeclaredData": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/IdvDeclaredData"
          },
          {
            "properties": {
              "phone_number": {
                "$ref": "#/components/schemas/IdvPhoneNumber"
              },
              "email": {
                "type": "string",
                "description": "The applicant's email address.",
                "format": "email",
                "nullable": true,
                "example": "hannah.bret@example.com"
              },
              "address": {
                "$ref": "#/components/schemas/IdvAddress"
              }
            }
          }
        ],
        "description": "The personal details provided by the applicant."
      },
      "IdvIdentityVerification": {
        "required": [
          "id"
        ],
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/DatedObject"
          },
          {
            "$ref": "#/components/schemas/IdvIdentityVerificationBase"
          }
        ],
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IdvIdentityVerificationId"
              }
            ],
            "readOnly": true
          }
        }
      },
      "IdvIdentityVerificationBase": {
        "required": [
          "applicant_id",
          "declared_data",
          "response_codes",
          "risk_labels",
          "status",
          "_links"
        ],
        "type": "object",
        "properties": {
          "applicant_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ApplicantId"
              }
            ]
          },
          "user_journey_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IdvUserJourneyId"
              }
            ]
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IdvVerificationStatuses"
              }
            ],
            "readOnly": true
          },
          "response_codes": {
            "$ref": "#/components/schemas/IdvResponseCodes"
          },
          "risk_labels": {
            "$ref": "#/components/schemas/IdvRiskLabels"
          },
          "verified_identity": {
            "$ref": "#/components/schemas/IdvVerifiedIdentity"
          },
          "certifications": {
            "$ref": "#/components/schemas/IdvCertifications"
          },
          "verification_policy_version": {
            "type": "string",
            "description": "The version of the verification policy applied. Only returned for certified verifications.",
            "readOnly": true
          },
          "declared_data": {
            "$ref": "#/components/schemas/IdvIdentityDeclaredData"
          },
          "documents": {
            "$ref": "#/components/schemas/IdvDocumentList"
          },
          "face": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IdvFace"
              }
            ],
            "readOnly": true
          },
          "_links": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IdvIdentityVerificationLinks"
              }
            ],
            "readOnly": true
          }
        }
      },
      "IdvIdentityVerificationCreateBase": {
        "required": [
          "declared_data",
          "response_codes",
          "risk_labels",
          "status",
          "_links",
          "applicant_id"
        ],
        "type": "object",
        "properties": {
          "applicant_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ApplicantId"
              }
            ]
          },
          "user_journey_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IdvUserJourneyId"
              }
            ]
          },
          "status": {
            "$ref": "#/components/schemas/IdvVerificationStatuses"
          },
          "declared_data": {
            "$ref": "#/components/schemas/IdvIdentityDeclaredData"
          },
          "documents": {
            "$ref": "#/components/schemas/IdvDocumentList"
          },
          "face": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IdvFace"
              }
            ],
            "readOnly": true
          },
          "response_codes": {
            "$ref": "#/components/schemas/IdvResponseCodes"
          },
          "risk_labels": {
            "$ref": "#/components/schemas/IdvRiskLabels"
          },
          "verified_identity": {
            "$ref": "#/components/schemas/IdvVerifiedIdentity"
          },
          "certifications": {
            "$ref": "#/components/schemas/IdvCertifications"
          },
          "verification_policy_version": {
            "type": "string",
            "description": "The version of the verification policy applied. Only returned for certified verifications.",
            "readOnly": true
          },
          "_links": {
            "$ref": "#/components/schemas/IdvIdentityVerificationLinks"
          }
        }
      },
      "IdvIdentityVerificationError": {
        "required": [
          "error_type",
          "error_codes"
        ],
        "type": "object",
        "properties": {
          "error_type": {
            "enum": [
              "unprocessable_entity",
              "request_invalid"
            ],
            "type": "string",
            "description": "The type of error."
          },
          "error_codes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The error codes."
          }
        }
      },
      "IdvIdentityVerificationHelper": {
        "required": [
          "id"
        ],
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/DatedObject"
          },
          {
            "$ref": "#/components/schemas/IdvIdentityVerificationHelperBase"
          }
        ],
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IdvIdentityVerificationId"
              }
            ],
            "readOnly": true
          }
        }
      },
      "IdvIdentityVerificationHelperBase": {
        "required": [
          "declared_data",
          "status",
          "redirect_url",
          "response_codes",
          "risk_labels",
          "_links"
        ],
        "type": "object",
        "properties": {
          "user_journey_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IdvUserJourneyId"
              }
            ]
          },
          "applicant_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ApplicantId"
              }
            ]
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IdvVerificationStatuses"
              }
            ],
            "readOnly": true
          },
          "response_codes": {
            "$ref": "#/components/schemas/IdvResponseCodes"
          },
          "risk_labels": {
            "$ref": "#/components/schemas/IdvRiskLabels"
          },
          "verified_identity": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IdvIdentity"
              }
            ],
            "readOnly": true
          },
          "certifications": {
            "$ref": "#/components/schemas/IdvCertifications"
          },
          "verification_policy_version": {
            "type": "string",
            "description": "The version of the verification policy applied. Only returned for certified verifications.",
            "readOnly": true
          },
          "declared_data": {
            "$ref": "#/components/schemas/IdvIdentityDeclaredData"
          },
          "documents": {
            "$ref": "#/components/schemas/IdvDocumentList"
          },
          "face": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IdvFace"
              }
            ],
            "readOnly": true
          },
          "redirect_url": {
            "type": "string",
            "description": "The URL to redirect the applicant to after the attempt.",
            "format": "uri"
          },
          "_links": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IdvIdentityVerificationHelperLinks"
              }
            ],
            "readOnly": true
          }
        }
      },
      "IdvIdentityVerificationHelperLinks": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/IdvSelfLink"
          },
          {
            "$ref": "#/components/schemas/IdvActiveLink"
          }
        ],
        "description": "The details of links related to the resource."
      },
      "IdvIdentityVerificationId": {
        "pattern": "^idv_\\w+$",
        "type": "string",
        "description": "The identity verification's unique identifier.",
        "readOnly": true,
        "example": "idv_tkoi5db4hryu5cei5vwoabr7we"
      },
      "IdvIdentityVerificationLinks": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/IdvSelfLink"
          },
          {
            "$ref": "#/components/schemas/IdvApplicantLink"
          }
        ],
        "description": "The details of links related to the resource."
      },
      "IdvIdentityVerificationOutput": {
        "required": [
          "id"
        ],
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/DatedObject"
          },
          {
            "$ref": "#/components/schemas/IdvIdentityVerificationCreateBase"
          }
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/IdvIdentityVerificationId"
          }
        }
      },
      "IdvInitialDevices": {
        "enum": [
          "desktop",
          "mobile"
        ],
        "type": "string",
        "description": "The type of device the applicant used to start the attempt.",
        "readOnly": true
      },
      "IdvNextLink": {
        "required": [
          "next"
        ],
        "type": "object",
        "properties": {
          "next": {
            "$ref": "#/components/schemas/IdvHalLink"
          }
        },
        "readOnly": true
      },
      "IdvPdf": {
        "required": [
          "pdf_report"
        ],
        "type": "object",
        "properties": {
          "pdf_report": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IdvPreSignedUrl"
              }
            ],
            "description": "The pre-signed URL to the PDF report."
          }
        },
        "readOnly": true
      },
      "IdvPhoneNumber": {
        "required": [
          "country_code",
          "number"
        ],
        "type": "object",
        "properties": {
          "country_code": {
            "$ref": "#/components/schemas/IdvPhonePrefix"
          },
          "number": {
            "$ref": "#/components/schemas/IdvDomesticPhoneNumber"
          }
        },
        "description": "The applicant's mobile phone number, if sharing the attempt URL via SMS."
      },
      "IdvPhonePrefix": {
        "pattern": "^\\+(\\d+)$",
        "type": "string",
        "description": "The international [phone country code](https://www.checkout.com/docs/resources/codes/country-codes).",
        "example": "+33"
      },
      "IdvPreSignedUrl": {
        "type": "string",
        "description": "The pre-signed URL to the captured image of the document.",
        "format": "uri",
        "example": "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"
      },
      "IdvPreviousLink": {
        "required": [
          "previous"
        ],
        "type": "object",
        "properties": {
          "previous": {
            "$ref": "#/components/schemas/IdvHalLink"
          }
        },
        "readOnly": true
      },
      "IdvResponseCode": {
        "required": [
          "code",
          "summary"
        ],
        "type": "object",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/IdvResponseCodeCode"
          },
          "summary": {
            "$ref": "#/components/schemas/IdvResponseCodeSummary"
          }
        },
        "description": "The [response code](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes) that provides more information about the identity verification status.",
        "readOnly": true
      },
      "IdvResponseCodeCode": {
        "maximum": 69999,
        "minimum": 10000,
        "type": "integer",
        "description": "The [response code](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes).",
        "readOnly": true
      },
      "IdvResponseCodes": {
        "minItems": 0,
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/IdvResponseCode"
        },
        "description": "One or more [response codes](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes) that provide more information about the status.",
        "readOnly": true
      },
      "IdvResponseCodeSummary": {
        "type": "string",
        "description": "The description of the [response code](https://www.checkout.com/docs/developer-resources/codes/identities-codes#Response_codes).",
        "readOnly": true,
        "example": "document_front_not_captured"
      },
      "IdvRiskLabel": {
        "enum": [
          "multiple_faces_detected",
          "mcc_not_confident",
          "risky_document_format"
        ],
        "type": "string",
        "description": "A code that provides more information about a risk associated with the verification.",
        "readOnly": true
      },
      "IdvRiskLabels": {
        "minItems": 0,
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/IdvRiskLabel"
        },
        "description": "One or more codes that provide more information about risks associated with the verification.",
        "readOnly": true
      },
      "IdvSelectedDocument": {
        "type": "object",
        "properties": {
          "country": {
            "$ref": "#/components/schemas/IdvCountryCode"
          },
          "document_type": {
            "$ref": "#/components/schemas/IdvDocumentTypes"
          }
        },
        "description": "The details of the document the applicant selected.",
        "readOnly": true
      },
      "IdvSelfLink": {
        "required": [
          "self"
        ],
        "type": "object",
        "properties": {
          "self": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IdvHalLink"
              }
            ],
            "description": "The URL to the resource."
          }
        },
        "description": "The details of links related to the resource.",
        "readOnly": true
      },
      "IdvUserJourneyId": {
        "pattern": "^usj_[a-z2-7]{26}$",
        "type": "string",
        "description": "Your configuration ID.",
        "readOnly": true,
        "example": "usj_tkoi5db4hryu5cei5vwoabr7we"
      },
      "IdvVerificationStatuses": {
        "enum": [
          "approved",
          "capture_in_progress",
          "checks_in_progress",
          "created",
          "declined",
          "inconclusive",
          "pending",
          "refused",
          "retry_required"
        ],
        "type": "string",
        "description": "The [verification status](https://www.checkout.com/docs/developer-resources/codes/identities-codes).",
        "readOnly": true
      },
      "IdvVerifiedIdentity": {
        "allOf": [
          {
            "$ref": "#/components/schemas/IdvIdentity"
          }
        ],
        "description": "The details of the applicant's verified identity.",
        "readOnly": true
      },
      "AccountHolder": {
        "required": [
          "type"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/01_PayoutRequestIndividualAccountHolder"
          },
          {
            "$ref": "#/components/schemas/03_PayoutRequestGovernmentAccountHolder"
          },
          {
            "$ref": "#/components/schemas/02_PayoutRequestCorporateAccountHolder"
          }
        ],
        "description": "The bank account holder details. Having accurate and complete data improves payout performance (increases success rate and the prevents delays).",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "individual": "#/components/schemas/01_PayoutRequestIndividualAccountHolder",
            "government": "#/components/schemas/03_PayoutRequestGovernmentAccountHolder",
            "corporate": "#/components/schemas/02_PayoutRequestCorporateAccountHolder"
          }
        }
      },
      "AccountHolderAch": {
        "required": [
          "type",
          "first_name",
          "last_name"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "individual",
              "corporate",
              "government"
            ],
            "type": "string",
            "description": "The type of account holder",
            "example": "individual"
          },
          "first_name": {
            "type": "string",
            "description": "The first name of the account holder\n",
            "example": "John"
          },
          "last_name": {
            "type": "string",
            "description": "The last name of the account holder\n",
            "example": "Smith"
          },
          "company_name": {
            "type": "string",
            "description": "The legal name of a registered company that holds the account\n",
            "example": "Test company"
          },
          "billing_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "The account holder's billing address."
          },
          "date_of_birth": {
            "type": "string",
            "description": "The account holder's date of birth."
          },
          "identification": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "description": "The document type",
                "example": "SSN"
              },
              "issuing_country": {
                "type": "string",
                "description": "The country where the document was issued"
              },
              "number": {
                "type": "string",
                "description": "The document number"
              }
            },
            "description": "The account holder's government document identification. For example, the social security number (SSN)."
          }
        },
        "description": "The account holder details"
      },
      "AccountHolderEps": {
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object",
        "properties": {
          "first_name": {
            "type": "string",
            "description": "The first name of the account holder",
            "example": "John"
          },
          "last_name": {
            "type": "string",
            "description": "The last name of the account holder",
            "example": "Smith"
          }
        },
        "description": "The account holder details"
      },
      "AccountHolderIdentification": {
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "passport",
              "driving_licence",
              "national_id",
              "company_registration",
              "tax_id"
            ],
            "type": "string",
            "description": "The type of identification used to identify the account holder",
            "example": "passport"
          },
          "number": {
            "type": "string",
            "description": "The identification number",
            "example": "09876"
          },
          "issuing_country": {
            "type": "string",
            "description": "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",
            "example": "US"
          }
        },
        "description": "Bank account holder's proof of identification"
      },
      "AccountHolderResponse": {
        "type": "object",
        "properties": {
          "first_name": {
            "type": "string",
            "description": "The account holder's first name.\n",
            "example": "Hannah"
          },
          "last_name": {
            "type": "string",
            "description": "The account holder's last name.\n",
            "example": "Bret"
          },
          "billing_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "The account holder's billing address."
          },
          "phone": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PhoneNumber"
              }
            ],
            "description": "The account holder's phone number."
          }
        },
        "description": "The account holder details"
      },
      "BankDetails": {
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 128,
            "type": "string",
            "description": "The bank's name",
            "example": "Lloyds TSB"
          },
          "branch": {
            "maxLength": 128,
            "type": "string",
            "description": "The bank branch's name",
            "example": "Bournemouth"
          },
          "address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "The bank's contact address"
          }
        },
        "description": "Details of the bank"
      },
      "NetworkToken": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^(nt)_(\\w{26})$",
            "type": "string",
            "description": "The network token's unique identifier.",
            "example": "nt_y3oqhf46pyzuxjbcn2giaqnb44"
          },
          "state": {
            "enum": [
              "active",
              "suspended",
              "inactive"
            ],
            "type": "string",
            "description": "The token status",
            "example": "active"
          }
        },
        "description": "Network token details"
      },
      "ProvisionNetworkToken": {
        "type": "object",
        "properties": {
          "provision": {
            "type": "boolean",
            "description": "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.",
            "example": true
          }
        },
        "description": "Provision network token details"
      },
      "RetrieveInstrumentCustomerResponse": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^(cus)_(\\w{26})$",
            "type": "string",
            "description": "The customer's unique identifier. This can be passed as a source when making a payment.",
            "example": "cus_y3oqhf46pyzuxjbcn2giaqnb44"
          },
          "email": {
            "type": "string",
            "description": "The customer's email address",
            "example": "brucewayne@gmail.com"
          },
          "name": {
            "type": "string",
            "description": "The customer's name",
            "example": "Bruce Wayne"
          },
          "default": {
            "type": "boolean",
            "description": "This will be true if this instrument is set as the default for the customer",
            "example": true
          }
        },
        "description": "Stored customer details"
      },
      "StoreAccountHolderTokenRequest": {
        "type": "object",
        "properties": {
          "first_name": {
            "type": "string",
            "description": "The first name of the account holder\n",
            "example": "John"
          },
          "last_name": {
            "type": "string",
            "description": "The last name of the account holder\n",
            "example": "Smith"
          },
          "billing_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "The billing address of the account holder"
          },
          "phone": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PhoneNumber"
              }
            ],
            "description": "The phone number of the account holder"
          }
        },
        "description": "The account holder details"
      },
      "UpdateCardAccountHolder": {
        "type": "object",
        "properties": {
          "first_name": {
            "type": "string",
            "description": "The first name of the account holder\n",
            "example": "John"
          },
          "last_name": {
            "type": "string",
            "description": "The last name of the account holder\n",
            "example": "Smith"
          },
          "billing_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "The billing address of the account holder"
          },
          "phone": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PhoneNumber"
              }
            ],
            "description": "The phone number of the account holder"
          }
        },
        "description": "The account holder details"
      },
      "RetrieveAchInstrumentResponse": {
        "title": "ach",
        "required": [
          "type",
          "id",
          "fingerprint",
          "created_on",
          "modified_on",
          "vault_id",
          "instrument_data",
          "account_holder"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The underlying instrument type",
            "example": "ach"
          },
          "id": {
            "type": "string",
            "description": "The unique identifier of the payment source or destination that can be used later for payments",
            "example": "src_wmlfc3zyhqzehihu7giusaaawu"
          },
          "fingerprint": {
            "pattern": "^([a-z0-9]{26})$",
            "type": "string",
            "description": "A token that can uniquely identify this instrument across all customers.",
            "example": "vnsdrvikkvre3dtrjjvlm5du4q"
          },
          "created_on": {
            "type": "string",
            "description": "The date and time the instrument was created.",
            "format": "date-time",
            "example": "2021-01-01T00:00:00.0000000+00:00"
          },
          "modified_on": {
            "type": "string",
            "description": "The date and time the instrument was last modified.",
            "format": "date-time",
            "example": "2021-01-01T00:00:00.0000000+00:00"
          },
          "vault_id": {
            "type": "string",
            "description": "The Vault ID currently attached to the instrument.",
            "example": "vid_wmlfc3zyhqzehihu7giusaaawu"
          },
          "instrument_data": {
            "required": [
              "account_type",
              "account_number",
              "bank_code",
              "currency",
              "country"
            ],
            "type": "object",
            "properties": {
              "account_type": {
                "enum": [
                  "savings",
                  "checking"
                ],
                "type": "string",
                "description": "The type of Direct Debit account",
                "example": "savings"
              },
              "account_number": {
                "maxLength": 17,
                "minLength": 4,
                "type": "string",
                "description": "The account number of the Direct Debit account",
                "example": "4099999992"
              },
              "bank_code": {
                "maxLength": 9,
                "minLength": 8,
                "type": "string",
                "description": "The bank code of the Direct Debit account",
                "example": "211370545"
              },
              "currency": {
                "maxLength": 3,
                "minLength": 3,
                "type": "string",
                "description": "The currency of the account",
                "example": "USD"
              },
              "country": {
                "maxLength": 2,
                "minLength": 2,
                "type": "string",
                "description": "The country of the account",
                "example": "US"
              }
            },
            "description": "The details of the bank account"
          },
          "account_holder": {
            "required": [
              "first_name",
              "last_name",
              "company_name",
              "type"
            ],
            "type": "object",
            "properties": {
              "first_name": {
                "type": "string",
                "description": "First name. Required for individual account holder type",
                "example": "John"
              },
              "last_name": {
                "type": "string",
                "description": "Last name. Required for individual account holder type",
                "example": "Smith"
              },
              "company_name": {
                "type": "string",
                "description": "Company name. Required for corporate account holder type",
                "example": "Smith Enterprises"
              },
              "type": {
                "enum": [
                  "individual",
                  "corporate"
                ],
                "type": "string",
                "description": "Account holder type"
              }
            },
            "description": "The account holder details"
          },
          "customer": {
            "$ref": "#/components/schemas/RetrieveInstrumentCustomerResponse"
          }
        },
        "description": "ach instrument response"
      },
      "RetrieveBacsInstrumentResponse": {
        "title": "bacs",
        "required": [
          "type",
          "id",
          "fingerprint",
          "created_on",
          "vault_id"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The underlying instrument type",
            "example": "bacs"
          },
          "id": {
            "type": "string",
            "description": "The unique identifier of the payment source or destination that can be used later for payments",
            "example": "src_wmlfc3zyhqzehihu7giusaaawu"
          },
          "fingerprint": {
            "pattern": "^([a-z0-9]{26})$",
            "type": "string",
            "description": "A token that can uniquely identify this instrument across all customers.",
            "example": "vnsdrvikkvre3dtrjjvlm5du4q"
          },
          "created_on": {
            "type": "string",
            "description": "The date and time the instrument was created.",
            "format": "date-time",
            "example": "2021-01-01T00:00:00.0000000+00:00"
          },
          "vault_id": {
            "type": "string",
            "description": "The Vault ID currently attached to the instrument.",
            "example": "vid_wmlfc3zyhqzehihu7giusaaawu"
          },
          "modified_on": {
            "type": "string",
            "description": "The date and time the instrument was last modified.",
            "format": "date-time",
            "example": "2021-01-01T00:00:00.0000000+00:00"
          },
          "account": {
            "type": "object",
            "properties": {
              "client_id": {
                "type": "string",
                "description": "The ID of the client associated with the instrument.",
                "example": "cli_memowvltf7aulpb3poehtiffei"
              },
              "processing_channel_id": {
                "type": "string",
                "description": "The ID of the processing channel associated with the instrument.",
                "example": "pc_jcs4ufa6hrgepcrvhic4bfspay"
              }
            },
            "description": "The account configuration for the instrument."
          },
          "validations": {
            "type": "array",
            "items": {
              "type": "object"
            },
            "description": "The list of validations performed on the instrument."
          },
          "instrument_data": {
            "required": [
              "country",
              "account_number",
              "bank_code",
              "currency",
              "payment_type"
            ],
            "type": "object",
            "properties": {
              "account_number": {
                "maxLength": 8,
                "minLength": 8,
                "type": "string",
                "description": "The account number of the Bacs Direct Debit account.",
                "example": "86753246"
              },
              "bank_code": {
                "maxLength": 6,
                "minLength": 6,
                "type": "string",
                "description": "The sort code of the Bacs Direct Debit account.",
                "example": "040004"
              },
              "country": {
                "maxLength": 2,
                "minLength": 2,
                "type": "string",
                "description": "The country of the account, as an ISO 3166-1 alpha-2 code.",
                "example": "GB"
              },
              "currency": {
                "maxLength": 3,
                "minLength": 3,
                "type": "string",
                "description": "The currency of the account.",
                "example": "GBP"
              },
              "payment_type": {
                "enum": [
                  "Recurring",
                  "Regular"
                ],
                "type": "string",
                "description": "The type of payment.",
                "example": "Recurring"
              },
              "allow_partial_match": {
                "type": "boolean",
                "description": "Whether vault accepted a partial match when looking up the Bacs instrument for the supplied account details.",
                "example": true
              },
              "status": {
                "type": "string",
                "description": "The validation status of the account.",
                "example": "INVALID"
              },
              "match_status": {
                "type": "string",
                "description": "The result of matching the account holder name against the account owner.",
                "example": "no match"
              },
              "description": {
                "type": "string",
                "description": "A human-readable description of the validation result.",
                "example": "The name did not match with the account owner."
              },
              "mandate_id": {
                "type": "string",
                "description": "The identifier of the Bacs Direct Debit mandate.",
                "example": "6PZ6KFI3KW3UFHAM3J"
              }
            },
            "description": "The details of the Bacs Direct Debit account."
          },
          "account_holder": {
            "required": [
              "first_name",
              "last_name",
              "billing_address"
            ],
            "type": "object",
            "properties": {
              "first_name": {
                "type": "string",
                "description": "The first name of the account holder.",
                "example": "Hannah"
              },
              "last_name": {
                "type": "string",
                "description": "The last name of the account holder.",
                "example": "Bret"
              },
              "company_name": {
                "maxLength": 50,
                "type": "string",
                "description": "The legal name of a registered company that holds the account."
              },
              "billing_address": {
                "required": [
                  "country"
                ],
                "type": "object",
                "properties": {
                  "address_line1": {
                    "type": "string",
                    "description": "The first line of the address.",
                    "example": "123 High St."
                  },
                  "address_line2": {
                    "type": "string",
                    "description": "The second line of the address.",
                    "example": "Flat 456"
                  },
                  "city": {
                    "type": "string",
                    "description": "The address city.",
                    "example": "London"
                  },
                  "zip": {
                    "type": "string",
                    "description": "The address ZIP or postal code.",
                    "example": "SW1A 1AA"
                  },
                  "country": {
                    "maxLength": 2,
                    "minLength": 2,
                    "type": "string",
                    "description": "The address country.",
                    "example": "GB"
                  }
                },
                "description": "The billing address of the account holder."
              },
              "type": {
                "enum": [
                  "individual",
                  "corporate"
                ],
                "type": "string",
                "description": "The type of account holder.",
                "example": "corporate"
              }
            },
            "description": "The account holder's details."
          },
          "customer": {
            "$ref": "#/components/schemas/RetrieveInstrumentCustomerResponse"
          }
        },
        "description": "Bacs Direct Debit instrument response"
      },
      "RetrieveBankAccountInstrumentResponse": {
        "title": "bank_account",
        "required": [
          "type",
          "id",
          "fingerprint",
          "country",
          "currency"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of instrument"
          },
          "id": {
            "type": "string",
            "description": "The unique identifier of the payment source or destination that can be used later for payments",
            "example": "src_wmlfc3zyhqzehihu7giusaaawu"
          },
          "fingerprint": {
            "pattern": "^([a-z0-9]{26})$",
            "type": "string",
            "description": "A token that can uniquely identify this instrument across all customers",
            "example": "vnsdrvikkvre3dtrjjvlm5du4q"
          },
          "account_type": {
            "enum": [
              "savings",
              "current",
              "cash"
            ],
            "type": "string",
            "description": "The type of account",
            "example": "savings"
          },
          "account_number": {
            "type": "string",
            "description": "Number (which can contain letters) that identifies the account",
            "example": "13654567455"
          },
          "bank_code": {
            "type": "string",
            "description": "Code that identifies the bank",
            "example": "123-456"
          },
          "branch_code": {
            "type": "string",
            "description": "Code that identifies the bank branch",
            "example": "6443"
          },
          "iban": {
            "type": "string",
            "description": "Internationally agreed standard for identifying bank account",
            "example": "HU93116000060000000012345676"
          },
          "bban": {
            "type": "string",
            "description": "The combination of bank code and/or branch code and account number",
            "example": "3704 0044 0532 0130 00"
          },
          "swift_bic": {
            "type": "string",
            "description": "8 or 11 character code which identifies the bank or bank branch",
            "example": "37040044"
          },
          "currency": {
            "type": "string",
            "description": "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",
            "example": "GBP"
          },
          "country": {
            "type": "string",
            "description": "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",
            "example": "GB"
          },
          "account_holder": {
            "$ref": "#/components/schemas/AccountHolder"
          },
          "bank": {
            "$ref": "#/components/schemas/BankDetails"
          },
          "customer": {
            "$ref": "#/components/schemas/RetrieveInstrumentCustomerResponse"
          }
        },
        "description": "Bank account details"
      },
      "RetrieveCardInstrumentResponse": {
        "title": "card",
        "required": [
          "type",
          "id",
          "fingerprint",
          "expiry_month",
          "expiry_year",
          "last4",
          "regulated_indicator"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The underlying instrument type",
            "example": "card"
          },
          "id": {
            "type": "string",
            "description": "The unique identifier of the payment source or destination that can be used later for payments",
            "example": "src_wmlfc3zyhqzehihu7giusaaawu"
          },
          "encrypted_card_number": {
            "type": "string",
            "description": "The JWE-encrypted full card number. This is only present if your level of PCI compliance is SAQ-D.",
            "example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUz..."
          },
          "fingerprint": {
            "pattern": "^([a-z0-9]{26})$",
            "type": "string",
            "description": "A token that can uniquely identify this instrument across all customers",
            "example": "vnsdrvikkvre3dtrjjvlm5du4q"
          },
          "expiry_month": {
            "minimum": 1,
            "maxLength": 2,
            "type": "integer",
            "description": "The expiry month",
            "example": 6
          },
          "expiry_year": {
            "maxLength": 4,
            "minLength": 4,
            "type": "integer",
            "description": "The expiry year",
            "example": 2025
          },
          "name": {
            "type": "string",
            "description": "The name of the cardholder",
            "example": "John Test"
          },
          "scheme": {
            "type": "string",
            "description": "The card scheme",
            "example": "VISA"
          },
          "scheme_local": {
            "enum": [
              "cartes_bancaires"
            ],
            "type": "string",
            "description": "The local co-branded card scheme",
            "example": "cartes_bancaires"
          },
          "last4": {
            "maxLength": 4,
            "minLength": 4,
            "type": "string",
            "description": "The last four digits of the card number",
            "example": "9996"
          },
          "bin": {
            "type": "string",
            "description": "The card issuer's bank identification number (BIN)",
            "example": "454347"
          },
          "card_type": {
            "enum": [
              "CREDIT",
              "DEBIT",
              "PREPAID",
              "CHARGE"
            ],
            "type": "string",
            "description": "The card type",
            "example": "CREDIT"
          },
          "card_category": {
            "enum": [
              "CONSUMER",
              "COMMERCIAL"
            ],
            "type": "string",
            "description": "The card category",
            "example": "CONSUMER"
          },
          "issuer": {
            "type": "string",
            "description": "The name of the card issuer",
            "example": "GOTHAM STATE BANK"
          },
          "issuer_country": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string",
            "description": "The card issuer's country (<a href=\"https://www.checkout.com/docs/resources/codes/country-codes\" target=\"blank\">two-letter ISO code</a>)",
            "example": "US"
          },
          "product_id": {
            "type": "string",
            "description": "The issuer/card scheme product identifier",
            "example": "F"
          },
          "product_type": {
            "type": "string",
            "description": "The issuer/card scheme product type",
            "example": "CLASSIC"
          },
          "customer": {
            "$ref": "#/components/schemas/RetrieveInstrumentCustomerResponse"
          },
          "account_holder": {
            "type": "object",
            "properties": {
              "first_name": {
                "type": "string",
                "description": "The first name of the account holder",
                "example": "John"
              },
              "last_name": {
                "type": "string",
                "description": "The last name of the account holder",
                "example": "Smith"
              },
              "billing_address": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Address"
                  }
                ],
                "description": "The billing address of the account holder"
              },
              "phone": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PhoneNumber"
                  }
                ],
                "description": "The phone number of the account holder"
              }
            },
            "description": "The account holder details"
          },
          "network_token": {
            "$ref": "#/components/schemas/NetworkToken"
          },
          "card_wallet_type": {
            "enum": [
              "googlepay",
              "applepay"
            ],
            "type": "string",
            "description": "The type of digital wallet used for the card."
          },
          "regulated_indicator": {
            "type": "boolean",
            "description": "Indicates whether the instrument is regulated debit."
          }
        },
        "description": "card instrument response"
      },
      "RetrieveInstrumentResponse": {
        "required": [
          "type",
          "id"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/RetrieveBankAccountInstrumentResponse"
          },
          {
            "$ref": "#/components/schemas/RetrieveCardInstrumentResponse"
          },
          {
            "$ref": "#/components/schemas/RetrieveSepaInstrumentResponse"
          },
          {
            "$ref": "#/components/schemas/RetrieveAchInstrumentResponse"
          },
          {
            "$ref": "#/components/schemas/RetrieveBacsInstrumentResponse"
          }
        ],
        "properties": {
          "type": {
            "type": "string",
            "description": "The underlying instrument type"
          },
          "id": {
            "type": "string",
            "description": "The unique identifier of the payment source or destination that can be used later for payments",
            "example": "src_wmlfc3zyhqzehihu7giusaaawu"
          }
        },
        "description": "The response for type of instrument stored",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "bank_account": "#/components/schemas/RetrieveBankAccountInstrumentResponse",
            "card": "#/components/schemas/RetrieveCardInstrumentResponse",
            "sepa": "#/components/schemas/RetrieveSepaInstrumentResponse",
            "ach": "#/components/schemas/RetrieveAchInstrumentResponse",
            "bacs": "#/components/schemas/RetrieveBacsInstrumentResponse"
          }
        }
      },
      "RetrieveSepaInstrumentResponse": {
        "title": "sepa",
        "required": [
          "type",
          "id",
          "fingerprint",
          "created_on",
          "modified_on",
          "vault_id"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The underlying instrument type",
            "example": "sepa"
          },
          "id": {
            "type": "string",
            "description": "The unique identifier of the payment source or destination that can be used later for payments",
            "example": "src_wmlfc3zyhqzehihu7giusaaawu"
          },
          "fingerprint": {
            "pattern": "^([a-z0-9]{26})$",
            "type": "string",
            "description": "A token that can uniquely identify this instrument across all customers.",
            "example": "vnsdrvikkvre3dtrjjvlm5du4q"
          },
          "created_on": {
            "type": "string",
            "description": "The date and time the instrument was created.",
            "format": "date-time",
            "example": "2021-01-01T00:00:00.0000000+00:00"
          },
          "modified_on": {
            "type": "string",
            "description": "The date and time the instrument was last modified.",
            "format": "date-time",
            "example": "2021-01-01T00:00:00.0000000+00:00"
          },
          "vault_id": {
            "type": "string",
            "description": "The Vault ID currently attached to the instrument.",
            "example": "vid_wmlfc3zyhqzehihu7giusaaawu"
          },
          "instrument_data": {
            "required": [
              "country",
              "account_number",
              "currency",
              "payment_type",
              "mandate_id",
              "date_of_signature"
            ],
            "type": "object",
            "properties": {
              "type": {
                "enum": [
                  "Core",
                  "B2B"
                ],
                "type": "string",
                "description": "The type of mandate.",
                "example": "B2B"
              },
              "account_number": {
                "maxLength": 34,
                "minLength": 15,
                "type": "string",
                "description": "The International Bank Account Number (IBAN) of the account.",
                "example": "FR2810096000509685512959O86"
              },
              "country": {
                "maxLength": 2,
                "minLength": 2,
                "type": "string",
                "description": "The country of the account.",
                "example": "GB"
              },
              "currency": {
                "maxLength": 3,
                "minLength": 3,
                "type": "string",
                "description": "The currency of the account.",
                "example": "GBP"
              },
              "payment_type": {
                "enum": [
                  "recurring",
                  "regular"
                ],
                "type": "string",
                "description": "The type of payment.",
                "example": "recurring"
              },
              "mandate_id": {
                "maxLength": 35,
                "minLength": 1,
                "type": "string",
                "description": "The mandate ID.\n\nIf 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.\n",
                "example": "1234567890"
              },
              "date_of_signature": {
                "maxLength": 10,
                "minLength": 10,
                "type": "string",
                "description": "The date the mandate was signed.\n\nIf `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.\n",
                "format": "date",
                "example": "2021-01-01T00:00:00.0000000"
              }
            },
            "description": "The details of the SEPA mandate."
          },
          "account_holder": {
            "required": [
              "first_name",
              "last_name",
              "billing_address"
            ],
            "type": "object",
            "properties": {
              "first_name": {
                "type": "string",
                "description": "The first name of the account holder.",
                "example": "Hannah"
              },
              "last_name": {
                "type": "string",
                "description": "The last name of the account holder.",
                "example": "Bret"
              },
              "billing_address": {
                "required": [
                  "address_line1",
                  "address_line2",
                  "city",
                  "zip",
                  "country"
                ],
                "type": "object",
                "properties": {
                  "address_line1": {
                    "type": "string",
                    "description": "The first line of the address.",
                    "example": "123 High St."
                  },
                  "address_line2": {
                    "type": "string",
                    "description": "The second line of the address.",
                    "example": "Flat 456"
                  },
                  "city": {
                    "type": "string",
                    "description": "The address city.",
                    "example": "London"
                  },
                  "zip": {
                    "type": "string",
                    "description": "The address ZIP or postal code.",
                    "example": "SW1A 1AA"
                  },
                  "country": {
                    "maxLength": 2,
                    "minLength": 2,
                    "type": "string",
                    "description": "The address country.",
                    "example": "GB"
                  }
                },
                "description": "The billing address of the account holder."
              },
              "company_name": {
                "maxLength": 50,
                "type": "string",
                "description": "The legal name of a registered company that holds the account."
              },
              "type": {
                "enum": [
                  "individual",
                  "corporate"
                ],
                "type": "string",
                "description": "The type of account holder.",
                "example": "corporate"
              }
            },
            "description": "The account holder's details."
          },
          "customer": {
            "$ref": "#/components/schemas/RetrieveInstrumentCustomerResponse"
          }
        },
        "description": "SEPA instrument response"
      },
      "StoreAchInstrumentRequest": {
        "title": "ach",
        "required": [
          "instrument_data",
          "account_holder"
        ],
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/StoreInstrumentRequestType"
              },
              {
                "enum": [
                  "ach"
                ],
                "type": "string"
              }
            ],
            "description": "The type of instrument. `ach` payment instruments."
          },
          "instrument_data": {
            "required": [
              "account_type",
              "account_number",
              "bank_code",
              "currency",
              "country"
            ],
            "type": "object",
            "properties": {
              "account_type": {
                "enum": [
                  "savings",
                  "checking"
                ],
                "type": "string",
                "description": "The type of Direct Debit account",
                "example": "savings"
              },
              "account_number": {
                "maxLength": 17,
                "minLength": 4,
                "type": "string",
                "description": "The account number of the Direct Debit account",
                "example": "4099999992"
              },
              "bank_code": {
                "maxLength": 9,
                "minLength": 8,
                "type": "string",
                "description": "The bank code of the Direct Debit account",
                "example": "211370545"
              },
              "currency": {
                "maxLength": 3,
                "minLength": 3,
                "type": "string",
                "description": "The currency of the account",
                "example": "USD"
              },
              "country": {
                "maxLength": 2,
                "minLength": 2,
                "type": "string",
                "description": "The country of the account",
                "example": "US"
              }
            },
            "description": "The details of the bank account"
          },
          "account_holder": {
            "required": [
              "first_name",
              "last_name",
              "company_name",
              "type"
            ],
            "type": "object",
            "properties": {
              "first_name": {
                "type": "string",
                "description": "First name. Required for individual account holder type",
                "example": "John"
              },
              "last_name": {
                "type": "string",
                "description": "Last name. Required for individual account holder type",
                "example": "Smith"
              },
              "company_name": {
                "type": "string",
                "description": "Company name. Required for corporate account holder type",
                "example": "Smith Enterprises"
              },
              "type": {
                "enum": [
                  "individual",
                  "corporate"
                ],
                "type": "string",
                "description": "Account holder type"
              }
            },
            "description": "The account holder details"
          },
          "customer": {
            "$ref": "#/components/schemas/StoreCustomerInstrumentRequest"
          }
        },
        "description": "Store bank account details"
      },
      "StoreAchInstrumentResponse": {
        "title": "ach",
        "required": [
          "type",
          "id",
          "fingerprint"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "ach"
            ],
            "type": "string",
            "description": "The type of instrument",
            "example": "ach"
          },
          "id": {
            "type": "string",
            "description": "The unique identifier of the payment source or destination that can be used later for payments",
            "example": "src_wmlfc3zyhqzehihu7giusaaawu"
          },
          "fingerprint": {
            "pattern": "^([a-z0-9]{26})$",
            "type": "string",
            "description": "A token that can uniquely identify this instrument across all customers",
            "example": "vnsdrvikkvre3dtrjjvlm5du4q"
          }
        },
        "description": "Store bank account instrument response"
      },
      "StoreBacsInstrumentRequest": {
        "title": "bacs",
        "required": [
          "type",
          "account",
          "instrument_data",
          "account_holder"
        ],
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/StoreInstrumentRequestType"
              },
              {
                "enum": [
                  "bacs"
                ],
                "type": "string"
              }
            ],
            "description": "The type of instrument. `bacs` payment instruments."
          },
          "account": {
            "required": [
              "processing_channel_id"
            ],
            "type": "object",
            "properties": {
              "processing_channel_id": {
                "pattern": "^(pc)_(\\w{26})$",
                "type": "string",
                "description": "The ID of the processing channel to associate with the instrument.",
                "example": "pc_q4dbxom5jbgudnjzjpz7j2z6uq"
              }
            },
            "description": "The account configuration for the instrument."
          },
          "instrument_data": {
            "required": [
              "country",
              "account_number",
              "bank_code",
              "currency",
              "payment_type"
            ],
            "type": "object",
            "properties": {
              "account_number": {
                "maxLength": 8,
                "minLength": 8,
                "type": "string",
                "description": "The account number of the Bacs Direct Debit account.",
                "example": "86753246"
              },
              "bank_code": {
                "maxLength": 6,
                "minLength": 6,
                "type": "string",
                "description": "The sort code of the Bacs Direct Debit account.",
                "example": "040004"
              },
              "country": {
                "maxLength": 2,
                "minLength": 2,
                "type": "string",
                "description": "The country of the account, as an ISO 3166-1 alpha-2 code.",
                "example": "GB"
              },
              "currency": {
                "maxLength": 3,
                "minLength": 3,
                "type": "string",
                "description": "The currency of the account.",
                "example": "GBP"
              },
              "payment_type": {
                "enum": [
                  "Recurring",
                  "Regular"
                ],
                "type": "string",
                "description": "The type of payment. `Recurring` or `Regular`.",
                "example": "Recurring"
              },
              "allow_partial_match": {
                "type": "boolean",
                "description": "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.",
                "default": false
              }
            },
            "description": "The details of the Bacs Direct Debit account."
          },
          "account_holder": {
            "required": [
              "first_name",
              "last_name",
              "billing_address"
            ],
            "type": "object",
            "properties": {
              "first_name": {
                "type": "string",
                "description": "The first name of the account holder\n",
                "example": "John"
              },
              "last_name": {
                "type": "string",
                "description": "The last name of the account holder\n",
                "example": "Smith"
              },
              "billing_address": {
                "required": [
                  "country"
                ],
                "type": "object",
                "properties": {
                  "address_line1": {
                    "maxLength": 200,
                    "type": "string",
                    "description": "The first line of the address.",
                    "example": "Cloverfield St."
                  },
                  "address_line2": {
                    "maxLength": 10,
                    "type": "string",
                    "description": "The street number. If no number, pass \"w/n\".",
                    "example": "23A"
                  },
                  "city": {
                    "maxLength": 35,
                    "type": "string",
                    "description": "The address city.",
                    "example": "London"
                  },
                  "zip": {
                    "maxLength": 16,
                    "type": "string",
                    "description": "The address zip/postal code.",
                    "example": "SW1A 1AA"
                  },
                  "country": {
                    "maxLength": 2,
                    "minLength": 2,
                    "type": "string",
                    "description": "The two-letter <a href=\"https://www.checkout.com/docs/resources/codes/country-codes\" target=\"_blank\">ISO country code</a> of the address.",
                    "example": "GB"
                  }
                },
                "description": "The billing address of the account holder"
              }
            },
            "description": "The account holder details"
          },
          "customer": {
            "$ref": "#/components/schemas/StoreCustomerInstrumentRequest"
          }
        },
        "description": "Store Bacs Direct Debit account details"
      },
      "StoreBacsInstrumentResponse": {
        "title": "bacs",
        "required": [
          "type",
          "id",
          "fingerprint"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "bacs"
            ],
            "type": "string",
            "description": "The type of instrument",
            "example": "bacs"
          },
          "id": {
            "type": "string",
            "description": "The unique identifier of the payment source or destination that can be used later for payments",
            "example": "src_wmlfc3zyhqzehihu7giusaaawu"
          },
          "fingerprint": {
            "pattern": "^([a-z0-9]{26})$",
            "type": "string",
            "description": "A token that can uniquely identify this instrument across all customers",
            "example": "vnsdrvikkvre3dtrjjvlm5du4q"
          }
        },
        "description": "Store Bacs Direct Debit account instrument response"
      },
      "StoreBankAccountInstrumentRequest": {
        "title": "bank_account",
        "required": [
          "currency",
          "country"
        ],
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/StoreInstrumentRequestType"
              },
              {
                "enum": [
                  "bank_account"
                ],
                "type": "string"
              }
            ],
            "description": "The type of instrument. `bank_account` payment instruments only support payouts."
          },
          "account_type": {
            "enum": [
              "savings",
              "current",
              "cash"
            ],
            "type": "string",
            "description": "The type of account",
            "example": "savings"
          },
          "account_number": {
            "type": "string",
            "description": "Number (which can contain letters) that identifies the account",
            "example": "13654567455"
          },
          "bank_code": {
            "type": "string",
            "description": "Code that identifies the bank",
            "example": "123-456"
          },
          "branch_code": {
            "type": "string",
            "description": "Code that identifies the bank branch",
            "example": "6443"
          },
          "iban": {
            "type": "string",
            "description": "Internationally agreed standard for identifying bank account",
            "example": "HU93116000060000000012345676"
          },
          "bban": {
            "type": "string",
            "description": "The combination of bank code and/or branch code and account number",
            "example": "3704 0044 0532 0130 00"
          },
          "swift_bic": {
            "type": "string",
            "description": "8 or 11 character code which identifies the bank or bank branch",
            "example": "37040044"
          },
          "currency": {
            "type": "string",
            "description": "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",
            "example": "GBP"
          },
          "country": {
            "type": "string",
            "description": "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",
            "example": "GB"
          },
          "processing_channel_id": {
            "type": "string",
            "description": "The ID of the primary processing channel this instrument is intended to be used for",
            "example": "pc_u2l6xz5joigedmk7g5vxzt7rqy"
          },
          "account_holder": {
            "$ref": "#/components/schemas/AccountHolder"
          },
          "bank": {
            "$ref": "#/components/schemas/BankDetails"
          },
          "customer": {
            "$ref": "#/components/schemas/StoreCustomerInstrumentRequest"
          }
        },
        "description": "Store bank account details"
      },
      "StoreBankAccountInstrumentResponse": {
        "title": "bank_account",
        "required": [
          "type",
          "id",
          "fingerprint"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "bank_account"
            ],
            "type": "string",
            "description": "The type of instrument",
            "example": "bank_account"
          },
          "id": {
            "type": "string",
            "description": "The unique identifier of the payment source or destination that can be used later for payments",
            "example": "src_wmlfc3zyhqzehihu7giusaaawu"
          },
          "fingerprint": {
            "pattern": "^([a-z0-9]{26})$",
            "type": "string",
            "description": "A token that can uniquely identify this instrument across all customers",
            "example": "vnsdrvikkvre3dtrjjvlm5du4q"
          },
          "customer": {
            "$ref": "#/components/schemas/CustomerResponse"
          },
          "bank": {
            "$ref": "#/components/schemas/BankDetails"
          },
          "swift_bic": {
            "type": "string",
            "description": "8 or 11 character code which identifies the bank or bank branch",
            "example": "37040044"
          },
          "account_number": {
            "type": "string",
            "description": "Number (which can contain letters) that identifies the account",
            "example": "13654567455"
          },
          "bank_code": {
            "type": "string",
            "description": "Code that identifies the bank",
            "example": "123-456"
          },
          "iban": {
            "type": "string",
            "description": "Internationally agreed standard for identifying bank account",
            "example": "HU93116000060000000012345676"
          }
        },
        "description": "Store bank account instrument response"
      },
      "StoreCardInstrumentRequest": {
        "title": "card",
        "required": [
          "number",
          "expiry_month",
          "expiry_year"
        ],
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/StoreInstrumentRequestType"
              },
              {
                "enum": [
                  "card"
                ],
                "type": "string"
              }
            ],
            "description": "The type of instrument."
          },
          "number": {
            "maxLength": 16,
            "minLength": 16,
            "pattern": "^[0-9]{16}$",
            "type": "string",
            "description": "The card number.",
            "format": "pan",
            "example": "4242424242424242"
          },
          "expiry_month": {
            "maximum": 12,
            "minimum": 1,
            "type": "integer",
            "description": "The card's expiration month.",
            "format": "int32",
            "example": 5
          },
          "expiry_year": {
            "maxLength": 4,
            "minLength": 4,
            "type": "integer",
            "description": "The card's expiration year.",
            "format": "int32",
            "example": 2025
          },
          "name": {
            "type": "string",
            "description": "The cardholder's name.\n",
            "example": "Mr. J Smith"
          },
          "account_holder": {
            "$ref": "#/components/schemas/StoreAccountHolderTokenRequest"
          },
          "customer": {
            "$ref": "#/components/schemas/StoreCustomerInstrumentRequest"
          },
          "entity_id": {
            "type": "string",
            "description": "The client entity, used for billing purposes. \n\nIf you do not provide an `entity_id`, you must provide a `processing_channel_id` instead.\n",
            "example": "ent_wxglze3wwywujg4nna5fb7ldli"
          },
          "processing_channel_id": {
            "type": "string",
            "description": "The processing channel, used for billing purposes. \n\nIf you do not provide a `processing_channel_id`, you must provide an `entity_id`  instead.\n",
            "example": "pc_u2l6xz5joigedmk7g5vxzt7rqy"
          },
          "network_token": {
            "$ref": "#/components/schemas/ProvisionNetworkToken"
          }
        },
        "description": "Details of the token to store."
      },
      "StoreCustomerInstrumentRequest": {
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^(cus)_(\\w{26})$",
            "type": "string",
            "description": "The identifier of an existing customer",
            "example": "cus_y3oqhf46pyzuxjbcn2giaqnb44"
          },
          "email": {
            "maxLength": 255,
            "type": "string",
            "description": "An optional email address to associate with the customer",
            "format": "email",
            "example": "brucewayne@gmail.com"
          },
          "name": {
            "maxLength": 255,
            "type": "string",
            "description": "The customer's name. This will only set the name for *new* customers.",
            "example": "Bruce Wayne"
          },
          "phone": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PhoneNumber"
              }
            ],
            "description": "The customer's phone number. This will only set the phone number for *new* customers."
          },
          "default": {
            "type": "boolean",
            "description": "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.",
            "example": true
          }
        },
        "description": "The customer's details"
      },
      "StoreInstrumentRequest": {
        "required": [
          "type"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/StoreBankAccountInstrumentRequest"
          },
          {
            "$ref": "#/components/schemas/StoreCardInstrumentRequest"
          },
          {
            "$ref": "#/components/schemas/StoreTokenInstrumentRequest"
          },
          {
            "$ref": "#/components/schemas/StoreSepaInstrumentRequest"
          },
          {
            "$ref": "#/components/schemas/StoreAchInstrumentRequest"
          },
          {
            "$ref": "#/components/schemas/StoreBacsInstrumentRequest"
          }
        ],
        "description": "The type of instrument to be stored",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "bank_account": "#/components/schemas/StoreBankAccountInstrumentRequest",
            "card": "#/components/schemas/StoreCardInstrumentRequest",
            "token": "#/components/schemas/StoreTokenInstrumentRequest",
            "sepa": "#/components/schemas/StoreSepaInstrumentRequest",
            "ach": "#/components/schemas/StoreAchInstrumentRequest",
            "bacs": "#/components/schemas/StoreBacsInstrumentRequest"
          }
        }
      },
      "StoreInstrumentRequestType": {
        "enum": [
          "bacs",
          "bank_account",
          "card",
          "token",
          "sepa",
          "ach"
        ],
        "type": "string",
        "description": "Ordered list of store instrument request types used for discriminators"
      },
      "StoreInstrumentResponse": {
        "required": [
          "type",
          "id"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/StoreBankAccountInstrumentResponse"
          },
          {
            "$ref": "#/components/schemas/StoreTokenInstrumentResponse"
          },
          {
            "$ref": "#/components/schemas/StoreSepaInstrumentResponse"
          },
          {
            "$ref": "#/components/schemas/StoreAchInstrumentResponse"
          },
          {
            "$ref": "#/components/schemas/StoreBacsInstrumentResponse"
          }
        ],
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of instrument"
          },
          "id": {
            "type": "string",
            "description": "The unique identifier of the payment source or destination that can be used later for payments",
            "example": "src_wmlfc3zyhqzehihu7giusaaawu"
          }
        },
        "description": "The response for type of instrument stored",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "bank_account": "#/components/schemas/StoreBankAccountInstrumentResponse",
            "card": "#/components/schemas/StoreTokenInstrumentResponse",
            "sepa": "#/components/schemas/StoreSepaInstrumentResponse",
            "ach": "#/components/schemas/StoreAchInstrumentResponse",
            "bacs": "#/components/schemas/StoreBacsInstrumentResponse"
          }
        }
      },
      "StoreSepaInstrumentRequest": {
        "title": "sepa",
        "required": [
          "instrument_data",
          "account_holder"
        ],
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/StoreInstrumentRequestType"
              },
              {
                "enum": [
                  "sepa"
                ],
                "type": "string"
              }
            ],
            "description": "The type of instrument. `sepa` payment instruments."
          },
          "instrument_data": {
            "required": [
              "country",
              "account_number",
              "currency",
              "payment_type"
            ],
            "type": "object",
            "properties": {
              "type": {
                "enum": [
                  "Core",
                  "B2B"
                ],
                "type": "string",
                "description": "The type of mandate.",
                "example": "B2B"
              },
              "account_number": {
                "maxLength": 34,
                "minLength": 15,
                "type": "string",
                "description": "The International Bank Account Number (IBAN) of the account.",
                "example": "FR2810096000509685512959O86"
              },
              "country": {
                "maxLength": 2,
                "minLength": 2,
                "type": "string",
                "description": "The country of the account.",
                "example": "GB"
              },
              "currency": {
                "maxLength": 3,
                "minLength": 3,
                "type": "string",
                "description": "The currency of the account.",
                "example": "GBP"
              },
              "payment_type": {
                "enum": [
                  "recurring",
                  "regular"
                ],
                "type": "string",
                "description": "The type of payment. `recurring` or `regular`.",
                "example": "recurring"
              },
              "mandate_id": {
                "maxLength": 35,
                "minLength": 1,
                "type": "string",
                "description": "The mandate ID. If a mandate ID is not provided, a new, random mandate ID will be generated.",
                "example": "1234567890"
              },
              "date_of_signature": {
                "type": "string",
                "description": "The date on which the mandate was signed, in the format 'yyyy-MM-dd'.\nRequired if `mandate_id` is provided.\nIgnored and set as the current date if `mandate_id` is not provided. \n",
                "format": "date",
                "example": "2020-01-01T00:00:00.0000000"
              }
            },
            "description": "The details of the mandate"
          },
          "account_holder": {
            "required": [
              "first_name",
              "last_name",
              "billing_address"
            ],
            "type": "object",
            "properties": {
              "first_name": {
                "type": "string",
                "description": "The first name of the account holder\n",
                "example": "John"
              },
              "last_name": {
                "type": "string",
                "description": "The last name of the account holder\n",
                "example": "Smith"
              },
              "billing_address": {
                "required": [
                  "address_line1",
                  "address_line2",
                  "city",
                  "zip",
                  "country"
                ],
                "type": "object",
                "properties": {
                  "address_line1": {
                    "maxLength": 200,
                    "type": "string",
                    "description": "The first line of the address.",
                    "example": "Cloverfield St."
                  },
                  "address_line2": {
                    "maxLength": 10,
                    "type": "string",
                    "description": "The street number. If no number, pass \"w/n\".",
                    "example": "23A"
                  },
                  "city": {
                    "maxLength": 35,
                    "type": "string",
                    "description": "The address city.",
                    "example": "London"
                  },
                  "zip": {
                    "maxLength": 16,
                    "type": "string",
                    "description": "The address zip/postal code.",
                    "example": "SW1A 1AA"
                  },
                  "country": {
                    "maxLength": 2,
                    "minLength": 2,
                    "type": "string",
                    "description": "The two-letter <a href=\"https://www.checkout.com/docs/resources/codes/country-codes\" target=\"_blank\">ISO country code</a> of the address.",
                    "example": "GB"
                  }
                },
                "description": "The billing address of the account holder"
              },
              "company_name": {
                "maxLength": 50,
                "type": "string",
                "description": "The legal name of a registered company that holds the account."
              },
              "type": {
                "enum": [
                  "individual",
                  "corporate"
                ],
                "type": "string",
                "description": "The type of account holder.",
                "example": "corporate"
              }
            },
            "description": "The account holder details"
          },
          "customer": {
            "$ref": "#/components/schemas/StoreCustomerInstrumentRequest"
          }
        },
        "description": "Store bank account details"
      },
      "StoreSepaInstrumentResponse": {
        "title": "sepa",
        "required": [
          "type",
          "id",
          "fingerprint"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "sepa"
            ],
            "type": "string",
            "description": "The type of instrument",
            "example": "sepa"
          },
          "id": {
            "type": "string",
            "description": "The unique identifier of the payment source or destination that can be used later for payments",
            "example": "src_wmlfc3zyhqzehihu7giusaaawu"
          },
          "fingerprint": {
            "pattern": "^([a-z0-9]{26})$",
            "type": "string",
            "description": "A token that can uniquely identify this instrument across all customers",
            "example": "vnsdrvikkvre3dtrjjvlm5du4q"
          }
        },
        "description": "Store bank account instrument response"
      },
      "StoreTokenInstrumentRequest": {
        "title": "token",
        "required": [
          "type",
          "token"
        ],
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/StoreInstrumentRequestType"
              },
              {
                "enum": [
                  "token"
                ],
                "type": "string"
              }
            ],
            "description": "The type of instrument"
          },
          "token": {
            "pattern": "^(tok)_(\\w{26})$|^(card_tok)_(\\w{12})$",
            "type": "string",
            "description": "The Checkout.com token",
            "example": "tok_asoto22g2fsu7prwomy12sgfsa"
          },
          "account_holder": {
            "$ref": "#/components/schemas/StoreAccountHolderTokenRequest"
          },
          "customer": {
            "$ref": "#/components/schemas/StoreCustomerInstrumentRequest"
          }
        },
        "description": "Store token details"
      },
      "StoreTokenInstrumentResponse": {
        "title": "card",
        "required": [
          "type",
          "id",
          "fingerprint",
          "expiry_month",
          "expiry_year",
          "last4",
          "bin"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "card"
            ],
            "type": "string",
            "description": "The type of instrument",
            "example": "card"
          },
          "id": {
            "type": "string",
            "description": "The unique identifier of the payment source or destination that can be used later for payments",
            "example": "src_wmlfc3zyhqzehihu7giusaaawu"
          },
          "fingerprint": {
            "pattern": "^([a-z0-9]{26})$",
            "type": "string",
            "description": "A token that can uniquely identify this instrument across all customers",
            "example": "vnsdrvikkvre3dtrjjvlm5du4q"
          },
          "expiry_month": {
            "minimum": 1,
            "maxLength": 2,
            "type": "integer",
            "description": "The expiry month",
            "example": 6
          },
          "expiry_year": {
            "maxLength": 4,
            "minLength": 4,
            "type": "integer",
            "description": "The expiry year",
            "example": 2025
          },
          "scheme": {
            "type": "string",
            "description": "The card scheme",
            "example": "VISA"
          },
          "scheme_local": {
            "enum": [
              "cartes_bancaires"
            ],
            "type": "string",
            "description": "The local co-branded card scheme",
            "example": "cartes_bancaires"
          },
          "last4": {
            "maxLength": 4,
            "minLength": 4,
            "type": "string",
            "description": "The last four digits of the card number",
            "example": "9996"
          },
          "bin": {
            "type": "string",
            "description": "The card issuer's bank identification number (BIN)",
            "example": "454347"
          },
          "card_type": {
            "enum": [
              "CREDIT",
              "DEBIT",
              "PREPAID",
              "CHARGE"
            ],
            "type": "string",
            "description": "The card type",
            "example": "CREDIT"
          },
          "card_category": {
            "enum": [
              "CONSUMER",
              "COMMERCIAL"
            ],
            "type": "string",
            "description": "The card category",
            "example": "CONSUMER"
          },
          "issuer": {
            "type": "string",
            "description": "The name of the card issuer",
            "example": "GOTHAM STATE BANK"
          },
          "issuer_country": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string",
            "description": "The card issuer's country (<a href=\"https://www.checkout.com/docs/resources/codes/country-codes\" target=\"blank\">two-letter ISO code</a>)",
            "example": "US"
          },
          "product_id": {
            "type": "string",
            "description": "The issuer/card scheme product identifier",
            "example": "F"
          },
          "product_type": {
            "type": "string",
            "description": "The issuer/card scheme product type",
            "example": "CLASSIC"
          },
          "account_holder": {
            "$ref": "#/components/schemas/AccountHolderResponse"
          },
          "customer": {
            "$ref": "#/components/schemas/CustomerResponse"
          },
          "network_token": {
            "$ref": "#/components/schemas/NetworkToken"
          }
        },
        "description": "card instrument response"
      },
      "UpdateAchInstrumentRequest": {
        "title": "ach",
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of instrument. `ach` payment instruments."
          },
          "instrument_data": {
            "type": "object",
            "properties": {
              "account_type": {
                "enum": [
                  "savings",
                  "checking"
                ],
                "type": "string",
                "description": "The type of Direct Debit account",
                "example": "savings"
              },
              "account_number": {
                "maxLength": 17,
                "minLength": 4,
                "type": "string",
                "description": "The account number of the Direct Debit account",
                "example": "4099999992"
              },
              "bank_code": {
                "maxLength": 9,
                "minLength": 8,
                "type": "string",
                "description": "The bank code of the Direct Debit account",
                "example": "211370545"
              },
              "currency": {
                "maxLength": 3,
                "minLength": 3,
                "type": "string",
                "description": "The currency of the account",
                "example": "USD"
              },
              "country": {
                "maxLength": 2,
                "minLength": 2,
                "type": "string",
                "description": "The country of the account",
                "example": "US"
              }
            },
            "description": "The details of the bank account"
          },
          "account_holder": {
            "required": [
              "first_name",
              "last_name",
              "company_name",
              "type"
            ],
            "type": "object",
            "properties": {
              "first_name": {
                "type": "string",
                "description": "First name. Required for individual account holder type",
                "example": "John"
              },
              "last_name": {
                "type": "string",
                "description": "Last name. Required for individual account holder type",
                "example": "Smith"
              },
              "company_name": {
                "type": "string",
                "description": "Company name. Required for corporate account holder type",
                "example": "Smith Enterprises"
              },
              "type": {
                "enum": [
                  "individual",
                  "corporate"
                ],
                "type": "string",
                "description": "Account holder type"
              }
            },
            "description": "The account holder details"
          }
        },
        "description": "Update bank account details"
      },
      "UpdateAchInstrumentResponse": {
        "title": "ach",
        "required": [
          "type",
          "id",
          "fingerprint"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "ach"
            ],
            "type": "string",
            "description": "The underlying instrument type. For instruments created from Checkout.com tokens, this will reflect the type of instrument that was tokenized.",
            "example": "ach"
          },
          "id": {
            "type": "string",
            "description": "The unique identifier of the payment source or destination that can be used later for payments",
            "example": "src_wmlfc3zyhqzehihu7giusaaawu"
          },
          "fingerprint": {
            "pattern": "^([a-z0-9]{26})$",
            "type": "string",
            "description": "A token that can uniquely identify this instrument across all customers",
            "example": "vnsdrvikkvre3dtrjjvlm5du4q"
          }
        },
        "description": "Update bank account instrument response"
      },
      "UpdateBacsInstrumentRequest": {
        "title": "bacs",
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of instrument. `bacs` payment instruments."
          },
          "instrument_data": {
            "type": "object",
            "properties": {
              "account_number": {
                "maxLength": 8,
                "minLength": 8,
                "type": "string",
                "description": "The account number of the Bacs Direct Debit account.",
                "example": "86753246"
              },
              "bank_code": {
                "maxLength": 6,
                "minLength": 6,
                "type": "string",
                "description": "The sort code of the Bacs Direct Debit account.",
                "example": "040004"
              },
              "country": {
                "maxLength": 2,
                "minLength": 2,
                "type": "string",
                "description": "The country of the account, as an ISO 3166-1 alpha-2 code.",
                "example": "GB"
              },
              "currency": {
                "maxLength": 3,
                "minLength": 3,
                "type": "string",
                "description": "The currency of the account.",
                "example": "GBP"
              },
              "payment_type": {
                "enum": [
                  "Recurring",
                  "Regular"
                ],
                "type": "string",
                "description": "The type of payment. `Recurring` or `Regular`.",
                "example": "Recurring"
              },
              "allow_partial_match": {
                "type": "boolean",
                "description": "Whether vault accepted a partial match when looking up the Bacs instrument for the supplied account details.",
                "example": true
              }
            },
            "description": "The details of the Bacs Direct Debit account."
          },
          "account_holder": {
            "type": "object",
            "properties": {
              "first_name": {
                "type": "string",
                "description": "The first name of the account holder\n",
                "example": "John"
              },
              "last_name": {
                "type": "string",
                "description": "The last name of the account holder\n",
                "example": "Smith"
              },
              "company_name": {
                "maxLength": 50,
                "type": "string",
                "description": "The legal name of a registered company that holds the account."
              },
              "billing_address": {
                "type": "object",
                "properties": {
                  "address_line1": {
                    "maxLength": 200,
                    "type": "string",
                    "description": "The first line of the address.",
                    "example": "Cloverfield St."
                  },
                  "address_line2": {
                    "maxLength": 10,
                    "type": "string",
                    "description": "The street number. If no number, pass \"w/n\".",
                    "example": "23A"
                  },
                  "city": {
                    "maxLength": 50,
                    "type": "string",
                    "description": "The address city.",
                    "example": "London"
                  },
                  "zip": {
                    "maxLength": 50,
                    "type": "string",
                    "description": "The address zip/postal code.",
                    "example": "SW1A 1AA"
                  },
                  "country": {
                    "maxLength": 2,
                    "minLength": 2,
                    "type": "string",
                    "description": "The two-letter <a href=\"https://www.checkout.com/docs/resources/codes/country-codes\" target=\"_blank\">ISO country code</a> of the address.",
                    "example": "GB"
                  }
                },
                "description": "The billing address of the account holder"
              },
              "type": {
                "enum": [
                  "individual",
                  "corporate"
                ],
                "type": "string",
                "description": "The type of account holder.",
                "example": "corporate"
              }
            },
            "description": "The account holder details"
          }
        },
        "description": "Update Bacs Direct Debit account details"
      },
      "UpdateBacsInstrumentResponse": {
        "title": "bacs",
        "required": [
          "type",
          "id",
          "fingerprint"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "bacs"
            ],
            "type": "string",
            "description": "The underlying instrument type. For instruments created from Checkout.com tokens, this will reflect the type of instrument that was tokenized.",
            "example": "bacs"
          },
          "id": {
            "type": "string",
            "description": "The unique identifier of the payment source or destination that can be used later for payments",
            "example": "src_wmlfc3zyhqzehihu7giusaaawu"
          },
          "fingerprint": {
            "pattern": "^([a-z0-9]{26})$",
            "type": "string",
            "description": "A token that can uniquely identify this instrument across all customers",
            "example": "vnsdrvikkvre3dtrjjvlm5du4q"
          }
        },
        "description": "Update Bacs Direct Debit account instrument response"
      },
      "UpdateBankInstrumentRequest": {
        "title": "bank_account",
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of instrument. `bank_account` payment instruments."
          },
          "account_type": {
            "enum": [
              "savings",
              "current",
              "cash"
            ],
            "type": "string",
            "description": "The type of account",
            "example": "savings"
          },
          "account_number": {
            "type": "string",
            "description": "Number (which can contain letters) that identifies the account",
            "example": "13654567455"
          },
          "bank_code": {
            "type": "string",
            "description": "Code that identifies the bank",
            "example": "123-456"
          },
          "branch_code": {
            "type": "string",
            "description": "Code that identifies the bank branch",
            "example": "6443"
          },
          "iban": {
            "type": "string",
            "description": "Internationally agreed standard for identifying bank account",
            "example": "HU93116000060000000012345676"
          },
          "bban": {
            "type": "string",
            "description": "The combination of bank code and/or branch code and account number",
            "example": "3704 0044 0532 0130 00"
          },
          "swift_bic": {
            "type": "string",
            "description": "8 or 11 character code which identifies the bank or bank branch",
            "example": "37040044"
          },
          "currency": {
            "type": "string",
            "description": "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",
            "example": "GBP"
          },
          "country": {
            "type": "string",
            "description": "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",
            "example": "GB"
          },
          "processing_channel_id": {
            "type": "string",
            "description": "The ID of the primary processing channel this instrument is intended to be used for",
            "example": "pc_u2l6xz5joigedmk7g5vxzt7rqy"
          },
          "account_holder": {
            "$ref": "#/components/schemas/AccountHolder"
          },
          "bank": {
            "$ref": "#/components/schemas/BankDetails"
          },
          "customer": {
            "$ref": "#/components/schemas/UpdateCustomerRequest"
          }
        },
        "description": "Update bank account details"
      },
      "UpdateBankInstrumentResponse": {
        "title": "bank_account",
        "required": [
          "type",
          "fingerprint"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "bank_account"
            ],
            "type": "string",
            "description": "The type of instrument"
          },
          "fingerprint": {
            "pattern": "^([a-z0-9]{26})$",
            "type": "string",
            "description": "A token that can uniquely identify this instrument across all customers",
            "example": "smoua2sbuqhupeofwbe77n5nsm"
          }
        },
        "description": "The response for type of instrument stored",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "bank_account": "#/components/schemas/UpdateBankInstrumentResponse"
          }
        }
      },
      "UpdateCardInstrumentRequest": {
        "title": "card",
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of instrument. `card` payment instruments."
          },
          "expiry_month": {
            "minimum": 1,
            "maxLength": 2,
            "minLength": 1,
            "type": "integer",
            "description": "The expiry month of the card",
            "example": 6
          },
          "expiry_year": {
            "maxLength": 4,
            "minLength": 4,
            "type": "integer",
            "description": "The expiry year of the card",
            "example": 2025
          },
          "name": {
            "type": "string",
            "description": "Name of the cardholder\n",
            "example": "Mr. J Smith"
          },
          "account_holder": {
            "$ref": "#/components/schemas/UpdateCardAccountHolder"
          },
          "customer": {
            "$ref": "#/components/schemas/UpdateCustomerRequest"
          }
        },
        "description": "Update bank account details"
      },
      "UpdateCardInstrumentResponse": {
        "title": "card",
        "required": [
          "type",
          "fingerprint"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "card"
            ],
            "type": "string",
            "description": "The type of instrument"
          },
          "fingerprint": {
            "pattern": "^([a-z0-9]{26})$",
            "type": "string",
            "description": "A token that can uniquely identify this instrument across all customers",
            "example": "smoua2sbuqhupeofwbe77n5nsm"
          }
        },
        "description": "The response for type of instrument stored",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "card": "#/components/schemas/UpdateCardInstrumentResponse"
          }
        }
      },
      "UpdateInstrumentRequest": {
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/UpdateCardInstrumentRequest"
          },
          {
            "$ref": "#/components/schemas/UpdateBankInstrumentRequest"
          },
          {
            "$ref": "#/components/schemas/UpdateSepaInstrumentRequest"
          },
          {
            "$ref": "#/components/schemas/UpdateAchInstrumentRequest"
          },
          {
            "$ref": "#/components/schemas/UpdateBacsInstrumentRequest"
          }
        ],
        "description": "The type of instrument to be updated",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "card": "#/components/schemas/UpdateCardInstrumentRequest",
            "bank_account": "#/components/schemas/UpdateBankInstrumentRequest",
            "sepa": "#/components/schemas/UpdateSepaInstrumentRequest",
            "ach": "#/components/schemas/UpdateAchInstrumentRequest",
            "bacs": "#/components/schemas/UpdateBacsInstrumentRequest"
          }
        }
      },
      "UpdateInstrumentResponse": {
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/UpdateCardInstrumentResponse"
          },
          {
            "$ref": "#/components/schemas/UpdateBankInstrumentResponse"
          },
          {
            "$ref": "#/components/schemas/UpdateSepaInstrumentResponse"
          },
          {
            "$ref": "#/components/schemas/UpdateAchInstrumentResponse"
          },
          {
            "$ref": "#/components/schemas/UpdateBacsInstrumentResponse"
          }
        ],
        "description": "The response for type of instrument stored",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "card": "#/components/schemas/UpdateCardInstrumentResponse",
            "bank_account": "#/components/schemas/UpdateBankInstrumentResponse",
            "sepa": "#/components/schemas/UpdateSepaInstrumentResponse",
            "ach": "#/components/schemas/UpdateAchInstrumentResponse",
            "bacs": "#/components/schemas/UpdateBacsInstrumentResponse"
          }
        }
      },
      "UpdateSepaInstrumentRequest": {
        "title": "sepa",
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of instrument. `sepa` payment instruments."
          },
          "instrument_data": {
            "required": [
              "country",
              "account_number",
              "currency",
              "payment_type"
            ],
            "type": "object",
            "properties": {
              "type": {
                "enum": [
                  "Core",
                  "B2B"
                ],
                "type": "string",
                "description": "The type of mandate.",
                "example": "B2B"
              },
              "account_number": {
                "maxLength": 34,
                "minLength": 15,
                "type": "string",
                "description": "The International Bank Account Number (IBAN) of the account.",
                "example": "FR2810096000509685512959O86"
              },
              "country": {
                "maxLength": 2,
                "minLength": 2,
                "type": "string",
                "description": "The country of the account.",
                "example": "GB"
              },
              "currency": {
                "maxLength": 3,
                "minLength": 3,
                "type": "string",
                "description": "The currency of the account.",
                "example": "GBP"
              },
              "payment_type": {
                "enum": [
                  "recurring",
                  "regular"
                ],
                "type": "string",
                "description": "The type of payment. `recurring` or `regular`.",
                "example": "recurring"
              },
              "mandate_id": {
                "maxLength": 35,
                "minLength": 1,
                "type": "string",
                "description": "The mandate ID. If a mandate ID is not provided, a new, random mandate ID will be generated.",
                "example": "1234567890"
              },
              "date_of_signature": {
                "type": "string",
                "description": "The date on which the mandate was signed, in the format 'yyyy-MM-dd'.\nRequired if `mandate_id` is provided.\nIgnored and set as the current date if `mandate_id` is not provided. \n",
                "format": "date",
                "example": "2020-01-01T00:00:00.0000000"
              }
            },
            "description": "The details of the mandate"
          },
          "account_holder": {
            "required": [
              "first_name",
              "last_name",
              "billing_address"
            ],
            "type": "object",
            "properties": {
              "first_name": {
                "type": "string",
                "description": "The first name of the account holder\n",
                "example": "John"
              },
              "last_name": {
                "type": "string",
                "description": "The last name of the account holder\n",
                "example": "Smith"
              },
              "billing_address": {
                "required": [
                  "address_line1",
                  "address_line2",
                  "city",
                  "zip",
                  "country"
                ],
                "type": "object",
                "properties": {
                  "address_line1": {
                    "maxLength": 200,
                    "type": "string",
                    "description": "The first line of the address.",
                    "example": "Cloverfield St."
                  },
                  "address_line2": {
                    "maxLength": 10,
                    "type": "string",
                    "description": "The street number. If no number, pass \"w/n\".",
                    "example": "23A"
                  },
                  "city": {
                    "maxLength": 50,
                    "type": "string",
                    "description": "The address city.",
                    "example": "London"
                  },
                  "zip": {
                    "maxLength": 50,
                    "type": "string",
                    "description": "The address zip/postal code.",
                    "example": "SW1A 1AA"
                  },
                  "country": {
                    "maxLength": 2,
                    "minLength": 2,
                    "type": "string",
                    "description": "The two-letter <a href=\"https://www.checkout.com/docs/resources/codes/country-codes\" target=\"_blank\">ISO country code</a> of the address.",
                    "example": "GB"
                  }
                },
                "description": "The billing address of the account holder"
              },
              "company_name": {
                "maxLength": 50,
                "type": "string",
                "description": "The legal name of a registered company that holds the account."
              },
              "type": {
                "enum": [
                  "individual",
                  "corporate"
                ],
                "type": "string",
                "description": "The type of account holder.",
                "example": "corporate"
              }
            },
            "description": "The account holder details"
          }
        },
        "description": "Update bank account details"
      },
      "UpdateSepaInstrumentResponse": {
        "title": "sepa",
        "required": [
          "type",
          "id",
          "fingerprint"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "sepa"
            ],
            "type": "string",
            "description": "The underlying instrument type. For instruments created from Checkout.com tokens, this will reflect the type of instrument that was tokenized.",
            "example": "sepa"
          },
          "id": {
            "type": "string",
            "description": "The unique identifier of the payment source or destination that can be used later for payments",
            "example": "src_wmlfc3zyhqzehihu7giusaaawu"
          },
          "fingerprint": {
            "pattern": "^([a-z0-9]{26})$",
            "type": "string",
            "description": "A token that can uniquely identify this instrument across all customers",
            "example": "vnsdrvikkvre3dtrjjvlm5du4q"
          }
        },
        "description": "Update bank account instrument response"
      },
      "IPAddress": {
        "maxLength": 45,
        "type": "string",
        "format": "ipv4",
        "example": "90.197.169.245"
      },
      "add-cardholder-request": {
        "required": [
          "type",
          "entity_id"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/add-individual-cardholder-request"
          }
        ],
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of cardholder to create.",
            "example": "individual"
          },
          "reference": {
            "$ref": "#/components/schemas/IssuingReference"
          },
          "entity_id": {
            "$ref": "#/components/schemas/IssuingEntityId"
          }
        },
        "description": "The cardholder to create.",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "individual": "#/components/schemas/add-individual-cardholder-request"
          }
        }
      },
      "add-cardholder-response": {
        "required": [
          "id",
          "client_id",
          "entity_id",
          "type",
          "status",
          "_links"
        ],
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/IssuingCardholderId"
          },
          "client_id": {
            "$ref": "#/components/schemas/IssuingClientId"
          },
          "entity_id": {
            "$ref": "#/components/schemas/IssuingEntityId"
          },
          "type": {
            "enum": [
              "individual"
            ],
            "type": "string",
            "description": "The cardholder's type."
          },
          "status": {
            "enum": [
              "active",
              "pending",
              "restricted",
              "requirements_due",
              "inactive",
              "rejected"
            ],
            "type": "string",
            "description": "The cardholder's status, after creation."
          },
          "reference": {
            "$ref": "#/components/schemas/IssuingReference"
          },
          "created_date": {
            "type": "string",
            "format": "date-time"
          },
          "last_modified_date": {
            "type": "string",
            "format": "date-time",
            "example": "2019-09-10T10:11:12.0000000+00:00"
          },
          "_links": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingCardholderLinks"
              }
            ]
          }
        }
      },
      "add-individual-cardholder-request": {
        "title": "individual",
        "required": [
          "type",
          "entity_id",
          "first_name",
          "last_name",
          "billing_address"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of cardholder to create.",
            "example": "individual"
          },
          "reference": {
            "$ref": "#/components/schemas/IssuingReference"
          },
          "entity_id": {
            "$ref": "#/components/schemas/IssuingEntityId"
          },
          "first_name": {
            "maxLength": 40,
            "minLength": 1,
            "type": "string",
            "description": "The cardholder's first name.",
            "example": "John"
          },
          "middle_name": {
            "maxLength": 40,
            "minLength": 1,
            "type": "string",
            "description": "The cardholder's middle name.",
            "example": "Fitzgerald"
          },
          "last_name": {
            "maxLength": 40,
            "minLength": 1,
            "type": "string",
            "description": "The cardholder's last name.",
            "example": "Kennedy"
          },
          "email": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingEmail"
              }
            ],
            "description": "The cardholder's email address."
          },
          "phone_number": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingPhoneNumber"
              }
            ]
          },
          "date_of_birth": {
            "type": "string",
            "description": "The cardholder's date of birth. <br/>Format – `YYYY-MM-DD`",
            "format": "date",
            "example": "1985-05-15T00:00:00.0000000"
          },
          "billing_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingAddress"
              }
            ],
            "description": "The cardholder's billing address."
          },
          "residency_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingAddress"
              }
            ],
            "description": "The cardholder's residential address. If this value is not provided, the cardholder's billing address is used instead, by default."
          }
        }
      },
      "get-cardholder-response": {
        "allOf": [
          {
            "$ref": "#/components/schemas/IssuingCardholder"
          }
        ]
      },
      "IssuingCardholder": {
        "required": [
          "id",
          "client_id",
          "entity_id",
          "type",
          "first_name",
          "last_name",
          "billing_address"
        ],
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/IssuingCardholderId"
          },
          "type": {
            "type": "string",
            "description": "The cardholder type. Currently `individual` is the only supported value.",
            "example": "individual"
          },
          "first_name": {
            "maxLength": 40,
            "minLength": 1,
            "pattern": "^[a-zA-Z'\\- ]{1,40}$",
            "type": "string",
            "description": "The cardholder's first name.",
            "example": "John"
          },
          "middle_name": {
            "maxLength": 40,
            "minLength": 1,
            "pattern": "^[a-zA-Z'\\- ]{1,40}$",
            "type": "string",
            "description": "The cardholder's middle name.",
            "example": "Fitzgerald"
          },
          "last_name": {
            "maxLength": 40,
            "minLength": 1,
            "pattern": "^[a-zA-Z'\\- ]{1,40}$",
            "type": "string",
            "description": "The cardholder's last name.",
            "example": "Kennedy"
          },
          "email": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingEmail"
              }
            ],
            "description": "The cardholder's email address."
          },
          "phone_number": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingPhoneNumber"
              }
            ]
          },
          "date_of_birth": {
            "type": "string",
            "description": "The cardholder's date of birth. <br/>Format – `YYYY-MM-DD`",
            "format": "date",
            "example": "1985-05-28T00:00:00.0000000"
          },
          "billing_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingAddress"
              }
            ],
            "description": "The cardholder's billing address."
          },
          "residency_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingAddress"
              }
            ],
            "description": "The cardholder's residential address. If this value is not provided, the cardholder's billing address is used instead, by default."
          },
          "reference": {
            "$ref": "#/components/schemas/IssuingReference"
          },
          "client_id": {
            "$ref": "#/components/schemas/IssuingClientId"
          },
          "account_entity_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingEntityId"
              }
            ],
            "description": "The unique identifier of the entity that holds the cardholder's currency account."
          },
          "parent_sub_entity_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingEntityId"
              }
            ],
            "description": "The unique identifier of the cardholder's parent sub-entity, if they have one."
          },
          "entity_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingEntityId"
              }
            ],
            "description": "The unique identifier of the cardholder's root client entity."
          },
          "status": {
            "enum": [
              "active",
              "pending",
              "restricted",
              "requirements_due",
              "inactive",
              "rejected",
              "draft",
              "suspended"
            ],
            "type": "string",
            "description": "The cardholder's status.",
            "example": "active"
          },
          "created_date": {
            "type": "string",
            "format": "date-time",
            "example": "2019-09-10T10:11:12.0000000+00:00"
          },
          "last_modified_date": {
            "type": "string",
            "format": "date-time",
            "example": "2019-09-11T10:11:12.0000000+00:00"
          },
          "_links": {
            "$ref": "#/components/schemas/IssuingCardholderLinks"
          }
        }
      },
      "IssuingCardholderLinks": {
        "minItems": 1,
        "required": [
          "self"
        ],
        "type": "object",
        "properties": {
          "self": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingLink"
              }
            ],
            "description": "The URI to retrieve the cardholder"
          },
          "cards": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingLink"
              }
            ],
            "description": "The URI to add or retrieve the cards issued to the cardholder"
          }
        },
        "description": "The links related to the current cardholder.",
        "example": {
          "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"
            ]
          }
        }
      },
      "IssuingUpdateCardholderLinks": {
        "required": [
          "self"
        ],
        "type": "object",
        "properties": {
          "self": {
            "$ref": "#/components/schemas/IssuingLink"
          }
        },
        "description": "The links related to the current cardholder.",
        "example": {
          "self": {
            "href": "https://{prefix}.api.checkout.com/issuing/cardholders/crh_d3ozhf43pcq2xbldn2g45qnb44",
            "actions": [
              "GET"
            ],
            "types": [
              "application/json"
            ]
          }
        }
      },
      "update-cardholder-request": {
        "type": "object",
        "properties": {
          "first_name": {
            "maxLength": 40,
            "minLength": 1,
            "type": "string",
            "description": "The cardholder's first name.",
            "example": "John"
          },
          "middle_name": {
            "maxLength": 40,
            "minLength": 1,
            "type": "string",
            "description": "The cardholder's middle name. To set this field to null, pass `null` in your request.",
            "example": "Fitzgerald"
          },
          "last_name": {
            "maxLength": 40,
            "minLength": 1,
            "type": "string",
            "description": "The cardholder's last name.",
            "example": "Kennedy"
          },
          "date_of_birth": {
            "type": "string",
            "description": "The cardholder's date of birth in the YYYY-MM-DD format. To set this field to null, pass `null` in your request.",
            "format": "date",
            "example": "1985-05-15T00:00:00.0000000"
          },
          "phone_number": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingPhoneNumber"
              }
            ]
          },
          "email": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingEmail"
              }
            ],
            "description": "The cardholder's email address. To set this field to null, pass `null` in your request."
          },
          "billing_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingAddress"
              }
            ],
            "description": "The  cardholder's billing address."
          },
          "residency_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingAddress"
              }
            ],
            "description": "The cardholder's residency address. To set this field to null, pass `null` in your request."
          }
        },
        "description": "The cardholder's fields to update."
      },
      "update-cardholder-response": {
        "required": [
          "last_modified_date",
          "_links"
        ],
        "type": "object",
        "properties": {
          "last_modified_date": {
            "type": "string",
            "format": "date-time",
            "example": "2019-09-10T10:11:12.0000000+00:00"
          },
          "_links": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingUpdateCardholderLinks"
              }
            ]
          }
        }
      },
      "3ds-enrollment-get-response": {
        "required": [
          "locale",
          "phone_number",
          "created_date",
          "last_modified_date"
        ],
        "type": "object",
        "properties": {
          "locale": {
            "$ref": "#/components/schemas/3dsLocale"
          },
          "phone_number": {
            "$ref": "#/components/schemas/3dsPhoneNumber"
          },
          "security_question": {
            "type": "object",
            "properties": {
              "question": {
                "type": "string",
                "example": "****"
              },
              "answer": {
                "type": "string",
                "example": "****"
              }
            },
            "description": "Obfuscated security question and answer, indicating that this card was enrolled using this method.\n"
          },
          "password": {
            "type": "string",
            "description": "Obfuscated password, indicating that this card was enrolled using this method.\n"
          },
          "created_date": {
            "type": "string",
            "format": "date-time",
            "example": "2019-09-10T10:11:12.0000000+00:00"
          },
          "last_modified_date": {
            "type": "string",
            "format": "date-time",
            "example": "2019-09-11T10:11:12.0000000+00:00"
          },
          "_links": {
            "allOf": [
              {
                "$ref": "#/components/schemas/3dsLink"
              }
            ]
          }
        },
        "description": "The card's 3DS enrollment details."
      },
      "3ds-enrollment-patch-response": {
        "type": "object",
        "properties": {
          "_links": {
            "allOf": [
              {
                "$ref": "#/components/schemas/3dsLink"
              }
            ]
          }
        },
        "description": "The card's 3DS authentication details."
      },
      "3ds-enrollment-post-response": {
        "type": "object",
        "properties": {
          "_links": {
            "allOf": [
              {
                "$ref": "#/components/schemas/3dsLink"
              }
            ]
          }
        },
        "description": "The card's 3DS authentication details."
      },
      "3dsLink": {
        "minItems": 1,
        "required": [
          "self"
        ],
        "type": "object",
        "properties": {
          "self": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingLink"
              }
            ],
            "description": "The URI to retrieve the card's 3DS enrollment details."
          }
        },
        "description": "The link to the card's 3DS enrollment details.",
        "example": {
          "self": {
            "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/3ds-enrollment",
            "actions": [
              "GET"
            ],
            "types": [
              "application/json"
            ]
          }
        }
      },
      "3dsLocale": {
        "maxLength": 5,
        "minLength": 5,
        "pattern": "^[a-z]{2}-[A-Z]{2}$",
        "enum": [
          "en-US",
          "fr-FR"
        ],
        "type": "string",
        "description": "The card's locale, as one of the possible BCP 47 formatted enum values. \n\nThe 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.\n\nWhen not provided, the locale of the card product is used. \n",
        "format": "language-COUNTRY",
        "example": "en-US"
      },
      "3dsPassword": {
        "maxLength": 30,
        "minLength": 4,
        "pattern": "^[a-zA-Z0-9àÀáÁâÂäÄçÇèÈéÉêÊëËìÌíÍîÎïÏñÑòÒóÓôÔõÕöÖùÙúÚûÛüÜýÝ+\\-*/%()=?!~#'\",;:$&\\s.]{4,30}$",
        "type": "string",
        "description": "The case-sensitive password used to support knowledge-based 3DS authentication. \n\nLeading and trailing white spaces will be ignored.\n",
        "example": "Xtui43FvfiZ"
      },
      "3dsPhoneNumber": {
        "required": [
          "country_code",
          "number"
        ],
        "type": "object",
        "properties": {
          "country_code": {
            "maxLength": 7,
            "minLength": 1,
            "type": "string",
            "description": "The phone number's <a href=\"https://docs.checkout.com/resources/codes/country-codes\" target=\"blank\">international country calling code</a>.",
            "example": "+1"
          },
          "number": {
            "maxLength": 25,
            "minLength": 6,
            "type": "string",
            "description": "A valid phone number without leading zeros.",
            "example": "415 555 2671"
          }
        },
        "description": "The phone number to send the one-time password (OTP) for 3DS authentication to.\n\nThis phone number is independent of the cardholder's mobile phone number on file.\nThe number is used for authorizations that require a <a href=\"https://www.checkout.com/docs/payments/authenticate-payments/3d-secure\">3DS challenge</a>.\n"
      },
      "3dsSecurityPair": {
        "required": [
          "question",
          "answer"
        ],
        "type": "object",
        "properties": {
          "question": {
            "maxLength": 45,
            "minLength": 4,
            "pattern": "^[a-zA-Z0-9àÀáÁâÂäÄçÇèÈéÉêÊëËìÌíÍîÎïÏñÑòÒóÓôÔõÕöÖùÙúÚûÛüÜýÝ+\\-*/%()=?!~#'\",;:$&\\s.]{4,45}$",
            "type": "string",
            "description": "The cardholder’s security question.",
            "example": "Who are you?"
          },
          "answer": {
            "maxLength": 30,
            "minLength": 4,
            "pattern": "^[a-zA-Z0-9àÀáÁâÂäÄçÇèÈéÉêÊëËìÌíÍîÎïÏñÑòÒóÓôÔõÕöÖùÙúÚûÛüÜýÝ+\\-*/%()=?!~#'\",;:$&\\s.]{4,30}$",
            "type": "string",
            "description": "The cardholder’s answer to the security question.\n\nThe answer is not case-sensitive. Leading and trailing white spaces will be ignored.\n",
            "example": "Bond. James Bond."
          }
        },
        "description": "The question and answer security pair used to support knowledge-based 3DS authentication.\n\nSecurity pairs are set per-card, not per-cardholder.\n"
      },
      "Password": {
        "required": [
          "password",
          "phone_number"
        ],
        "type": "object",
        "properties": {
          "password": {
            "$ref": "#/components/schemas/3dsPassword"
          },
          "locale": {
            "$ref": "#/components/schemas/3dsLocale"
          },
          "phone_number": {
            "$ref": "#/components/schemas/3dsPhoneNumber"
          }
        }
      },
      "security_question": {
        "required": [
          "security_pair",
          "phone_number"
        ],
        "type": "object",
        "properties": {
          "security_pair": {
            "$ref": "#/components/schemas/3dsSecurityPair"
          },
          "locale": {
            "$ref": "#/components/schemas/3dsLocale"
          },
          "phone_number": {
            "$ref": "#/components/schemas/3dsPhoneNumber"
          }
        }
      },
      "activate-card-response": {
        "required": [
          "last_activated_on"
        ],
        "type": "object",
        "properties": {
          "last_activated_on": {
            "type": "string",
            "description": "The time the card was activated.",
            "format": "date-time",
            "readOnly": true,
            "example": "2019-09-10T10:11:12.0000000+00:00"
          },
          "_links": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ActivatedCardLinks"
              }
            ]
          }
        }
      },
      "add-card-request": {
        "required": [
          "type",
          "cardholder_id",
          "card_product_id"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The card type.",
            "example": "virtual"
          },
          "cardholder_id": {
            "$ref": "#/components/schemas/IssuingCardholderId"
          },
          "lifetime": {
            "$ref": "#/components/schemas/CardLifetime"
          },
          "reference": {
            "$ref": "#/components/schemas/IssuingReference"
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingCardMetadata"
              }
            ],
            "description": "User's metadata"
          },
          "scheduled_revocation_date": {
            "$ref": "#/components/schemas/IssuingScheduledRevocationDate"
          },
          "revocation_date": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingRevocationDate"
              }
            ],
            "description": "Deprecated. Use `scheduled_revocation_date` instead.\n\nIf you provide both fields, the `scheduled_revocation_date` value overrides this value.\n",
            "deprecated": true
          },
          "scheduled_activation_date": {
            "$ref": "#/components/schemas/IssuingScheduledActivationDate"
          },
          "card_product_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingCardProductId"
              }
            ],
            "description": "The card product's unique identifier. This field is required if there are multiple card products associated with the entity."
          }
        },
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "virtual": "#/components/schemas/add-virtual-card-request",
            "physical": "#/components/schemas/add-physical-card-request"
          }
        }
      },
      "add-card-response": {
        "required": [
          "id",
          "client_id",
          "entity_id",
          "last_four",
          "expiry_month",
          "expiry_year",
          "billing_currency",
          "issuing_country",
          "created_date",
          "status",
          "type",
          "scheme"
        ],
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/IssuingCardId"
          },
          "client_id": {
            "$ref": "#/components/schemas/IssuingClientId"
          },
          "entity_id": {
            "$ref": "#/components/schemas/IssuingEntityId"
          },
          "display_name": {
            "$ref": "#/components/schemas/DisplayName"
          },
          "last_four": {
            "$ref": "#/components/schemas/LastFour"
          },
          "expiry_month": {
            "$ref": "#/components/schemas/ExpiryMonth"
          },
          "expiry_year": {
            "$ref": "#/components/schemas/ExpiryYear"
          },
          "billing_currency": {
            "$ref": "#/components/schemas/IssuingCurrency"
          },
          "issuing_country": {
            "$ref": "#/components/schemas/IssuingCountry"
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingStatus"
              }
            ]
          },
          "type": {
            "$ref": "#/components/schemas/IssuingType"
          },
          "reference": {
            "$ref": "#/components/schemas/IssuingReference"
          },
          "scheme": {
            "$ref": "#/components/schemas/Scheme"
          },
          "created_date": {
            "type": "string",
            "format": "date-time",
            "example": "2019-09-10T10:11:12.0000000+00:00"
          },
          "last_activated_on": {
            "$ref": "#/components/schemas/LastActivatedOn"
          },
          "_links": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardLinks"
              }
            ]
          }
        },
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "virtual": "#/components/schemas/add-virtual-card-response",
            "physical": "#/components/schemas/add-physical-card-response"
          }
        }
      },
      "add-physical-card-request": {
        "title": "physical",
        "required": [
          "type",
          "cardholder_id",
          "card_product_id",
          "shipping_instructions",
          "display_name"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The card type.",
            "example": "physical"
          },
          "cardholder_id": {
            "$ref": "#/components/schemas/IssuingCardholderId"
          },
          "lifetime": {
            "$ref": "#/components/schemas/CardLifetime"
          },
          "reference": {
            "$ref": "#/components/schemas/IssuingReference"
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingCardMetadata"
              }
            ],
            "description": "User's metadata"
          },
          "revocation_date": {
            "description": "Deprecated. Use `scheduled_revocation_date` instead.  \n\nIf you provide both fields, the `scheduled_revocation_date` value overrides this value.\n",
            "deprecated": true
          },
          "scheduled_activation_date": {
            "$ref": "#/components/schemas/IssuingScheduledActivationDate"
          },
          "card_product_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingCardProductId"
              }
            ],
            "description": "The card product's unique identifier. This field is required if there are multiple card products associated with the entity."
          },
          "display_name": {
            "$ref": "#/components/schemas/DisplayName"
          },
          "shipping_instructions": {
            "$ref": "#/components/schemas/IssuingShippingInstruction"
          },
          "activate_card": {
            "type": "boolean",
            "description": "Sets whether to activate the newly created card upon creation. \n\nIf set to `false`, the cardholder will not be able to process transactions until you activate the card.   \n",
            "default": false
          }
        }
      },
      "add-physical-card-response": {
        "title": "physical",
        "required": [
          "id",
          "client_id",
          "entity_id",
          "last_four",
          "expiry_month",
          "expiry_year",
          "billing_currency",
          "issuing_country",
          "created_date",
          "status",
          "type",
          "scheme"
        ],
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/IssuingCardId"
          },
          "client_id": {
            "$ref": "#/components/schemas/IssuingClientId"
          },
          "entity_id": {
            "$ref": "#/components/schemas/IssuingEntityId"
          },
          "display_name": {
            "$ref": "#/components/schemas/DisplayName"
          },
          "last_four": {
            "$ref": "#/components/schemas/LastFour"
          },
          "expiry_month": {
            "$ref": "#/components/schemas/ExpiryMonth"
          },
          "expiry_year": {
            "$ref": "#/components/schemas/ExpiryYear"
          },
          "billing_currency": {
            "$ref": "#/components/schemas/IssuingCurrency"
          },
          "issuing_country": {
            "$ref": "#/components/schemas/IssuingCountry"
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingStatus"
              }
            ]
          },
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingType"
              },
              {
                "enum": [
                  "physical"
                ]
              }
            ],
            "example": "physical"
          },
          "reference": {
            "$ref": "#/components/schemas/IssuingReference"
          },
          "scheme": {
            "$ref": "#/components/schemas/Scheme"
          },
          "created_date": {
            "type": "string",
            "format": "date-time",
            "example": "2019-09-10T10:11:12.0000000+00:00"
          },
          "_links": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardLinks"
              }
            ]
          }
        }
      },
      "add-virtual-card-control-mcc-limit-request": {
        "title": "mcc_limit",
        "required": [
          "control_type",
          "mcc_limit"
        ],
        "type": "object",
        "properties": {
          "description": {
            "maxLength": 256,
            "type": "string",
            "description": "A description for the control."
          },
          "control_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingControlType"
              }
            ],
            "example": "mcc_limit"
          },
          "mcc_limit": {
            "$ref": "#/components/schemas/MccLimit"
          }
        }
      },
      "add-virtual-card-control-mid-limit-request": {
        "title": "mid_limit",
        "required": [
          "control_type",
          "mid_limit"
        ],
        "type": "object",
        "properties": {
          "description": {
            "maxLength": 256,
            "type": "string",
            "description": "A description for the control."
          },
          "control_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingControlType"
              }
            ],
            "example": "mid_limit"
          },
          "mid_limit": {
            "$ref": "#/components/schemas/MidLimit"
          }
        }
      },
      "add-virtual-card-control-request": {
        "required": [
          "control_type"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/add-virtual-card-control-velocity-limit-request"
          },
          {
            "$ref": "#/components/schemas/add-virtual-card-control-mcc-limit-request"
          },
          {
            "$ref": "#/components/schemas/add-virtual-card-control-mid-limit-request"
          }
        ],
        "properties": {
          "description": {
            "maxLength": 256,
            "type": "string",
            "description": "A description for the control."
          },
          "control_type": {
            "$ref": "#/components/schemas/IssuingControlType"
          }
        },
        "description": "The control to create.",
        "discriminator": {
          "propertyName": "control_type",
          "mapping": {
            "velocity_limit": "#/components/schemas/add-virtual-card-control-velocity-limit-request",
            "mcc_limit": "#/components/schemas/add-virtual-card-control-mcc-limit-request",
            "mid_limit": "#/components/schemas/add-virtual-card-control-mid-limit-request"
          }
        }
      },
      "add-virtual-card-control-velocity-limit-request": {
        "title": "velocity_limit",
        "required": [
          "control_type",
          "velocity_limit"
        ],
        "type": "object",
        "properties": {
          "description": {
            "maxLength": 256,
            "type": "string",
            "description": "A description for the control."
          },
          "control_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingControlType"
              }
            ],
            "example": "velocity_limit"
          },
          "velocity_limit": {
            "$ref": "#/components/schemas/VelocityLimit"
          }
        }
      },
      "add-virtual-card-request": {
        "title": "virtual",
        "required": [
          "type",
          "cardholder_id",
          "card_product_id"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The card type.",
            "example": "virtual"
          },
          "cardholder_id": {
            "$ref": "#/components/schemas/IssuingCardholderId"
          },
          "lifetime": {
            "$ref": "#/components/schemas/CardLifetime"
          },
          "reference": {
            "$ref": "#/components/schemas/IssuingReference"
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingCardMetadata"
              }
            ],
            "description": "User's metadata"
          },
          "revocation_date": {
            "description": "Deprecated. Use `scheduled_revocation_date` instead.  \n\nIf you provide both fields, the `scheduled_revocation_date` value overrides this value.\n",
            "deprecated": true
          },
          "scheduled_activation_date": {
            "$ref": "#/components/schemas/IssuingScheduledActivationDate"
          },
          "card_product_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingCardProductId"
              }
            ],
            "description": "The card product's unique identifier. This field is required if there are multiple card products associated with the entity."
          },
          "display_name": {
            "$ref": "#/components/schemas/DisplayName"
          },
          "is_single_use": {
            "type": "boolean",
            "description": "Sets whether the virtual card should expire after a single use.",
            "default": false
          },
          "activate_card": {
            "type": "boolean",
            "description": "Sets whether to activate the newly created card upon creation.\n\nIf set to `false`, the cardholder will not be able to process transactions until you activate the card.\n",
            "default": true
          },
          "return_credentials": {
            "type": "array",
            "items": {
              "enum": [
                "number",
                "cvc2"
              ],
              "type": "string"
            },
            "description": "The credentials to retrieve on card creation.\n",
            "example": [
              "number",
              "cvc2"
            ]
          },
          "control_profiles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IssuingControlProfileId"
            },
            "description": "The control profiles you want to add the card to as a target.",
            "example": [
              "cpr_53mkhdc4jjlu5jcryx76bjbrgm"
            ]
          },
          "controls": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/add-virtual-card-control-request"
            },
            "description": "The controls that will be set on the card.",
            "example": [
              {
                "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
                  ]
                }
              }
            ]
          }
        }
      },
      "add-virtual-card-response-control-mcc-limit-response": {
        "title": "mcc_limit",
        "required": [
          "id",
          "description",
          "control_type",
          "mcc_limit"
        ],
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/IssuingControlId"
          },
          "description": {
            "maxLength": 256,
            "type": "string",
            "description": "A description for the control.",
            "example": "Allow the card to be used only in restaurants and supermarkets"
          },
          "control_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingControlType"
              }
            ],
            "example": "mcc_limit"
          },
          "mcc_limit": {
            "$ref": "#/components/schemas/MccLimit"
          }
        }
      },
      "add-virtual-card-response-control-mid-limit-response": {
        "title": "mid_limit",
        "required": [
          "id",
          "description",
          "control_type",
          "mid_limit"
        ],
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/IssuingControlId"
          },
          "description": {
            "maxLength": 256,
            "type": "string",
            "description": "A description for the control.",
            "example": "Allow the card to be used only in AZ Pizza"
          },
          "control_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingControlType"
              }
            ],
            "example": "mid_limit"
          },
          "mid_limit": {
            "$ref": "#/components/schemas/MidLimit"
          }
        }
      },
      "add-virtual-card-response-control-response": {
        "required": [
          "id",
          "description",
          "control_type"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/add-virtual-card-response-control-velocity-limit-response"
          },
          {
            "$ref": "#/components/schemas/add-virtual-card-response-control-mcc-limit-response"
          },
          {
            "$ref": "#/components/schemas/add-virtual-card-response-control-mid-limit-response"
          }
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/IssuingControlId"
          },
          "description": {
            "maxLength": 256,
            "type": "string",
            "description": "A description for the control.",
            "example": "Maximum spend of 500€ per week for restaurants"
          },
          "control_type": {
            "$ref": "#/components/schemas/IssuingControlType"
          }
        },
        "description": "The card control's details.",
        "discriminator": {
          "propertyName": "control_type",
          "mapping": {
            "velocity_limit": "#/components/schemas/add-virtual-card-response-control-velocity-limit-response",
            "mcc_limit": "#/components/schemas/add-virtual-card-response-control-mcc-limit-response",
            "mid_limit": "#/components/schemas/add-virtual-card-response-control-mid-limit-response"
          }
        }
      },
      "add-virtual-card-response-control-velocity-limit-response": {
        "title": "velocity_limit",
        "required": [
          "id",
          "description",
          "control_type",
          "velocity_limit"
        ],
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/IssuingControlId"
          },
          "description": {
            "maxLength": 256,
            "type": "string",
            "description": "A description for the control.",
            "example": "Maximum spend of 500€ per week for restaurants"
          },
          "control_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingControlType"
              }
            ],
            "example": "velocity_limit"
          },
          "velocity_limit": {
            "$ref": "#/components/schemas/VelocityLimit"
          }
        }
      },
      "add-virtual-card-response": {
        "title": "virtual",
        "required": [
          "id",
          "client_id",
          "entity_id",
          "last_four",
          "expiry_month",
          "expiry_year",
          "billing_currency",
          "issuing_country",
          "created_date",
          "status",
          "type",
          "scheme"
        ],
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/IssuingCardId"
          },
          "client_id": {
            "$ref": "#/components/schemas/IssuingClientId"
          },
          "entity_id": {
            "$ref": "#/components/schemas/IssuingEntityId"
          },
          "display_name": {
            "$ref": "#/components/schemas/DisplayName"
          },
          "last_four": {
            "$ref": "#/components/schemas/LastFour"
          },
          "expiry_month": {
            "$ref": "#/components/schemas/ExpiryMonth"
          },
          "expiry_year": {
            "$ref": "#/components/schemas/ExpiryYear"
          },
          "billing_currency": {
            "$ref": "#/components/schemas/IssuingCurrency"
          },
          "issuing_country": {
            "$ref": "#/components/schemas/IssuingCountry"
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingStatus"
              }
            ]
          },
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingType"
              },
              {
                "enum": [
                  "virtual"
                ]
              }
            ],
            "example": "virtual"
          },
          "reference": {
            "$ref": "#/components/schemas/IssuingReference"
          },
          "scheme": {
            "$ref": "#/components/schemas/Scheme"
          },
          "created_date": {
            "type": "string",
            "format": "date-time",
            "example": "2019-09-10T10:11:12.0000000+00:00"
          },
          "_links": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardLinks"
              }
            ]
          },
          "credentials": {
            "$ref": "#/components/schemas/Credentials"
          },
          "controls": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/add-virtual-card-response-control-response"
            },
            "description": "The controls that were set on the card.",
            "example": [
              {
                "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
                  ]
                }
              }
            ]
          }
        }
      },
      "DisplayName": {
        "maxLength": 26,
        "minLength": 2,
        "pattern": "^[0-9a-zA-Z.\\- ]{2,26}$",
        "type": "string",
        "description": "The name to display on the card.",
        "example": "JOHN KENNEDY"
      },
      "get-card-response": {
        "required": [
          "id",
          "client_id",
          "entity_id",
          "cardholder_id",
          "card_product_id",
          "last_four",
          "expiry_month",
          "expiry_year",
          "status",
          "type",
          "billing_currency",
          "issuing_country",
          "scheme"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/get-virtual-card-response"
          },
          {
            "$ref": "#/components/schemas/get-physical-card-response"
          }
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/IssuingCardId"
          },
          "client_id": {
            "$ref": "#/components/schemas/IssuingClientId"
          },
          "entity_id": {
            "$ref": "#/components/schemas/IssuingEntityId"
          },
          "cardholder_id": {
            "$ref": "#/components/schemas/IssuingCardholderId"
          },
          "card_product_id": {
            "$ref": "#/components/schemas/IssuingCardProductId"
          },
          "user_id": {
            "$ref": "#/components/schemas/IssuingUserId"
          },
          "last_four": {
            "$ref": "#/components/schemas/LastFour"
          },
          "expiry_month": {
            "$ref": "#/components/schemas/ExpiryMonth"
          },
          "expiry_year": {
            "$ref": "#/components/schemas/ExpiryYear"
          },
          "status": {
            "$ref": "#/components/schemas/IssuingStatus"
          },
          "display_name": {
            "$ref": "#/components/schemas/DisplayName"
          },
          "type": {
            "$ref": "#/components/schemas/IssuingType"
          },
          "billing_currency": {
            "$ref": "#/components/schemas/IssuingCurrency"
          },
          "issuing_country": {
            "$ref": "#/components/schemas/IssuingCountry"
          },
          "reference": {
            "$ref": "#/components/schemas/IssuingReference"
          },
          "metadata": {
            "$ref": "#/components/schemas/IssuingCardMetadata"
          },
          "scheduled_revocation_date": {
            "$ref": "#/components/schemas/IssuingScheduledRevocationDate"
          },
          "revocation_date": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingRevocationDate"
              }
            ],
            "description": "Deprecated. Use `scheduled_revocation_date` instead.",
            "deprecated": true
          },
          "scheduled_activation_date": {
            "$ref": "#/components/schemas/IssuingScheduledActivationDate"
          },
          "last_activated_on": {
            "$ref": "#/components/schemas/LastActivatedOn"
          },
          "root_card_id": {
            "$ref": "#/components/schemas/IssuingRootCardId"
          },
          "parent_card_id": {
            "$ref": "#/components/schemas/IssuingParentCardId"
          },
          "scheme": {
            "$ref": "#/components/schemas/Scheme"
          },
          "created_date": {
            "$ref": "#/components/schemas/Datetime"
          },
          "last_modified_date": {
            "$ref": "#/components/schemas/Datetime"
          },
          "_links": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardLinks"
              }
            ]
          }
        },
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "virtual": "#/components/schemas/get-virtual-card-response",
            "physical": "#/components/schemas/get-physical-card-response"
          }
        }
      },
      "get-physical-card-response": {
        "title": "physical",
        "required": [
          "id",
          "client_id",
          "entity_id",
          "cardholder_id",
          "card_product_id",
          "last_four",
          "expiry_month",
          "expiry_year",
          "status",
          "type",
          "billing_currency",
          "issuing_country",
          "scheme"
        ],
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/IssuingCardId"
          },
          "client_id": {
            "$ref": "#/components/schemas/IssuingClientId"
          },
          "entity_id": {
            "$ref": "#/components/schemas/IssuingEntityId"
          },
          "cardholder_id": {
            "$ref": "#/components/schemas/IssuingCardholderId"
          },
          "card_product_id": {
            "$ref": "#/components/schemas/IssuingCardProductId"
          },
          "user_id": {
            "$ref": "#/components/schemas/IssuingUserId"
          },
          "last_four": {
            "$ref": "#/components/schemas/LastFour"
          },
          "expiry_month": {
            "$ref": "#/components/schemas/ExpiryMonth"
          },
          "expiry_year": {
            "$ref": "#/components/schemas/ExpiryYear"
          },
          "status": {
            "$ref": "#/components/schemas/IssuingStatus"
          },
          "display_name": {
            "$ref": "#/components/schemas/DisplayName"
          },
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingType"
              },
              {
                "enum": [
                  "physical"
                ]
              }
            ],
            "example": "physical"
          },
          "billing_currency": {
            "$ref": "#/components/schemas/IssuingCurrency"
          },
          "issuing_country": {
            "$ref": "#/components/schemas/IssuingCountry"
          },
          "reference": {
            "$ref": "#/components/schemas/IssuingReference"
          },
          "metadata": {
            "$ref": "#/components/schemas/IssuingCardMetadata"
          },
          "revocation_date": {
            "$ref": "#/components/schemas/IssuingRevocationDate"
          },
          "scheduled_activation_date": {
            "$ref": "#/components/schemas/IssuingScheduledActivationDate"
          },
          "root_card_id": {
            "$ref": "#/components/schemas/IssuingRootCardId"
          },
          "parent_card_id": {
            "$ref": "#/components/schemas/IssuingParentCardId"
          },
          "scheme": {
            "$ref": "#/components/schemas/Scheme"
          },
          "created_date": {
            "$ref": "#/components/schemas/Datetime"
          },
          "last_modified_date": {
            "$ref": "#/components/schemas/Datetime"
          },
          "_links": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardLinks"
              }
            ]
          }
        }
      },
      "get-virtual-card-response": {
        "title": "virtual",
        "required": [
          "id",
          "client_id",
          "entity_id",
          "cardholder_id",
          "card_product_id",
          "last_four",
          "expiry_month",
          "expiry_year",
          "status",
          "type",
          "billing_currency",
          "issuing_country",
          "scheme"
        ],
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/IssuingCardId"
          },
          "client_id": {
            "$ref": "#/components/schemas/IssuingClientId"
          },
          "entity_id": {
            "$ref": "#/components/schemas/IssuingEntityId"
          },
          "cardholder_id": {
            "$ref": "#/components/schemas/IssuingCardholderId"
          },
          "card_product_id": {
            "$ref": "#/components/schemas/IssuingCardProductId"
          },
          "user_id": {
            "$ref": "#/components/schemas/IssuingUserId"
          },
          "last_four": {
            "$ref": "#/components/schemas/LastFour"
          },
          "expiry_month": {
            "$ref": "#/components/schemas/ExpiryMonth"
          },
          "expiry_year": {
            "$ref": "#/components/schemas/ExpiryYear"
          },
          "status": {
            "$ref": "#/components/schemas/IssuingStatus"
          },
          "display_name": {
            "$ref": "#/components/schemas/DisplayName"
          },
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingType"
              },
              {
                "enum": [
                  "virtual"
                ]
              }
            ],
            "example": "virtual"
          },
          "billing_currency": {
            "$ref": "#/components/schemas/IssuingCurrency"
          },
          "issuing_country": {
            "$ref": "#/components/schemas/IssuingCountry"
          },
          "reference": {
            "$ref": "#/components/schemas/IssuingReference"
          },
          "metadata": {
            "$ref": "#/components/schemas/IssuingCardMetadata"
          },
          "revocation_date": {
            "$ref": "#/components/schemas/IssuingRevocationDate"
          },
          "scheduled_activation_date": {
            "$ref": "#/components/schemas/IssuingScheduledActivationDate"
          },
          "root_card_id": {
            "$ref": "#/components/schemas/IssuingRootCardId"
          },
          "parent_card_id": {
            "$ref": "#/components/schemas/IssuingParentCardId"
          },
          "scheme": {
            "$ref": "#/components/schemas/Scheme"
          },
          "created_date": {
            "$ref": "#/components/schemas/Datetime"
          },
          "last_modified_date": {
            "$ref": "#/components/schemas/Datetime"
          },
          "_links": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardLinks"
              }
            ]
          },
          "is_single_use": {
            "type": "boolean",
            "description": "Specifies whether the virtual card is set to expire after a single use.",
            "default": false
          }
        }
      },
      "get-cardholder-cards-response": {
        "required": [
          "cards"
        ],
        "type": "object",
        "properties": {
          "cards": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/get-card-response"
            },
            "description": "The list of cards associated with the specified cardholder."
          }
        }
      },
      "ActivatedCardLinks": {
        "minItems": 1,
        "required": [
          "self",
          "revoke",
          "suspend",
          "controls"
        ],
        "type": "object",
        "properties": {
          "self": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingLink"
              }
            ],
            "description": "The URI to retrieve the card's details."
          },
          "revoke": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingLink"
              }
            ],
            "description": "The URI to revoke the card."
          },
          "suspend": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingLink"
              }
            ],
            "description": "The URI to suspend the card."
          },
          "controls": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingLink"
              }
            ],
            "description": "The URI to retrieve the card's controls."
          }
        },
        "description": "The links related to the card.",
        "example": {
          "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"
            ]
          }
        }
      },
      "CardLifetime": {
        "required": [
          "value"
        ],
        "type": "object",
        "properties": {
          "unit": {
            "enum": [
              "Months",
              "Years"
            ],
            "type": "string",
            "description": "The unit of time to specify the card lifetime's in.",
            "default": "Years",
            "example": "Months"
          },
          "value": {
            "type": "integer",
            "description": "The length of time before the card will expire, in the `unit` of time specified.",
            "example": 6
          }
        },
        "description": "The duration of time during which the card will accept incoming authorizations. \n\nThe `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:\n```\n{\n  \"lifetime\": {\n    \"unit\": \"Months\",\n    \"value\": \"18\"\n  }\n}\n```\n"
      },
      "CardLink": {
        "minItems": 1,
        "required": [
          "self",
          "controls"
        ],
        "type": "object",
        "properties": {
          "self": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingLink"
              }
            ],
            "description": "The URI to retrieve the card's details."
          },
          "controls": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingLink"
              }
            ],
            "description": "The URI to retrieve the card's controls."
          }
        },
        "description": "The links related to the card.",
        "example": {
          "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"
            ]
          }
        }
      },
      "CardLinks": {
        "minItems": 1,
        "required": [
          "self",
          "credentials",
          "revoke",
          "controls"
        ],
        "type": "object",
        "properties": {
          "self": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingLink"
              }
            ],
            "description": "The URI to retrieve the card's details."
          },
          "credentials": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingLink"
              }
            ],
            "description": "The URI to retrieve the card's credentials."
          },
          "revoke": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingLink"
              }
            ],
            "description": "The URI to revoke the card."
          },
          "controls": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingLink"
              }
            ],
            "description": "The URI to retrieve the card's controls."
          }
        },
        "description": "The links related to the card.",
        "example": {
          "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"
            ]
          }
        }
      },
      "CardNumber": {
        "maxLength": 16,
        "minLength": 16,
        "pattern": "^[0-9]{16}$",
        "type": "string",
        "description": "The unencrypted card number.",
        "format": "pan",
        "example": "4242424242424242"
      },
      "Credentials": {
        "type": "object",
        "properties": {
          "number": {
            "$ref": "#/components/schemas/CardNumber"
          },
          "cvc2": {
            "$ref": "#/components/schemas/CVC2"
          }
        }
      },
      "CVC2": {
        "maximum": 3,
        "minimum": 3,
        "pattern": "^[0-9]{3}$",
        "type": "string",
        "description": "The card's verification code, also known as the CVV or CVC2.",
        "example": "604"
      },
      "DigitalCardLinks": {
        "minItems": 1,
        "required": [
          "self"
        ],
        "type": "object",
        "properties": {
          "self": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingLink"
              }
            ],
            "description": "The URI to retrieve the digital card's details."
          }
        },
        "description": "The links related to the digital card.",
        "example": {
          "self": {
            "href": "https://{prefix}.api.checkout.com/issuing/digital-cards/dcr_5ngxzsynm2me3oxf73esbhda6q",
            "actions": [
              "GET"
            ],
            "types": [
              "application/json"
            ]
          }
        }
      },
      "DigitalCardType": {
        "enum": [
          "secure_element",
          "host_card_emulation",
          "card_on_file",
          "e_commerce",
          "qr_code"
        ],
        "type": "string",
        "description": "The type of digital card\n",
        "example": "secure_element"
      },
      "ExpiryMonth": {
        "maximum": 12,
        "minimum": 1,
        "type": "integer",
        "description": "The card's expiration month.",
        "format": "int32",
        "example": 5
      },
      "ExpiryYear": {
        "maxLength": 4,
        "minLength": 4,
        "type": "integer",
        "description": "The card's expiration year.",
        "format": "int32",
        "example": 2025
      },
      "IssuingCardMetadata": {
        "type": "object",
        "properties": {
          "udf1": {
            "pattern": "^.{0,255}$",
            "type": "string",
            "description": "User defined field 1",
            "example": "metadata1"
          },
          "udf2": {
            "pattern": "^.{0,255}$",
            "type": "string",
            "description": "User defined field 2",
            "example": "metadata2"
          },
          "udf3": {
            "pattern": "^.{0,255}$",
            "type": "string",
            "description": "User defined field 3",
            "example": "metadata3"
          },
          "udf4": {
            "pattern": "^.{0,255}$",
            "type": "string",
            "description": "User defined field 4",
            "example": "metadata4"
          },
          "udf5": {
            "pattern": "^.{0,255}$",
            "type": "string",
            "description": "User defined field 5",
            "example": "metadata5"
          }
        },
        "description": "User's metadata.\n"
      },
      "IssuingDevice": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The device ID.",
            "example": "04431C7B514E80018306224737548585F11415F67C4E2EB6"
          },
          "type": {
            "enum": [
              "host_card_emulation",
              "samsung_phone",
              "samsung_tablet",
              "samsung_watch",
              "samsung_tv",
              "iphone",
              "iwatch",
              "ipad",
              "mac_book",
              "android_phone",
              "android_tablet",
              "android_watch",
              "mobile_phone",
              "tablet",
              "watch",
              "mobile_phone_or_tablet",
              "bracelet",
              "unknown"
            ],
            "type": "string",
            "description": "The device type.",
            "example": "iphone"
          },
          "manufacturer": {
            "type": "string",
            "description": "The device manufacturer.",
            "example": "ios"
          },
          "brand": {
            "type": "string",
            "description": "The device brand."
          },
          "model": {
            "type": "string",
            "description": "The device model."
          },
          "os_version": {
            "type": "string",
            "description": "The device operating system version.",
            "example": "13"
          },
          "firmware_version": {
            "type": "string",
            "description": "The device firmware version."
          },
          "phone_number": {
            "type": "string",
            "description": "The device phone number.",
            "example": "447505551234"
          },
          "device_name": {
            "type": "string",
            "description": "The device name.",
            "example": "John's iPhone"
          },
          "device_parent_id": {
            "type": "string",
            "description": "The device parent ID."
          },
          "language": {
            "type": "string",
            "description": "The device language."
          },
          "serial_number": {
            "type": "string",
            "description": "The device serial number."
          },
          "time_zone": {
            "type": "string",
            "description": "The device time zone."
          },
          "time_zone_setting": {
            "enum": [
              "network_set",
              "consumer_set"
            ],
            "type": "string",
            "description": "The device time zone setting.",
            "example": "network_set"
          },
          "sim_serial_number": {
            "type": "string",
            "description": "The device SIM serial number."
          },
          "imei": {
            "type": "string",
            "description": "The device International Mobile Equipment Identity (IMEI) number.",
            "example": "000000000000024"
          },
          "network_operator": {
            "type": "string",
            "description": "The device network operator."
          },
          "network_type": {
            "enum": [
              "cellular",
              "wifi"
            ],
            "type": "string",
            "description": "The device network type.",
            "example": "wifi"
          }
        }
      },
      "IssuingDigitalStatus": {
        "enum": [
          "active",
          "inactive",
          "deleted"
        ],
        "type": "string",
        "description": "The digital card's current status, which determines whether it can approve incoming authorizations:\n\n- `inactive`: the default state - authorizations will be declined until the card is activated\n- `active`: authorization requests can be approved\n- `deleted`: incoming authorization requests will be declined, permanently — the card cannot be reactivated from this state\n",
        "example": "active"
      },
      "IssuingRequestor": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The requestor ID.",
            "example": "501103353211"
          },
          "name": {
            "type": "string",
            "description": "The requestor name.",
            "example": "APPLE PAY"
          }
        }
      },
      "IssuingRevocationDate": {
        "type": "string",
        "description": "Deprecated. Use `scheduled_revocation_date` instead.\n\nDate scheduling the card's automatic revocation.\n\n- Supported format: `YYYY-MM-DD` (time is midnight UTC)\n",
        "format": "date",
        "example": "2027-03-12T00:00:00.0000000",
        "deprecated": true
      },
      "IssuingScheduledActivationDate": {
        "type": "string",
        "description": "Date scheduling the card's first activation. Only applies to the initial activation of a card. Two formats are supported:\n\n- Date only: `YYYY-MM-DD` (treated as midnight UTC)\n- Date with round hour: `YYYY-MM-DDTHH:mmZ` (UTC) or `YYYY-MM-DDTHH:mm±HH:mm` (offset)\n\nOnly 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.\n",
        "example": "2026-06-01T10:00Z"
      },
      "IssuingScheduledRevocationDate": {
        "type": "string",
        "description": "The card will be revoked at midnight UTC on the date specified.\n\n- Format: `YYYY-MM-DD`\n",
        "format": "date",
        "example": "2027-03-12T00:00:00.0000000"
      },
      "IssuingStatus": {
        "enum": [
          "active",
          "inactive",
          "revoked",
          "suspended"
        ],
        "type": "string",
        "description": "The card's status, which determines whether it can approve incoming authorizations:\n\n- `inactive`: the default state - authorizations will be declined until the card is activated\n- `active`: authorization requests can be approved\n- `suspended`: incoming authorization requests will be declined - the card can be reactivated to accept new authorizations\n- `revoked`: incoming authorization requests will be permanently declined - the card cannot be reactivated from this state\n",
        "example": "active"
      },
      "IssuingType": {
        "type": "string",
        "description": "The card type."
      },
      "LastActivatedOn": {
        "type": "string",
        "description": "The date and time the card was last activated.\n\nIf the card has never been activated, this field returns `null`.\n",
        "format": "date-time",
        "nullable": true,
        "readOnly": true,
        "example": "2019-09-10T10:11:12.0000000+00:00"
      },
      "LastFour": {
        "maximum": 4,
        "minimum": 4,
        "pattern": "^[0-9]{4}$",
        "type": "string",
        "description": "The last four digits of the card number, also known as the PAN.",
        "example": "1234"
      },
      "RenewedCardLinks": {
        "minItems": 1,
        "required": [
          "self",
          "credentials",
          "activate",
          "controls"
        ],
        "type": "object",
        "properties": {
          "self": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingLink"
              }
            ],
            "description": "The URI to retrieve the card details."
          },
          "credentials": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingLink"
              }
            ],
            "description": "The URI to retrieve the card's credentials."
          },
          "activate": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingLink"
              }
            ],
            "description": "The URI to activate the card."
          },
          "controls": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingLink"
              }
            ],
            "description": "The URI to retrieve the card's controls."
          }
        },
        "description": "The links related to the card.",
        "example": {
          "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"
            ]
          }
        }
      },
      "Scheme": {
        "enum": [
          "mastercard",
          "visa"
        ],
        "type": "string",
        "description": "the card scheme.",
        "example": "mastercard"
      },
      "SuspendedCardLinks": {
        "minItems": 1,
        "required": [
          "self",
          "activate",
          "revoke",
          "controls"
        ],
        "type": "object",
        "properties": {
          "self": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingLink"
              }
            ],
            "description": "The URI to retrieve the card details."
          },
          "activate": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingLink"
              }
            ],
            "description": "The URI to activate the card."
          },
          "revoke": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingLink"
              }
            ],
            "description": "The URI to revoke the card."
          },
          "controls": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingLink"
              }
            ],
            "description": "The URI to retrieve the card's controls."
          }
        },
        "description": "The links related to the card.",
        "example": {
          "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"
            ]
          }
        }
      },
      "physical_card": {
        "properties": {
          "display_name": {
            "$ref": "#/components/schemas/DisplayName"
          },
          "shipping_instructions": {
            "$ref": "#/components/schemas/IssuingShippingInstruction"
          },
          "reference": {
            "$ref": "#/components/schemas/IssuingReference"
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingCardMetadata"
              }
            ],
            "description": "User's metadata"
          }
        }
      },
      "virtual_card": {
        "properties": {
          "display_name": {
            "$ref": "#/components/schemas/DisplayName"
          },
          "reference": {
            "$ref": "#/components/schemas/IssuingReference"
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingCardMetadata"
              }
            ],
            "description": "User's metadata"
          }
        }
      },
      "renew-card-response": {
        "type": "object",
        "properties": {
          "parent_card_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingCardId"
              }
            ],
            "description": "The unique identifier of the card that was renewed."
          },
          "cardholder_id": {
            "$ref": "#/components/schemas/IssuingCardholderId"
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingStatus"
              }
            ],
            "example": "inactive"
          },
          "type": {
            "$ref": "#/components/schemas/IssuingType"
          },
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingCardId"
              }
            ],
            "description": "The unique identifier of the new card.",
            "example": "crd_zdihd7452165pk5lgywaa52147"
          },
          "client_id": {
            "$ref": "#/components/schemas/IssuingClientId"
          },
          "entity_id": {
            "$ref": "#/components/schemas/IssuingEntityId"
          },
          "last_four": {
            "$ref": "#/components/schemas/LastFour"
          },
          "expiry_year": {
            "$ref": "#/components/schemas/ExpiryYear"
          },
          "expiry_month": {
            "$ref": "#/components/schemas/ExpiryMonth"
          },
          "display_name": {
            "$ref": "#/components/schemas/DisplayName"
          },
          "reference": {
            "$ref": "#/components/schemas/IssuingReference"
          },
          "created_date": {
            "$ref": "#/components/schemas/Datetime"
          },
          "billing_currency": {
            "$ref": "#/components/schemas/IssuingCurrency"
          },
          "issuing_country": {
            "$ref": "#/components/schemas/IssuingCountry"
          },
          "_links": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RenewedCardLinks"
              }
            ]
          }
        }
      },
      "revoke-card-request": {
        "type": "object",
        "properties": {
          "reason": {
            "enum": [
              "expired",
              "reported_lost",
              "reported_stolen"
            ],
            "type": "string",
            "description": "The reason why the card is being revoked.",
            "example": "reported_lost"
          }
        }
      },
      "revoke-card-response": {
        "type": "object",
        "properties": {
          "_links": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardLink"
              }
            ]
          }
        }
      },
      "suspend-card-request": {
        "type": "object",
        "properties": {
          "reason": {
            "enum": [
              "suspected_lost",
              "suspected_stolen"
            ],
            "type": "string",
            "description": "The reason why the card is being suspended.",
            "example": "suspected_lost"
          }
        }
      },
      "suspend-card-response": {
        "type": "object",
        "properties": {
          "_links": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SuspendedCardLinks"
              }
            ]
          }
        }
      },
      "update-card-request": {
        "type": "object",
        "properties": {
          "status": {
            "enum": [
              "active"
            ],
            "type": "string",
            "description": "Set the card's status to `active` to activate an `inactive` or `suspended` card.\n\nIf you submit this field, you cannot specify a `scheduled_activation_date`. If you do, you receive a `scheduled_activation_date_conflicts_with_activation` error.\n",
            "example": "active"
          },
          "reference": {
            "$ref": "#/components/schemas/IssuingReference"
          },
          "metadata": {
            "$ref": "#/components/schemas/IssuingCardMetadata"
          },
          "expiry_month": {
            "$ref": "#/components/schemas/ExpiryMonth"
          },
          "expiry_year": {
            "$ref": "#/components/schemas/ExpiryYear"
          },
          "scheduled_revocation_date": {
            "$ref": "#/components/schemas/IssuingScheduledRevocationDate"
          },
          "revocation_date": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingRevocationDate"
              }
            ],
            "description": "Deprecated. Use `scheduled_revocation_date` instead.\n\nIf you provide both fields, the `scheduled_revocation_date` value overrides this value.\n",
            "deprecated": true
          },
          "scheduled_activation_date": {
            "$ref": "#/components/schemas/IssuingScheduledActivationDate"
          }
        },
        "description": "The card fields to update."
      },
      "update-card-response": {
        "required": [
          "id",
          "client_id",
          "entity_id",
          "cardholder_id",
          "card_product_id",
          "last_four",
          "expiry_month",
          "expiry_year",
          "status",
          "type",
          "billing_currency",
          "issuing_country",
          "scheme",
          "last_modified_date"
        ],
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/IssuingCardId"
          },
          "client_id": {
            "$ref": "#/components/schemas/IssuingClientId"
          },
          "entity_id": {
            "$ref": "#/components/schemas/IssuingEntityId"
          },
          "cardholder_id": {
            "$ref": "#/components/schemas/IssuingCardholderId"
          },
          "card_product_id": {
            "$ref": "#/components/schemas/IssuingCardProductId"
          },
          "user_id": {
            "$ref": "#/components/schemas/IssuingUserId"
          },
          "last_four": {
            "$ref": "#/components/schemas/LastFour"
          },
          "expiry_month": {
            "$ref": "#/components/schemas/ExpiryMonth"
          },
          "expiry_year": {
            "$ref": "#/components/schemas/ExpiryYear"
          },
          "status": {
            "$ref": "#/components/schemas/IssuingStatus"
          },
          "display_name": {
            "$ref": "#/components/schemas/DisplayName"
          },
          "type": {
            "$ref": "#/components/schemas/IssuingType"
          },
          "billing_currency": {
            "$ref": "#/components/schemas/IssuingCurrency"
          },
          "issuing_country": {
            "$ref": "#/components/schemas/IssuingCountry"
          },
          "reference": {
            "$ref": "#/components/schemas/IssuingReference"
          },
          "metadata": {
            "$ref": "#/components/schemas/IssuingCardMetadata"
          },
          "scheduled_revocation_date": {
            "$ref": "#/components/schemas/IssuingScheduledRevocationDate"
          },
          "revocation_date": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingRevocationDate"
              }
            ],
            "description": "Deprecated. Use `scheduled_revocation_date` instead.",
            "deprecated": true
          },
          "scheduled_activation_date": {
            "$ref": "#/components/schemas/IssuingScheduledActivationDate"
          },
          "last_activated_on": {
            "$ref": "#/components/schemas/LastActivatedOn"
          },
          "root_card_id": {
            "$ref": "#/components/schemas/IssuingRootCardId"
          },
          "parent_card_id": {
            "$ref": "#/components/schemas/IssuingParentCardId"
          },
          "scheme": {
            "$ref": "#/components/schemas/Scheme"
          },
          "created_date": {
            "$ref": "#/components/schemas/Datetime"
          },
          "last_modified_date": {
            "$ref": "#/components/schemas/Datetime"
          },
          "_links": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardLinks"
              }
            ]
          }
        },
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "virtual": "#/components/schemas/update-virtual-card-response",
            "physical": "#/components/schemas/update-physical-card-response"
          }
        }
      },
      "update-physical-card-response": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/update-card-response"
          },
          {
            "type": "object"
          }
        ]
      },
      "update-virtual-card-response": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/update-card-response"
          },
          {
            "type": "object",
            "properties": {
              "is_single_use": {
                "type": "boolean",
                "description": "Specifies whether the virtual card is set to expire after a single use.",
                "default": false
              }
            }
          }
        ]
      },
      "get-digital-card-response": {
        "required": [
          "id",
          "card_id",
          "client_id",
          "entity_id",
          "last_four",
          "status"
        ],
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/IssuingDigitalCardId"
          },
          "card_id": {
            "$ref": "#/components/schemas/IssuingCardId"
          },
          "client_id": {
            "$ref": "#/components/schemas/IssuingClientId"
          },
          "entity_id": {
            "$ref": "#/components/schemas/IssuingEntityId"
          },
          "last_four": {
            "$ref": "#/components/schemas/LastFour"
          },
          "status": {
            "$ref": "#/components/schemas/IssuingDigitalStatus"
          },
          "type": {
            "$ref": "#/components/schemas/DigitalCardType"
          },
          "scheme_card_id": {
            "$ref": "#/components/schemas/IssuingSchemeCardId"
          },
          "requestor": {
            "$ref": "#/components/schemas/IssuingRequestor"
          },
          "device": {
            "$ref": "#/components/schemas/IssuingDevice"
          },
          "provisioned_on": {
            "$ref": "#/components/schemas/Datetime"
          },
          "_links": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DigitalCardLinks"
              }
            ]
          }
        }
      },
      "BusinessType": {
        "enum": [
          "issuing",
          "business_account"
        ],
        "type": "string",
        "description": "The type of business.",
        "example": "business_account"
      },
      "Datetime": {
        "type": "string",
        "format": "UTC",
        "example": "2021-09-09T19:41:39Z"
      },
      "IssuingAddress": {
        "required": [
          "address_line1",
          "city",
          "zip",
          "country"
        ],
        "type": "object",
        "properties": {
          "address_line1": {
            "maxLength": 45,
            "minLength": 1,
            "pattern": "^[a-zA-Z0-9/àáâäãåąčćęèéêëėįìíîïłńòóôöõøùúûüųūÿýżźñçčšžÀÁÂÄÃÅĄĆČĖĘÈÉÊËÌÍÎÏĮŁŃÒÓÔÖÕØÙÚÛÜŲŪŸÝŻŹÑßÇŒÆČŠŽ∂ð \\-,.'_#:]{1,45}$",
            "type": "string",
            "description": "The first line of the address.",
            "example": "Checkout.com"
          },
          "address_line2": {
            "maxLength": 45,
            "minLength": 1,
            "pattern": "^[a-zA-Z0-9/àáâäãåąčćęèéêëėįìíîïłńòóôöõøùúûüųūÿýżźñçčšžÀÁÂÄÃÅĄĆČĖĘÈÉÊËÌÍÎÏĮŁŃÒÓÔÖÕØÙÚÛÜŲŪŸÝŻŹÑßÇŒÆČŠŽ∂ð \\-,.'_#:]{1,45}$",
            "type": "string",
            "description": "The second line of the address.",
            "example": "90 Tottenham Court Road"
          },
          "city": {
            "maxLength": 128,
            "minLength": 1,
            "pattern": "^[a-zA-ZàáâäãåąčćęèéêëėįìíîïłńòóôöõøùúûüųūÿýżźñçčšžÀÁÂÄÃÅĄĆČĖĘÈÉÊËÌÍÎÏĮŁŃÒÓÔÖÕØÙÚÛÜŲŪŸÝŻŹÑßÇŒÆČŠŽ∂ð ,.'\\-]{1,128}$",
            "type": "string",
            "description": "The address city.",
            "example": "London"
          },
          "state": {
            "maxLength": 128,
            "minLength": 1,
            "pattern": "^[a-zA-ZàáâäãåąčćęèéêëėįìíîïłńòóôöõøùúûüųūÿýżźñçčšžÀÁÂÄÃÅĄĆČĖĘÈÉÊËÌÍÎÏĮŁŃÒÓÔÖÕØÙÚÛÜŲŪŸÝŻŹÑßÇŒÆČŠŽ∂ð ,.'\\-]{1,128}$",
            "type": "string",
            "description": "The address state.",
            "example": "London"
          },
          "zip": {
            "maxLength": 10,
            "minLength": 1,
            "pattern": "^[0-9a-zA-Z ]{1,10}$",
            "type": "string",
            "description": "The address zip code, or postal code.",
            "example": "W1T 4TJ"
          },
          "country": {
            "maxLength": 2,
            "minLength": 2,
            "pattern": "^[A-Z]{2}$",
            "type": "string",
            "description": "The address country, as an <a href=\"https://www.checkout.com/docs/resources/codes/country-codes\" target=\"blank\">ISO country code</a>.",
            "example": "GB"
          }
        }
      },
      "IssuingCardholderId": {
        "maxLength": 30,
        "minLength": 30,
        "pattern": "^crh_[a-z0-9]{26}$",
        "type": "string",
        "description": "The cardholder's unique identifier.",
        "example": "crh_d3ozhf43pcq2xbldn2g45qnb44"
      },
      "IssuingCardId": {
        "maxLength": 30,
        "minLength": 30,
        "pattern": "^crd_[a-z0-9]{26}$",
        "type": "string",
        "description": "The card's unique identifier.",
        "example": "crd_fa6psq242dcd6fdn5gifcq1491"
      },
      "IssuingCardProductId": {
        "maxLength": 30,
        "minLength": 30,
        "pattern": "^pro_[a-z0-9]{26}$",
        "type": "string",
        "description": "The card product's unique identifier.",
        "example": "pro_7syjig3jq3mezlc3vjrdpfitl4"
      },
      "IssuingClientId": {
        "maxLength": 30,
        "minLength": 30,
        "pattern": "^cli_[a-z0-9]{26}$",
        "type": "string",
        "description": "The client's unique identifier.",
        "example": "cli_vkuhvk4vjn2edkps7dfsq6emqm"
      },
      "IssuingCountry": {
        "maxLength": 2,
        "minLength": 2,
        "type": "string",
        "description": "The issuing country, as a two-letter <a href=\"https://www.checkout.com/docs/resources/codes/country-codes\" target=\"blank\" >ISO country code</a>.",
        "example": "US"
      },
      "IssuingCurrency": {
        "maxLength": 3,
        "minLength": 3,
        "pattern": "^[a-zA-Z]{3}$",
        "type": "string",
        "description": "The issuing currency, as a three-letter <a href=\"https://docs.checkout.com/docs/currency-codes\" target=\"blank\">ISO currency code</a>.",
        "format": "ISO4217",
        "example": "USD"
      },
      "IssuingDigitalCardId": {
        "maxLength": 30,
        "minLength": 30,
        "pattern": "^dcr_[a-z0-9]{26}$",
        "type": "string",
        "description": "The digital card's unique identifier.",
        "example": "dcr_5ngxzsynm2me3oxf73esbhda6q"
      },
      "IssuingEmail": {
        "maxLength": 254,
        "minLength": 3,
        "type": "string",
        "description": "The cardholder's email address. \n\nEmails are validated against the <a href=\"https://datatracker.ietf.org/doc/html/rfc6530\">rfc6530</a> standard.\n",
        "format": "email",
        "example": "john.kennedy@myemaildomain.com"
      },
      "IssuingEntityId": {
        "maxLength": 30,
        "minLength": 30,
        "pattern": "^ent_[a-z0-9]{26}$",
        "type": "string",
        "description": "The entity's unique identifier.",
        "example": "ent_fa6psq242dcd6fdn5gifcq1491"
      },
      "IssuingFileId": {
        "maxLength": 31,
        "minLength": 31,
        "pattern": "^file_[a-z0-9]{26}$",
        "type": "string",
        "description": "The unique Checkout.com identifier for the uploaded file.",
        "example": "file_6lbss42ezvoufcb2beo76rvwly"
      },
      "IssuingLink": {
        "required": [
          "href",
          "actions",
          "types"
        ],
        "type": "object",
        "properties": {
          "href": {
            "maxLength": 100,
            "pattern": "^https:\\/.*$",
            "type": "string",
            "description": "The link URL."
          },
          "actions": {
            "maxItems": 20,
            "type": "array",
            "items": {
              "maxLength": 100,
              "pattern": "^(GET|POST|PUT|DELETE|PATCH)$",
              "enum": [
                "GET",
                "POST",
                "PUT",
                "DELETE",
                "PATCH"
              ],
              "type": "string"
            },
            "additionalProperties": false,
            "description": "The HTTP Methods that can be performed on the link."
          },
          "types": {
            "type": "array",
            "items": {
              "maxLength": 100,
              "pattern": "^application\\/.*$",
              "type": "string"
            },
            "additionalProperties": false,
            "description": "The Content Types for the link to the resource"
          }
        },
        "additionalProperties": false
      },
      "IssuingNotFoundError": {
        "type": "object",
        "properties": {
          "request_id": {
            "type": "string",
            "example": "0HLHPN8802NUF:00000003"
          },
          "error_type": {
            "type": "string",
            "example": "not_found"
          },
          "error_codes": {
            "type": "array",
            "items": {
              "type": "string",
              "example": "card_not_found"
            }
          }
        }
      },
      "IssuingParentCardId": {
        "maxLength": 30,
        "minLength": 30,
        "pattern": "^crd_[a-z0-9]{26}$",
        "type": "string",
        "description": "When a card is renewed, the unique identifier of the previous card in the renewal history.",
        "example": "crd_qm26t52qz3yejjo2t4btqvxtzi"
      },
      "IssuingPhoneNumber": {
        "type": "object",
        "properties": {
          "country_code": {
            "maxLength": 7,
            "minLength": 1,
            "type": "string",
            "description": "The international <a href=\"https://docs.checkout.com/resources/codes/country-codes\" target=\"blank\">country calling code</a>.",
            "example": "+1"
          },
          "number": {
            "maxLength": 25,
            "minLength": 6,
            "type": "string",
            "description": "A valid phone number without leading zeros.",
            "example": "415 555 2671"
          }
        },
        "description": "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."
      },
      "IssuingReference": {
        "maxLength": 256,
        "type": "string",
        "description": "Your reference.",
        "example": "X-123456-N11"
      },
      "IssuingRootCardId": {
        "maxLength": 30,
        "minLength": 30,
        "pattern": "^crd_[a-z0-9]{26}$",
        "type": "string",
        "description": "When a card is renewed, the unique identifier of the first card in the renewal history.",
        "example": "crd_fa6psq242dcd6fdn5gifcq1491"
      },
      "IssuingSchemeCardId": {
        "maxLength": 128,
        "type": "string",
        "description": "The ID that the card scheme’s token service provider (TSP) assigns to the PAN at the first tokenization.",
        "example": "FAPLMC00002572060f2b2213c3964c44b218665ef9dd0d72"
      },
      "IssuingShippingContact": {
        "required": [
          "first_name",
          "last_name",
          "phone_number"
        ],
        "type": "object",
        "properties": {
          "first_name": {
            "maxLength": 40,
            "minLength": 1,
            "pattern": "^[a-zA-Z'\\- ]{1,40}$",
            "type": "string",
            "description": "The cardholder's first name.",
            "example": "John"
          },
          "last_name": {
            "maxLength": 40,
            "minLength": 1,
            "pattern": "^[a-zA-Z'\\- ]{1,40}$",
            "type": "string",
            "description": "The cardholder's last name.",
            "example": "Kennedy"
          },
          "phone_number": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingPhoneNumber"
              }
            ]
          }
        }
      },
      "IssuingShippingInstruction": {
        "required": [
          "shipping_address"
        ],
        "type": "object",
        "properties": {
          "shipping_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingAddress"
              }
            ],
            "description": "The address to ship the physical card to."
          },
          "shipping_recipient": {
            "maxLength": 256,
            "minLength": 1,
            "type": "string",
            "description": "The name of the person the card will be shipped to.",
            "example": "john kennedy",
            "deprecated": true
          },
          "additional_comment": {
            "maxLength": 256,
            "minLength": 1,
            "type": "string",
            "description": "Any additional comment on shipping.",
            "deprecated": true
          }
        }
      },
      "IssuingUserId": {
        "maxLength": 30,
        "minLength": 30,
        "pattern": "^usr_[a-z0-9]{26}$",
        "type": "string",
        "description": "The Dashboard user's unique identifier.",
        "example": "usr_fa6psq242dcd6fdn5gifcq1491"
      },
      "IssuingValidationError": {
        "type": "object",
        "properties": {
          "request_id": {
            "type": "string",
            "example": "0HLHPN8802NUF:00000003"
          },
          "error_type": {
            "type": "string",
            "example": "request_invalid"
          },
          "error_codes": {
            "maxItems": 20,
            "type": "array",
            "items": {
              "type": "string",
              "example": "request_body_malformed"
            }
          }
        },
        "additionalProperties": false
      },
      "cko-request-id": {
        "type": "string",
        "description": "ID to correlate requests.",
        "example": "3729b06b-5a63-4425-bc34-23dfc158ddfe"
      },
      "add-control-group-mcc-limit-request": {
        "title": "mcc_limit",
        "required": [
          "control_type",
          "mcc_limit"
        ],
        "type": "object",
        "properties": {
          "description": {
            "maxLength": 256,
            "type": "string",
            "description": "A description for the control."
          },
          "control_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingControlType"
              }
            ],
            "example": "mcc_limit"
          },
          "mcc_limit": {
            "$ref": "#/components/schemas/MccLimit"
          }
        }
      },
      "add-control-group-mid-limit-request": {
        "title": "mid_limit",
        "required": [
          "control_type",
          "mid_limit"
        ],
        "type": "object",
        "properties": {
          "description": {
            "maxLength": 256,
            "type": "string",
            "description": "A description for the control."
          },
          "control_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingControlType"
              }
            ],
            "example": "mid_limit"
          },
          "mid_limit": {
            "$ref": "#/components/schemas/MidLimit"
          }
        }
      },
      "add-control-group-request-control": {
        "required": [
          "control_type"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/add-control-group-velocity-limit-request"
          },
          {
            "$ref": "#/components/schemas/add-control-group-mcc-limit-request"
          },
          {
            "$ref": "#/components/schemas/add-control-group-mid-limit-request"
          }
        ],
        "properties": {
          "description": {
            "maxLength": 256,
            "type": "string",
            "description": "A description for the control."
          },
          "control_type": {
            "$ref": "#/components/schemas/IssuingControlType"
          }
        },
        "description": "The control to create.",
        "discriminator": {
          "propertyName": "control_type",
          "mapping": {
            "velocity_limit": "#/components/schemas/add-control-group-velocity-limit-request",
            "mcc_limit": "#/components/schemas/add-control-group-mcc-limit-request",
            "mid_limit": "#/components/schemas/add-control-group-mid-limit-request"
          }
        }
      },
      "add-control-group-request": {
        "required": [
          "target_id",
          "fail_if",
          "controls"
        ],
        "type": "object",
        "properties": {
          "description": {
            "maxLength": 256,
            "type": "string",
            "description": "A description for the control group."
          },
          "target_id": {
            "$ref": "#/components/schemas/IssuingTargetIdForAdd"
          },
          "fail_if": {
            "$ref": "#/components/schemas/ControlGroupCondition"
          },
          "controls": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/add-control-group-request-control"
            },
            "description": "The controls that belong to the group."
          }
        },
        "description": "The control group to create.",
        "example": {
          "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-response": {
        "required": [
          "id",
          "target_id",
          "fail_if",
          "controls",
          "is_editable",
          "created_date",
          "last_modified_date",
          "_links"
        ],
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/IssuingControlGroupId"
          },
          "description": {
            "maxLength": 256,
            "type": "string",
            "description": "A description for the control group."
          },
          "target_id": {
            "$ref": "#/components/schemas/IssuingTargetId"
          },
          "fail_if": {
            "$ref": "#/components/schemas/ControlGroupCondition"
          },
          "controls": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/add-control-group-request-control"
            },
            "description": "The controls that belong to the group."
          },
          "is_editable": {
            "$ref": "#/components/schemas/ControlGroupIsEditable"
          },
          "created_date": {
            "type": "string",
            "format": "date-time"
          },
          "last_modified_date": {
            "type": "string",
            "format": "date-time"
          },
          "_links": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ControlGroupLinks"
              }
            ]
          }
        },
        "description": "The control group's details.",
        "example": {
          "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.7155085+00:00",
          "last_modified_date": "2023-12-06T14:01:31.7155085+00:00",
          "_links": {
            "self": {
              "href": "https://{prefix}.api.checkout.com/issuing/controls/control-groups/cgr_oemoyd3otivelkhf4zcnimwdva",
              "actions": [
                "GET"
              ],
              "types": [
                "application/json"
              ]
            }
          }
        }
      },
      "add-control-group-velocity-limit-request": {
        "title": "velocity_limit",
        "required": [
          "control_type",
          "velocity_limit"
        ],
        "type": "object",
        "properties": {
          "description": {
            "maxLength": 256,
            "type": "string",
            "description": "A description for the control."
          },
          "control_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingControlType"
              }
            ],
            "example": "velocity_limit"
          },
          "velocity_limit": {
            "$ref": "#/components/schemas/VelocityLimit"
          }
        }
      },
      "add-control-profile-request": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Control profile name."
          }
        },
        "description": "The control profile to create",
        "example": {
          "name": "Low Risk MCC Profile"
        }
      },
      "add-control-profile-target-response": {
        "type": "object",
        "properties": {
          "_links": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ControlProfileLinks"
              }
            ]
          }
        }
      },
      "add-update-control-profile-response": {
        "required": [
          "id",
          "name",
          "created_date",
          "last_modified_date",
          "_links"
        ],
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/IssuingControlProfileId"
          },
          "name": {
            "maxLength": 256,
            "type": "string",
            "description": "Control profile name."
          },
          "created_date": {
            "type": "string",
            "description": "Creation date of the control profile.",
            "format": "date-time"
          },
          "last_modified_date": {
            "type": "string",
            "format": "date-time"
          },
          "_links": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ControlProfileLinks"
              }
            ]
          }
        },
        "description": "The control profile's details.",
        "example": {
          "id": "cpr_j4mvlui5qotufgvaeqwhvlbfna",
          "name": "Low Risk MCC Profile",
          "created_date": "2024-03-12T18:13:45.7155085+00:00",
          "last_modified_date": "2024-03-12T18:13:45.7155085+00:00",
          "_links": {
            "self": {
              "href": "https://{prefix}.api.checkout.com/issuing/controls/control-profiles/cpr_j4mvlui5qotufgvaeqwhvlbfna",
              "actions": [
                "GET"
              ],
              "types": [
                "application/json"
              ]
            }
          }
        }
      },
      "add-control-request": {
        "required": [
          "control_type",
          "target_id"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/velocity-limit-request"
          },
          {
            "$ref": "#/components/schemas/mcc-limit-request"
          },
          {
            "$ref": "#/components/schemas/mid-limit-request"
          }
        ],
        "properties": {
          "description": {
            "maxLength": 256,
            "type": "string",
            "description": "A description for the control."
          },
          "control_type": {
            "$ref": "#/components/schemas/IssuingControlType"
          },
          "target_id": {
            "$ref": "#/components/schemas/IssuingTargetIdForAdd"
          }
        },
        "description": "The control to create.",
        "discriminator": {
          "propertyName": "control_type",
          "mapping": {
            "velocity_limit": "#/components/schemas/velocity-limit-request",
            "mcc_limit": "#/components/schemas/mcc-limit-request",
            "mid_limit": "#/components/schemas/mid-limit-request"
          }
        }
      },
      "add-control-response": {
        "required": [
          "id",
          "control_type",
          "target_id",
          "is_editable",
          "created_date",
          "last_modified_date",
          "_links"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/velocity-limit-response"
          },
          {
            "$ref": "#/components/schemas/mcc-limit-response"
          },
          {
            "$ref": "#/components/schemas/mid-limit-response"
          }
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/IssuingControlId"
          },
          "description": {
            "maxLength": 256,
            "type": "string",
            "description": "A description for the control."
          },
          "control_type": {
            "$ref": "#/components/schemas/IssuingControlType"
          },
          "target_id": {
            "$ref": "#/components/schemas/IssuingTargetId"
          },
          "is_editable": {
            "$ref": "#/components/schemas/ControlIsEditable"
          },
          "created_date": {
            "type": "string",
            "format": "date-time",
            "example": "2023-03-12T18:20:12.0000000+00:00"
          },
          "last_modified_date": {
            "type": "string",
            "format": "date-time",
            "example": "2023-03-12T18:20:12.0000000+00:00"
          },
          "_links": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ControlLinks"
              }
            ]
          }
        },
        "description": "The control's details.",
        "discriminator": {
          "propertyName": "control_type",
          "mapping": {
            "velocity_limit": "#/components/schemas/velocity-limit-response",
            "mcc_limit": "#/components/schemas/mcc-limit-response",
            "mid_limit": "#/components/schemas/mid-limit-response"
          }
        }
      },
      "mcc-limit-request": {
        "title": "mcc_limit",
        "required": [
          "control_type",
          "target_id",
          "mcc_limit"
        ],
        "type": "object",
        "properties": {
          "description": {
            "maxLength": 256,
            "type": "string",
            "description": "A description for the control.",
            "example": "Allow the card to be used only in restaurants and supermarkets"
          },
          "control_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingControlType"
              }
            ],
            "example": "mcc_limit"
          },
          "target_id": {
            "$ref": "#/components/schemas/IssuingTargetIdForAdd"
          },
          "mcc_limit": {
            "$ref": "#/components/schemas/MccLimit"
          }
        }
      },
      "mcc-limit-response": {
        "title": "mcc_limit",
        "required": [
          "id",
          "control_type",
          "target_id",
          "is_editable",
          "created_date",
          "last_modified_date",
          "_links",
          "mcc_limit"
        ],
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/IssuingControlId"
          },
          "description": {
            "maxLength": 256,
            "type": "string",
            "description": "A description for the control.",
            "example": "Allow the card to be used only in restaurants and supermarkets"
          },
          "control_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingControlType"
              },
              {
                "enum": [
                  "mcc_limit"
                ]
              }
            ],
            "example": "mcc_limit"
          },
          "target_id": {
            "$ref": "#/components/schemas/IssuingTargetId"
          },
          "is_editable": {
            "$ref": "#/components/schemas/ControlIsEditable"
          },
          "created_date": {
            "type": "string",
            "format": "date-time",
            "example": "2023-03-12T18:20:12.0000000+00:00"
          },
          "last_modified_date": {
            "type": "string",
            "format": "date-time",
            "example": "2023-03-12T18:20:12.0000000+00:00"
          },
          "_links": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ControlLinks"
              }
            ]
          },
          "mcc_limit": {
            "$ref": "#/components/schemas/MccLimit"
          }
        }
      },
      "mid-limit-request": {
        "title": "mid_limit",
        "required": [
          "control_type",
          "target_id",
          "mid_limit"
        ],
        "type": "object",
        "properties": {
          "description": {
            "maxLength": 256,
            "type": "string",
            "description": "A description for the control.",
            "example": "Allow the card to be used only in AZ Pizza"
          },
          "control_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingControlType"
              }
            ],
            "example": "mid_limit"
          },
          "target_id": {
            "$ref": "#/components/schemas/IssuingTargetIdForAdd"
          },
          "mid_limit": {
            "$ref": "#/components/schemas/MidLimit"
          }
        }
      },
      "mid-limit-response": {
        "title": "mid_limit",
        "required": [
          "id",
          "control_type",
          "target_id",
          "is_editable",
          "created_date",
          "last_modified_date",
          "_links",
          "mid_limit"
        ],
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/IssuingControlId"
          },
          "description": {
            "maxLength": 256,
            "type": "string",
            "description": "A description for the control.",
            "example": "Allow the card to be used only in AZ Pizza"
          },
          "control_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingControlType"
              },
              {
                "enum": [
                  "mid_limit"
                ]
              }
            ],
            "example": "mid_limit"
          },
          "target_id": {
            "$ref": "#/components/schemas/IssuingTargetId"
          },
          "is_editable": {
            "$ref": "#/components/schemas/ControlIsEditable"
          },
          "created_date": {
            "type": "string",
            "format": "date-time",
            "example": "2023-03-12T18:20:12.0000000+00:00"
          },
          "last_modified_date": {
            "type": "string",
            "format": "date-time",
            "example": "2023-03-12T18:20:12.0000000+00:00"
          },
          "_links": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ControlLinks"
              }
            ]
          },
          "mid_limit": {
            "$ref": "#/components/schemas/MidLimit"
          }
        }
      },
      "velocity-limit-request": {
        "title": "velocity_limit",
        "required": [
          "control_type",
          "target_id",
          "velocity_limit"
        ],
        "type": "object",
        "properties": {
          "description": {
            "maxLength": 256,
            "type": "string",
            "description": "A description for the control.",
            "example": "Maximum spend of 500€ per week for restaurants"
          },
          "control_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingControlType"
              }
            ],
            "example": "velocity_limit"
          },
          "target_id": {
            "$ref": "#/components/schemas/IssuingTargetIdForAdd"
          },
          "velocity_limit": {
            "$ref": "#/components/schemas/VelocityLimit"
          }
        }
      },
      "velocity-limit-response": {
        "title": "velocity_limit",
        "required": [
          "id",
          "control_type",
          "target_id",
          "is_editable",
          "created_date",
          "last_modified_date",
          "_links",
          "velocity_limit"
        ],
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/IssuingControlId"
          },
          "description": {
            "maxLength": 256,
            "type": "string",
            "description": "A description for the control.",
            "example": "Maximum spend of 500€ per week for restaurants"
          },
          "control_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingControlType"
              },
              {
                "enum": [
                  "velocity_limit"
                ]
              }
            ],
            "example": "velocity_limit"
          },
          "target_id": {
            "$ref": "#/components/schemas/IssuingTargetId"
          },
          "is_editable": {
            "$ref": "#/components/schemas/ControlIsEditable"
          },
          "created_date": {
            "type": "string",
            "format": "date-time",
            "example": "2023-03-12T18:20:12.0000000+00:00"
          },
          "last_modified_date": {
            "type": "string",
            "format": "date-time",
            "example": "2023-03-12T18:20:12.0000000+00:00"
          },
          "_links": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ControlLinks"
              }
            ]
          },
          "velocity_limit": {
            "$ref": "#/components/schemas/VelocityLimit"
          }
        }
      },
      "get-control-group-response": {
        "required": [
          "id",
          "target_id",
          "fail_if",
          "controls",
          "is_editable",
          "created_date",
          "last_modified_date"
        ],
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/IssuingControlGroupId"
          },
          "description": {
            "maxLength": 256,
            "type": "string",
            "description": "A description for the control group."
          },
          "target_id": {
            "$ref": "#/components/schemas/IssuingTargetId"
          },
          "fail_if": {
            "$ref": "#/components/schemas/ControlGroupCondition"
          },
          "controls": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/add-control-group-request-control"
            },
            "description": "The controls that belong to the group."
          },
          "is_editable": {
            "$ref": "#/components/schemas/ControlGroupIsEditable"
          },
          "created_date": {
            "type": "string",
            "format": "date-time"
          },
          "last_modified_date": {
            "type": "string",
            "format": "date-time"
          }
        },
        "description": "The control group's details."
      },
      "get-control-groups-array-response": {
        "required": [
          "control_groups"
        ],
        "type": "object",
        "properties": {
          "control_groups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/get-control-group-response"
            },
            "description": "The list of control groups applied to the specified target.",
            "example": [
              {
                "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.7155085+00:00",
                "last_modified_date": "2023-12-06T14:01:31.7155085+00:00"
              },
              {
                "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.7155085+00:00",
                "last_modified_date": "2023-12-06T14:01:31.7155085+00:00"
              }
            ]
          }
        },
        "description": "The list of control groups applied to the specified target."
      },
      "get-control-profile-response": {
        "required": [
          "id",
          "name",
          "created_date",
          "last_modified_date"
        ],
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/IssuingControlProfileId"
          },
          "name": {
            "maxLength": 256,
            "type": "string",
            "description": "Control profile name."
          },
          "created_date": {
            "type": "string",
            "description": "Creation date of the control profile.",
            "format": "date-time"
          },
          "last_modified_date": {
            "type": "string",
            "description": "Last modified date of the control profile.",
            "format": "date-time"
          }
        },
        "description": "The control profile's details."
      },
      "get-control-profiles-client-response": {
        "required": [
          "control_profiles"
        ],
        "type": "object",
        "properties": {
          "control_profiles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/get-control-profile-response"
            },
            "description": "The list of control profiles for the specified client.",
            "example": [
              {
                "id": "cpr_j4mvlui5qotufgvaeqwhvlbfna",
                "name": "Low Risk MCC Profile",
                "created_date": "2024-03-12T18:13:45.7155085+00:00",
                "last_modified_date": "2024-03-13T15:44:56.7155085+00:00"
              },
              {
                "id": "cpr_53mkhdc4jjlu5jcryx76bjbrgm",
                "name": "Medium Risk MCC Profile",
                "created_date": "2024-05-05T10:43:13.7155085+00:00",
                "last_modified_date": "2024-06-17T06:32:18.7155085+00:00"
              },
              {
                "id": "cpr_j4ma3rclvgcu3pn5tsdgb3e3a4",
                "name": "High Risk MCC Profile",
                "created_date": "2024-02-29T12:55:55.7155085+00:00",
                "last_modified_date": "2024-03-01T10:12:12.7155085+00:00"
              }
            ]
          }
        },
        "description": "The list of control profiles for the specified client."
      },
      "get-control-mcc-limit-response": {
        "title": "mcc_limit",
        "required": [
          "id",
          "target_id",
          "description",
          "control_type",
          "is_editable",
          "created_date",
          "last_modified_date",
          "mcc_limit"
        ],
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/IssuingControlId"
          },
          "target_id": {
            "$ref": "#/components/schemas/IssuingTargetId"
          },
          "description": {
            "maxLength": 256,
            "type": "string",
            "description": "A description for the control.",
            "example": "Allow the card to be used only in restaurants and supermarkets"
          },
          "control_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingControlType"
              }
            ],
            "example": "mcc_limit"
          },
          "is_editable": {
            "$ref": "#/components/schemas/ControlIsEditable"
          },
          "created_date": {
            "$ref": "#/components/schemas/Datetime"
          },
          "last_modified_date": {
            "$ref": "#/components/schemas/Datetime"
          },
          "mcc_limit": {
            "$ref": "#/components/schemas/MccLimit"
          }
        }
      },
      "get-control-mid-limit-response": {
        "title": "mid_limit",
        "required": [
          "id",
          "target_id",
          "description",
          "control_type",
          "is_editable",
          "created_date",
          "last_modified_date",
          "mid_limit"
        ],
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/IssuingControlId"
          },
          "target_id": {
            "$ref": "#/components/schemas/IssuingTargetId"
          },
          "description": {
            "maxLength": 256,
            "type": "string",
            "description": "A description for the control.",
            "example": "Allow the card to be used only in AZ Pizza"
          },
          "control_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingControlType"
              }
            ],
            "example": "mid_limit"
          },
          "is_editable": {
            "$ref": "#/components/schemas/ControlIsEditable"
          },
          "created_date": {
            "$ref": "#/components/schemas/Datetime"
          },
          "last_modified_date": {
            "$ref": "#/components/schemas/Datetime"
          },
          "mid_limit": {
            "$ref": "#/components/schemas/MidLimit"
          }
        }
      },
      "get-control-response": {
        "required": [
          "id",
          "target_id",
          "description",
          "control_type",
          "is_editable",
          "created_date",
          "last_modified_date"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/get-control-velocity-limit-response"
          },
          {
            "$ref": "#/components/schemas/get-control-mcc-limit-response"
          },
          {
            "$ref": "#/components/schemas/get-control-mid-limit-response"
          }
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/IssuingControlId"
          },
          "target_id": {
            "$ref": "#/components/schemas/IssuingTargetId"
          },
          "description": {
            "maxLength": 256,
            "type": "string",
            "description": "A description for the control.",
            "example": "Max spend of 500€ per week for restaurants"
          },
          "control_type": {
            "$ref": "#/components/schemas/IssuingControlType"
          },
          "is_editable": {
            "$ref": "#/components/schemas/ControlIsEditable"
          },
          "created_date": {
            "$ref": "#/components/schemas/Datetime"
          },
          "last_modified_date": {
            "$ref": "#/components/schemas/Datetime"
          }
        },
        "description": "The control's details.",
        "discriminator": {
          "propertyName": "control_type",
          "mapping": {
            "velocity_limit": "#/components/schemas/get-control-velocity-limit-response",
            "mcc_limit": "#/components/schemas/get-control-mcc-limit-response",
            "mid_limit": "#/components/schemas/get-control-mid-limit-response"
          }
        }
      },
      "get-control-velocity-limit-response": {
        "title": "velocity_limit",
        "required": [
          "id",
          "target_id",
          "description",
          "control_type",
          "is_editable",
          "created_date",
          "last_modified_date",
          "velocity_limit"
        ],
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/IssuingControlId"
          },
          "target_id": {
            "$ref": "#/components/schemas/IssuingTargetId"
          },
          "description": {
            "maxLength": 256,
            "type": "string",
            "description": "A description for the control.",
            "example": "Maximum spend of 500€ per week for restaurants"
          },
          "control_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingControlType"
              }
            ],
            "example": "velocity_limit"
          },
          "is_editable": {
            "$ref": "#/components/schemas/ControlIsEditable"
          },
          "created_date": {
            "$ref": "#/components/schemas/Datetime"
          },
          "last_modified_date": {
            "$ref": "#/components/schemas/Datetime"
          },
          "velocity_limit": {
            "$ref": "#/components/schemas/VelocityLimitWithRemainingAmount"
          }
        }
      },
      "get-controls-array-response": {
        "required": [
          "controls"
        ],
        "type": "object",
        "properties": {
          "controls": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/get-control-response"
            },
            "description": "The list of controls applied to the specified target.",
            "example": [
              {
                "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:39.0000000+00:00",
                "last_modified_date": "2021-09-09T19:41:39.0000000+00:00",
                "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:39.0000000+00:00",
                "last_modified_date": "2021-09-09T19:41:39.0000000+00:00",
                "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:39.0000000+00:00",
                "last_modified_date": "2021-09-09T19:41:39.0000000+00:00",
                "mid_limit": {
                  "type": "allow",
                  "mid_list": [
                    593278,
                    541114
                  ]
                }
              }
            ]
          }
        },
        "description": "The list of controls applied to the specified target."
      },
      "ControlGroupCondition": {
        "enum": [
          "all_fail",
          "any_fail"
        ],
        "type": "string",
        "description": "Sets how to determine the result of the group.",
        "example": "all_fail"
      },
      "ControlGroupIsEditable": {
        "type": "boolean",
        "description": "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.",
        "example": true
      },
      "ControlGroupLinks": {
        "minItems": 1,
        "required": [
          "self"
        ],
        "type": "object",
        "properties": {
          "self": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingLink"
              }
            ],
            "description": "The URI to retrieve the control group's details."
          }
        },
        "description": "The links related to the control group.",
        "example": {
          "self": {
            "href": "https://{prefix}.api.checkout.com/issuing/controls/control-groups/cgr_oemoyd3otivelkhf4zcnimwdva",
            "actions": [
              "GET"
            ],
            "types": [
              "application/json"
            ]
          }
        }
      },
      "ControlIsEditable": {
        "type": "boolean",
        "description": "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.",
        "example": true
      },
      "ControlLinks": {
        "minItems": 1,
        "required": [
          "self"
        ],
        "type": "object",
        "properties": {
          "self": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingLink"
              }
            ],
            "description": "The URI to retrieve the control's details."
          }
        },
        "description": "The links related to the control.",
        "example": {
          "self": {
            "href": "https://{prefix}.api.checkout.com/issuing/controls/ctr_mbvprn5bm27ubh4c5rq5tha2wy",
            "actions": [
              "GET"
            ],
            "types": [
              "application/json"
            ]
          }
        }
      },
      "ControlProfileLinks": {
        "minItems": 1,
        "required": [
          "self"
        ],
        "type": "object",
        "properties": {
          "self": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingLink"
              }
            ],
            "description": "The URI to retrieve the control profile's details."
          }
        },
        "description": "The links related to the control profile.",
        "example": {
          "self": {
            "href": "https://{prefix}.api.checkout.com/issuing/controls/control-profiles/cpr_j4mvlui5qotufgvaeqwhvlbfna",
            "actions": [
              "GET"
            ],
            "types": [
              "application/json"
            ]
          }
        }
      },
      "IssuingControlGroupId": {
        "maxLength": 30,
        "minLength": 30,
        "pattern": "^cgr_[a-z0-9]{26}$",
        "type": "string",
        "description": "The control group's unique identifier.",
        "example": "cgr_oemoyd3otivelkhf4zcnimwdva"
      },
      "IssuingControlId": {
        "maxLength": 30,
        "minLength": 30,
        "pattern": "^ctr_[a-z0-9]{26}$",
        "type": "string",
        "description": "The control's unique identifier.",
        "example": "ctr_gp7vkmxayztufjz6top5bjcdra"
      },
      "IssuingControlProfileId": {
        "maxLength": 30,
        "minLength": 30,
        "pattern": "^cpr_[a-z0-9]{26}$",
        "type": "string",
        "description": "The control profile's unique identifier.",
        "example": "cpr_j4mvlui5qotufgvaeqwhvlbfna"
      },
      "IssuingControlType": {
        "enum": [
          "velocity_limit",
          "mcc_limit",
          "mid_limit"
        ],
        "type": "string",
        "description": "The control's type.\n\nA `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.\n",
        "example": "velocity_limit"
      },
      "IssuingTargetId": {
        "maxLength": 30,
        "minLength": 30,
        "pattern": "^(crd|cpr)_[a-z0-9]{26}$",
        "type": "string",
        "description": "The ID of the card or control profile.",
        "example": "crd_fa6psq42dcdd6fdn5gifcq1491"
      },
      "IssuingTargetIdForAdd": {
        "maxLength": 30,
        "minLength": 30,
        "pattern": "^(crd|cpr)_[a-z0-9]{26}$",
        "type": "string",
        "description": "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.",
        "example": "crd_fa6psq42dcdd6fdn5gifcq1491"
      },
      "IssuingTargetIdToAddToControlProfile": {
        "maxLength": 30,
        "minLength": 30,
        "pattern": "^crd_[a-z0-9]{26}$",
        "type": "string",
        "description": "The ID of the card to apply the control profile to.",
        "example": "crd_fa6psq42dcdd6fdn5gifcq1491"
      },
      "IssuingTargetIdToRemoveFromControlProfile": {
        "maxLength": 30,
        "minLength": 30,
        "pattern": "^crd_[a-z0-9]{26}$",
        "type": "string",
        "description": "The ID of the card the control profile should no longer apply to.",
        "example": "crd_fa6psq42dcdd6fdn5gifcq1491"
      },
      "MccLimit": {
        "required": [
          "mcc_list",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "allow",
              "block"
            ],
            "type": "string",
            "description": "Sets whether to allow or block the list of MCCs supplied.",
            "example": "allow"
          },
          "mcc_list": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "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.",
            "example": [
              "5932",
              "5411"
            ]
          }
        },
        "description": "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."
      },
      "MidCode": {
        "maxLength": 15,
        "minLength": 1,
        "pattern": "^[A-Za-z0-9{}\\[\\] ,+\\-=.();'\\/&@*]{1,15}$",
        "type": "string"
      },
      "MidLimit": {
        "required": [
          "mid_list",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "allow",
              "block"
            ],
            "type": "string",
            "description": "Sets whether to allow or block the list of MIDs supplied.",
            "example": "allow"
          },
          "mid_list": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MidCode"
            },
            "description": "The list of merchant identification (MID) codes to allow or block transactions from.",
            "example": [
              593278,
              541114
            ]
          }
        },
        "description": "The merchant identification (MID) code rule, which determines the merchants from whom transactions can be processed."
      },
      "VelocityLimit": {
        "required": [
          "velocity_window",
          "amount_limit"
        ],
        "type": "object",
        "properties": {
          "amount_limit": {
            "minimum": 0,
            "type": "integer",
            "description": "The amount the target can spend, in minor units.",
            "format": "int64",
            "example": 50000
          },
          "velocity_window": {
            "$ref": "#/components/schemas/VelocityWindow"
          },
          "mcc_list": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "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": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MidCode"
            },
            "description": "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.",
            "example": [
              1234567890
            ]
          }
        },
        "description": "The velocity limit, which determines how much a target card can spend over a given timeframe."
      },
      "VelocityLimitWithRemainingAmount": {
        "required": [
          "velocity_window",
          "amount_remaining",
          "amount_limit"
        ],
        "type": "object",
        "properties": {
          "amount_remaining": {
            "minimum": 0,
            "type": "integer",
            "description": "The remaining amount that can be spent, in minor units.",
            "format": "int64",
            "example": 45000
          },
          "amount_limit": {
            "minimum": 0,
            "type": "integer",
            "description": "The amount that can be spent, in minor units.",
            "format": "int64",
            "example": 50000
          },
          "velocity_window": {
            "$ref": "#/components/schemas/VelocityWindow"
          },
          "mcc_list": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "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.",
            "example": [
              "4121",
              "4582"
            ]
          },
          "mid_list": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "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.",
            "example": [
              "1234567890"
            ]
          }
        },
        "description": "The velocity limit, which determines how much a target card can spend over a given timeframe."
      },
      "VelocityWindow": {
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "daily",
              "weekly",
              "monthly",
              "all_time"
            ],
            "type": "string",
            "description": "The velocity window's unit of time.",
            "example": "weekly"
          }
        },
        "description": "The period of time over which the specified `amount_limit` can be spent."
      },
      "remove-control-group-response": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/IssuingControlGroupId"
          }
        },
        "description": "The control groups's details."
      },
      "remove-control-profile-target-response": {
        "type": "object",
        "properties": {
          "_links": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ControlProfileLinks"
              }
            ]
          }
        }
      },
      "remove-control-response": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/IssuingControlId"
          }
        },
        "description": "The control's details."
      },
      "update-control-profile-request": {
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 256,
            "type": "string",
            "description": "The control profile name.",
            "example": "Low Risk MCC Profile"
          }
        },
        "description": "The control profile to update.\n"
      },
      "update-control-mcc-limit-response": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/update-control-response"
          },
          {
            "type": "object",
            "properties": {
              "mcc_limit": {
                "$ref": "#/components/schemas/MccLimit"
              },
              "description": {
                "maxLength": 256,
                "type": "string",
                "description": "A description for the control.",
                "example": "Allow the card to be used only in restaurants and supermarkets"
              }
            }
          }
        ]
      },
      "update-control-mid-limit-response": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/update-control-response"
          },
          {
            "type": "object",
            "properties": {
              "mid_limit": {
                "$ref": "#/components/schemas/MidLimit"
              },
              "description": {
                "maxLength": 256,
                "type": "string",
                "description": "A description for the control.",
                "example": "Allow the card to be used only in AZ Pizza"
              }
            }
          }
        ]
      },
      "update-control-request-mcc-limit": {
        "type": "object",
        "properties": {
          "description": {
            "maxLength": 256,
            "type": "string",
            "description": "A description for the control.",
            "example": "Allow the card to be used only in restaurants and supermarkets"
          },
          "mcc_limit": {
            "$ref": "#/components/schemas/MccLimit"
          }
        },
        "description": "The control you want to update.\n\nYou can update only one control per request.\n"
      },
      "update-control-request-mid-limit": {
        "type": "object",
        "properties": {
          "description": {
            "maxLength": 256,
            "type": "string",
            "description": "A description for the control.",
            "example": "Allow the card to be used only in AZ Pizza"
          },
          "mid_limit": {
            "$ref": "#/components/schemas/MidLimit"
          }
        },
        "description": "The control you want to update.\n\nYou can only update one control per request.\n"
      },
      "update-control-request-velocity-limit": {
        "type": "object",
        "properties": {
          "description": {
            "maxLength": 256,
            "type": "string",
            "description": "A description for the control.",
            "example": "Max spend of 500€ per week for restaurants"
          },
          "velocity_limit": {
            "type": "object",
            "properties": {
              "amount_limit": {
                "minimum": 0,
                "type": "integer",
                "description": "The amount that can be spent using the card, in minor units.",
                "format": "int64",
                "example": 50000
              },
              "mcc_list": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "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.",
                "example": [
                  "4121",
                  "4582"
                ]
              },
              "mid_list": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "The list of merchant identification (MID) codes to allow or block transactions from. Note that `mcc_list` and `mid_list` cannot be set together.",
                "example": [
                  "1234567890"
                ]
              }
            },
            "description": "The velocity limit, which determines how much a card can spend over a given period of time."
          }
        },
        "description": "The control you want to update.\n\nYou can only update one control per request.\n"
      },
      "update-control-response": {
        "required": [
          "id",
          "control_type",
          "target_id",
          "is_editable",
          "created_date",
          "last_modified_date"
        ],
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/IssuingControlId"
          },
          "description": {
            "maxLength": 256,
            "type": "string",
            "description": "The description of the control.",
            "example": "Max spend of 500€ per week for restaurants"
          },
          "control_type": {
            "$ref": "#/components/schemas/IssuingControlType"
          },
          "target_id": {
            "$ref": "#/components/schemas/IssuingTargetId"
          },
          "is_editable": {
            "$ref": "#/components/schemas/ControlIsEditable"
          },
          "created_date": {
            "$ref": "#/components/schemas/Datetime"
          },
          "last_modified_date": {
            "$ref": "#/components/schemas/Datetime"
          }
        },
        "description": "The control's details.",
        "discriminator": {
          "propertyName": "control_type",
          "mapping": {
            "velocity_limit": "#/components/schemas/update-control-velocity-limit-response",
            "mcc_limit": "#/components/schemas/update-control-mcc-limit-response",
            "mid_limit": "#/components/schemas/update-control-mid-limit-response"
          }
        }
      },
      "update-control-velocity-limit-response": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/update-control-response"
          },
          {
            "type": "object",
            "properties": {
              "velocity_limit": {
                "$ref": "#/components/schemas/VelocityLimitWithRemainingAmount"
              },
              "description": {
                "maxLength": 256,
                "type": "string",
                "description": "A description for the control.",
                "example": "Maximum spend of 500€ per week for restaurants"
              }
            }
          }
        ]
      },
      "amend-dispute-request": {
        "type": "object",
        "properties": {
          "reason": {
            "type": "string",
            "description": "The updated four-digit scheme-specific [reason code](https://www.checkout.com/docs/developer-resources/codes/chargeback-codes#Mastercard).\nIf a value is not provided, the existing reason code is retained.\n",
            "example": "4807"
          },
          "amount": {
            "type": "number",
            "description": "The updated disputed amount, in the [minor unit](https://www.checkout.com/docs/payments/accept-payments/format-the-payment-amount)\nof the transaction currency. If not provided, the existing amount is retained.\n",
            "example": 1500
          },
          "evidence": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IssuingDisputeEvidence"
            },
            "description": "The updated or additional evidence requested by the Dispute Resolution team.\nFollow the [card scheme's requirements](https://www.checkout.com/docs/card-issuing/manage-cardholder-transactions/manage-issuing-disputes#Evidence_file_requirements).\n"
          },
          "fraud_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingDisputeFraudDetails"
              }
            ],
            "description": "Provides the fraud category, and additional context if available.\n\nThis field is required if `reason` specifies a fraud-related dispute.\n"
          },
          "reason_change_justification": {
            "maxLength": 13000,
            "type": "string",
            "description": "Explains the justification for the reason change. This is shared with the Dispute Resolution review team and may be submitted to the card scheme.\nThis field is required if you change the `reason` at the escalation stage.\n",
            "example": "New evidence confirms this was an unauthorized transaction, making reason 4837 more appropriate."
          },
          "action_response": {
            "maxLength": 1000,
            "type": "string",
            "description": "Free-form text that you can use to explain your choices, provide additional context, or ask questions about the requested changes.\n",
            "example": "Updated reason as requested. The cardholder confirmed the goods were never delivered."
          }
        },
        "description": "Submit an amendment to a dispute that is currently blocked from proceeding. This endpoint\nhandles both chargeback-stage and escalation-stage amendments using the same flat payload\nas the server determines the context from the dispute's current state.\n\nRefer 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.\n\nIf `reason` specifies a fraud-related dispute, you must provide `fraud_details`.\nIf you change the `reason` at the escalation stage,  you must provide `reason_change_justification`.\n"
      },
      "create-dispute-request": {
        "required": [
          "transaction_id",
          "reason"
        ],
        "type": "object",
        "properties": {
          "transaction_id": {
            "$ref": "#/components/schemas/IssuingTransactionId"
          },
          "reason": {
            "type": "string",
            "description": "The four-digit scheme-specific [reason code](https://www.checkout.com/docs/developer-resources/codes/chargeback-codes#Mastercard) for the chargeback.\nOnly provide this if Checkout.com is your issuing processor.\nCheckout.com does not validate this value.\n",
            "example": "4807"
          },
          "evidence": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IssuingDisputeEvidence"
            },
            "description": "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).\n"
          },
          "amount": {
            "type": "number",
            "description": "The chargeback amount, in the [minor unit](https://www.checkout.com/docs/payments/accept-payments/format-the-payment-amount) of the transaction currency. <br/>\nIf not provided, Checkout.com uses the full amount of the presentment.\n",
            "example": 100
          },
          "presentment_message_id": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingMessageId"
              }
            ],
            "description": "The unique identifier for the disputed presentment message. <br/> <br/>\nIf the transaction has multiple presentments, you must provide this field to specify the presentment you want to dispute. <br/><br/>\nIf the transaction has only one presentment, you do not need to provide this field because Checkout.com uses that presentment automatically. <br/>\n"
          },
          "fraud_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingDisputeFraudDetails"
              }
            ],
            "description": "Contains all fraud-related information to be sent with the chargeback.\n\nThis field is required if the dispute has a fraud-related reason code.\n"
          },
          "justification": {
            "maxLength": 100,
            "type": "string",
            "description": "Short justification for raising this dispute, to be sent to the scheme.\n"
          }
        }
      },
      "create-dispute-response": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/IssuingDispute"
          }
        ]
      },
      "escalate-dispute-request": {
        "required": [
          "justification"
        ],
        "type": "object",
        "properties": {
          "additional_evidence": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IssuingDisputeEvidence"
            },
            "description": "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).\nIf the request goes to arbitration, the card scheme ignores any evidence you provide at this stage using this request.\n"
          },
          "amount": {
            "type": "number",
            "description": "The updated disputed amount, in the [minor unit](https://www.checkout.com/docs/payments/accept-payments/format-the-payment-amount) of the representment currency.",
            "example": 100
          },
          "reason_change": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingDisputeReasonChange"
              }
            ]
          },
          "fraud_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingDisputeFraudDetails"
              }
            ],
            "description": "Provides fraud-related details.\n\n 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.\n"
          },
          "justification": {
            "maxLength": 13000,
            "type": "string",
            "description": "Justification for escalating the dispute.\n"
          }
        }
      },
      "get-dispute-response": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/IssuingDispute"
          }
        ],
        "description": "The client's dispute response."
      },
      "IssuingDispute": {
        "type": "object",
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingDisputeId"
              }
            ],
            "description": "The unique identifier for the Issuing dispute."
          },
          "reason": {
            "type": "string",
            "description": "The four-digit scheme-specific [reason code](https://www.checkout.com/docs/developer-resources/codes/chargeback-codes#Mastercard) you provide for the chargeback.",
            "example": "4802"
          },
          "disputed_amount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingTransactionAmount"
              }
            ],
            "description": "The disputed amount, in the [minor unit](https://www.checkout.com/docs/payments/accept-payments/format-the-payment-amount) of the transaction currency."
          },
          "status": {
            "$ref": "#/components/schemas/IssuingDisputeStatus"
          },
          "status_reason": {
            "$ref": "#/components/schemas/IssuingDisputeStatusReason"
          },
          "transaction_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingTransactionId"
              }
            ],
            "description": "The unique Checkout.com identifier for the transaction."
          },
          "presentment_message_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingMessageId"
              }
            ],
            "description": "The unique identifier for the disputed presentment message."
          },
          "merchant": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingDisputeMerchant"
              }
            ],
            "description": "The details of the merchant you raised the dispute with."
          },
          "created_on": {
            "type": "string",
            "description": "The date and time when the dispute was created, in UTC. <br/>Format – ISO 8601 code <br/>Example – `2025-01-31T10:20:30.456`",
            "format": "date-time"
          },
          "modified_on": {
            "type": "string",
            "description": "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`",
            "format": "date-time"
          },
          "action_details": {
            "$ref": "#/components/schemas/IssuingDisputeActionDetails"
          },
          "chargeback": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingDisputeChargeback"
              }
            ]
          },
          "representment": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingDisputeSecondPresentment"
              }
            ]
          },
          "pre_arbitration": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingDisputePreArbitration"
              }
            ]
          },
          "arbitration": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingDisputeArbitration"
              }
            ]
          },
          "_links": {
            "type": "object",
            "properties": {
              "self": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/IssuingLink"
                  }
                ],
                "description": "The URI for the dispute."
              },
              "card": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/IssuingLink"
                  }
                ],
                "description": "The URI for the card used for the disputed transaction."
              },
              "cardholder": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/IssuingLink"
                  }
                ],
                "description": "The URI for the cardholder who requested the chargeback."
              },
              "transaction": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/IssuingLink"
                  }
                ],
                "description": "The URI for the disputed transaction."
              },
              "amend": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/IssuingLink"
                  }
                ],
                "description": "The URI to amend and resubmit the dispute, if the dispute `status` is `action_required`.\n\n Refer to `action_details` for the required amendments.\n"
              },
              "escalate": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/IssuingLink"
                  }
                ],
                "description": "The URI for escalating the Issuing dispute."
              },
              "cancel": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/IssuingLink"
                  }
                ],
                "description": "The URI to cancel the dispute."
              }
            },
            "description": "The links related to the dispute."
          }
        },
        "description": "The client's dispute view."
      },
      "IssuingDisputeActionDetails": {
        "type": "object",
        "properties": {
          "instructions": {
            "type": "string",
            "description": "The amendments required before the dispute can proceed. For example, if you need to provide a reason code, or update the submitted evidence.\n"
          },
          "last_action_response": {
            "type": "string",
            "description": "Specifies whether the dispute was previously amended and an action response was provided.\n"
          }
        },
        "description": "Provides instructions on the amendments required before the dispute can proceed, if the dispute `status` is `action_required`.\n\nUse 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.\nUse the correct endpoint to send your updates as requested.\n"
      },
      "IssuingDisputeArbitration": {
        "type": "object",
        "properties": {
          "submitted_on": {
            "type": "string",
            "description": "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`",
            "format": "date-time",
            "example": "2025-09-10T10:11:12.0000000+00:00"
          },
          "amount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingTransactionAmount"
              }
            ],
            "description": "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": {
            "type": "string",
            "description": "Your justification for escalating the dispute to arbitration."
          },
          "decided_on": {
            "type": "string",
            "description": "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`",
            "format": "date-time",
            "example": "2025-01-31T10:20:30.0000000+00:00"
          }
        },
        "description": "The dispute details during the arbitration stage."
      },
      "IssuingDisputeChargeback": {
        "type": "object",
        "properties": {
          "submitted_on": {
            "type": "string",
            "description": "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`",
            "format": "date-time",
            "example": "2025-09-10T10:11:12.0000000+00:00"
          },
          "reason": {
            "type": "string",
            "description": "The four-digit scheme-specific [reason code](https://www.checkout.com/docs/developer-resources/codes/chargeback-codes#Mastercard) you provide for the chargeback.",
            "example": "4802"
          },
          "amount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingTransactionAmount"
              }
            ],
            "description": "The disputed amount, in the [minor unit](https://www.checkout.com/docs/payments/accept-payments/format-the-payment-amount) of the transaction currency."
          },
          "evidence": {
            "type": "array",
            "items": {
              "required": [
                "file_id"
              ],
              "type": "object",
              "properties": {
                "file_id": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/IssuingFileId"
                    }
                  ],
                  "description": "The unique identifier for an uploaded file."
                },
                "description": {
                  "type": "string",
                  "description": "A brief description of the evidence.",
                  "example": "Goods were not received."
                }
              }
            },
            "description": "Your evidence for the chargeback."
          },
          "justification": {
            "type": "string",
            "description": "A brief description of why the dispute is being raised. This is forwarded to the scheme."
          }
        },
        "description": "The dispute details at the chargeback stage."
      },
      "IssuingDisputeEvidence": {
        "required": [
          "name",
          "content"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The complete file name, including the extension.",
            "example": "evidence.pdf"
          },
          "content": {
            "type": "string",
            "description": "The base64-encoded string that represents a single JPG, PDF, TIFF, or ZIP file.\nZIP files can contain multiple JPG, PDF, or TIFF files.\n"
          },
          "description": {
            "type": "string",
            "description": "A brief description of the evidence.",
            "example": "Goods were not received."
          }
        }
      },
      "IssuingDisputeFraudDetails": {
        "required": [
          "fraud_type"
        ],
        "type": "object",
        "properties": {
          "fraud_type": {
            "enum": [
              "card_lost",
              "card_stolen",
              "card_never_received",
              "fraudulent_account",
              "counterfeit_card",
              "account_takeover",
              "card_not_present_fraud",
              "merchant_misrepresentation",
              "cardholder_manipulation",
              "incorrect_processing",
              "other"
            ],
            "type": "string",
            "description": "The type of fraud the cardholder is asserting. This can be one of:\n  - `card_lost`: The cardholder does not have the physical card and cannot explain how it was lost.\n  - `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.\n  - `card_never_received`: The card was issued and mailed but was not received by the cardholder.\n  - `fraudulent_account`: The account was opened fraudulently using a stolen, fake, or synthetic identity.\n  - `counterfeit_card`: The cardholder has their physical card but a duplicate or altered card was used in an unauthorized card-present transaction.\n  - `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.\n  - `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.\n  - `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.\n  - `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.\n  - `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.\n  - `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.\n",
            "example": "card_not_present_fraud"
          },
          "description": {
            "maxLength": 3000,
            "type": "string",
            "description": "A description of the fraud circumstances, for internal reference. This is not forwarded to the scheme.",
            "example": "Cardholder confirmed they made no online purchases on this date."
          }
        },
        "description": "Fraud-related information required when the dispute reason code is fraud-related."
      },
      "IssuingDisputeId": {
        "maxLength": 31,
        "minLength": 31,
        "pattern": "^idsp_[a-z0-9]{26}$",
        "type": "string",
        "description": "The unique identifier for the Issuing dispute.",
        "example": "idsp_fa6psq242dcd6fdn5gifcq1491"
      },
      "IssuingDisputeMerchant": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The merchant's identifier. This can vary from one acquirer to another.",
            "example": "(*)123456789"
          },
          "name": {
            "type": "string",
            "description": "The merchant's name.",
            "example": "Software Company"
          },
          "city": {
            "type": "string",
            "description": "The city where the merchant is located.",
            "example": "Paris"
          },
          "state": {
            "type": "string",
            "description": "The state where the merchant is located (US only).",
            "example": ""
          },
          "country_code": {
            "type": "string",
            "description": "The two-digit [country code](https://www.checkout.com/docs/developer-resources/codes/country-codes) where the merchant is located.",
            "example": "FR"
          },
          "category_code": {
            "type": "string",
            "description": "The merchant's [category code](https://www.checkout.com/docs/developer-resources/testing/codes/merchant-category-codes) for the disputed transaction.\n",
            "example": "5331"
          },
          "evidence": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IssuingFileId"
            },
            "description": "Any evidence submitted by the merchant during the dispute lifecycle."
          }
        }
      },
      "IssuingDisputePreArbitration": {
        "type": "object",
        "properties": {
          "submitted_on": {
            "type": "string",
            "description": "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`",
            "format": "date-time",
            "example": "2025-09-10T10:11:12.0000000+00:00"
          },
          "evidence": {
            "type": "array",
            "items": {
              "required": [
                "file_id"
              ],
              "type": "object",
              "properties": {
                "file_id": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/IssuingFileId"
                    }
                  ],
                  "description": "The unique identifier for an uploaded file."
                },
                "description": {
                  "type": "string",
                  "description": "A brief description of the evidence.",
                  "example": "Goods were not received."
                }
              }
            },
            "description": "The evidence relating to the Issuing dispute provided at the pre-arbitration stage."
          },
          "amount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingTransactionAmount"
              }
            ],
            "description": "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": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingDisputeReasonChange"
              }
            ],
            "description": "The change to the dispute reason and your justification for changing it."
          },
          "justification": {
            "type": "string",
            "description": "Your justification for escalating the dispute to pre-arbitration."
          },
          "merchant_responded_on": {
            "type": "string",
            "description": "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`",
            "format": "date-time"
          },
          "merchant_evidence": {
            "type": "array",
            "items": {
              "required": [
                "file_id"
              ],
              "type": "object",
              "properties": {
                "file_id": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/IssuingFileId"
                    }
                  ],
                  "description": "The unique identifier for an uploaded file."
                },
                "description": {
                  "type": "string",
                  "description": "A brief description of the evidence.",
                  "example": "Goods were not received."
                }
              },
              "description": "The evidence provided by the merchant against the pre-arbitration case.\n"
            }
          }
        },
        "description": "The dispute details at the pre-arbitration stage."
      },
      "IssuingDisputeReasonChange": {
        "required": [
          "reason",
          "justification"
        ],
        "type": "object",
        "properties": {
          "reason": {
            "type": "string",
            "description": "The updated four-digit scheme-specific [reason code](https://www.checkout.com/docs/developer-resources/codes/chargeback-codes) for the chargeback.\n",
            "example": "4807"
          },
          "justification": {
            "maxLength": 13000,
            "type": "string",
            "description": "Your justification for changing the dispute reason."
          }
        },
        "description": "The change to the dispute reason and your justification for changing it."
      },
      "IssuingDisputeSecondPresentment": {
        "type": "object",
        "properties": {
          "received_on": {
            "type": "string",
            "description": "The date and time when you received the representment, in UTC. <br/>Format – ISO 8601 code <br/>Example – `2025-01-31T10:20:30.456`",
            "format": "date-time"
          },
          "amount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingTransactionAmount"
              }
            ],
            "description": "The representment amount, in the [minor currency unit](https://www.checkout.com/docs/payments/accept-payments/format-the-payment-amount)."
          },
          "evidence": {
            "type": "array",
            "items": {
              "required": [
                "file_id"
              ],
              "type": "object",
              "properties": {
                "file_id": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/IssuingFileId"
                    }
                  ],
                  "description": "The unique identifier for an uploaded file."
                },
                "description": {
                  "type": "string",
                  "description": "A brief description of the evidence.",
                  "example": "Goods were not received."
                }
              }
            },
            "description": "The evidence provided by the merchant against the chargeback."
          }
        },
        "description": "The information provided by the merchant when they reject the chargeback and send a representment."
      },
      "IssuingDisputeStatus": {
        "enum": [
          "created",
          "canceled",
          "processing",
          "action_required",
          "won",
          "lost"
        ],
        "type": "string",
        "description": "The [dispute status](https://www.checkout.com/docs/developer-resources/codes/issuing-dispute-codes) as returned to the client.",
        "example": "processing"
      },
      "IssuingDisputeStatusReason": {
        "enum": [
          "",
          "expired",
          "chargeback_pending",
          "chargeback_change_requested",
          "chargeback_evidence_invalid_or_insufficient",
          "chargeback_processed",
          "chargeback_rejected",
          "chargeback_reversal_pending",
          "chargeback_reversed",
          "chargeback_response_accepted",
          "prearbitration_pending",
          "escalation_change_requested",
          "prearbitration_evidence_invalid_or_insufficient",
          "prearbitration_processed",
          "prearbitration_rejected",
          "prearbitration_reversal_pending",
          "prearbitration_reversed",
          "prearbitration_response_accepted",
          "arbitration_pending",
          "arbitration_processed",
          "presentment_reversed"
        ],
        "type": "string",
        "description": "The status reason as returned to the client. An empty string indicates no status reason currently applies.",
        "example": "chargeback_processed"
      },
      "submit-dispute-request": {
        "type": "object",
        "properties": {
          "reason": {
            "type": "string",
            "description": "The updated four-digit scheme-specific [reason code](https://www.checkout.com/docs/developer-resources/codes/chargeback-codes#Mastercard). \nIf not provided, Checkout.com uses the existing reason code.\n",
            "example": "4807"
          },
          "evidence": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IssuingDisputeEvidence"
            },
            "description": "Your evidence for the chargeback, if updated since you created the dispute."
          },
          "amount": {
            "type": "number",
            "description": "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.\nIf not provided, Checkout.com uses the existing disputed amount.\n",
            "example": 100
          }
        }
      },
      "OobSimulateTransactionDetails": {
        "type": "object",
        "properties": {
          "last_four": {
            "$ref": "#/components/schemas/LastFour"
          },
          "merchant_name": {
            "type": "string",
            "description": "The merchant's name.",
            "example": "Acme Ltd"
          },
          "purchase_amount": {
            "type": "number",
            "description": "The amount of the simulated transaction.",
            "example": 100
          },
          "purchase_currency": {
            "$ref": "#/components/schemas/IssuingCurrency"
          }
        },
        "description": "Details for the simulated transaction."
      },
      "simulate-oob-authentication-request": {
        "required": [
          "card_id"
        ],
        "type": "object",
        "properties": {
          "card_id": {
            "$ref": "#/components/schemas/IssuingCardId"
          },
          "transaction_details": {
            "$ref": "#/components/schemas/OobSimulateTransactionDetails"
          }
        }
      },
      "get-transaction-response": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/IssuingTransaction"
          }
        ]
      },
      "get-transactions-response": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "description": "The requested maximum number of transactions returned.",
            "example": 5
          },
          "skip": {
            "type": "integer",
            "description": "The requested number of transactions to skip.",
            "example": 10
          },
          "total_count": {
            "type": "integer",
            "description": "The total count of available transactions.",
            "example": 100
          },
          "data": {
            "type": "array",
            "items": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/IssuingTransaction"
                }
              ]
            },
            "description": "A list of transactions."
          }
        }
      },
      "IssuingMessageId": {
        "maxLength": 30,
        "minLength": 30,
        "pattern": "^msg_[a-z0-9]{26}$",
        "type": "string",
        "description": "The message's unique Checkout.com identifier.",
        "example": "msg_fa6psq242dcd6fdn5gifcq1491"
      },
      "IssuingReferenceTransaction": {
        "type": "object",
        "properties": {
          "transaction_id": {
            "$ref": "#/components/schemas/IssuingTransactionId"
          },
          "reference_type": {
            "enum": [
              "original_mit",
              "original_recurring"
            ],
            "type": "string"
          }
        }
      },
      "IssuingTransaction": {
        "type": "object",
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingTransactionId"
              }
            ],
            "description": "The transaction's unique Checkout.com identifier."
          },
          "created_on": {
            "type": "string",
            "description": "The date/time the transaction was created.",
            "format": "date-time"
          },
          "status": {
            "enum": [
              "authorized",
              "declined",
              "canceled",
              "cleared",
              "refunded",
              "disputed"
            ],
            "type": "string",
            "description": "The high-level status indicating the stage of the transaction lifecycle.",
            "example": "authorized"
          },
          "transaction_type": {
            "enum": [
              "account_funding",
              "account_transfer",
              "atm_installment",
              "balance_inquiry",
              "bill_payment",
              "cash_advance",
              "cashback",
              "credit_adjustment",
              "debit_adjustment",
              "original_credit",
              "payment_account_inquiry",
              "payment",
              "pin_change",
              "pin_unblock",
              "purchase_account_inquiry",
              "purchase",
              "quasi_cash",
              "remittance_funding",
              "remittance_payment",
              "unknown",
              "withdrawal",
              "refund"
            ],
            "type": "string",
            "description": "The high-level nature of the transaction.",
            "example": "purchase"
          },
          "client": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingTransactionClient"
              }
            ],
            "description": "Information about Client to which this transaction belongs."
          },
          "entity": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingTransactionEntity"
              }
            ],
            "description": "Information about Entity to which this transaction belongs."
          },
          "card": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingTransactionCard"
              }
            ],
            "description": "Basic card information used in this transaction."
          },
          "digital_card": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingTransactionDigitalCard"
              }
            ],
            "description": "Basic digital card information used in this transaction."
          },
          "cardholder": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingTransactionCardholder"
              }
            ],
            "description": "Information about Cardholder to which this transaction belongs."
          },
          "amounts": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingTransactionAmounts"
              }
            ],
            "description": "The list of aggregated amounts related to the current transaction."
          },
          "merchant": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingTransactionMerchant"
              }
            ],
            "description": "The merchant details received in the first applicable message.\nFor example, if a transaction starts at the Authorization stage, then it will be the merchant received in the first Authorization.\n"
          },
          "reference_transaction": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingReferenceTransaction"
              }
            ],
            "description": "The basic details of a referenced transaction when applicable."
          },
          "messages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IssuingTransactionMessage"
            },
            "description": "A summarized list of messages associated to this transaction.\nA message can be initiated by the cardholder, merchant, acquirer, or issuer.\n"
          },
          "_links": {
            "type": "object",
            "properties": {
              "self": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/IssuingLink"
                  }
                ],
                "description": "The URI of the current transaction."
              },
              "card": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/IssuingLink"
                  }
                ],
                "description": "The URI of the associated card."
              },
              "cardholder": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/IssuingLink"
                  }
                ],
                "description": "The URI of the associated cardholder."
              },
              "reference_transaction": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/IssuingLink"
                  }
                ],
                "description": "The URI of the reference transaction. \nFor example, the original authorization in case of a refund, the original authenticated MIT or the first authorization in a series of recurring transactions.\n"
              }
            },
            "description": "The links related to the transaction."
          }
        }
      },
      "IssuingTransactionAmount": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "description": "The amount is provided in the <a href=\"https://www.checkout.com/docs/resources/calculating-the-amount\" target=\"blank\">minor currency unit</a>.",
            "example": 100
          },
          "currency": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingCurrency"
              }
            ]
          }
        }
      },
      "IssuingTransactionAmounts": {
        "type": "object",
        "properties": {
          "total_held": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingTransactionAmount"
              }
            ],
            "description": "The amount held internally to cover the transaction, but not yet debited. \nThis value is equal to the Total Authorized - Total Reversed - Total Cleared.<br />\nThe 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.\n"
          },
          "total_authorized": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingTransactionAmount"
              }
            ],
            "description": "The total amount which has been authorized. \nThis sums the billing amounts from all approved authorizations associated to this transaction.<br />\nThe 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.\n"
          },
          "total_reversed": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingTransactionAmount"
              }
            ],
            "description": "The total amount which has been reversed by the merchant or by the issuer. \nThis sums the billing amounts from all approved reversals and issuer initiated reversals associated to this transaction.<br />\nThe 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.\n"
          },
          "total_cleared": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingTransactionAmount"
              }
            ],
            "description": "The total amount which has been cleared by the scheme.\nThis sums the billing amounts from all presentments associated to this transaction.<br />\nThe 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.\n"
          },
          "total_refunded": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingTransactionAmount"
              }
            ],
            "description": "The total amount which has been refunded to the cardholder.\nThis sums the billing amounts from all presentments of type \"refund\" associated to this transaction.<br />\nThe 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.\n"
          }
        }
      },
      "IssuingTransactionCard": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/IssuingCardId"
          },
          "network": {
            "enum": [
              "mastercard"
            ],
            "type": "string",
            "description": "The card network.",
            "example": "mastercard"
          }
        }
      },
      "IssuingTransactionCardholder": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/IssuingCardholderId"
          }
        }
      },
      "IssuingTransactionClient": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/IssuingClientId"
          }
        }
      },
      "IssuingTransactionDigitalCard": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/IssuingDigitalCardId"
          },
          "wallet_type": {
            "enum": [
              "googlepay",
              "applepay",
              "remote_commerce_programs"
            ],
            "type": "string",
            "description": "The wallet type."
          }
        }
      },
      "IssuingTransactionEntity": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/IssuingEntityId"
          }
        }
      },
      "IssuingTransactionMerchant": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The merchant's identifier. The identifier varies from one acquirer to another.",
            "example": "(*)123456789"
          },
          "name": {
            "type": "string",
            "description": "The merchant's name.",
            "example": "My Merchant"
          },
          "city": {
            "type": "string",
            "description": "The city where the merchant is located.",
            "example": "Paris"
          },
          "state": {
            "type": "string",
            "description": "The state in which the merchant is located (only for US-based merchants).",
            "example": ""
          },
          "country_code": {
            "type": "string",
            "description": "The country code where the merchant is located.",
            "example": "FR"
          },
          "category_code": {
            "type": "string",
            "description": "The merchant's category codes.\nAll category codes are documented <a href=\"https://www.checkout.com/docs/developer-resources/testing/codes/merchant-category-codes\" target=\"blank\">here</a>.\n",
            "example": "5331"
          }
        }
      },
      "IssuingTransactionMessage": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/IssuingMessageId"
          },
          "initiator": {
            "enum": [
              "cardholder",
              "merchant",
              "acquirer",
              "card_network",
              "issuer"
            ],
            "type": "string",
            "description": "Specifies who initiated the message"
          },
          "type": {
            "enum": [
              "authorization",
              "reversal",
              "authorization_advice",
              "reversal_advice",
              "presentment",
              "authorization_refund",
              "presentment_refund",
              "presentment_reversed",
              "presentment_reversed_refund"
            ],
            "type": "string",
            "description": "The message type."
          },
          "result": {
            "enum": [
              "approved",
              "declined",
              "processed"
            ],
            "type": "string",
            "description": "The outcome after processing this message.",
            "example": "declined"
          },
          "is_relayed": {
            "type": "boolean",
            "description": "Indicates if this message was relayed through the Auth Relay to the client.",
            "example": true
          },
          "indicator": {
            "enum": [
              "incremental_preauthorization",
              "deferred_authorization",
              "preauthorization",
              "normal_authorization",
              "final_authorization",
              "partial_reversal",
              "full_reversal",
              "partial_presentment",
              "final_presentment",
              "unknown"
            ],
            "type": "string",
            "description": "Indicates the type of the authorization, reversal, or presentment.<br/>\nFor authorization, it can be incremental_preauthorization, deferred_authorization, preauthorization, normal_authorization, final_authorization, or unknown.<br/>\nFor reversals, it can be partial_reversal or full_reversal.<br/>\nFor presentments, it can be partial_presentment or final_presentment.<br/>\nFor other message type, it may be null.\n"
          },
          "decline_reason": {
            "type": "string",
            "description": "The reason explaining why the message was declined. \nRefer 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/>\nIf the message was approved, this will return `Null`. \n",
            "example": "expiry_date_invalid"
          },
          "authorization_code": {
            "type": "string",
            "description": "Your issuer authorization code for when the transaction was approved.",
            "example": "03C0C0"
          },
          "billing_amount": {
            "type": "integer",
            "description": "The transaction billing amount.<br/>\nThe amount is provided in the <a href=\"https://www.checkout.com/docs/resources/calculating-the-amount\" target=\"blank\">minor currency unit</a>.\n",
            "format": "int64",
            "example": 100
          },
          "billing_currency": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingCurrency"
              }
            ]
          },
          "transaction_amount": {
            "type": "integer",
            "description": "The amount of the message in the currency the card was used in, before any currency conversion.<br/>\nThe amount is provided in the <a href=\"https://www.checkout.com/docs/resources/calculating-the-amount\" target=\"blank\">minor currency unit</a>.<br/>\nThis is only returned when the card scheme provided the transaction amount and currency for this message.<br/>\nThis field is only available for messages created on or after October 1, 2026. Messages created before that date have no value.\n",
            "format": "int64",
            "example": 100
          },
          "transaction_currency": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuingCurrency"
              }
            ],
            "description": "The currency the card was used in, before any currency conversion.<br/>\nThis is only returned when the card scheme provided the transaction amount and currency for this message.<br/>\nThis field is only available for messages created on or after October 1, 2026. Messages created before that date have no value.\n"
          },
          "created_on": {
            "type": "string",
            "description": "The message's creation date/time (UTC).",
            "format": "date-time",
            "example": "2019-09-10T10:11:12.0000000+00:00"
          }
        }
      },
      "SimulateAuthorizationRequest": {
        "type": "object",
        "properties": {
          "card": {
            "$ref": "#/components/schemas/IssuingSimulateCard"
          },
          "transaction": {
            "$ref": "#/components/schemas/IssuingSimulateTransaction"
          }
        }
      },
      "SimulateAuthorizationResponse": {
        "required": [
          "status"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The transaction's unique identifier. \n\nThis same ID is carried throughout all authorization, reversal, and clearing messages related to the given transaction.\n",
            "example": "trx_aaqc4uaaybigcaaqc4uaayfiga"
          },
          "status": {
            "enum": [
              "Authorized",
              "Declined"
            ],
            "type": "string",
            "description": "The transaction's status.",
            "example": "Authorized"
          }
        },
        "description": "Authorization Response."
      },
      "SimulateIncrementalAuthorizationRequest": {
        "type": "object",
        "properties": {
          "amount": {
            "minimum": 0,
            "type": "integer",
            "description": "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>.\n",
            "example": 3500
          }
        }
      },
      "SimulateIncrementalAuthorizationResponse": {
        "required": [
          "status"
        ],
        "type": "object",
        "properties": {
          "status": {
            "enum": [
              "Authorized",
              "Declined"
            ],
            "type": "string",
            "description": "The transaction's status.",
            "example": "Authorized"
          }
        },
        "description": "Authorization Response."
      },
      "PresentmentRequest": {
        "type": "object",
        "properties": {
          "amount": {
            "minimum": 0,
            "type": "integer",
            "description": "The amount to clear. If not specified, the full authorized amount will be cleared.\n\nYou 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>.\n",
            "example": 2500
          }
        }
      },
      "IssuingAuthorizationTypes": {
        "enum": [
          "authorization",
          "pre_authorization"
        ],
        "type": "string",
        "description": "Use `authorization` for a known final amount or `pre_authorization` for an estimated amount.",
        "default": "authorization",
        "example": "authorization"
      },
      "IssuingMerchant": {
        "type": "object",
        "properties": {
          "category_code": {
            "maxLength": 4,
            "minLength": 4,
            "type": "string",
            "description": "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.\n",
            "example": "7399"
          }
        },
        "description": "The merchant related data to use for the transaction."
      },
      "IssuingSimulateCard": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/IssuingCardId"
          },
          "expiry_month": {
            "$ref": "#/components/schemas/ExpiryMonth"
          },
          "expiry_year": {
            "$ref": "#/components/schemas/ExpiryYear"
          }
        },
        "description": "The card to simulate an authorization with."
      },
      "IssuingSimulateTransaction": {
        "required": [
          "type"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/Purchase"
          }
        ],
        "description": "The transaction to simulate with the specified card. For example, a purchase.\n",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "purchase": "#/components/schemas/Purchase"
          }
        }
      },
      "IssuingTransactionId": {
        "maxLength": 30,
        "minLength": 30,
        "pattern": "^trx_[a-z0-9]{26}$",
        "type": "string",
        "description": "The transaction's unique identifier.",
        "example": "trx_aayhhfwbdyxwcaeyhhfwbd4xga"
      },
      "Purchase": {
        "title": "purchase",
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The transaction type.\n",
            "example": "purchase"
          },
          "amount": {
            "minimum": 0,
            "type": "integer",
            "description": "The payment amount, in <a href=\"https://www.checkout.com/docs/resources/calculating-the-amount\" target=\"blank\">minor currency units</a>.\n\nTo perform a card verification, set `amount` to `0`, or omit the field entirely.\n",
            "example": 6540
          },
          "currency": {
            "maxLength": 3,
            "minLength": 3,
            "type": "string",
            "description": "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.",
            "example": "GBP"
          },
          "merchant": {
            "$ref": "#/components/schemas/IssuingMerchant"
          },
          "authorization_type": {
            "$ref": "#/components/schemas/IssuingAuthorizationTypes"
          }
        }
      },
      "SimulateRefundRequest": {
        "type": "object",
        "properties": {
          "amount": {
            "minimum": 0,
            "type": "integer",
            "description": "The amount to refund. If not specified, the full cleared amount will be refunded.\n\nYou 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> .\n",
            "example": 2500
          }
        }
      },
      "ReversalRequest": {
        "type": "object",
        "properties": {
          "amount": {
            "minimum": 0,
            "type": "integer",
            "description": "The amount to reverse. If unspecified, the full transaction amount will be reversed.\n\nYou 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>.\n",
            "example": 2500
          }
        }
      },
      "ReversalResponse": {
        "required": [
          "status"
        ],
        "type": "object",
        "properties": {
          "status": {
            "enum": [
              "Reversed",
              "Declined"
            ],
            "type": "string",
            "description": "The status of the transaction (either Reversed or Declined).",
            "example": "Reversed"
          }
        },
        "description": "Reversal Response."
      },
      "Link": {
        "required": [
          "href"
        ],
        "type": "object",
        "properties": {
          "href": {
            "type": "string",
            "description": "The link URL"
          }
        },
        "additionalProperties": false
      },
      "RedirectLink": {
        "type": "object",
        "properties": {
          "href": {
            "type": "string",
            "description": "The redirect link URL"
          },
          "mobile": {
            "type": "object",
            "properties": {
              "android": {
                "type": "object",
                "properties": {
                  "href": {
                    "type": "string",
                    "description": "The Android link"
                  }
                }
              },
              "ios": {
                "type": "object",
                "properties": {
                  "href": {
                    "description": "The iOS link"
                  }
                }
              }
            },
            "description": "The mobile links for the redirect"
          },
          "qr_code": {
            "type": "object",
            "properties": {
              "image": {
                "type": "string",
                "description": "The QR code image URL"
              },
              "text": {
                "type": "string",
                "description": "The encoded text for the QR code"
              }
            },
            "description": "The QR code for the redirect"
          }
        }
      },
      "CardMetadataRequest": {
        "type": "object",
        "properties": {
          "source": {
            "$ref": "#/components/schemas/CardMetadataRequestSource"
          },
          "format": {
            "enum": [
              "basic",
              "card_payouts"
            ],
            "type": "string",
            "description": "The format to provide the output in.\n\nA `basic` response will only include standard metadata, while a `card_payouts` formatted response will also include fields specific to card payouts.\n",
            "default": "basic",
            "example": "basic"
          },
          "reference": {
            "type": "string",
            "description": "A reference you can later use to identify this Payment Context. For example, an order number.\n",
            "example": "ORD-5023-4E89"
          }
        }
      },
      "CardMetadataRequestSource": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/CardMetadataRequestSourceCard"
          },
          {
            "$ref": "#/components/schemas/CardMetadataRequestSourceBin"
          },
          {
            "$ref": "#/components/schemas/CardMetadataRequestSourceToken"
          },
          {
            "$ref": "#/components/schemas/CardMetadataRequestSourceInstrument"
          }
        ],
        "description": "The source object",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "card": "#/components/schemas/CardMetadataRequestSourceCard",
            "bin": "#/components/schemas/CardMetadataRequestSourceBin",
            "token": "#/components/schemas/CardMetadataRequestSourceToken",
            "id": "#/components/schemas/CardMetadataRequestSourceInstrument"
          }
        }
      },
      "CardMetadataRequestSourceBin": {
        "title": "bin",
        "required": [
          "type",
          "bin"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The source type",
            "example": "bin"
          },
          "bin": {
            "maxLength": 8,
            "minLength": 6,
            "pattern": "^[0-9]+$",
            "type": "string",
            "description": "The issuer's Bank Identification Number (BIN)",
            "example": "454347"
          }
        },
        "description": "An existing payment source"
      },
      "CardMetadataRequestSourceCard": {
        "title": "card",
        "required": [
          "type",
          "number"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The source type",
            "example": "card"
          },
          "number": {
            "maxLength": 19,
            "minLength": 12,
            "pattern": "^[0-9]+$",
            "type": "string",
            "description": "The Primary Account Number (PAN)",
            "example": "4543474002249996"
          }
        },
        "description": "An existing payment source"
      },
      "CardMetadataRequestSourceInstrument": {
        "title": "id",
        "required": [
          "type",
          "id"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The source type",
            "example": "id"
          },
          "id": {
            "pattern": "^(src)_(\\w{26})$",
            "type": "string",
            "description": "The unique ID for the payment instrument that was created using the card's details",
            "example": "src_wmlfc3zyhqzehihu7giusaaawu"
          }
        },
        "description": "An existing payment source"
      },
      "CardMetadataRequestSourceToken": {
        "title": "token",
        "required": [
          "type",
          "token"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The source type",
            "example": "token"
          },
          "token": {
            "pattern": "^(tok)_(\\w{26})$",
            "type": "string",
            "description": "The Checkout.com unique token that was generated when the card's details were tokenized",
            "example": "tok_ubfj2q76miwundwlk72vxt2i7q"
          }
        },
        "description": "An existing payment source"
      },
      "CardMetadataResponse": {
        "required": [
          "bin",
          "scheme"
        ],
        "type": "object",
        "properties": {
          "bin": {
            "maxLength": 11,
            "minLength": 6,
            "pattern": "^[0-9]{6}$|^[0-9]{8}$|^[0-9]{11}$",
            "type": "string",
            "description": "The issuer's Bank Identification Number (BIN). Supports 6, 8, or 11 digit BINs.",
            "example": "45434720"
          },
          "scheme": {
            "type": "string",
            "description": "The global card scheme. For example, `\"american_express\"`, `\"cartes_bancaires\"`, `\"diners_club_international\"`, `\"discover\"`, `\"eftpos\"`, `\"jcb\"`, `\"mastercard\"`, or `\"visa\"`.",
            "example": "visa"
          },
          "scheme_local": {
            "enum": [
              "cartes_bancaires",
              "mada",
              "omannet"
            ],
            "type": "string",
            "description": "Replaced by `local_schemes`.\nThe local card scheme, if the card is co-branded.\n",
            "example": "cartes_bancaires",
            "deprecated": true
          },
          "local_schemes": {
            "type": "array",
            "items": {
              "enum": [
                "accel",
                "cartes_bancaires",
                "eftpos",
                "mada",
                "nyce",
                "omannet",
                "pulse",
                "shazam",
                "star",
                "upi",
                "paypak",
                "maestro"
              ],
              "type": "string"
            },
            "description": "The local card scheme or schemes, if the card is co-branded.",
            "example": [
              "cartes_bancaires",
              "upi"
            ]
          },
          "card_type": {
            "enum": [
              "CREDIT",
              "DEBIT",
              "PREPAID",
              "CHARGE",
              "DEFERRED DEBIT",
              "NETWORK TOKEN"
            ],
            "type": "string",
            "description": "The card type",
            "example": "CREDIT"
          },
          "card_category": {
            "enum": [
              "CONSUMER",
              "COMMERCIAL"
            ],
            "type": "string",
            "description": "The card category",
            "example": "CONSUMER"
          },
          "currency": {
            "type": "string",
            "description": "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>.",
            "example": "MUR"
          },
          "issuer": {
            "type": "string",
            "description": "The card issuer",
            "example": "STATE BANK OF MAURITIUS"
          },
          "issuer_country": {
            "type": "string",
            "description": "The card issuer's country, as an ISO-2 code",
            "example": "MU"
          },
          "issuer_country_name": {
            "type": "string",
            "description": "The card issuer's country",
            "example": "Mauritius"
          },
          "is_combo_card": {
            "type": "boolean",
            "description": "Indicates whether the card is a combo credit and debit card. Applicable to Visa and Mastercard.",
            "example": true
          },
          "product_id": {
            "type": "string",
            "description": "The card issuer or scheme's product identifier",
            "example": "CLASSIC"
          },
          "product_type": {
            "type": "string",
            "description": "The card issuer or scheme's product type",
            "example": "F"
          },
          "subproduct_id": {
            "type": "string",
            "description": "The card issuer or scheme's sub-product identifier",
            "example": "VA"
          },
          "regulated_indicator": {
            "type": "boolean",
            "description": "Specifies whether the card is assigned to an interchange regulated BIN range",
            "example": true
          },
          "regulated_type": {
            "enum": [
              "base_regulated",
              "fraud_protected_regulated"
            ],
            "type": "string",
            "description": "The type of the interchange regulated card BIN range",
            "example": "base_regulated"
          },
          "is_reloadable_prepaid": {
            "type": "boolean",
            "description": "Indicates whether the prepaid bank identification number (BIN) is reloadable.",
            "example": true
          },
          "anonymous_prepaid_description": {
            "enum": [
              "Anonymous prepaid program and not AMLD5 compliant",
              "Anonymous prepaid program and AMLD5 compliant",
              "Not prepaid or non-anonymous prepaid program/default"
            ],
            "type": "string",
            "description": "The description of the prepaid BIN, specifying if it's an anonymous prepaid card.",
            "example": "Anonymous prepaid program and not AMLD5 compliant"
          },
          "card_payouts": {
            "type": "object",
            "properties": {
              "domestic_non_money_transfer": {
                "enum": [
                  "not_supported",
                  "standard",
                  "fast_funds",
                  "unknown"
                ],
                "type": "string",
                "description": "Describes whether the card is eligible for domestic non-money transfer transactions",
                "example": "not_supported"
              },
              "cross_border_non_money_transfer": {
                "enum": [
                  "not_supported",
                  "standard",
                  "fast_funds",
                  "unknown"
                ],
                "type": "string",
                "description": "Describes whether the card is eligible for cross-border non-money transfer transactions",
                "example": "standard"
              },
              "domestic_gambling": {
                "enum": [
                  "not_supported",
                  "standard",
                  "fast_funds",
                  "unknown"
                ],
                "type": "string",
                "description": "Describes whether the card is eligible for domestic gambling transactions",
                "example": "fast_funds"
              },
              "cross_border_gambling": {
                "enum": [
                  "not_supported",
                  "standard",
                  "fast_funds",
                  "unknown"
                ],
                "type": "string",
                "description": "Describes whether the card is eligible for cross-border gambling transactions",
                "example": "unknown"
              },
              "domestic_money_transfer": {
                "enum": [
                  "not_supported",
                  "standard",
                  "fast_funds",
                  "unknown"
                ],
                "type": "string",
                "description": "Describes whether the card is eligible for domestic money transfer transactions",
                "example": "not_supported"
              },
              "cross_border_money_transfer": {
                "enum": [
                  "not_supported",
                  "standard",
                  "fast_funds",
                  "unknown"
                ],
                "type": "string",
                "description": "Describes whether the card is eligible for cross-border money transfer transactions",
                "example": "not_supported"
              }
            },
            "description": "A card payouts block exists in the response if the format in the request is  \"card_payouts\"."
          },
          "scheme_metadata": {
            "type": "object",
            "properties": {
              "accel": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PinlessDebitSchemeMetadata"
                }
              },
              "pulse": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PinlessDebitSchemeMetadata"
                }
              },
              "nyce": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PinlessDebitSchemeMetadata"
                }
              },
              "shazam": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PinlessDebitSchemeMetadata"
                }
              },
              "star": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PinlessDebitSchemeMetadata"
                }
              }
            },
            "description": "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/>\n`scheme_metadata` is returned when you provide: \n  - The full card number or \n  -  11 digit bin\n"
          },
          "account_funding_transaction": {
            "$ref": "#/components/schemas/AccountFundingTransaction"
          }
        },
        "description": "Card Metadata"
      },
      "AccountFundingTransaction": {
        "type": "object",
        "properties": {
          "aft_indicator": {
            "type": "object",
            "properties": {
              "pull_funds": {
                "$ref": "#/components/schemas/PullFunds"
              }
            },
            "description": "Describes whether the card is eligible for Account Funding Transactions"
          }
        },
        "description": "Account Funding Transaction"
      },
      "PinlessDebitSchemeMetadata": {
        "type": "object",
        "properties": {
          "network_id": {
            "type": "string",
            "description": "The PINless debit network identifier",
            "example": "aam"
          },
          "network_description": {
            "type": "string",
            "description": "The PINless debit network name",
            "example": "Accel Money Transfer Advantage"
          },
          "bill_pay_indicator": {
            "type": "boolean",
            "description": "Describes whether the card is eligible for bill payment transactions",
            "example": true
          },
          "ecommerce_indicator": {
            "type": "boolean",
            "description": "Describes whether the card is eligible for e-commerce transactions",
            "example": true
          },
          "interchange_fee_indicator": {
            "type": "string",
            "description": "The type of interchange fee used for transactions",
            "example": "00"
          },
          "money_transfer_indicator": {
            "type": "boolean",
            "description": "Describes whether the card is eligible for money transfer transactions",
            "example": true
          },
          "token_indicator": {
            "type": "boolean",
            "description": "True indicates that the card PAN is a DPAN, false indicates that it is a FPAN",
            "example": false
          }
        }
      },
      "PullFunds": {
        "type": "object",
        "properties": {
          "cross_border": {
            "type": "boolean",
            "description": "Describes whether the card is eligible for Account Funding Transactions between accounts in different countries",
            "example": true
          },
          "domestic": {
            "type": "boolean",
            "description": "Describes whether the card is eligible for Account Funding Transactions between accounts in the same country",
            "example": true
          }
        },
        "description": "Describes whether the card is eligible to take funds from different accounts to fund other non-merchant accounts"
      },
      "NetworkTokensCard": {
        "required": [
          "last4",
          "expiry_month",
          "expiry_year"
        ],
        "type": "object",
        "properties": {
          "last4": {
            "pattern": "^[0-9]{4}$",
            "type": "string",
            "description": "The last four digits of the card number.",
            "example": "6378"
          },
          "expiry_month": {
            "maximum": 12,
            "minimum": 1,
            "pattern": "^[0-9]{1,2}$",
            "type": "string",
            "description": "The card's expiration month.",
            "example": "5"
          },
          "expiry_year": {
            "pattern": "^[0-9]{4}$",
            "type": "string",
            "description": "The card's expiration year.",
            "example": "2025"
          }
        },
        "description": "The card details."
      },
      "NetworkTokensCryptogramRequest": {
        "required": [
          "transaction_type"
        ],
        "type": "object",
        "properties": {
          "transaction_type": {
            "enum": [
              "ecom",
              "recurring",
              "pos",
              "aft"
            ],
            "type": "string",
            "description": "Transaction type the cryptogram is requested for.",
            "example": "ecom"
          }
        }
      },
      "NetworkTokensCryptogramResponse": {
        "required": [
          "cryptogram"
        ],
        "type": "object",
        "properties": {
          "cryptogram": {
            "type": "string",
            "description": "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",
            "example": "AhJ3hnYAoAbVz5zg1e17MAACAAA="
          },
          "eci": {
            "type": "string",
            "description": "Electronic Commerce Indicator (ECI) from the issuer.",
            "example": "7"
          },
          "_links": {
            "type": "object",
            "properties": {
              "self": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Link"
                  }
                ],
                "description": "Link to request a new cryptogram",
                "example": {
                  "href": "https://{prefix}.api.checkout.com/network-tokens/nt_xgu3isllqfyu7ktpk5z2yxbwna/cryptograms"
                }
              },
              "network-token": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Link"
                  }
                ],
                "description": "Link to access network token",
                "example": {
                  "href": "https://{prefix}.api.checkout.com/network-tokens/nt_xgu3isllqfyu7ktpk5z2yxbwna"
                }
              }
            }
          }
        }
      },
      "NetworkTokensRequest": {
        "required": [
          "source"
        ],
        "type": "object",
        "properties": {
          "source": {
            "$ref": "#/components/schemas/NetworkTokensRequestSource"
          }
        }
      },
      "NetworkTokensRequestDelete": {
        "required": [
          "initiated_by",
          "reason"
        ],
        "type": "object",
        "properties": {
          "initiated_by": {
            "enum": [
              "cardholder",
              "token_requestor"
            ],
            "type": "string",
            "description": "Who initiated/requested the deletion of the token.",
            "example": "token_requestor"
          },
          "reason": {
            "enum": [
              "fraud",
              "other"
            ],
            "type": "string",
            "description": "The reason for deleting the token.",
            "example": "other"
          }
        }
      },
      "NetworkTokensRequestSource": {
        "required": [
          "type"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/NetworkTokensRequestSourceInstrument"
          },
          {
            "$ref": "#/components/schemas/NetworkTokensRequestSourceCard"
          }
        ],
        "description": "The source object",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "id": "#/components/schemas/NetworkTokensRequestSourceInstrument",
            "card": "#/components/schemas/NetworkTokensRequestSourceCard"
          }
        }
      },
      "NetworkTokensRequestSourceCard": {
        "title": "card",
        "required": [
          "type",
          "number",
          "expiry_month",
          "expiry_year"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The source type",
            "example": "card"
          },
          "number": {
            "maxLength": 19,
            "minLength": 12,
            "pattern": "^[0-9]+$",
            "type": "string",
            "description": "The card number.",
            "example": "5436031030606378"
          },
          "cvv": {
            "maximum": 9999,
            "minimum": 1,
            "type": "string",
            "description": "The CVV number for the card",
            "example": "123"
          },
          "expiry_month": {
            "maximum": 12,
            "minimum": 1,
            "pattern": "^[0-9]{1,2}$",
            "type": "string",
            "description": "The expiry month of the card.",
            "example": "5"
          },
          "expiry_year": {
            "pattern": "^[0-9]{4}$",
            "type": "string",
            "description": "The four-digit expiry year of the card.",
            "example": "2025"
          }
        },
        "description": "Card details"
      },
      "NetworkTokensRequestSourceInstrument": {
        "title": "id",
        "required": [
          "type",
          "id"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The source type",
            "example": "id"
          },
          "id": {
            "pattern": "^(src)_(\\w{26})$",
            "type": "string",
            "description": "The card instrument",
            "example": "src_wmlfc3zyhqzehihu7giusaaawu"
          }
        },
        "description": "An existing payment source"
      },
      "NetworkTokensResponse": {
        "required": [
          "card",
          "network_token"
        ],
        "type": "object",
        "properties": {
          "card": {
            "$ref": "#/components/schemas/NetworkTokensCard"
          },
          "network_token": {
            "required": [
              "id",
              "state",
              "number",
              "expiry_month",
              "expiry_year",
              "type",
              "created_on",
              "modified_on"
            ],
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique token ID assigned by Checkout.com for each token",
                "example": "nt_xgu3isllqfyu7ktpk5z2yxbwna"
              },
              "state": {
                "enum": [
                  "active",
                  "suspended",
                  "inactive"
                ],
                "type": "string",
                "description": "Token status",
                "example": "active"
              },
              "number": {
                "pattern": "^[0-9]+$",
                "type": "string",
                "description": "The network token number.",
                "example": "5436424242424242"
              },
              "expiry_month": {
                "pattern": "^[0-9]{1,2}$",
                "type": "string",
                "description": "The network token's expiration month.",
                "example": "5"
              },
              "expiry_year": {
                "pattern": "^[0-9]{4}$",
                "type": "string",
                "description": "The network token's expiration year.",
                "example": "2025"
              },
              "type": {
                "enum": [
                  "vts",
                  "mdes"
                ],
                "type": "string",
                "description": "The type of token",
                "example": "vts"
              },
              "payment_account_reference": {
                "type": "string",
                "description": "Unique Payment account reference value assigned to payment account. All affiliated payment tokens, as well as the underlying PAN, have the same PAR.",
                "example": "5001a9f027e5629d11e3949a0800a"
              },
              "created_on": {
                "type": "string",
                "description": "When the network token was created",
                "format": "date-time",
                "example": "2020-02-11T15:57:32.4350000+00:00"
              },
              "modified_on": {
                "type": "string",
                "description": "When the network token was modified",
                "format": "date-time",
                "example": "2020-02-11T15:57:32.4350000+00:00"
              }
            },
            "description": "Network token details"
          },
          "token_requestor_id": {
            "type": "string",
            "description": "Token requestor ID",
            "example": "1234567890"
          },
          "token_scheme_id": {
            "type": "string",
            "description": "The scheme-specific identifier for the network token. \n\nFor Visa, this is equivalent to the `vProvisionedTokenID`. For Mastercard, this is equivalent to the `tokenUniqueReference`.\n",
            "example": "scheme_visa_001"
          },
          "_links": {
            "$ref": "#/components/schemas/NetworkTokensResponseLinks"
          }
        }
      },
      "NetworkTokensResponseLinks": {
        "type": "object",
        "properties": {
          "self": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/Link"
              }
            ],
            "description": "Link to access network token"
          },
          "cryptogram": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/Link"
              }
            ],
            "description": "Link to request cryptogram"
          },
          "card-art": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/Link"
              }
            ],
            "description": "Link to request card art image.\n\nThe URL returned contains an image of a non-PCI, digital representation of the cardholder's card.\n"
          }
        },
        "example": {
          "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"
          }
        }
      },
      "NetworkTokensRetrieveResponse": {
        "required": [
          "card",
          "network_token"
        ],
        "type": "object",
        "properties": {
          "card": {
            "$ref": "#/components/schemas/NetworkTokensCard"
          },
          "network_token": {
            "required": [
              "id",
              "state",
              "type",
              "created_on",
              "modified_on"
            ],
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The unique identifier for the network token.",
                "example": "nt_xgu3isllqfyu7ktpk5z2yxbwna"
              },
              "state": {
                "enum": [
                  "active",
                  "suspended",
                  "inactive",
                  "declined",
                  "requested"
                ],
                "type": "string",
                "description": "The token's status.",
                "example": "active"
              },
              "number": {
                "pattern": "^[0-9]+$",
                "type": "string",
                "description": "The network token number.\nThis field is only returned when the network token `status` is one of the following:\n\n- `active`\n- `suspended`\n- `inactive`\n",
                "example": "5436424242424242"
              },
              "expiry_month": {
                "pattern": "^[0-9]{1,2}$",
                "type": "string",
                "description": "The network token's expiration month.\n\nThis field is only returned when the network token `status` is one of the following:\n\n- `active`\n- `suspended`\n- `inactive`\n",
                "example": "5"
              },
              "expiry_year": {
                "pattern": "^[0-9]{4}$",
                "type": "string",
                "description": "The network token's expiration year.\n\nThis field is only returned when the network token `status` is one of the following:\n\n- `active`\n- `suspended`\n- `inactive`\n",
                "example": "2025"
              },
              "type": {
                "enum": [
                  "vts",
                  "mdes"
                ],
                "type": "string",
                "description": "The network token type.",
                "example": "vts"
              },
              "payment_account_reference": {
                "type": "string",
                "description": "The unique reference assigned to the payment account.\n\nAll payment tokens and underlying PANs associated with a payment account share the same `payment_account_reference`.\n",
                "example": "5001a9f027e5629d11e3949a0800a"
              },
              "created_on": {
                "type": "string",
                "description": "The UTC date and time the network token was created.",
                "format": "date-time",
                "example": "2020-02-11T15:57:32.4350000+00:00"
              },
              "modified_on": {
                "type": "string",
                "description": "The UTC date and time the network token was modified.",
                "format": "date-time",
                "example": "2020-02-11T15:57:32.4350000+00:00"
              }
            },
            "description": "Network token details."
          },
          "token_requestor_id": {
            "type": "string",
            "description": "The unique identifier for the token requestor.",
            "example": "1234567890"
          },
          "token_scheme_id": {
            "type": "string",
            "description": "The scheme-specific identifier for the network token. \n\nFor Visa, this is equivalent to the `vProvisionedTokenID`. For Mastercard, this is equivalent to the `tokenUniqueReference`.\n",
            "example": "scheme_visa_001"
          },
          "_links": {
            "$ref": "#/components/schemas/NetworkTokensResponseLinks"
          }
        }
      },
      "PagingError": {
        "type": "object",
        "properties": {
          "request_id": {
            "type": "string",
            "example": "0HL80RJLS76I7"
          },
          "error_type": {
            "type": "string",
            "example": "request_invalid"
          },
          "error_codes": {
            "type": "array",
            "items": {
              "type": "string",
              "example": "paging_limit_invalid"
            }
          }
        }
      },
      "PaymentAuthenticationData": {
        "type": "object",
        "properties": {
          "experience": {
            "enum": [
              "google_spa",
              "3ds"
            ],
            "type": "string",
            "description": "The authentication experience that was used to authenticate the payment.",
            "example": "3ds"
          }
        }
      },
      "PaymentAuthenticationRequest": {
        "type": "object",
        "properties": {
          "preferred_experiences": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "enum": [
                "google_spa",
                "3ds"
              ],
              "type": "string"
            },
            "description": "An ordered list of preferred authentication experiences to attempt for the payment request.",
            "example": [
              "google_spa",
              "3ds"
            ]
          }
        }
      },
      "AvailablePaymentTypes": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "payment_type": {
              "enum": [
                "Regular",
                "PayLater",
                "Installment"
              ],
              "type": "string",
              "description": "The available payment type returned by the partner for this purchase."
            },
            "payment_plan": {
              "$ref": "#/components/schemas/PaymentPlan"
            }
          }
        },
        "description": "Contains information about the available payment type returned by the partner for this purchase."
      },
      "PartnerMetadata": {
        "type": "object",
        "properties": {
          "order_id": {
            "type": "string",
            "description": "Order id",
            "example": "test_order_123"
          },
          "customer_id": {
            "type": "string",
            "description": "Customer id",
            "example": "cus_123"
          },
          "session_id": {
            "type": "string",
            "description": "The unique identifier for the session created.",
            "example": "feb0096d-8486-400d-89fa-2fa716b4521f"
          },
          "client_token": {
            "type": "string",
            "description": "The client token to pass to the client when initializing the JavaScript SDK.",
            "example": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjgyMzA1ZWJjLWI4MTEtMzYzNy1hYTRjLTY2ZWNhMTg3NGYzZCJ9.eyJzZXNzaW9uX2lkIjoiY2RiNDI0MGQtMTdkYy01MjJkLWJlYjEtYjAyYjRlMzllYTdhIiwiYmFzZV91cmwiOiJodHRwczovL2pzLnBsYXlncm91bmQua2xhcm5hLmNvbS9ldS9rcCIsImRlc2lnbiI6ImtsYXJuYSIsImxhbmd1YWdlIjoiZW4iLCJwdXJjaGFzZV9jb3VudHJ5IjoiREUiLCJlbnZpcm9ubWVudCI6InBsYXlncm91bmQiLCJtZXJjaGFudF9uYW1lIjoiQ2hlY2tvdXQuY29tIiwic2Vzc2lvbl90eXBlIjoiUEFZTUVOVFMiLCJjbGllbnRfZXZlbnRfYmFzZV91cmwiOiJodHRwczovL2V1LnBsYXlncm91bmQua2xhcm5hZXZ0LmNvbSIsInNjaGVtZSI6dHJ1ZSwiZXhwZXJpbWVudHMiOlt7Im5hbWUiOiJrcC1jbGllbnQtb25lLXB1cmNoYXNlLWZsb3ciLCJ2YXJpYXRlIjoidmFyaWF0ZS0xIn0seyJuYW1lIjoia3AtY2xpZW50LXV0b3BpYS1mbG93IiwidmFyaWF0ZSI6InZhcmlhdGUtMSJ9LHsibmFtZSI6ImtwYy0xay1zZXJ2aWNlIiwidmFyaWF0ZSI6InZhcmlhdGUtMSJ9LHsibmFtZSI6ImtwLWNsaWVudC11dG9waWEtc3RhdGljLXdpZGdldCIsInZhcmlhdGUiOiJpbmRleCIsInBhcmFtZXRlcnMiOnsiZHluYW1pYyI6InRydWUifX0seyJuYW1lIjoiaW4tYXBwLXNkay1uZXctaW50ZXJuYWwtYnJvd3NlciIsInBhcmFtZXRlcnMiOnsidmFyaWF0ZV9pZCI6Im5ldy1pbnRlcm5hbC1icm93c2VyLWVuYWJsZSJ9fSx7Im5hbWUiOiJrcC1jbGllbnQtdXRvcGlhLXNkay1mbG93IiwidmFyaWF0ZSI6InZhcmlhdGUtMSJ9LHsibmFtZSI6ImtwLWNsaWVudC11dG9waWEtd2Vidmlldy1mbG93IiwidmFyaWF0ZSI6InZhcmlhdGUtMSJ9LHsibmFtZSI6ImluLWFwcC1zZGstY2FyZC1zY2FubmluZyIsInBhcmFtZXRlcnMiOnsidmFyaWF0ZV9pZCI6ImNhcmQtc2Nhbm5pbmctZW5hYmxlIn19XSwicmVnaW9uIjoiZXUiLCJvcmRlcl9hbW91bnQiOjIwMDAsIm9mZmVyaW5nX29wdHMiOjAsIm9vIjoiY3ciLCJ2ZXJzaW9uIjoidjEuMTAuMC0xNTkwLWczZWJjMzkwNyJ9.ZxThQVo5e0Fck1vwOQ-WWAr7Zw-dsiEhjd3CW-E5p8atUhnBhrzIs6WCBeOOv3ci2VvpykVnDw2qycCTA-7TpTq1wn_kPxxixDQnYJYJzrZMoUhPLZo5pfy2a1S_t2owEQks0THRzu2wRlZwCN4ewDnVqsut60X4r3B92cJENIDtEC4Fs55CjFEmYUtsLXSspNLKvpZe2zg4O_M5yjH7XsBs5YJalZLexf4545G5vJrmVHgiA322mbgWC7BH0IU1A-ql5sFvs190_cjGaLsAvrkh9CVczUPy3X-jr3A5z1YRVfywPpvwKFWL8GZtgrdUZmgiU5_8ZZLkEPzrSucHrQ"
          }
        },
        "description": "Processing object"
      },
      "PaymentContext": {
        "required": [
          "source",
          "currency",
          "amount"
        ],
        "type": "object",
        "properties": {
          "source": {
            "$ref": "#/components/schemas/PaymentContextSource"
          },
          "amount": {
            "minimum": 0,
            "type": "integer",
            "description": "The Payment Context Payment amount.\nThe amount must be provided in the <a href=\"https://www.checkout.com/docs/resources/calculating-the-amount\" target=\"blank\">minor currency unit</a>.\n",
            "example": 6540
          },
          "currency": {
            "maxLength": 3,
            "minLength": 3,
            "type": "string",
            "description": "The three-letter <a href=\"https://www.checkout.com/docs/resources/codes/currency-codes\" target=\"blank\">ISO currency code</a>.\n",
            "example": "USD"
          },
          "payment_type": {
            "enum": [
              "Regular",
              "Recurring"
            ],
            "type": "string",
            "description": "\"Recurring\" must be specified if the payment is paid in multiple installments.\n",
            "default": "Regular",
            "example": "Recurring"
          },
          "capture": {
            "type": "boolean",
            "description": "Whether to capture the later payment (if applicable).",
            "default": true,
            "example": true
          },
          "customer": {
            "$ref": "#/components/schemas/PaymentContextDetailsCustomer"
          },
          "shipping": {
            "$ref": "#/components/schemas/Shipping"
          },
          "processing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentContextProcessing"
              }
            ],
            "description": "Use the processing object to influence or override the data during the payment processing."
          },
          "processing_channel_id": {
            "pattern": "^(pc)_(\\w{26})$",
            "type": "string",
            "description": "The processing channel to be used for the payment.",
            "example": "pc_q4dbxom5jbgudnjzjpz7j2z6uq"
          },
          "reference": {
            "maxLength": 50,
            "type": "string",
            "description": "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.\n",
            "example": "ORD-5023-4E89"
          },
          "description": {
            "maxLength": 100,
            "type": "string",
            "description": "A description of the Payment Context.",
            "example": "Set of 3 masks"
          },
          "success_url": {
            "maxLength": 1024,
            "type": "string",
            "description": "For redirect payment methods, this overrides the default success redirect URL configured on your account.",
            "format": "uri",
            "example": "https://example.com/payments/success"
          },
          "failure_url": {
            "maxLength": 1024,
            "type": "string",
            "description": "For redirect payment methods, this overrides the default failure redirect URL configured on your account.",
            "format": "uri",
            "example": "https://example.com/payments/fail"
          },
          "items": {
            "$ref": "#/components/schemas/PaymentContextItems"
          },
          "metadata": {
            "type": "object",
            "description": "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 \n\n- `string`\n- `number`\n- `boolean`\n\nArrays and objects are not supported. \n\nYou can provide up to 20 metadata fields per API call, but the value of each field must not exceed 255 characters in length.\n\nYou 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.\n",
            "example": {
              "coupon_code": "NY2018"
            }
          }
        }
      },
      "PaymentContextCustomer": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "description": "The customer's email address.",
            "example": "johnsmith@example.com"
          },
          "name": {
            "type": "string",
            "description": "The customer's name.",
            "example": "John Smith"
          }
        },
        "description": "Customer details"
      },
      "PaymentContextDetails": {
        "required": [
          "id",
          "payment_request",
          "partner_metadata"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the payment context.",
            "example": "pct_y3oqhf46pyzuxjbcn2giaqnb44"
          },
          "status": {
            "enum": [
              "Created",
              "Approved"
            ],
            "type": "string",
            "description": "The status of the payment context.",
            "default": "Created",
            "example": "Approved"
          },
          "payment_request": {
            "$ref": "#/components/schemas/PaymentContextDetailsRequest"
          },
          "partner_metadata": {
            "$ref": "#/components/schemas/PartnerMetadata"
          }
        },
        "description": "Get Payment Context Details response."
      },
      "PaymentContextDetailsCustomer": {
        "type": "object",
        "properties": {
          "phone": {
            "type": "object",
            "properties": {
              "country_code": {
                "maxLength": 7,
                "minLength": 1,
                "type": "string",
                "description": "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`.",
                "example": "+1"
              },
              "number": {
                "maxLength": 25,
                "minLength": 6,
                "type": "string",
                "description": "The phone number. <br> Required if `source.type` is `StcPay` or `Tabby`.",
                "example": "415 555 2671"
              },
              "phone_verified": {
                "type": "boolean",
                "description": "Indicates if the phone number has been verified."
              }
            },
            "description": "The customer's phone number. <br> Required if `source.type` is `StcPay` or `Tabby`."
          },
          "email": {
            "type": "string",
            "description": "The customer's email address. <br> Required if `source.type` is `Tabby`.",
            "format": "email",
            "example": "card.success@tabby.ai"
          },
          "name": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string",
            "description": "The customer's full name. <br> Required if `source.type` is `Tabby`.",
            "example": "string"
          },
          "email_verified": {
            "type": "boolean",
            "description": "Indicates if the email address has been verified."
          },
          "summary": {
            "type": "object",
            "properties": {
              "registration_date": {
                "type": "string",
                "description": "The date the customer registered.",
                "format": "date",
                "example": "2023-05-01T00:00:00.0000000"
              },
              "first_transaction_date": {
                "type": "string",
                "description": "The date of the customer's first transaction.",
                "format": "date",
                "example": "2023-07-01T00:00:00.0000000"
              },
              "last_payment_date": {
                "type": "string",
                "description": "The date of the customer's last payment.",
                "format": "date",
                "example": "2023-08-01T00:00:00.0000000"
              },
              "total_order_count": {
                "type": "integer",
                "description": "The total number of orders made by the customer.",
                "example": 15
              },
              "last_payment_amount": {
                "type": "number",
                "description": "The amount of the customer's last payment.",
                "format": "float",
                "example": 500
              }
            },
            "description": "Summary of the customer's transaction history. <br> Used for risk assessment when `source.type` is `Tabby`"
          }
        },
        "description": "The customer details. <br> Required if `source.type` is `StcPay` or `Tabby`."
      },
      "PaymentContextDetailsRequest": {
        "required": [
          "source",
          "currency",
          "amount",
          "items"
        ],
        "type": "object",
        "properties": {
          "source": {
            "$ref": "#/components/schemas/PaymentContextSource"
          },
          "amount": {
            "minimum": 0,
            "type": "integer",
            "description": "The payment context payment amount.\nThe amount must be provided in the <a href=\"https://www.checkout.com/docs/resources/calculating-the-amount\" target=\"blank\">minor currency unit</a>.\n",
            "example": 6540
          },
          "currency": {
            "maxLength": 3,
            "minLength": 3,
            "type": "string",
            "description": "The three-letter <a href=\"https://www.checkout.com/docs/resources/codes/currency-codes\" target=\"blank\">ISO currency code</a>.\n",
            "example": "USD"
          },
          "payment_type": {
            "enum": [
              "Regular",
              "Recurring"
            ],
            "type": "string",
            "description": "Set this value to `Recurring` if the payment is going to be paid in multiple installments.",
            "default": "Regular",
            "example": "Recurring"
          },
          "capture": {
            "type": "boolean",
            "description": "Specifies whether to capture the later payment (if applicable).",
            "default": true,
            "example": true
          },
          "customer": {
            "$ref": "#/components/schemas/PaymentContextCustomer"
          },
          "shipping": {
            "$ref": "#/components/schemas/Shipping"
          },
          "processing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentContextProcessing"
              }
            ],
            "description": "Use the processing object to influence or override the data during the payment processing."
          },
          "processing_channel_id": {
            "pattern": "^(pc)_(\\w{26})$",
            "type": "string",
            "description": "The processing channel to be used for the payment.",
            "example": "pc_q4dbxom5jbgudnjzjpz7j2z6uq"
          },
          "reference": {
            "maxLength": 50,
            "type": "string",
            "description": "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.\n",
            "example": "ORD-5023-4E89"
          },
          "description": {
            "maxLength": 100,
            "type": "string",
            "description": "A description of the payment context.",
            "example": "Set of 3 masks"
          },
          "success_url": {
            "maxLength": 1024,
            "type": "string",
            "description": "For redirect payment methods, this overrides the default success redirect URL configured on your account.",
            "format": "uri",
            "example": "https://example.com/payments/success"
          },
          "failure_url": {
            "maxLength": 1024,
            "type": "string",
            "description": "For redirect payment methods, this overrides the default failure redirect URL configured on your account.",
            "format": "uri",
            "example": "https://example.com/payments/fail"
          },
          "items": {
            "$ref": "#/components/schemas/PaymentContextItems"
          },
          "metadata": {
            "type": "object",
            "description": "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 \n\n- `string`\n- `number`\n- `boolean`\n\nArrays and objects are not supported. \n\nYou can provide up to 20 metadata fields per API call, but the value of each field must not exceed 255 characters in length.\n\nYou 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.\n",
            "example": {
              "coupon_code": "NY2018"
            }
          }
        }
      },
      "PaymentContextId": {
        "maxLength": 30,
        "minLength": 30,
        "pattern": "^(pct)_(\\w{26})$",
        "type": "string",
        "description": "Payment Context's unique identifier.",
        "example": "pct_y3oqhf46pyzuxjbcn2giaqnb44"
      },
      "PaymentContextItems": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "description": "The item type. For example, `physical`, `digital`."
            },
            "name": {
              "maxLength": 255,
              "type": "string",
              "description": "The descriptive name of the line item.",
              "example": "Test item"
            },
            "quantity": {
              "minimum": 1,
              "type": "integer",
              "description": "The number of line items.",
              "example": 2
            },
            "unit_price": {
              "minimum": 0,
              "type": "integer",
              "description": "The unit price of the item in <a href=\"https://www.checkout.com/docs/resources/calculating-the-amount\" target=\"blank\">minor currency unit</a>.",
              "example": 50
            },
            "reference": {
              "maxLength": 255,
              "type": "string",
              "description": "The item reference or product SKU (stock-keeping unit).",
              "example": "858818ac"
            },
            "total_amount": {
              "type": "number",
              "description": "The total cost of the line item (including any tax and discount amount) in minor currency unit. Value = (quantity x unit_price) - discount_amount.",
              "example": 29000
            },
            "tax_rate": {
              "type": "number",
              "description": "The tax rate of the item line in minor units. The percentage value is represented with two implicit decimals. For example, 2000=20%.",
              "example": 2000
            },
            "tax_amount": {
              "type": "number",
              "description": "The total amount of sales tax or value-added tax (VAT) on the total purchase amount. Tax should be included in the total purchase.",
              "example": 1000
            },
            "discount_amount": {
              "type": "number",
              "description": "The discount applied to each invoice line item.",
              "example": 1000
            },
            "url": {
              "maxLength": 1024,
              "type": "string",
              "description": "Link to the line item's product page."
            },
            "image_url": {
              "maxLength": 1024,
              "type": "string",
              "description": "Link to the line item's product page."
            }
          },
          "description": "The order's line item or product that is being purchased."
        },
        "description": "The order's line items. <p/>\n\nRequired for Klarna payments.\n"
      },
      "PaymentContextPaymentRequest": {
        "title": "Payment Context",
        "required": [
          "payment_context_id"
        ],
        "type": "object",
        "properties": {
          "payment_context_id": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentContextId"
              }
            ],
            "description": "Payment Context's unique identifier.\n"
          },
          "amount": {
            "minimum": 0,
            "type": "integer",
            "description": "The payment amount.\nThe amount must be provided in the <a href=\"https://www.checkout.com/docs/resources/calculating-the-amount\" target=\"blank\">minor currency unit</a>.\n",
            "example": 6540
          },
          "reference": {
            "maxLength": 80,
            "type": "string",
            "description": "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.\n",
            "example": "ORD-5023-4E89"
          },
          "description": {
            "maxLength": 100,
            "type": "string",
            "description": "A description of the payment.",
            "example": "Set of 3 masks"
          },
          "processing_channel_id": {
            "pattern": "^(pc)_(\\w{26})$",
            "type": "string",
            "description": "The processing channel to be used for the payment context. Required if this was not set in the request for the OAuth token.\n"
          },
          "processing": {
            "type": "object",
            "properties": {
              "invoice_id": {
                "maxLength": 127,
                "type": "string",
                "description": "The identification number of the invoice."
              },
              "shipping_amount": {
                "minimum": 0,
                "type": "number",
                "description": "The total freight or shipping and handling charges for the transaction.",
                "example": 300
              },
              "discount_amount": {
                "minimum": 0,
                "type": "number",
                "description": "The discount amount.",
                "example": 5
              },
              "tax_amount": {
                "minimum": 0,
                "type": "number",
                "description": "The total tax amount for the transaction, in [minor currency units](https://www.checkout.com/docs/payments/accept-payments/calculating-the-amount).",
                "example": 3000
              },
              "otp_value": {
                "maxLength": 50,
                "type": "string",
                "description": "One time password sent to customer by SMS. <br> Required if `source.type` is `StcPay`.",
                "example": "966557877988"
              },
              "airline_data": {
                "$ref": "#/components/schemas/AirlineData"
              },
              "accommodation_data": {
                "$ref": "#/components/schemas/AccommodationData"
              }
            },
            "description": "Use the processing object to influence or override the data during the payment processing."
          },
          "shipping": {
            "$ref": "#/components/schemas/Shipping"
          },
          "segment": {
            "$ref": "#/components/schemas/Segment"
          }
        }
      },
      "PaymentContextPaymentResponse": {
        "title": "PaymentContextResponse",
        "required": [
          "id",
          "_links"
        ],
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/PaymentId"
          },
          "payment_type": {
            "enum": [
              "Regular",
              "Recurring",
              "Installment",
              "PayLater"
            ],
            "type": "string",
            "description": "This is required for card-not-present payments. For example, recurring or mail order / telephone order payments.",
            "default": "Regular",
            "example": "Recurring"
          },
          "payment_plan": {
            "type": "object",
            "oneOf": [
              {
                "$ref": "#/components/schemas/PlanInstallment"
              }
            ],
            "description": "The details of the installment plan"
          },
          "processing": {
            "properties": {
              "partner_order_id": {
                "type": "string",
                "description": "The partner order ID.",
                "example": "5GK24544NA744002L"
              }
            }
          },
          "customer": {
            "$ref": "#/components/schemas/CustomerResponse"
          },
          "_links": {
            "type": "object",
            "properties": {
              "self": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Link"
                  }
                ],
                "description": "The URI of the Payment Context.",
                "example": {
                  "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pezuxjbcn2giaqnb44"
                }
              }
            },
            "description": "The links related to the payment."
          }
        }
      },
      "PaymentContextProcessing": {
        "type": "object",
        "properties": {
          "plan": {
            "required": [
              "type",
              "skip_shipping_address",
              "immutable_shipping_address"
            ],
            "properties": {
              "type": {
                "enum": [
                  "MERCHANT_INITIATED_BILLING",
                  "MERCHANT_INITIATED_BILLING_SINGLE_AGREEMENT",
                  "CHANNEL_INITIATED_BILLING",
                  "CHANNEL_INITIATED_BILLING_SINGLE_AGREEMENT",
                  "RECURRING_PAYMENTS",
                  "PRE_APPROVED_PAYMENTS"
                ],
                "type": "string",
                "description": "Type of payment plan.",
                "example": "MERCHANT_INITIATED_BILLING"
              },
              "skip_shipping_address": {
                "type": "boolean"
              },
              "immutable_shipping_address": {
                "type": "boolean"
              }
            },
            "description": "The plan details for a recurring payment with PayPal. This is required when `payment_type: \"recurring\"`."
          },
          "discount_amount": {
            "minimum": 0,
            "type": "number",
            "description": "The discount amount the merchant applied to the transaction.",
            "example": 5
          },
          "shipping_amount": {
            "minimum": 0,
            "type": "number",
            "description": "The total freight or shipping and handling charges for the transaction.",
            "example": 300
          },
          "tax_amount": {
            "minimum": 0,
            "type": "number",
            "description": "The total tax amount for the transaction, in [minor currency units](https://www.checkout.com/docs/payments/accept-payments/calculating-the-amount).",
            "example": 3000
          },
          "invoice_id": {
            "maxLength": 127,
            "type": "string",
            "description": "Invoice ID number."
          },
          "brand_name": {
            "maxLength": 127,
            "type": "string",
            "description": "The label that overrides the business name in the PayPal account on the PayPal pages.",
            "example": "Acme Corporation"
          },
          "locale": {
            "maxLength": 10,
            "minLength": 2,
            "pattern": "^[a-z]{2}(?:-[A-Z][a-z]{3})?(?:-(?:[A-Z]{2}))?$",
            "type": "string",
            "description": "The language and region of the customer in ISO 639-2 language code; value consists of language-country.",
            "example": "en-US"
          },
          "shipping_preference": {
            "enum": [
              "no_shipping",
              "set_provided_address",
              "get_from_file"
            ],
            "type": "string",
            "description": "Shipping preference.",
            "example": "set_provided_address"
          },
          "user_action": {
            "enum": [
              "pay_now",
              "continue"
            ],
            "type": "string",
            "description": "Property required by PayPal to have an appropriate payment flow.",
            "example": "pay_now"
          },
          "partner_customer_risk_data": {
            "type": "object",
            "properties": {
              "key": {
                "type": "string",
                "description": "The key for the pair."
              },
              "value": {
                "type": "string",
                "description": "The value for the pair."
              }
            },
            "description": "An array of key-and-value pairs with merchant-specific data for the transaction."
          },
          "custom_payment_method_ids": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "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.",
            "x-klarna-name": "custom_payment_method_ids",
            "x-cko-passthrough": true,
            "x-klarna-docs": "https://developers.klarna.com/api/#payments-api__create-a-new-credit-session__custom_payment_method_ids"
          },
          "airline_data": {
            "$ref": "#/components/schemas/AirlineData"
          },
          "accommodation_data": {
            "$ref": "#/components/schemas/AccommodationData"
          }
        },
        "description": "Use the processing object to influence or override the data sent during card processing."
      },
      "PaymentContextResponse": {
        "title": "Payment Context",
        "required": [
          "id",
          "partner_metadata",
          "processed_on",
          "_links"
        ],
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/PaymentContextId"
          },
          "amount": {
            "type": "integer",
            "description": "The payment amount."
          },
          "processed_on": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ServerTimestamp"
              }
            ],
            "description": "The date and time when the payment context was processed in UTC."
          },
          "status": {
            "type": "string",
            "description": "The status of the payment context.",
            "example": "Pending"
          },
          "response_code": {
            "type": "string",
            "description": "The gateway response code.",
            "example": "2000"
          },
          "response_summary": {
            "type": "string",
            "description": "The gateway response summary.",
            "example": "Rejected"
          },
          "available_payment_types": {
            "$ref": "#/components/schemas/AvailablePaymentTypes"
          },
          "unavailable_payment_types": {
            "$ref": "#/components/schemas/UnavailablePaymentTypes"
          },
          "partner_metadata": {
            "$ref": "#/components/schemas/PartnerMetadata"
          },
          "_links": {
            "type": "object",
            "properties": {
              "self": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Link"
                  }
                ],
                "description": "The URI of the Payment Context.",
                "example": {
                  "href": "https://{prefix}.api.checkout.com/payment-contexts/pct_y3oqhf46pyzuxjbcn2giaqnb44"
                }
              }
            },
            "description": "The links related to the payment."
          }
        }
      },
      "PaymentContextSource": {
        "required": [
          "type"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/PaymentContextKlarnaSource"
          },
          {
            "$ref": "#/components/schemas/PaymentContextPayPalSource"
          },
          {
            "$ref": "#/components/schemas/PaymentContextStcPaySource"
          },
          {
            "$ref": "#/components/schemas/PaymentContextTabbySource"
          }
        ],
        "description": "The source of the payment.",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "klarna": "#/components/schemas/PaymentContextKlarnaSource",
            "paypal": "#/components/schemas/PaymentContextPayPalSource",
            "stcpay": "#/components/schemas/PaymentContextStcPaySource",
            "tabby": "#/components/schemas/PaymentContextTabbySource"
          }
        }
      },
      "PaymentContextKlarnaSource": {
        "title": "klarna",
        "required": [
          "type",
          "account_holder"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The source type of the payment context request.",
            "example": "klarna"
          },
          "account_holder": {
            "required": [
              "billing_address"
            ],
            "type": "object",
            "properties": {
              "billing_address": {
                "required": [
                  "country"
                ],
                "type": "object",
                "properties": {
                  "country": {
                    "type": "string",
                    "description": "The billing country or purchase country of the customer. The two-letter ISO country code of the address"
                  }
                }
              }
            }
          }
        },
        "description": "Klarna Source"
      },
      "PaymentContextPayPalSource": {
        "title": "paypal",
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The source type of the payment context request.",
            "example": "paypal"
          }
        },
        "description": "PayPal Source"
      },
      "PaymentContextStcPaySource": {
        "title": "stcpay",
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The source type of the payment context request.",
            "example": "stcpay"
          }
        },
        "description": "StcPay Source"
      },
      "PaymentContextTabbySource": {
        "title": "tabby",
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The source type of the payment context request.",
            "example": "tabby"
          }
        },
        "description": "PayPal Source"
      },
      "UnavailablePaymentTypes": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "payment_type": {
              "enum": [
                "Regular",
                "PayLater",
                "Installment"
              ],
              "type": "string",
              "description": "The unavailable payment type returned by the partner for this purchase."
            },
            "rejection_reason": {
              "type": "string",
              "description": "The reason why the payment type is unavailable."
            },
            "payment_plan": {
              "$ref": "#/components/schemas/PaymentPlan"
            },
            "description": {
              "type": "string"
            }
          }
        },
        "description": "Contains information about the unavailable payment type returned by the partner for this purchase."
      },
      "PaymentInterfacesStorePaymentDetails": {
        "enum": [
          "disabled",
          "enabled"
        ],
        "type": "string",
        "description": "Specifies whether you intend to store the cardholder's payment details.\n\nIf you set this field to `enabled`, you must:\n\n- have obtained consent from the cardholder to store their payment details\n- provide a customer ID or email address in the request\n\nIf the request's `payment_type` is set to one of the following values, you do not need to provide this field:\n\n - `Installment`\n - `Recurring`\n - `Unscheduled`\n",
        "default": "disabled"
      },
      "GetPaymentLinkResponse": {
        "required": [
          "id",
          "status",
          "amount",
          "currency",
          "expires_on",
          "created_on",
          "billing",
          "_links"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/PaymentLinkResponseStatusActive"
          },
          {
            "$ref": "#/components/schemas/PaymentLinkResponseStatusPaymentReceived"
          },
          {
            "$ref": "#/components/schemas/PaymentLinkResponseStatusExpired"
          }
        ],
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentLinkId"
              }
            ],
            "example": "pl_ELqQJXdXzabU"
          },
          "status": {
            "enum": [
              "Active",
              "Payment Received",
              "Expired"
            ],
            "type": "string",
            "description": "The status of the Payment Link:\n  - `Active`: The Payment Link can accept a payment from the customer. A payment may have been attempted by the customer but not completed successfully.\n  - `Payment Received`: A payment has been received successfully using this Payment Link.\n  - `Expired`: The Payment Link has expired and can no longer be accessed.\n",
            "example": "Active"
          },
          "payment_id": {
            "type": "string",
            "description": "Unique identifier for an in progress or completed payment for this Payment Link.",
            "example": "pay_88cb4e671m1da22e9bbbyx"
          },
          "amount": {
            "type": "integer",
            "description": "The original payment amount.",
            "example": 100
          },
          "currency": {
            "type": "string",
            "description": "The three-letter <a href=\"https://www.checkout.com/docs/resources/codes/currency-codes\" target=\"blank\">ISO currency code</a> of the payment.<br>",
            "example": "GBP"
          },
          "reference": {
            "type": "string",
            "description": "Your reference for the payment.",
            "example": "ORD-123A"
          },
          "description": {
            "type": "string",
            "description": "A description of the payment.",
            "example": "Payment for Gold Necklace"
          },
          "created_on": {
            "type": "string",
            "description": "The date and time when the Payment Link was created.",
            "format": "date-time",
            "example": "2021-08-19T20:25:28.7250000+00:00"
          },
          "expires_on": {
            "type": "string",
            "description": "The date and time when the Payment Link expires.",
            "format": "date-time",
            "example": "2021-08-20T20:25:28.0000000+08:00"
          },
          "processing_channel_id": {
            "pattern": "^(pc)_(\\w{26})$",
            "type": "string",
            "description": "The processing channel to be used for the payment",
            "example": "pc_q4dbxom5jbgudnjzjpz7j2z6uq"
          },
          "amount_allocations": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AmountAllocations"
              }
            ]
          },
          "customer": {
            "type": "object",
            "properties": {
              "email": {
                "type": "string",
                "description": "The email address for the customer.",
                "format": "email",
                "example": "brucewayne@email.com"
              },
              "name": {
                "type": "string",
                "description": "The customer's name.",
                "example": "Bruce Wayne"
              }
            },
            "description": "The customer's details."
          },
          "shipping": {
            "required": [
              "address"
            ],
            "type": "object",
            "properties": {
              "address": {
                "required": [
                  "country"
                ],
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Address"
                  }
                ],
                "description": "The customer's address to ship to."
              }
            },
            "description": "The address any products are being sent to."
          },
          "billing": {
            "required": [
              "address"
            ],
            "type": "object",
            "properties": {
              "address": {
                "required": [
                  "country"
                ],
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Address"
                  }
                ],
                "description": "The billing address."
              },
              "phone": {
                "required": [
                  "number"
                ],
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PhoneNumber"
                  }
                ],
                "description": "The customer's phone number."
              }
            },
            "additionalProperties": false,
            "description": "The billing details."
          },
          "products": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentInterfacesProducts"
              }
            ]
          },
          "metadata": {
            "title": "The Metadata Schema",
            "type": "object",
            "description": "Any additional information stored at the point of creation."
          },
          "locale": {
            "enum": [
              "ar",
              "da-DK",
              "de-DE",
              "el",
              "en-GB",
              "es-ES",
              "fi-FI",
              "fil-PH",
              "fr-FR",
              "hi-IN",
              "id-ID",
              "it-IT",
              "ja-JP",
              "ms-MY",
              "nb-NO",
              "nl-NL",
              "pt-PT",
              "sv-SE",
              "th-TH",
              "vi-VN",
              "zh-CN",
              "zh-HK",
              "zh-TW"
            ],
            "type": "string",
            "description": "The language that the Payment Link page is displayed in."
          },
          "return_url": {
            "maxLength": 255,
            "type": "string",
            "description": "If provided, the success page will include a button that redirects your customer to the provided URL.",
            "format": "uri",
            "example": "https://example.com/success"
          },
          "_links": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentLinkResponseLinks"
              }
            ],
            "description": "The links related to the Payment Link."
          }
        },
        "discriminator": {
          "propertyName": "status",
          "mapping": {
            "Active": "#/components/schemas/PaymentLinkResponseStatusActive",
            "Payment Received": "#/components/schemas/PaymentLinkResponseStatusPaymentReceived",
            "Expired": "#/components/schemas/PaymentLinkResponseStatusExpired"
          }
        }
      },
      "PaymentLinkId": {
        "maxLength": 15,
        "minLength": 15,
        "pattern": "^pl_[A-Za-z0-9_-]{12}$",
        "type": "string",
        "description": "The unique identifier for a Payment Link."
      },
      "PaymentLinkResponseLinks": {
        "minItems": 2,
        "required": [
          "self",
          "redirect"
        ],
        "type": "object",
        "properties": {
          "self": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/Link"
              }
            ],
            "description": "The URI of the Payment Link details."
          },
          "redirect": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/Link"
              }
            ],
            "description": "The link to visit the Payment Link page."
          },
          "payment": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/Link"
              }
            ],
            "description": "The URI of the in progress or completed payment for this Payment Link."
          },
          "payment_actions": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/Link"
              }
            ],
            "description": "The URI of the actions associated with the in progress or completed payment for this Payment Link."
          }
        },
        "description": "The links related to the Payment Link.",
        "example": {
          "self": {
            "href": "https://{prefix}.api.sandbox.checkout.com/payment-links/pl_ELqQJXdXzabU"
          },
          "redirect": {
            "href": "https://pay.sandbox.checkout.com/link/pl_ELqQJXdXzabU"
          }
        }
      },
      "PaymentLinkResponseStatusActive": {
        "title": "Active",
        "required": [
          "id",
          "status",
          "amount",
          "currency",
          "expires_on",
          "created_on",
          "billing",
          "_links"
        ],
        "type": "object",
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentLinkId"
              }
            ],
            "example": "pl_ELqQJXdXzabU"
          },
          "status": {
            "enum": [
              "Active"
            ],
            "type": "string",
            "description": "The status of the Payment Link:\n  - `Active`: The Payment Link can accept a payment from the customer. A payment may have been attempted by the customer but not completed successfully.\n  - `Payment Received`: A payment has been received successfully using this Payment Link.\n  - `Expired`: The Payment Link has expired and can no longer be accessed.\n",
            "example": "Active"
          },
          "payment_id": {
            "type": "string",
            "description": "Unique identifier for an in progress or completed payment for this Payment Link.",
            "example": "pay_88cb4e671m1da22e9bbbyx"
          },
          "amount": {
            "type": "integer",
            "description": "The original payment amount.",
            "example": 100
          },
          "currency": {
            "type": "string",
            "description": "The three-letter <a href=\"https://www.checkout.com/docs/resources/codes/currency-codes\" target=\"blank\">ISO currency code</a> of the payment.<br>",
            "example": "GBP"
          },
          "reference": {
            "type": "string",
            "description": "Your reference for the payment.",
            "example": "ORD-123A"
          },
          "description": {
            "type": "string",
            "description": "A description of the payment.",
            "example": "Payment for Gold Necklace"
          },
          "created_on": {
            "type": "string",
            "description": "The date and time when the Payment Link was created.",
            "format": "date-time",
            "example": "2021-08-19T20:25:28.7250000+00:00"
          },
          "expires_on": {
            "type": "string",
            "description": "The date and time when the Payment Link expires.",
            "format": "date-time",
            "example": "2021-08-20T20:25:28.0000000+08:00"
          },
          "processing_channel_id": {
            "pattern": "^(pc)_(\\w{26})$",
            "type": "string",
            "description": "The processing channel to be used for the payment",
            "example": "pc_q4dbxom5jbgudnjzjpz7j2z6uq"
          },
          "amount_allocations": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AmountAllocations"
              }
            ]
          },
          "customer": {
            "type": "object",
            "properties": {
              "email": {
                "type": "string",
                "description": "The email address for the customer.",
                "format": "email",
                "example": "brucewayne@email.com"
              },
              "name": {
                "type": "string",
                "description": "The customer's name.",
                "example": "Bruce Wayne"
              }
            },
            "description": "The customer's details."
          },
          "shipping": {
            "required": [
              "address"
            ],
            "type": "object",
            "properties": {
              "address": {
                "required": [
                  "country"
                ],
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Address"
                  }
                ],
                "description": "The customer's address to ship to."
              }
            },
            "description": "The address any products are being sent to."
          },
          "billing": {
            "required": [
              "address"
            ],
            "type": "object",
            "properties": {
              "address": {
                "required": [
                  "country"
                ],
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Address"
                  }
                ],
                "description": "The billing address."
              },
              "phone": {
                "required": [
                  "number"
                ],
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PhoneNumber"
                  }
                ],
                "description": "The customer's phone number."
              }
            },
            "additionalProperties": false,
            "description": "The billing details."
          },
          "products": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentInterfacesProducts"
              }
            ]
          },
          "metadata": {
            "title": "The Metadata Schema",
            "type": "object",
            "description": "Any additional information stored at the point of creation."
          },
          "locale": {
            "enum": [
              "ar",
              "da-DK",
              "de-DE",
              "el",
              "en-GB",
              "es-ES",
              "fi-FI",
              "fil-PH",
              "fr-FR",
              "hi-IN",
              "id-ID",
              "it-IT",
              "ja-JP",
              "ms-MY",
              "nb-NO",
              "nl-NL",
              "pt-PT",
              "sv-SE",
              "th-TH",
              "vi-VN",
              "zh-CN",
              "zh-HK",
              "zh-TW"
            ],
            "type": "string",
            "description": "The language that the Payment Link page is displayed in."
          },
          "return_url": {
            "maxLength": 255,
            "type": "string",
            "description": "If provided, the success page will include a button that redirects your customer to the provided URL.",
            "format": "uri",
            "example": "https://example.com/success"
          },
          "_links": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentLinkResponseLinks"
              }
            ],
            "description": "The links related to the Payment Link."
          }
        },
        "description": "A Payment Link that is active and can accept a payment from a customer."
      },
      "PaymentLinkResponseStatusExpired": {
        "title": "Expired",
        "required": [
          "id",
          "status",
          "amount",
          "currency",
          "expires_on",
          "created_on",
          "billing",
          "_links"
        ],
        "type": "object",
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentLinkId"
              }
            ],
            "example": "pl_ELqQJXdXzabU"
          },
          "status": {
            "enum": [
              "Expired"
            ],
            "type": "string",
            "description": "The status of the Payment Link:\n  - `Active`: The Payment Link can accept a payment from the customer. A payment may have been attempted by the customer but not completed successfully.\n  - `Payment Received`: A payment has been received successfully using this Payment Link.\n  - `Expired`: The Payment Link has expired and can no longer be accessed.\n",
            "example": "Expired"
          },
          "payment_id": {
            "type": "string",
            "description": "Unique identifier for an in progress or completed payment for this Payment Link.",
            "example": "pay_88cb4e671m1da22e9bbbyx"
          },
          "amount": {
            "type": "integer",
            "description": "The original payment amount.",
            "example": 100
          },
          "currency": {
            "type": "string",
            "description": "The three-letter <a href=\"https://www.checkout.com/docs/resources/codes/currency-codes\" target=\"blank\">ISO currency code</a> of the payment.<br>",
            "example": "GBP"
          },
          "reference": {
            "type": "string",
            "description": "Your reference for the payment.",
            "example": "ORD-123A"
          },
          "description": {
            "type": "string",
            "description": "A description of the payment.",
            "example": "Payment for Gold Necklace"
          },
          "created_on": {
            "type": "string",
            "description": "The date and time when the Payment Link was created.",
            "format": "date-time",
            "example": "2021-08-19T20:25:28.7250000+00:00"
          },
          "expires_on": {
            "type": "string",
            "description": "The date and time when the Payment Link expires.",
            "format": "date-time",
            "example": "2021-08-20T20:25:28.0000000+08:00"
          },
          "processing_channel_id": {
            "pattern": "^(pc)_(\\w{26})$",
            "type": "string",
            "description": "The processing channel to be used for the payment",
            "example": "pc_q4dbxom5jbgudnjzjpz7j2z6uq"
          },
          "amount_allocations": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AmountAllocations"
              }
            ]
          },
          "customer": {
            "type": "object",
            "properties": {
              "email": {
                "type": "string",
                "description": "The email address for the customer.",
                "format": "email",
                "example": "brucewayne@email.com"
              },
              "name": {
                "type": "string",
                "description": "The customer's name.",
                "example": "Bruce Wayne"
              }
            },
            "description": "The customer's details."
          },
          "shipping": {
            "required": [
              "address"
            ],
            "type": "object",
            "properties": {
              "address": {
                "required": [
                  "country"
                ],
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Address"
                  }
                ],
                "description": "The customer's address to ship to."
              }
            },
            "description": "The address any products are being sent to."
          },
          "billing": {
            "required": [
              "address"
            ],
            "type": "object",
            "properties": {
              "address": {
                "required": [
                  "country"
                ],
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Address"
                  }
                ],
                "description": "The billing address."
              },
              "phone": {
                "required": [
                  "number"
                ],
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PhoneNumber"
                  }
                ],
                "description": "The customer's phone number."
              }
            },
            "additionalProperties": false,
            "description": "The billing details."
          },
          "products": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentInterfacesProducts"
              }
            ]
          },
          "metadata": {
            "title": "The Metadata Schema",
            "type": "object",
            "description": "Any additional information stored at the point of creation."
          },
          "locale": {
            "enum": [
              "ar",
              "da-DK",
              "de-DE",
              "el",
              "en-GB",
              "es-ES",
              "fi-FI",
              "fil-PH",
              "fr-FR",
              "hi-IN",
              "id-ID",
              "it-IT",
              "ja-JP",
              "ms-MY",
              "nb-NO",
              "nl-NL",
              "pt-PT",
              "sv-SE",
              "th-TH",
              "vi-VN",
              "zh-CN",
              "zh-HK",
              "zh-TW"
            ],
            "type": "string",
            "description": "The language that the Payment Link page is displayed in."
          },
          "return_url": {
            "maxLength": 255,
            "type": "string",
            "description": "If provided, the success page will include a button that redirects your customer to the provided URL.",
            "format": "uri",
            "example": "https://example.com/success"
          },
          "_links": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentLinkResponseLinks"
              }
            ],
            "description": "The links related to the Payment Link."
          }
        },
        "description": "An expired Payment Link"
      },
      "PaymentLinkResponseStatusPaymentReceived": {
        "title": "Payment Received",
        "required": [
          "id",
          "status",
          "amount",
          "currency",
          "expires_on",
          "created_on",
          "billing",
          "_links",
          "payment_id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentLinkId"
              }
            ],
            "example": "pl_ELqQJXdXzabU"
          },
          "status": {
            "enum": [
              "Payment Received"
            ],
            "type": "string",
            "description": "The status of the Payment Link:\n  - `Active`: The Payment Link can accept a payment from the customer. A payment may have been attempted by the customer but not completed successfully.\n  - `Payment Received`: A payment has been received successfully using this Payment Link.\n  - `Expired`: The Payment Link has expired and can no longer be accessed.\n",
            "example": "Payment Received"
          },
          "payment_id": {
            "type": "string",
            "description": "Unique identifier for an in progress or completed payment for this Payment Link.",
            "example": "pay_88cb4e671m1da22e9bbbyx"
          },
          "amount": {
            "type": "integer",
            "description": "The original payment amount.",
            "example": 100
          },
          "currency": {
            "type": "string",
            "description": "The three-letter <a href=\"https://www.checkout.com/docs/resources/codes/currency-codes\" target=\"blank\">ISO currency code</a> of the payment.<br>",
            "example": "GBP"
          },
          "reference": {
            "type": "string",
            "description": "Your reference for the payment.",
            "example": "ORD-123A"
          },
          "description": {
            "type": "string",
            "description": "A description of the payment.",
            "example": "Payment for Gold Necklace"
          },
          "created_on": {
            "type": "string",
            "description": "The date and time when the Payment Link was created.",
            "format": "date-time",
            "example": "2021-08-19T20:25:28.7250000+00:00"
          },
          "expires_on": {
            "type": "string",
            "description": "The date and time when the Payment Link expires.",
            "format": "date-time",
            "example": "2021-08-20T20:25:28.0000000+08:00"
          },
          "processing_channel_id": {
            "pattern": "^(pc)_(\\w{26})$",
            "type": "string",
            "description": "The processing channel to be used for the payment",
            "example": "pc_q4dbxom5jbgudnjzjpz7j2z6uq"
          },
          "amount_allocations": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AmountAllocations"
              }
            ]
          },
          "customer": {
            "type": "object",
            "properties": {
              "email": {
                "type": "string",
                "description": "The email address for the customer.",
                "format": "email",
                "example": "brucewayne@email.com"
              },
              "name": {
                "type": "string",
                "description": "The customer's name.",
                "example": "Bruce Wayne"
              }
            },
            "description": "The customer's details."
          },
          "shipping": {
            "required": [
              "address"
            ],
            "type": "object",
            "properties": {
              "address": {
                "required": [
                  "country"
                ],
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Address"
                  }
                ],
                "description": "The customer's address to ship to."
              }
            },
            "description": "The address any products are being sent to."
          },
          "billing": {
            "required": [
              "address"
            ],
            "type": "object",
            "properties": {
              "address": {
                "required": [
                  "country"
                ],
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Address"
                  }
                ],
                "description": "The billing address."
              },
              "phone": {
                "required": [
                  "number"
                ],
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PhoneNumber"
                  }
                ],
                "description": "The customer's phone number."
              }
            },
            "additionalProperties": false,
            "description": "The billing details."
          },
          "products": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentInterfacesProducts"
              }
            ]
          },
          "metadata": {
            "title": "The Metadata Schema",
            "type": "object",
            "description": "Any additional information stored at the point of creation."
          },
          "locale": {
            "enum": [
              "ar",
              "da-DK",
              "de-DE",
              "el",
              "en-GB",
              "es-ES",
              "fi-FI",
              "fil-PH",
              "fr-FR",
              "hi-IN",
              "id-ID",
              "it-IT",
              "ja-JP",
              "ms-MY",
              "nb-NO",
              "nl-NL",
              "pt-PT",
              "sv-SE",
              "th-TH",
              "vi-VN",
              "zh-CN",
              "zh-HK",
              "zh-TW"
            ],
            "type": "string",
            "description": "The language that the Payment Link page is displayed in."
          },
          "return_url": {
            "maxLength": 255,
            "type": "string",
            "description": "If provided, the success page will include a button that redirects your customer to the provided URL.",
            "format": "uri",
            "example": "https://example.com/success"
          },
          "_links": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentLinkResponseLinks"
              }
            ],
            "description": "The links related to the Payment Link."
          }
        },
        "description": "A Payment Link that has received a payment"
      },
      "PaymentLinksRequest": {
        "required": [
          "amount",
          "currency",
          "billing"
        ],
        "type": "object",
        "properties": {
          "amount": {
            "minimum": 1,
            "type": "integer",
            "description": "The payment amount. The exact format <a href=\"https://www.checkout.com/docs/resources/calculating-the-amount\" target=\"_blank\">depends on the currency</a>.",
            "example": 1000
          },
          "currency": {
            "maxLength": 3,
            "minLength": 3,
            "type": "string",
            "description": "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>.",
            "example": "GBP"
          },
          "payment_type": {
            "enum": [
              "Regular",
              "Recurring"
            ],
            "type": "string",
            "description": "This must be specified for card payments where the cardholder is not present (i.e., recurring or mail order / telephone order)",
            "default": "Regular"
          },
          "authorization_type": {
            "enum": [
              "Final",
              "Estimated"
            ],
            "type": "string",
            "description": "The authorization type.",
            "default": "Final",
            "example": "Estimated"
          },
          "payment_plan": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentSessionPaymentPlanRecurring"
              }
            ]
          },
          "payment_ip": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IPAddress"
              }
            ],
            "description": "The Customers IP address. Only IPv4 and IPv6 addresses are accepted.",
            "deprecated": true
          },
          "billing_descriptor": {
            "required": [
              "name",
              "city"
            ],
            "type": "object",
            "properties": {
              "name": {
                "maxLength": 25,
                "type": "string",
                "description": "A dynamic description of the change"
              },
              "city": {
                "maxLength": 13,
                "minLength": 1,
                "type": "string",
                "description": "The city from which the charge originated"
              },
              "reference": {
                "maxLength": 50,
                "type": "string",
                "description": "The reference shown on the statement. Required for payouts to bank accounts."
              }
            },
            "description": "An optional description that is displayed on the customer's statement identifying a purchase"
          },
          "reference": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentInterfacesReference"
              }
            ]
          },
          "description": {
            "maxLength": 100,
            "type": "string",
            "description": "A description of the payment.",
            "example": "Payment for Gold Necklace"
          },
          "display_name": {
            "type": "string",
            "description": "The merchant name to display to customers on the checkout page.",
            "example": "The Jewelry Shop"
          },
          "processing_channel_id": {
            "pattern": "^(pc)_(\\w{26})$",
            "type": "string",
            "description": "The processing channel to use for the payment. <p/>\n\nThis field is required if you have more than one processing channel associated with your API key.\n",
            "example": "pc_q4dbxom5jbgudnjzjpz7j2z6uq"
          },
          "amount_allocations": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AmountAllocations"
              }
            ]
          },
          "expires_in": {
            "maximum": 5184000,
            "minimum": 1,
            "type": "integer",
            "description": "The time for which the link remains valid, in seconds.",
            "default": 86400,
            "example": 604800
          },
          "customer": {
            "type": "object",
            "properties": {
              "email": {
                "maxLength": 255,
                "type": "string",
                "description": "The customer's email address.",
                "format": "email",
                "example": "ali.farid@example.com"
              },
              "name": {
                "maxLength": 255,
                "type": "string",
                "description": "The customer's name.\n\nThis will only set the name for new customers.\n",
                "example": "Ali Farid"
              },
              "phone": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PaymentInterfacesPhoneNumber"
                  }
                ],
                "description": "The customer's phone number."
              },
              "summary": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PaymentInterfacesCustomerSummary"
                  }
                ]
              }
            },
            "description": "The customer's details"
          },
          "shipping": {
            "required": [
              "address"
            ],
            "type": "object",
            "properties": {
              "address": {
                "required": [
                  "country"
                ],
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Address"
                  }
                ],
                "description": "The customer's address to ship to."
              },
              "phone": {
                "required": [
                  "number"
                ],
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PhoneNumber"
                  }
                ],
                "description": "The customer's phone number"
              }
            },
            "description": "The address any products are being sent to."
          },
          "billing": {
            "required": [
              "address"
            ],
            "type": "object",
            "properties": {
              "address": {
                "required": [
                  "country"
                ],
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Address"
                  }
                ],
                "description": "The billing address."
              },
              "phone": {
                "required": [
                  "number"
                ],
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PhoneNumber"
                  }
                ],
                "description": "The customer's phone number"
              }
            },
            "additionalProperties": false,
            "description": "The billing details."
          },
          "recipient": {
            "$ref": "#/components/schemas/PaymentInterfacesRecipient"
          },
          "processing": {
            "$ref": "#/components/schemas/PaymentInterfacesProcessing"
          },
          "allow_payment_methods": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentInterfacesPaymentMethods"
              }
            ],
            "description": "Specifies which payment method options to present to the customer.\n\nThe values in this field override any equivalent values in `disabled_payment_methods`.\n\nSome 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.\n",
            "example": [
              "card",
              "applepay",
              "googlepay"
            ]
          },
          "disabled_payment_methods": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentInterfacesPaymentMethods"
              }
            ],
            "description": "Specifies which payment method options to not present to the customer.\n\nIf you specify the same payment method in this field and in `allow_payment_methods`, the `disabled_payment_methods` value will be overridden.\n\nAny payment method options not explicitly specified in this field will be presented to the customer by default.\n",
            "example": [
              "eps",
              "ideal",
              "knet"
            ]
          },
          "products": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentInterfacesProducts"
              }
            ]
          },
          "metadata": {
            "title": "The Metadata Schema",
            "type": "object",
            "description": "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": {
            "type": "object",
            "properties": {
              "enabled": {
                "type": "boolean",
                "description": "Whether to process this payment as a 3D Secure payment.",
                "default": false
              },
              "attempt_n3d": {
                "type": "boolean",
                "description": "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.",
                "default": false
              },
              "challenge_indicator": {
                "enum": [
                  "no_preference",
                  "no_challenge_requested",
                  "challenge_requested",
                  "challenge_requested_mandate"
                ],
                "type": "string",
                "description": "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.",
                "default": "no_preference"
              },
              "allow_upgrade": {
                "type": "boolean",
                "description": "Whether to process this payment as 3D Secure if the authorization was soft declined because 3DS authentication is required.",
                "default": true
              },
              "exemption": {
                "enum": [
                  "low_value",
                  "secure_corporate_payment",
                  "trusted_listing",
                  "transaction_risk_assessment",
                  "3ds_outage",
                  "sca_delegation",
                  "out_of_sca_scope",
                  "other",
                  "low_risk_program",
                  "recurring_operation"
                ],
                "type": "string",
                "description": "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>."
              }
            },
            "description": "Information required for 3D Secure payments."
          },
          "risk": {
            "required": [
              "enabled"
            ],
            "type": "object",
            "properties": {
              "enabled": {
                "type": "boolean",
                "description": "Specifies whether to perform a risk assessment.",
                "default": true,
                "example": false
              }
            },
            "description": "Configures the risk assessment performed during payment processing."
          },
          "customer_retry": {
            "type": "object",
            "properties": {
              "max_attempts": {
                "maximum": 5,
                "minimum": 0,
                "type": "integer",
                "description": "The maximum number of customer retry attempts, excluding the initial payment attempt.",
                "default": 5,
                "example": 2
              }
            },
            "description": "Configures the parameters for customer retries.\n\nA 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.\n"
          },
          "sender": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentInterfacesSender"
              }
            ],
            "description": "The sender of the payment."
          },
          "return_url": {
            "maxLength": 255,
            "type": "string",
            "description": "If provided, the success page will include a button that redirects your customer to the provided URL.",
            "format": "uri",
            "example": "https://example.com/success"
          },
          "locale": {
            "enum": [
              "ar",
              "da-DK",
              "de-DE",
              "el",
              "en-GB",
              "es-ES",
              "fi-FI",
              "fil-PH",
              "fr-FR",
              "hi-IN",
              "id-ID",
              "it-IT",
              "ja-JP",
              "ms-MY",
              "nb-NO",
              "nl-NL",
              "pt-PT",
              "sv-SE",
              "th-TH",
              "vi-VN",
              "zh-CN",
              "zh-HK",
              "zh-TW"
            ],
            "type": "string",
            "description": "Creates a translated version of the page in the specified language",
            "default": "en-GB"
          },
          "capture": {
            "type": "boolean",
            "description": "Whether to capture the payment (if applicable).",
            "example": true
          },
          "capture_on": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Timestamp"
              }
            ],
            "description": "A timestamp (ISO 8601 code) that determines when the payment should be captured.\nProviding this field will automatically set `capture` to true.\n"
          },
          "instruction": {
            "type": "object",
            "properties": {
              "purpose": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Purpose"
                  }
                ]
              }
            },
            "description": "Details about the payment instruction."
          },
          "payment_method_configuration": {
            "type": "object",
            "properties": {
              "applepay": {
                "type": "object",
                "properties": {
                  "account_holder": {
                    "required": [
                      "type"
                    ],
                    "type": "object",
                    "description": "The account holder's details.",
                    "discriminator": {
                      "propertyName": "type",
                      "mapping": {
                        "individual": "#/components/schemas/01_PaymentSessionRequest_AccountHolderIndividual",
                        "corporate": "#/components/schemas/02_PaymentSessionRequest_AccountHolderCorporate",
                        "government": "#/components/schemas/03_PaymentSessionRequest_AccountHolderGovernment"
                      }
                    }
                  },
                  "store_payment_details": {
                    "$ref": "#/components/schemas/PaymentInterfacesStorePaymentDetails"
                  }
                },
                "description": "Configuration options specific to Apple Pay payments."
              },
              "card": {
                "type": "object",
                "properties": {
                  "store_payment_details": {
                    "enum": [
                      "disabled",
                      "enabled",
                      "collect_consent"
                    ],
                    "type": "string",
                    "description": "Specifies whether you intend to store the cardholder's payment details.\n\nIf you set this field to `enabled` or `collect_consent`, you must:\n\n- Have obtained consent from the cardholder to store their payment details\n- Provide `customer.id` or `customer.email` in the request\n\nYou do not need to provide this field if `payment_type` is set to one of the following values:\n\n - `Installment`\n - `Recurring`\n - `Unscheduled`\n",
                    "default": "disabled"
                  },
                  "account_holder": {
                    "type": "object",
                    "description": "The account holder's details.",
                    "discriminator": {
                      "propertyName": "type",
                      "mapping": {
                        "individual": "#/components/schemas/01_PaymentSessionRequest_AccountHolderIndividual",
                        "corporate": "#/components/schemas/02_PaymentSessionRequest_AccountHolderCorporate",
                        "government": "#/components/schemas/03_PaymentSessionRequest_AccountHolderGovernment"
                      }
                    }
                  }
                },
                "description": "Configuration options specific to card payments."
              },
              "googlepay": {
                "type": "object",
                "properties": {
                  "account_holder": {
                    "type": "object",
                    "description": "The account holder's details.",
                    "discriminator": {
                      "propertyName": "type",
                      "mapping": {
                        "individual": "#/components/schemas/01_PaymentSessionRequest_AccountHolderIndividual",
                        "corporate": "#/components/schemas/02_PaymentSessionRequest_AccountHolderCorporate",
                        "government": "#/components/schemas/03_PaymentSessionRequest_AccountHolderGovernment"
                      }
                    }
                  },
                  "store_payment_details": {
                    "$ref": "#/components/schemas/PaymentInterfacesStorePaymentDetails"
                  }
                },
                "description": "Configuration options specific to Google Pay payments."
              }
            },
            "description": "Configuration options for specific payment methods."
          }
        }
      },
      "PaymentLinksResponse": {
        "required": [
          "id",
          "_links"
        ],
        "type": "object",
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentLinkId"
              }
            ],
            "example": "pl_ELqQJXdXzabU"
          },
          "expires_on": {
            "type": "string",
            "description": "The date and time when the Payment Link expires.",
            "format": "date-time",
            "example": "2020-08-20T20:25:28.0000000+08:00"
          },
          "reference": {
            "type": "string",
            "description": "A reference you can later use to identify this payment, such as an order number.",
            "example": "ORD-123A"
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "code": {
                  "type": "string",
                  "description": "The reason for the warning",
                  "example": "payment_method_unavailable"
                },
                "description": {
                  "type": "string",
                  "description": "The description of the warning code",
                  "example": "The card was provided in the `allow_payment_methods` object, but no card schemes are configured."
                },
                "value": {
                  "enum": [
                    "card",
                    "sofort",
                    "ideal",
                    "knet",
                    "bancontact",
                    "eps",
                    "p24",
                    "multibanco"
                  ],
                  "type": "string",
                  "description": "Payment method for which the warning applies"
                }
              }
            },
            "description": "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."
          },
          "_links": {
            "type": "object",
            "properties": {
              "self": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Link"
                  }
                ],
                "example": {
                  "href": "https://{prefix}.api.sandbox.checkout.com/payment-links/pl_ELqQJXdXzabU"
                }
              },
              "redirect": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Link"
                  }
                ],
                "example": {
                  "href": "https://pay.sandbox.checkout.com/link/pl_ELqQJXdXzabU"
                }
              }
            },
            "description": "The links related to the Payment Link session.",
            "readOnly": true
          }
        }
      },
      "PaymentMethod": {
        "title": "PaymentMethod",
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "accel",
              "ach",
              "alipay_cn",
              "alipay_hk",
              "alipay_plus",
              "alma",
              "amex",
              "bancontact",
              "blik",
              "boost",
              "bpi",
              "card_scheme",
              "cartes_bancaires",
              "china_union_pay",
              "connect_wallet",
              "bacs",
              "dana",
              "dci",
              "diners",
              "discover",
              "eps",
              "gcash",
              "ideal",
              "jcb",
              "kakaopay",
              "klarna",
              "knet",
              "mada",
              "mastercard",
              "mbway",
              "multibanco",
              "nyce",
              "omannet",
              "p24",
              "paypal",
              "paypay",
              "pulse",
              "qpay",
              "rabbit_line_pay",
              "sepa",
              "sequra",
              "shazam",
              "star",
              "stcpay",
              "swish",
              "tamara",
              "tng",
              "truemoney",
              "upi",
              "visa",
              "wechatpay"
            ],
            "type": "string",
            "description": "The payment method type."
          },
          "partner_merchant_id": {
            "type": "string",
            "description": "The unique identifier for the merchant, provided by the partner.",
            "example": "Z7X8LKJ3PQR5N"
          }
        }
      },
      "PaymentMethodsResponse": {
        "title": "PaymentMethodsResponse",
        "required": [
          "methods"
        ],
        "type": "object",
        "properties": {
          "methods": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentMethod"
            },
            "description": "The payment methods enabled for the processing channel."
          }
        }
      },
      "3dsData": {
        "type": "object",
        "properties": {
          "downgraded": {
            "type": "boolean",
            "description": "Indicates whether this was a 3D Secure payment downgraded to non-3D Secure (when `attempt_n3d` is specified)",
            "example": false
          },
          "enrolled": {
            "type": "string",
            "description": "Indicates the 3D Secure enrollment status of the issuer\n  * `Y` - Issuer enrolled\n  * `N` - Customer not enrolled\n  * `U` - Unknown\n",
            "example": "Y"
          },
          "signature_valid": {
            "type": "string",
            "description": "Verification to ensure the integrity of the response",
            "example": "Y"
          },
          "authentication_response": {
            "$ref": "#/components/schemas/ResponseCode"
          },
          "authentication_status_reason": {
            "type": "string",
            "description": "The response from the Directory Server (DS) or Access Control Server (ACS), which provides information on why you received the given `authentication_response` value. \n\nThis field is only returned as a result of a 3DS2 authentication, and only if the returned `authentication_response` value was not `Y`.\nRefer 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.\n"
          },
          "cryptogram": {
            "type": "string",
            "description": "Base64 encoded cryptographic identifier (CAVV) used by the card schemes to validate the integrity of the 3D secure payment data",
            "example": "hv8mUFzPzRZoCAAAAAEQBDMAAAA="
          },
          "xid": {
            "type": "string",
            "description": "Unique identifier for the transaction assigned by the MPI",
            "example": "MDAwMDAwMDAwMDAwMDAwMzIyNzY="
          },
          "eci": {
            "type": "string",
            "description": "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.\n"
          },
          "version": {
            "type": "string",
            "description": "Indicates the version of 3D Secure that was used for authentication",
            "example": "2.1.0"
          },
          "exemption": {
            "enum": [
              "3ds_outage",
              "data_share",
              "low_risk_program",
              "low_value",
              "none",
              "other",
              "out_of_sca_scope",
              "sca_delegation",
              "secure_corporate_payment",
              "transaction_risk_assessment",
              "trusted_listing",
              "trusted_listing_prompt"
            ],
            "type": "string",
            "description": "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>",
            "example": "low_value"
          },
          "exemption_applied": {
            "type": "string",
            "description": "Specifies the applied exemption during 3DS authentication"
          },
          "challenged": {
            "type": "boolean",
            "description": "Indicates whether this session involved a challenge. This will only be set after communication with the scheme is finished.",
            "example": true
          },
          "upgrade_reason": {
            "type": "string",
            "description": "Indicates the reason why the payment was upgraded to 3D Secure.",
            "example": "sca_retry"
          },
          "trusted_listing": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/TrustedListing"
              }
            ],
            "description": "The details of the trusted listing status of the merchant"
          }
        }
      },
      "3dsEnrollmentData": {
        "type": "object",
        "properties": {
          "downgraded": {
            "type": "boolean",
            "description": "Indicates whether this was a 3D Secure payment downgraded to non-3D-Secure (when `attempt_n3d` is specified)",
            "example": false
          },
          "enrolled": {
            "type": "string",
            "description": "Indicates the 3D Secure enrollment status of the issuer\n  * `Y` - Issuer enrolled\n  * `N` - Customer not enrolled\n  * `U` - Unknown\n",
            "example": "Y"
          },
          "upgrade_reason": {
            "type": "string",
            "description": "Indicates the reason why the payment was upgraded to 3D Secure.",
            "example": "sca_retry"
          }
        }
      },
      "3dsRequest": {
        "title": "Integrated authentication",
        "required": [
          "enabled"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/3dsRequestNonEnabled"
          },
          {
            "$ref": "#/components/schemas/3dsRequestEnabled"
          }
        ],
        "properties": {
          "enabled": {
            "enum": [
              "true",
              "false"
            ],
            "type": "string",
            "description": "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>",
            "example": "true"
          },
          "challenge_indicator": {
            "enum": [
              "no_preference",
              "no_challenge_requested",
              "challenge_requested",
              "challenge_requested_mandate"
            ],
            "type": "string",
            "description": "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.",
            "default": "no_preference"
          }
        },
        "description": "Required information to process a 3DS authentication with the payment request",
        "discriminator": {
          "propertyName": "enabled",
          "mapping": {
            "false": "#/components/schemas/3dsRequestNonEnabled",
            "true": "#/components/schemas/3dsRequestEnabled"
          }
        }
      },
      "3dsRequestEnabled": {
        "title": "true",
        "required": [
          "enabled"
        ],
        "type": "object",
        "properties": {
          "enabled": {
            "enum": [
              "true",
              "false"
            ],
            "type": "string",
            "description": "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>",
            "example": "true"
          },
          "challenge_indicator": {
            "enum": [
              "no_preference",
              "no_challenge_requested",
              "challenge_requested",
              "challenge_requested_mandate"
            ],
            "type": "string",
            "description": "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.",
            "default": "no_preference"
          },
          "attempt_n3d": {
            "type": "boolean",
            "description": "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.\n",
            "default": false,
            "example": true
          },
          "exemption": {
            "enum": [
              "low_value",
              "trusted_listing",
              "trusted_listing_prompt",
              "transaction_risk_assessment",
              "data_share"
            ],
            "type": "string",
            "description": "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>",
            "example": "low_value"
          },
          "merchant_authentication_info": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantAuthenticationInfo"
              }
            ],
            "description": "The information about how the 3DS Requestor authenticated the cardholder before or during the transaction"
          },
          "account_info": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/AccountInfo"
              }
            ],
            "description": "Additional information about the cardholder's account"
          }
        },
        "description": "3DS authentication enabled"
      },
      "3dsRequestNonEnabled": {
        "title": "false",
        "required": [
          "enabled"
        ],
        "type": "object",
        "properties": {
          "enabled": {
            "enum": [
              "true",
              "false"
            ],
            "type": "string",
            "description": "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>",
            "example": "false"
          },
          "challenge_indicator": {
            "enum": [
              "no_preference",
              "no_challenge_requested",
              "challenge_requested",
              "challenge_requested_mandate"
            ],
            "type": "string",
            "description": "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.",
            "default": "no_preference"
          },
          "allow_upgrade": {
            "type": "boolean",
            "description": "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`.",
            "default": true,
            "example": true
          },
          "exemption": {
            "enum": [
              "low_value",
              "trusted_listing",
              "trusted_listing_prompt",
              "transaction_risk_assessment",
              "3ds_outage",
              "sca_delegation",
              "out_of_sca_scope",
              "low_risk_program",
              "recurring_operation",
              "data_share",
              "other"
            ],
            "type": "string",
            "description": "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>",
            "example": "low_value"
          }
        },
        "description": "3DS authentication not enabled"
      },
      "3dsRequestStandalone": {
        "title": "Standalone authentication",
        "required": [
          "enabled",
          "authentication_id"
        ],
        "type": "object",
        "properties": {
          "enabled": {
            "enum": [
              true
            ],
            "type": "boolean",
            "description": "Whether to process this payment as a 3D Secure payment",
            "example": true
          },
          "authentication_id": {
            "maxLength": 30,
            "minLength": 30,
            "pattern": "^(sid)_(\\w{26})$",
            "type": "string",
            "description": "The unique identifier for your 3D Secure session.",
            "example": "sid_y3oqhf46pyzuxjbcn2giaqnb44"
          }
        },
        "description": "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>"
      },
      "3dsRequestThirdParty": {
        "title": "Third party authentication",
        "required": [
          "enabled",
          "eci",
          "cryptogram",
          "xid",
          "version"
        ],
        "type": "object",
        "properties": {
          "enabled": {
            "enum": [
              true
            ],
            "type": "boolean",
            "description": "Whether to process this payment as a 3D Secure payment",
            "example": true
          },
          "eci": {
            "maxLength": 2,
            "type": "string",
            "description": "The Electronic Commerce Indicator security level associated with the 3D Secure enrollment result. Required if using a third-party merchant plug-in (MPI)",
            "example": "05"
          },
          "cryptogram": {
            "maxLength": 100,
            "type": "string",
            "description": "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",
            "example": "AgAAAAAAAIR8CQrXcIhbQAAAAAA="
          },
          "xid": {
            "maxLength": 100,
            "type": "string",
            "description": "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",
            "example": "MDAwMDAwMDAwMDAwMDAwMzIyNzY="
          },
          "version": {
            "maxLength": 10,
            "type": "string",
            "description": "Indicates the version of 3D Secure that was used for authentication. Defaults to 1.0.0 if not provided",
            "example": "2.0.1"
          },
          "exemption": {
            "enum": [
              "low_value",
              "secure_corporate_payment",
              "trusted_listing",
              "transaction_risk_assessment",
              "3ds_outage",
              "sca_delegation",
              "out_of_sca_scope",
              "other",
              "low_risk_program",
              "recurring_operation"
            ],
            "type": "string",
            "description": "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>",
            "example": "low_value"
          },
          "status": {
            "maxLength": 1,
            "minLength": 1,
            "type": "string",
            "description": "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)",
            "example": "Y"
          },
          "authentication_date": {
            "type": "string",
            "description": "Authentication date and time. Format ISO-8601",
            "nullable": true,
            "example": "2020-09-03T10:11:12Z"
          },
          "authentication_amount": {
            "minimum": 0,
            "type": "number",
            "description": "Authentication amount",
            "nullable": true,
            "example": 200
          },
          "flow_type": {
            "enum": [
              "challenged",
              "frictionless",
              "frictionless_delegated"
            ],
            "type": "string",
            "description": "Indicates whether the 3D Secure 2 authentication was challenged or frictionless."
          },
          "challenge_indicator": {
            "enum": [
              "no_preference",
              "no_challenge_requested",
              "challenge_requested",
              "challenge_requested_mandate"
            ],
            "type": "string",
            "description": "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.",
            "default": "no_preference"
          },
          "status_reason_code": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string",
            "description": "A code indicating the reason for the transaction status",
            "example": "01"
          },
          "challenge_cancel_reason": {
            "type": "string",
            "description": "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.",
            "example": "01"
          },
          "score": {
            "type": "string",
            "description": "Risk score calculated by Directory Server (DS). Cartes Bancaires 3D Secure 2 only."
          },
          "cryptogram_algorithm": {
            "maxLength": 1,
            "minLength": 1,
            "type": "string",
            "description": "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.",
            "example": "1"
          },
          "initial_authentication": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/InitialAuthentication"
              }
            ],
            "description": "The details of a previous authentication"
          }
        },
        "description": "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>"
      },
      "AccommodationData": {
        "type": "array",
        "items": {
          "title": "Accommodation Data",
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "description": "For lodging, contains the lodging name that appears on the storefront/customer receipts. For cruise, contains the ship name booked for the cruise.",
              "example": "The Sea View Hotel"
            },
            "booking_reference": {
              "type": "string",
              "description": "A unique identifier for the booking.",
              "example": "HOTEL123"
            },
            "check_in_date": {
              "type": "string",
              "description": "For lodging, contains the actual or scheduled date the guest checked-in. For cruise, contains the cruise departure date also known as sail date.",
              "format": "date",
              "example": "2023-06-20T00:00:00.0000000"
            },
            "check_out_date": {
              "type": "string",
              "description": "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.",
              "format": "date",
              "example": "2023-06-23T00:00:00.0000000"
            },
            "address": {
              "type": "object",
              "properties": {
                "address_line1": {
                  "type": "string",
                  "description": "The first line of the address.",
                  "example": "123 Beach Road"
                },
                "zip": {
                  "type": "string",
                  "description": "The postal code for the address.",
                  "example": "10001"
                }
              },
              "description": "The address details of the accommodation."
            },
            "state": {
              "type": "string",
              "description": "The state or province of the address country (ISO 3166-2 code of up to two alphanumeric characters).",
              "example": "FL"
            },
            "country": {
              "type": "string",
              "description": "The ISO country code of the address.",
              "example": "USA"
            },
            "city": {
              "type": "string",
              "description": "The address city.",
              "example": "Los Angeles"
            },
            "number_of_rooms": {
              "type": "integer",
              "description": "The total number of rooms booked for the accommodation.",
              "example": 2
            },
            "guests": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "first_name": {
                    "type": "string",
                    "description": "The first name of the guest.",
                    "example": "Jane"
                  },
                  "last_name": {
                    "type": "string",
                    "description": "The last name of the guest.",
                    "example": "Doe"
                  },
                  "date_of_birth": {
                    "type": "string",
                    "description": "The date of birth of the guest.",
                    "format": "date",
                    "example": "1985-07-14T00:00:00.0000000"
                  }
                }
              },
              "description": "Contains information about the guests staying at the accommodation."
            },
            "room": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "rate": {
                    "type": "string",
                    "description": "For lodging, contains the nightly rate for one room. For cruise, contains the total cost of the cruise.",
                    "example": "70"
                  },
                  "number_of_nights_at_room_rate": {
                    "type": "string",
                    "description": "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.",
                    "example": "3"
                  }
                }
              },
              "description": "Contains information about the rooms booked by the customer."
            },
            "property_phone": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "country_code": {
                    "type": "string",
                    "description": "The property's phone country code.",
                    "example": "44"
                  },
                  "number": {
                    "type": "string",
                    "description": "The property's phone number.",
                    "example": "7123456789"
                  }
                }
              },
              "description": "The property's phone information."
            },
            "customer_service_phone": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "country_code": {
                    "type": "string",
                    "description": "The customer service phone country code.",
                    "example": "44"
                  },
                  "number": {
                    "type": "string",
                    "description": "The customer service phone number.",
                    "example": "7123456789"
                  }
                }
              },
              "description": "The customer service phone information."
            }
          }
        },
        "description": "Contains information about the accommodation booked by the customer."
      },
      "AccountInfo": {
        "title": "AccountInfo",
        "type": "object",
        "properties": {
          "purchase_count": {
            "maximum": 9999,
            "minimum": 0,
            "type": "number",
            "description": "The number of purchases with this cardholder's account during the last six months\n",
            "example": 10
          },
          "account_age": {
            "enum": [
              "no_account",
              "created_during_transaction",
              "less_than_thirty_days",
              "thirty_to_sixty_days",
              "more_than_sixty_days"
            ],
            "type": "string",
            "description": "The length of time that the payment account was enrolled in the cardholder's account\n"
          },
          "add_card_attempts": {
            "maximum": 999,
            "minimum": 0,
            "type": "number",
            "description": "The number of _Add Card_ attempts in the last 24 hours\n",
            "example": 10
          },
          "shipping_address_age": {
            "enum": [
              "this_transaction",
              "less_than_thirty_days",
              "thirty_to_sixty_days",
              "more_than_sixty_days"
            ],
            "type": "string",
            "description": "Indicates when the shipping address for this transaction was first used\n"
          },
          "account_name_matches_shipping_name": {
            "type": "boolean",
            "description": "Indicates if the cardholder name on the account is identical to the shipping name used for this transaction\n",
            "example": true
          },
          "suspicious_account_activity": {
            "type": "boolean",
            "description": "Indicates whether suspicious activity on the cardholder account has been observed\n",
            "example": true
          },
          "transactions_today": {
            "maximum": 999,
            "minimum": 0,
            "type": "number",
            "description": "The number of transactions (successful and abandoned) for the cardholder account across all payment accounts in the previous 24 hours\n",
            "example": 10
          },
          "authentication_method": {
            "enum": [
              "no_authentication",
              "own_credentials",
              "federated_id",
              "issuer_credentials",
              "third_party_authentication",
              "fido"
            ],
            "type": "string",
            "description": "Information about how the cardholder was authenticated before or during the transaction\n"
          },
          "cardholder_account_age_indicator": {
            "enum": [
              "no_account,",
              "this_transaction",
              "less_than_thirty_days",
              "thirty_to_sixty_days",
              "more_than_sixty_days"
            ],
            "type": "string",
            "description": "The length of time the cardholder has held the account with the 3DS Requestor"
          },
          "account_change": {
            "type": "string",
            "description": "The UTC date and time the cardholder’s account with the 3DS Requestor was last changed, in ISO 8601 format.\n\nChanges that affect this value include:\n- updating the billing or shipping address\n- adding a new payment account\n- adding a new user\n",
            "format": "date-time"
          },
          "account_change_indicator": {
            "enum": [
              "this_transaction",
              "less_than_thirty_days",
              "thirty_to_sixty_days",
              "more_than_sixty_days"
            ],
            "type": "string",
            "description": "The amount of time since the cardholder’s account information with the 3DS Requestor was last changed.\n\nChanges that affect this value include:\n- updating the billing or shipping address\n- adding a new payment account\n- adding a new user\n"
          },
          "account_date": {
            "type": "string",
            "description": "The UTC date and time the cardholder opened the account with the 3DS Requestor, in ISO 8601 format.",
            "format": "date-time"
          },
          "account_password_change": {
            "type": "string",
            "description": "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.",
            "format": "date-time"
          },
          "account_password_change_indicator": {
            "enum": [
              "no_change",
              "this_transaction",
              "less_than_thirty_days",
              "thirty_to_sixty_days",
              "more_than_sixty_days"
            ],
            "type": "string",
            "description": "The amount of time since the cardholder’s account with the 3DS Requestor was last reset or had a password change."
          },
          "transactions_per_year": {
            "maximum": 999,
            "maxLength": 3,
            "type": "integer",
            "description": "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. \n\nSet this value to `999` if the number of transactions is `1000` or greater.\n",
            "example": 2
          },
          "payment_account_age": {
            "type": "string",
            "description": "The UTC date and time the payment account was enrolled in the cardholder’s account with the 3DS Requestor, in ISO 8601 format.",
            "format": "date-time"
          },
          "shipping_address_usage": {
            "type": "string",
            "description": "The UTC date and time the shipping address used for the transaction was first used with the 3DS Requestor, in ISO 8601 format.",
            "format": "date-time"
          },
          "account_type": {
            "enum": [
              "not_applicable",
              "credit",
              "debit"
            ],
            "type": "string",
            "description": "The type of account, in the case of a card product with multiple accounts."
          },
          "account_id": {
            "maxLength": 64,
            "type": "string",
            "description": "Additional information about the account optionally provided by the 3DS Requestor"
          }
        },
        "description": "Additional information about the cardholder's account\n"
      },
      "ActionId": {
        "maxLength": 30,
        "minLength": 30,
        "pattern": "^(act)_(\\w{26})$",
        "type": "string",
        "description": "The action identifier",
        "example": "act_y3oqhf46pyzuxjbcn2giaqnb44"
      },
      "Aggregator": {
        "title": "Aggregator",
        "type": "object",
        "properties": {
          "sub_merchant_id": {
            "type": "string",
            "description": "The sub-merchant ID.",
            "example": "9cf70789ba90123"
          },
          "aggregator_id_visa": {
            "type": "string",
            "description": "The Visa identifier for the payment aggregator.",
            "example": "10012345"
          },
          "aggregator_id_mc": {
            "type": "string",
            "description": "The Mastercard identifier for the payment aggregator.",
            "example": "00000123456"
          }
        },
        "description": "Information about the payment aggregator."
      },
      "AirlineData": {
        "type": "array",
        "items": {
          "title": "Airline Data",
          "type": "object",
          "properties": {
            "ticket": {
              "type": "object",
              "properties": {
                "number": {
                  "type": "string",
                  "description": "The ticket's unique identifier.",
                  "example": "045-21351455613"
                },
                "issue_date": {
                  "type": "string",
                  "description": "Date the airline ticket was issued.",
                  "format": "date",
                  "example": "2023-05-20T00:00:00.0000000"
                },
                "issuing_carrier_code": {
                  "type": "string",
                  "description": "Carrier code of the ticket issuer.",
                  "example": "AI"
                },
                "travel_package_indicator": {
                  "type": "string",
                  "description": "C = Car rental reservation, A = Airline flight reservation, B = Both car rental and airline flight reservations included, N = Unknown.",
                  "example": "B"
                },
                "travel_agency_name": {
                  "type": "string",
                  "description": "The name of the travel agency.",
                  "example": "World Tours"
                },
                "travel_agency_code": {
                  "type": "string",
                  "description": "The unique identifier from IATA or ARC for the travel agency that issues the ticket.",
                  "example": "01"
                }
              },
              "description": "Contains information about the airline ticket."
            },
            "passenger": {
              "type": "array",
              "items": {
                "title": "Passenger Data",
                "type": "object",
                "properties": {
                  "first_name": {
                    "type": "string",
                    "description": "The passenger's first name.",
                    "example": "John"
                  },
                  "last_name": {
                    "type": "string",
                    "description": "The passenger's last name.",
                    "example": "White"
                  },
                  "date_of_birth": {
                    "type": "string",
                    "description": "The passenger's date of birth.",
                    "format": "date",
                    "example": "1990-05-26T00:00:00.0000000"
                  },
                  "address": {
                    "type": "object",
                    "properties": {
                      "country": {
                        "type": "string",
                        "description": "The two-letter ISO country code of the passenger's country residence.",
                        "example": "US"
                      }
                    },
                    "description": "Contains information about the passenger's address."
                  }
                }
              },
              "description": "Contains information about the passenger(s) on the flight."
            },
            "flight_leg_details": {
              "title": "Flight Leg Details",
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "flight_number": {
                    "type": "string",
                    "description": "The flight identifier.",
                    "example": "101"
                  },
                  "carrier_code": {
                    "type": "string",
                    "description": "The IATA 2-letter accounting code (PAX) that identifies the carrier. This field is required if the airline data includes leg details.",
                    "example": "BA"
                  },
                  "class_of_travelling": {
                    "type": "string",
                    "description": "A one-letter travel class identifier. The following are common: F = First class, J = Business class, Y = Economy class, W = Premium economy.",
                    "example": "J"
                  },
                  "departure_airport": {
                    "type": "string",
                    "description": "The IATA three-letter airport code of the departure airport. This field is required if the airline data includes leg details.",
                    "example": "LHR"
                  },
                  "departure_date": {
                    "type": "string",
                    "description": "The date of the scheduled take off.",
                    "format": "date",
                    "example": "2023-06-19T00:00:00.0000000"
                  },
                  "departure_time": {
                    "type": "string",
                    "description": "The time of the scheduled take off.",
                    "example": "15:30"
                  },
                  "arrival_airport": {
                    "type": "string",
                    "description": "The IATA 3-letter airport code of the destination airport. This field is required if the airline data includes leg details.",
                    "example": "LAX"
                  },
                  "stop_over_code": {
                    "type": "string",
                    "description": "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.",
                    "example": "x"
                  },
                  "fare_basis_code": {
                    "type": "string",
                    "description": "The fare basis code, alphanumeric.",
                    "example": "SPRSVR"
                  }
                }
              },
              "description": "Contains information about the flight leg(s) booked by the customer."
            }
          }
        },
        "description": "Contains information about the airline ticket and flights booked by the customer."
      },
      "AmountAllocations": {
        "maxItems": 50,
        "minItems": 1,
        "type": "array",
        "items": {
          "title": "Amount Allocations",
          "required": [
            "id",
            "amount"
          ],
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "description": "The id of the sub-entity.",
              "example": "ent_w4jelhppmfiufdnatam37wrfc4"
            },
            "amount": {
              "maximum": 9999999999,
              "minimum": 0,
              "type": "integer",
              "description": "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.      \n\nThe amount must be provided in the <a href=\"https://www.checkout.com/docs/resources/calculating-the-amount\" target=\"blank\">minor currency unit</a>.\n",
              "format": "int64",
              "example": 1000
            },
            "reference": {
              "maxLength": 50,
              "type": "string",
              "description": "A reference you can later use to identify this split, such as an order number.",
              "example": "ORD-5023-4E89"
            },
            "commission": {
              "title": "Commission",
              "type": "object",
              "properties": {
                "amount": {
                  "minimum": 0,
                  "type": "integer",
                  "description": "Optional fixed amount of commission to collect.\n\nThe amount must be provided in the <a href=\"https://www.checkout.com/docs/resources/calculating-the-amount\" target=\"blank\">minor currency unit</a>.\n",
                  "example": 1000
                },
                "percentage": {
                  "maximum": 100,
                  "minimum": 0,
                  "type": "number",
                  "description": "Optional percentage of commission to collect.\n\nSupports up to 8 decimal places.\n",
                  "example": 1.125
                }
              },
              "description": "Commission you'd like to collect from this split - this will be credited to your currency account. The commission cannot exceed the split amount.\n\nCommission = (`amount` * `commission.percentage`) + `commission.amount`\n"
            }
          }
        },
        "description": "The sub-entities that the payment is being processed on behalf of"
      },
      "AuthorizationRequest": {
        "type": "object",
        "properties": {
          "amount": {
            "maximum": 99999999,
            "minimum": 0,
            "type": "integer",
            "description": "The amount to increase the authorization by. Omit the amount or provide a value of `0` to extend the authorization validity period\n",
            "format": "int64",
            "example": 6540
          },
          "reference": {
            "type": "string",
            "description": "A reference you can later use to identify this authorization request",
            "example": "ORD-5023-4E89"
          },
          "metadata": {
            "type": "object",
            "description": "A set of key-value pairs to attach to the authorization request. You can use this to store additional information in a structured format. \n\nThe `metadata` object only supports primitive data types. Objects and arrays are not supported.\n",
            "example": {
              "coupon_code": "NY2018",
              "partner_id": 123989
            }
          }
        }
      },
      "AuthorizationResponse": {
        "required": [
          "action_id",
          "amount",
          "currency",
          "approved",
          "status",
          "response_code",
          "processed_on",
          "_links"
        ],
        "type": "object",
        "properties": {
          "action_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ActionId"
              }
            ],
            "description": "The unique identifier for the action performed against this payment"
          },
          "amount": {
            "type": "integer",
            "description": "The payment amount",
            "example": 6540
          },
          "currency": {
            "maxLength": 3,
            "minLength": 3,
            "type": "string",
            "description": "The three-letter <a href=\"https://www.checkout.com/docs/resources/codes/currency-codes\" target=\"_blank\">ISO currency code</a> of the payment",
            "example": "USD"
          },
          "approved": {
            "type": "boolean",
            "description": "Whether or not the authorization was successful",
            "example": true
          },
          "status": {
            "enum": [
              "Authorized",
              "Declined"
            ],
            "type": "string",
            "description": "The status of the payment",
            "example": "Authorized"
          },
          "auth_code": {
            "type": "string",
            "description": "The acquirer authorization code if the payment was authorized",
            "example": "643381"
          },
          "response_code": {
            "type": "string",
            "description": "The Gateway response code",
            "example": "10000"
          },
          "response_summary": {
            "type": "string",
            "description": "The Gateway response summary",
            "example": "Approved"
          },
          "expires_on": {
            "type": "string",
            "description": "The timestamp (ISO 8601 code) for when the authorization's validity period ends"
          },
          "balances": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentResponseBalances"
              }
            ],
            "description": "The payment balances"
          },
          "processed_on": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ServerTimestamp"
              }
            ],
            "description": "The date/time the payment was processed"
          },
          "reference": {
            "type": "string",
            "description": "Your reference for the payment",
            "example": "ORD-5023-4E89"
          },
          "processing": {
            "type": "object",
            "properties": {
              "retrieval_reference_number": {
                "type": "string",
                "description": "A unique identifier for the authorization that is submitted to the card scheme during processing",
                "example": "909913440644"
              },
              "acquirer_transaction_id": {
                "type": "string",
                "description": "A unique identifier for the transaction generated by the acquirer",
                "example": "440644309099499894406"
              },
              "recommendation_code": {
                "type": "string",
                "description": "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",
                "example": "02"
              },
              "surcharge_amount": {
                "minimum": 0,
                "type": "integer",
                "description": "Surcharge amount applied to the transaction in minor units by the merchant",
                "format": "int64",
                "example": 200
              },
              "scheme_transaction_link_id": {
                "type": "string",
                "description": "The scheme transaction link identifier."
              }
            },
            "description": "Returns information related to the processing of the payment"
          },
          "eci": {
            "type": "string",
            "description": "The final Electronic Commerce Indicator (ECI) security level used to authorize the payment. Applicable for 3D Secure and network token payments",
            "example": "06"
          },
          "scheme_id": {
            "type": "string",
            "description": "The scheme transaction identifier",
            "example": "489341065491658"
          },
          "_links": {
            "minItems": 2,
            "required": [
              "self",
              "actions"
            ],
            "type": "object",
            "properties": {
              "self": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Link"
                  }
                ],
                "description": "The URI of the payment"
              },
              "actions": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Link"
                  }
                ],
                "description": "A link to the payment's associated actions"
              },
              "authorize": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Link"
                  }
                ],
                "description": "A link to increment the authorization, where applicable"
              },
              "void": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Link"
                  }
                ],
                "description": "A link to void the payment, where applicable"
              },
              "capture": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Link"
                  }
                ],
                "description": "A link to capture the payment, where applicable"
              },
              "refund": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Link"
                  }
                ],
                "description": "A link to refund the payment, where applicable"
              }
            },
            "description": "The links related to the payment",
            "example": {
              "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"
              }
            }
          }
        },
        "description": "Authorization Response"
      },
      "BankAccountFields": {
        "type": "object",
        "properties": {
          "sections": {
            "type": "array",
            "items": {
              "required": [
                "name"
              ],
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "description": "The name of the section",
                  "example": "Account Details"
                },
                "fields": {
                  "type": "array",
                  "items": {
                    "required": [
                      "id",
                      "display",
                      "type",
                      "required"
                    ],
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "description": "The field identifier",
                        "example": "account_holder.first_name"
                      },
                      "section": {
                        "type": "string",
                        "description": "The section to display the field in",
                        "example": "account"
                      },
                      "display": {
                        "type": "string",
                        "description": "The field's display name",
                        "example": "First name"
                      },
                      "help_text": {
                        "type": "string",
                        "description": "The help text that explains the purpose of the field",
                        "example": "The account holder's first name. Required if type is individual."
                      },
                      "type": {
                        "type": "string",
                        "description": "The type of field",
                        "example": "string"
                      },
                      "required": {
                        "type": "boolean",
                        "description": "Whether the field is required",
                        "example": true
                      },
                      "validation_regex": {
                        "type": "string",
                        "description": "A regular expression that can be used to validate the input of the field",
                        "example": "^[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,18}$"
                      },
                      "min_length": {
                        "type": "integer",
                        "description": "The minimum length of the field",
                        "example": 22
                      },
                      "max_length": {
                        "type": "integer",
                        "description": "The maximum length of the field",
                        "example": 22
                      },
                      "allowed_options": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "description": "The option identifier",
                              "example": "1"
                            },
                            "display": {
                              "type": "string",
                              "description": "The option display value",
                              "example": "Beneficiary"
                            }
                          }
                        },
                        "description": "The allowed options for the field"
                      },
                      "dependencies": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "field_id": {
                              "type": "string",
                              "description": "The field identifier",
                              "example": "entity_type"
                            },
                            "value": {
                              "type": "string",
                              "description": "The value of the dependent field that match in order for this field to be displayed"
                            }
                          }
                        },
                        "description": "The field's dependencies"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "example": {
          "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
                }
              ]
            }
          ]
        }
      },
      "BankPayoutAcceptedResponse": {
        "title": "Bank Payout",
        "required": [
          "id",
          "status",
          "_links",
          "instruction"
        ],
        "type": "object",
        "properties": {
          "id": {
            "maxLength": 30,
            "minLength": 30,
            "pattern": "^(pay)_(\\w{26})$",
            "type": "string",
            "description": "The payout's unique identifier.",
            "example": "pay_dvxl6j6stpqufkzfgbaahmfrzm"
          },
          "status": {
            "enum": [
              "Pending"
            ],
            "type": "string",
            "description": "The status of the payout.",
            "example": "Pending"
          },
          "reference": {
            "type": "string",
            "description": "The payout reference.",
            "example": "PO-215-5721"
          },
          "instruction": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentInstructionResponse"
              }
            ]
          },
          "_links": {
            "type": "object",
            "properties": {
              "self": {
                "type": "object",
                "properties": {
                  "href": {
                    "type": "string",
                    "description": "The link URL.",
                    "example": "https://{prefix}.api.sandbox.checkout.com/payments/pay_dvxl6j6stpqufkzfgbaahmfrzm"
                  }
                },
                "description": "The URI of the payout."
              },
              "actions": {
                "type": "object",
                "properties": {
                  "href": {
                    "type": "string",
                    "description": "The link URL.",
                    "example": "https://{prefix}.api.sandbox.checkout.com/payments/pay_dvxl6j6stpqufkzfgbaahmfrzm/actions"
                  }
                },
                "description": "The actions URI of the payout."
              }
            },
            "description": "The links related to the payout."
          }
        },
        "description": "Payout accepted response"
      },
      "BankPayoutRequest": {
        "title": "Bank Payout",
        "required": [
          "source",
          "destination",
          "amount",
          "currency",
          "billing_descriptor",
          "processing_channel_id"
        ],
        "type": "object",
        "properties": {
          "source": {
            "$ref": "#/components/schemas/BankPayoutRequestSource"
          },
          "destination": {
            "$ref": "#/components/schemas/PaymentRequestDestination"
          },
          "amount": {
            "minimum": 0,
            "type": "integer",
            "description": "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.",
            "example": 6540
          },
          "currency": {
            "maxLength": 3,
            "minLength": 3,
            "type": "string",
            "description": "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>.\n",
            "example": "USD"
          },
          "reference": {
            "type": "string",
            "description": "A reference you can use to identify the payment. For example, an order number.",
            "example": "Withdrawal"
          },
          "billing_descriptor": {
            "$ref": "#/components/schemas/PayoutBillingDescriptor"
          },
          "sender": {
            "$ref": "#/components/schemas/PayoutSender"
          },
          "instruction": {
            "$ref": "#/components/schemas/PaymentInstruction"
          },
          "processing_channel_id": {
            "pattern": "^(pc)_(\\w{26})$",
            "type": "string",
            "description": "The processing channel identifier"
          },
          "segment": {
            "$ref": "#/components/schemas/Segment"
          }
        }
      },
      "BankPayoutRequestSource": {
        "required": [
          "type"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/BankPayoutRequestCurrencyAccountSource"
          },
          {
            "$ref": "#/components/schemas/BankPayoutRequestEntitySource"
          }
        ],
        "description": "The source from which the payout is funded.",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "currency_account": "#/components/schemas/BankPayoutRequestCurrencyAccountSource",
            "entity": "#/components/schemas/BankPayoutRequestEntitySource"
          }
        }
      },
      "BillingDescriptor": {
        "required": [
          "name",
          "city"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 25,
            "type": "string",
            "description": "A dynamic description of the payment. \nApplies to card payments only.\n",
            "example": "SUPERHEROES.COM"
          },
          "city": {
            "minimum": 1,
            "maxLength": 13,
            "type": "string",
            "description": "The city from which the payment originated. \nApplies to card payments only.\n",
            "example": "GOTHAM"
          },
          "reference": {
            "maxLength": 50,
            "type": "string",
            "description": "The reference that should be shown on the statement. \nRequired for payouts to bank accounts.\n"
          },
          "local_descriptors": {
            "maxItems": 100,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LocalBillingDescriptor"
            },
            "nullable": true
          }
        },
        "description": "An optional description that is displayed on the customer's statement identifying a purchase.\n"
      },
      "CancellationAcceptedResponse": {
        "required": [
          "action_id"
        ],
        "type": "object",
        "properties": {
          "action_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ActionId"
              }
            ],
            "description": "The unique identifier for the cancellation action."
          },
          "reference": {
            "type": "string",
            "description": "Your reference for the cancellation request.",
            "example": "ORD-5023-4E89"
          },
          "_links": {
            "minItems": 2,
            "required": [
              "payment"
            ],
            "type": "object",
            "properties": {
              "payment": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Link"
                  }
                ],
                "description": "The URI of the payment to be canceled. Use this to check the status of the payment.",
                "example": {
                  "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44"
                }
              }
            },
            "description": "The links related to the cancellation.",
            "readOnly": true
          }
        },
        "description": "Cancellation response"
      },
      "CancellationRequest": {
        "type": "object",
        "properties": {
          "reference": {
            "maxLength": 80,
            "type": "string",
            "description": "A reference you can later use to identify this cancellation request. You can use this value to identify the cancellation request later.",
            "example": "ORD-5023-4E89"
          }
        },
        "additionalProperties": false
      },
      "CaptureAcceptedResponse": {
        "required": [
          "action_id"
        ],
        "type": "object",
        "properties": {
          "action_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ActionId"
              }
            ],
            "description": "The unique identifier for the capture action"
          },
          "reference": {
            "type": "string",
            "description": "Your reference for the capture request",
            "example": "ORD-5023-4E89"
          },
          "_links": {
            "required": [
              "payment"
            ],
            "type": "object",
            "properties": {
              "payment": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Link"
                  }
                ],
                "description": "The URI of the payment to be captured. Use this to check the status of the payment",
                "example": {
                  "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44"
                }
              },
              "redirect": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Link"
                  }
                ],
                "description": "For some alternative payments, the URI that the customer should be redirected to to complete the capture",
                "example": {
                  "href": "https://{prefix}.api.checkout.com/redirect/act_y3oqhf46pyzuxjbcn2giaqnb44"
                }
              }
            },
            "description": "The links related to the capture",
            "readOnly": true
          }
        },
        "description": "Capture response"
      },
      "CaptureRequest": {
        "type": "object",
        "properties": {
          "amount": {
            "maximum": 9999999999,
            "minimum": 0,
            "type": "integer",
            "description": "The amount to capture. If not specified, the full payment amount will be captured.",
            "format": "int64",
            "example": 6540
          },
          "capture_type": {
            "enum": [
              "NonFinal",
              "Final"
            ],
            "type": "string",
            "description": "The type of capture. If set to `Final`, the remaining available-to-capture balance will be voided.",
            "default": "Final",
            "example": "Final"
          },
          "reference": {
            "maxLength": 80,
            "type": "string",
            "description": "A reference you can later use to identify this capture request.<br>For Amex, the string limit is 30 characters.",
            "example": "ORD-5023-4E89"
          },
          "customer": {
            "$ref": "#/components/schemas/CustomerRequest"
          },
          "description": {
            "maxLength": 100,
            "type": "string",
            "description": "A description of the payment.",
            "example": "Set of 3 masks"
          },
          "billing_descriptor": {
            "$ref": "#/components/schemas/BillingDescriptor"
          },
          "shipping": {
            "type": "object",
            "properties": {
              "address": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Address"
                  }
                ],
                "description": "The shipping address."
              },
              "phone": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PhoneNumber"
                  }
                ],
                "description": "The phone number associated with the shipping address."
              },
              "from_address_zip": {
                "maxLength": 10,
                "type": "string",
                "description": "The postal code or zip code of the location being shipped from.",
                "example": "10014"
              },
              "tracking_info": {
                "maxItems": 200,
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/TrackingInfo"
                },
                "description": "The tracking information for the payment capture."
              }
            },
            "description": "The shipping details."
          },
          "items": {
            "$ref": "#/components/schemas/Items"
          },
          "amount_allocations": {
            "$ref": "#/components/schemas/AmountAllocations"
          },
          "processing": {
            "$ref": "#/components/schemas/CaptureRequestProcessingSettings"
          },
          "metadata": {
            "type": "object",
            "description": "A set of key-value pairs to attach to the authorization request. You can use this to store additional information in a structured format. \n\nThe `metadata` object only supports primitive data types. Objects and arrays are not supported.\n",
            "example": {
              "coupon_code": "NY2018",
              "partner_id": 123989
            }
          }
        }
      },
      "CaptureRequestProcessingSettings": {
        "type": "object",
        "properties": {
          "order_id": {
            "maxLength": 17,
            "type": "string",
            "description": "The number provided by the cardholder. Purchase order or invoice number may be used.",
            "example": "123456789"
          },
          "otp_value": {
            "maxLength": 50,
            "type": "string",
            "description": "One time password sent to customer by SMS.",
            "example": "966557877988"
          },
          "tax_amount": {
            "minimum": 0,
            "type": "number",
            "description": "The total amount of sales tax on the total purchase amount.",
            "example": 3000
          },
          "surcharge_amount": {
            "minimum": 0,
            "type": "integer",
            "description": "Surcharge amount applied to the partial capture transaction in minor units by the merchant",
            "format": "int64",
            "example": 200
          },
          "discount_amount": {
            "minimum": 0,
            "type": "number",
            "description": "The discount amount applied to the transaction by the merchant.",
            "example": 0
          },
          "duty_amount": {
            "minimum": 0,
            "type": "number",
            "description": "The total charges for any import/export duty included in the transaction.",
            "example": 0
          },
          "shipping_amount": {
            "minimum": 0,
            "type": "number",
            "description": "The total freight or shipping and handling charges for the transaction.",
            "example": 300
          },
          "shipping_tax_amount": {
            "minimum": 0,
            "type": "number",
            "description": "The tax amount of the freight or shipping and handling charges for the transaction.",
            "example": 100
          },
          "purchase_country": {
            "type": "string",
            "description": "The country where the goods are purchased or the seller is based. ISO 3166 alpha-2 purchase country code.",
            "example": "GB"
          },
          "foreign_retailer_amount": {
            "minimum": 0,
            "type": "integer",
            "description": "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).",
            "example": 20000
          }
        },
        "description": "Use the processing object to influence or override the data sent during card processing"
      },
      "CustomerSummary": {
        "type": "object",
        "properties": {
          "registration_date": {
            "type": "string",
            "description": "The date the customer registered.",
            "format": "date",
            "example": "2023-05-01T00:00:00.0000000"
          },
          "first_transaction_date": {
            "type": "string",
            "description": "The date of the customer's first transaction.",
            "format": "date",
            "example": "2023-07-01T00:00:00.0000000"
          },
          "last_payment_date": {
            "type": "string",
            "description": "The date of the customer's last payment.",
            "format": "date",
            "example": "2023-08-01T00:00:00.0000000"
          },
          "total_order_count": {
            "type": "integer",
            "description": "The total number of orders made by the customer.",
            "example": 15
          },
          "last_payment_amount": {
            "type": "number",
            "description": "The amount of the customer's last payment.",
            "format": "float",
            "example": 500
          },
          "is_premium_customer": {
            "type": "boolean",
            "description": "Specifies whether the customer is a premium customer.",
            "example": true
          },
          "is_returning_customer": {
            "type": "boolean",
            "description": "Specifies whether the customer is a returning customer.",
            "example": true
          },
          "lifetime_value": {
            "type": "number",
            "description": "The customer's lifetime value. This is the total monetary amount that the customer has ordered, in their local currency, excluding the following:\n   \n- canceled orders\n- rejected payments\n- refunded payments\n- Tamara payments\n\nThe lifetime value is an indicator of how valuable the relationship with the customer is to your company. \n",
            "format": "float",
            "example": 500
          }
        },
        "description": "Summary of the customer's transaction history. <br> Used for risk assessment when `source.type` is `Tamara`"
      },
      "DeviceDetails": {
        "type": "object",
        "properties": {
          "user_agent": {
            "maxLength": 2048,
            "type": "string",
            "description": "The contents of the HTTP User-Agent request header.\n\nThis field is required to process the device with the risk engine.\n",
            "example": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36"
          },
          "network": {
            "$ref": "#/components/schemas/Network"
          },
          "provider": {
            "$ref": "#/components/schemas/DeviceProvider"
          },
          "timestamp": {
            "type": "string",
            "description": "The UTC date and time the payment was performed as reported by the device.\n<br/>Format – ISO 8601 code\n\nThis field is required to process the device with the risk engine.\n",
            "example": "2024-02-06T15:00:00.000Z"
          },
          "timezone": {
            "maxLength": 5,
            "minLength": 1,
            "type": "string",
            "description": "The time difference between UTC time and the local time reported by the browser, in minutes. \n\nThis field is required to process the device with the risk engine.\n",
            "example": "60"
          },
          "virtual_machine": {
            "type": "boolean",
            "description": "Specifies if the device is running in a virtual machine.",
            "example": false
          },
          "incognito": {
            "type": "boolean",
            "description": "Specifies if the browser is in incognito mode.",
            "example": false
          },
          "jailbroken": {
            "type": "boolean",
            "description": "Specifies if the device is jailbroken.",
            "example": false
          },
          "rooted": {
            "type": "boolean",
            "description": "Specifies if the device is rooted.",
            "example": false
          },
          "java_enabled": {
            "type": "boolean",
            "description": "Specifies if the browser has the ability to execute Java, as reported by the browser's `navigator.javaEnabled` property.\n",
            "example": false
          },
          "javascript_enabled": {
            "type": "boolean",
            "description": "Specifies if the browser has the ability to execute Javascript, as reported by the browser's `navigator.javascriptEnabled` property.\n\nOnly required for 3D Secure authentications processed with 3DS 2.2. If the payment is processed with an older 3DS version, this field is ignored.\n",
            "example": false
          },
          "language": {
            "maxLength": 12,
            "minLength": 1,
            "type": "string",
            "description": "The browser language, as reported by the browser's `navigator.language` property.\n<br/>Format – IETF BCP47 language tag\n",
            "example": "FR-fr"
          },
          "color_depth": {
            "maxLength": 2,
            "minLength": 1,
            "type": "string",
            "description": "The bit depth of the color palette for displaying images in bits per pixel, as reported by the browser's `screen.colorDepth` property.",
            "example": "16"
          },
          "screen_height": {
            "maxLength": 6,
            "minLength": 1,
            "type": "string",
            "description": "The total height of the device screen in pixels, as reported by the browser's `screen.height` property.",
            "example": "1080"
          },
          "screen_width": {
            "maxLength": 6,
            "minLength": 1,
            "type": "string",
            "description": "The total width of the device screen in pixels, as reported by the browser's `screen.width` property.",
            "example": "1920"
          },
          "user_agent_client_hint": {
            "type": "string",
            "description": "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": {
            "type": "boolean",
            "description": "Indicates whether the Payments API is enabled for all parent frames."
          },
          "accept_header": {
            "maxLength": 2048,
            "type": "string",
            "description": "The exact content of the HTTP `Accept` headers as sent to the 3DS Requestor from the cardholder’s browser."
          }
        },
        "description": "Details of the device from which the payment originated."
      },
      "DeviceProvider": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the device.",
            "example": "1728646225211.AfUgxG"
          },
          "name": {
            "type": "string",
            "description": "The name of the provider that generated the device identifier.",
            "example": "List [ \"merchant\", \"fingerprintjs\", \"riskify\" ]"
          }
        },
        "description": "Details of the device ID provider."
      },
      "DowntimeRetryRequest": {
        "required": [
          "enabled"
        ],
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean",
            "description": "Indicates if Checkout.com retries the payment when it's declined due to issuer or acquirer downtime."
          }
        },
        "description": "Configuration of Downtime retries.\n"
      },
      "DunningRetryRequest": {
        "required": [
          "enabled"
        ],
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean",
            "description": "Indicates if Checkout.com retries the payment when it's declined with a supported decline code."
          },
          "max_attempts": {
            "maximum": 15,
            "minimum": 1,
            "type": "integer",
            "description": "The maximum number of authorization retry attempts, excluding the initial authorization.",
            "default": 6
          },
          "end_after_days": {
            "maximum": 60,
            "minimum": 1,
            "type": "integer",
            "description": "The maximum number of days between the initial request and the final retry attempt.",
            "default": 30
          }
        },
        "description": "Configuration of Dunning retries.\n"
      },
      "PaymentGetResponseAlmaSource": {
        "title": "alma",
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentDetailsResponseSourceType"
              },
              {
                "enum": [
                  "alma"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type"
          }
        },
        "description": "Alma Source"
      },
      "PaymentGetResponseBacsSource": {
        "title": "bacs",
        "required": [
          "type",
          "id"
        ],
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentDetailsResponseSourceType"
              },
              {
                "enum": [
                  "bacs"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type"
          },
          "id": {
            "type": "string",
            "description": "The instrument ID",
            "example": "src_wmlfc3zyhqzehihu7giusaaawu"
          }
        },
        "description": "Bacs Direct Debit Source"
      },
      "PaymentGetResponseBancontactSource": {
        "title": "bancontact",
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentDetailsResponseSourceType"
              },
              {
                "enum": [
                  "bancontact"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type"
          },
          "iban": {
            "maxLength": 34,
            "type": "string",
            "description": "The IBAN of the Consumer Bank account used for payment (if applicable).\n"
          },
          "bic": {
            "maxLength": 11,
            "type": "string",
            "description": "The Bank Code of the Consumer Bank account used for payment (if applicable). Example: BIC, Sort Code.\n"
          }
        },
        "description": "Bancontact Source"
      },
      "PaymentGetResponseBlikSource": {
        "title": "blik",
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentDetailsResponseSourceType"
              },
              {
                "enum": [
                  "blik"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type."
          },
          "id": {
            "type": "string",
            "description": "The Checkout.com source identifier for the partner agreement created during a Blik recurring payment.\n\nUse this value as `source.id` (with `source.type: id`) to process subsequent merchant-initiated payments against the same agreement.\n",
            "example": "src_iz65kt6uiq4enbm6wkjqssehsm"
          }
        },
        "description": "Blik Source"
      },
      "PaymentGetResponseCardSource": {
        "title": "card",
        "required": [
          "type",
          "expiry_month",
          "expiry_year",
          "last4",
          "fingerprint",
          "bin"
        ],
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentDetailsResponseSourceType"
              },
              {
                "enum": [
                  "card"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type."
          },
          "id": {
            "type": "string",
            "description": "The payment source identifier that can be used for subsequent payments. For new sources, this will only be returned if the payment was approved",
            "example": "src_nwd3m4in3hkuddfpjsaevunhdy"
          },
          "billing_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "The payment source owner's billing address"
          },
          "phone": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PhoneNumber"
              }
            ],
            "description": "The payment source owner's phone number"
          },
          "expiry_month": {
            "minimum": 1,
            "maxLength": 2,
            "minLength": 1,
            "type": "integer",
            "description": "The expiry month",
            "example": 6
          },
          "expiry_year": {
            "maxLength": 4,
            "minLength": 4,
            "type": "integer",
            "description": "The expiry year",
            "example": 2025
          },
          "name": {
            "type": "string",
            "description": "The cardholder's name",
            "example": "Bruce Wayne"
          },
          "scheme": {
            "type": "string",
            "description": "The card scheme",
            "example": "VISA"
          },
          "scheme_local": {
            "type": "string",
            "description": "Replaced by `local_schemes`\nThe local co-branded card scheme.\n",
            "example": "Cartes_Bancaires",
            "deprecated": true
          },
          "local_schemes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The local co-branded card schemes.",
            "example": [
              "cartes_bancaires",
              "visa"
            ]
          },
          "last4": {
            "type": "string",
            "description": "The last four digits of the card number",
            "example": "9996"
          },
          "fingerprint": {
            "type": "string",
            "description": "Uniquely identifies this particular card number. You can use this to compare cards across customers.",
            "example": "F639CAB2745BEE4140BF86DF6B6D6"
          },
          "bin": {
            "maxLength": 8,
            "type": "string",
            "description": "The card issuer's Bank Identification Number (BIN)",
            "example": "45434748"
          },
          "card_type": {
            "enum": [
              "CREDIT",
              "DEBIT",
              "PREPAID",
              "CHARGE",
              "DEFERRED DEBIT"
            ],
            "type": "string",
            "description": "The card type",
            "example": "CREDIT"
          },
          "card_category": {
            "enum": [
              "CONSUMER",
              "COMMERCIAL"
            ],
            "type": "string",
            "description": "The card category",
            "example": "CONSUMER"
          },
          "card_wallet_type": {
            "enum": [
              "applepay",
              "googlepay"
            ],
            "type": "string",
            "description": "The card wallet type"
          },
          "issuer": {
            "type": "string",
            "description": "The name of the card issuer",
            "example": "GOTHAM STATE BANK"
          },
          "issuer_country": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string",
            "description": "The card issuer's country (<a href=\"https://www.checkout.com/docs/resources/codes/country-codes\" target=\"_blank\">two-letter ISO code</a>)",
            "example": "US"
          },
          "product_id": {
            "type": "string",
            "description": "The issuer/card scheme product identifier",
            "example": "F"
          },
          "product_type": {
            "type": "string",
            "description": "The issuer/card scheme product type",
            "example": "CLASSIC"
          },
          "avs_check": {
            "type": "string",
            "description": "The Address Verification System check result",
            "example": "S"
          },
          "cvv_check": {
            "type": "string",
            "description": "The card verification value (CVV) check result",
            "example": "Y"
          },
          "payment_account_reference": {
            "type": "string",
            "description": "A unique reference to the underlying card for network tokens (e.g., Apple Pay, Google Pay)",
            "example": "EUNIX9AX7THOOJIEJ2AP6OOFAHGH4"
          },
          "encrypted_card_number": {
            "type": "string",
            "description": "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>.",
            "example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUz..."
          },
          "account_update_status": {
            "enum": [
              "card_updated",
              "card_expiry_updated",
              "card_closed",
              "contact_cardholder"
            ],
            "type": "string",
            "description": "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>.",
            "example": "card_updated"
          },
          "account_update_failure_code": {
            "type": "string",
            "description": "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.",
            "example": "VAU009"
          },
          "account_holder": {
            "type": "object",
            "description": "Information about the account holder of the card",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "individual": "#/components/schemas/01_ResponseSources_AccountHolderIndividual",
                "corporate": "#/components/schemas/02_ResponseSources_AccountHolderCorporate",
                "government": "#/components/schemas/03_ResponseSources_AccountHolderGovernment"
              }
            }
          }
        },
        "description": "A card payment source"
      },
      "PaymentGetResponseCurrencyAccountSource": {
        "title": "currency_account",
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentDetailsResponseSourceType"
              },
              {
                "enum": [
                  "currency_account"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type"
          },
          "id": {
            "pattern": "^(ca)_(\\w{26})$",
            "type": "string",
            "description": "The ID of the currency account"
          },
          "amount": {
            "type": "integer",
            "description": "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."
          }
        },
        "description": "Currency Account Source"
      },
      "PaymentGetResponseEPSSource": {
        "title": "eps",
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentDetailsResponseSourceType"
              },
              {
                "enum": [
                  "eps"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type"
          },
          "purpose": {
            "maxLength": 27,
            "type": "string",
            "description": "Purpose of the payment as appearing on customer's bank statement."
          },
          "bic": {
            "maxLength": 11,
            "type": "string",
            "description": "Bank Identifier Code (BIC). It can be exactly 8 characters or 11 characters long."
          },
          "iban": {
            "maxLength": 34,
            "type": "string",
            "description": "International Bank Account Number (IBAN) without whitespaces."
          },
          "account_holder_name": {
            "type": "string",
            "description": "Account holder information."
          },
          "account_holder": {
            "$ref": "#/components/schemas/AccountHolderEps"
          }
        },
        "description": "EPS Source"
      },
      "PaymentGetResponseIdealSource": {
        "title": "ideal",
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentDetailsResponseSourceType"
              },
              {
                "enum": [
                  "ideal"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type"
          },
          "account_holder": {
            "type": "string",
            "description": "The account holder information",
            "example": "M.P.H. Nordhausen"
          },
          "account_holder_name": {
            "type": "string",
            "description": "The account holder's name",
            "example": "M.P.H. Nordhausen"
          },
          "bic": {
            "type": "string",
            "description": "Bank Identifier Code (BIC). It can be exactly 8 characters or 11 characters long",
            "example": "RABONL2U"
          },
          "description": {
            "type": "string",
            "description": "Description of the product(s) or services being paid for",
            "example": "MEXC 18652552"
          },
          "iban": {
            "maxLength": 34,
            "type": "string",
            "description": "The IBAN of the Consumer Bank account used for payment (if applicable).\n",
            "example": "NL73RABO0117816396"
          }
        },
        "description": "Ideal Source"
      },
      "PaymentGetResponseKlarnaSource": {
        "title": "klarna",
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentDetailsResponseSourceType"
              },
              {
                "enum": [
                  "klarna"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type."
          },
          "account_holder": {
            "type": "object",
            "properties": {
              "first_name": {
                "type": "string",
                "description": "The account holder's first name.",
                "example": "Hannah"
              },
              "last_name": {
                "type": "string",
                "description": "The account holder's last name.",
                "example": "Bret"
              },
              "billing_address": {
                "required": [
                  "zip",
                  "city",
                  "country"
                ],
                "type": "object",
                "properties": {
                  "address_line1": {
                    "type": "string",
                    "description": "The first line of the billing address.",
                    "example": "123 Example St."
                  },
                  "address_line2": {
                    "type": "string",
                    "description": "The second line of the billing address.",
                    "example": "Apt. 456"
                  },
                  "city": {
                    "type": "string",
                    "description": "The billing address city.",
                    "example": "Berlin"
                  },
                  "zip": {
                    "type": "string",
                    "description": "The billing address ZIP or postal code.",
                    "example": "10115"
                  },
                  "country": {
                    "maxLength": 2,
                    "minLength": 2,
                    "type": "string",
                    "description": "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.",
                    "example": "DE"
                  }
                },
                "description": "The account holder's billing address."
              },
              "email": {
                "type": "string",
                "description": "The account holder's email address."
              },
              "date_of_birth": {
                "type": "string",
                "description": "The account holder's date of birth."
              },
              "account_holder_name": {
                "type": "string",
                "description": "The account holder's full name."
              },
              "iban": {
                "type": "string",
                "description": "The account's international bank account number (IBAN). The IBAN is a standardized international format for identifying bank accounts across countries."
              },
              "account_number": {
                "type": "string",
                "description": "The account holder's account number."
              },
              "bank_code": {
                "type": "string",
                "description": "A unique code that identifies the bank the account is held with."
              },
              "bank_name": {
                "type": "string",
                "description": "The name of the bank the account is held with."
              },
              "bic": {
                "type": "string",
                "description": "The account's bank identifier code (BIC). A BIC is a standardized international code used by banks to identify themselves in financial transactions. \n\nAlso referred to as a SWIFT code.\n"
              },
              "gender": {
                "type": "string",
                "description": "The account holder's gender."
              },
              "phone": {
                "type": "object",
                "properties": {
                  "country_code": {
                    "maxLength": 7,
                    "minLength": 1,
                    "type": "string",
                    "description": "The international <a href=\"https://www.checkout.com/docs/resources/codes/country-codes\" target=\"_blank\">country calling code</a>.",
                    "example": "44"
                  },
                  "number": {
                    "maxLength": 25,
                    "minLength": 6,
                    "type": "string",
                    "description": "The phone number.",
                    "example": "1234 567890"
                  }
                },
                "description": "The account holder's phone number."
              }
            },
            "description": "The account holder's details."
          }
        },
        "description": "Klarna Source"
      },
      "PaymentGetResponseKnetSource": {
        "title": "knet",
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentDetailsResponseSourceType"
              },
              {
                "enum": [
                  "knet"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type"
          },
          "language": {
            "enum": [
              "ar",
              "en"
            ],
            "type": "string",
            "description": "Required for KNet Gateway payments.\nThis 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": {
            "type": "string",
            "description": "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": {
            "type": "string",
            "description": "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": {
            "type": "string",
            "description": "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": {
            "type": "string",
            "description": "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": {
            "type": "string",
            "description": "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": {
            "pattern": "^[0-9]{8}$",
            "type": "string",
            "description": "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": {
            "maxLength": 45,
            "type": "string",
            "description": "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": {
            "type": "string",
            "description": "The payment identifier assigned by KNet Gateway."
          },
          "knet_result": {
            "type": "string",
            "description": "The state of the payment, returned by KNet Gateway after the customer is redirected from the payment page."
          },
          "inquiry_result": {
            "type": "string",
            "description": "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": {
            "type": "string",
            "description": "The result transaction reference, given by some banks/institutions.",
            "example": "123456789012"
          },
          "knet_transaction_id": {
            "type": "string",
            "description": "The transaction identifier assigned by KNet Gateway.",
            "example": "1234567890123456"
          },
          "auth_code": {
            "type": "string",
            "description": "The resulting authorization code from the issuing bank.",
            "example": "999554"
          },
          "auth_response_code": {
            "type": "string",
            "description": "The auth response code / reason code relating to the issuing bank authorization code.",
            "example": "5"
          },
          "post_date": {
            "type": "string",
            "description": "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`.",
            "example": "1127"
          },
          "avr": {
            "type": "string",
            "description": "The Address Verification Response returned from the address verification service.",
            "example": "A"
          },
          "error": {
            "type": "string",
            "description": "The KNET error code for transaction processing.",
            "example": "IPAY0100044"
          },
          "error_text": {
            "type": "string",
            "description": "The KNET text detail for the error, including an error code.",
            "example": "IPAY0100044-Problem occured while loading payment page."
          }
        },
        "description": "KNet Source"
      },
      "PaymentGetResponseMultibancoSource": {
        "title": "multibanco",
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentDetailsResponseSourceType"
              },
              {
                "enum": [
                  "multibanco"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type"
          },
          "payment_reference": {
            "type": "string",
            "description": "Multibanco payment reference"
          },
          "service_supplier_id": {
            "type": "string",
            "description": "The identifier of a supplier charging for its service or product"
          }
        },
        "description": "Multibanco Source"
      },
      "PaymentGetResponseP24Source": {
        "title": "p24",
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentDetailsResponseSourceType"
              },
              {
                "enum": [
                  "p24"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type"
          },
          "p24_descriptor": {
            "type": "string",
            "description": "P24-generated payment descriptor, which contains the requested billing descriptor or the merchant's default descriptor (subject to truncation)."
          }
        },
        "description": "P24 Source"
      },
      "PaymentGetResponsePayPalSource": {
        "title": "paypal",
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentDetailsResponseSourceType"
              },
              {
                "enum": [
                  "paypal"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type"
          },
          "account_holder": {
            "type": "object",
            "properties": {
              "email": {
                "type": "string",
                "description": "The account holder email address.",
                "format": "email"
              },
              "full_name": {
                "type": "string",
                "description": "The full name of the account holder",
                "example": "John Smith"
              }
            },
            "description": "The account holder details"
          }
        },
        "description": "PayPal Source"
      },
      "PaymentGetResponseQPaySource": {
        "title": "qpay",
        "required": [
          "type",
          "description",
          "pun"
        ],
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentDetailsResponseSourceType"
              },
              {
                "enum": [
                  "qpay"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type"
          },
          "description": {
            "type": "string",
            "description": "Alphanumeric string containing a description of the payment order."
          },
          "qpay_status": {
            "type": "string",
            "description": "The status code returned from the QPay gateway on payment, if available."
          },
          "status_message": {
            "type": "string",
            "description": "A message giving further detail on the payment status, for failure/cancelled/success status payments."
          },
          "confirmation_id": {
            "type": "string",
            "description": "An identifier from the QPay gateway for a successful payment."
          },
          "pun": {
            "type": "string",
            "description": "QPay Payment Unique Number"
          }
        },
        "description": "QPay Source"
      },
      "PaymentGetResponseSEPAV4Source": {
        "title": "sepa",
        "required": [
          "type",
          "id"
        ],
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentDetailsResponseSourceType"
              },
              {
                "enum": [
                  "sepa"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type"
          },
          "id": {
            "type": "string",
            "description": "The instrument ID",
            "example": "src_q2euotsbrciupfgmwxkyzuoevq"
          }
        },
        "description": "SEPA DD Source"
      },
      "PaymentGetResponseSequraSource": {
        "title": "sequra",
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentDetailsResponseSourceType"
              },
              {
                "enum": [
                  "sequra"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type"
          }
        },
        "description": "Sequra Source"
      },
      "PaymentGetResponseSwishSource": {
        "title": "swish",
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentDetailsResponseSourceType"
              },
              {
                "enum": [
                  "swish"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type"
          }
        },
        "description": "Swish Source"
      },
      "PaymentGetResponseTamaraSource": {
        "title": "tamara",
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentDetailsResponseSourceType"
              },
              {
                "enum": [
                  "tamara"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type"
          }
        },
        "description": "Tamara Source"
      },
      "IdempotentActionResponse": {
        "required": [
          "action_id"
        ],
        "type": "object",
        "properties": {
          "action_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ActionId"
              }
            ],
            "description": "The unique identifier for the previously completed payment action."
          },
          "_links": {
            "minItems": 2,
            "required": [
              "payment"
            ],
            "type": "object",
            "properties": {
              "payment": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Link"
                  }
                ],
                "description": "The URI of the refunded payment. Use this to check the status of the payment.",
                "example": {
                  "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44"
                }
              }
            },
            "description": "Links related to the payment.",
            "readOnly": true
          }
        },
        "description": "The response received when you attempt a repeated payment action. For example, if you attempt to refund a payment that is already refunded."
      },
      "InitialAuthentication": {
        "title": "InitialAuthentication",
        "type": "object",
        "properties": {
          "acs_transaction_id": {
            "minLength": 36,
            "type": "string",
            "description": "The Access Control Server (ACS) transaction ID for a previously authenticated transaction"
          },
          "authentication_method": {
            "enum": [
              "frictionless_authentication",
              "challenge_occurred",
              "avs_verified",
              "other_issuer_methods"
            ],
            "type": "string"
          },
          "authentication_timestamp": {
            "type": "string",
            "description": "The timestamp of the previous authentication, in ISO 8601 format.",
            "example": "2023-02-06T15:00:00.000Z"
          },
          "authentication_data": {
            "maxLength": 2048,
            "type": "string",
            "description": "The data that documents and supports a specific authentication process"
          },
          "initial_session_id": {
            "maxLength": 30,
            "minLength": 30,
            "type": "string",
            "description": "The ID for a previous session, which is used for retrieve the initial transaction's properties",
            "example": "sid_p6prbhogijnuxgv4grm3ber55u"
          }
        },
        "description": "The details of a previous transaction"
      },
      "Items": {
        "maxItems": 998,
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "type": {
              "enum": [
                "digital",
                "discount",
                "physical"
              ],
              "type": "string",
              "description": "The item type. For example, `physical` or `digital`.\n\nThis field is used to provide item level metadata where applicable. If `source.type` is `sequra`, this field is required.\n",
              "example": "digital"
            },
            "sub_type": {
              "enum": [
                "blockchain",
                "cbdc",
                "cryptocurrency",
                "nft",
                "stablecoin"
              ],
              "type": "string",
              "description": "The digital item type.\n\nIf `type` is set to `digital`, this field is required.\n",
              "example": "stablecoin"
            },
            "name": {
              "maxLength": 255,
              "type": "string",
              "description": "The descriptive name of the line item. \n\nIf `source.type` is `sequra`, this field is required.\n",
              "example": "Necklace"
            },
            "quantity": {
              "minimum": 1,
              "type": "integer",
              "description": "The number of line items.\n\nIf `source.type` is `sequra`, this field is required.\n",
              "example": 2
            },
            "unit_price": {
              "minimum": 0,
              "type": "integer",
              "description": "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`",
              "example": 50
            },
            "reference": {
              "maxLength": 255,
              "type": "string",
              "description": "The item reference or product SKU (stock-keeping unit).\n\nFor Visa and Mastercard's interchange reduction programs, this value has a maximum length of 12 characters.\n\nIf `source.type` is `sequra`, this field is required.\n",
              "example": "858818ac"
            },
            "commodity_code": {
              "maxLength": 12,
              "type": "string",
              "description": "A code identifying a Commodity for value-added tax (VAT) purposes.",
              "example": "DEF123"
            },
            "unit_of_measure": {
              "maxLength": 12,
              "type": "string",
              "description": "Unit of Measure code used for an item in transaction.",
              "example": "metres"
            },
            "total_amount": {
              "type": "number",
              "description": "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:\n\n`total_amount` = (`quantity` * `unit_price`) - `discount_amount`.\n\nIf `source.type` is `sequra`, this field is required.\n",
              "example": 29000
            },
            "tax_rate": {
              "type": "number",
              "description": "The tax rate of the item line in minor units. The percentage value is represented with two implicit decimals. For example, 2000=20%.",
              "example": 2000
            },
            "tax_amount": {
              "type": "number",
              "description": "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.",
              "example": 1000
            },
            "tax_exempt": {
              "type": "boolean",
              "description": "Indicates whether the products or services are tax-exempt. <p/>\n\nSet to `true` if:\n  - You are processing a card payment.\n  - The `tax_amount` field is `0` due to a tax-exempt product or service.          \n"
            },
            "discount_amount": {
              "type": "number",
              "description": "The discount applied to each invoice line item.",
              "example": 1000
            },
            "wxpay_goods_id": {
              "maxLength": 32,
              "type": "string",
              "description": "Unified product No. defined by WeChat Pay",
              "example": "1001"
            },
            "url": {
              "maxLength": 1024,
              "type": "string",
              "description": "Link to the line item's product page"
            },
            "image_url": {
              "maxLength": 1024,
              "type": "string",
              "description": "Link to the line item's product page"
            },
            "service_ends_on": {
              "type": "string",
              "description": "Maximum date for the service to be rendered or ended. \n\nIf `source.type` is `sequra` and `item.type` is `digital`, this field is required.\n",
              "format": "date",
              "example": "2025-01-01T00:00:00.0000000"
            },
            "purchase_country": {
              "maxLength": 2,
              "type": "string",
              "description": "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>\n",
              "example": "GB"
            },
            "foreign_retailer_amount": {
              "minimum": 0,
              "type": "integer",
              "description": "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).",
              "example": 200
            }
          },
          "description": "The order's line item or product that is being purchased."
        },
        "description": "The order's line items."
      },
      "LocalBillingDescriptor": {
        "required": [
          "name",
          "character_set"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "A dynamic description of the card payment. Other payment methods will not display this description.\n\nThe 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.\n",
            "example": "漢字"
          },
          "character_set": {
            "allOf": [
              {
                "$ref": "#/components/schemas/LocalCharacterSets"
              },
              {
                "description": "The character set of the descriptor"
              }
            ]
          }
        },
        "description": "An optional description that is displayed on the customer's statement identifying a purchase, in the specified local character set. \n\nThis does not override the value supplied in `BillingDescriptor`.\n"
      },
      "LocalCharacterSets": {
        "enum": [
          "kanji",
          "katakana"
        ],
        "type": "string"
      },
      "MerchantAuthenticationInfo": {
        "title": "MerchantAuthenticationInfo",
        "type": "object",
        "properties": {
          "three_ds_req_auth_method": {
            "enum": [
              "no_threeds_requestor_authentication_occurred",
              "three3ds_requestor_own_credentials",
              "federated_id",
              "issuer_credentials",
              "third_party_authentication",
              "fido_authenticator",
              "fido_authenticator_fido_assurance_data_signed",
              "src_assurance_data"
            ],
            "type": "string",
            "description": "The mechanism used by the cardholder to authenticate with the 3DS Requestor"
          },
          "three_ds_req_auth_timestamp": {
            "type": "string",
            "description": "The UTC date and time the cardholder authenticated with the 3DS Requestor, in ISO 8601 format.",
            "format": "date-time"
          },
          "three_ds_req_auth_data": {
            "maxLength": 20000,
            "type": "string",
            "description": "The data that documents and supports a specific authentication process"
          }
        },
        "description": "The information about how the 3DS Requestor authenticated the cardholder before or during the transaction"
      },
      "Network": {
        "type": "object",
        "properties": {
          "ipv4": {
            "type": "string",
            "description": "The device's IPV4 address.\n\nNot required if you provide the `ipv6` field.\n",
            "example": "63.33.82.13"
          },
          "ipv6": {
            "type": "string",
            "description": "The device's IPV6 address.\n\nNot required if you provide the `ipv4` field.\n",
            "example": "2001:0000:130F:0000:0000:09C0:876A:130B"
          },
          "tor": {
            "type": "boolean",
            "description": "Specifies if the Tor network was used in the browser session.",
            "example": false
          },
          "vpn": {
            "type": "boolean",
            "description": "Specifies if a virtual private network (VPN) was used in the browser session.",
            "example": false
          },
          "proxy": {
            "type": "boolean",
            "description": "Specifies if a proxy was used in the browser session.",
            "example": false
          }
        },
        "description": "Details of the device network. \n\nEither ipv4 or ipv6 is required field.\n"
      },
      "PartialAuthorization": {
        "required": [
          "enabled"
        ],
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean",
            "description": "Specifies whether to allow partial authorizations.",
            "example": true
          }
        },
        "description": "Required information to allow partial authorization"
      },
      "PaymentAcceptedResponse": {
        "title": "Payment",
        "required": [
          "id",
          "status"
        ],
        "type": "object",
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentId"
              }
            ],
            "description": "The payment's unique identifier",
            "readOnly": true
          },
          "status": {
            "enum": [
              "Pending"
            ],
            "type": "string",
            "description": "The status of the payment"
          },
          "reference": {
            "type": "string",
            "description": "Your reference for the payment request",
            "example": "ORD-5023-4E89"
          },
          "customer": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerResponse"
              }
            ],
            "description": "The customer associated with the payment, if provided in the request"
          },
          "3ds": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/3dsEnrollmentData"
              }
            ],
            "description": "Provides 3D Secure enrollment status"
          },
          "subscription": {
            "$ref": "#/components/schemas/Subscription"
          },
          "processing": {
            "type": "object",
            "properties": {
              "continuation_payload": {
                "type": "string",
                "description": "The payload for an in-app payment the merchant can use to continue a payments.",
                "example": "{\\\"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": {
                "type": "string",
                "description": "The partner-originated unique payment identifier",
                "example": "440644309099499894406"
              },
              "pan_type_processed": {
                "enum": [
                  "fpan",
                  "dpan"
                ],
                "type": "string",
                "description": "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": {
                "type": "boolean",
                "description": "Indicates whether the `fallback_source` field was used for the payment.",
                "example": false
              },
              "cko_network_token_available": {
                "type": "boolean",
                "description": "The flag indicating if Checkout Network Token was available for the payment",
                "example": false
              },
              "scheme_merchant_id": {
                "type": "string",
                "description": "The merchant identifier that was configured with the scheme and used for the payment.",
                "example": "123456"
              },
              "payment_reference": {
                "type": "string",
                "description": "The payment reference of the transaction. Can be used to build your own payment slip. Applicable for Multibanco payments.",
                "example": "999999964"
              },
              "service_supplier_id": {
                "type": "string",
                "description": "The merchant/service provider identifier of the transaction. Can be used to build your own payment slip. Applicable for Multibanco payments.",
                "example": "11854"
              }
            },
            "description": "Returns information related to the processing of the payment",
            "readOnly": true
          },
          "_links": {
            "minItems": 2,
            "required": [
              "self"
            ],
            "type": "object",
            "properties": {
              "self": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Link"
                  }
                ],
                "description": "The URI of the payment",
                "example": {
                  "href": "https://{prefix}.api.checkout.com/payments/pay_mbabizu24mvu3mela5njyhpit4"
                }
              },
              "redirect": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RedirectLink"
                  }
                ],
                "description": "The URI to which the customer is redirected to complete the payment.",
                "example": {
                  "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"
                  }
                }
              }
            },
            "description": "The links related to the payment",
            "readOnly": true
          }
        },
        "description": "Payment response"
      },
      "PaymentAction": {
        "required": [
          "id",
          "type",
          "amount",
          "response_code",
          "processed_on"
        ],
        "type": "object",
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ActionId"
              }
            ],
            "description": "The unique identifier of the payment action"
          },
          "type": {
            "enum": [
              "Authorization",
              "Card Verification",
              "Void",
              "Capture",
              "Refund",
              "Payout",
              "Return"
            ],
            "type": "string",
            "description": "The type of action"
          },
          "processed_on": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ServerTimestamp"
              }
            ],
            "description": "The date/time the action was processed"
          },
          "amount": {
            "type": "integer",
            "description": "The action amount",
            "example": 6540
          },
          "approved": {
            "type": "boolean",
            "description": "Whether the action was successful",
            "example": true
          },
          "auth_code": {
            "type": "string",
            "description": "The issuer authorization code for cards. \n\nOnly applicable for payins.\n",
            "example": "643381"
          },
          "response_code": {
            "type": "string",
            "description": "The Gateway response code",
            "example": "10000"
          },
          "response_summary": {
            "type": "string",
            "description": "The Gateway response summary",
            "example": "Approved"
          },
          "authorization_type": {
            "enum": [
              "Final",
              "Estimated",
              "Incremental"
            ],
            "type": "string",
            "description": "The authorization type. \n\nOnly applicable for payins.\n",
            "default": "Final",
            "example": "Estimated"
          },
          "reference": {
            "type": "string",
            "description": "Your reference for the action.\n\nOnly applicable for payins.\n",
            "example": "ORD-5023-4E89"
          },
          "amount_allocations": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AmountAllocations"
              }
            ],
            "description": "The sub-entities that the payment is being processed on behalf of.\n\nOnly applicable for payins.\n"
          },
          "processing": {
            "type": "object",
            "properties": {
              "retrieval_reference_number": {
                "type": "string",
                "description": "A unique identifier for the authorization that is submitted to the card scheme during processing",
                "example": "909913440644"
              },
              "acquirer_reference_number": {
                "type": "string",
                "description": "A unique identifier for the capture that is submitted to the card scheme during processing",
                "example": "24021219099007452440793"
              },
              "acquirer_transaction_id": {
                "type": "string",
                "description": "A unique identifier for the transaction generated by the acquirer",
                "example": "440644309099499894406"
              },
              "capture_action_id": {
                "type": "string",
                "description": "The Checkout.com action ID of the capture you wanted to refund. Required only for PayPal and Riverty.",
                "example": "act_fd3h6evhpn3uxdoqbuu3lqnqbm"
              }
            },
            "description": "Returns information related to the processing of the payment. \n\nOnly applicable for payins.\n"
          },
          "items": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Items"
              }
            ],
            "description": "The order's line item or product that is being purchased.\n\nOnly applicable for payins.\n"
          },
          "metadata": {
            "type": "object",
            "description": "A set of key-value pairs that you can attach to an action.\n\nOnly applicable for payins.\n"
          }
        }
      },
      "PaymentActionsResponse": {
        "maxItems": 151,
        "minItems": 1,
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/PaymentAction"
        },
        "description": "The payment actions\n",
        "example": [
          {
            "id": "act_fd3h6evhpn3uxdoqbuu3lqnqbm",
            "type": "Refund",
            "processed_on": "2018-01-20T10:30:48.0000000+00:00",
            "amount": 1000,
            "approved": true,
            "response_code": 10000,
            "response_summary": "Approved"
          },
          {
            "id": "act_gefycn3jcvuupboxfmqrhk2aym",
            "type": "Capture",
            "processed_on": "2018-01-17T10:30:48.0000000+00:00",
            "amount": 6540,
            "approved": true,
            "response_code": 10000,
            "response_summary": "Approved",
            "processing": {
              "acquirer_reference_number": 2.402121909900745E+22,
              "acquirer_transaction_id": 745244079
            },
            "metadata": {
              "shipping_ref": "MQIBN2"
            }
          },
          {
            "id": "act_y3oqhf46pyzuxjbcn2giaqnb44",
            "type": "Authorization",
            "processed_on": "2018-01-17T09:30:48.0000000+00:00",
            "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": 4.406443090994999E+20
            }
          }
        ]
      },
      "PaymentActionSummary": {
        "required": [
          "id",
          "type",
          "response_code"
        ],
        "type": "object",
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ActionId"
              }
            ],
            "description": "The unique identifier of the payment action"
          },
          "type": {
            "enum": [
              "Authorization",
              "Card Verification",
              "Void",
              "Capture",
              "Refund"
            ],
            "type": "string",
            "description": "The type of action"
          },
          "response_code": {
            "type": "string",
            "description": "The Gateway response code",
            "example": "10000"
          },
          "response_summary": {
            "type": "string",
            "description": "The Gateway response summary",
            "example": "Approved"
          }
        }
      },
      "PaymentDetails": {
        "required": [
          "id",
          "requested_on",
          "amount",
          "currency",
          "status",
          "approved",
          "_links"
        ],
        "type": "object",
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentId"
              }
            ],
            "description": "Payment unique identifier"
          },
          "requested_on": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ServerTimestamp"
              }
            ],
            "description": "The date/time the payment was requested"
          },
          "source": {
            "$ref": "#/components/schemas/PaymentDetailsResponseSource"
          },
          "destination": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentResponseDestination"
              }
            ],
            "description": "The destination of the payment"
          },
          "amount": {
            "type": "integer",
            "description": "The original payment amount",
            "example": 6540
          },
          "amount_requested": {
            "type": "integer",
            "description": "The full amount from the original authorization, if a partial authorization was requested.",
            "example": 6540
          },
          "currency": {
            "maxLength": 3,
            "minLength": 3,
            "type": "string",
            "description": "The three-letter <a href=\"https://www.checkout.com/docs/resources/codes/currency-codes\" target=\"_blank\">ISO currency code</a> of the payment",
            "example": "USD"
          },
          "payment_type": {
            "enum": [
              "Regular",
              "Recurring",
              "MOTO",
              "Installment",
              "PayLater",
              "Unscheduled"
            ],
            "type": "string",
            "description": "This must be specified for card payments where the cardholder is not present (For example, recurring or mail order / telephone order)\n",
            "default": "Regular",
            "example": "Recurring"
          },
          "payment_plan": {
            "type": "object",
            "oneOf": [
              {
                "$ref": "#/components/schemas/PlanRecurring"
              },
              {
                "$ref": "#/components/schemas/PlanInstallment"
              }
            ],
            "description": "The details of a recurring subscription or installment"
          },
          "reference": {
            "type": "string",
            "description": "Your reference for the payment",
            "example": "ORD-5023-4E89"
          },
          "description": {
            "type": "string",
            "description": "A description of the payment",
            "example": "Set of 3 masks"
          },
          "approved": {
            "type": "boolean",
            "description": "Whether the payment was successful",
            "example": true
          },
          "expires_on": {
            "type": "string",
            "description": "The timestamp (ISO 8601 code) for when the authorization's validity period expires"
          },
          "status": {
            "enum": [
              "Pending",
              "Authorized",
              "Card Verified",
              "Voided",
              "Partially Captured",
              "Captured",
              "Partially Refunded",
              "Refunded",
              "Declined",
              "Canceled",
              "Expired",
              "Paid",
              "Retry Scheduled"
            ],
            "type": "string",
            "description": "The status of the payment",
            "example": "Authorized"
          },
          "balances": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentResponseBalances"
              }
            ],
            "description": "The payment balances"
          },
          "3ds": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/3dsData"
              }
            ],
            "description": "Provides information relating to the processing of 3D Secure payments"
          },
          "authentication": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentAuthenticationData"
              }
            ],
            "description": "Provides information relating to the authentication of the payment."
          },
          "risk": {
            "type": "object",
            "properties": {
              "flagged": {
                "type": "boolean",
                "description": "Whether the payment was flagged by a risk check",
                "default": false,
                "example": true
              },
              "score": {
                "maximum": 100,
                "minimum": 0,
                "type": "number",
                "description": "The risk score calculated by our Fraud Detection engine. Absent if not enough data provided.",
                "example": 22
              }
            },
            "description": "Returns the payments risk assessment results"
          },
          "customer": {
            "required": [
              "id"
            ],
            "type": "object",
            "properties": {
              "id": {
                "pattern": "^(cus)_(\\w{26})$",
                "type": "string",
                "description": "The unique identifier of the customer. This can be passed as a source when making a payment",
                "example": "cus_y3oqhf46pyzuxjbcn2giaqnb44"
              },
              "email": {
                "type": "string",
                "description": "The customer's email address",
                "example": "brucewayne@gmail.com"
              },
              "name": {
                "type": "string",
                "description": "The customer's name",
                "example": "Bruce Wayne"
              },
              "summary": {
                "$ref": "#/components/schemas/CustomerSummary"
              }
            },
            "description": "The customer to which this payment is linked"
          },
          "billing_descriptor": {
            "$ref": "#/components/schemas/BillingDescriptor"
          },
          "shipping": {
            "type": "object",
            "properties": {
              "address": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Address"
                  }
                ],
                "description": "The shipping address"
              },
              "phone": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PhoneNumber"
                  }
                ],
                "description": "The phone number associated with the shipping address"
              }
            },
            "description": "The payment shipping details"
          },
          "payment_ip": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IPAddress"
              }
            ],
            "description": "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": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentDetailsResponseSender"
              }
            ],
            "description": "Information about the sender of the payment's funds"
          },
          "amount_allocations": {
            "$ref": "#/components/schemas/AmountAllocations"
          },
          "recipient": {
            "$ref": "#/components/schemas/PaymentRecipient"
          },
          "processing": {
            "$ref": "#/components/schemas/ProcessingData"
          },
          "items": {
            "$ref": "#/components/schemas/Items"
          },
          "metadata": {
            "type": "object",
            "description": "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",
            "example": {
              "coupon_code": "NY2018",
              "partner_id": 123989
            }
          },
          "eci": {
            "type": "string",
            "description": "The final Electronic Commerce Indicator (ECI) security level used to authorize the payment.\nApplicable for 3D Secure and network token payments\n",
            "example": "06"
          },
          "scheme_id": {
            "type": "string",
            "description": "The scheme transaction identifier\n",
            "example": "488341541494658"
          },
          "actions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentActionSummary"
            },
            "description": "A summary of the payment's actions,\nreturned when a session ID is used to get the payment details\n"
          },
          "retry": {
            "$ref": "#/components/schemas/RetryGetResponse"
          },
          "cko_network_token_available": {
            "type": "boolean",
            "description": "The flag indicating if Checkout Network Token was available for the payment",
            "example": false
          },
          "instruction": {
            "type": "object",
            "properties": {
              "purpose": {
                "type": "string",
                "description": "The purpose of the payment.",
                "example": "financial_services"
              }
            },
            "description": "Details about the payment instruction."
          },
          "_links": {
            "minItems": 2,
            "required": [
              "self",
              "actions"
            ],
            "type": "object",
            "properties": {
              "self": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Link"
                  }
                ],
                "description": "The URI of the payment"
              },
              "actions": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Link"
                  }
                ],
                "description": "A link to the payment's associated actions"
              },
              "authorize": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Link"
                  }
                ],
                "description": "A link to increment the authorization, where applicable"
              },
              "void": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Link"
                  }
                ],
                "description": "A link to void the payment, where applicable"
              },
              "capture": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Link"
                  }
                ],
                "description": "A link to capture the payment, where applicable"
              },
              "refund": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Link"
                  }
                ],
                "description": "A link to refund the payment, where applicable"
              }
            },
            "description": "The links related to the payment",
            "example": {
              "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"
              }
            }
          }
        },
        "description": "Payment response"
      },
      "PaymentDetailsResponseSender": {
        "required": [
          "type"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/01_PaymentResponseIndividualSender"
          },
          {
            "$ref": "#/components/schemas/02_PaymentResponseCorporateSender"
          },
          {
            "$ref": "#/components/schemas/03_PaymentResponseInstrumentSender"
          }
        ],
        "properties": {
          "type": {
            "enum": [
              "individual",
              "corporate",
              "instrument"
            ],
            "type": "string",
            "description": "The type of sender",
            "example": "instrument"
          },
          "reference": {
            "type": "string",
            "description": "The sender's reference for the payout",
            "example": "8285282045818"
          }
        },
        "description": "Information about the sender of the payment's funds",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "individual": "#/components/schemas/01_PaymentResponseIndividualSender",
            "corporate": "#/components/schemas/02_PaymentResponseCorporateSender",
            "instrument": "#/components/schemas/03_PaymentResponseInstrumentSender"
          }
        }
      },
      "PaymentDetailsResponseSource": {
        "title": "source",
        "required": [
          "type"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/PaymentGetResponseCardSource"
          },
          {
            "$ref": "#/components/schemas/PaymentGetResponseAlmaSource"
          },
          {
            "$ref": "#/components/schemas/PaymentGetResponseBancontactSource"
          },
          {
            "$ref": "#/components/schemas/PaymentGetResponseBlikSource"
          },
          {
            "$ref": "#/components/schemas/PaymentGetResponseCurrencyAccountSource"
          },
          {
            "$ref": "#/components/schemas/PaymentGetResponseEPSSource"
          },
          {
            "$ref": "#/components/schemas/PaymentGetResponseIdealSource"
          },
          {
            "$ref": "#/components/schemas/PaymentGetResponseKlarnaSource"
          },
          {
            "$ref": "#/components/schemas/PaymentGetResponseKnetSource"
          },
          {
            "$ref": "#/components/schemas/PaymentGetResponseMultibancoSource"
          },
          {
            "$ref": "#/components/schemas/PaymentGetResponseP24Source"
          },
          {
            "$ref": "#/components/schemas/PaymentGetResponsePayPalSource"
          },
          {
            "$ref": "#/components/schemas/PaymentGetResponseQPaySource"
          },
          {
            "$ref": "#/components/schemas/PaymentGetResponseSEPAV4Source"
          },
          {
            "$ref": "#/components/schemas/PaymentGetResponseBacsSource"
          },
          {
            "$ref": "#/components/schemas/PaymentGetResponseSwishSource"
          },
          {
            "$ref": "#/components/schemas/PaymentGetResponseSequraSource"
          },
          {
            "$ref": "#/components/schemas/PaymentGetResponseTamaraSource"
          }
        ],
        "description": "The source of the payment",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "card": "#/components/schemas/PaymentGetResponseCardSource",
            "alma": "#/components/schemas/PaymentGetResponseAlmaSource",
            "bancontact": "#/components/schemas/PaymentGetResponseBancontactSource",
            "blik": "#/components/schemas/PaymentGetResponseBlikSource",
            "currency_account": "#/components/schemas/PaymentGetResponseCurrencyAccountSource",
            "eps": "#/components/schemas/PaymentGetResponseEPSSource",
            "ideal": "#/components/schemas/PaymentGetResponseIdealSource",
            "klarna": "#/components/schemas/PaymentGetResponseKlarnaSource",
            "knet": "#/components/schemas/PaymentGetResponseKnetSource",
            "multibanco": "#/components/schemas/PaymentGetResponseMultibancoSource",
            "p24": "#/components/schemas/PaymentGetResponseP24Source",
            "paypal": "#/components/schemas/PaymentGetResponsePayPalSource",
            "qpay": "#/components/schemas/PaymentGetResponseQPaySource",
            "sepa": "#/components/schemas/PaymentGetResponseSEPAV4Source",
            "bacs": "#/components/schemas/PaymentGetResponseBacsSource",
            "swish": "#/components/schemas/PaymentGetResponseSwishSource",
            "sequra": "#/components/schemas/PaymentGetResponseSequraSource",
            "tamara": "#/components/schemas/PaymentGetResponseTamaraSource"
          }
        }
      },
      "PaymentDetailsResponseSourceType": {
        "enum": [
          "card",
          "alma",
          "bacs",
          "bancontact",
          "blik",
          "currency_account",
          "eps",
          "ideal",
          "klarna",
          "knet",
          "multibanco",
          "p24",
          "paypal",
          "qpay",
          "sepa",
          "sequra",
          "swish",
          "tamara"
        ],
        "type": "string",
        "description": "Ordered list of payment details response source types"
      },
      "PaymentId": {
        "maxLength": 30,
        "minLength": 30,
        "pattern": "^(pay)_(\\w{26})$",
        "type": "string",
        "description": "The payment identifier.",
        "example": "pay_mbabizu24mvu3mela5njyhpit4"
      },
      "PaymentInstruction": {
        "type": "object",
        "properties": {
          "scheme": {
            "enum": [
              "local",
              "instant"
            ],
            "type": "string",
            "description": "An option to restrict the payment scheme type, when not available payouts will fail."
          },
          "remittance": {
            "type": "object",
            "properties": {
              "reference": {
                "maxLength": 80,
                "type": "string",
                "description": "A merchant-provided reference for the remittance payment. This value is used for payment reconciliation and is reviewed by our banking partner."
              }
            }
          }
        },
        "description": "Details about the instruction for payouts to bank accounts."
      },
      "PaymentInstructionResponse": {
        "type": "object",
        "properties": {
          "value_date": {
            "type": "string",
            "description": "The date (in ISO 8601 format) and time at which the recipient's account will be credited.",
            "format": "date-time",
            "example": "2020-06-12T22:27:42.5125940+00:00"
          }
        },
        "description": "Instruction details for payouts to bank accounts."
      },
      "PaymentPaged": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "description": "The numbers of results to retrieve",
            "example": 10
          },
          "skip": {
            "type": "integer",
            "description": "The number of results to skip",
            "example": 10
          },
          "total_count": {
            "type": "integer",
            "description": "The total number of results matching the payment reference. This number is unaffected by the values of the `skip` and `limit` parameters",
            "example": 1
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentDetails"
            },
            "description": "The list of payments"
          }
        }
      },
      "PaymentPlan": {
        "title": "PaymentPlan",
        "type": "object",
        "properties": {
          "days_between_payments": {
            "type": "integer",
            "description": "Indicates the minimum number of days between payments",
            "example": 28
          },
          "total_number_of_payments": {
            "type": "integer",
            "description": "Indicates the agreed total number of payments",
            "example": 5
          },
          "current_payment_number": {
            "type": "integer",
            "description": "The number of the current installment payment",
            "example": 3
          },
          "expiry": {
            "type": "string",
            "description": "The date after which no further payments will be performed in the format YYYYMMDD",
            "example": "20251031"
          },
          "name": {
            "maxLength": 35,
            "type": "string",
            "description": "The name of the payment plan.\n\nRequired 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.\n",
            "example": "Subscription 1234"
          },
          "start_date": {
            "type": "string",
            "description": "The date on which the first payment will be taken, in `YYYYMMDD` format.\n\nRequired when `source.type` is `blik` and the recurring agreement is created without an initial payment (`amount` set to `0`).\n",
            "example": "20260507"
          },
          "amount": {
            "minimum": 1,
            "type": "integer",
            "description": "The amount to charge for each payment in the plan, in the [minor currency unit](https://www.checkout.com/docs/resources/calculating-the-amount).\n\nRequired 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`).\n",
            "example": 1234
          }
        },
        "description": "The details of a recurring subscription or installment `payment_plan`."
      },
      "PaymentRecipient": {
        "type": "object",
        "properties": {
          "dob": {
            "maxLength": 10,
            "type": "string",
            "description": "The recipient's date of birth (yyyy-mm-dd)",
            "format": "date",
            "example": "1985-05-15T00:00:00.0000000"
          },
          "account_number": {
            "maxLength": 34,
            "type": "string",
            "description": "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",
            "example": "5555554444"
          },
          "address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "The recipient's address"
          },
          "zip": {
            "maxLength": 10,
            "type": "string",
            "description": "Replaced by `address.zip`\n\nThe first part of the UK postcode (e.g., SW1A 1AA would be SW1A).\n",
            "example": "SW1A",
            "deprecated": true
          },
          "first_name": {
            "maxLength": 50,
            "type": "string",
            "description": "The recipient's first name",
            "example": "John"
          },
          "last_name": {
            "maxLength": 50,
            "type": "string",
            "description": "The recipient's last name",
            "example": "Jones"
          }
        },
        "description": "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)."
      },
      "PaymentRequest": {
        "title": "Payment",
        "required": [
          "currency"
        ],
        "type": "object",
        "properties": {
          "source": {
            "$ref": "#/components/schemas/PaymentRequestSource"
          },
          "fallback_source": {
            "$ref": "#/components/schemas/PaymentRequestFallbackSource"
          },
          "amount": {
            "maximum": 9999999999,
            "minimum": 0,
            "type": "integer",
            "description": "The payment amount. To perform a card verification, do not provide the amount or provide a value of `0`.\n\nThe amount must be provided in the <a href=\"https://www.checkout.com/docs/resources/calculating-the-amount\" target=\"blank\">minor currency unit</a>.\n",
            "format": "int64",
            "example": 6540
          },
          "currency": {
            "maxLength": 3,
            "minLength": 3,
            "type": "string",
            "description": "The three-letter <a href=\"https://www.checkout.com/docs/resources/codes/currency-codes\" target=\"blank\">ISO currency code</a>\n",
            "example": "USD"
          },
          "payment_type": {
            "enum": [
              "Regular",
              "Recurring",
              "MOTO",
              "Installment",
              "PayLater",
              "Unscheduled"
            ],
            "type": "string",
            "description": "The type of payment.\n\nThis 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.\n\nFor MITs, this field must not be set to `Regular`.\n",
            "default": "Regular",
            "example": "Recurring"
          },
          "payment_plan": {
            "type": "object",
            "oneOf": [
              {
                "$ref": "#/components/schemas/PlanRecurring"
              },
              {
                "$ref": "#/components/schemas/PlanInstallment"
              }
            ],
            "description": "The details of a recurring subscription or installment"
          },
          "merchant_initiated": {
            "type": "boolean",
            "description": "\nWhether the payment is a merchant-initiated transaction (MIT).\n\n<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>.\n\nIf you set this field to `true`, the value for `payment_type` must not be set to `Regular`.\n"
          },
          "reference": {
            "maxLength": 80,
            "type": "string",
            "description": "\nA reference you can use to identify the payment. For example, an order number.\n  - For Amex payments, the reference has a 30-character limit.\n  - For Benefit payments, the reference must be a unique alphanumeric value.\n  - For Blik payments, the reference has a 35-character limit.\n  - For Discover payments, the reference has a 60-character limit.\n  - For iDEAL payments, the reference is required and must be an alphanumeric value with a 35-character limit.\n  - For OmanNet payments, the reference must be a unique alphanumeric value between 12 and 30 characters long, generated for every payment action.\n  - For seQura payments, the reference is required and must be a unique value.\n  - For TWINT payments, the reference has a 50 character limit.\n",
            "example": "ORD-5023-4E89"
          },
          "description": {
            "maxLength": 100,
            "type": "string",
            "description": "A description of the payment.",
            "example": "Set of 3 masks"
          },
          "authorization_type": {
            "enum": [
              "Final",
              "Estimated"
            ],
            "type": "string",
            "description": "The authorization type",
            "default": "Final",
            "example": "Estimated"
          },
          "partial_authorization": {
            "$ref": "#/components/schemas/PartialAuthorization"
          },
          "capture": {
            "type": "boolean",
            "description": "Whether to capture the payment (if applicable)",
            "default": true,
            "example": true
          },
          "capture_on": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Timestamp"
              }
            ],
            "description": "A timestamp (ISO 8601 code) that determines when the payment should be captured.\nProviding this field will automatically set `capture` to true\n"
          },
          "expire_on": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Timestamp"
              }
            ],
            "description": "The date and time when the Multibanco payment expires in UTC. </br>Format – ISO 8601 <br/>Example– `2025-01-31T10:20:30.456`\n"
          },
          "customer": {
            "$ref": "#/components/schemas/CustomerRequest"
          },
          "billing_descriptor": {
            "$ref": "#/components/schemas/BillingDescriptor"
          },
          "shipping": {
            "$ref": "#/components/schemas/Shipping"
          },
          "3ds": {
            "type": "object",
            "anyOf": [
              {
                "$ref": "#/components/schemas/3dsRequest"
              },
              {
                "$ref": "#/components/schemas/3dsRequestStandalone"
              },
              {
                "$ref": "#/components/schemas/3dsRequestThirdParty"
              }
            ],
            "description": "Information required for 3D Secure authentication payments."
          },
          "authentication": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentAuthenticationRequest"
              }
            ],
            "description": "Provides information required to authenticate payments."
          },
          "processing_channel_id": {
            "pattern": "^(pc)_(\\w{26})$",
            "type": "string",
            "description": "The processing channel to be used for the payment",
            "example": "pc_q4dbxom5jbgudnjzjpz7j2z6uq"
          },
          "previous_payment_id": {
            "maxLength": 100,
            "type": "string",
            "description": "An identifier that links the payment to an existing series of payments.\n\nYou 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>.\n\nTo link the payment, pass one of the following as its value:\n- a payment identifier (for example, `pay_cr4hxwizzp6k7biycuk2ibltnm`) from the recurring series, or\n- the scheme transaction ID\n",
            "example": "pay_fun26akvvjjerahhctaq2uzhu4"
          },
          "risk": {
            "$ref": "#/components/schemas/RiskRequest"
          },
          "success_url": {
            "maxLength": 1024,
            "type": "string",
            "description": "For redirect payment methods, this overrides the default success redirect URL configured on your account",
            "format": "uri",
            "example": "https://example.com/payments/success"
          },
          "failure_url": {
            "maxLength": 1024,
            "type": "string",
            "description": "For redirect payment methods, this overrides the default failure redirect URL configured on your account",
            "format": "uri",
            "example": "https://example.com/payments/fail"
          },
          "payment_ip": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IPAddress"
              }
            ],
            "description": "Use the `risk.device.network.ipv4` or `risk.device.network.ipv6` field instead.\n\nThe 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`\n",
            "deprecated": true
          },
          "sender": {
            "$ref": "#/components/schemas/PaymentRequestSender"
          },
          "recipient": {
            "$ref": "#/components/schemas/PaymentRecipient"
          },
          "amount_allocations": {
            "$ref": "#/components/schemas/AmountAllocations"
          },
          "processing": {
            "$ref": "#/components/schemas/PaymentRequestProcessing"
          },
          "items": {
            "$ref": "#/components/schemas/Items"
          },
          "retry": {
            "$ref": "#/components/schemas/RetryRequest"
          },
          "subscription": {
            "$ref": "#/components/schemas/Subscription"
          },
          "metadata": {
            "type": "object",
            "description": "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.\n\nYou can provide up to 20 metadata fields per API call, but the value of each field must not exceed 255 characters in length.\n\nYou 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’`.\n",
            "example": {
              "coupon_code": "NY2018"
            }
          },
          "segment": {
            "$ref": "#/components/schemas/Segment"
          },
          "instruction": {
            "type": "object",
            "properties": {
              "purpose": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Purpose"
                  }
                ]
              }
            },
            "description": "Details about the payment instruction."
          },
          "routing": {
            "type": "object",
            "properties": {
              "attempts": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Attempt"
                },
                "description": "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:\n\n```\n\"attempts\": [\n  {\n    \"scheme\": \"mastercard\"\n  },\n  {\n    \"scheme\": \"visa\"\n  }\n]\n```\n"
              }
            },
            "description": "Controls processor attempts at the payment level."
          }
        }
      },
      "PaymentRequestDestination": {
        "required": [
          "type"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/PaymentRequestIdDestination"
          },
          {
            "$ref": "#/components/schemas/PaymentBankAccountDestination"
          }
        ],
        "description": "The destination of the payout.",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "id": "#/components/schemas/PaymentRequestIdDestination",
            "bank_account": "#/components/schemas/PaymentBankAccountDestination"
          }
        }
      },
      "PaymentRequestProcessing": {
        "type": "object",
        "properties": {
          "order_id": {
            "maxLength": 15,
            "type": "string",
            "description": "The number provided by the cardholder. Purchase order or invoice number may be used.",
            "example": "123456789"
          },
          "tax_amount": {
            "minimum": 0,
            "type": "number",
            "description": "The total amount of sales tax on the total purchase amount.",
            "example": 3000
          },
          "surcharge_amount": {
            "minimum": 0,
            "type": "integer",
            "description": "Surcharge amount applied to the transaction in minor units by the merchant.",
            "example": 200
          },
          "discount_amount": {
            "minimum": 0,
            "type": "number",
            "description": "The discount amount applied to the transaction by the merchant.",
            "example": 0
          },
          "duty_amount": {
            "minimum": 0,
            "type": "number",
            "description": "The total charges for any import/export duty included in the transaction.",
            "example": 0
          },
          "shipping_amount": {
            "minimum": 0,
            "type": "number",
            "description": "The total freight or shipping and handling charges for the transaction.",
            "example": 300
          },
          "shipping_tax_amount": {
            "minimum": 0,
            "type": "number",
            "description": "The tax amount of the freight or shipping and handling charges for the transaction.",
            "example": 100
          },
          "aft": {
            "type": "boolean",
            "description": "Indicates if the payment is an [Account Funding Transaction](https://www.checkout.com/docs/payments/manage-payments/account-funding-transactions)"
          },
          "preferred_scheme": {
            "enum": [
              "mastercard",
              "visa",
              "cartes_bancaires"
            ],
            "type": "string",
            "description": "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": {
            "enum": [
              "Delayed_charge",
              "Resubmission",
              "No_show",
              "Reauthorization"
            ],
            "type": "string",
            "description": "Indicates the reason for a merchant-initiated payment request."
          },
          "campaign_id": {
            "type": "integer",
            "description": "Unique number of the campaign this payment will be running in. Only required for Afterpay campaign invoices."
          },
          "product_type": {
            "type": "string",
            "description": "Product type of the payment. Used when `source.type` is<br>\n  <ul><li>`wechatpay` - required. Enum:\n    <ul>\n      <li>`QR Code`</li>\n      <li>`In-App`</li>\n      <li>`Official Account`</li>\n      <li>`Mini Program`</li>\n    </ul>\n  </li>\n  <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:\n    <ul>\n      <li>`pay_in_full`</li>\n      <li>`pay_by_instalment_2`</li>\n      <li>`pay_by_instalment_3`</li>\n      <li>`pay_by_instalment_4`</li>\n      <li>`pay_by_instalment_6`</li>\n    </ul>\n  </li>\n  <li>`sequra` - required. Enum:\n    <ul>\n      <li>`invoice`</li>\n      <li>`pay_later`</li>\n      <li>`pay_by_instalment_3`</li>\n      <li>`pay_by_instalment`</li>\n    </ul>\n  </li></ul>",
            "example": "QR Code"
          },
          "open_id": {
            "type": "string",
            "description": "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`.",
            "example": "oUpF8uMuAJO_M2pxb1Q9zNjWeS6o"
          },
          "original_order_amount": {
            "minimum": 0,
            "type": "number",
            "description": "The payment for a merchant's order may be split, and the original order price indicates the transaction amount of the entire order.",
            "example": 10
          },
          "receipt_id": {
            "maxLength": 32,
            "type": "string",
            "description": "Merchant receipt ID.",
            "example": "10"
          },
          "terminal_type": {
            "enum": [
              "APP",
              "WAP",
              "WEB"
            ],
            "type": "string",
            "description": "The client-side terminal type, if it is a website that is opened via a PC browser or a mobile browser or mobile application.",
            "default": "WEB",
            "example": "WAP"
          },
          "os_type": {
            "enum": [
              "ANDROID",
              "IOS"
            ],
            "type": "string",
            "description": "This field is required when `terminalType` is not `WEB`.",
            "example": "ANDROID"
          },
          "invoice_id": {
            "maxLength": 127,
            "type": "string",
            "description": "Invoice ID number."
          },
          "locale": {
            "maxLength": 10,
            "minLength": 2,
            "pattern": "^[a-z]{2}(?:-[A-Z][a-z]{3})?(?:-(?:[A-Z]{2}))?$",
            "type": "string",
            "description": "The language and region of the customer in ISO 639-2 language code; value consists of language-country.",
            "example": "en-US"
          },
          "airline_data": {
            "$ref": "#/components/schemas/AirlineData"
          },
          "accommodation_data": {
            "$ref": "#/components/schemas/AccommodationData"
          },
          "merchant_callback_url": {
            "type": "string",
            "description": "A URL which you can use to notify the customer that the order has been created."
          },
          "line_of_business": {
            "type": "string",
            "description": "<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>\nThe line of business that the payment is associated with.\n",
            "example": "Flights"
          },
          "pan_preference": {
            "enum": [
              "fpan",
              "dpan"
            ],
            "type": "string",
            "description": "Specifies the preferred type of Primary Account Number (PAN) for the payment.\n<br>Note: This only works for source.type cards, instruments and tokens.\n* **DPAN**: Indicates a preference for using the Checkout.com Network Token.\n* **FPAN**: Indicates a preference for using the full card number.\n"
          },
          "service_type": {
            "enum": [
              "same_day",
              "standard"
            ],
            "type": "string",
            "description": "Specifies which ACH service to use for the payment, if you set `source.type` to `ach`.",
            "example": "standard"
          },
          "partner_code": {
            "maxLength": 6,
            "minLength": 6,
            "pattern": "^\\d{6}$",
            "type": "string",
            "description": "The customer's 6-digit Blik code.\n\nRequired when `source.type` is `blik` and `merchant_initiated` is `false` (For example, for `Regular` payments and the initial payment of a `Recurring` agreement).\n",
            "example": "902111"
          },
          "provision_network_token": {
            "type": "boolean",
            "description": "Indicates whether to provision a network token for the payment.",
            "default": true,
            "example": true
          },
          "card_type": {
            "enum": [
              "credit",
              "debit"
            ],
            "type": "string",
            "description": "Specifies whether to process the payment as a credit or debit transaction, if a combo card is used.\n\nThis field is required for domestic payments in Brazil performed using a Brazilian card.\n"
          },
          "affiliate_id": {
            "maxLength": 15,
            "pattern": "^[a-zA-Z0-9]{1,15}$",
            "type": "string",
            "description": "The unique identifier for Visa-registered ramp providers. \n\nMust only contain alphanumeric characters.\n\nIf you're a Visa-registered ramp provider operating with affiliates, this field is required.\n"
          },
          "affiliate_url": {
            "type": "string",
            "description": "The affiliate URL.\n\nIf you're a Visa-registered ramp provider operating with affiliates, this field is required.\n",
            "example": "www.mycrypto.com"
          },
          "purchase_country": {
            "maxLength": 2,
            "type": "string",
            "description": "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. \n\nIf you're a Visa-registered ramp provider operating with affiliates, this field is required.\n",
            "example": "GB"
          },
          "foreign_retailer_amount": {
            "minimum": 0,
            "type": "integer",
            "description": "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).",
            "example": 200
          },
          "reconciliation_id": {
            "type": "string",
            "description": "The transaction identifier to track a payment request.",
            "example": "4123495123"
          },
          "aggregator": {
            "$ref": "#/components/schemas/Aggregator"
          },
          "scheme_transaction_link_id": {
            "type": "string",
            "description": "The scheme transaction link identifier."
          }
        },
        "description": "Use the processing object to influence or override the data sent during card processing"
      },
      "PaymentRequestSender": {
        "required": [
          "type"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/01_PaymentRequestIndividualSender"
          },
          {
            "$ref": "#/components/schemas/02_PaymentRequestCorporateSender"
          },
          {
            "$ref": "#/components/schemas/03_PaymentRequestInstrumentSender"
          }
        ],
        "properties": {
          "type": {
            "enum": [
              "individual",
              "corporate",
              "instrument"
            ],
            "type": "string",
            "description": "The sender type. If set to `instrument`, the sender information (name and address) will be retrieved from the payment instrument."
          },
          "reference": {
            "type": "string",
            "description": "The unique reference for the sender of the payment."
          }
        },
        "description": "Information about the sender of the payment's funds",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "individual": "#/components/schemas/01_PaymentRequestIndividualSender",
            "corporate": "#/components/schemas/02_PaymentRequestCorporateSender",
            "instrument": "#/components/schemas/03_PaymentRequestInstrumentSender"
          }
        }
      },
      "PaymentRequestSource": {
        "required": [
          "type"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/PaymentRequestCardSource"
          },
          {
            "$ref": "#/components/schemas/PaymentRequestWeChatPaySource"
          },
          {
            "$ref": "#/components/schemas/PaymentRequestVippsSource"
          },
          {
            "$ref": "#/components/schemas/PaymentRequestTwintSource"
          },
          {
            "$ref": "#/components/schemas/PaymentRequestTamaraSource"
          },
          {
            "$ref": "#/components/schemas/PaymentRequestStcPaySource"
          },
          {
            "$ref": "#/components/schemas/PaymentRequestSEPAV4Source"
          },
          {
            "$ref": "#/components/schemas/PaymentRequestBacsSource"
          },
          {
            "$ref": "#/components/schemas/PaymentRequestSequraSource"
          },
          {
            "$ref": "#/components/schemas/PaymentRequestQPaySource"
          },
          {
            "$ref": "#/components/schemas/PaymentRequestP24Source"
          },
          {
            "$ref": "#/components/schemas/PaymentRequestPlaidSource"
          },
          {
            "$ref": "#/components/schemas/PaymentRequestPayNowSource"
          },
          {
            "$ref": "#/components/schemas/PaymentRequestOctopusPaySource"
          },
          {
            "$ref": "#/components/schemas/PaymentRequestMultibancoSource"
          },
          {
            "$ref": "#/components/schemas/PaymentRequestMobilePaySource"
          },
          {
            "$ref": "#/components/schemas/PaymentRequestMBWaySource"
          },
          {
            "$ref": "#/components/schemas/PaymentRequestKnetSource"
          },
          {
            "$ref": "#/components/schemas/PaymentRequestIdealSource"
          },
          {
            "$ref": "#/components/schemas/PaymentRequestFawrySource"
          },
          {
            "$ref": "#/components/schemas/PaymentRequestEpsSource"
          },
          {
            "$ref": "#/components/schemas/PaymentRequestBizumSource"
          },
          {
            "$ref": "#/components/schemas/PaymentRequestBlikSource"
          },
          {
            "$ref": "#/components/schemas/PaymentRequestBancontactSource"
          },
          {
            "$ref": "#/components/schemas/PaymentRequestAlmaSource"
          },
          {
            "$ref": "#/components/schemas/PaymentRequestAlipayCnSource"
          },
          {
            "$ref": "#/components/schemas/PaymentRequestAlipayHkSource"
          },
          {
            "$ref": "#/components/schemas/PaymentRequestAlipayPlusSource"
          },
          {
            "$ref": "#/components/schemas/PaymentRequestDanaSource"
          },
          {
            "$ref": "#/components/schemas/PaymentRequestGcashSource"
          },
          {
            "$ref": "#/components/schemas/PaymentRequestKakaopaySource"
          },
          {
            "$ref": "#/components/schemas/PaymentRequestTngSource"
          },
          {
            "$ref": "#/components/schemas/PaymentRequestTruemoneySource"
          },
          {
            "$ref": "#/components/schemas/PaymentRequestAchSource"
          },
          {
            "$ref": "#/components/schemas/PaymentRequestTokenSource"
          },
          {
            "$ref": "#/components/schemas/PaymentRequestNetworkTokenSource"
          },
          {
            "$ref": "#/components/schemas/PaymentRequestIdSource"
          },
          {
            "$ref": "#/components/schemas/PaymentRequestCustomerSource"
          }
        ],
        "description": "The source of the payment",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "card": "#/components/schemas/PaymentRequestCardSource",
            "customer": "#/components/schemas/PaymentRequestCustomerSource",
            "id": "#/components/schemas/PaymentRequestIdSource",
            "network_token": "#/components/schemas/PaymentRequestNetworkTokenSource",
            "token": "#/components/schemas/PaymentRequestTokenSource",
            "ach": "#/components/schemas/PaymentRequestAchSource",
            "alipay_cn": "#/components/schemas/PaymentRequestAlipayCnSource",
            "alipay_hk": "#/components/schemas/PaymentRequestAlipayHkSource",
            "alipay_plus": "#/components/schemas/PaymentRequestAlipayPlusSource",
            "alma": "#/components/schemas/PaymentRequestAlmaSource",
            "bancontact": "#/components/schemas/PaymentRequestBancontactSource",
            "bizum": "#/components/schemas/PaymentRequestBizumSource",
            "blik": "#/components/schemas/PaymentRequestBlikSource",
            "dana": "#/components/schemas/PaymentRequestDanaSource",
            "eps": "#/components/schemas/PaymentRequestEpsSource",
            "fawry": "#/components/schemas/PaymentRequestFawrySource",
            "gcash": "#/components/schemas/PaymentRequestGcashSource",
            "ideal": "#/components/schemas/PaymentRequestIdealSource",
            "kakaopay": "#/components/schemas/PaymentRequestKakaopaySource",
            "knet": "#/components/schemas/PaymentRequestKnetSource",
            "mbway": "#/components/schemas/PaymentRequestMBWaySource",
            "mobilepay": "#/components/schemas/PaymentRequestMobilePaySource",
            "multibanco": "#/components/schemas/PaymentRequestMultibancoSource",
            "octopus": "#/components/schemas/PaymentRequestOctopusPaySource",
            "paynow": "#/components/schemas/PaymentRequestPayNowSource",
            "plaid": "#/components/schemas/PaymentRequestPlaidSource",
            "p24": "#/components/schemas/PaymentRequestP24Source",
            "qpay": "#/components/schemas/PaymentRequestQPaySource",
            "sequra": "#/components/schemas/PaymentRequestSequraSource",
            "sepa": "#/components/schemas/PaymentRequestSEPAV4Source",
            "bacs": "#/components/schemas/PaymentRequestBacsSource",
            "stcpay": "#/components/schemas/PaymentRequestStcPaySource",
            "swish": "#/components/schemas/PaymentRequestSwishSource",
            "tamara": "#/components/schemas/PaymentRequestTamaraSource",
            "tng": "#/components/schemas/PaymentRequestTngSource",
            "truemoney": "#/components/schemas/PaymentRequestTruemoneySource",
            "twint": "#/components/schemas/PaymentRequestTwintSource",
            "vipps": "#/components/schemas/PaymentRequestVippsSource",
            "wechatpay": "#/components/schemas/PaymentRequestWeChatPaySource"
          }
        }
      },
      "PaymentResponse": {
        "required": [
          "id",
          "action_id",
          "amount",
          "currency",
          "approved",
          "status",
          "response_code",
          "processed_on",
          "_links"
        ],
        "type": "object",
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentId"
              }
            ],
            "description": "The payment's unique identifier"
          },
          "action_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ActionId"
              }
            ],
            "description": "The unique identifier for the action performed against this payment"
          },
          "amount": {
            "type": "integer",
            "description": "The payment amount.",
            "example": 6540
          },
          "amount_requested": {
            "type": "integer",
            "description": "The full amount from the original authorization, if a partial authorization was requested and approved.",
            "example": 6540
          },
          "currency": {
            "maxLength": 3,
            "minLength": 3,
            "type": "string",
            "description": "The three-letter <a href=\"https://www.checkout.com/docs/resources/codes/currency-codes\" target=\"_blank\">ISO currency code</a> of the payment",
            "example": "USD"
          },
          "approved": {
            "type": "boolean",
            "description": "Whether or not the authorization or capture was successful",
            "example": true
          },
          "status": {
            "enum": [
              "Authorized",
              "Pending",
              "Card Verified",
              "Declined",
              "Retry Scheduled"
            ],
            "type": "string",
            "description": "The status of the payment",
            "example": "Authorized"
          },
          "auth_code": {
            "type": "string",
            "description": "The acquirer authorization code if the payment was authorized",
            "example": "643381"
          },
          "response_code": {
            "type": "string",
            "description": "The Gateway response code",
            "example": "10000"
          },
          "response_summary": {
            "type": "string",
            "description": "The Gateway response summary",
            "example": "Approved"
          },
          "expires_on": {
            "type": "string",
            "description": "The timestamp (ISO 8601 code) for when the authorization's validity period expires"
          },
          "3ds": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/3dsEnrollmentData"
              }
            ],
            "description": "Provides 3D Secure enrollment status if the payment was downgraded to non-3D Secure",
            "example": {
              "downgraded": true,
              "enrolled": "N"
            }
          },
          "risk": {
            "type": "object",
            "properties": {
              "flagged": {
                "type": "boolean",
                "description": "Whether or not the payment was flagged by a risk check",
                "default": false,
                "example": true
              },
              "score": {
                "maximum": 100,
                "minimum": 0,
                "type": "number",
                "description": "The risk score calculated by our Fraud Detection engine. Absent if not enough data provided.",
                "example": 22
              }
            },
            "description": "Returns the payment's risk assessment results"
          },
          "source": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentResponseSource"
              }
            ],
            "description": "The source of the payment"
          },
          "customer": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerResponse"
              }
            ],
            "description": "The customer associated with the payment, if provided in the request"
          },
          "balances": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentResponseBalances"
              }
            ],
            "description": "The payment balances"
          },
          "processed_on": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ServerTimestamp"
              }
            ],
            "description": "The date/time the payment was processed"
          },
          "reference": {
            "type": "string",
            "description": "Your reference for the payment",
            "example": "ORD-5023-4E89"
          },
          "subscription": {
            "$ref": "#/components/schemas/Subscription"
          },
          "processing": {
            "type": "object",
            "properties": {
              "retrieval_reference_number": {
                "type": "string",
                "description": "A unique identifier for the authorization that is submitted to the card scheme during processing",
                "example": "909913440644"
              },
              "acquirer_transaction_id": {
                "type": "string",
                "description": "A unique identifier for the transaction generated by the acquirer",
                "example": "440644309099499894406"
              },
              "recommendation_code": {
                "type": "string",
                "description": "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",
                "example": "02"
              },
              "scheme": {
                "type": "string",
                "description": "The scheme the transaction was processed with"
              },
              "partner_merchant_advice_code": {
                "type": "string",
                "description": "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. \n\nFor 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. \n\nFor declined transactions, the MAC will also let you know whether the payment can be retried, and how long you should wait before doing so.\n"
              },
              "partner_response_code": {
                "type": "string",
                "description": "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>. \n\nThis differs from the `recommendation_code` value, which is provided by Checkout.com and is standardized across all schemes.\n"
              },
              "partner_order_id": {
                "type": "string",
                "description": "Unique order identification of an Afterpay payment",
                "example": "5GK24544NA744002L"
              },
              "partner_payment_id": {
                "type": "string",
                "description": "Unique identification of a payment provided by partner"
              },
              "partner_status": {
                "type": "string",
                "description": "Status of a payment provided by partner"
              },
              "partner_transaction_id": {
                "type": "string",
                "description": "Unique transaction identification provided by partner"
              },
              "partner_error_codes": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Error codes provided by partner"
              },
              "partner_error_message": {
                "type": "string",
                "description": "Error description provided by partner"
              },
              "partner_authorization_code": {
                "type": "string",
                "description": "Authorization code provided by partner"
              },
              "partner_authorization_response_code": {
                "type": "string",
                "description": "Authorization response code provided by partner"
              },
              "surcharge_amount": {
                "minimum": 0,
                "type": "integer",
                "description": "Surcharge amount applied to the transaction in minor units",
                "format": "int64",
                "example": 200
              },
              "pan_type_processed": {
                "enum": [
                  "fpan",
                  "dpan"
                ],
                "type": "string",
                "description": "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": {
                "type": "boolean",
                "description": "Indicates whether the `fallback_source` field was used for the payment.",
                "example": false
              },
              "cko_network_token_available": {
                "type": "boolean",
                "description": "The flag indicating if Checkout Network Token was available for the payment",
                "example": false
              },
              "purchase_country": {
                "maxLength": 2,
                "type": "string",
                "description": "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>",
                "example": "GB"
              },
              "foreign_retailer_amount": {
                "minimum": 0,
                "type": "integer",
                "description": "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).",
                "example": 200
              },
              "scheme_merchant_id": {
                "type": "string",
                "description": "The merchant identifier that was configured with the scheme and used for the payment.",
                "example": "123456"
              },
              "reconciliation_id": {
                "type": "string",
                "description": "The transaction identifier to track a payment request.",
                "example": "4123495123"
              },
              "aggregator": {
                "$ref": "#/components/schemas/Aggregator"
              },
              "scheme_transaction_link_id": {
                "type": "string",
                "description": "The scheme transaction link identifier."
              }
            },
            "description": "Returns information related to the processing of the payment"
          },
          "eci": {
            "type": "string",
            "description": "The final Electronic Commerce Indicator (ECI) security level used to authorize the payment. Applicable for 3D Secure and network token payments",
            "example": "06"
          },
          "scheme_id": {
            "type": "string",
            "description": "The scheme transaction identifier",
            "example": "489341065491658"
          },
          "retry": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RetryPostResponse"
              }
            ],
            "description": "<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>\n"
          },
          "_links": {
            "minItems": 2,
            "required": [
              "self",
              "actions"
            ],
            "type": "object",
            "properties": {
              "self": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Link"
                  }
                ],
                "description": "The URI of the payment"
              },
              "actions": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Link"
                  }
                ],
                "description": "A link to the payment's associated actions"
              },
              "authorize": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Link"
                  }
                ],
                "description": "A link to increment the authorization, where applicable"
              },
              "void": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Link"
                  }
                ],
                "description": "A link to void the payment, where applicable"
              },
              "capture": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Link"
                  }
                ],
                "description": "A link to capture the payment, where applicable"
              },
              "refund": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Link"
                  }
                ],
                "description": "A link to refund the payment, where applicable"
              },
              "cancel": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Link"
                  }
                ],
                "description": "A link to cancel the upcoming scheduled retry, where applicable."
              }
            },
            "description": "The links related to the payment",
            "example": {
              "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"
              }
            }
          }
        },
        "additionalProperties": false,
        "description": "Payment Response"
      },
      "PaymentResponseBalances": {
        "type": "object",
        "properties": {
          "total_authorized": {
            "type": "integer",
            "description": "The total amount that has been authorized",
            "example": 6540
          },
          "total_voided": {
            "type": "integer",
            "description": "The total amount that has been voided",
            "example": 0
          },
          "available_to_void": {
            "type": "integer",
            "description": "The total amount that is still available for voiding",
            "example": 6540
          },
          "total_captured": {
            "type": "integer",
            "description": "The total amount that has been captured",
            "example": 0
          },
          "available_to_capture": {
            "type": "integer",
            "description": "The total amount that is still available for capture",
            "example": 6540
          },
          "total_refunded": {
            "type": "integer",
            "description": "The total amount that has been refunded",
            "example": 0
          },
          "available_to_refund": {
            "type": "integer",
            "description": "The total amount that is still available for refund",
            "example": 0
          }
        },
        "description": "The balances of the payment"
      },
      "PaymentResponseDestination": {
        "required": [
          "type"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/PaymentResponseBankAccountDestination"
          }
        ],
        "description": "Payment destination",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "bank_account": "#/components/schemas/PaymentResponseBankAccountDestination"
          }
        }
      },
      "PaymentResponseSource": {
        "required": [
          "type"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/PaymentResponseCardSource"
          },
          {
            "$ref": "#/components/schemas/PaymentDeclinedSourceResponse"
          }
        ],
        "description": "Payment source in /payments successfully created response",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "card": "#/components/schemas/PaymentResponseCardSource",
            "ach": "#/components/schemas/PaymentDeclinedSourceResponse",
            "alipay_cn": "#/components/schemas/PaymentDeclinedSourceResponse",
            "bank_account": "#/components/schemas/PaymentDeclinedSourceResponse",
            "sepa": "#/components/schemas/PaymentDeclinedSourceResponse",
            "bacs": "#/components/schemas/PaymentDeclinedSourceResponse"
          }
        }
      },
      "PaymentReversalAcceptedResponse": {
        "required": [
          "action_id"
        ],
        "type": "object",
        "properties": {
          "action_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ActionId"
              }
            ],
            "description": "The unique identifier for the payment reversal action."
          },
          "reference": {
            "type": "string",
            "description": "A unique reference for the payment reversal.",
            "example": "ORD-5023-4E89"
          },
          "action_type": {
            "type": "string",
            "description": "The payment action performed during the reversal. \nDetermined by the payment's state at the time of processing:\n - `Refund` if the payment has been fully or partially captured\n - `Void` if the payment is in an `Authorized` state.\n",
            "example": "Refund"
          },
          "_links": {
            "required": [
              "payment"
            ],
            "type": "object",
            "properties": {
              "payment": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Link"
                  },
                  {
                    "example": {
                      "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44"
                    }
                  }
                ],
                "description": "The URI of the payment to be reversed. \n\nYou can use this value to check the status of the payment reversal.\n"
              }
            },
            "description": "Links related to the payment reversal.",
            "readOnly": true
          }
        },
        "description": "Reversal response"
      },
      "PaymentReversalRequest": {
        "type": "object",
        "properties": {
          "reference": {
            "maxLength": 80,
            "type": "string",
            "description": "An internal reference to identify the payment reversal.\n\nFor American Express payment reversals, there is a 30-character limit.\n",
            "example": "ORD-5023-4E89"
          },
          "metadata": {
            "type": "object",
            "description": "Stores additional information about the transaction with custom fields.\n\nYou can only supply primitive data types with one level of depth. Fields of type `object` or `array` are not supported.\n",
            "example": {
              "coupon_code": "NY2018",
              "partner_id": 123989
            }
          }
        }
      },
      "PayoutBillingDescriptor": {
        "required": [
          "reference"
        ],
        "type": "object",
        "properties": {
          "reference": {
            "maxLength": 15,
            "minLength": 11,
            "type": "string",
            "description": "The reference shown on the beneficiary's bank statement.\nFormat – The length varies per beneficiary bank. In general, we recommend fewer than 11 characters.\nNote – References are not supported in the US.\n"
          }
        },
        "description": "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.\n"
      },
      "PayoutDetails": {
        "type": "object",
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentId"
              }
            ],
            "description": "Payment unique identifier"
          },
          "requested_on": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ServerTimestamp"
              }
            ],
            "description": "The date/time the payment was requested"
          },
          "source": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The payment source identifier, which can be used for subsequent payments",
                "example": "ca_y3oqhf46pyzuxjbcn2giaqnb44"
              },
              "type": {
                "type": "string",
                "description": "The payment source type. This is always `currency_account` for payouts.",
                "example": "currency_account"
              },
              "currency": {
                "maxLength": 3,
                "minLength": 3,
                "type": "string",
                "description": "The three-letter <a href=\"https://www.checkout.com/docs/resources/codes/currency-codes\" target=\"_blank\">ISO currency code</a> of the payout source",
                "example": "GBP"
              },
              "amount": {
                "type": "integer",
                "description": "The amount paid out, in minor units, from the source currency account.",
                "example": 1000
              }
            },
            "description": "The source of the payout"
          },
          "destination": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "description": "The payout destination type",
                "example": "bank_account"
              },
              "id": {
                "type": "string",
                "description": "The payment instrument identifier",
                "example": "src_4pakgjwmv5re5m5ivqohsqpxnm"
              }
            },
            "description": "The destination of the payout"
          },
          "amount": {
            "type": "integer",
            "description": "The original payout amount",
            "example": 1000
          },
          "currency": {
            "maxLength": 3,
            "minLength": 3,
            "type": "string",
            "description": "The three-letter <a href=\"https://www.checkout.com/docs/resources/codes/currency-codes\" target=\"_blank\">ISO currency code</a> of the payment",
            "example": "GBP"
          },
          "reference": {
            "type": "string",
            "description": "Your reference for the payout",
            "example": "PO-215-5721"
          },
          "billing_descriptor": {
            "type": "object",
            "properties": {
              "reference": {
                "type": "string",
                "description": "The reference that is displayed on the account holder's statement",
                "example": "Withdrawal"
              }
            },
            "description": "Details about the billing descriptor"
          },
          "status": {
            "enum": [
              "Pending",
              "Paid",
              "Declined",
              "Returned"
            ],
            "type": "string",
            "description": "The status of the payout",
            "example": "Pending"
          },
          "approved": {
            "type": "boolean",
            "description": "Whether the authorization was successful",
            "example": true
          },
          "sender": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentDetailsResponseSender"
              }
            ],
            "description": "Information about the sender of the payment's funds"
          },
          "instruction": {
            "type": "object",
            "properties": {
              "value_date": {
                "type": "string",
                "description": "The date (in ISO 8601 format) on which the recipient's account will be credited"
              },
              "purpose": {
                "type": "string",
                "description": "An optional description of the payout purpose, like `Insurance_claim` or `Remittance`"
              },
              "charge_bearer": {
                "enum": [
                  "OUR",
                  "SHA"
                ],
                "type": "string",
                "description": "Who should be charged the payout fee"
              },
              "repair": {
                "type": "boolean",
                "description": "Determines whether the payout details can be modified to attempt to prevent a payout from being returned"
              },
              "scheme": {
                "enum": [
                  "swift",
                  "local",
                  "instant"
                ],
                "type": "string",
                "description": "The preferred payment scheme or network the bank transfer will be sent through"
              },
              "quote_id": {
                "type": "string",
                "description": "The FX quote identifier"
              }
            },
            "description": "Details about the instruction for payouts to bank accounts <br><i>The fields will depend on which ones were included in the request</i>.",
            "example": {
              "value_date": "2020-06-13T01:49:19.1864428Z",
              "purpose": "Wallet Withdrawal",
              "quote_id": "qte_xrhaw53z5m6ehbbxz2n6n5lk74"
            }
          },
          "_links": {
            "type": "object",
            "properties": {
              "self": {
                "type": "object",
                "properties": {
                  "href": {
                    "type": "string",
                    "description": "The link URL",
                    "example": "https://{prefix}.api.sandbox.checkout.com/payments/pay_gwlowf7eap7uzm4cyaaqoq62au"
                  }
                },
                "description": "The direct link to the payout"
              },
              "actions": {
                "type": "object",
                "properties": {
                  "href": {
                    "type": "string",
                    "description": "The link URL",
                    "example": "https://{prefix}.api.sandbox.checkout.com/payments/pay_gwlowf7eap7uzm4cyaaqoq62au/actions"
                  }
                },
                "description": "The link to the list of actions related to the payout"
              }
            },
            "description": "Links related to the payouts"
          }
        },
        "description": "Payment response"
      },
      "PayoutSender": {
        "required": [
          "type",
          "reference"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/03_PayoutRequestInstrumentSender"
          },
          {
            "$ref": "#/components/schemas/01_PayoutRequestIndividualSender"
          },
          {
            "$ref": "#/components/schemas/02_PayoutRequestCorporateSender"
          }
        ],
        "properties": {
          "type": {
            "enum": [
              "instrument",
              "individual",
              "corporate"
            ],
            "type": "string",
            "description": "The sender type. Given it is set to `instrument`, then the sender parameters are retrieved from the destination."
          },
          "reference": {
            "type": "string",
            "description": "A unique reference to the underlying client's customer. A global KYC requirement."
          }
        },
        "description": "The ultimate sender of the payout – that is, your customer.\nNot supported for Platform or Direct Seller Checkout.com clients. \n",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "instrument": "#/components/schemas/03_PayoutRequestInstrumentSender",
            "individual": "#/components/schemas/01_PayoutRequestIndividualSender",
            "corporate": "#/components/schemas/02_PayoutRequestCorporateSender"
          }
        }
      },
      "PlanInstallment": {
        "title": "Installment",
        "type": "object",
        "allOf": [
          {
            "properties": {
              "financing": {
                "type": "boolean",
                "description": "If the installment plan has financing.",
                "default": false,
                "example": false
              }
            }
          },
          {
            "$ref": "#/components/schemas/PaymentPlan"
          }
        ],
        "description": "The information to process a installment payment request. To be used when the `payment_type` is `installment`."
      },
      "PlanRecurring": {
        "title": "Recurring",
        "type": "object",
        "allOf": [
          {
            "properties": {
              "amount_variability": {
                "enum": [
                  "Fixed",
                  "Variable"
                ],
                "type": "string",
                "description": "Specifies whether the amount is fixed or variable for each recurrence.",
                "example": "Variable"
              }
            }
          },
          {
            "$ref": "#/components/schemas/PaymentPlan"
          }
        ],
        "description": "The information to process a recurring payment request. To be used when the `payment_type` is `recurring`."
      },
      "ProcessingData": {
        "type": "object",
        "properties": {
          "preferred_scheme": {
            "enum": [
              "mastercard",
              "visa",
              "cartes_bancaires"
            ],
            "type": "string",
            "description": "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).",
            "example": "cartes_bancaires"
          },
          "app_id": {
            "type": "string",
            "description": "The customer's application identifier.",
            "example": "com.iap.linker_portal"
          },
          "airline_data": {
            "$ref": "#/components/schemas/AirlineData"
          },
          "accommodation_data": {
            "$ref": "#/components/schemas/AccommodationData"
          },
          "partner_customer_id": {
            "type": "string",
            "description": "The customer's ID on the partner platform.",
            "example": "2102209000001106125F8"
          },
          "partner_payment_id": {
            "type": "string",
            "description": "The partner-originated unique payment identifier",
            "example": "440644309099499894406"
          },
          "partner_code": {
            "maxLength": 6,
            "minLength": 6,
            "pattern": "^\\d{6}$",
            "type": "string",
            "description": "The 6-digit partner code returned by the payment provider. Returned when `source.type` is `blik`.\n",
            "example": "999111"
          },
          "failure_code": {
            "type": "string",
            "description": "A high-level failure category returned by the payment provider when a payment is declined or fails. Not all payment methods return this field.\n",
            "example": "partner_error"
          },
          "partner_response_code": {
            "type": "string",
            "description": "The raw response code returned by the payment provider when a payment is declined or fails. Not all payment methods return this field.\n",
            "example": "ER_WRONG_TICKET"
          },
          "tax_amount": {
            "type": "number",
            "description": "Total tax amount of the order.",
            "example": 1000
          },
          "locale": {
            "maxLength": 10,
            "minLength": 2,
            "pattern": "^[a-z]{2}(?:-[A-Z][a-z]{3})?(?:-(?:[A-Z]{2}))?$",
            "type": "string",
            "description": "The language and region of the customer. ISO 639-2 language code, its value consists of language-country",
            "example": "en-US"
          },
          "retrieval_reference_number": {
            "type": "string",
            "description": "A unique identifier for the authorization provided by partner",
            "example": "909913440644"
          },
          "partner_order_id": {
            "type": "string",
            "description": "The Klarna order ID associated with the payment."
          },
          "partner_status": {
            "type": "string",
            "description": "Status of a payment provided by partner"
          },
          "partner_transaction_id": {
            "type": "string",
            "description": "Unique transaction identification provided by partner"
          },
          "partner_error_codes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The list of error codes that led the payment to fail or be declined, as given by the payment provider"
          },
          "partner_merchant_advice_code": {
            "type": "string",
            "description": "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. \n\nFor 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. \n\nFor declined transactions, the MAC will also let you know whether the payment can be retried, and how long you should wait before doing so.\n",
            "example": "24"
          },
          "partner_error_message": {
            "type": "string",
            "description": "Error description provided by partner"
          },
          "partner_authorization_code": {
            "type": "string",
            "description": "Authorization code provided by partner"
          },
          "partner_authorization_response_code": {
            "type": "string",
            "description": "Authorization response code provided by partner"
          },
          "partner_fraud_status": {
            "type": "string",
            "description": "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": {
            "enum": [
              "fpan",
              "dpan"
            ],
            "type": "string",
            "description": "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": {
            "type": "boolean",
            "description": "Indicates whether the `fallback_source` field was used for the payment.",
            "example": false
          },
          "custom_payment_method_ids": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "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": {
            "type": "boolean",
            "description": "Indicates whether the payment is an [Account Funding Transaction](https://www.checkout.com/docs/payments/manage-payments/account-funding-transactions)"
          },
          "merchant_category_code": {
            "type": "string",
            "description": "Four-digit code for retail financial services expressed in ISO 18245 format, classifying the types of goods or services you provide.",
            "example": "5311"
          },
          "scheme_merchant_id": {
            "type": "string",
            "description": "The merchant identifier that was configured with the scheme and used for the payment.",
            "example": "123456"
          },
          "scheme": {
            "type": "string",
            "description": "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.",
            "readOnly": true,
            "example": "ACCEL"
          },
          "scheme_transaction_link_id": {
            "type": "string",
            "description": "The scheme transaction link identifier."
          }
        },
        "description": "Returns information related to the processing of the payment"
      },
      "RefundAcceptedResponse": {
        "required": [
          "action_id"
        ],
        "type": "object",
        "properties": {
          "action_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ActionId"
              }
            ],
            "description": "The unique identifier for the refund action"
          },
          "reference": {
            "type": "string",
            "description": "Your reference for the refund request",
            "example": "ORD-5023-4E89"
          },
          "_links": {
            "minItems": 2,
            "required": [
              "payment"
            ],
            "type": "object",
            "properties": {
              "payment": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Link"
                  }
                ],
                "description": "The URI of the payment to be refunded. Use this to check the status of the payment",
                "example": {
                  "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44"
                }
              }
            },
            "description": "The links related to the refund",
            "readOnly": true
          }
        },
        "description": "Refund response"
      },
      "RefundBankAccountDestination": {
        "required": [
          "country",
          "account_number",
          "bank_code",
          "account_holder"
        ],
        "type": "object",
        "allOf": [
          {
            "type": "object",
            "properties": {
              "account_type": {
                "enum": [
                  "savings",
                  "current",
                  "cash"
                ],
                "type": "string",
                "description": "The type of account to which the refund will be sent.",
                "example": "savings"
              },
              "account_number": {
                "type": "string",
                "description": "The account number.",
                "example": "13654567455"
              },
              "bank_code": {
                "type": "string",
                "description": "The code that identifies the bank.",
                "example": "123-456"
              },
              "branch_code": {
                "type": "string",
                "description": "The code that identifies the bank branch.",
                "example": "6443"
              },
              "iban": {
                "type": "string",
                "description": "The account's International Bank Account Number (IBAN).",
                "example": "HU93116000060000000012345676"
              },
              "bban": {
                "type": "string",
                "description": "The account's Basic Bank Account Number (BBAN). \n\nThe BBAN is a combination of the account number and the bank or branch code, or both.\n",
                "example": "3704 0044 0532 0130 00"
              },
              "swift_bic": {
                "type": "string",
                "description": "An 8 or 11-digit code that identifies the bank or bank branch.",
                "example": "37040044"
              },
              "country": {
                "type": "string",
                "description": "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.",
                "example": "GB"
              },
              "account_holder": {
                "$ref": "#/components/schemas/RefundDestinationAccountHolder"
              },
              "bank": {
                "$ref": "#/components/schemas/BankDetails"
              }
            }
          }
        ],
        "description": "The destination of the refund. \n\nThis field is required for giropay and EPS refunds.\n"
      },
      "RefundDestinationAccountHolder": {
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "individual",
              "corporate",
              "government"
            ],
            "type": "string",
            "description": "The account holder type.",
            "example": "individual"
          },
          "first_name": {
            "type": "string",
            "description": "The account holder's first name.",
            "example": "John"
          },
          "last_name": {
            "type": "string",
            "description": "The account holder's last name.",
            "example": "Smith"
          },
          "company_name": {
            "type": "string",
            "description": "The corporate account holder's company name.",
            "example": "Test company"
          },
          "tax_id": {
            "type": "string",
            "description": "The account holder's tax number or reference.",
            "example": "123456"
          },
          "date_of_birth": {
            "type": "string",
            "description": "The account holder's date of birth,  in the format `YYYY-MM-DD`.",
            "format": "date",
            "example": "1986-01-01T00:00:00.0000000"
          },
          "country_of_birth": {
            "type": "string",
            "description": "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.",
            "example": "GB"
          },
          "residential_status": {
            "enum": [
              "resident",
              "non_resident"
            ],
            "type": "string",
            "description": "The account holder's residential status.",
            "example": "resident"
          },
          "billing_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "The account holder's billing address."
          },
          "phone": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PhoneNumber"
              }
            ],
            "description": "The account holder's phone number."
          },
          "identification": {
            "$ref": "#/components/schemas/AccountHolderIdentification"
          },
          "email": {
            "type": "string",
            "description": "The account holder's email address.",
            "format": "email",
            "example": "test.user@checkout.com"
          }
        },
        "description": "The account holder details."
      },
      "RefundRequest": {
        "type": "object",
        "properties": {
          "amount": {
            "minimum": 0,
            "type": "integer",
            "description": "The amount to refund. If not specified, the full payment amount will be refunded.\n",
            "example": 6540
          },
          "reference": {
            "maxLength": 80,
            "type": "string",
            "description": "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.",
            "example": "ORD-5023-4E89"
          },
          "amount_allocations": {
            "$ref": "#/components/schemas/AmountAllocations"
          },
          "capture_action_id": {
            "type": "string",
            "description": "The Checkout.com action ID of the capture you want to refund. Only for PayPal and Riverty.",
            "example": "act_fd3h6evhpn3uxdoqbuu3lqnqbm"
          },
          "items": {
            "$ref": "#/components/schemas/Items"
          },
          "destination": {
            "$ref": "#/components/schemas/RefundBankAccountDestination"
          },
          "metadata": {
            "type": "object",
            "description": "A set of key-value pairs to attach to the authorization request. You can use this to store additional information in a structured format. \n\nThe `metadata` object only supports primitive data types. Objects and arrays are not supported.\n",
            "example": {
              "coupon_code": "NY2018",
              "partner_id": 123989
            }
          }
        }
      },
      "01_PayoutRequestIndividualAccountHolder": {
        "title": "individual",
        "required": [
          "type",
          "first_name",
          "last_name",
          "billing_address"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "individual",
              "corporate",
              "government"
            ],
            "type": "string",
            "description": "The type of the legal account holder.",
            "example": "individual"
          },
          "first_name": {
            "type": "string",
            "description": "The <b>legal</b> first name of the account holder.\n",
            "example": "John"
          },
          "last_name": {
            "type": "string",
            "description": "The <b>legal</b> last name of the account holder.\n",
            "example": "Smith"
          },
          "tax_id": {
            "type": "string",
            "description": "The <b>legal</b> account holder's tax number or reference.",
            "example": "123456"
          },
          "date_of_birth": {
            "type": "string",
            "description": "The account holder's date of birth in a `YYYY-MM-DD` format. Strongly recommended where available.",
            "format": "date",
            "example": "1986-01-01T00:00:00.0000000"
          },
          "country_of_birth": {
            "type": "string",
            "description": "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.",
            "example": "GB"
          },
          "residential_status": {
            "enum": [
              "resident",
              "non_resident"
            ],
            "type": "string",
            "description": "The account holder's residential status.",
            "example": "resident"
          },
          "billing_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "The current billing address associated with the destination account. Required for payouts to individuals. Strongly recommended when available."
          },
          "phone": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PhoneNumber"
              }
            ],
            "description": "The phone number of the account holder."
          },
          "identification": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "description": "The document type",
                "example": "SSN"
              },
              "issuing_country": {
                "type": "string",
                "description": "The country where the document was issued"
              },
              "number": {
                "type": "string",
                "description": "The document number"
              }
            },
            "description": "The account holder's government document identification. For example, the social security number (SSN)."
          }
        },
        "description": "Store a previously tokenized instrument"
      },
      "02_PayoutRequestCorporateAccountHolder": {
        "title": "corporate",
        "required": [
          "type",
          "company_name"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "individual",
              "corporate",
              "government"
            ],
            "type": "string",
            "description": "The type of the legal account holder.",
            "example": "corporate"
          },
          "company_name": {
            "type": "string",
            "description": "The full <b>legal</b> name of a registered company that holds the account.\n",
            "example": "Test company"
          },
          "tax_id": {
            "type": "string",
            "description": "The <b>legal</b> account holder's tax number or reference.",
            "example": "123456"
          },
          "billing_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "The current billing address associated with the destination account. Strongly recommended when available."
          }
        },
        "description": "Store a previously tokenized instrument"
      },
      "03_PayoutRequestGovernmentAccountHolder": {
        "title": "government",
        "required": [
          "type",
          "company_name"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "individual",
              "corporate",
              "government"
            ],
            "type": "string",
            "description": "The type of the legal account holder.",
            "example": "government"
          },
          "company_name": {
            "type": "string",
            "description": "The full <b>legal</b> name of a registered company that holds the account.\n",
            "example": "Test company"
          },
          "tax_id": {
            "type": "string",
            "description": "The <b>legal</b> account holder's tax number or reference.",
            "example": "123456"
          },
          "billing_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "The current billing address associated with the destination account. Strongly recommended when available."
          }
        },
        "description": "Store a previously tokenized instrument"
      },
      "PaymentBankAccountDestination": {
        "title": "bank_account",
        "required": [
          "country",
          "account_type",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The payout destination type.",
            "example": "bank_account"
          },
          "country": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string",
            "description": "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.",
            "example": "GB"
          },
          "iban": {
            "type": "string",
            "description": "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.",
            "example": "HU93116000060000000012345676"
          },
          "account_number": {
            "type": "string",
            "description": "Number (which can contain letters) that identifies the local account.",
            "example": "13654567455"
          },
          "bank_code": {
            "type": "string",
            "description": "Code that identifies the bank. Also referred as Routing Number in the United States.",
            "example": "123-456"
          },
          "branch_code": {
            "type": "string",
            "description": "Code that identifies the bank branch.",
            "example": "6443"
          },
          "bban": {
            "type": "string",
            "description": "The combination of bank code and/or branch code and account number.",
            "example": "3704 0044 0532 0130 00"
          },
          "swift_bic": {
            "type": "string",
            "description": "8 or 11 character code which identifies the bank or bank branch.",
            "example": "37040044"
          },
          "account_type": {
            "enum": [
              "savings",
              "current",
              "cash"
            ],
            "type": "string",
            "description": "The type of the bank account. <b>Note:</b> that some beneficiary banks do not accept payouts to savings accounts.",
            "example": "savings"
          },
          "account_holder": {
            "$ref": "#/components/schemas/AccountHolder"
          }
        },
        "description": "An existing payment instrument."
      },
      "PaymentRequestIdDestination": {
        "title": "id",
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The payout destination type.",
            "example": "id"
          },
          "id": {
            "pattern": "^(src)_(\\w{26})$",
            "type": "string",
            "description": "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>",
            "example": "src_wmlfc3zyhqzehihu7giusaaawu"
          }
        },
        "description": "An existing payment instrument."
      },
      "01_PaymentRequestIndividualSender": {
        "title": "individual",
        "required": [
          "type",
          "first_name",
          "last_name",
          "address"
        ],
        "properties": {
          "type": {
            "enum": [
              "individual",
              "corporate",
              "instrument"
            ],
            "type": "string",
            "description": "The sender type. If set to `instrument`, the sender information (name and address) will be retrieved from the payment instrument.",
            "example": "individual"
          },
          "reference": {
            "type": "string",
            "description": "The unique reference for the sender of the payment."
          },
          "first_name": {
            "type": "string",
            "description": "The sender's first name",
            "example": "John"
          },
          "last_name": {
            "type": "string",
            "description": "The sender's last name",
            "example": "Jones"
          },
          "date_of_birth": {
            "maxLength": 10,
            "type": "string",
            "description": "The sender's date of birth (yyyy-mm-dd)",
            "format": "date",
            "example": "1985-05-15T00:00:00.0000000"
          },
          "address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "The sender's address"
          },
          "identification": {
            "type": "object",
            "properties": {
              "type": {
                "enum": [
                  "passport",
                  "driving_licence",
                  "national_id"
                ],
                "type": "string",
                "description": "The type of identification used to identify the sender",
                "example": "driving_licence"
              },
              "number": {
                "type": "string",
                "description": "The identification number",
                "example": "1234"
              },
              "issuing_country": {
                "type": "string",
                "description": "The two-letter ISO country code of the country that issued the identification",
                "example": "GT"
              }
            }
          }
        },
        "description": "Store a previously tokenized instrument"
      },
      "01_PayoutRequestIndividualSender": {
        "title": "individual",
        "required": [
          "type",
          "reference",
          "first_name",
          "last_name",
          "address"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "instrument",
              "individual",
              "corporate"
            ],
            "type": "string",
            "description": "The sender type. Given it is set to `instrument`, then the sender parameters are retrieved from the destination.",
            "example": "individual"
          },
          "reference": {
            "type": "string",
            "description": "A unique reference to the underlying client's customer. A global KYC requirement."
          },
          "first_name": {
            "type": "string",
            "description": "The <b>legal</b> first name of the ultimate sender.",
            "example": "John"
          },
          "last_name": {
            "type": "string",
            "description": "The <b>legal</b> last name of the ultimate sender.",
            "example": "Jones"
          },
          "dob": {
            "maxLength": 10,
            "type": "string",
            "description": "The sender's date of birth in a `YYYY-MM-DD` format. Strongly recommended where available.",
            "format": "date",
            "example": "1985-05-15T00:00:00.0000000"
          },
          "address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "The sender's address."
          },
          "identification": {
            "type": "object",
            "properties": {
              "type": {
                "enum": [
                  "passport",
                  "driving_licence",
                  "national_id"
                ],
                "type": "string",
                "description": "The type of identification used to identify the sender.",
                "example": "driving_licence"
              },
              "number": {
                "type": "string",
                "description": "The identification number.",
                "example": "1234"
              },
              "issuing_country": {
                "type": "string",
                "description": "The two-letter <a href=\"https://www.checkout.com/docs/resources/codes/country-codes\" target=\"_blank\">ISO country code</a> that issued the identification.",
                "example": "GT"
              }
            }
          }
        },
        "description": "Store a previously tokenized instrument"
      },
      "02_PaymentRequestCorporateSender": {
        "title": "corporate",
        "required": [
          "type",
          "company_name",
          "address"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "individual",
              "corporate",
              "instrument"
            ],
            "type": "string",
            "description": "The sender type. If set to `instrument`, the sender information (name and address) will be retrieved from the payment instrument.",
            "example": "corporate"
          },
          "reference": {
            "type": "string",
            "description": "The unique reference for the sender of the payment."
          },
          "company_name": {
            "type": "string",
            "description": "The sender's company name"
          },
          "address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "The sender's address"
          }
        },
        "description": "Store a previously tokenized instrument"
      },
      "02_PayoutRequestCorporateSender": {
        "title": "corporate",
        "required": [
          "type",
          "reference",
          "company_name",
          "address"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "instrument",
              "individual",
              "corporate"
            ],
            "type": "string",
            "description": "The sender type. Given it is set to `instrument`, then the sender parameters are retrieved from the destination.",
            "example": "corporate"
          },
          "reference": {
            "type": "string",
            "description": "A unique reference to the underlying client's customer. A global KYC requirement."
          },
          "company_name": {
            "type": "string",
            "description": "The sender's company name"
          },
          "address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "The sender's address"
          }
        },
        "description": "Store a previously tokenized instrument"
      },
      "03_PaymentRequestInstrumentSender": {
        "title": "instrument",
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "individual",
              "corporate",
              "instrument"
            ],
            "type": "string",
            "description": "The sender type. If set to `instrument`, the sender information (name and address) will be retrieved from the payment instrument.",
            "example": "instrument"
          },
          "reference": {
            "type": "string",
            "description": "The unique reference for the sender of the payment."
          }
        },
        "description": "Store a previously tokenized instrument"
      },
      "03_PayoutRequestInstrumentSender": {
        "title": "instrument",
        "required": [
          "type",
          "reference"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "instrument",
              "individual",
              "corporate"
            ],
            "type": "string",
            "description": "The sender type. Given it is set to `instrument`, then the sender parameters are retrieved from the destination.",
            "example": "instrument"
          },
          "reference": {
            "type": "string",
            "description": "A unique reference to the underlying client's customer. A global KYC requirement."
          }
        },
        "description": "Store a previously tokenized instrument"
      },
      "PaymentRequestAchSource": {
        "title": "ach",
        "required": [
          "type",
          "account_type",
          "account_holder",
          "account_number",
          "bank_code",
          "country"
        ],
        "type": "object",
        "properties": {
          "account_type": {
            "enum": [
              "savings",
              "checking",
              "cash"
            ],
            "type": "string",
            "description": "The type of Direct Debit account",
            "example": "savings"
          },
          "country": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string",
            "description": "The source country",
            "example": "US"
          },
          "account_number": {
            "maxLength": 17,
            "minLength": 4,
            "type": "string",
            "description": "The account number of the Direct Debit account",
            "example": "136549956"
          },
          "bank_code": {
            "maxLength": 9,
            "minLength": 8,
            "type": "string",
            "description": "The bank code of the Direct Debit account",
            "example": "021000021"
          },
          "account_holder": {
            "$ref": "#/components/schemas/AccountHolderAch"
          },
          "type": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentRequestSourceType"
              },
              {
                "enum": [
                  "ach"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type.",
            "example": "ach"
          }
        },
        "description": "An ach payment source"
      },
      "PaymentRequestAlipayCnSource": {
        "title": "alipay_cn",
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentRequestSourceType"
              },
              {
                "enum": [
                  "alipay_cn"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type.",
            "example": "alipay_cn"
          }
        },
        "description": "Alipay CN Source"
      },
      "PaymentRequestAlipayHkSource": {
        "title": "alipay_hk",
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentRequestSourceType"
              },
              {
                "enum": [
                  "alipay_hk"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type.",
            "example": "alipay_hk"
          }
        },
        "description": "Alipay HK Source"
      },
      "PaymentRequestAlipayPlusSource": {
        "title": "alipay_plus",
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentRequestSourceType"
              },
              {
                "enum": [
                  "alipay_plus"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type.",
            "example": "alipay_plus"
          }
        },
        "description": "Alipay Plus Source"
      },
      "PaymentRequestAlmaSource": {
        "title": "alma",
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentRequestSourceType"
              },
              {
                "enum": [
                  "alma"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type.",
            "example": "alma"
          },
          "billing_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              },
              {
                "required": [
                  "address_line1",
                  "city",
                  "country"
                ],
                "type": "object"
              }
            ],
            "description": "The billing address of the cardholder"
          }
        },
        "description": "Alma payment source"
      },
      "PaymentRequestBacsSource": {
        "title": "bacs",
        "required": [
          "type",
          "id"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentRequestSourceType"
              },
              {
                "enum": [
                  "bacs"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type.",
            "example": "bacs"
          },
          "id": {
            "pattern": "^(src)_(\\w{26})$",
            "type": "string",
            "description": "The Bacs Direct Debit instrument ID.",
            "example": "src_wmlfc3zyhqzehihu7giusaaawu"
          }
        },
        "description": "Bacs Direct Debit Source"
      },
      "PaymentRequestBancontactSource": {
        "title": "bancontact",
        "required": [
          "type",
          "payment_country",
          "account_holder_name"
        ],
        "type": "object",
        "properties": {
          "payment_country": {
            "maxLength": 2,
            "minLength": 2,
            "enum": [
              "BE"
            ],
            "type": "string",
            "description": "The 2-letter ISO country code of the country in which the payment instrument is issued/operated."
          },
          "account_holder_name": {
            "maxLength": 100,
            "minLength": 3,
            "type": "string",
            "description": "The account holder."
          },
          "billing_descriptor": {
            "maxLength": 65534,
            "type": "string",
            "description": "Payment billing descriptor."
          },
          "language": {
            "maxLength": 2,
            "minLength": 2,
            "enum": [
              "fr",
              "nl",
              "de",
              "en"
            ],
            "type": "string",
            "description": "The 2-letter ISO language code that should be preferred when presenting payment pages to the consumer.",
            "default": "fr",
            "example": "nl"
          },
          "type": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentRequestSourceType"
              },
              {
                "enum": [
                  "bancontact"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type.",
            "example": "bancontact"
          }
        },
        "description": "Bancontact Source"
      },
      "PaymentRequestBizumSource": {
        "title": "bizum",
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentRequestSourceType"
              },
              {
                "enum": [
                  "bizum"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type.",
            "example": "bizum"
          }
        },
        "description": "Bizum Source"
      },
      "PaymentRequestBlikSource": {
        "title": "blik",
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentRequestSourceType"
              },
              {
                "enum": [
                  "blik"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type.",
            "example": "blik"
          },
          "partner_agreement_id": {
            "maxLength": 64,
            "type": "string",
            "description": "The Blik PAYID identifying an external partner agreement created with another PSP.\n\nOnly used when processing merchant-initiated recurring payments (`merchant_initiated: true`) without a stored Checkout.com source.\n",
            "example": "blik_payid_123456789"
          }
        },
        "description": "Blik source. Use this to process Blik payments in Poland.\n\nWhen `source.type` is `blik`:\n  - `currency` must be `PLN`.\n  - `amount` must not exceed `5000000` (in the [minor currency unit](https://www.checkout.com/docs/resources/calculating-the-amount)).\n  - `reference` is limited to 35 characters.\n\nFor 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`).\n\nFor merchant-initiated recurring payments (`merchant_initiated: true`), use either:\n  - `source.type: id` with a `source.id` value returned from a previous Blik recurring payment, or\n  - `source.type: blik` with `partner_agreement_id` set to an external Blik PAYID created with another PSP.\n"
      },
      "PaymentRequestCardSource": {
        "title": "card",
        "required": [
          "type",
          "number",
          "expiry_month",
          "expiry_year"
        ],
        "type": "object",
        "properties": {
          "number": {
            "type": "string",
            "description": "The card number (without separators)",
            "example": "4543474002249996"
          },
          "expiry_month": {
            "maximum": 12,
            "minimum": 1,
            "type": "integer",
            "description": "The expiry month of the card",
            "example": 6
          },
          "expiry_year": {
            "type": "integer",
            "description": "4-digit expiry year of the card",
            "example": 2030
          },
          "name": {
            "type": "string",
            "description": "The name of the cardholder",
            "example": "Bruce Wayne"
          },
          "cvv": {
            "maxLength": 4,
            "minLength": 3,
            "type": "string",
            "description": "The card verification value/code. 3 digits, except for American Express (4 digits)",
            "example": "956"
          },
          "stored": {
            "type": "boolean",
            "description": "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.",
            "default": false,
            "example": true
          },
          "store_for_future_use": {
            "type": "boolean",
            "description": "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.",
            "default": true,
            "example": false
          },
          "billing_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "The billing address of the cardholder"
          },
          "phone": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PhoneNumber"
              }
            ],
            "description": "The phone number of the cardholder"
          },
          "account_holder": {
            "required": [
              "type"
            ],
            "type": "object",
            "description": "Information about the account holder of the card",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "individual": "#/components/schemas/01_RequestSources_AccountHolderIndividual",
                "corporate": "#/components/schemas/02_RequestSources_AccountHolderCorporate",
                "government": "#/components/schemas/03_RequestSources_AccountHolderGovernment"
              }
            }
          },
          "allow_update": {
            "type": "boolean",
            "description": "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.",
            "default": true,
            "example": false
          },
          "type": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentRequestSourceType"
              },
              {
                "enum": [
                  "card"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type.",
            "example": "card"
          }
        },
        "description": "A card payment source"
      },
      "PaymentRequestCustomerSource": {
        "title": "customer",
        "required": [
          "type",
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^(cus)_(\\w{26})$",
            "type": "string",
            "description": "The customer's identifier.",
            "example": "cus_y3oqhf46pyzuxjbcn2giaqnb44"
          },
          "billing_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "The cardholder's billing address."
          },
          "phone": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PhoneNumber"
              }
            ],
            "description": "The cardholder's phone number."
          },
          "account_holder": {
            "type": "object",
            "description": "Information about the account holder of the customer's default payment instrument",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "individual": "#/components/schemas/01_RequestSources_AccountHolderIndividual",
                "corporate": "#/components/schemas/02_RequestSources_AccountHolderCorporate",
                "government": "#/components/schemas/03_RequestSources_AccountHolderGovernment"
              }
            }
          },
          "allow_update": {
            "type": "boolean",
            "description": "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.",
            "default": true,
            "example": false
          },
          "type": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentRequestSourceType"
              },
              {
                "enum": [
                  "customer"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type.",
            "example": "customer"
          }
        },
        "description": "A customer source"
      },
      "PaymentRequestDanaSource": {
        "title": "dana",
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentRequestSourceType"
              },
              {
                "enum": [
                  "dana"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type.",
            "example": "dana"
          }
        },
        "description": "Dana Source"
      },
      "PaymentRequestEpsSource": {
        "title": "eps",
        "required": [
          "type",
          "purpose"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentRequestSourceType"
              },
              {
                "enum": [
                  "eps"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type.",
            "example": "eps"
          },
          "purpose": {
            "maxLength": 27,
            "type": "string",
            "description": "Purpose of the payment as appearing on customer's bank statement."
          },
          "account_holder": {
            "$ref": "#/components/schemas/AccountHolderEps"
          }
        },
        "description": "EPS Source"
      },
      "PaymentRequestFallbackSource": {
        "required": [
          "type",
          "number",
          "expiry_month",
          "expiry_year"
        ],
        "type": "object",
        "properties": {
          "number": {
            "type": "string",
            "description": "The card number (without separators)",
            "example": "4543474002249996"
          },
          "expiry_month": {
            "maximum": 12,
            "minimum": 1,
            "type": "integer",
            "description": "The expiry month of the card",
            "example": 6
          },
          "expiry_year": {
            "type": "integer",
            "description": "4-digit expiry year of the card",
            "example": 2030
          },
          "name": {
            "type": "string",
            "description": "The name of the cardholder",
            "example": "Bruce Wayne"
          },
          "cvv": {
            "maxLength": 4,
            "minLength": 3,
            "type": "string",
            "description": "The card verification value/code. 3 digits, except for American Express (4 digits)",
            "example": "956"
          },
          "stored": {
            "type": "boolean",
            "description": "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.",
            "default": false,
            "example": true
          },
          "store_for_future_use": {
            "type": "boolean",
            "description": "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.",
            "default": true,
            "example": false
          },
          "billing_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "The billing address of the cardholder"
          },
          "phone": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PhoneNumber"
              }
            ],
            "description": "The phone number of the cardholder"
          },
          "account_holder": {
            "type": "object",
            "description": "Information about the account holder of the card",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "individual": "#/components/schemas/01_RequestSources_AccountHolderIndividual",
                "corporate": "#/components/schemas/02_RequestSources_AccountHolderCorporate",
                "government": "#/components/schemas/03_RequestSources_AccountHolderGovernment"
              }
            }
          },
          "allow_update": {
            "type": "boolean",
            "description": "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.",
            "default": true,
            "example": false
          },
          "type": {
            "type": "string",
            "allOf": [
              {
                "enum": [
                  "card"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type.",
            "example": "card"
          }
        },
        "description": "A card payment source"
      },
      "PaymentRequestFawrySource": {
        "title": "fawry",
        "required": [
          "type",
          "description",
          "products",
          "customer_email",
          "customer_mobile"
        ],
        "type": "object",
        "properties": {
          "description": {
            "maxLength": 265,
            "type": "string",
            "description": "The payment description."
          },
          "customer_profile_id": {
            "type": "string",
            "description": "The customer's id within merchant's system."
          },
          "customer_email": {
            "type": "string",
            "description": "The customer's email address."
          },
          "customer_mobile": {
            "type": "string",
            "description": "The customer's mobile phone number."
          },
          "expires_on": {
            "type": "string",
            "description": "The date on which the payment expires.",
            "format": "date-time"
          },
          "products": {
            "type": "array",
            "items": {
              "required": [
                "product_id",
                "quantity",
                "price",
                "description"
              ],
              "type": "object",
              "properties": {
                "product_id": {
                  "maxLength": 265,
                  "type": "string",
                  "description": "The id of the product."
                },
                "quantity": {
                  "type": "integer",
                  "description": "The quantity of the product."
                },
                "price": {
                  "type": "integer",
                  "description": "The price of the item.  Expressed using Checkout.com's standard rules for calculating payment values."
                },
                "description": {
                  "maxLength": 265,
                  "type": "string",
                  "description": "The description of the product."
                }
              }
            },
            "description": "List of Products"
          },
          "type": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentRequestSourceType"
              },
              {
                "enum": [
                  "fawry"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type.",
            "example": "fawry"
          }
        },
        "description": "Fawry Source"
      },
      "PaymentRequestGcashSource": {
        "title": "gcash",
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentRequestSourceType"
              },
              {
                "enum": [
                  "gcash"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type.",
            "example": "gcash"
          }
        },
        "description": "GCash Source"
      },
      "PaymentRequestIdealSource": {
        "title": "ideal",
        "required": [
          "type",
          "description"
        ],
        "type": "object",
        "properties": {
          "description": {
            "maxLength": 35,
            "type": "string",
            "description": "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.\n"
          },
          "language": {
            "maxLength": 2,
            "type": "string",
            "description": "This field enables the issuer's site to select the consumer's preferred language.\nFor 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'). \n\nIf 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.\n"
          },
          "type": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentRequestSourceType"
              },
              {
                "enum": [
                  "ideal"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type.",
            "example": "ideal"
          }
        },
        "description": "iDEAL Source"
      },
      "PaymentRequestIdSource": {
        "title": "id",
        "required": [
          "type",
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^(src)_(\\w{26})$",
            "type": "string",
            "description": "The payment source identifier (e.g., a card source identifier)",
            "example": "src_wmlfc3zyhqzehihu7giusaaawu"
          },
          "cvv": {
            "pattern": "^tok_(\\w{26})$|^\\d{3,4}$",
            "type": "string",
            "description": "The card verification value (CVV) or code, if the source is a card. The expected format varies:\n\n- for American Express cards, this should be a 4-digit code\n- for other cards, this should be a 3-digit code\n- for Checkout.com CVV tokens, this should be an ID value with the prefix `tok_`\n",
            "example": "956"
          },
          "payment_method": {
            "type": "string",
            "description": "The payment method. Payment Method required for ACH payment",
            "example": "ach"
          },
          "billing_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "The cardholder's billing address."
          },
          "phone": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PhoneNumber"
              }
            ],
            "description": "The cardholder's phone number."
          },
          "account_holder": {
            "type": "object",
            "description": "Information about the account holder of the payment instrument",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "individual": "#/components/schemas/01_RequestSources_AccountHolderIndividual",
                "corporate": "#/components/schemas/02_RequestSources_AccountHolderCorporate",
                "government": "#/components/schemas/03_RequestSources_AccountHolderGovernment"
              }
            }
          },
          "allow_update": {
            "type": "boolean",
            "description": "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.",
            "default": true,
            "example": false
          },
          "type": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentRequestSourceType"
              },
              {
                "enum": [
                  "id"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type.",
            "example": "id"
          }
        },
        "description": "An existing payment source. Payment Method required for ACH payment"
      },
      "PaymentRequestKakaopaySource": {
        "title": "kakaopay",
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentRequestSourceType"
              },
              {
                "enum": [
                  "kakaopay"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type.",
            "example": "kakaopay"
          }
        },
        "description": "Kakaopay Source"
      },
      "PaymentRequestKnetSource": {
        "title": "knet",
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentRequestSourceType"
              },
              {
                "enum": [
                  "knet"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type.",
            "example": "knet"
          },
          "language": {
            "maxLength": 2,
            "enum": [
              "ar",
              "en"
            ],
            "type": "string",
            "description": "Required for KNet Gateway payments.\n\nThis field enables the issuer's site to select the consumer's preferred language.\nFor example, the language selected on the merchant's site – if the issuer's site supports it.\nCode list in accordance with ISO 639-1. (Arabic = 'ar', English = 'en').\nNote that 'ar' corresponds to 'ARA' and 'en' to 'USA'. Both values accepted by KNet Gateway.\n"
          },
          "user_defined_field1": {
            "maxLength": 255,
            "type": "string",
            "description": "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": {
            "maxLength": 255,
            "type": "string",
            "description": "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": {
            "maxLength": 255,
            "type": "string",
            "description": "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": {
            "maxLength": 255,
            "type": "string",
            "description": "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": {
            "maxLength": 255,
            "type": "string",
            "description": "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": {
            "pattern": "^[0-9]{8}$",
            "type": "string",
            "description": "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": {
            "maxLength": 45,
            "type": "string",
            "description": "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": {
            "enum": [
              "applepay"
            ],
            "type": "string",
            "description": "The token type. This field is always `applepay` for KNet Apple Pay payments."
          },
          "token_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TokenData"
              }
            ],
            "description": "The Apple Pay payment token. Required for Apple Pay payments."
          },
          "payment_method_details": {
            "type": "object",
            "properties": {
              "display_name": {
                "type": "string",
                "description": "The payment type display name.",
                "example": "Visa 1234"
              },
              "type": {
                "type": "string",
                "description": "The payment method type.",
                "example": "debit"
              },
              "network": {
                "type": "string",
                "description": "The card network.",
                "example": "Visa"
              }
            },
            "description": "The payment data received in the Apple Pay payload. Required for Apple Pay payments."
          }
        },
        "description": "KNet Source"
      },
      "PaymentRequestMBWaySource": {
        "title": "mbway",
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentRequestSourceType"
              },
              {
                "enum": [
                  "mbway"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type.",
            "example": "mbway"
          }
        },
        "description": "MBWay payment request source"
      },
      "PaymentRequestMobilePaySource": {
        "title": "mobilepay",
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentRequestSourceType"
              },
              {
                "enum": [
                  "mobilepay"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type.",
            "example": "mobilepay"
          }
        },
        "description": "MobilePay Request Source"
      },
      "PaymentRequestMultibancoSource": {
        "title": "multibanco",
        "required": [
          "type",
          "payment_country",
          "account_holder_name"
        ],
        "type": "object",
        "properties": {
          "payment_country": {
            "maxLength": 2,
            "minLength": 2,
            "enum": [
              "PT"
            ],
            "type": "string",
            "description": "The 2-letter ISO country code of the country in which the payment instrument is issued/operated."
          },
          "account_holder_name": {
            "maxLength": 100,
            "minLength": 3,
            "type": "string",
            "description": "The account holder."
          },
          "billing_descriptor": {
            "maxLength": 65534,
            "type": "string",
            "description": "Payment billing descriptor."
          },
          "type": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentRequestSourceType"
              },
              {
                "enum": [
                  "multibanco"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type.",
            "example": "multibanco"
          }
        },
        "description": "Multibanco Source"
      },
      "PaymentRequestNetworkTokenSource": {
        "title": "network_token",
        "required": [
          "type",
          "token",
          "expiry_month",
          "expiry_year",
          "token_type",
          "cryptogram",
          "eci"
        ],
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "description": "The network token PAN",
            "example": "4543474002249996"
          },
          "expiry_month": {
            "minimum": 1,
            "maxLength": 2,
            "minLength": 1,
            "type": "integer",
            "description": "The expiry month of the token",
            "example": 6
          },
          "expiry_year": {
            "maxLength": 4,
            "minLength": 4,
            "type": "integer",
            "description": "The expiry year of the token",
            "example": 2025
          },
          "token_type": {
            "enum": [
              "vts",
              "mdes",
              "applepay",
              "googlepay"
            ],
            "type": "string",
            "description": "The type of token"
          },
          "cryptogram": {
            "maxLength": 100,
            "type": "string",
            "description": "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",
            "example": "hv8mUFzPzRZoCAAAAAEQBDMAAAA="
          },
          "eci": {
            "maxLength": 2,
            "type": "string",
            "description": "The Electronic Commerce Indicator (ECI) security level associated with the token. Optional if `previous_payment_id` is specified and `3ds.enabled` is false\n",
            "example": "05"
          },
          "stored": {
            "type": "boolean",
            "description": "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.",
            "default": false,
            "example": true
          },
          "store_for_future_use": {
            "type": "boolean",
            "description": "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.",
            "default": true,
            "example": false
          },
          "name": {
            "type": "string",
            "description": "The customer's name",
            "example": "Bruce Wayne"
          },
          "cvv": {
            "maxLength": 4,
            "minLength": 3,
            "type": "string",
            "description": "The card verification value/code. 3 digits, except for American Express (4 digits)",
            "example": "956"
          },
          "billing_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "The customer's billing address"
          },
          "phone": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PhoneNumber"
              }
            ],
            "description": "The customer's phone number"
          },
          "account_holder": {
            "type": "object",
            "description": "Information about the account holder of the card",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "individual": "#/components/schemas/01_RequestSources_AccountHolderIndividual",
                "corporate": "#/components/schemas/02_RequestSources_AccountHolderCorporate",
                "government": "#/components/schemas/03_RequestSources_AccountHolderGovernment"
              }
            }
          },
          "type": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentRequestSourceType"
              },
              {
                "enum": [
                  "network_token"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type.",
            "example": "network_token"
          }
        },
        "description": "A network token payment source"
      },
      "PaymentRequestOctopusPaySource": {
        "title": "octopus",
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentRequestSourceType"
              },
              {
                "enum": [
                  "octopus"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type.",
            "example": "octopus"
          }
        },
        "description": "Octopus Pay Source"
      },
      "PaymentRequestP24Source": {
        "title": "p24",
        "required": [
          "type",
          "payment_country",
          "account_holder_name",
          "account_holder_email"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentRequestSourceType"
              },
              {
                "enum": [
                  "p24"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type.",
            "example": "p24"
          },
          "payment_country": {
            "maxLength": 2,
            "minLength": 2,
            "enum": [
              "PL"
            ],
            "type": "string",
            "description": "The 2-letter ISO country code of the country in which the payment instrument is issued/operated."
          },
          "account_holder_name": {
            "maxLength": 100,
            "minLength": 3,
            "type": "string",
            "description": "The account holder."
          },
          "account_holder_email": {
            "maxLength": 254,
            "type": "string",
            "description": "RFC-compliant email address of the account holder."
          },
          "billing_descriptor": {
            "maxLength": 65534,
            "type": "string",
            "description": "Payment billing descriptor."
          }
        },
        "description": "P24 Source"
      },
      "PaymentRequestPayNowSource": {
        "title": "paynow",
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentRequestSourceType"
              },
              {
                "enum": [
                  "paynow"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type.",
            "example": "paynow"
          }
        },
        "description": "PayNow Request Source"
      },
      "PaymentRequestPlaidSource": {
        "title": "plaid",
        "required": [
          "type",
          "token",
          "account_holder"
        ],
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "description": "The `processor_token` returned from Plaid’s `/processor/token/create` endpoint. \n\nIn the sandbox environment, this token will have the format `processor-sandbox-xxx`.\n"
          },
          "account_holder": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AccountHolder"
              }
            ],
            "description": "The account holder details."
          },
          "type": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentRequestSourceType"
              },
              {
                "enum": [
                  "plaid"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type.",
            "example": "plaid"
          }
        },
        "description": "A Plaid source."
      },
      "PaymentRequestQPaySource": {
        "title": "qpay",
        "required": [
          "type",
          "description"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentRequestSourceType"
              },
              {
                "enum": [
                  "qpay"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type.",
            "example": "qpay"
          },
          "quantity": {
            "minimum": 1,
            "type": "integer",
            "description": "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": {
            "type": "string",
            "description": "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": {
            "type": "string",
            "description": "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": {
            "maxLength": 32,
            "type": "string",
            "description": "Alphanumeric value representing the national ID of the customer performing the transaction. The maximum allowed length of this property is 32."
          }
        },
        "description": "QPay Source"
      },
      "PaymentRequestSEPAV4Source": {
        "title": "sepa",
        "required": [
          "type",
          "country",
          "account_number",
          "currency",
          "account_holder"
        ],
        "type": "object",
        "properties": {
          "country": {
            "type": "string",
            "description": "The account's country, as an ISO 3166-1 alpha-2 code.",
            "example": "FR"
          },
          "account_number": {
            "type": "string",
            "description": "The account holder's IBAN.",
            "example": "FR7630006000011234567890189"
          },
          "currency": {
            "type": "string",
            "description": "The account holder's account currency.",
            "example": "EUR"
          },
          "mandate_id": {
            "type": "string",
            "description": "The ID of the mandate.",
            "example": "123456"
          },
          "mandate_type": {
            "enum": [
              "Core",
              "B2B"
            ],
            "type": "string",
            "description": "The type of mandate."
          },
          "date_of_signature": {
            "type": "string",
            "description": "The date the mandate was signed, in the format yyyy-MM-dd",
            "example": "2022-08-02"
          },
          "account_holder": {
            "required": [
              "billing_address"
            ],
            "type": "object",
            "properties": {
              "first_name": {
                "maxLength": 50,
                "type": "string",
                "description": "The account holder's first name.",
                "example": "John"
              },
              "last_name": {
                "maxLength": 50,
                "type": "string",
                "description": "The account holder's last name.",
                "example": "Wick"
              },
              "company_name": {
                "maxLength": 50,
                "type": "string",
                "description": "The account holder's company name.",
                "example": "Checkout.com"
              },
              "type": {
                "enum": [
                  "Individual",
                  "Corporate"
                ],
                "type": "string",
                "description": "The type of account holder"
              },
              "billing_address": {
                "required": [
                  "address_line1",
                  "address_line2",
                  "city",
                  "zip",
                  "country"
                ],
                "type": "object",
                "properties": {
                  "address_line1": {
                    "type": "string",
                    "description": "The account holder's street name.",
                    "example": "Evergreen Terrace"
                  },
                  "address_line2": {
                    "maxLength": 10,
                    "type": "string",
                    "description": "The account holder's street number.",
                    "example": "742"
                  },
                  "city": {
                    "maxLength": 35,
                    "type": "string",
                    "description": "The account holder's city.",
                    "example": "Paris"
                  },
                  "zip": {
                    "maxLength": 16,
                    "type": "string",
                    "description": "The account holder's zip code.",
                    "example": "75000"
                  },
                  "country": {
                    "maxLength": 2,
                    "type": "string",
                    "description": "The account holder's country, as an ISO 3166-1 alpha-2 code.",
                    "example": "FR"
                  }
                },
                "description": "The account holder's billing address."
              }
            },
            "description": "The account holder's personal information."
          },
          "type": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentRequestSourceType"
              },
              {
                "enum": [
                  "sepa"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type.",
            "example": "sepa"
          }
        },
        "description": "SEPA DD Source"
      },
      "PaymentRequestSequraSource": {
        "title": "sequra",
        "required": [
          "type",
          "billing_address"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentRequestSourceType"
              },
              {
                "enum": [
                  "sequra"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type.",
            "example": "sequra"
          },
          "billing_address": {
            "required": [
              "address_line1",
              "city",
              "state",
              "country",
              "zip"
            ],
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "The billing address of the cardholder"
          }
        },
        "description": "A seQura payment source"
      },
      "PaymentRequestSourceType": {
        "type": "string",
        "description": "Ordered list of payment request source types used for discriminators"
      },
      "PaymentRequestStcPaySource": {
        "title": "stcpay",
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentRequestSourceType"
              },
              {
                "enum": [
                  "stcpay"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type.",
            "example": "stcpay"
          }
        },
        "description": "STC Pay request source"
      },
      "PaymentRequestSwishSource": {
        "title": "swish",
        "required": [
          "type",
          "payment_country",
          "account_holder"
        ],
        "type": "object",
        "properties": {
          "payment_country": {
            "maxLength": 2,
            "minLength": 2,
            "enum": [
              "SE"
            ],
            "type": "string",
            "description": "The 2-letter ISO country code of the country in which the payment instrument is issued or operated."
          },
          "account_holder": {
            "required": [
              "first_name",
              "last_name"
            ],
            "type": "object",
            "properties": {
              "first_name": {
                "maxLength": 50,
                "type": "string",
                "description": "The account holder's first name"
              },
              "last_name": {
                "maxLength": 50,
                "type": "string",
                "description": "The account holder's last name"
              }
            },
            "description": "Information about the account holder's details"
          },
          "billing_descriptor": {
            "required": [
              "name"
            ],
            "type": "object",
            "properties": {
              "name": {
                "maxLength": 120,
                "type": "string",
                "description": "A description for the payment, which displays on the customer's statement"
              }
            },
            "description": "Payment billing descriptor"
          },
          "type": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentRequestSourceType"
              },
              {
                "enum": [
                  "swish"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type.",
            "example": "swish"
          }
        },
        "description": "Swish source"
      },
      "PaymentRequestTamaraSource": {
        "title": "tamara",
        "required": [
          "type",
          "billing_address"
        ],
        "type": "object",
        "properties": {
          "billing_address": {
            "required": [
              "address_line1",
              "city",
              "country"
            ],
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "The billing address of the cardholder"
          },
          "type": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentRequestSourceType"
              },
              {
                "enum": [
                  "tamara"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type.",
            "example": "tamara"
          }
        },
        "description": "A Tamara payment source"
      },
      "PaymentRequestTngSource": {
        "title": "tng",
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentRequestSourceType"
              },
              {
                "enum": [
                  "tng"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type.",
            "example": "tng"
          }
        },
        "description": "TNG Source"
      },
      "PaymentRequestTokenSource": {
        "title": "token",
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentRequestSourceType"
              },
              {
                "enum": [
                  "token"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type.",
            "example": "token"
          },
          "token": {
            "pattern": "^(tok)_(\\w{26})$",
            "type": "string",
            "description": "The Checkout.com token (e.g., a card token)",
            "example": "tok_ubfj2q76miwundwlk72vxt2i7q"
          },
          "billing_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "The customer's billing address. This will override the billing address specified during tokenization"
          },
          "phone": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PhoneNumber"
              }
            ],
            "description": "The customer's phone number. This will override the phone number specified during tokenization"
          },
          "store_for_future_use": {
            "type": "boolean",
            "description": "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.",
            "default": true,
            "example": false
          },
          "account_holder": {
            "type": "object",
            "description": "Information about the account holder of the card",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "individual": "#/components/schemas/01_RequestSources_AccountHolderIndividual",
                "corporate": "#/components/schemas/02_RequestSources_AccountHolderCorporate",
                "government": "#/components/schemas/03_RequestSources_AccountHolderGovernment"
              }
            }
          }
        },
        "description": "A token payment source"
      },
      "PaymentRequestTruemoneySource": {
        "title": "truemoney",
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentRequestSourceType"
              },
              {
                "enum": [
                  "truemoney"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type.",
            "example": "truemoney"
          }
        },
        "description": "TrueMoney Source"
      },
      "PaymentRequestTwintSource": {
        "title": "twint",
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentRequestSourceType"
              },
              {
                "enum": [
                  "twint"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type.",
            "example": "twint"
          }
        },
        "description": "Twint Request Source"
      },
      "PaymentRequestVippsSource": {
        "title": "vipps",
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentRequestSourceType"
              },
              {
                "enum": [
                  "vipps"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type.",
            "example": "vipps"
          }
        },
        "description": "Vipps Request Source"
      },
      "PaymentRequestWeChatPaySource": {
        "title": "wechatpay",
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "billing_address": {
            "type": "object",
            "properties": {
              "address_line1": {
                "type": "string",
                "description": "The first line of the address",
                "example": "150 Kennedy Road"
              },
              "address_line2": {
                "type": "string",
                "description": "The second line of the address",
                "example": "Acacia Building"
              },
              "city": {
                "type": "string",
                "description": "The address city",
                "example": "Wan Chai"
              },
              "state": {
                "type": "string",
                "description": "The address state",
                "example": "Hong Kong"
              },
              "zip": {
                "type": "number",
                "description": "The address zip/postal code",
                "example": 42345
              },
              "country": {
                "type": "string",
                "description": "The two-letter ISO country code of the address",
                "example": "HK"
              }
            }
          },
          "type": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentRequestSourceType"
              },
              {
                "enum": [
                  "wechatpay"
                ],
                "type": "string"
              }
            ],
            "description": "The payment source type.",
            "example": "wechatpay"
          }
        }
      },
      "BankPayoutRequestCurrencyAccountSource": {
        "title": "currency_account",
        "required": [
          "type",
          "id"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The payout source type.",
            "example": "entity"
          },
          "id": {
            "maxLength": 29,
            "minLength": 29,
            "pattern": "^(ca)_(\\w{26})$",
            "type": "string",
            "description": "The currency account's identifier. <br><i>Its holding currency must match the payout's `currency`</i>.",
            "example": "ca_y3oqhf46pyzuxjbcn2giaqnb44"
          }
        },
        "description": "A currency account source."
      },
      "BankPayoutRequestEntitySource": {
        "title": "entity",
        "required": [
          "type",
          "id"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The payout source type.",
            "example": "entity"
          },
          "id": {
            "pattern": "^(ent)_(\\w{26})$",
            "type": "string",
            "description": "The entity or sub-entity's identifier, only applies to Platform Clients.",
            "example": "ent_w4jelhppmfiufdnatam37wrfc4"
          }
        },
        "description": "A currency account source."
      },
      "01_RequestSources_AccountHolderIndividual": {
        "title": "individual",
        "required": [
          "type",
          "first_name",
          "last_name"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The card account holder type\n",
            "example": "individual"
          },
          "first_name": {
            "maxLength": 35,
            "type": "string",
            "description": "The card account holder's first name\n\n*A valid and legal name must be populated in this field. The populated value cannot be only one character or all non-alphabet.*\n"
          },
          "middle_name": {
            "maxLength": 35,
            "type": "string",
            "description": "The card account holder's middle name\n\n***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)\n"
          },
          "last_name": {
            "maxLength": 35,
            "type": "string",
            "description": "The card account holder's last name\n\n*A valid and legal name must be populated in this field. The populated value cannot be only one character or all non-alphabet.*\n"
          },
          "account_name_inquiry": {
            "type": "boolean",
            "description": "Whether the ANI (account name inquiry) check should be performed with the scheme (Visa or MasterCard)\n"
          }
        },
        "description": "Information about the individual account holder of the card"
      },
      "02_RequestSources_AccountHolderCorporate": {
        "title": "corporate",
        "required": [
          "type",
          "company_name"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The card account holder type",
            "example": "corporate"
          },
          "company_name": {
            "maxLength": 35,
            "type": "string",
            "description": "The card account holder's company name\n\n*A valid and legal name must be populated in this field. The populated value cannot be only one character or all non-alphabet.*\n"
          },
          "account_name_inquiry": {
            "type": "boolean",
            "description": "Whether the ANI (account name inquiry) check should be performed with the scheme (Visa or MasterCard)\n"
          }
        },
        "description": "Information about the corporate account holder of the card"
      },
      "03_RequestSources_AccountHolderGovernment": {
        "title": "government",
        "required": [
          "type",
          "company_name"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The card account holder type",
            "example": "government"
          },
          "company_name": {
            "maxLength": 35,
            "type": "string",
            "description": "The card account holder's company name\n\n*A valid and legal name must be populated in this field. The populated value cannot be only one character or all non-alphabet.*\n"
          },
          "account_name_inquiry": {
            "type": "boolean",
            "description": "Whether the ANI (account name inquiry) check should be performed with the scheme (Visa or MasterCard)\n"
          }
        },
        "description": "Information about the government account holder of the card"
      },
      "PaymentResponseBankAccountDestination": {
        "title": "bank_account",
        "required": [
          "type",
          "id"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "bank_account"
            ],
            "type": "string",
            "description": "The payment destination type.\n",
            "example": "bank_account"
          },
          "id": {
            "pattern": "^(src)_(\\w{26})$",
            "type": "string",
            "description": "The payment instrument identifier"
          }
        },
        "description": "A bank account payment destination"
      },
      "01_PaymentResponseIndividualSender": {
        "title": "individual",
        "required": [
          "type",
          "first_name",
          "last_name",
          "address"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "individual",
              "corporate",
              "instrument"
            ],
            "type": "string",
            "description": "The type of sender",
            "example": "individual"
          },
          "reference": {
            "type": "string",
            "description": "The sender's reference for the payout",
            "example": "8285282045818"
          },
          "first_name": {
            "type": "string",
            "description": "The sender's first name",
            "example": "John"
          },
          "last_name": {
            "type": "string",
            "description": "The sender's last name",
            "example": "Jones"
          },
          "address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "The sender's address"
          }
        },
        "description": "Store a previously tokenized instrument"
      },
      "02_PaymentResponseCorporateSender": {
        "title": "corporate",
        "required": [
          "type",
          "company_name"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "individual",
              "corporate",
              "instrument"
            ],
            "type": "string",
            "description": "The type of sender",
            "example": "corporate"
          },
          "reference": {
            "type": "string",
            "description": "The sender's reference for the payout",
            "example": "8285282045818"
          },
          "company_name": {
            "type": "string",
            "description": "The sender's company name"
          },
          "address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "The sender's address"
          }
        },
        "description": "Store a previously tokenized instrument"
      },
      "03_PaymentResponseInstrumentSender": {
        "title": "instrument",
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "individual",
              "corporate",
              "instrument"
            ],
            "type": "string",
            "description": "The type of sender",
            "example": "instrument"
          },
          "reference": {
            "type": "string",
            "description": "The sender's reference for the payout",
            "example": "8285282045818"
          }
        },
        "description": "Store a previously tokenized instrument"
      },
      "PaymentDeclinedSourceResponse": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^(src)_(\\w{26})$",
            "type": "string",
            "description": "The payment instrument identifier"
          },
          "type": {
            "enum": [
              "card",
              "ach",
              "alipay_cn",
              "bank_account",
              "sepa",
              "bacs"
            ],
            "type": "string",
            "description": "The type of payment source"
          }
        },
        "description": "A source-based APM Declined payment source response"
      },
      "PaymentResponseCardSource": {
        "title": "card",
        "required": [
          "type",
          "expiry_month",
          "expiry_year",
          "last4",
          "fingerprint",
          "bin"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "card"
            ],
            "type": "string",
            "description": "The payment source type.",
            "example": "card"
          },
          "id": {
            "type": "string",
            "description": "The payment source identifier that can be used for subsequent payments. For new sources, this will only be returned if the payment was approved",
            "example": "src_nwd3m4in3hkuddfpjsaevunhdy"
          },
          "billing_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "The payment source owner's billing address"
          },
          "phone": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PhoneNumber"
              }
            ],
            "description": "The payment source owner's phone number"
          },
          "expiry_month": {
            "minimum": 1,
            "maxLength": 2,
            "minLength": 1,
            "type": "integer",
            "description": "The expiry month",
            "example": 6
          },
          "expiry_year": {
            "maxLength": 4,
            "minLength": 4,
            "type": "integer",
            "description": "The expiry year",
            "example": 2025
          },
          "name": {
            "type": "string",
            "description": "The cardholder's name",
            "example": "Bruce Wayne"
          },
          "scheme": {
            "type": "string",
            "description": "The card scheme",
            "example": "VISA"
          },
          "scheme_local": {
            "type": "string",
            "description": "Replaced by `local_schemes`\nThe local co-branded card scheme.\n",
            "example": "Cartes_Bancaires",
            "deprecated": true
          },
          "local_schemes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The local co-branded card schemes.",
            "example": [
              "cartes_bancaires",
              "visa"
            ]
          },
          "last4": {
            "type": "string",
            "description": "The last four digits of the card number",
            "example": "9996"
          },
          "fingerprint": {
            "type": "string",
            "description": "Uniquely identifies this particular card number. You can use this to compare cards across customers.",
            "example": "F639CAB2745BEE4140BF86DF6B6D6"
          },
          "bin": {
            "maxLength": 8,
            "type": "string",
            "description": "The card issuer's Bank Identification Number (BIN)",
            "example": "45434748"
          },
          "card_type": {
            "enum": [
              "CREDIT",
              "DEBIT",
              "PREPAID",
              "CHARGE",
              "DEFERRED DEBIT"
            ],
            "type": "string",
            "description": "The card type",
            "example": "CREDIT"
          },
          "card_category": {
            "enum": [
              "CONSUMER",
              "COMMERCIAL"
            ],
            "type": "string",
            "description": "The card category",
            "example": "CONSUMER"
          },
          "card_wallet_type": {
            "enum": [
              "applepay",
              "googlepay"
            ],
            "type": "string",
            "description": "The card wallet type"
          },
          "issuer": {
            "type": "string",
            "description": "The name of the card issuer",
            "example": "GOTHAM STATE BANK"
          },
          "issuer_country": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string",
            "description": "The card issuer's country (<a href=\"https://www.checkout.com/docs/resources/codes/country-codes\" target=\"_blank\">two-letter ISO code</a>)",
            "example": "US"
          },
          "product_id": {
            "type": "string",
            "description": "The issuer/card scheme product identifier",
            "example": "F"
          },
          "product_type": {
            "type": "string",
            "description": "The issuer/card scheme product type",
            "example": "CLASSIC"
          },
          "avs_check": {
            "type": "string",
            "description": "The Address Verification System check result",
            "example": "S"
          },
          "cvv_check": {
            "type": "string",
            "description": "The card verification value (CVV) check result",
            "example": "Y"
          },
          "payment_account_reference": {
            "type": "string",
            "description": "A unique reference to the underlying card for network tokens (e.g., Apple Pay, Google Pay)",
            "example": "EUNIX9AX7THOOJIEJ2AP6OOFAHGH4"
          },
          "encrypted_card_number": {
            "type": "string",
            "description": "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>.",
            "example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUz..."
          },
          "account_update_status": {
            "enum": [
              "card_updated",
              "card_expiry_updated",
              "card_closed",
              "contact_cardholder"
            ],
            "type": "string",
            "description": "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>.",
            "example": "card_updated"
          },
          "account_update_failure_code": {
            "type": "string",
            "description": "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.",
            "example": "VAU009"
          },
          "account_holder": {
            "type": "object",
            "description": "Information about the account holder of the card",
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "individual": "#/components/schemas/01_ResponseSources_AccountHolderIndividual",
                "corporate": "#/components/schemas/02_ResponseSources_AccountHolderCorporate",
                "government": "#/components/schemas/03_ResponseSources_AccountHolderGovernment"
              }
            }
          }
        },
        "description": "A card payment source"
      },
      "01_ResponseSources_AccountHolderIndividual": {
        "title": "individual",
        "required": [
          "type",
          "first_name",
          "last_name",
          "account_name_inquiry"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "individual"
            ],
            "type": "string",
            "description": "The type of the card account holder",
            "example": "individual"
          },
          "first_name": {
            "maxLength": 35,
            "type": "string",
            "description": "The card account holder's first name\n\n*A valid and legal name must be populated in this field. The populated value cannot be only one character or all non-alphabet.*\n"
          },
          "middle_name": {
            "maxLength": 35,
            "type": "string",
            "description": "The card account holder's middle name\n\n***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)\n"
          },
          "last_name": {
            "maxLength": 35,
            "type": "string",
            "description": "The card account holder's last name\n\n*A valid and legal name must be populated in this field. The populated value cannot be only one character or all non-alphabet.*\n"
          },
          "account_name_inquiry": {
            "enum": [
              "full_match",
              "partial_match",
              "no_match",
              "not_performed",
              "not_supported"
            ],
            "type": "string",
            "description": "The result of the Account Name Inquiry check.\n"
          },
          "account_name_inquiry_details": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/ResponseSources_AccountHolderIndividual_Names_Enquiry"
              }
            ],
            "description": "Details of the Account Name Inquiry check."
          }
        },
        "description": "Information about the individual that owns the account."
      },
      "02_ResponseSources_AccountHolderCorporate": {
        "title": "corporate",
        "required": [
          "type",
          "company_name",
          "account_name_inquiry"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "corporate"
            ],
            "type": "string",
            "description": "The type of the card account holder",
            "example": "corporate"
          },
          "company_name": {
            "maxLength": 35,
            "type": "string",
            "description": "The card account holder's company name\n\n*A valid and legal name must be populated in this field. The populated value cannot be only one character or all non-alphabet.*\n"
          },
          "account_name_inquiry": {
            "enum": [
              "full_match",
              "partial_match",
              "no_match",
              "not_performed",
              "not_supported"
            ],
            "type": "string",
            "description": "The Account Name Inquiry check result.\n"
          }
        },
        "description": "Information about the corporate account holder of the card"
      },
      "03_ResponseSources_AccountHolderGovernment": {
        "title": "government",
        "required": [
          "type",
          "company_name",
          "account_name_inquiry"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "government"
            ],
            "type": "string",
            "description": "The type of the card account holder",
            "example": "government"
          },
          "company_name": {
            "maxLength": 35,
            "type": "string",
            "description": "The card account holder's company name\n\n*A valid and legal name must be populated in this field. The populated value cannot be only one character or all non-alphabet.*\n"
          },
          "account_name_inquiry": {
            "enum": [
              "full_match",
              "partial_match",
              "no_match",
              "not_performed",
              "not_supported"
            ],
            "type": "string",
            "description": "The Account Name Inquiry check result.\n"
          }
        },
        "description": "Information about the government account holder of the card"
      },
      "ResponseSources_AccountHolderIndividual_Names_Enquiry": {
        "type": "object",
        "properties": {
          "first_name": {
            "enum": [
              "full_match",
              "partial_match",
              "no_match"
            ],
            "type": "string",
            "description": "The result of the first name check.\n"
          },
          "middle_name": {
            "enum": [
              "full_match",
              "partial_match",
              "no_match"
            ],
            "type": "string",
            "description": "The result of the middle name check.\n"
          },
          "last_name": {
            "enum": [
              "full_match",
              "partial_match",
              "no_match"
            ],
            "type": "string",
            "description": "The result of the last name check.\n"
          }
        },
        "description": "The granular results of the Account Name Inquiry check performed on the individual that owns the account."
      },
      "RetryGetResponse": {
        "required": [
          "enabled"
        ],
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean",
            "description": "Indicates whether asynchronous retries are enabled for the payment."
          },
          "attempts_made": {
            "minimum": 0,
            "type": "integer",
            "description": "The number of retries attempted so far."
          },
          "max_attempts": {
            "maximum": 15,
            "minimum": 1,
            "type": "integer",
            "description": "The maximum number of authorization retry attempts, excluding the initial authorization.",
            "default": 6
          },
          "ends_on": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Timestamp"
              }
            ],
            "description": "A timestamp that details the date on which the retry schedule expires, in ISO 8601 format."
          },
          "next_attempt_on": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Timestamp"
              }
            ],
            "description": "A timestamp that details the date on which the next authorization attempt will take place, in ISO 8601 format."
          }
        },
        "description": "Configuration relating to asynchronous retries\n"
      },
      "RetryPostResponse": {
        "required": [
          "enabled"
        ],
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean",
            "description": "Indicates whether asynchronous retries are enabled for the payment."
          },
          "max_attempts": {
            "maximum": 15,
            "minimum": 1,
            "type": "integer",
            "description": "The maximum number of authorization retry attempts, excluding the initial authorization.",
            "default": 6
          },
          "ends_on": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Timestamp"
              }
            ],
            "description": "A timestamp that details the date on which the retry schedule expires, in ISO 8601 format."
          },
          "next_attempt_on": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Timestamp"
              }
            ],
            "description": "A timestamp of the date on which the next authorization attempt will take place, in ISO 8601 format."
          }
        },
        "description": "Configuration relating to asynchronous retries\n"
      },
      "RetryRequest": {
        "required": [
          "enabled"
        ],
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean",
            "description": "Indicates whether asynchronous retries are enabled for the payment."
          },
          "dunning": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DunningRetryRequest"
              }
            ],
            "description": "Configuration of asynchronous Dunning retries."
          },
          "downtime": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DowntimeRetryRequest"
              }
            ],
            "description": "Configuration of asynchronous Downtime retries."
          }
        },
        "description": "Configuration of asynchronous retries.\nFor more information about asynchronous retries and supported response codes, see [Configure scheduled retries](https://www.checkout.com/docs/payments/manage-payments/configure-scheduled-retries).\n"
      },
      "RiskRequest": {
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean",
            "description": "Whether a risk assessment should be performed",
            "default": true,
            "example": false
          },
          "device_session_id": {
            "pattern": "^(dsid)_(\\w{26})$",
            "type": "string",
            "description": "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.",
            "example": "dsid_ipsmclhxwq72phhr32iwfvrflm"
          },
          "device": {
            "$ref": "#/components/schemas/DeviceDetails"
          }
        },
        "description": "Configures the risk assessment performed during the processing of the payment"
      },
      "Ach": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentSetupPaymentMethod"
          },
          {
            "type": "object",
            "properties": {
              "account_type": {
                "enum": [
                  "savings",
                  "current",
                  "cash"
                ],
                "type": "string",
                "description": "The type of Direct Debit account."
              },
              "account_holder": {
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "individual",
                      "corporate",
                      "government"
                    ],
                    "type": "string",
                    "description": "The type of account holder."
                  },
                  "first_name": {
                    "type": "string",
                    "description": "The first name of the account holder."
                  },
                  "last_name": {
                    "type": "string",
                    "description": "The last name of the account holder."
                  },
                  "company_name": {
                    "type": "string",
                    "description": "The legal name of a registered company that holds the account."
                  },
                  "date_of_birth": {
                    "type": "string",
                    "description": "The account holder's date of birth."
                  },
                  "identification": {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "description": "The document type."
                      },
                      "issuing_country": {
                        "type": "string",
                        "description": "The country where the document was issued."
                      },
                      "number": {
                        "type": "string",
                        "description": "The document number."
                      }
                    },
                    "description": "The account holder's government document identification, for example a Social Security Number (SSN).",
                    "writeOnly": true
                  }
                },
                "description": "The account holder details."
              },
              "account_number": {
                "maxLength": 17,
                "minLength": 4,
                "type": "string",
                "description": "The account number of the Direct Debit account.",
                "writeOnly": true
              },
              "bank_code": {
                "maxLength": 9,
                "minLength": 8,
                "type": "string",
                "description": "The bank code of the Direct Debit account.",
                "writeOnly": true
              },
              "country": {
                "maxLength": 2,
                "minLength": 2,
                "type": "string",
                "description": "The two-letter ISO country code of the bank account."
              }
            }
          }
        ],
        "description": "The ACH payment method's details and configuration."
      },
      "AlipayCn": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentSetupPaymentMethod"
          },
          {
            "type": "object",
            "properties": {
              "terminal_type": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/TerminalType"
                  }
                ]
              },
              "os_type": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/OsType"
                  }
                ]
              }
            }
          }
        ],
        "description": "The Alipay CN payment method's details and configuration."
      },
      "AlipayHK": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentSetupPaymentMethod"
          },
          {
            "type": "object",
            "properties": {
              "terminal_type": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/TerminalType"
                  }
                ]
              },
              "os_type": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/OsType"
                  }
                ]
              }
            }
          }
        ],
        "description": "The Alipay HK payment method's details and configuration."
      },
      "Alma": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentSetupPaymentMethod"
          },
          {
            "type": "object"
          }
        ],
        "description": "The Alma payment method's details and configuration."
      },
      "ApplePay": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentSetupPaymentMethod"
          },
          {
            "type": "object",
            "properties": {
              "token_data": {
                "type": "object",
                "properties": {
                  "version": {
                    "type": "string",
                    "description": "The version of the payment token. The token uses `EC_v1` for ECC-encrypted data, and `RSA_v1` for RSA-encrypted data.",
                    "writeOnly": true
                  },
                  "data": {
                    "type": "string",
                    "description": "The encrypted payment data, Base64-encoded.",
                    "writeOnly": true
                  },
                  "signature": {
                    "type": "string",
                    "description": "The signature of the payment and header data. The signature includes the signing certificate, its intermediate CA certificate, and information about the signing algorithm.",
                    "writeOnly": true
                  },
                  "header": {
                    "type": "object",
                    "properties": {
                      "ephemeral_public_key": {
                        "type": "string",
                        "writeOnly": true
                      },
                      "public_key_hash": {
                        "type": "string",
                        "writeOnly": true
                      },
                      "transaction_id": {
                        "type": "string",
                        "writeOnly": true
                      }
                    },
                    "description": "Additional version-dependent information used to decrypt and verify the payment.",
                    "writeOnly": true
                  }
                },
                "writeOnly": true
              },
              "token": {
                "required": [
                  "id"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "pattern": "^(tok)_(\\w{26})$",
                    "type": "string",
                    "description": "The token identifier, prefixed by `tok_`."
                  },
                  "expires_on": {
                    "type": "string",
                    "description": "The date and time the token expires, in ISO 8601 format.",
                    "format": "date-time"
                  }
                },
                "description": "The Checkout.com Apple Pay token."
              },
              "store_for_future_use": {
                "type": "boolean",
                "description": "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.",
                "writeOnly": true
              },
              "phone": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PaymentSetupPhone"
                  }
                ],
                "description": "The customer's phone number."
              },
              "account_holder": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PaymentSetupAccountHolder"
                  }
                ]
              },
              "schemes": {
                "type": "array",
                "items": {
                  "enum": [
                    "accel",
                    "amex",
                    "cartes_bancaires",
                    "china_union_pay",
                    "diners",
                    "discover",
                    "jcb",
                    "mada",
                    "maestro",
                    "mastercard",
                    "nyce",
                    "omannet",
                    "pulse",
                    "shazam",
                    "star",
                    "upi",
                    "visa"
                  ],
                  "type": "string",
                  "description": "The supported card scheme name."
                },
                "description": "The list of supported card scheme names.",
                "readOnly": true
              },
              "preferred_scheme": {
                "enum": [
                  "visa",
                  "mastercard",
                  "cartes_bancaires"
                ],
                "type": "string",
                "description": "The preferred card scheme to process the payment."
              }
            }
          }
        ],
        "description": "The Apple Pay payment method's details and configuration."
      },
      "Bacs": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentSetupPaymentMethod"
          },
          {
            "$ref": "#/components/schemas/PaymentMethodInitialization"
          },
          {
            "type": "object",
            "properties": {
              "instrument_id": {
                "type": "string",
                "description": "The ID of the Bacs instrument used for the payment.",
                "readOnly": true,
                "example": "src_wkq7552u245upl5h75x24554xy"
              },
              "account_holder": {
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "individual",
                      "corporate"
                    ],
                    "type": "string",
                    "description": "The type of account holder."
                  },
                  "first_name": {
                    "type": "string",
                    "description": "The first name of the account holder."
                  },
                  "last_name": {
                    "type": "string",
                    "description": "The last name of the account holder."
                  },
                  "company_name": {
                    "type": "string",
                    "description": "The legal name of a registered company that holds the account."
                  },
                  "email": {
                    "type": "string",
                    "description": "The email address of the account holder.",
                    "example": "john.smith@example.com"
                  }
                },
                "description": "The account holder details."
              },
              "account_number": {
                "type": "string",
                "description": "The account number of the Bacs Direct Debit account.",
                "writeOnly": true
              },
              "bank_code": {
                "type": "string",
                "description": "The sort code of the Bacs Direct Debit account.",
                "writeOnly": true
              },
              "country": {
                "maxLength": 2,
                "minLength": 2,
                "type": "string",
                "description": "The account's country, as an ISO 3166-1 alpha-2 code."
              },
              "currency": {
                "type": "string",
                "description": "The account holder's account currency."
              },
              "allow_partial_match": {
                "type": "boolean",
                "description": "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.",
                "default": false
              }
            }
          }
        ],
        "description": "The Bacs payment method's details and configuration."
      },
      "Bancontact": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentSetupPaymentMethod"
          },
          {
            "type": "object",
            "properties": {
              "account_holder_name": {
                "maxLength": 100,
                "minLength": 3,
                "type": "string",
                "description": "The account holder's name."
              }
            }
          }
        ],
        "description": "The Bancontact payment method's details and configuration."
      },
      "Benefit": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentSetupPaymentMethod"
          },
          {
            "type": "object"
          }
        ],
        "description": "The Benefit payment method's details and configuration."
      },
      "Bizum": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentSetupPaymentMethod"
          },
          {
            "type": "object"
          }
        ],
        "description": "The Bizum payment method's details and configuration."
      },
      "Blik": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentSetupPaymentMethod"
          },
          {
            "type": "object",
            "properties": {
              "partner_code": {
                "pattern": "^[0-9]{6}$",
                "type": "string",
                "description": "The 6-digit BLIK code generated by the customer's banking app.",
                "writeOnly": true,
                "example": "999111"
              }
            }
          }
        ],
        "description": "The Blik payment method's details and configuration."
      },
      "Card": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentSetupPaymentMethod"
          },
          {
            "type": "object",
            "properties": {
              "token": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The Checkout.com card token identifier."
                  }
                }
              },
              "details": {
                "type": "object",
                "properties": {
                  "number": {
                    "type": "string",
                    "description": "The card number (without separators).",
                    "writeOnly": true
                  },
                  "last4": {
                    "type": "string",
                    "description": "The last four digits of the card number.",
                    "readOnly": true
                  },
                  "bin": {
                    "type": "string",
                    "description": "The card issuer's Bank Identification Number (BIN).",
                    "readOnly": true
                  },
                  "scheme": {
                    "type": "string",
                    "description": "The card scheme.",
                    "readOnly": true
                  },
                  "expiry_month": {
                    "type": "integer",
                    "description": "The expiry month of the card."
                  },
                  "expiry_year": {
                    "type": "integer",
                    "description": "The expiry year of the card."
                  },
                  "name": {
                    "type": "string",
                    "description": "The cardholder's name.",
                    "writeOnly": true
                  },
                  "cvv": {
                    "type": "string",
                    "description": "The card verification value/code. 3 digits, except for American Express (4 digits).",
                    "writeOnly": true
                  },
                  "stored": {
                    "type": "boolean",
                    "description": "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.",
                    "writeOnly": true
                  },
                  "expires_on": {
                    "type": "string",
                    "description": "The time by which the card details must be confirmed.",
                    "format": "date-time",
                    "readOnly": true
                  },
                  "allow_update": {
                    "type": "boolean",
                    "description": "Indicates whether to use the Real-Time Account Updater to update the card information."
                  }
                }
              },
              "store_for_future_use": {
                "type": "boolean",
                "description": "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.",
                "writeOnly": true
              },
              "phone": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PaymentSetupPhone"
                  }
                ],
                "description": "The customer's phone number."
              },
              "account_holder": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PaymentSetupAccountHolder"
                  }
                ]
              },
              "schemes": {
                "type": "array",
                "items": {
                  "enum": [
                    "accel",
                    "amex",
                    "cartes_bancaires",
                    "china_union_pay",
                    "diners",
                    "discover",
                    "jcb",
                    "mada",
                    "maestro",
                    "mastercard",
                    "nyce",
                    "omannet",
                    "pulse",
                    "shazam",
                    "star",
                    "upi",
                    "visa"
                  ],
                  "type": "string",
                  "description": "The supported card scheme name."
                },
                "description": "The list of supported card scheme names.",
                "readOnly": true
              },
              "preferred_scheme": {
                "enum": [
                  "visa",
                  "mastercard",
                  "cartes_bancaires"
                ],
                "type": "string",
                "description": "The preferred card scheme to process the payment."
              }
            }
          }
        ],
        "description": "The Card payment method's details and configuration."
      },
      "CashApp": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentSetupPaymentMethod"
          },
          {
            "$ref": "#/components/schemas/PaymentMethodInitialization"
          },
          {
            "type": "object",
            "properties": {
              "customer_profile_sharing": {
                "type": "boolean",
                "description": "Indicates whether the customer consents to share their Cash App customer profile with Checkout.com."
              },
              "customer_profile": {
                "type": "object",
                "properties": {
                  "customer_id": {
                    "type": "string",
                    "description": "Cash App's identifier for the customer. This is not a Checkout.com customer identifier.",
                    "example": "CST_AYVkuLzfsRqEhf4OyQFxQNv22m7IjNFjO6f2J5CDE2nxAC4-21wJ2H8_2kvsdIsDZMN4"
                  },
                  "cashtag": {
                    "type": "string",
                    "description": "The customer's `$Cashtag`.",
                    "example": "$CASHTAG_C_TOKEN"
                  },
                  "reference_id": {
                    "type": "string",
                    "description": "Cash App's reference for the customer profile.",
                    "example": "value"
                  },
                  "full_name": {
                    "type": "string",
                    "description": "The customer's full name.",
                    "example": "John Middle Doe"
                  },
                  "given_name": {
                    "type": "string",
                    "description": "The customer's given name.",
                    "example": "John"
                  },
                  "middle_name": {
                    "type": "string",
                    "description": "The customer's middle name.",
                    "example": "Middle"
                  },
                  "family_name": {
                    "type": "string",
                    "description": "The customer's family name.",
                    "example": "Doe"
                  },
                  "suffix": {
                    "type": "string",
                    "description": "The suffix of the customer's name.",
                    "example": "Jr."
                  },
                  "birth_date": {
                    "type": "string",
                    "description": "The customer's date of birth.",
                    "format": "date",
                    "example": "1990-01-01T00:00:00.0000000"
                  },
                  "address": {
                    "type": "object",
                    "properties": {
                      "address_line_1": {
                        "type": "string",
                        "description": "The first line of the address.",
                        "example": "123 Main St"
                      },
                      "address_line_2": {
                        "type": "string",
                        "description": "The second line of the address."
                      },
                      "address_line_3": {
                        "type": "string",
                        "description": "The third line of the address."
                      },
                      "locality": {
                        "type": "string",
                        "description": "The address locality, such as the city or town.",
                        "example": "Springfield"
                      },
                      "sublocality": {
                        "type": "string",
                        "description": "The address sublocality, such as the district or neighborhood."
                      },
                      "administrative_district_level_1": {
                        "type": "string",
                        "description": "The address's top-level administrative district, such as the state or province.",
                        "example": "IL"
                      },
                      "postal_code": {
                        "type": "string",
                        "description": "The postal or zip code.",
                        "example": "62701"
                      },
                      "country": {
                        "maxLength": 2,
                        "type": "string",
                        "description": "The address country, in ISO 3166-1 alpha-2 format.",
                        "example": "US"
                      }
                    },
                    "description": "The customer's address."
                  },
                  "phone_number": {
                    "type": "string",
                    "description": "The customer's phone number.",
                    "example": "5555555555"
                  },
                  "email_address": {
                    "type": "string",
                    "description": "The customer's email address.",
                    "example": "cash@cash.com"
                  },
                  "customer_since": {
                    "type": "string",
                    "description": "The date and time the customer's Cash App account was created.",
                    "format": "date-time",
                    "example": "1970-01-18T12:46:04.8000000+00:00"
                  }
                },
                "description": "The customer's Cash App profile that they consented to share. Included in the response when `customer_profile_sharing` is enabled.\n\nCash 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.\n",
                "readOnly": true
              },
              "reference": {
                "maxLength": 80,
                "type": "string",
                "description": "A reference for the Cash App Pay transaction, returned by the provider.",
                "readOnly": true,
                "example": "ORDER-99"
              },
              "action": {
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "redirect"
                    ],
                    "type": "string",
                    "description": "The type of action.",
                    "example": "redirect"
                  },
                  "redirect_url": {
                    "type": "string",
                    "description": "The URL to redirect the customer to so they can authorize the payment with Cash App.",
                    "format": "uri",
                    "example": "https://sandbox.api.cash.app/customer-request/v1/requests/GRR_f5xg6wrxhtv3p4w24g0wrexa/interstitial?validity_token=bap03y"
                  }
                },
                "description": "The next available action for the payment method.",
                "readOnly": true
              }
            }
          }
        ],
        "description": "The Cash App payment method's details and configuration."
      },
      "Dana": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentSetupPaymentMethod"
          },
          {
            "type": "object",
            "properties": {
              "terminal_type": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/TerminalType"
                  }
                ]
              },
              "os_type": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/OsType"
                  }
                ]
              }
            }
          }
        ],
        "description": "The Dana payment method's details and configuration."
      },
      "Eps": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentSetupPaymentMethod"
          },
          {
            "type": "object"
          }
        ],
        "description": "The EPS payment method's details and configuration."
      },
      "GCash": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentSetupPaymentMethod"
          },
          {
            "type": "object",
            "properties": {
              "terminal_type": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/TerminalType"
                  }
                ]
              },
              "os_type": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/OsType"
                  }
                ]
              }
            }
          }
        ],
        "description": "The GCash payment method's details and configuration."
      },
      "GooglePay": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentSetupPaymentMethod"
          },
          {
            "type": "object",
            "properties": {
              "token_data": {
                "type": "object",
                "properties": {
                  "protocol_version": {
                    "type": "string",
                    "description": "The encryption and signing scheme used to create this message. If not set, the default is `ECv0`.",
                    "writeOnly": true
                  },
                  "signature": {
                    "type": "string",
                    "description": "The signature that verifies the message came from Google, created using `ECDSA`.",
                    "writeOnly": true
                  },
                  "signed_message": {
                    "type": "string",
                    "description": "A serialized JSON string containing the `encryptedMessage`, `ephemeralPublicKey`, and `tag`. To simplify the signature verification process, this value is serialized.",
                    "writeOnly": true
                  },
                  "tokenization_key": {
                    "type": "string",
                    "description": "The public key provided to the Google API in the `tokenizationSpecification.parameters.gatewayMerchantId` field.",
                    "writeOnly": true
                  }
                },
                "writeOnly": true
              },
              "token": {
                "required": [
                  "id"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "pattern": "^(tok)_(\\w{26})$",
                    "type": "string",
                    "description": "The token identifier, prefixed by `tok_`."
                  },
                  "expires_on": {
                    "type": "string",
                    "description": "The date and time the token expires, in ISO 8601 format.",
                    "format": "date-time"
                  }
                },
                "description": "The Checkout.com Google Pay token."
              },
              "store_for_future_use": {
                "type": "boolean",
                "description": "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.",
                "writeOnly": true
              },
              "phone": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PaymentSetupPhone"
                  }
                ],
                "description": "The customer's phone number."
              },
              "account_holder": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PaymentSetupAccountHolder"
                  }
                ]
              },
              "schemes": {
                "type": "array",
                "items": {
                  "enum": [
                    "accel",
                    "amex",
                    "china_union_pay",
                    "diners",
                    "discover",
                    "jcb",
                    "mada",
                    "maestro",
                    "mastercard",
                    "nyce",
                    "omannet",
                    "pulse",
                    "shazam",
                    "star",
                    "upi",
                    "visa"
                  ],
                  "type": "string",
                  "description": "The supported card scheme name."
                },
                "description": "The list of supported card scheme names.",
                "readOnly": true
              },
              "preferred_scheme": {
                "enum": [
                  "visa",
                  "mastercard"
                ],
                "type": "string",
                "description": "The preferred card scheme to process the payment."
              }
            }
          }
        ],
        "description": "The Google Pay payment method's details and configuration."
      },
      "Ideal": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentSetupPaymentMethod"
          },
          {
            "type": "object",
            "properties": {
              "description": {
                "maxLength": 35,
                "type": "string",
                "description": "A description of the products or services being paid for. Do not include HTML tags or special characters, as these are rejected by iDEAL.",
                "example": "2 t-shirts"
              }
            }
          }
        ],
        "description": "The iDEAL payment method's details and configuration."
      },
      "KakaoPay": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentSetupPaymentMethod"
          },
          {
            "type": "object",
            "properties": {
              "terminal_type": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/TerminalType"
                  }
                ]
              },
              "os_type": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/OsType"
                  }
                ]
              }
            }
          }
        ],
        "description": "The KakaoPay payment method's details and configuration."
      },
      "Klarna": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentSetupPaymentMethod"
          },
          {
            "$ref": "#/components/schemas/PaymentMethodInitialization"
          },
          {
            "type": "object",
            "properties": {
              "action": {
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "sdk"
                    ],
                    "type": "string",
                    "description": "The type of action."
                  },
                  "client_token": {
                    "type": "string",
                    "description": "The client token for the Klarna SDK.",
                    "example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ewogICJzZXNzaW9uX2lkIiA6ICIw"
                  },
                  "session_id": {
                    "type": "string",
                    "description": "The session ID.",
                    "example": "0b1d9815-165e-42e2-8867-35bc03789e00"
                  }
                },
                "description": "The next available action for the payment method.",
                "readOnly": true
              },
              "account_holder": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/KlarnaAccountHolder"
                  }
                ],
                "readOnly": true
              },
              "iban": {
                "type": "string",
                "description": "The IBAN of the account used to complete Klarna verification.",
                "readOnly": true,
                "example": "DE89370400440532013000"
              }
            },
            "description": "The Klarna payment method's details and configuration."
          }
        ]
      },
      "KlarnaAccountHolder": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The full name of the account holder."
          }
        },
        "description": "The account holder details returned by Klarna after the shopper completes verification."
      },
      "Knet": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentSetupPaymentMethod"
          },
          {
            "type": "object",
            "properties": {
              "language": {
                "enum": [
                  "en",
                  "ar"
                ],
                "type": "string",
                "description": "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.\n\n- `ar` - Arabic\n- `en` - English\n"
              }
            }
          }
        ],
        "description": "The KNET payment method's details and configuration."
      },
      "MBWay": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentSetupPaymentMethod"
          },
          {
            "type": "object"
          }
        ],
        "description": "The MBWay payment method's details and configuration."
      },
      "MobilePay": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentSetupPaymentMethod"
          },
          {
            "type": "object"
          }
        ],
        "description": "The MobilePay payment method's details and configuration."
      },
      "Multibanco": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentSetupPaymentMethod"
          },
          {
            "type": "object",
            "properties": {
              "account_holder_name": {
                "maxLength": 100,
                "minLength": 3,
                "type": "string",
                "description": "The account holder's name."
              }
            }
          }
        ],
        "description": "The Multibanco payment method's details and configuration."
      },
      "Octopus": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentSetupPaymentMethod"
          },
          {
            "type": "object"
          }
        ],
        "description": "The Octopus payment method's details and configuration."
      },
      "OrderItem": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The descriptive name of the line item.",
            "example": "Battery Power Pack"
          },
          "quantity": {
            "type": "integer",
            "description": "The quantity of the line item.",
            "example": 1
          },
          "unit_price": {
            "type": "number",
            "description": "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>.",
            "example": 1000
          },
          "total_amount": {
            "type": "number",
            "description": "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>.\n\nInclude any tax and discounts applied, using the formula: `value = (quantity x unit_price) - discount_amount`.\n",
            "example": 1000
          },
          "reference": {
            "type": "string",
            "description": "The line item reference or product stock keeping unit (SKU).",
            "example": "BA67A"
          },
          "discount_amount": {
            "type": "number",
            "description": "The discount applied to each invoice line item.",
            "example": 150
          },
          "url": {
            "maxLength": 1024,
            "type": "string",
            "description": "Link to the line item's product page.",
            "example": "https://example.com/products/my-item"
          },
          "image_url": {
            "maxLength": 1024,
            "type": "string",
            "description": "Link to the item image to show in the order confirmation.",
            "example": "https://example.com/products/my-item/image"
          },
          "type": {
            "type": "string",
            "description": "The item type. For example, physical or digital.",
            "example": "digital"
          }
        },
        "description": "A line item from the customer's order."
      },
      "OsType": {
        "enum": [
          "android",
          "ios"
        ],
        "type": "string",
        "description": "The customer's operating system type. Required when `terminal_type` is not `web`.",
        "example": "android"
      },
      "P24": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentSetupPaymentMethod"
          },
          {
            "type": "object",
            "properties": {
              "account_holder": {
                "type": "object",
                "properties": {
                  "name": {
                    "maxLength": 100,
                    "minLength": 3,
                    "type": "string",
                    "description": "The account holder's name."
                  },
                  "email": {
                    "maxLength": 254,
                    "type": "string",
                    "description": "The account holder's email address.",
                    "format": "email"
                  }
                },
                "description": "The account holder's details."
              }
            }
          }
        ],
        "description": "The P24 (Przelewy24) payment method's details and configuration."
      },
      "PayByBank": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentSetupPaymentMethod"
          },
          {
            "type": "object",
            "properties": {
              "bank_id": {
                "type": "string",
                "description": "The identifier of the bank the customer has selected for the payment.",
                "example": "ob-natwest"
              },
              "action": {
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "select_bank"
                    ],
                    "type": "string",
                    "description": "The type of action."
                  },
                  "banks": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "bank_id": {
                          "type": "string",
                          "description": "The unique identifier of the bank.",
                          "example": "ob-natwest"
                        },
                        "display_name": {
                          "type": "string",
                          "description": "The display name of the bank.",
                          "example": "NatWest"
                        },
                        "logo_url": {
                          "type": "string",
                          "description": "The URL of the bank's logo.",
                          "example": "https://cdn.token.io/banks/natwest.png"
                        },
                        "available": {
                          "type": "boolean",
                          "description": "Whether the bank is currently available for selection.",
                          "example": true
                        }
                      }
                    },
                    "description": "The list of banks available for the customer to select."
                  }
                },
                "description": "The next available action for the payment method.",
                "readOnly": true
              }
            }
          }
        ],
        "description": "The Pay by Bank (Open Banking) payment method's details and configuration."
      },
      "PaymentMethodFlags": {
        "type": "array",
        "items": {
          "type": "string",
          "description": "Flags relating to the payment method option."
        },
        "description": "The list of error codes or indicators that highlight missing or invalid information.",
        "readOnly": true
      },
      "PaymentMethodInitialization": {
        "type": "object",
        "properties": {
          "initialization": {
            "enum": [
              "disabled",
              "enabled"
            ],
            "type": "string",
            "description": "The initialization state of the payment method. \n\nWhen you create a Payment Setup, this defaults to `disabled`.\n",
            "default": "disabled"
          }
        }
      },
      "PaymentMethodStatus": {
        "enum": [
          "unavailable",
          "action_required",
          "ready",
          "initialization_required",
          "invalid"
        ],
        "type": "string",
        "description": "The payment method status.",
        "readOnly": true,
        "example": "ready"
      },
      "PaymentSetup": {
        "required": [
          "processing_channel_id",
          "amount",
          "currency"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "readOnly": true
          },
          "processing_channel_id": {
            "pattern": "^(pc)_(\\w{26})$",
            "type": "string",
            "description": "The processing channel to use for the payment.",
            "example": "pc_q4dbxom5jbgudnjzjpz7j2z6uq"
          },
          "amount": {
            "type": "number",
            "description": "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>.",
            "example": 10000
          },
          "currency": {
            "type": "string",
            "description": "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>.",
            "example": "GBP"
          },
          "presentment_details": {
            "$ref": "#/components/schemas/PaymentSetupPresentmentDetails"
          },
          "payment_type": {
            "enum": [
              "regular",
              "recurring",
              "moto",
              "installment",
              "pay_later",
              "unscheduled"
            ],
            "type": "string",
            "description": "The type of payment.\n\nYou 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.\n",
            "default": "regular",
            "example": "regular"
          },
          "reference": {
            "maxLength": 80,
            "type": "string",
            "description": "A reference you can use to identify the payment. For example, an order number.",
            "example": "REF-0987-475"
          },
          "description": {
            "maxLength": 100,
            "type": "string",
            "description": "A description of the payment.",
            "example": "Set of 3 t-shirts"
          },
          "payment_methods": {
            "type": "object",
            "properties": {
              "auto_confirm": {
                "type": "string",
                "description": "The payment method that automatically confirms the payment when it is ready.",
                "example": "card"
              },
              "instrument": {
                "$ref": "#/components/schemas/PaymentSetupInstrument"
              },
              "klarna": {
                "$ref": "#/components/schemas/Klarna"
              },
              "stcpay": {
                "$ref": "#/components/schemas/StcPay"
              },
              "tabby": {
                "$ref": "#/components/schemas/Tabby"
              },
              "bizum": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Bizum"
                  }
                ],
                "readOnly": true
              },
              "paynow": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PayNow"
                  }
                ],
                "readOnly": true
              },
              "qpay": {
                "$ref": "#/components/schemas/Qpay"
              },
              "eps": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Eps"
                  }
                ],
                "readOnly": true
              },
              "ideal": {
                "$ref": "#/components/schemas/Ideal"
              },
              "knet": {
                "$ref": "#/components/schemas/Knet"
              },
              "bancontact": {
                "$ref": "#/components/schemas/Bancontact"
              },
              "benefit": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Benefit"
                  }
                ],
                "readOnly": true
              },
              "blik": {
                "$ref": "#/components/schemas/Blik"
              },
              "vipps": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Vipps"
                  }
                ],
                "readOnly": true
              },
              "twint": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Twint"
                  }
                ],
                "readOnly": true
              },
              "alipay_cn": {
                "$ref": "#/components/schemas/AlipayCn"
              },
              "alipay_hk": {
                "$ref": "#/components/schemas/AlipayHK"
              },
              "gcash": {
                "$ref": "#/components/schemas/GCash"
              },
              "tng": {
                "$ref": "#/components/schemas/Tng"
              },
              "dana": {
                "$ref": "#/components/schemas/Dana"
              },
              "mobilepay": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/MobilePay"
                  }
                ],
                "readOnly": true
              },
              "tamara": {
                "$ref": "#/components/schemas/Tamara"
              },
              "mbway": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/MBWay"
                  }
                ],
                "readOnly": true
              },
              "multibanco": {
                "$ref": "#/components/schemas/Multibanco"
              },
              "wechatpay": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/WeChatPay"
                  }
                ],
                "readOnly": true
              },
              "kakaopay": {
                "$ref": "#/components/schemas/KakaoPay"
              },
              "truemoney": {
                "$ref": "#/components/schemas/TrueMoney"
              },
              "octopus": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Octopus"
                  }
                ],
                "readOnly": true
              },
              "p24": {
                "$ref": "#/components/schemas/P24"
              },
              "alma": {
                "$ref": "#/components/schemas/Alma"
              },
              "swish": {
                "$ref": "#/components/schemas/Swish"
              },
              "sequra": {
                "$ref": "#/components/schemas/Sequra"
              },
              "ach": {
                "$ref": "#/components/schemas/Ach"
              },
              "sepa": {
                "$ref": "#/components/schemas/Sepa"
              },
              "bacs": {
                "$ref": "#/components/schemas/Bacs"
              },
              "paybybank": {
                "$ref": "#/components/schemas/PayByBank"
              },
              "paypal": {
                "$ref": "#/components/schemas/PayPal"
              },
              "cashapp": {
                "$ref": "#/components/schemas/CashApp"
              },
              "googlepay": {
                "$ref": "#/components/schemas/GooglePay"
              },
              "applepay": {
                "$ref": "#/components/schemas/ApplePay"
              },
              "card": {
                "$ref": "#/components/schemas/Card"
              },
              "stablecoin": {
                "$ref": "#/components/schemas/Stablecoin"
              }
            },
            "description": "The payment methods that are enabled on your account and available for use."
          },
          "available_payment_methods": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "An ordered list of available payment method names. The order indicates\nthe recommended presentation priority, with the first item being the\nhighest priority.\n",
            "readOnly": true,
            "example": [
              "card",
              "klarna",
              "stcpay",
              "stablecoin"
            ]
          },
          "settings": {
            "type": "object",
            "properties": {
              "success_url": {
                "maxLength": 255,
                "type": "string",
                "description": "The URL to redirect the customer to, if the payment is successful.\n\nFor payment methods with a redirect, this value overrides the default success redirect URL configured on your account.\n",
                "format": "uri",
                "example": "https://example.com/payments/success"
              },
              "failure_url": {
                "maxLength": 255,
                "type": "string",
                "description": "The URL to redirect the customer to, if the payment is unsuccessful.\n\nFor payment methods with a redirect, this value overrides the default failure redirect URL configured on your account.\n",
                "format": "uri",
                "example": "https://example.com/payments/fail"
              },
              "capture": {
                "type": "boolean",
                "description": "Indicates whether to capture the payment immediately.",
                "default": true,
                "example": true
              },
              "excluded_payment_methods": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "The list of payment methods excluded from the Payment Setup.",
                "example": [
                  "card",
                  "klarna",
                  "stcpay"
                ]
              }
            },
            "description": "Settings for the Payment Setup."
          },
          "risk": {
            "type": "object",
            "properties": {
              "enabled": {
                "type": "boolean",
                "description": "Indicates whether a risk assessment should be performed.",
                "default": true,
                "example": true
              }
            },
            "description": "Risk assessment settings for the Payment Setup."
          },
          "customer": {
            "type": "object",
            "properties": {
              "country": {
                "maxLength": 2,
                "minLength": 2,
                "type": "string",
                "description": "The two-letter ISO country code of the customer for this payment.",
                "example": "GB"
              },
              "id": {
                "type": "string",
                "description": "The unique identifier of the customer.",
                "example": "cus_123456789"
              },
              "email": {
                "type": "object",
                "properties": {
                  "address": {
                    "type": "string",
                    "description": "The customer's email address.",
                    "example": "johnsmith@example.com"
                  },
                  "verified": {
                    "type": "boolean",
                    "description": "Specifies whether the customer's email address is verified.",
                    "example": true
                  }
                },
                "description": "Details of the customer's email."
              },
              "name": {
                "maxLength": 100,
                "type": "string",
                "description": "The customer's full name.",
                "example": "John Smith"
              },
              "tax_number": {
                "type": "string",
                "description": "The customer's tax identification number.",
                "example": "GB123456789"
              },
              "phone": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PaymentSetupPhone"
                  }
                ]
              },
              "device": {
                "type": "object",
                "properties": {
                  "locale": {
                    "type": "string",
                    "description": "The locale of the device.",
                    "example": "en_GB"
                  },
                  "fingerprint": {
                    "type": "string",
                    "description": "A unique identifier for the customer's device.",
                    "example": "fp_abc123xyz"
                  },
                  "ipv4": {
                    "type": "string",
                    "description": "The customer's device IPv4 address, used by some payment methods for risk and eligibility checks.",
                    "example": "203.0.113.0"
                  },
                  "ipv6": {
                    "type": "string",
                    "description": "The customer's device IPv6 address, used by some payment methods for risk and eligibility checks.",
                    "example": "2001:db8:85a3::8a2e:370:7334"
                  },
                  "client": {
                    "enum": [
                      "web",
                      "mobile_web",
                      "app"
                    ],
                    "type": "string",
                    "description": "The type of client the customer uses to initiate the payment.",
                    "example": "web"
                  },
                  "os": {
                    "enum": [
                      "android",
                      "ios"
                    ],
                    "type": "string",
                    "description": "The operating system of the customer's device.",
                    "example": "android"
                  }
                },
                "description": "Details of the customer's device."
              },
              "merchant_account": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PaymentSetupMerchantAccount"
                  }
                ]
              }
            },
            "description": "The customer's details."
          },
          "order": {
            "type": "object",
            "properties": {
              "items": {
                "type": "array",
                "items": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/OrderItem"
                    }
                  ]
                },
                "description": "A list of items in the order."
              },
              "shipping": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PaymentSetupShipping"
                  }
                ]
              },
              "sub_merchants": {
                "type": "array",
                "items": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/PaymentSetupSubMerchant"
                    }
                  ]
                },
                "description": "The details of the sub-merchants."
              },
              "invoice_id": {
                "type": "string",
                "description": "The unique identifier for the invoice.",
                "example": "inv_123456789"
              },
              "shipping_amount": {
                "minimum": 0,
                "type": "integer",
                "description": "The total shipping amount for the order.",
                "example": 5
              },
              "discount_amount": {
                "minimum": 0,
                "type": "integer",
                "description": "The discount amount the merchant applied to the transaction.",
                "example": 10
              },
              "tax_amount": {
                "minimum": 0,
                "type": "integer",
                "description": "The total tax amount for the order.",
                "example": 2
              },
              "tipping_amount": {
                "minimum": 0,
                "type": "integer",
                "description": "The total tipping amount for the order.",
                "format": "int64",
                "example": 2
              },
              "surcharge_amount": {
                "minimum": 0,
                "type": "integer",
                "description": "The total surcharge amount for the order.",
                "format": "int64",
                "example": 2
              },
              "amount_allocations": {
                "maxItems": 50,
                "minItems": 1,
                "type": "array",
                "items": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/PaymentSetupAmountAllocation"
                    }
                  ]
                },
                "description": "The sub-entities that the payment is being processed on behalf of."
              }
            },
            "description": "The customer's order details."
          },
          "billing": {
            "$ref": "#/components/schemas/PaymentSetupBilling"
          },
          "industry": {
            "type": "object",
            "properties": {
              "airline": {
                "type": "array",
                "items": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/PaymentSetupAirline"
                    }
                  ]
                }
              },
              "accommodation": {
                "type": "array",
                "items": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/PaymentSetupAccommodation"
                    }
                  ]
                }
              }
            },
            "description": "Industry-specific information."
          },
          "account_funding_transaction": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentSetupAccountFundingTransaction"
              }
            ]
          },
          "terminal": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentSetupTerminal"
              }
            ]
          },
          "billing_descriptor": {
            "$ref": "#/components/schemas/PaymentSetupBillingDescriptor"
          },
          "metadata": {
            "maxProperties": 20,
            "type": "object",
            "additionalProperties": {
              "oneOf": [
                {
                  "maxLength": 255,
                  "type": "string"
                },
                {
                  "type": "number"
                },
                {
                  "type": "boolean"
                }
              ]
            },
            "description": "A set of key/value pairs you can attach to a payment. It can be useful for storing additional information about the payment."
          },
          "latest_payment": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentDetails"
              }
            ],
            "description": "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.",
            "readOnly": true
          }
        }
      },
      "PaymentSetupAccommodation": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "For lodging, contains the lodging name that appears on the\nstorefront/customer receipts. For cruise, contains the ship name booked for the cruise.",
            "example": "Checkout Lodge"
          },
          "booking_reference": {
            "type": "string",
            "description": "A unique identifier for the booking.",
            "example": "REF9083748"
          },
          "check_in_date": {
            "type": "string",
            "description": "For lodging bookings, the customer's check-in date.\nFor cruise bookings, the cruise departure date. Also referred to as the sail date.",
            "format": "date",
            "example": "2025-04-11T00:00:00.0000000"
          },
          "check_out_date": {
            "type": "string",
            "description": "For lodging bookings, the customer's check-out date.\nFor cruise bookings, the cruise return date.",
            "format": "date",
            "example": "2025-04-18T00:00:00.0000000"
          },
          "address": {
            "type": "object",
            "properties": {
              "address_line1": {
                "type": "string",
                "description": "The first line of the address.",
                "example": "123 High Street"
              },
              "city": {
                "type": "string",
                "description": "The address city.",
                "example": "London"
              },
              "state": {
                "type": "string",
                "description": "The address state or county.",
                "example": "Greater London"
              },
              "country": {
                "type": "string",
                "description": "The address country, in ISO 3166-1 alpha-2 format.",
                "example": "GB"
              },
              "zip": {
                "type": "string",
                "description": "The zip code or postal code.",
                "example": "NE1 1CK"
              }
            },
            "description": "The accommodation's address."
          },
          "number_of_rooms": {
            "type": "integer",
            "description": "The total number of rooms booked for the accommodation.",
            "example": 2
          },
          "guests": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "first_name": {
                  "type": "string",
                  "description": "The guest's first name.",
                  "example": "John"
                },
                "last_name": {
                  "type": "string",
                  "description": "The guest's last name.",
                  "example": "Smith"
                },
                "date_of_birth": {
                  "type": "string",
                  "description": "The guest's date of birth.",
                  "format": "date",
                  "example": "1970-03-19T00:00:00.0000000"
                }
              }
            },
            "description": "The list of guests staying at the accommodation."
          },
          "room": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "rate": {
                  "type": "number",
                  "description": "The rate or cost of the room per day.",
                  "example": 42.3
                },
                "number_of_nights": {
                  "type": "integer",
                  "description": "The number of nights the room is booked for.",
                  "example": 5
                },
                "type": {
                  "type": "string",
                  "description": "The room class or type booked. For example, `deluxe`.",
                  "example": "deluxe"
                }
              }
            },
            "description": "The list of rooms booked by the customer."
          },
          "total_number_of_guests": {
            "type": "integer",
            "description": "The total number of guests on the booking.",
            "example": 2
          },
          "refundable": {
            "type": "boolean",
            "description": "Specifies whether the booking is refundable.",
            "example": true
          },
          "delivery_recipient": {
            "type": "string",
            "description": "The recipient the booking confirmation is delivered to.",
            "example": "jane.smith@example.com"
          },
          "host": {
            "type": "object",
            "properties": {
              "registration_date": {
                "type": "string",
                "description": "The date the host registered.",
                "format": "date",
                "example": "2020-01-01T00:00:00.0000000"
              },
              "total_reservation_count": {
                "type": "integer",
                "description": "The total number of reservations the host has received.",
                "example": 150
              }
            },
            "description": "Details about the host of the accommodation."
          }
        }
      },
      "PaymentSetupAccountFundingTransaction": {
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean",
            "description": "Whether to process this payment as an account funding transaction.",
            "example": true
          },
          "purpose": {
            "enum": [
              "donations",
              "education",
              "emergency_need",
              "expatriation",
              "family_support",
              "financial_services",
              "gifts",
              "income",
              "insurance",
              "investment",
              "it_services",
              "leisure",
              "loan_payment",
              "medical_treatment",
              "other",
              "pension",
              "royalties",
              "savings",
              "travel_and_tourism"
            ],
            "type": "string",
            "description": "Specifies the purpose of the account funding transaction.",
            "example": "financial_services"
          },
          "sender": {
            "type": "object",
            "properties": {
              "date_of_birth": {
                "type": "string",
                "description": "Date of birth of the sender (yyyy-mm-dd).",
                "format": "date",
                "example": "2000-01-01T00:00:00.0000000"
              },
              "reference": {
                "type": "string",
                "description": "The unique reference for the sender of the payment.",
                "example": "0fc88634-78c1-4286-9cb6-6ca358730c8c"
              },
              "identification": {
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "passport",
                      "driving_license",
                      "national_id"
                    ],
                    "type": "string",
                    "description": "The type of identification used to identify the sender."
                  },
                  "number": {
                    "type": "string",
                    "description": "The identification number.",
                    "example": "1234567890"
                  },
                  "issuing_country": {
                    "type": "string",
                    "description": "The two-letter ISO country code of the country that issued the identification",
                    "example": "US"
                  }
                },
                "description": "Sender identification details."
              }
            },
            "description": "Account funding transaction sender details."
          },
          "recipient": {
            "type": "object",
            "properties": {
              "date_of_birth": {
                "type": "string",
                "description": "Date of birth of the recipient (yyyy-mm-dd).",
                "format": "date",
                "example": "2000-01-01T00:00:00.0000000"
              },
              "account_number": {
                "maxLength": 34,
                "type": "string",
                "description": "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": {
                "maxLength": 50,
                "type": "string",
                "description": "The recipient's first name."
              },
              "last_name": {
                "maxLength": 50,
                "type": "string",
                "description": "The recipient's last name."
              },
              "address": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PaymentSetupAddress"
                  }
                ]
              }
            },
            "description": "Account funding transaction recipient details."
          }
        },
        "description": "Account funding transaction details for the payment."
      },
      "PaymentSetupAccountHolder": {
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "individual",
              "government",
              "corporate"
            ],
            "type": "string",
            "description": "The card account holder type."
          },
          "first_name": {
            "type": "string",
            "description": "The card account holder's first name."
          },
          "last_name": {
            "type": "string",
            "description": "The card account holder's last name."
          },
          "middle_name": {
            "type": "string",
            "description": "The card account holder's middle name."
          },
          "company_name": {
            "type": "string",
            "description": "The card account holder's company name."
          },
          "account_name_inquiry": {
            "type": "boolean",
            "description": "Indicates whether the ANI (account name inquiry) check is performed with the card scheme (Visa or Mastercard)."
          }
        },
        "description": "Account holder details for the payment."
      },
      "PaymentSetupAddress": {
        "type": "object",
        "properties": {
          "address_line1": {
            "maxLength": 200,
            "type": "string",
            "description": "The first line of the address.",
            "example": "10 Canterbury Road"
          },
          "address_line2": {
            "maxLength": 200,
            "type": "string",
            "description": "The second line of the address.",
            "example": "Flat 2"
          },
          "city": {
            "maxLength": 50,
            "type": "string",
            "description": "The address city.",
            "example": "London"
          },
          "state": {
            "maxLength": 50,
            "type": "string",
            "description": "The address state or county.",
            "example": "Greater London"
          },
          "zip": {
            "maxLength": 50,
            "type": "string",
            "description": "The postal or zip code.",
            "example": "NE1 1KO"
          },
          "country": {
            "maxLength": 2,
            "type": "string",
            "description": "The address country, in ISO 3166-1 alpha-2 format.",
            "example": "GB"
          }
        },
        "description": "A physical address."
      },
      "PaymentSetupAirline": {
        "type": "object",
        "properties": {
          "ticket": {
            "type": "object",
            "properties": {
              "number": {
                "type": "string",
                "description": "The ticket's unique identifier.",
                "example": "0742464639523"
              },
              "issue_date": {
                "type": "string",
                "description": "The date the airline ticket was issued.",
                "format": "date",
                "example": "2025-05-01T00:00:00.0000000"
              },
              "issuing_carrier_code": {
                "type": "string",
                "description": "The carrier code of the ticket issuer.",
                "example": "042"
              },
              "travel_package_indicator": {
                "type": "string",
                "description": "The travel package indicator, as one of the following codes:\n\n  - `A` - Airline flight reservation\n  - `B` - Car rental and airline reservation\n  - `C` - Car rental reservation\n  - `N` - Unknown\n",
                "example": "A"
              },
              "travel_agency_name": {
                "type": "string",
                "description": "The name of the travel agency.",
                "example": "Checkout Travel Agents"
              },
              "travel_agency_code": {
                "type": "string",
                "description": "The IATA or ARC unique identifier for the travel agency that issues the ticket.",
                "example": "91114362"
              }
            },
            "description": "Details about the airline ticket."
          },
          "passengers": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "first_name": {
                  "type": "string",
                  "description": "The passenger's first name.",
                  "example": "John"
                },
                "last_name": {
                  "type": "string",
                  "description": "The passenger's last name.",
                  "example": "Smith"
                },
                "date_of_birth": {
                  "type": "string",
                  "description": "The passenger's date of birth.",
                  "format": "date",
                  "example": "1990-10-31T00:00:00.0000000"
                },
                "address": {
                  "type": "object",
                  "properties": {
                    "country": {
                      "type": "string",
                      "description": "The two-letter ISO country code of the passenger's country of residence.",
                      "example": "GB"
                    }
                  },
                  "description": "Details about the passenger's address."
                }
              }
            },
            "description": "The list of passengers on the flight."
          },
          "flight_leg_details": {
            "type": "array",
            "items": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/PaymentSetupFlightLegDetails"
                }
              ]
            },
            "description": "The list of flight legs booked by the customer."
          },
          "total_number_of_passengers": {
            "type": "integer",
            "description": "The total number of passengers on the booking.",
            "example": 1
          },
          "travel_type": {
            "type": "string",
            "description": "The type of travel. For example, `domestic` or `international`.",
            "example": "international"
          },
          "trip_type": {
            "type": "string",
            "description": "The type of trip. For example, `one_way` or `round_trip`.",
            "example": "one_way"
          },
          "refundable": {
            "type": "boolean",
            "description": "Specifies whether the booking is refundable.",
            "example": true
          },
          "delivery_recipient": {
            "type": "string",
            "description": "The recipient the ticket is delivered to.",
            "example": "jane.smith@example.com"
          },
          "ancillaries": {
            "type": "string",
            "description": "Any additional add-ons purchased with the booking. For example, `extra_baggage`.",
            "example": "extra_baggage"
          },
          "insurance": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "description": "The type of insurance.",
                "example": "travel"
              },
              "company": {
                "type": "string",
                "description": "The name of the insurance company.",
                "example": "AXA"
              },
              "price": {
                "type": "object",
                "properties": {
                  "amount": {
                    "type": "number",
                    "description": "The insurance amount, in the minor currency unit.",
                    "example": 500
                  },
                  "currency": {
                    "type": "string",
                    "description": "The currency of the insurance amount, as a three-letter ISO currency code.",
                    "example": "SAR"
                  }
                },
                "description": "The price of the insurance."
              }
            },
            "description": "Details about the travel insurance purchased with the booking."
          }
        },
        "description": "Details about the airline ticket and flights the customer booked."
      },
      "PaymentSetupAmountAllocation": {
        "title": "Amount Allocations",
        "required": [
          "id",
          "amount"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The id of the sub-entity.",
            "example": "ent_w4jelhppmfiufdnatam37wrfc4"
          },
          "amount": {
            "maximum": 9999999999,
            "minimum": 0,
            "type": "integer",
            "description": "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.\n\nThe amount must be provided in the <a href=\"https://www.checkout.com/docs/resources/calculating-the-amount\" target=\"blank\">minor currency unit</a>.\n",
            "format": "int64",
            "example": 1000
          },
          "reference": {
            "maxLength": 50,
            "type": "string",
            "description": "A reference you can later use to identify this split, such as an order number.",
            "example": "ORD-5023-4E89"
          },
          "commission": {
            "title": "Commission",
            "type": "object",
            "properties": {
              "amount": {
                "minimum": 0,
                "type": "integer",
                "description": "Optional fixed amount of commission to collect.\n\nThe amount must be provided in the <a href=\"https://www.checkout.com/docs/resources/calculating-the-amount\" target=\"blank\">minor currency unit</a>.\n",
                "format": "int64",
                "example": 1000
              },
              "percentage": {
                "maximum": 100,
                "minimum": 0,
                "type": "number",
                "description": "Optional percentage of commission to collect.\n\nSupports up to 8 decimal places.\n",
                "example": 1.125
              }
            },
            "description": "Commission you'd like to collect from this split - this will be credited to your currency account. The commission cannot exceed the split amount.\n\nCommission = (`amount` * `commission.percentage`) + `commission.amount`\n"
          }
        },
        "description": "An amount allocation representing a sub-entity on whose behalf the payment is being processed."
      },
      "PaymentSetupBilling": {
        "type": "object",
        "properties": {
          "address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentSetupAddress"
              }
            ]
          }
        },
        "description": "The billing details for the payment."
      },
      "PaymentSetupBillingDescriptor": {
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 25,
            "type": "string",
            "description": "A dynamic description of the payment.",
            "example": "Checkout.com"
          },
          "city": {
            "maxLength": 13,
            "type": "string",
            "description": "The city from which the payment was made.",
            "example": "London"
          },
          "reference": {
            "maxLength": 50,
            "type": "string",
            "description": "The reference shown on the statement.",
            "example": "Payment for order 123456"
          }
        },
        "description": "The billing descriptor for payment."
      },
      "PaymentSetupFlightLegDetails": {
        "type": "object",
        "properties": {
          "flight_number": {
            "type": "string",
            "description": "The flight identifier.",
            "example": "BA1483"
          },
          "carrier_code": {
            "type": "string",
            "description": "The IATA 2-letter accounting code (PAX) that identifies the carrier. Required if the airline data includes leg details.",
            "example": "BA"
          },
          "class_of_travelling": {
            "type": "string",
            "description": "A one-letter identifier for the travel class. For example:\n\n- `F` - First class\n- `J` - Business class\n- `W` - Premium economy class\n- `Y` - Economy class\n",
            "example": "W"
          },
          "departure_airport": {
            "type": "string",
            "description": "The IATA three-letter airport code for the departure airport. Required if the airline data includes leg details.",
            "example": "LHR"
          },
          "departure_date": {
            "type": "string",
            "description": "The date of the scheduled take-off.",
            "format": "date",
            "example": "2025-10-13T00:00:00.0000000"
          },
          "departure_time": {
            "type": "string",
            "description": "The time of the scheduled take-off.",
            "example": "18:30"
          },
          "arrival_airport": {
            "type": "string",
            "description": "The IATA three-letter airport code for the destination airport. Required if the airline data includes leg details.",
            "example": "JFK"
          },
          "stop_over_code": {
            "type": "string",
            "description": "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.\n",
            "example": "X"
          },
          "fare_basis_code": {
            "type": "string",
            "description": "The alphanumeric fare basis code.",
            "example": "WUP14B"
          }
        }
      },
      "PaymentSetupInstrument": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentSetupPaymentMethod"
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The unique identifier of the selected instrument.",
                "example": "src_wmlfc3zttb4uzmk6snpwb43jbi"
              },
              "type": {
                "type": "string",
                "description": "The type of the instrument.",
                "readOnly": true,
                "example": "bacs"
              },
              "action": {
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "set_instrument"
                    ],
                    "type": "string",
                    "description": "The type of action."
                  }
                },
                "description": "The next available action for the payment method.",
                "readOnly": true
              }
            }
          }
        ],
        "description": "The instrument payment method's details and configuration."
      },
      "PaymentSetupMerchantAccount": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The merchant's unique identifier for the customer's account.",
            "example": "1234"
          },
          "registration_date": {
            "type": "string",
            "description": "The date the customer registered their account with the merchant.",
            "format": "date",
            "example": "2023-05-01T00:00:00.0000000"
          },
          "last_modified": {
            "type": "string",
            "description": "The date the customer's account with the merchant was last modified.",
            "format": "date",
            "example": "2023-05-01T00:00:00.0000000"
          },
          "returning_customer": {
            "type": "boolean",
            "description": "Specifies if the customer is a returning customer."
          },
          "first_transaction_date": {
            "type": "string",
            "description": "The date of the customer's first transaction.",
            "format": "date",
            "example": "2023-09-15T00:00:00.0000000"
          },
          "last_transaction_date": {
            "type": "string",
            "description": "The date of the customer's most recent transaction.",
            "format": "date",
            "example": "2025-03-28T00:00:00.0000000"
          },
          "total_order_count": {
            "type": "integer",
            "description": "The total number of orders made by the customer.",
            "example": 6
          },
          "last_payment_amount": {
            "type": "number",
            "description": "The payment amount of the customer's most recent transaction.",
            "example": 55.99
          }
        },
        "description": "Details of the account the customer holds with the merchant."
      },
      "PaymentSetupPaymentMethod": {
        "type": "object",
        "properties": {
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodStatus"
              }
            ]
          },
          "flags": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodFlags"
              }
            ]
          }
        }
      },
      "PaymentSetupPhone": {
        "type": "object",
        "properties": {
          "country_code": {
            "maxLength": 7,
            "minLength": 1,
            "type": "string",
            "description": "The phone number's <a\nhref=\"https://www.checkout.com/docs/resources/codes/country-codes\"\ntarget=\"_blank\">international country calling code</a>.\n",
            "example": "+44"
          },
          "number": {
            "maxLength": 25,
            "minLength": 6,
            "type": "string",
            "description": "The phone number.",
            "example": "207 946 0000"
          }
        },
        "description": "The customer's phone number."
      },
      "PaymentSetupPresentmentDetails": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "integer",
            "description": "The presentment amount, in the minor currency unit.",
            "format": "int64",
            "example": 110
          },
          "currency": {
            "type": "string",
            "description": "The presentment currency, as a three-letter ISO currency code.",
            "example": "EUR"
          }
        },
        "description": "The amount and currency to present to the customer, when the settlement\ncurrency differs from the customer-facing currency.\n"
      },
      "PaymentSetupResponse": {
        "allOf": [
          {
            "required": [
              "id"
            ],
            "type": "object"
          },
          {
            "$ref": "#/components/schemas/PaymentSetup"
          }
        ]
      },
      "PaymentSetupShipping": {
        "type": "object",
        "properties": {
          "first_name": {
            "maxLength": 50,
            "type": "string",
            "description": "The customer's first name.",
            "example": "Jane"
          },
          "last_name": {
            "maxLength": 50,
            "type": "string",
            "description": "The customer's last name.",
            "example": "Doe"
          },
          "email": {
            "maxLength": 100,
            "type": "string",
            "description": "The customer's email address.",
            "example": "jane.doe@example.com"
          },
          "phone": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentSetupPhone"
              }
            ]
          },
          "address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentSetupAddress"
              }
            ]
          },
          "method": {
            "type": "string",
            "description": "The shipping method the customer selected. \n\nFor more information on which values you can specify, refer to the payment method's external API reference.\n"
          },
          "delay": {
            "maximum": 365,
            "minimum": 0,
            "type": "integer",
            "description": "The number of days between the order date and the expected delivery date.",
            "example": 3
          }
        },
        "description": "The customer's shipping details."
      },
      "PaymentSetupSubMerchant": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the sub-merchant.",
            "example": "SUB12345"
          },
          "product_category": {
            "type": "string",
            "description": "The product category for the sub-merchant.",
            "example": "Electronics"
          },
          "number_of_sales": {
            "type": "integer",
            "description": "The number of orders the sub-merchant has processed.",
            "example": 500
          },
          "registration_date": {
            "type": "string",
            "description": "The date the sub-merchant was registered.",
            "format": "date",
            "example": "2023-01-15T00:00:00.0000000"
          }
        },
        "description": "Details about a sub-merchant in the order."
      },
      "PaymentSetupTerminal": {
        "type": "object",
        "properties": {
          "id": {
            "maxLength": 8,
            "minLength": 8,
            "type": "string",
            "description": "Terminal identifier.",
            "example": "12345678"
          },
          "local_date_time": {
            "type": "string",
            "description": "The local date and time on the terminal, in ISO 8601 format.",
            "format": "date-time",
            "example": "2026-05-26T13:05:14.0000000+01:00"
          }
        },
        "description": "Terminal details."
      },
      "PaymentSetupValidationError": {
        "type": "object",
        "properties": {
          "request_id": {
            "type": "string",
            "description": "The unique identifier of the flagged request.",
            "example": "0HL80RJLS76I7"
          },
          "error_type": {
            "type": "string",
            "description": "The type of error flagged.",
            "example": "request_invalid"
          },
          "error_codes": {
            "type": "array",
            "items": {
              "type": "string",
              "example": "amount_required"
            },
            "description": "The error codes returned by the failed request."
          }
        },
        "description": "The validation errors flagged with the request."
      },
      "PayNow": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentSetupPaymentMethod"
          },
          {
            "type": "object"
          }
        ],
        "description": "The PayNow payment method's details and configuration."
      },
      "PayPal": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentSetupPaymentMethod"
          },
          {
            "$ref": "#/components/schemas/PaymentMethodInitialization"
          },
          {
            "type": "object",
            "properties": {
              "user_action": {
                "enum": [
                  "pay_now",
                  "continue"
                ],
                "type": "string",
                "description": "The user action for the PayPal widget.\n\n- `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.\n- `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.\n",
                "example": "pay_now"
              },
              "brand_name": {
                "maxLength": 127,
                "type": "string",
                "description": "The brand name to display in the PayPal checkout experience.",
                "example": "Acme Corporation"
              },
              "shipping_preference": {
                "enum": [
                  "no_shipping",
                  "get_from_file",
                  "set_provided_address"
                ],
                "type": "string",
                "description": "Where to obtain the shipping information.\n\n- `no_shipping` - Redacts the shipping address from the PayPal pages.\n- `get_from_file` - Obtains the shipping address from the customer's PayPal account.\n- `set_provided_address` - Uses the shipping address provided by the merchant.\n",
                "example": "no_shipping"
              },
              "action": {
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "sdk"
                    ],
                    "type": "string",
                    "description": "The type of action.",
                    "example": "sdk"
                  },
                  "order_id": {
                    "type": "string",
                    "description": "The PayPal order ID to use with the PayPal SDK.",
                    "example": "dd4b1a85-31de-404b-99f4-f143f8ba35ba"
                  }
                },
                "description": "The next available action for the payment method.",
                "readOnly": true
              }
            }
          }
        ],
        "description": "The PayPal payment method's details and configuration."
      },
      "Qpay": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentSetupPaymentMethod"
          },
          {
            "type": "object",
            "properties": {
              "national_id": {
                "type": "string",
                "description": "The Qatari national ID. Must start with 2 or 3, followed by 10 digits.",
                "writeOnly": true,
                "example": "21234567890"
              },
              "description": {
                "maxLength": 255,
                "type": "string",
                "description": "A description of the payment order. Alphanumeric characters only."
              }
            }
          }
        ],
        "description": "The QPay payment method's details and configuration."
      },
      "Sepa": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentSetupPaymentMethod"
          },
          {
            "type": "object",
            "properties": {
              "account_holder": {
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "individual",
                      "corporate"
                    ],
                    "type": "string",
                    "description": "The type of account holder."
                  },
                  "first_name": {
                    "type": "string",
                    "description": "The first name of the account holder."
                  },
                  "last_name": {
                    "type": "string",
                    "description": "The last name of the account holder."
                  },
                  "company_name": {
                    "type": "string",
                    "description": "The legal name of a registered company that holds the account."
                  }
                },
                "description": "The account holder details."
              },
              "account_number": {
                "type": "string",
                "description": "The account holder's IBAN.",
                "writeOnly": true
              },
              "country": {
                "maxLength": 2,
                "minLength": 2,
                "type": "string",
                "description": "The account's country, as an ISO 3166-1 alpha-2 code."
              },
              "currency": {
                "type": "string",
                "description": "The account holder's account currency."
              },
              "mandate": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The ID of the mandate."
                  },
                  "type": {
                    "enum": [
                      "core",
                      "b2b"
                    ],
                    "type": "string",
                    "description": "The type of mandate."
                  },
                  "date_of_signature": {
                    "type": "string",
                    "description": "The date the mandate was signed.",
                    "format": "date"
                  }
                },
                "description": "The mandate details."
              }
            }
          }
        ],
        "description": "The SEPA payment method's details and configuration."
      },
      "Sequra": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentSetupPaymentMethod"
          },
          {
            "type": "object"
          }
        ],
        "description": "The Sequra payment method's details and configuration."
      },
      "Stablecoin": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentSetupPaymentMethod"
          },
          {
            "type": "object"
          }
        ],
        "description": "The Stablecoin payment method's details and configuration."
      },
      "StcPay": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentSetupPaymentMethod"
          },
          {
            "$ref": "#/components/schemas/PaymentMethodInitialization"
          },
          {
            "type": "object",
            "properties": {
              "otp": {
                "type": "string",
                "description": "The one-time password (OTP) for stc pay.",
                "writeOnly": true,
                "example": "123456"
              },
              "action": {
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "otp"
                    ],
                    "type": "string",
                    "description": "The type of action."
                  }
                },
                "description": "The next available action for the payment method.",
                "readOnly": true
              }
            }
          }
        ],
        "description": "The stc pay payment method's details and configuration."
      },
      "Swish": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentSetupPaymentMethod"
          },
          {
            "type": "object",
            "properties": {
              "billing_descriptor": {
                "type": "string",
                "description": "A description that appears on the customer's billing statement."
              },
              "account_holder": {
                "type": "object",
                "properties": {
                  "first_name": {
                    "minLength": 1,
                    "type": "string",
                    "description": "The account holder's first name.",
                    "example": "John"
                  },
                  "last_name": {
                    "minLength": 1,
                    "type": "string",
                    "description": "The account holder's last name.",
                    "example": "Smith"
                  }
                },
                "description": "The account holder's details."
              }
            }
          }
        ],
        "description": "The Swish payment method's details and configuration."
      },
      "Tabby": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentSetupPaymentMethod"
          },
          {
            "$ref": "#/components/schemas/PaymentMethodInitialization"
          },
          {
            "type": "object",
            "properties": {
              "payment_types": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "The available payment types for Tabby (For example, `installments`).",
                "example": [
                  "pay_later"
                ]
              }
            }
          }
        ],
        "description": "The Tabby payment method's details and configuration."
      },
      "Tamara": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentSetupPaymentMethod"
          },
          {
            "$ref": "#/components/schemas/PaymentMethodInitialization"
          },
          {
            "type": "object",
            "properties": {
              "risk_assessment": {
                "type": "object",
                "properties": {
                  "premium_customer": {
                    "type": "boolean",
                    "description": "Specifies whether the customer is a premium customer.",
                    "example": false
                  },
                  "risk_score": {
                    "type": "integer",
                    "description": "The customer's risk score.",
                    "example": 42
                  },
                  "order_count_last24h": {
                    "type": "integer",
                    "description": "The number of orders the customer has made in the last 24 hours.",
                    "example": 0
                  },
                  "linked_device_count": {
                    "type": "integer",
                    "description": "The number of devices linked to the customer.",
                    "example": 2
                  }
                },
                "description": "Risk signals about the customer, forwarded to Tamara with the payment."
              }
            }
          }
        ],
        "description": "The Tamara payment method's details and configuration."
      },
      "TerminalType": {
        "enum": [
          "web",
          "wap",
          "app"
        ],
        "type": "string",
        "description": "The client-side terminal type. Indicates whether the customer is using a PC browser, mobile browser, or mobile application.",
        "example": "web"
      },
      "Tng": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentSetupPaymentMethod"
          },
          {
            "type": "object",
            "properties": {
              "terminal_type": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/TerminalType"
                  }
                ]
              },
              "os_type": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/OsType"
                  }
                ]
              }
            }
          }
        ],
        "description": "The TNG payment method's details and configuration."
      },
      "TrueMoney": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentSetupPaymentMethod"
          },
          {
            "type": "object",
            "properties": {
              "terminal_type": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/TerminalType"
                  }
                ]
              },
              "os_type": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/OsType"
                  }
                ]
              }
            }
          }
        ],
        "description": "The TrueMoney payment method's details and configuration."
      },
      "Twint": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentSetupPaymentMethod"
          },
          {
            "type": "object"
          }
        ],
        "description": "The Twint payment method's details and configuration."
      },
      "Vipps": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentSetupPaymentMethod"
          },
          {
            "type": "object"
          }
        ],
        "description": "The Vipps payment method's details and configuration."
      },
      "WeChatPay": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentSetupPaymentMethod"
          },
          {
            "type": "object"
          }
        ],
        "description": "The WeChatPay payment method's details and configuration."
      },
      "Shipping": {
        "type": "object",
        "properties": {
          "first_name": {
            "maxLength": 300,
            "type": "string",
            "description": "The first name of the person receiving the goods or the service.",
            "example": "John"
          },
          "last_name": {
            "maxLength": 300,
            "type": "string",
            "description": "The last name of the person receiving the goods or the service.",
            "example": "Smith"
          },
          "email": {
            "maxLength": 255,
            "type": "string",
            "description": "The email address associated with the shipping order.",
            "example": "john.smith@example.com"
          },
          "address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "The shipping address."
          },
          "phone": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PhoneNumber"
              }
            ],
            "description": "The phone number associated with the shipping address."
          },
          "from_address_zip": {
            "maxLength": 10,
            "type": "string",
            "description": "The postal code or zip code of the location being shipped from.",
            "example": "123456"
          },
          "timeframe": {
            "enum": [
              "ElectronicDelivery",
              "SameDay",
              "Overnight",
              "TwoDayOrMore"
            ],
            "type": "string",
            "description": "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.",
            "example": "SameDay"
          },
          "method": {
            "enum": [
              "Digital",
              "PickUp",
              "BillingAddress",
              "OtherAddress"
            ],
            "type": "string",
            "description": "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.",
            "example": "BillingAddress"
          },
          "delay": {
            "minimum": 0,
            "type": "integer",
            "description": "The number of days by which the shipping is delayed.",
            "example": 5
          }
        },
        "description": "The shipping details."
      },
      "Subscription": {
        "title": "Subscription",
        "type": "object",
        "properties": {
          "id": {
            "maxLength": 50,
            "type": "string",
            "description": "The ID or reference linking a series of recurring payments together."
          }
        },
        "description": "The details of the subscription."
      },
      "TrackingInfo": {
        "type": "object",
        "properties": {
          "return_shipping_company": {
            "maxLength": 100,
            "type": "string",
            "description": "Name of the shipping company for the return shipment (as specific as possible).",
            "example": "DHL US"
          },
          "return_tracking_number": {
            "maxLength": 100,
            "type": "string",
            "description": "Tracking number for the return shipment.",
            "example": "GM275322484009027685"
          },
          "return_tracking_uri": {
            "maxLength": 1024,
            "type": "string",
            "description": "URL where the customer can track the return shipment.",
            "example": "https://example.com/tracking/GM275322484009027685"
          },
          "shipping_company": {
            "maxLength": 100,
            "type": "string",
            "description": "Name of the shipping company (as specific as possible)",
            "example": "DHL US"
          },
          "tracking_number": {
            "maxLength": 100,
            "type": "string",
            "description": "Tracking number for the shipment.",
            "example": "GM275322484009027685"
          },
          "tracking_uri": {
            "maxLength": 1024,
            "type": "string",
            "description": "URI where the customer can track their shipment.",
            "example": "https://example.com/tracking/GM275322484009027685"
          }
        }
      },
      "TrustedListing": {
        "title": "TrustedListing",
        "type": "object",
        "properties": {
          "status": {
            "enum": [
              "Y",
              "N",
              "E",
              "P",
              "R",
              "U"
            ],
            "type": "string",
            "description": "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/>\n• 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\n",
            "example": "Y"
          },
          "source": {
            "type": "string",
            "description": "The system setting trusted beneficiary status<br/><br/>\n• 01 = 3DS Server <br/> • 02 = DS <br/> • 03 = ACS <br/> • 80-99 = DS-specific values <br/>\n",
            "example": "01"
          }
        },
        "description": "The details of the trusted listing status of the merchant"
      },
      "UnreferencedRefundRequest": {
        "title": "Unreferenced Refund",
        "required": [
          "source",
          "destination",
          "amount",
          "currency",
          "payment_type",
          "processing_channel_id"
        ],
        "type": "object",
        "properties": {
          "source": {
            "required": [
              "type",
              "id"
            ],
            "type": "object",
            "properties": {
              "type": {
                "enum": [
                  "currency_account"
                ],
                "type": "string",
                "description": "The unreferenced refund source type."
              },
              "id": {
                "maxLength": 29,
                "minLength": 29,
                "pattern": "^(ca)_(\\w{26})$",
                "type": "string",
                "description": "The ID of the currency account that will fund the unreferenced refund."
              }
            },
            "description": "The source of the unreferenced refund."
          },
          "destination": {
            "$ref": "#/components/schemas/UnreferencedRefundRequestDestination"
          },
          "instruction": {
            "type": "object",
            "properties": {
              "funds_transfer_type": {
                "type": "string",
                "description": "**Required** if `processing.processing_speed` is `fast`.\n\nValue of this field should be based on the destination card scheme: \n  - For Visa, use `MI`\n  - For Mastercard, use `C60`\n"
              },
              "purpose": {
                "enum": [
                  "family_support",
                  "expatriation",
                  "travel_and_tourism",
                  "education",
                  "medical_treatment",
                  "emergency_need",
                  "leisure",
                  "savings",
                  "gifts",
                  "donations",
                  "financial_services",
                  "it_services",
                  "investment",
                  "insurance",
                  "loan_payment",
                  "pension",
                  "royalties",
                  "other",
                  "income"
                ],
                "type": "string",
                "description": "The purpose of the unreferenced refund.\n\nThis field is required if the card's `issuer_country` is one of:\n\n  - `AR` (Argentina)\n  - `BD` (Bangladesh)\n  - `CL` (Chile)\n  - `CO` (Colombia)\n  - `EG` (Egypt)\n  - `IN` (India)\n  - `MX` (Mexico)\n\nTo 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).\n"
              }
            },
            "description": "Additional details about the unreferenced refund instruction."
          },
          "amount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Amount"
              },
              {
                "maximum": 9999999999,
                "minimum": 1
              }
            ],
            "description": "The amount in minor currency"
          },
          "currency": {
            "maxLength": 3,
            "minLength": 3,
            "type": "string",
            "description": "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>",
            "example": "GBP"
          },
          "payment_type": {
            "enum": [
              "UnreferencedRefund"
            ],
            "type": "string",
            "description": "The type of the payment"
          },
          "processing_channel_id": {
            "pattern": "^(pc)_(\\w{26})$",
            "type": "string",
            "description": "The processing channel identifier"
          },
          "reference": {
            "type": "string",
            "description": "An internal reference you can later use to identify this payment"
          },
          "metadata": {
            "type": "object",
            "description": "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.\n",
            "example": {
              "coupon_code": "NY2018",
              "partner_id": 123989
            }
          },
          "previous_payment_id": {
            "type": "string",
            "description": "The previous related payment identifier. This could be the ID of the payment that you want to refund.\n",
            "example": "pay_fun26akvvjjerahhctaq2uzhu4"
          },
          "segment": {
            "$ref": "#/components/schemas/Segment"
          },
          "processing": {
            "type": "object",
            "properties": {
              "processing_speed": {
                "enum": [
                  "fast"
                ],
                "type": "string",
                "description": "The speed at which the unreferenced refund is processed. \n\nOnly applicable for <a href=\"https://www.checkout.com/docs/payments/manage-payments/refund-a-payment/refund-a-payment-without-a-reference\">unreferenced refunds</a>.\n"
              }
            },
            "description": "Returns information related to the processing of the payment."
          }
        }
      },
      "VoidAcceptedResponse": {
        "required": [
          "action_id"
        ],
        "type": "object",
        "properties": {
          "action_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ActionId"
              }
            ],
            "description": "The unique identifier for the void action"
          },
          "reference": {
            "type": "string",
            "description": "Your reference for the void request",
            "example": "ORD-5023-4E89"
          },
          "_links": {
            "minItems": 2,
            "required": [
              "payment"
            ],
            "type": "object",
            "properties": {
              "payment": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Link"
                  }
                ],
                "example": {
                  "href": "https://{prefix}.api.checkout.com/payments/pay_y3oqhf46pyzuxjbcn2giaqnb44"
                }
              }
            },
            "description": "The links related to the void",
            "readOnly": true
          }
        },
        "description": "Void response"
      },
      "VoidRequest": {
        "type": "object",
        "properties": {
          "amount": {
            "maximum": 9999999999,
            "minimum": 0,
            "type": "integer",
            "description": "The amount to void. If not specified, the full payment amount will be voided.",
            "format": "int64",
            "example": 6540
          },
          "reference": {
            "maxLength": 80,
            "type": "string",
            "description": "A reference you can later use to identify this void request.<br>For Amex, the string limit is 30 characters.",
            "example": "ORD-5023-4E89"
          },
          "metadata": {
            "type": "object",
            "description": "A set of key-value pairs to attach to the authorization request. You can use this to store additional information in a structured format. \n\nThe `metadata` object only supports primitive data types. Objects and arrays are not supported.\n",
            "example": {
              "coupon_code": "NY2018",
              "partner_id": 123989
            }
          }
        }
      },
      "BankPayout": {
        "title": "Bank payout",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the payout.",
            "example": "pay_mbabizu24mvu3mela5njyhpit4"
          },
          "requested_on": {
            "type": "string",
            "description": "The UTC date and time the payment was requested, in ISO 8601 format.",
            "example": "2023-08-24T14:15:22Z"
          },
          "destination": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "description": "The payout destination type.",
                "example": "bank_account"
              },
              "id": {
                "type": "string",
                "description": "The unique identifier of the payment instrument.",
                "example": "src_4pakgjwmv5re5m5ivqohsqpxnm"
              },
              "bank_code": {
                "type": "string",
                "description": "The code that identifies the bank.",
                "example": "123-456"
              },
              "branch_code": {
                "type": "string",
                "description": "The code that identifies the bank branch.",
                "example": "6443"
              },
              "iban": {
                "type": "string",
                "description": "The International Bank Account Number (IBAN) of the account.",
                "example": "HU93116000060000000012345676"
              },
              "country": {
                "type": "string",
                "description": "The country where the account is based, as a [two-letter ISO country code](https://www.checkout.com/docs/developer-resources/codes/country-codes).",
                "example": "GB"
              },
              "account_holder": {
                "type": "object",
                "properties": {
                  "first_name": {
                    "type": "string",
                    "description": "The account holder's first name.",
                    "example": "Jia"
                  },
                  "last_name": {
                    "type": "string",
                    "description": "The account holder's last name.",
                    "example": "Tsang"
                  }
                },
                "description": "The account holder's details."
              }
            },
            "description": "The destination of the payout."
          },
          "amount": {
            "type": "number",
            "description": "The original payout amount.",
            "example": 10000
          },
          "currency": {
            "type": "string",
            "description": "The currency of the payout, as a [three-letter ISO currency code](https://www.checkout.com/docs/developer-resources/codes/currency-codes).",
            "example": "GBP"
          },
          "reference": {
            "type": "string",
            "description": "The reference for the payout.",
            "example": "ORD-5023-4E89"
          },
          "billing_descriptor": {
            "type": "object",
            "properties": {
              "reference": {
                "type": "string",
                "description": "The reference displayed on the payout recipient's bank statement.",
                "example": "BANK-REF"
              }
            },
            "description": "The billing descriptor details."
          },
          "status": {
            "type": "string",
            "description": "The status of the payout.",
            "example": "Pending"
          },
          "processing_channel_id": {
            "type": "string",
            "description": "The unique identifier of the processing channel that was used for the payout.",
            "example": "pc_vxt6yftthv4e5flqak6w2i7rim"
          },
          "sender": {
            "type": "object",
            "properties": {
              "first_name": {
                "type": "string",
                "description": "The sender's first name.",
                "example": "Ali"
              },
              "last_name": {
                "type": "string",
                "description": "The sender's last name.",
                "example": "Farid"
              }
            },
            "description": "The payout sender's details."
          },
          "actions": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "maxLength": 30,
                  "minLength": 30,
                  "pattern": "^(act)_(\\w{26})$",
                  "type": "string",
                  "description": "The unique identifier of the payment action."
                },
                "type": {
                  "enum": [
                    "Payout",
                    "Return"
                  ],
                  "type": "string",
                  "description": "The type of action."
                },
                "processed_on": {
                  "type": "string",
                  "description": "The date and time the action was processed.",
                  "format": "date-time"
                },
                "response_code": {
                  "type": "string",
                  "description": "The response code."
                },
                "response_summary": {
                  "type": "string",
                  "description": "The response summary."
                },
                "reference": {
                  "type": "string",
                  "description": "The reference for the payout."
                }
              }
            },
            "example": [
              {
                "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"
              }
            ]
          }
        }
      },
      "BankPayoutResponse": {
        "title": "Bank payout response",
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/BankPayout"
                }
              ]
            }
          },
          "_links": {
            "$ref": "#/components/schemas/Links"
          }
        }
      },
      "CardPayout": {
        "title": "Card payout",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the payout.",
            "example": "pay_mbabizu24mvu3mela5njyhpit4"
          },
          "requested_on": {
            "type": "string",
            "description": "The UTC date and time the payment was requested, in ISO 8601 format.",
            "example": "2023-08-24T14:15:22Z"
          },
          "destination": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "description": "The payout destination type.",
                "example": "card"
              },
              "id": {
                "type": "string",
                "description": "The unique identifier of the payment source.",
                "example": "ca_y3oqhf46pyzuxjbcn2giaqnb44"
              },
              "expiry_year": {
                "type": "string",
                "description": "The card expiration year.",
                "example": "2024"
              },
              "expiry_month": {
                "type": "string",
                "description": "The card expiration month.",
                "example": "04"
              },
              "account_holder": {
                "type": "object",
                "properties": {
                  "first_name": {
                    "type": "string",
                    "description": "The account holder's first name.\n\nThis field is only returned if `destination.account_holder.type` is `individual`.\n",
                    "example": "Jia"
                  },
                  "last_name": {
                    "type": "string",
                    "description": "The account holder's last name.\n\nThis field is only returned if `destination.account_holder.type` is `individual`.\n",
                    "example": "Tsang"
                  }
                },
                "description": "The account holder's details."
              },
              "scheme": {
                "type": "string",
                "description": "The card scheme.",
                "example": "Visa"
              },
              "last4": {
                "type": "string",
                "description": "The last four digits of the card number.",
                "example": "1212"
              },
              "issuer": {
                "type": "string",
                "description": "The issuer name.",
                "example": "issuer"
              },
              "issuer_country": {
                "type": "string",
                "description": "The issuer country, as a [two-letter ISO country code](https://www.checkout.com/docs/developer-resources/codes/country-codes).",
                "example": "issuer"
              }
            },
            "description": "The destination of the payout."
          },
          "amount": {
            "type": "number",
            "description": "The original payout amount.",
            "example": 10000
          },
          "currency": {
            "type": "string",
            "description": "The currency of the payout, as a [three-letter ISO currency code](https://www.checkout.com/docs/developer-resources/codes/currency-codes).",
            "example": "GBP"
          },
          "reference": {
            "type": "string",
            "description": "The reference for the payout.",
            "example": "ORD-5023-4E89"
          },
          "billing_descriptor": {
            "type": "object",
            "properties": {
              "reference": {
                "type": "string",
                "description": "The reference displayed on the payout recipient's bank statement.",
                "example": "CARD-REF"
              }
            },
            "description": "The billing descriptor details."
          },
          "status": {
            "type": "string",
            "description": "The status of the payout.",
            "example": "Paid"
          },
          "processing_channel_id": {
            "type": "string",
            "description": "The unique identifier of the processing channel that was used for the payout.",
            "example": "pc_vxt6yftthv4e5flqak6w2i7rim"
          },
          "sender": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "description": "The sender type. \n\nThis 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).\n",
                "example": "individual"
              },
              "first_name": {
                "type": "string",
                "description": "The sender's first name.\n\nThis field is only returned if `sender.type` is `individual`.\n",
                "example": "Ali"
              },
              "last_name": {
                "type": "string",
                "description": "The sender's last name.\n\nThis field is only returned if `sender.type` is `individual`.\n",
                "example": "Farid"
              }
            },
            "description": "The payout sender's details."
          },
          "metadata": {
            "type": "object",
            "description": "A set of key-value pairs attached to the payout, used to store additional information."
          },
          "actions": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "maxLength": 30,
                  "minLength": 30,
                  "pattern": "^(act)_(\\w{26})$",
                  "type": "string",
                  "description": "The unique identifier of the payment action."
                },
                "type": {
                  "enum": [
                    "Payout"
                  ],
                  "type": "string",
                  "description": "The type of action."
                },
                "processed_on": {
                  "type": "string",
                  "description": "The date and time the action was processed.",
                  "format": "date-time"
                },
                "processing": {
                  "type": "object",
                  "properties": {
                    "acquirer_reference_number": {
                      "type": "string",
                      "description": "A unique identifier for the payout that is submitted to the card scheme during processing."
                    }
                  }
                },
                "response_code": {
                  "type": "string",
                  "description": "The response code."
                },
                "response_summary": {
                  "type": "string",
                  "description": "The response summary."
                },
                "reference": {
                  "type": "string",
                  "description": "The reference for the payout."
                },
                "sanction_screening": {
                  "type": "string",
                  "description": "The outcome of sanction screening."
                }
              }
            },
            "example": [
              {
                "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"
              }
            ]
          }
        }
      },
      "CardPayoutResponse": {
        "title": "Card payout response",
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/CardPayout"
                }
              ]
            }
          },
          "_links": {
            "$ref": "#/components/schemas/Links"
          }
        }
      },
      "Links": {
        "title": "Links",
        "type": "object",
        "properties": {
          "next": {
            "maxLength": 2048,
            "minLength": 1,
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/Link"
              }
            ],
            "description": "A link to the next page of results, if the search returned more results than the value specified in `limit`.\n\nPagination links expire after 24 hours. If you attempt to access the link after this time, you receive a `404 Not Found` response code.\n"
          }
        },
        "description": "Links related to the search.",
        "example": {
          "next": {
            "href": "https://{prefix}.api.checkout.com/payments/search/nGd7-altGkOfSl3fJptLxA?token=MTc0MDUwMjE2MjQxOCxlN2NiNTdmYy04MDA5LTQ3YmMtOTYzNi0zNDEyOWRmZTkwZTI"
          }
        }
      },
      "Payin": {
        "title": "Payin",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the payment.",
            "example": "pay_mbabizu24mvu3mela5njyhpit4"
          },
          "requested_on": {
            "type": "string",
            "description": "The UTC date and time the payment was requested, in ISO 8601 format.",
            "example": "2023-08-24T14:15:22Z"
          },
          "source": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "description": "The payment source type. \n\nFor payment request sources that result in a card token, this will be `card`. For example, a token or source ID.\n",
                "example": "card"
              },
              "expiry_month": {
                "type": "string",
                "description": "The card expiration month.",
                "example": "04"
              },
              "expiry_year": {
                "type": "string",
                "description": "The card expiration year.",
                "example": "2024"
              },
              "name": {
                "type": "string",
                "description": "The cardholder's name.",
                "example": "Jia Tsang"
              },
              "scheme": {
                "type": "string",
                "description": "The card scheme.",
                "example": "Visa"
              },
              "local_schemes": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "The local co-branded card scheme.",
                "example": [
                  "cartes bancaires"
                ]
              },
              "last4": {
                "type": "string",
                "description": "The last four digits of the card number.",
                "example": "3131"
              },
              "fingerprint": {
                "type": "string",
                "description": "The card's unique fingerprint.\n\nYou can use the card fingerprint to compare cards across customers.\n",
                "example": "B16D9C2EF0C861A8825C9BD59CCE9171D84EBC45E89CC792B5D1D2D0DDE3DAB7"
              },
              "bin": {
                "type": "string",
                "description": "The card issuer's Bank Identification Number (BIN).",
                "example": "313131"
              },
              "card_type": {
                "type": "string",
                "description": "The card type.",
                "example": "credit"
              },
              "card_wallet_type": {
                "type": "string",
                "description": "The card wallet type.",
                "example": "googlepay"
              },
              "issuer": {
                "type": "string",
                "description": "The card issuer.",
                "example": "GE CAPITAL FINANCIAL, INC"
              },
              "issuer_country": {
                "type": "string",
                "description": "The issuer country, as a [two-letter ISO country code](https://www.checkout.com/docs/developer-resources/codes/country-codes).",
                "example": "US"
              },
              "avs_check": {
                "type": "string",
                "description": "The result of the Address Verification System (AVS) check.",
                "example": "G"
              }
            },
            "description": "The source of the payment."
          },
          "amount": {
            "type": "number",
            "description": "The original payment amount.",
            "example": 10000
          },
          "amount_requested": {
            "type": "number",
            "description": "The full amount from the original authorization, if a partial authorization was requested.",
            "example": 10000
          },
          "currency": {
            "type": "string",
            "description": "The currency of the payment, as a [three-letter ISO currency code](https://www.checkout.com/docs/developer-resources/codes/currency-codes).",
            "example": "GBP"
          },
          "payment_type": {
            "type": "string",
            "description": "The type of payment.\n\nThis field is returned for card payments where the cardholder was not present. For example, recurring payments or mail order / telephone order (MOTO) payments.\n",
            "example": "regular"
          },
          "processing_channel_id": {
            "type": "string",
            "description": "The unique identifier of the processing channel that was used for the payment.",
            "example": "pc_vxt6yftthv4e5flqak6w2i7rim"
          },
          "reference": {
            "type": "string",
            "description": "The reference for the payment.",
            "example": "ORD-5023-4E89"
          },
          "status": {
            "type": "string",
            "description": "The status of the payment.",
            "example": "captured"
          },
          "balances": {
            "type": "object",
            "properties": {
              "total_authorized": {
                "type": "number",
                "description": "The total amount that was authorized.",
                "example": 200
              },
              "total_captured": {
                "type": "number",
                "description": "The total amount that was captured.",
                "example": 150
              },
              "total_refunded": {
                "type": "number",
                "description": "The total amount that was refunded.",
                "example": 50
              }
            },
            "description": "The payment's balances."
          },
          "3ds": {
            "type": "object",
            "properties": {
              "eci": {
                "type": "string",
                "description": "The Electronic Commerce Indicator (ECI).",
                "example": "02"
              },
              "version": {
                "type": "string",
                "description": "The version of 3DS that was used for authentication.",
                "example": "2.1.0"
              }
            },
            "description": "Details relating to payments processed with 3D Secure (3DS)."
          },
          "risk": {
            "type": "object",
            "properties": {
              "flagged": {
                "type": "boolean",
                "description": "Specifies whether the payment was flagged by a risk check.",
                "example": false
              },
              "score": {
                "type": "string",
                "description": "The risk score calculated by our Fraud Detection engine.\n\nThis field is only returned if sufficient data was provided to Fraud Detection.\n",
                "example": "22"
              }
            },
            "description": "The payment's risk assessment results."
          },
          "customer": {
            "type": "object",
            "properties": {
              "email": {
                "type": "string",
                "description": "The customer's email address.",
                "example": "jia.tsang@checkout.com"
              },
              "name": {
                "type": "string",
                "description": "The customer's name.",
                "example": "Jia Tsang"
              }
            },
            "description": "The customer linked to the payment."
          },
          "billing_descriptor": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "The reference displayed on the customer's bank statement.",
                "example": "Purchase"
              },
              "city": {
                "type": "string",
                "description": "The city from which the payment originated.",
                "example": "London"
              }
            },
            "description": "An optional description displayed on the customer's statement identifying a purchase.\n\nApplies to card payments only.\n"
          },
          "metadata": {
            "type": "object",
            "description": "A set of key-value pairs attached to the payout, used to store additional information."
          },
          "actions": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "maxLength": 30,
                  "minLength": 30,
                  "pattern": "^(act)_(\\w{26})$",
                  "type": "string",
                  "description": "The unique identifier of the payment action, including authentication and disputes."
                },
                "type": {
                  "enum": [
                    "Authentication",
                    "Authorization",
                    "Card Verification",
                    "Void",
                    "Capture",
                    "Partial Capture",
                    "Partial Refund",
                    "Refund",
                    "Cancelation",
                    "Request",
                    "Pending",
                    "Dispute"
                  ],
                  "type": "string",
                  "description": "The type of action."
                },
                "status": {
                  "type": "string",
                  "description": "The action outcome."
                },
                "processed_on": {
                  "type": "string",
                  "description": "The date and time the action was processed.",
                  "format": "date-time"
                },
                "amount": {
                  "type": "integer",
                  "description": "The action amount in minor currency units."
                },
                "auth_code": {
                  "type": "string",
                  "description": "The issuer authorization code for cards."
                },
                "response_code": {
                  "type": "string",
                  "description": "The response code."
                },
                "response_summary": {
                  "type": "string",
                  "description": "The response summary."
                },
                "reference": {
                  "type": "string",
                  "description": "Your reference for the action."
                },
                "processing": {
                  "type": "object",
                  "properties": {
                    "acquirer_reference_number": {
                      "type": "string",
                      "description": "A unique identifier for the capture that is submitted to the card scheme during processing."
                    }
                  }
                },
                "fraud_score": {
                  "type": "string",
                  "description": "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": {
                  "type": "string",
                  "description": "The reason for the response status. This is only available as a result of a 3DS2 authentication."
                },
                "authentication_experience": {
                  "type": "string",
                  "description": "The authentication type used."
                },
                "reason_code": {
                  "type": "string",
                  "description": "The reason code provided by the card scheme. This only applies to disputes."
                }
              }
            },
            "example": [
              {
                "id": "act_egiv5753bwmexj6ip3tlpog6gq",
                "type": "Dispute",
                "processed_on": "2023-08-25T14:15:24.0000000+00:00",
                "status": "Evidence Required",
                "amount": 1310,
                "reason_code": "13.1"
              },
              {
                "id": "act_i3cd3w3lcooexmyrtlgulk3d7a",
                "type": "Capture",
                "processed_on": "2023-08-24T14:15:26.0000000+00:00",
                "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:25.0000000+00:00",
                "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:24.0000000+00:00",
                "status": "Pending",
                "amount": 1310,
                "reference": "REF-7HR-IYW"
              },
              {
                "id": "act_qocmjw6skb4u3c4wd3avpot64y",
                "type": "Authentication",
                "processed_on": "2023-08-24T14:15:34.0000000+00:00",
                "status": "Approved",
                "authentication_experience": "3ds",
                "authentication_transaction_id": "f05af960-f718-428d-b856-068f6cb9a3b4"
              },
              {
                "id": "act_qocmjw6skb4u3c4wd3avpot64y",
                "type": "Authentication",
                "processed_on": "2023-08-24T14:15:22.0000000+00:00",
                "status": "Pending",
                "reference": "REF-7HR-IYW"
              }
            ]
          }
        }
      },
      "PayinResponse": {
        "title": "Payin response",
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/Payin"
                }
              ]
            }
          },
          "_links": {
            "$ref": "#/components/schemas/Links"
          }
        }
      },
      "SearchError": {
        "title": "Search error",
        "type": "object",
        "properties": {
          "request_id": {
            "type": "string",
            "example": "0HL80RJLS76I7"
          },
          "error_type": {
            "type": "string",
            "example": "request_invalid"
          },
          "error_codes": {
            "type": "array",
            "items": {
              "type": "string",
              "example": "unknown_attribute"
            }
          }
        }
      },
      "SearchRequest": {
        "title": "Search request",
        "type": "object",
        "properties": {
          "query": {
            "maxLength": 1024,
            "type": "string",
            "description": "The query string.\n\nFor 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.",
            "example": "id:'pay_mbabizu24mvu3mela5njyhpit4'"
          },
          "limit": {
            "maximum": 1000,
            "minimum": 1,
            "type": "integer",
            "description": "The number of results to return per page.",
            "default": 10,
            "example": 10
          },
          "from": {
            "type": "string",
            "description": "The UTC date and time for the query start in ISO 8601 format. Required if `to` is provided.",
            "example": "2023-08-24T14:15:22Z"
          },
          "to": {
            "type": "string",
            "description": "The UTC date and time for the query end in ISO 8601 format. Required if `from` is provided.",
            "example": "2023-08-24T14:15:22Z"
          }
        }
      },
      "CreateAndSubmitPaymentSessionsActionRequiredResponse": {
        "required": [
          "id",
          "status",
          "type",
          "action",
          "payment_session_id",
          "payment_session_secret"
        ],
        "type": "object",
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentId"
              }
            ]
          },
          "status": {
            "enum": [
              "Action Required"
            ],
            "type": "string",
            "description": "The payment's status."
          },
          "type": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentInterfacesPaymentMethod"
              }
            ],
            "description": "The payment method name."
          },
          "action": {
            "type": "object",
            "description": "Instruction for further payment action."
          },
          "payment_session_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentSessionId"
              }
            ]
          },
          "payment_session_secret": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentSessionSecret"
              }
            ]
          }
        },
        "description": "Response for an action required payment session payment."
      },
      "CreateAndSubmitPaymentSessionsProcessedResponse": {
        "required": [
          "id",
          "status",
          "type"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/CreateAndSubmitPaymentSessionsProcessedResponseStatusApproved"
          },
          {
            "$ref": "#/components/schemas/CreateAndSubmitPaymentSessionsProcessedResponseStatusDeclined"
          }
        ],
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentId"
              }
            ]
          },
          "status": {
            "enum": [
              "Approved",
              "Declined"
            ],
            "type": "string",
            "description": "The payment's status."
          },
          "type": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentInterfacesPaymentMethod"
              }
            ],
            "description": "The payment method name."
          }
        },
        "discriminator": {
          "propertyName": "status",
          "mapping": {
            "Approved": "#/components/schemas/CreateAndSubmitPaymentSessionsProcessedResponseStatusApproved",
            "Declined": "#/components/schemas/CreateAndSubmitPaymentSessionsProcessedResponseStatusDeclined"
          }
        }
      },
      "CreateAndSubmitPaymentSessionsProcessedResponseStatusApproved": {
        "title": "Approved",
        "required": [
          "id",
          "status",
          "type",
          "payment_session_id",
          "payment_session_secret"
        ],
        "type": "object",
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentId"
              }
            ]
          },
          "status": {
            "enum": [
              "Approved"
            ],
            "type": "string",
            "description": "The payment was approved."
          },
          "type": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentInterfacesPaymentMethod"
              }
            ],
            "description": "The payment method name."
          },
          "payment_session_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentSessionId"
              }
            ]
          },
          "payment_session_secret": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentSessionSecret"
              }
            ]
          }
        },
        "description": "Response for an approved payment session payment."
      },
      "CreateAndSubmitPaymentSessionsProcessedResponseStatusDeclined": {
        "title": "Declined",
        "required": [
          "id",
          "status",
          "type",
          "decline_reason"
        ],
        "type": "object",
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentId"
              }
            ]
          },
          "status": {
            "enum": [
              "Declined"
            ],
            "type": "string",
            "description": "The payment was declined."
          },
          "type": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentInterfacesPaymentMethod"
              }
            ],
            "description": "The payment method name."
          },
          "decline_reason": {
            "type": "string",
            "description": "The reason for the payment decline."
          }
        },
        "description": "Response for a declined payment session payment."
      },
      "CreateAndSubmitPaymentSessionsRequest": {
        "type": "object",
        "allOf": [
          {
            "required": [
              "session_data"
            ],
            "type": "object",
            "properties": {
              "session_data": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PaymentSessionsSessionData"
                  }
                ]
              }
            }
          },
          {
            "$ref": "#/components/schemas/CreatePaymentSessionsBaseRequest"
          }
        ]
      },
      "CreatePaymentSessionsBaseRequest": {
        "required": [
          "amount",
          "currency",
          "billing",
          "success_url",
          "failure_url"
        ],
        "type": "object",
        "properties": {
          "amount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentSessionsAmount"
              }
            ]
          },
          "currency": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentSessionCurrency"
              }
            ]
          },
          "payment_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentSessionPaymentType"
              }
            ]
          },
          "authorization_type": {
            "enum": [
              "Final",
              "Estimated"
            ],
            "type": "string",
            "description": "The authorization type.",
            "default": "Final",
            "example": "Estimated"
          },
          "billing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentSessionBilling"
              }
            ]
          },
          "billing_descriptor": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentSessionsBillingDescriptor"
              }
            ]
          },
          "reference": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentInterfacesReference"
              }
            ]
          },
          "description": {
            "maxLength": 100,
            "type": "string",
            "description": "A description for the payment.",
            "example": "Payment for gold necklace"
          },
          "customer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentSessionCustomer"
              }
            ]
          },
          "shipping": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentSessionShipping"
              }
            ]
          },
          "recipient": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentInterfacesRecipient"
              }
            ]
          },
          "processing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentInterfacesProcessing"
              }
            ]
          },
          "instruction": {
            "type": "object",
            "properties": {
              "purpose": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Purpose"
                  }
                ]
              }
            },
            "description": "Details about the payment instruction."
          },
          "processing_channel_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentSessionProcessingChannelId"
              }
            ]
          },
          "items": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentSessionsItems"
              }
            ]
          },
          "amount_allocations": {
            "maxItems": 50,
            "minItems": 1,
            "type": "array",
            "items": {
              "required": [
                "id",
                "amount"
              ],
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The sub-entity's ID."
                },
                "amount": {
                  "minimum": 0,
                  "type": "integer",
                  "description": "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.",
                  "example": 1
                },
                "reference": {
                  "maxLength": 50,
                  "type": "string",
                  "description": "A reference you can use to identify the split. For example, an order number.",
                  "example": "ORD-123A"
                },
                "commission": {
                  "type": "object",
                  "properties": {
                    "amount": {
                      "minimum": 0,
                      "type": "integer",
                      "description": "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>.",
                      "example": 10
                    },
                    "percentage": {
                      "maximum": 100,
                      "minimum": 0,
                      "type": "number",
                      "description": "An optional commission to collect, as a percentage value with up to eight decimal places.",
                      "example": 12.5
                    }
                  },
                  "description": "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.\n"
                }
              },
              "description": "The sub-entities that the payment is being processed on behalf of."
            },
            "description": "The sub-entities that the payment is being processed on behalf of."
          },
          "risk": {
            "required": [
              "enabled"
            ],
            "type": "object",
            "properties": {
              "enabled": {
                "type": "boolean",
                "description": "Specifies whether to perform a risk assessment.",
                "default": true,
                "example": false
              }
            },
            "description": "Configures the risk assessment performed during payment processing."
          },
          "display_name": {
            "maxLength": 255,
            "type": "string",
            "description": "The merchant's display name."
          },
          "success_url": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentSessionsSuccessUrl"
              }
            ]
          },
          "failure_url": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentSessionsFailureUrl"
              }
            ]
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentSessionMetadata"
              }
            ]
          },
          "locale": {
            "enum": [
              "ar",
              "da-DK",
              "de-DE",
              "el",
              "en-GB",
              "es-ES",
              "fi-FI",
              "fil-PH",
              "fr-FR",
              "hi-IN",
              "id-ID",
              "it-IT",
              "ja-JP",
              "ko-KR",
              "ms-MY",
              "nb-NO",
              "nl-NL",
              "pt-PT",
              "sv-SE",
              "th-TH",
              "vi-VN",
              "zh-CN",
              "zh-HK",
              "zh-TW"
            ],
            "type": "string",
            "description": "Creates a translated version of the page in the specified language.",
            "default": "en-GB"
          },
          "3ds": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentSessions3DS"
              }
            ]
          },
          "sender": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentInterfacesSender"
              }
            ],
            "description": "The sender of the payment."
          },
          "capture": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentSessionCaptureFlag"
              }
            ]
          },
          "capture_on": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentSessionCaptureOn"
              }
            ]
          },
          "payment_plan": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentSessionPaymentPlanRecurring"
              }
            ]
          }
        }
      },
      "CreatePaymentSessionsRequest": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/CreatePaymentSessionsBaseRequest"
          },
          {
            "type": "object",
            "properties": {
              "expires_on": {
                "type": "string",
                "description": "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.",
                "format": "date-time",
                "example": "2024-01-01T09:15:30.0000000+00:00"
              },
              "enabled_payment_methods": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PaymentInterfacesPaymentMethods"
                  }
                ],
                "description": "Specifies which payment method options to present to the customer.\n\nThe values in this field override any equivalent values in `disabled_payment_methods`.\n",
                "example": [
                  "card",
                  "applepay",
                  "googlepay"
                ]
              },
              "disabled_payment_methods": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PaymentInterfacesPaymentMethods"
                  }
                ],
                "description": "Specifies which payment method options to not present to the customer.\n\nIf you specify the same payment method in this field and in `enabled_payment_methods`, the `disabled_payment_methods` value will be overridden.\n\nAny payment method options not explicitly specified in this field will be presented to the customer by default.\n",
                "example": [
                  "eps",
                  "ideal",
                  "knet"
                ]
              },
              "payment_method_configuration": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PaymentSessionsPaymentMethodConfigurationBase"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "applepay": {
                        "type": "object",
                        "properties": {
                          "account_holder": {
                            "type": "object",
                            "description": "The account holder's details.",
                            "discriminator": {
                              "propertyName": "type",
                              "mapping": {
                                "individual": "#/components/schemas/01_PaymentSessionRequest_AccountHolderIndividual",
                                "corporate": "#/components/schemas/02_PaymentSessionRequest_AccountHolderCorporate",
                                "government": "#/components/schemas/03_PaymentSessionRequest_AccountHolderGovernment"
                              }
                            }
                          },
                          "total_type": {
                            "enum": [
                              "pending",
                              "final"
                            ],
                            "type": "string",
                            "description": "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).",
                            "default": "final"
                          }
                        }
                      },
                      "card": {
                        "type": "object",
                        "properties": {
                          "account_holder": {
                            "type": "object",
                            "description": "The account holder's details.",
                            "discriminator": {
                              "propertyName": "type",
                              "mapping": {
                                "individual": "#/components/schemas/01_PaymentSessionRequest_AccountHolderIndividual",
                                "corporate": "#/components/schemas/02_PaymentSessionRequest_AccountHolderCorporate",
                                "government": "#/components/schemas/03_PaymentSessionRequest_AccountHolderGovernment"
                              }
                            }
                          }
                        }
                      },
                      "googlepay": {
                        "type": "object",
                        "properties": {
                          "account_holder": {
                            "type": "object",
                            "description": "The account holder's details.",
                            "discriminator": {
                              "propertyName": "type",
                              "mapping": {
                                "individual": "#/components/schemas/01_PaymentSessionRequest_AccountHolderIndividual",
                                "corporate": "#/components/schemas/02_PaymentSessionRequest_AccountHolderCorporate",
                                "government": "#/components/schemas/03_PaymentSessionRequest_AccountHolderGovernment"
                              }
                            }
                          },
                          "total_price_status": {
                            "enum": [
                              "estimated",
                              "final"
                            ],
                            "type": "string",
                            "description": "The status of the Google Pay payment [total price](https://developers.google.com/pay/api/web/reference/request-objects#TransactionInfo).",
                            "default": "final"
                          }
                        }
                      },
                      "stored_card": {
                        "type": "object",
                        "properties": {
                          "customer_id": {
                            "pattern": "^(cus)_(\\w{26})$",
                            "type": "string",
                            "description": "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.\n\nThis value takes precedence over `payment_method_configuration.stored_card.instrument_ids` when choosing the stored cards to present to the customer.\n"
                          },
                          "instrument_ids": {
                            "maxItems": 10,
                            "minItems": 1,
                            "type": "array",
                            "items": {
                              "pattern": "^(src)_(\\w{26})$",
                              "type": "string"
                            },
                            "description": "The unique identifiers for card instruments. Enables stored card payment method if any  exists.\n\nThe first valid payment instrument in the list is shown to the customer as the default option.  <br/>\nAlternatively, you can specify a default payment instrument by providing its ID in the `payment_method_configuration.stored_card.default_instrument_id` field.\n"
                          },
                          "default_instrument_id": {
                            "pattern": "^(src)_(\\w{26})$",
                            "type": "string",
                            "description": "The unique identifier for the payment instrument to present to the customer as the default option."
                          }
                        },
                        "description": "Configuration options specific to stored card payments."
                      }
                    }
                  }
                ]
              },
              "customer_retry": {
                "required": [
                  "max_attempts"
                ],
                "type": "object",
                "properties": {
                  "max_attempts": {
                    "maximum": 5,
                    "minimum": 0,
                    "type": "integer",
                    "description": "The maximum number of authorization retry attempts, excluding the initial authorization.",
                    "default": 5,
                    "example": 2
                  }
                },
                "description": "Configuration for asynchronous retries."
              },
              "ip_address": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/IPAddress"
                  }
                ],
                "description": "The Customers IP address. Only IPv4 and IPv6 addresses are accepted.",
                "deprecated": true
              }
            }
          }
        ]
      },
      "CreatePaymentSessionsResponse": {
        "required": [
          "id",
          "payment_session_token",
          "payment_session_secret",
          "_links"
        ],
        "type": "object",
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentSessionId"
              }
            ]
          },
          "payment_session_token": {
            "type": "string",
            "description": "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_).\n\nDo not log or store this value.\n"
          },
          "payment_session_secret": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentSessionSecret"
              }
            ]
          },
          "_links": {
            "required": [
              "self"
            ],
            "type": "object",
            "properties": {
              "self": {
                "required": [
                  "href"
                ],
                "type": "object",
                "properties": {
                  "href": {
                    "type": "string",
                    "description": "The link URL",
                    "example": "https://{prefix}.api.sandbox.checkout.com/payment-sessions/ps_2Un6I6lRpIAiIEwQIyxWVnV9CqQ"
                  }
                },
                "description": "The URI of the Payment Session."
              }
            },
            "description": "The links related to the Payment Session."
          }
        }
      },
      "PaymentSessionsRateLimitedResponse": {
        "required": [
          "request_id",
          "error_type",
          "error_codes"
        ],
        "type": "object",
        "properties": {
          "request_id": {
            "type": "string"
          },
          "error_type": {
            "type": "string"
          },
          "error_codes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "PaymentSessionsValidationErrorResponse": {
        "required": [
          "request_id",
          "error_type",
          "error_codes"
        ],
        "type": "object",
        "properties": {
          "request_id": {
            "type": "string"
          },
          "error_type": {
            "type": "string"
          },
          "error_codes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "PaymentSessionBilling": {
        "required": [
          "address"
        ],
        "type": "object",
        "properties": {
          "address": {
            "required": [
              "country"
            ],
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "The billing address."
          },
          "phone": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentInterfacesPhoneNumber"
              }
            ],
            "description": "The phone number associated with the billing address"
          }
        },
        "description": "The billing details."
      },
      "PaymentSessionCaptureFlag": {
        "type": "boolean",
        "description": "Specifies whether to capture the payment, if applicable.",
        "default": true,
        "example": true
      },
      "PaymentSessionCaptureOn": {
        "type": "string",
        "description": "A timestamp specifying when to capture the payment, as an ISO 8601 code. If a value is provided, `capture` is automatically set to `true`.",
        "format": "date-time",
        "example": "2024-01-01T09:15:30.0000000+00:00"
      },
      "PaymentSessionCurrency": {
        "maxLength": 3,
        "minLength": 3,
        "type": "string",
        "description": "The three-letter <a href=\"https://www.checkout.com/docs/resources/codes/currency-codes\" target=\"blank\">ISO currency code</a>.",
        "example": "USD"
      },
      "PaymentSessionCustomer": {
        "type": "object",
        "properties": {
          "email": {
            "maxLength": 255,
            "type": "string",
            "description": "The customer's email address. Required if `source.type` is `tamara`.",
            "format": "email",
            "example": "jia.tsang@example.com"
          },
          "name": {
            "maxLength": 255,
            "type": "string",
            "description": "The customer's name. Required if `source.type` is `tamara`.",
            "example": "Jia Tsang"
          },
          "id": {
            "pattern": "^(cus)_(\\w{26})$",
            "type": "string",
            "description": "The unique identifier for an existing customer."
          },
          "phone": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentInterfacesPhoneNumber"
              }
            ],
            "description": "The customer's phone number. Required if `source.type` is `tamara`."
          },
          "tax_number": {
            "maxLength": 13,
            "type": "string",
            "description": "The customer's value-added tax (VAT) registration number."
          },
          "summary": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentInterfacesCustomerSummary"
              }
            ]
          }
        },
        "description": "The customer's details. Required if `source.type` is `tamara`."
      },
      "PaymentSessionId": {
        "maxLength": 30,
        "minLength": 30,
        "pattern": "^(ps)_(\\w{27})$",
        "type": "string",
        "description": "The Payment Sessions unique identifier",
        "example": "ps_2Un6I6lRpIAiIEwQIyxWVnV9CqQ"
      },
      "PaymentSessionMetadata": {
        "maxProperties": 18,
        "type": "object",
        "description": "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.\n\nYou can provide up to 18 metadata fields per API call, but the value of each field must not exceed 255 characters in length.\n\nYou 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'`.\n",
        "example": {
          "coupon_code": "NY2018"
        }
      },
      "PaymentSessionPaymentPlanRecurring": {
        "type": "object",
        "properties": {
          "amount_variability": {
            "enum": [
              "Fixed",
              "Variable"
            ],
            "type": "string",
            "description": "Specifies whether the amount is fixed or variable for each recurrence.",
            "example": "Variable"
          },
          "days_between_payments": {
            "type": "integer",
            "description": "Indicates the minimum number of days between payments.",
            "example": 28
          },
          "total_number_of_payments": {
            "type": "integer",
            "description": "Indicates the agreed total number of payments.",
            "example": 5
          },
          "current_payment_number": {
            "type": "integer",
            "description": "The number of the current installment payment.",
            "example": 3
          },
          "expiry": {
            "type": "string",
            "description": "The date after which no further payments will be performed, in the format YYYYMMDD.",
            "example": "20251031"
          },
          "name": {
            "maxLength": 35,
            "type": "string",
            "description": "The name of the payment plan.\n\nRequired 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.\n",
            "example": "Subscription 1234"
          },
          "start_date": {
            "type": "string",
            "description": "The date on which the first payment will be taken, in `YYYYMMDD` format.\n\nRequired when `source.type` is `blik` and the recurring agreement is created without an initial payment (`amount` set to `0`).\n",
            "example": "20260507"
          },
          "amount": {
            "minimum": 1,
            "type": "integer",
            "description": "The amount to charge for each payment in the plan, in the [minor currency unit](https://www.checkout.com/docs/resources/calculating-the-amount).\n\nRequired 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`).\n",
            "example": 1234
          }
        },
        "description": "The information to process a recurring payment request. To be used when the payment_type is Recurring."
      },
      "PaymentSessionPaymentType": {
        "enum": [
          "Regular",
          "Recurring",
          "MOTO",
          "Installment",
          "Unscheduled"
        ],
        "type": "string",
        "description": "Must be specified for card-not-present (CNP) payments. For example, a recurring mail order / telephone order (MOTO) payment.",
        "default": "Regular"
      },
      "PaymentSessionProcessingChannelId": {
        "pattern": "^(pc)_(\\w{26})$",
        "type": "string",
        "description": "The processing channel to use for the payment."
      },
      "PaymentSessions3DS": {
        "type": "object",
        "anyOf": [
          {
            "$ref": "#/components/schemas/PaymentSessions3DSIntegrated"
          },
          {
            "$ref": "#/components/schemas/PaymentSessions3DSThirdParty"
          }
        ]
      },
      "PaymentSessions3DSAccountInfo": {
        "title": "AccountInfo",
        "type": "object",
        "properties": {
          "purchase_count": {
            "maximum": 9999,
            "minimum": 0,
            "type": "number",
            "description": "The number of purchases with this cardholder's account during the last six months\n",
            "example": 10
          },
          "account_age": {
            "enum": [
              "no_account",
              "created_during_transaction",
              "less_than_thirty_days",
              "thirty_to_sixty_days",
              "more_than_sixty_days"
            ],
            "type": "string",
            "description": "The length of time that the payment account was enrolled in the cardholder's account\n"
          },
          "add_card_attempts": {
            "maximum": 999,
            "minimum": 0,
            "type": "number",
            "description": "The number of _Add Card_ attempts in the last 24 hours\n",
            "example": 10
          },
          "shipping_address_age": {
            "enum": [
              "this_transaction",
              "less_than_thirty_days",
              "thirty_to_sixty_days",
              "more_than_sixty_days"
            ],
            "type": "string",
            "description": "Indicates when the shipping address for this transaction was first used\n"
          },
          "account_name_matches_shipping_name": {
            "type": "boolean",
            "description": "Indicates if the cardholder name on the account is identical to the shipping name used for this transaction\n",
            "example": true
          },
          "suspicious_account_activity": {
            "type": "boolean",
            "description": "Indicates whether suspicious activity on the cardholder account has been observed\n",
            "example": true
          },
          "transactions_today": {
            "maximum": 999,
            "minimum": 0,
            "type": "number",
            "description": "The number of transactions (successful and abandoned) for the cardholder account across all payment accounts in the previous 24 hours\n",
            "example": 10
          },
          "authentication_method": {
            "enum": [
              "no_authentication",
              "own_credentials",
              "federated_id",
              "issuer_credentials",
              "third_party_authentication",
              "fido"
            ],
            "type": "string",
            "description": "Information about how the cardholder was authenticated before or during the transaction\n"
          },
          "cardholder_account_age_indicator": {
            "enum": [
              "no_account",
              "this_transaction",
              "less_than_thirty_days",
              "thirty_to_sixty_days",
              "more_than_sixty_days"
            ],
            "type": "string",
            "description": "The length of time the cardholder has held the account with the 3DS Requestor"
          },
          "account_change": {
            "type": "string",
            "description": "The UTC date and time the cardholder’s account with the 3DS Requestor was last changed, in ISO 8601 format.\n\nChanges that affect this value include:\n- updating the billing or shipping address\n- adding a new payment account\n- adding a new user\n",
            "format": "date-time"
          },
          "account_change_indicator": {
            "enum": [
              "this_transaction",
              "less_than_thirty_days",
              "thirty_to_sixty_days",
              "more_than_sixty_days"
            ],
            "type": "string",
            "description": "The amount of time since the cardholder’s account information with the 3DS Requestor was last changed.\n\nChanges that affect this value include:\n- updating the billing or shipping address\n- adding a new payment account\n- adding a new user\n"
          },
          "account_date": {
            "type": "string",
            "description": "The UTC date and time the cardholder opened the account with the 3DS Requestor, in ISO 8601 format.",
            "format": "date-time"
          },
          "account_password_change": {
            "type": "string",
            "description": "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.",
            "format": "date-time"
          },
          "account_password_change_indicator": {
            "enum": [
              "no_change",
              "this_transaction",
              "less_than_thirty_days",
              "thirty_to_sixty_days",
              "more_than_sixty_days"
            ],
            "type": "string",
            "description": "The amount of time since the cardholder’s account with the 3DS Requestor was last reset or had a password change."
          },
          "transactions_per_year": {
            "maximum": 999,
            "type": "integer",
            "description": "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. \n\nSet this value to `999` if the number of transactions is `1000` or greater.\n",
            "example": 2
          },
          "payment_account_age": {
            "type": "string",
            "description": "The UTC date and time the payment account was enrolled in the cardholder’s account with the 3DS Requestor, in ISO 8601 format.",
            "format": "date-time"
          },
          "shipping_address_usage": {
            "type": "string",
            "description": "The UTC date and time the shipping address used for the transaction was first used with the 3DS Requestor, in ISO 8601 format.",
            "format": "date-time"
          },
          "account_type": {
            "enum": [
              "not_applicable",
              "credit",
              "debit"
            ],
            "type": "string",
            "description": "The type of account, in the case of a card product with multiple accounts."
          },
          "account_id": {
            "maxLength": 64,
            "type": "string",
            "description": "Additional information about the account optionally provided by the 3DS Requestor"
          }
        },
        "description": "Additional information about the cardholder's account\n"
      },
      "PaymentSessions3DSIntegrated": {
        "title": "Integrated authentication",
        "required": [
          "enabled"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/PaymentSessions3DSIntegratedNonEnabled"
          },
          {
            "$ref": "#/components/schemas/PaymentSessions3DSIntegratedEnabled"
          }
        ],
        "properties": {
          "enabled": {
            "enum": [
              "true",
              "false"
            ],
            "type": "string",
            "description": "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": {
            "enum": [
              "no_preference",
              "no_challenge_requested",
              "challenge_requested",
              "challenge_requested_mandate"
            ],
            "type": "string",
            "description": "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.",
            "default": "no_preference"
          }
        },
        "discriminator": {
          "propertyName": "enabled",
          "mapping": {
            "false": "#/components/schemas/PaymentSessions3DSIntegratedNonEnabled",
            "true": "#/components/schemas/PaymentSessions3DSIntegratedEnabled"
          }
        }
      },
      "PaymentSessions3DSIntegratedEnabled": {
        "title": "true",
        "required": [
          "enabled"
        ],
        "type": "object",
        "properties": {
          "enabled": {
            "enum": [
              "true"
            ],
            "type": "string",
            "description": "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>",
            "example": "true"
          },
          "challenge_indicator": {
            "enum": [
              "no_preference",
              "no_challenge_requested",
              "challenge_requested",
              "challenge_requested_mandate"
            ],
            "type": "string",
            "description": "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.",
            "default": "no_preference"
          },
          "attempt_n3d": {
            "type": "boolean",
            "description": "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.\n",
            "default": false,
            "example": true
          },
          "exemption": {
            "enum": [
              "low_value",
              "trusted_listing",
              "trusted_listing_prompt",
              "transaction_risk_assessment",
              "data_share"
            ],
            "type": "string",
            "description": "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>",
            "example": "low_value"
          },
          "account_info": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentSessions3DSAccountInfo"
              }
            ],
            "description": "Additional information about the cardholder's account"
          }
        },
        "description": "3DS authentication enabled"
      },
      "PaymentSessions3DSIntegratedNonEnabled": {
        "title": "false",
        "required": [
          "enabled"
        ],
        "type": "object",
        "properties": {
          "enabled": {
            "enum": [
              "false"
            ],
            "type": "string",
            "description": "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>",
            "example": "false"
          },
          "challenge_indicator": {
            "enum": [
              "no_preference",
              "no_challenge_requested",
              "challenge_requested",
              "challenge_requested_mandate"
            ],
            "type": "string",
            "description": "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.",
            "default": "no_preference"
          },
          "allow_upgrade": {
            "type": "boolean",
            "description": "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`.",
            "default": true,
            "example": true
          },
          "exemption": {
            "enum": [
              "low_value",
              "trusted_listing",
              "trusted_listing_prompt",
              "transaction_risk_assessment",
              "3ds_outage",
              "sca_delegation",
              "out_of_sca_scope",
              "low_risk_program",
              "recurring_operation",
              "data_share",
              "other"
            ],
            "type": "string",
            "description": "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>",
            "example": "low_value"
          }
        },
        "description": "3DS authentication not enabled"
      },
      "PaymentSessions3DSThirdParty": {
        "title": "Third party authentication",
        "required": [
          "enabled",
          "eci",
          "cryptogram",
          "xid",
          "version"
        ],
        "type": "object",
        "properties": {
          "enabled": {
            "enum": [
              true
            ],
            "type": "boolean",
            "description": "Whether to process this payment as a 3D Secure payment",
            "example": true
          },
          "eci": {
            "maxLength": 2,
            "type": "string",
            "description": "The Electronic Commerce Indicator security level associated with the 3D Secure enrollment result. Required if using a third-party merchant plug-in (MPI)",
            "example": "05"
          },
          "cryptogram": {
            "maxLength": 100,
            "type": "string",
            "description": "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",
            "example": "AgAAAAAAAIR8CQrXcIhbQAAAAAA="
          },
          "xid": {
            "maxLength": 100,
            "type": "string",
            "description": "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",
            "example": "MDAwMDAwMDAwMDAwMDAwMzIyNzY="
          },
          "version": {
            "maxLength": 10,
            "type": "string",
            "description": "Indicates the version of 3D Secure that was used for authentication. Defaults to 1.0.0 if not provided",
            "example": "2.0.1"
          },
          "exemption": {
            "enum": [
              "low_value",
              "secure_corporate_payment",
              "trusted_listing",
              "transaction_risk_assessment",
              "3ds_outage",
              "sca_delegation",
              "out_of_sca_scope",
              "other",
              "low_risk_program",
              "recurring_operation"
            ],
            "type": "string",
            "description": "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>",
            "example": "low_value"
          }
        },
        "description": "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>"
      },
      "01_PaymentSessionRequest_AccountHolderIndividual": {
        "title": "individual",
        "required": [
          "type",
          "first_name",
          "last_name"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "individual"
            ],
            "type": "string",
            "description": "The account holder type.\n",
            "example": "individual"
          },
          "first_name": {
            "maxLength": 35,
            "type": "string",
            "description": "The account holder's first name.\n\nThe combination of `first_name`, `middle_name`, and `last_name` should exceed 3 letters in length.\nThis 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):\n \n- a single character\n- all non-alphabetic characters\n"
          },
          "middle_name": {
            "maxLength": 35,
            "type": "string",
            "description": "The account holder's middle name.\n\nThe combination of `first_name`, `middle_name`, and `last_name` should exceed 3 letters in length.\nThis 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`.\n"
          },
          "last_name": {
            "maxLength": 35,
            "type": "string",
            "description": "The account holder's last name.\n\nThe combination of `first_name`, `middle_name`, and `last_name` should exceed 3 letters in length.\nThis 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):\n \n  - a single character\n  - all non-alphabetic characters\n"
          },
          "account_name_inquiry": {
            "type": "boolean",
            "description": "Specifies whether to perform an account name inquiry (ANI) check with the scheme. \n\nThis is only valid for Visa and Mastercard payments.\n"
          }
        }
      },
      "02_PaymentSessionRequest_AccountHolderCorporate": {
        "title": "corporate",
        "required": [
          "type",
          "company_name"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "corporate"
            ],
            "type": "string",
            "description": "The account holder type.",
            "example": "corporate"
          },
          "company_name": {
            "maxLength": 35,
            "type": "string",
            "description": "The account holder's company name.\n\nThis 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):\n \n  - a single character\n  - all non-alphabetic characters\n"
          },
          "account_name_inquiry": {
            "type": "boolean",
            "description": "Specifies whether to perform an account name inquiry (ANI) check with the scheme. \n\nThis is only valid for Visa and Mastercard payments.\n"
          }
        }
      },
      "03_PaymentSessionRequest_AccountHolderGovernment": {
        "title": "government",
        "required": [
          "type",
          "company_name"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "government"
            ],
            "type": "string",
            "description": "The account holder type.",
            "example": "government"
          },
          "company_name": {
            "maxLength": 35,
            "type": "string",
            "description": "The account holder's company name.\n\nThis 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):\n \n  - a single character\n  - all non-alphabetic characters\n"
          },
          "account_name_inquiry": {
            "type": "boolean",
            "description": "Specifies whether to perform an account name inquiry (ANI) check with the scheme. \n\nThis is only valid for Visa and Mastercard payments.\n"
          }
        }
      },
      "PaymentSessionsAmount": {
        "minimum": 0,
        "type": "integer",
        "description": "The payment amount. Provide a value of `0` to perform a card verification.\n\nThe 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>.\n",
        "example": 1000
      },
      "PaymentSessionsBillingDescriptor": {
        "required": [
          "name",
          "city"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 25,
            "type": "string",
            "description": "A description for the payment, which will be displayed on the customer's card statement. Only applicable for card payments."
          },
          "city": {
            "maxLength": 13,
            "minLength": 1,
            "type": "string",
            "description": "The city from which the payment originated. Only applicable for card payments."
          },
          "reference": {
            "maxLength": 50,
            "type": "string",
            "description": "The reference to display on the customer's bank statement. Required for payouts to bank accounts."
          }
        },
        "description": "A description of the purchase, which is displayed on the customer's statement."
      },
      "PaymentSessionSecret": {
        "type": "string",
        "description": "The secret used by Flow to authenticate payment session requests.\n\nDo not log or store this value.\n",
        "example": "pss_9823241e-2cec-4c98-b23d-7b29ow4e2e34"
      },
      "PaymentSessionsFailureUrl": {
        "maxLength": 1024,
        "type": "string",
        "description": "Overrides the default failure redirect URL configured on your account, for payment methods that require a redirect.",
        "format": "uri",
        "example": "https://example.com/payments/failure"
      },
      "PaymentSessionShipping": {
        "type": "object",
        "properties": {
          "address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "The shipping address"
          },
          "phone": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentInterfacesPhoneNumber"
              }
            ],
            "description": "The phone number associated with the shipping address."
          }
        },
        "description": "The shipping details"
      },
      "PaymentSessionsItems": {
        "maxItems": 1000,
        "minItems": 1,
        "type": "array",
        "items": {
          "required": [
            "name",
            "quantity",
            "unit_price"
          ],
          "type": "object",
          "properties": {
            "reference": {
              "maxLength": 255,
              "type": "string",
              "description": "The item reference or product stock keeping unit (SKU)."
            },
            "commodity_code": {
              "maxLength": 12,
              "type": "string",
              "description": "A code identifying a commodity for value-added tax (VAT) purposes."
            },
            "unit_of_measure": {
              "maxLength": 12,
              "type": "string",
              "description": "The unit in which the item is measured, as a Unit of Measure (UoM) code."
            },
            "total_amount": {
              "minimum": 0,
              "type": "integer",
              "description": "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`.\n",
              "example": 1000
            },
            "tax_amount": {
              "minimum": 0,
              "type": "integer",
              "description": "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.",
              "example": 1000
            },
            "discount_amount": {
              "minimum": 0,
              "type": "integer",
              "description": "The discount applied to each invoice line item.",
              "example": 1000
            },
            "url": {
              "maxLength": 1024,
              "type": "string",
              "description": "Link to the line item's product page."
            },
            "image_url": {
              "maxLength": 1024,
              "type": "string",
              "description": "Link to the line item's product image."
            },
            "name": {
              "maxLength": 255,
              "type": "string",
              "description": "The descriptive name of the line item.",
              "example": "Gold Necklace"
            },
            "quantity": {
              "minimum": 1,
              "type": "integer",
              "description": "The number of line items.",
              "example": 1
            },
            "unit_price": {
              "minimum": 0,
              "type": "integer",
              "description": "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>.",
              "example": 1000
            }
          }
        },
        "description": "The line items in the order."
      },
      "PaymentSessionsPaymentMethodConfigurationBase": {
        "type": "object",
        "properties": {
          "applepay": {
            "type": "object",
            "properties": {
              "store_payment_details": {
                "$ref": "#/components/schemas/PaymentSessionsStorePaymentDetails"
              }
            },
            "description": "Configuration options specific to Apple Pay payments."
          },
          "card": {
            "type": "object",
            "properties": {
              "store_payment_details": {
                "$ref": "#/components/schemas/PaymentSessionsStorePaymentDetailsCard"
              }
            },
            "description": "Configuration options specific to card payments."
          },
          "googlepay": {
            "type": "object",
            "properties": {
              "store_payment_details": {
                "$ref": "#/components/schemas/PaymentSessionsStorePaymentDetails"
              }
            },
            "description": "Configuration options specific to Google Pay payments."
          }
        },
        "description": "Configurations for payment method-specific settings."
      },
      "PaymentSessionsSessionData": {
        "type": "string",
        "description": "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.\n\nDo not log or store this value.\n"
      },
      "PaymentSessionsStorePaymentDetails": {
        "enum": [
          "disabled",
          "enabled"
        ],
        "type": "string",
        "description": "Specifies whether you intend to store the cardholder's payment details.\n\nIf you set this field to `enabled`, you must:\n\n- have obtained consent from the cardholder to store their payment details\n- provide a customer ID or email address in the request\n\nIf the request's `payment_type` is set to one of the following values, you do not need to provide this field:\n\n - `Installment`\n - `Recurring`\n - `Unscheduled`\n",
        "default": "disabled"
      },
      "PaymentSessionsStorePaymentDetailsCard": {
        "enum": [
          "disabled",
          "enabled",
          "collect_consent"
        ],
        "type": "string",
        "description": "Specifies whether you intend to store the cardholder's payment details.\n\nIf you set this field to `enabled` or `collect_consent`, you must:\n\n- Have obtained consent from the cardholder to store their payment details\n- Provide `customer.id` or `customer.email` in the request\n\nYou do not need to provide this field if `payment_type` is set to one of the following values:\n\n - `Installment`\n - `Recurring`\n - `Unscheduled`\n",
        "default": "disabled"
      },
      "PaymentSessionsSuccessUrl": {
        "maxLength": 1024,
        "type": "string",
        "description": "Overrides the default success redirect URL configured on your account, for payment methods that require a redirect.",
        "format": "uri",
        "example": "https://example.com/payments/success"
      },
      "SubmitPaymentSessionsActionRequiredResponse": {
        "required": [
          "id",
          "status",
          "type",
          "action"
        ],
        "type": "object",
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentId"
              }
            ]
          },
          "status": {
            "enum": [
              "Action Required"
            ],
            "type": "string",
            "description": "The payment's status."
          },
          "type": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentInterfacesPaymentMethod"
              }
            ],
            "description": "The payment method name."
          },
          "action": {
            "type": "object",
            "description": "Instruction for further payment action."
          }
        },
        "description": "Response for an action required payment session payment."
      },
      "SubmitPaymentSessionsProcessedResponse": {
        "required": [
          "id",
          "status",
          "type"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/SubmitPaymentSessionsProcessedResponseStatusApproved"
          },
          {
            "$ref": "#/components/schemas/SubmitPaymentSessionsProcessedResponseStatusDeclined"
          }
        ],
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentId"
              }
            ]
          },
          "status": {
            "enum": [
              "Approved",
              "Declined"
            ],
            "type": "string",
            "description": "The payment's status."
          },
          "type": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentInterfacesPaymentMethod"
              }
            ],
            "description": "The payment method name."
          }
        },
        "discriminator": {
          "propertyName": "status",
          "mapping": {
            "Approved": "#/components/schemas/SubmitPaymentSessionsProcessedResponseStatusApproved",
            "Declined": "#/components/schemas/SubmitPaymentSessionsProcessedResponseStatusDeclined"
          }
        }
      },
      "SubmitPaymentSessionsProcessedResponseStatusApproved": {
        "title": "Approved",
        "required": [
          "id",
          "status",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentId"
              }
            ]
          },
          "status": {
            "enum": [
              "Approved"
            ],
            "type": "string",
            "description": "The payment was approved."
          },
          "type": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentInterfacesPaymentMethod"
              }
            ],
            "description": "The payment method name."
          }
        },
        "description": "Response for an approved payment session payment."
      },
      "SubmitPaymentSessionsProcessedResponseStatusDeclined": {
        "title": "Declined",
        "required": [
          "id",
          "status",
          "type",
          "decline_reason"
        ],
        "type": "object",
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentId"
              }
            ]
          },
          "status": {
            "enum": [
              "Declined"
            ],
            "type": "string",
            "description": "The payment was declined."
          },
          "type": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentInterfacesPaymentMethod"
              }
            ],
            "description": "The payment method name."
          },
          "decline_reason": {
            "type": "string",
            "description": "The reason for the payment decline."
          }
        },
        "description": "Response for a declined payment session payment."
      },
      "SubmitPaymentSessionsRequest": {
        "required": [
          "session_data"
        ],
        "type": "object",
        "properties": {
          "session_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentSessionsSessionData"
              }
            ]
          },
          "amount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentSessionsAmount"
              }
            ]
          },
          "currency": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentSessionCurrency"
              }
            ]
          },
          "billing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentSessionBilling"
              }
            ]
          },
          "success_url": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentSessionsSuccessUrl"
              }
            ]
          },
          "failure_url": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentSessionsFailureUrl"
              }
            ]
          },
          "payment_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentSessionPaymentType"
              }
            ]
          },
          "billing_descriptor": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentSessionsBillingDescriptor"
              }
            ]
          },
          "reference": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentInterfacesReference"
              }
            ]
          },
          "customer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentSessionCustomer"
              }
            ],
            "description": "The customer's details."
          },
          "shipping": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentSessionShipping"
              }
            ]
          },
          "items": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentSessionsItems"
              }
            ]
          },
          "amount_allocations": {
            "maxItems": 50,
            "minItems": 1,
            "type": "array",
            "items": {
              "required": [
                "id",
                "amount"
              ],
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The sub-entity's ID."
                },
                "amount": {
                  "minimum": 0,
                  "type": "integer",
                  "description": "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.",
                  "example": 1
                },
                "reference": {
                  "maxLength": 50,
                  "type": "string",
                  "description": "A reference you can use to identify the split. For example, an order number.",
                  "example": "ORD-123A"
                },
                "commission": {
                  "type": "object",
                  "properties": {
                    "amount": {
                      "minimum": 0,
                      "type": "integer",
                      "description": "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>.",
                      "example": 10
                    },
                    "percentage": {
                      "maximum": 100,
                      "minimum": 0,
                      "type": "number",
                      "description": "An optional commission to collect, as a percentage value with up to eight decimal places.",
                      "example": 12.5
                    }
                  },
                  "description": "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.\n"
                }
              },
              "description": "The sub-entities that the payment is being processed on behalf of."
            },
            "description": "The sub-entities that the payment is being processed on behalf of."
          },
          "3ds": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentSessions3DS"
              }
            ]
          },
          "ip_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IPAddress"
              }
            ],
            "description": "The Customer's IP address. Only IPv4 and IPv6 addresses are accepted.",
            "deprecated": true
          },
          "payment_method_configuration": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentSessionsPaymentMethodConfigurationBase"
              }
            ]
          },
          "recipient": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentInterfacesRecipient"
              }
            ]
          },
          "instruction": {
            "type": "object",
            "properties": {
              "purpose": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Purpose"
                  }
                ]
              }
            },
            "description": "Details about the payment instruction."
          },
          "processing_channel_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentSessionProcessingChannelId"
              }
            ]
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentSessionMetadata"
              }
            ]
          },
          "sender": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentInterfacesSender"
              }
            ],
            "description": "The sender of the payment."
          },
          "capture": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentSessionCaptureFlag"
              }
            ]
          },
          "capture_on": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentSessionCaptureOn"
              }
            ]
          },
          "processing": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentInterfacesProcessingBase"
              }
            ],
            "description": "Use the processing object to influence or override the data sent during card processing"
          }
        }
      },
      "PhoneNumber": {
        "type": "object",
        "properties": {
          "country_code": {
            "maxLength": 7,
            "minLength": 1,
            "type": "string",
            "description": "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`.",
            "example": "+1"
          },
          "number": {
            "maxLength": 25,
            "minLength": 6,
            "type": "string",
            "description": "The phone number. Required if `source.type` is `tamara`.",
            "example": "415 555 2671"
          }
        },
        "description": "A phone number"
      },
      "BusinessDetailsCompany": {
        "title": "Company",
        "required": [
          "legal_name",
          "trading_name",
          "registered_address",
          "principal_address"
        ],
        "type": "object",
        "properties": {
          "status": {
            "title": "Status",
            "enum": [
              "active",
              "pending"
            ],
            "type": "string",
            "description": "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.\n\n`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.\n\nRead-only on input. You can send a response body back unchanged in a `PUT` request, and this field is ignored.",
            "readOnly": true
          },
          "legal_name": {
            "title": "Legal name",
            "maxLength": 300,
            "minLength": 2,
            "type": "string",
            "description": "The legal name of the sub-entity."
          },
          "trading_name": {
            "title": "Trading name",
            "maxLength": 300,
            "minLength": 2,
            "type": "string",
            "description": "The trading name of the sub-entity, also known as the 'Doing Business As' name."
          },
          "additional_trading_names": {
            "title": "Additional trading names",
            "type": "array",
            "items": {
              "title": "Trading name",
              "maxLength": 300,
              "minLength": 2,
              "type": "string",
              "description": "An additional trading name of the sub-entity."
            },
            "description": "The collection of additional trading names for the sub-entity."
          },
          "registered_address": {
            "title": "Registered Address",
            "required": [
              "address_line1",
              "city",
              "zip",
              "country"
            ],
            "type": "object",
            "properties": {
              "address_line1": {
                "title": "Address line 1",
                "maxLength": 300,
                "minLength": 1,
                "pattern": "\\S",
                "type": "string",
                "description": "The first line of the address."
              },
              "address_line2": {
                "title": "Address line 2",
                "maxLength": 300,
                "type": "string",
                "description": "The second line of the address.",
                "nullable": true
              },
              "city": {
                "title": "City",
                "maxLength": 300,
                "minLength": 2,
                "type": "string",
                "description": "The address city."
              },
              "state": {
                "title": "State",
                "maxLength": 300,
                "minLength": 1,
                "pattern": "\\S",
                "type": "string",
                "description": "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": {
                "title": "Postal code",
                "maxLength": 16,
                "minLength": 0,
                "pattern": "^[a-zA-Z0-9-\\s]*$",
                "type": "string",
                "description": "The address ZIP code or postal code. Required, but can be `null` for countries that do not use postal codes.",
                "nullable": true
              },
              "country": {
                "title": "Country",
                "maxLength": 2,
                "minLength": 2,
                "pattern": "[a-zA-Z]{2}",
                "type": "string",
                "description": "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.\n\nFor more information, see <a href=\"https://www.checkout.com/docs/developer-resources/codes/country-codes\" target=\"_blank\">Country codes</a>.",
                "format": "iso-3166-1-alpha-2"
              }
            },
            "additionalProperties": false,
            "description": "The registered address of the company."
          },
          "principal_address": {
            "title": "Principal Address",
            "required": [
              "address_line1",
              "city",
              "zip",
              "country"
            ],
            "type": "object",
            "properties": {
              "address_line1": {
                "title": "Address line 1",
                "maxLength": 300,
                "minLength": 1,
                "pattern": "\\S",
                "type": "string",
                "description": "The first line of the address."
              },
              "address_line2": {
                "title": "Address line 2",
                "maxLength": 300,
                "type": "string",
                "description": "The second line of the address.",
                "nullable": true
              },
              "city": {
                "title": "City",
                "maxLength": 300,
                "minLength": 2,
                "type": "string",
                "description": "The address city."
              },
              "state": {
                "title": "State",
                "maxLength": 300,
                "minLength": 1,
                "pattern": "\\S",
                "type": "string",
                "description": "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": {
                "title": "Postal code",
                "maxLength": 16,
                "minLength": 0,
                "pattern": "^[a-zA-Z0-9-\\s]*$",
                "type": "string",
                "description": "The address ZIP code or postal code. Required, but can be `null` for countries that do not use postal codes.",
                "nullable": true
              },
              "country": {
                "title": "Country",
                "maxLength": 2,
                "minLength": 2,
                "pattern": "[a-zA-Z]{2}",
                "type": "string",
                "description": "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.\n\nFor more information, see <a href=\"https://www.checkout.com/docs/developer-resources/codes/country-codes\" target=\"_blank\">Country codes</a>.",
                "format": "iso-3166-1-alpha-2"
              }
            },
            "additionalProperties": false,
            "description": "The primary location of the company where business is performed."
          },
          "documents": {
            "title": "Documents",
            "type": "object",
            "properties": {
              "company_verification": {
                "title": "Company Verification",
                "required": [
                  "type",
                  "front"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Document type",
                    "enum": [
                      "incorporation_document"
                    ],
                    "type": "string",
                    "description": "The type of document used for company verification."
                  },
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document.",
                    "example": "file_wxglze3wwywujg4nna5fb7ldli"
                  }
                },
                "description": "A document certified by a power of attorney within the last three months.\n\nRequired 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."
              },
              "proof_of_principal_address": {
                "title": "Principal Address Verification",
                "required": [
                  "type",
                  "front"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Document type",
                    "enum": [
                      "proof_of_address"
                    ],
                    "type": "string",
                    "description": "The type of document used for principal address verification."
                  },
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document.",
                    "example": "file_wxglze3wwywujg4nna5fb7ldli"
                  }
                },
                "description": "Proof of the principal place of business.\n\nRequired 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`."
              },
              "proof_of_registered_address": {
                "title": "Registered Address Verification",
                "required": [
                  "type",
                  "front"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Document type",
                    "enum": [
                      "proof_of_address"
                    ],
                    "type": "string",
                    "description": "The type of document used for registered address verification."
                  },
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document.",
                    "example": "file_wxglze3wwywujg4nna5fb7ldli"
                  }
                },
                "description": "Proof of the registered address of the company.\n\nRequired when you change `registered_address`. If you change both addresses, provide this document and `proof_of_principal_address`."
              }
            },
            "additionalProperties": false,
            "description": "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.\n\nDocuments are not returned for `active` business details. For `pending` business details, the documents submitted with the change are returned."
          }
        },
        "additionalProperties": false,
        "description": "The mutable business details of a SaaS seller sub-entity that is a registered company.\n\nYou can only change the fields below through this endpoint. `business_type`, `business_registration_number`, `date_of_incorporation`, `is_registered_company`, and `regulatory_license_expiration` cannot be changed after onboarding, so they are not part of this resource. If you send them, the request fails.",
        "example": {
          "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"
          ]
        }
      },
      "BusinessDetailsSoleTrader": {
        "title": "Sole trader",
        "required": [
          "trading_name",
          "principal_address"
        ],
        "type": "object",
        "properties": {
          "status": {
            "title": "Status",
            "enum": [
              "active",
              "pending"
            ],
            "type": "string",
            "description": "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.\n\n`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.\n\nRead-only on input. You can send a response body back unchanged in a `PUT` request, and this field is ignored.",
            "readOnly": true
          },
          "trading_name": {
            "title": "Trading name",
            "maxLength": 300,
            "minLength": 2,
            "type": "string",
            "description": "The trading name of the sub-entity, also known as the 'Doing Business As' name."
          },
          "additional_trading_names": {
            "title": "Additional trading names",
            "type": "array",
            "items": {
              "title": "Trading name",
              "maxLength": 300,
              "minLength": 2,
              "type": "string",
              "description": "An additional trading name of the sub-entity."
            },
            "description": "The collection of additional trading names for the sub-entity."
          },
          "principal_address": {
            "title": "Principal Address",
            "required": [
              "address_line1",
              "city",
              "zip",
              "country"
            ],
            "type": "object",
            "properties": {
              "address_line1": {
                "title": "Address line 1",
                "maxLength": 300,
                "minLength": 1,
                "pattern": "\\S",
                "type": "string",
                "description": "The first line of the address."
              },
              "address_line2": {
                "title": "Address line 2",
                "maxLength": 300,
                "type": "string",
                "description": "The second line of the address.",
                "nullable": true
              },
              "city": {
                "title": "City",
                "maxLength": 300,
                "minLength": 2,
                "type": "string",
                "description": "The address city."
              },
              "state": {
                "title": "State",
                "maxLength": 300,
                "minLength": 1,
                "pattern": "\\S",
                "type": "string",
                "description": "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": {
                "title": "Postal code",
                "maxLength": 16,
                "minLength": 0,
                "pattern": "^[a-zA-Z0-9-\\s]*$",
                "type": "string",
                "description": "The address ZIP code or postal code. Required, but can be `null` for countries that do not use postal codes.",
                "nullable": true
              },
              "country": {
                "title": "Country",
                "maxLength": 2,
                "minLength": 2,
                "pattern": "[a-zA-Z]{2}",
                "type": "string",
                "description": "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.\n\nFor more information, see <a href=\"https://www.checkout.com/docs/developer-resources/codes/country-codes\" target=\"_blank\">Country codes</a>.",
                "format": "iso-3166-1-alpha-2"
              }
            },
            "additionalProperties": false,
            "description": "The primary location where the sole trader performs business."
          },
          "documents": {
            "title": "Documents",
            "type": "object",
            "properties": {
              "company_verification": {
                "title": "Company Verification",
                "required": [
                  "type",
                  "front"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Document type",
                    "enum": [
                      "incorporation_document"
                    ],
                    "type": "string",
                    "description": "The type of document used for company verification."
                  },
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document.",
                    "example": "file_wxglze3wwywujg4nna5fb7ldli"
                  }
                },
                "description": "A document certified by a power of attorney within the last three months.\n\nRequired 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."
              },
              "proof_of_principal_address": {
                "title": "Principal Address Verification",
                "required": [
                  "type",
                  "front"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Document type",
                    "enum": [
                      "proof_of_address"
                    ],
                    "type": "string",
                    "description": "The type of document used for principal address verification."
                  },
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document.",
                    "example": "file_wxglze3wwywujg4nna5fb7ldli"
                  }
                },
                "description": "Proof of the principal place of business.\n\nRequired 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."
              }
            },
            "additionalProperties": false,
            "description": "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.\n\nDocuments are not returned for `active` business details. For `pending` business details, the documents submitted with the change are returned."
          }
        },
        "additionalProperties": false,
        "description": "The mutable business details of a SaaS seller sub-entity that is a sole trader.\n\nYou can only change the fields below through this endpoint. A sole trader has no legal name and no registered address, so `legal_name` and `registered_address` are not part of this resource. `business_type`, `business_registration_number`, `date_of_incorporation`, `is_registered_company`, and `regulatory_license_expiration` cannot be changed after onboarding, so they are not part of this resource either. If you send any of these fields, the request fails.",
        "example": {
          "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"
          ]
        }
      },
      "EEACompanyFull2-0": {
        "title": "EEA Company - Full (2.0)",
        "required": [
          "reference",
          "company",
          "contact_details",
          "profile",
          "documents"
        ],
        "type": "object",
        "properties": {
          "reference": {
            "title": "Unique reference",
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "description": "A unique reference you can later use to identify the sub-entity."
          },
          "status": {
            "type": "string",
            "readOnly": true
          },
          "is_draft": {
            "type": "boolean",
            "description": "Specifies whether the sub-entity details are in draft.\n\nMarking a sub-entity as a draft allows sub-entity details to be updated, without triggering due diligence checks.",
            "writeOnly": true
          },
          "profile": {
            "title": "Profile",
            "required": [
              "urls",
              "mccs"
            ],
            "type": "object",
            "properties": {
              "urls": {
                "title": "Website",
                "maxItems": 100,
                "type": "array",
                "items": {
                  "title": "Company website URL",
                  "maxLength": 300,
                  "minLength": 4,
                  "pattern": "^(http|https):\\//\\S{2,293}$",
                  "type": "string",
                  "description": "The URL of the company's website.",
                  "format": "uri"
                },
                "description": "A collection of website URLs the sub-entity accepts payments on."
              },
              "mccs": {
                "title": "Industry",
                "maxItems": 5,
                "minItems": 1,
                "type": "array",
                "items": {
                  "title": "Merchant category code",
                  "pattern": "^[0-9]{4}$",
                  "description": "The merchant category code (4-digit ISO 18245)."
                },
                "description": "Select the categories that most closely describe the business"
              },
              "default_holding_currency": {
                "title": "Main currency",
                "description": "The default holding currency code (iso-4217)",
                "format": "iso-4217"
              },
              "holding_currencies": {
                "title": "Currencies",
                "type": "array",
                "items": {
                  "title": "Currency",
                  "enum": [
                    "AED",
                    "AUD",
                    "CAD",
                    "CHF",
                    "CZK",
                    "DKK",
                    "EUR",
                    "GBP",
                    "HKD",
                    "JPY",
                    "NOK",
                    "NZD",
                    "PLN",
                    "RON",
                    "SEK",
                    "SGD",
                    "USD",
                    "ZAR"
                  ],
                  "type": "string",
                  "description": "The currency code (iso-4217)"
                },
                "description": "Incoming funds are held in your selected currencies",
                "default": [
                  "EUR"
                ]
              }
            },
            "description": "Information about the profile of the sub-entity, primarily regarding the products/services offered."
          },
          "contact_details": {
            "title": "Contact Details",
            "required": [
              "phone",
              "email_addresses"
            ],
            "type": "object",
            "properties": {
              "phone": {
                "title": "Phone",
                "required": [
                  "number"
                ],
                "type": "object",
                "properties": {
                  "number": {
                    "title": "Phone number",
                    "maximum": 9999999999999999,
                    "minimum": 10000000,
                    "maxLength": 16,
                    "minLength": 8,
                    "pattern": "^[1-9][0-9]{7,15}$",
                    "description": "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.)"
                  }
                },
                "description": "The phone number of the sub-entity."
              },
              "email_addresses": {
                "required": [
                  "primary"
                ],
                "type": "object",
                "properties": {
                  "primary": {
                    "title": "Email",
                    "description": "The main email address for this sub-entity.",
                    "format": "email"
                  }
                },
                "description": "Email addresses for this sub-entity."
              },
              "invitee": {
                "title": "Invitee",
                "type": "object",
                "properties": {
                  "email": {
                    "title": "Email",
                    "description": "The main email address for this sub-entity.",
                    "format": "email"
                  }
                },
                "description": "The details of the user responsible for onboarding the sub-entity."
              }
            },
            "description": "Contact details of this sub-entity."
          },
          "capabilities": {
            "title": "Capabilities",
            "type": "object",
            "description": "The capabilities of the entity.",
            "readOnly": true
          },
          "requirements_due": {
            "title": "Requirements Due",
            "minItems": 0,
            "type": "array",
            "items": {
              "title": "Requirements due entry",
              "type": "object",
              "properties": {
                "field": {
                  "title": "Field",
                  "type": "string",
                  "description": "The field that is needs to be addressed."
                },
                "reason": {
                  "title": "Reason",
                  "type": "string",
                  "description": "The reason behind the field needing attention."
                }
              },
              "description": "A list of fields which require attention",
              "readOnly": true
            },
            "description": "List of requirements due in order to be onboarded.",
            "readOnly": true
          },
          "instruments": {
            "type": "array",
            "items": {
              "type": "object"
            },
            "readOnly": true
          },
          "company": {
            "title": "Company",
            "required": [
              "legal_name",
              "trading_name",
              "registered_address",
              "principal_address",
              "representatives",
              "business_registration_number",
              "business_type",
              "financial_details"
            ],
            "type": "object",
            "properties": {
              "legal_name": {
                "title": "Legal name",
                "maxLength": 300,
                "minLength": 2,
                "type": "string",
                "description": "The legal name of the sub-entity."
              },
              "trading_name": {
                "title": "Trading name",
                "maxLength": 300,
                "minLength": 2,
                "type": "string",
                "description": "The trading name of the sub-entity, also referred to as 'doing business as'."
              },
              "business_registration_number": {
                "title": "Registration Number",
                "maxLength": 39,
                "minLength": 2,
                "description": "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": {
                "title": "Principal Address",
                "required": [
                  "address_line1",
                  "city",
                  "zip",
                  "country"
                ],
                "type": "object",
                "properties": {
                  "address_line1": {
                    "title": "Address line 1",
                    "maxLength": 300,
                    "minLength": 1,
                    "pattern": "\\S",
                    "type": "string",
                    "description": "The first line of the address."
                  },
                  "address_line2": {
                    "title": "Address line 2",
                    "maxLength": 300,
                    "description": "The second line of the address."
                  },
                  "city": {
                    "title": "City",
                    "maxLength": 300,
                    "minLength": 2,
                    "type": "string",
                    "description": "The address city."
                  },
                  "state": {
                    "title": "State",
                    "maxLength": 300,
                    "minLength": 1,
                    "pattern": "\\S",
                    "type": "string",
                    "description": "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": {
                    "title": "Postal code",
                    "maxLength": 16,
                    "minLength": 1,
                    "pattern": "^[a-zA-Z0-9-\\s]+$",
                    "type": "string",
                    "description": "The address zip/postal code."
                  },
                  "country": {
                    "title": "Country",
                    "maxLength": 2,
                    "minLength": 2,
                    "pattern": "[a-zA-Z]{2}",
                    "type": "string",
                    "description": "The country code (iso-3166-1 alpha-2)",
                    "format": "iso-3166-1-alpha-2"
                  }
                },
                "description": "The primary location of the company where business is performed."
              },
              "registered_address": {
                "title": "Registered Address",
                "required": [
                  "address_line1",
                  "city",
                  "zip",
                  "country"
                ],
                "type": "object",
                "properties": {
                  "address_line1": {
                    "title": "Address line 1",
                    "maxLength": 300,
                    "minLength": 1,
                    "pattern": "\\S",
                    "type": "string",
                    "description": "The first line of the address."
                  },
                  "address_line2": {
                    "title": "Address line 2",
                    "maxLength": 300,
                    "description": "The second line of the address."
                  },
                  "city": {
                    "title": "City",
                    "maxLength": 300,
                    "minLength": 2,
                    "type": "string",
                    "description": "The address city."
                  },
                  "state": {
                    "title": "State",
                    "maxLength": 300,
                    "minLength": 1,
                    "pattern": "\\S",
                    "type": "string",
                    "description": "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": {
                    "title": "EU Postal Code",
                    "maxLength": 16,
                    "minLength": 1,
                    "pattern": "^[a-zA-Z0-9]+[-\\s]?[a-zA-Z0-9]+$",
                    "type": "string",
                    "description": "The address zip/postal code."
                  },
                  "country": {
                    "title": "Country",
                    "maxLength": 2,
                    "minLength": 2,
                    "pattern": "[a-zA-Z]{2}",
                    "type": "string",
                    "description": "The country code (iso-3166-1 alpha-2)",
                    "format": "iso-3166-1-alpha-2"
                  }
                },
                "description": "The registered address of the company."
              },
              "representatives": {
                "title": "Representative List",
                "maxItems": 5,
                "minItems": 1,
                "type": "array",
                "items": {
                  "title": "Representative",
                  "required": [
                    "first_name",
                    "last_name",
                    "address",
                    "date_of_birth",
                    "place_of_birth",
                    "roles",
                    "documents"
                  ],
                  "type": "object",
                  "properties": {
                    "id": {
                      "maxLength": 30,
                      "minLength": 30,
                      "pattern": "^rep_[a-z0-9]{26}$",
                      "description": "The representative's id."
                    },
                    "first_name": {
                      "title": "First name",
                      "maxLength": 50,
                      "minLength": 2,
                      "type": "string",
                      "description": "The representative's first name."
                    },
                    "middle_name": {
                      "title": "Middle name",
                      "maxLength": 50,
                      "minLength": 2,
                      "type": "string",
                      "description": "The representative's middle name. Required if appears in official docs"
                    },
                    "last_name": {
                      "title": "Last name",
                      "maxLength": 50,
                      "minLength": 2,
                      "type": "string",
                      "description": "The representative's last name."
                    },
                    "date_of_birth": {
                      "title": "Date of birth",
                      "required": [
                        "day",
                        "month",
                        "year"
                      ],
                      "type": "object",
                      "properties": {
                        "day": {
                          "maximum": 31,
                          "minimum": 1,
                          "type": "integer",
                          "description": "The calendar day of the month they were born."
                        },
                        "month": {
                          "maximum": 12,
                          "minimum": 1,
                          "type": "integer",
                          "description": "The month of the year they were born."
                        },
                        "year": {
                          "maximum": 2999,
                          "minimum": 1900,
                          "type": "integer",
                          "description": "The year they were born."
                        }
                      },
                      "description": "The date of birth of the person according to the Gregorian calendar."
                    },
                    "phone": {
                      "title": "Phone",
                      "required": [
                        "number"
                      ],
                      "type": "object",
                      "properties": {
                        "number": {
                          "title": "Phone number",
                          "maximum": 9999999999999999,
                          "minimum": 10000000,
                          "maxLength": 16,
                          "minLength": 8,
                          "pattern": "^[1-9][0-9]{7,15}$",
                          "description": "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.)"
                        }
                      },
                      "description": "The phone number of the sub-entity."
                    },
                    "address": {
                      "title": "Address",
                      "required": [
                        "country",
                        "address_line1",
                        "city",
                        "zip"
                      ],
                      "type": "object",
                      "properties": {
                        "address_line1": {
                          "title": "Address line 1",
                          "maxLength": 300,
                          "minLength": 1,
                          "pattern": "\\S",
                          "type": "string",
                          "description": "The first line of the address."
                        },
                        "address_line2": {
                          "title": "Address line 2",
                          "maxLength": 300,
                          "description": "The second line of the address."
                        },
                        "city": {
                          "title": "City",
                          "maxLength": 300,
                          "minLength": 2,
                          "type": "string",
                          "description": "The address city."
                        },
                        "state": {
                          "title": "State",
                          "maxLength": 300,
                          "minLength": 1,
                          "pattern": "\\S",
                          "type": "string",
                          "description": "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": {
                          "title": "Postal code",
                          "maxLength": 16,
                          "minLength": 1,
                          "pattern": "^[a-zA-Z0-9-\\s]+$",
                          "type": "string",
                          "description": "The address zip/postal code."
                        },
                        "country": {
                          "title": "Country",
                          "maxLength": 2,
                          "minLength": 2,
                          "pattern": "[a-zA-Z]{2}",
                          "type": "string",
                          "description": "The country code (iso-3166-1 alpha-2)",
                          "format": "iso-3166-1-alpha-2"
                        }
                      },
                      "description": "The representative's address."
                    },
                    "place_of_birth": {
                      "title": "Place of Birth",
                      "required": [
                        "country"
                      ],
                      "properties": {
                        "country": {
                          "title": "Country",
                          "maxLength": 2,
                          "minLength": 2,
                          "pattern": "[a-zA-Z]{2}",
                          "type": "string",
                          "description": "The country code (iso-3166-1 alpha-2)",
                          "format": "iso-3166-1-alpha-2"
                        }
                      },
                      "description": "The place of birth of the person."
                    },
                    "roles": {
                      "title": "Roles within company",
                      "maxItems": 2,
                      "minItems": 1,
                      "uniqueItems": true,
                      "type": "array",
                      "items": {
                        "title": "Representative Role",
                        "enum": [
                          "ubo",
                          "legal_representative"
                        ],
                        "type": "string",
                        "description": "The representative's roles within the company"
                      },
                      "description": "The individual's roles within the company"
                    },
                    "documents": {
                      "title": "Document",
                      "required": [
                        "identity_verification"
                      ],
                      "type": "object",
                      "properties": {
                        "identity_verification": {
                          "title": "Document",
                          "required": [
                            "type",
                            "front"
                          ],
                          "type": "object",
                          "properties": {
                            "type": {
                              "title": "Document type",
                              "enum": [
                                "passport",
                                "national_identity_card",
                                "driving_license",
                                "citizen_card",
                                "residence_permit",
                                "electoral_id"
                              ],
                              "type": "string",
                              "description": "The type of document used for identity verification"
                            },
                            "front": {
                              "title": "Front",
                              "maxLength": 31,
                              "minLength": 31,
                              "pattern": "^file_[a-z2-7]{26}$",
                              "type": "string",
                              "description": "The ID of the front side of the document as represented within Checkout.com systems."
                            },
                            "back": {
                              "title": "Back",
                              "maxLength": 31,
                              "minLength": 31,
                              "pattern": "^file_[a-z2-7]{26}$",
                              "type": "string",
                              "description": "The ID of the back side of the document as represented within Checkout.com systems."
                            }
                          },
                          "description": "The document to use to confirm the individual's identity."
                        }
                      },
                      "description": "A legal document used to verify identity"
                    }
                  },
                  "description": "Information about representatives of this company."
                },
                "description": "Information about representatives of this company."
              },
              "financial_details": {
                "title": "Processing Details",
                "required": [
                  "annual_processing_volume",
                  "average_transaction_value",
                  "highest_transaction_value"
                ],
                "type": "object",
                "properties": {
                  "annual_processing_volume": {
                    "title": "Estimated annual processing volume",
                    "minimum": 0,
                    "type": "integer",
                    "description": "The estimated annual processing volume. In minor units without decimals."
                  },
                  "average_transaction_value": {
                    "title": "Average sales price",
                    "minimum": 0,
                    "type": "integer",
                    "description": "The expected average transaction value. In minor units without decimals."
                  },
                  "highest_transaction_value": {
                    "title": "Highest transaction value",
                    "minimum": 0,
                    "type": "integer",
                    "description": "The expected highest transaction value. In minor units without decimals."
                  },
                  "currency": {
                    "title": "Currency",
                    "enum": [
                      "EUR"
                    ],
                    "type": "string",
                    "description": "The currency used for the processing details provided."
                  }
                },
                "description": "Seller financial questions and supporting documents."
              },
              "business_type": {
                "title": "Business structure",
                "enum": [
                  "general_partnership",
                  "limited_partnership",
                  "public_limited_company",
                  "limited_company",
                  "professional_association",
                  "unincorporated_association",
                  "auto_entrepreneur"
                ],
                "type": "string",
                "description": "The legal type of the company"
              },
              "date_of_incorporation": {
                "title": "Date of Incorporation",
                "required": [
                  "month",
                  "year"
                ],
                "type": "object",
                "properties": {
                  "day": {
                    "maximum": 31,
                    "minimum": 1,
                    "type": "integer",
                    "description": "The day of the month the company was incorporated."
                  },
                  "month": {
                    "maximum": 12,
                    "minimum": 1,
                    "type": "integer",
                    "description": "The month the company was incorporated."
                  },
                  "year": {
                    "maximum": 2999,
                    "minimum": 1500,
                    "type": "integer",
                    "description": "The year the company was incorporated."
                  }
                },
                "description": "The date the company was incorporated."
              }
            },
            "description": "Information about the company represented by the sub-entity."
          },
          "documents": {
            "title": "Documents",
            "required": [
              "company_verification"
            ],
            "type": "object",
            "properties": {
              "company_verification": {
                "title": "Company Verification",
                "required": [
                  "type",
                  "front"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Document type",
                    "enum": [
                      "incorporation_document"
                    ],
                    "type": "string",
                    "description": "The type of document used for company verification"
                  },
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document as represented within Checkout.com systems."
                  }
                },
                "description": "Certified by a power of attorney within the last 3 months"
              },
              "bank_verification": {
                "title": "Bank Verification",
                "required": [
                  "type",
                  "front"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Document type",
                    "enum": [
                      "bank_statement"
                    ],
                    "type": "string",
                    "description": "The type of document being used as bank verification"
                  },
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document as represented within Checkout.com systems."
                  }
                },
                "description": "A document showing transactions from last 3 months"
              },
              "financial_verification": {
                "title": "Financial Verification",
                "required": [
                  "type",
                  "front"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Document type",
                    "enum": [
                      "financial_statement"
                    ],
                    "type": "string",
                    "description": "The type of the file."
                  },
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document as represented within Checkout.com systems."
                  }
                },
                "description": "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."
              }
            },
            "description": "The documents used to support the identity of a company."
          }
        }
      },
      "EEACompanyFull3-0": {
        "title": "EEA Company - Full (3.0)",
        "required": [
          "reference",
          "company",
          "profile",
          "documents",
          "processing_details"
        ],
        "type": "object",
        "properties": {
          "reference": {
            "title": "Unique reference",
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "description": "A unique reference you can later use to identify the sub-entity."
          },
          "status": {
            "type": "string",
            "readOnly": true
          },
          "is_draft": {
            "type": "boolean",
            "description": "Specifies whether the sub-entity details are in draft.\n\nMarking a sub-entity as a draft allows sub-entity details to be updated, without triggering due diligence checks.",
            "writeOnly": true
          },
          "profile": {
            "title": "Profile",
            "required": [
              "urls",
              "mccs",
              "default_holding_currency",
              "holding_currencies"
            ],
            "type": "object",
            "properties": {
              "urls": {
                "title": "Website",
                "maxItems": 100,
                "type": "array",
                "items": {
                  "title": "Company website URL",
                  "maxLength": 300,
                  "minLength": 4,
                  "pattern": "^(http|https):\\//\\S{2,293}$",
                  "type": "string",
                  "description": "The URL of the company's website.",
                  "format": "uri"
                },
                "description": "A collection of website URLs the sub-entity accepts payments on."
              },
              "mccs": {
                "title": "Industry",
                "maxItems": 5,
                "minItems": 1,
                "type": "array",
                "items": {
                  "title": "Merchant category code",
                  "pattern": "^[0-9]{4}$",
                  "description": "The merchant category code (4-digit ISO 18245)."
                },
                "description": "Select the categories that most closely describe the business"
              },
              "default_holding_currency": {
                "title": "Main currency",
                "description": "The default holding currency code (iso-4217)",
                "format": "iso-4217"
              },
              "holding_currencies": {
                "title": "Currencies",
                "minItems": 1,
                "type": "array",
                "items": {
                  "title": "Currency",
                  "enum": [
                    "AED",
                    "AUD",
                    "CAD",
                    "CHF",
                    "CZK",
                    "DKK",
                    "EUR",
                    "GBP",
                    "HKD",
                    "JPY",
                    "NOK",
                    "NZD",
                    "PLN",
                    "RON",
                    "SEK",
                    "SGD",
                    "USD",
                    "ZAR"
                  ],
                  "type": "string",
                  "description": "The currency code (iso-4217)"
                },
                "description": "Incoming funds are held in your selected currencies",
                "default": [
                  "EUR"
                ]
              }
            },
            "description": "Information about the profile of the sub-entity, primarily regarding the products/services offered."
          },
          "contact_details": {
            "title": "Contact Details",
            "type": "object",
            "properties": {
              "phone": {
                "title": "Phone number",
                "required": [
                  "country_code",
                  "number"
                ],
                "type": "object",
                "properties": {
                  "country_code": {
                    "title": "Country calling code",
                    "enum": [
                      "GR",
                      "NL",
                      "BE",
                      "FR",
                      "ES",
                      "PT",
                      "LU",
                      "IE",
                      "IS",
                      "MT",
                      "CY",
                      "FI",
                      "BG",
                      "HU",
                      "LT",
                      "LV",
                      "EE",
                      "AD",
                      "HR",
                      "SI",
                      "IT",
                      "RO",
                      "CZ",
                      "SK",
                      "LI",
                      "AT",
                      "DK",
                      "SE",
                      "NO",
                      "PL",
                      "DE"
                    ],
                    "type": "string",
                    "description": "The country code (iso-3166-1 alpha-2) where the phone number is registered"
                  },
                  "number": {
                    "title": "Phone number",
                    "maxLength": 13,
                    "minLength": 6,
                    "pattern": "^[0-9]{6,13}$",
                    "type": "string",
                    "description": "The phone number without the country calling code"
                  }
                },
                "description": "Phone number"
              },
              "email_addresses": {
                "required": [
                  "primary"
                ],
                "type": "object",
                "properties": {
                  "primary": {
                    "title": "Email",
                    "description": "The main email address for this sub-entity.",
                    "format": "email"
                  }
                },
                "description": "Email addresses for this sub-entity."
              },
              "invitee": {
                "title": "Invitee",
                "type": "object",
                "properties": {
                  "email": {
                    "title": "Email",
                    "description": "The main email address for this sub-entity.",
                    "format": "email"
                  }
                },
                "description": "The details of the user responsible for onboarding the sub-entity."
              }
            },
            "description": "Contact details of this sub-entity."
          },
          "capabilities": {
            "title": "Capabilities",
            "type": "object",
            "description": "The capabilities of the entity.",
            "readOnly": true
          },
          "requirements_due": {
            "title": "Requirements Due",
            "minItems": 0,
            "type": "array",
            "items": {
              "title": "Requirements due entry",
              "type": "object",
              "properties": {
                "field": {
                  "title": "Field",
                  "type": "string",
                  "description": "The field that is needs to be addressed."
                },
                "reason": {
                  "title": "Reason",
                  "type": "string",
                  "description": "The reason behind the field needing attention."
                },
                "message": {
                  "title": "Message",
                  "type": "string",
                  "description": "A more descriptive message."
                }
              },
              "description": "A list of fields which require attention",
              "readOnly": true
            },
            "description": "List of requirements due in order to be onboarded.",
            "readOnly": true
          },
          "company": {
            "title": "Company",
            "required": [
              "legal_name",
              "trading_name",
              "business_registration_number",
              "date_of_incorporation",
              "principal_address",
              "registered_address",
              "representatives",
              "business_type"
            ],
            "type": "object",
            "properties": {
              "legal_name": {
                "title": "Legal name",
                "maxLength": 300,
                "minLength": 2,
                "type": "string",
                "description": "The legal name of the sub-entity."
              },
              "trading_name": {
                "title": "Trading name",
                "maxLength": 300,
                "minLength": 2,
                "type": "string",
                "description": "The trading name of the sub-entity, also referred to as 'doing business as'."
              },
              "business_registration_number": {
                "title": "Registration Number",
                "maxLength": 39,
                "minLength": 2,
                "description": "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": {
                "title": "Date of Incorporation",
                "required": [
                  "month",
                  "year"
                ],
                "type": "object",
                "properties": {
                  "day": {
                    "maximum": 31,
                    "minimum": 1,
                    "type": "integer",
                    "description": "The day of the month the company was incorporated."
                  },
                  "month": {
                    "maximum": 12,
                    "minimum": 1,
                    "type": "integer",
                    "description": "The month the company was incorporated."
                  },
                  "year": {
                    "maximum": 2999,
                    "minimum": 1500,
                    "type": "integer",
                    "description": "The year the company was incorporated."
                  }
                },
                "description": "The date the company was incorporated."
              },
              "regulatory_licence_number": {
                "title": "Regulatory Licence Number",
                "maxLength": 32,
                "minLength": 4,
                "pattern": "^[a-zA-Z0-9\\-]+$",
                "description": "The regulatory licence number of the company."
              },
              "principal_address": {
                "title": "Principal Address",
                "required": [
                  "address_line1",
                  "city",
                  "zip",
                  "country"
                ],
                "type": "object",
                "properties": {
                  "address_line1": {
                    "title": "Address line 1",
                    "maxLength": 300,
                    "minLength": 1,
                    "pattern": "\\S",
                    "type": "string",
                    "description": "The first line of the address."
                  },
                  "address_line2": {
                    "title": "Address line 2",
                    "maxLength": 300,
                    "description": "The second line of the address."
                  },
                  "city": {
                    "title": "City",
                    "maxLength": 300,
                    "minLength": 2,
                    "type": "string",
                    "description": "The address city."
                  },
                  "state": {
                    "title": "State",
                    "maxLength": 300,
                    "minLength": 1,
                    "pattern": "\\S",
                    "type": "string",
                    "description": "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": {
                    "title": "EU Postal Code",
                    "maxLength": 16,
                    "minLength": 1,
                    "pattern": "^[a-zA-Z0-9]+[-\\s]?[a-zA-Z0-9]+$",
                    "type": "string",
                    "description": "The address zip/postal code."
                  },
                  "country": {
                    "title": "Country",
                    "maxLength": 2,
                    "minLength": 2,
                    "pattern": "[a-zA-Z]{2}",
                    "type": "string",
                    "description": "The country code (iso-3166-1 alpha-2)",
                    "format": "iso-3166-1-alpha-2"
                  }
                },
                "description": "The primary location of the company where business is performed."
              },
              "registered_address": {
                "title": "Registered Address",
                "required": [
                  "address_line1",
                  "city",
                  "zip",
                  "country"
                ],
                "type": "object",
                "properties": {
                  "address_line1": {
                    "title": "Address line 1",
                    "maxLength": 300,
                    "minLength": 1,
                    "pattern": "\\S",
                    "type": "string",
                    "description": "The first line of the address."
                  },
                  "address_line2": {
                    "title": "Address line 2",
                    "maxLength": 300,
                    "description": "The second line of the address."
                  },
                  "city": {
                    "title": "City",
                    "maxLength": 300,
                    "minLength": 2,
                    "type": "string",
                    "description": "The address city."
                  },
                  "state": {
                    "title": "State",
                    "maxLength": 300,
                    "minLength": 1,
                    "pattern": "\\S",
                    "type": "string",
                    "description": "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": {
                    "title": "EU Postal Code",
                    "maxLength": 16,
                    "minLength": 1,
                    "pattern": "^[a-zA-Z0-9]+[-\\s]?[a-zA-Z0-9]+$",
                    "type": "string",
                    "description": "The address zip/postal code."
                  },
                  "country": {
                    "title": "Country",
                    "maxLength": 2,
                    "minLength": 2,
                    "pattern": "[a-zA-Z]{2}",
                    "type": "string",
                    "description": "The country code (iso-3166-1 alpha-2)",
                    "format": "iso-3166-1-alpha-2"
                  }
                },
                "description": "The registered address of the company."
              },
              "representatives": {
                "title": "Representative List",
                "maxItems": 25,
                "minItems": 1,
                "type": "array",
                "items": {
                  "title": "Representative",
                  "type": "object",
                  "oneOf": [
                    {
                      "title": "Person of Interest",
                      "required": [
                        "individual",
                        "roles"
                      ],
                      "type": "object",
                      "properties": {
                        "id": {
                          "maxLength": 30,
                          "minLength": 30,
                          "pattern": "^rep_[a-z0-9]{26}$",
                          "description": "The representative's id."
                        },
                        "individual": {
                          "title": "Individual",
                          "type": "object",
                          "allOf": [
                            {
                              "title": "Individual",
                              "required": [
                                "first_name",
                                "last_name",
                                "date_of_birth",
                                "place_of_birth",
                                "address"
                              ],
                              "type": "object",
                              "properties": {
                                "first_name": {
                                  "title": "First name",
                                  "maxLength": 50,
                                  "minLength": 2,
                                  "type": "string",
                                  "description": "The representative's first name."
                                },
                                "middle_name": {
                                  "title": "Middle name",
                                  "maxLength": 50,
                                  "minLength": 2,
                                  "type": "string",
                                  "description": "The representative's middle name. Required if appears in official docs"
                                },
                                "last_name": {
                                  "title": "Last name",
                                  "maxLength": 50,
                                  "minLength": 2,
                                  "type": "string",
                                  "description": "The representative's last name."
                                },
                                "date_of_birth": {
                                  "title": "Date of birth",
                                  "required": [
                                    "day",
                                    "month",
                                    "year"
                                  ],
                                  "type": "object",
                                  "properties": {
                                    "day": {
                                      "maximum": 31,
                                      "minimum": 1,
                                      "type": "integer",
                                      "description": "The calendar day of the month they were born."
                                    },
                                    "month": {
                                      "maximum": 12,
                                      "minimum": 1,
                                      "type": "integer",
                                      "description": "The month of the year they were born."
                                    },
                                    "year": {
                                      "maximum": 2999,
                                      "minimum": 1900,
                                      "type": "integer",
                                      "description": "The year they were born."
                                    }
                                  },
                                  "description": "The date of birth of the person according to the Gregorian calendar."
                                },
                                "place_of_birth": {
                                  "title": "Place of Birth",
                                  "required": [
                                    "country"
                                  ],
                                  "properties": {
                                    "country": {
                                      "title": "Country",
                                      "maxLength": 2,
                                      "minLength": 2,
                                      "pattern": "[a-zA-Z]{2}",
                                      "type": "string",
                                      "description": "The country code (iso-3166-1 alpha-2)",
                                      "format": "iso-3166-1-alpha-2"
                                    }
                                  },
                                  "description": "The place of birth of the person."
                                },
                                "national_id_number": {
                                  "title": "Social security number (SSN or ITIN) - US Residents Only",
                                  "maxLength": 9,
                                  "minLength": 9,
                                  "pattern": "^\\d{9}$",
                                  "description": "Social security number (SSN) or Individual Taxpayer Identification Number (ITIN) for non-US citizens"
                                },
                                "email_address": {
                                  "title": "Email",
                                  "description": "The main email address for this sub-entity.",
                                  "format": "email"
                                },
                                "phone": {
                                  "title": "Phone number",
                                  "required": [
                                    "country_code",
                                    "number"
                                  ],
                                  "type": "object",
                                  "properties": {
                                    "country_code": {
                                      "title": "Country calling code",
                                      "enum": [
                                        "AF",
                                        "AL",
                                        "DZ",
                                        "AS",
                                        "AD",
                                        "AO",
                                        "AI",
                                        "AG",
                                        "AR",
                                        "AM",
                                        "AW",
                                        "AU",
                                        "AT",
                                        "AZ",
                                        "BS",
                                        "BH",
                                        "BD",
                                        "BB",
                                        "BY",
                                        "BE",
                                        "BZ",
                                        "BJ",
                                        "BM",
                                        "BT",
                                        "BO",
                                        "BA",
                                        "BW",
                                        "BR",
                                        "BN",
                                        "BG",
                                        "BF",
                                        "BI",
                                        "CV",
                                        "KH",
                                        "CM",
                                        "CA",
                                        "KY",
                                        "CF",
                                        "TD",
                                        "CL",
                                        "CN",
                                        "CO",
                                        "KM",
                                        "CD",
                                        "CG",
                                        "CK",
                                        "CR",
                                        "HR",
                                        "CU",
                                        "CW",
                                        "CY",
                                        "CZ",
                                        "DK",
                                        "DJ",
                                        "DM",
                                        "DO",
                                        "EC",
                                        "EG",
                                        "SV",
                                        "GQ",
                                        "ER",
                                        "EE",
                                        "SZ",
                                        "ET",
                                        "FO",
                                        "FJ",
                                        "FI",
                                        "FR",
                                        "GF",
                                        "PF",
                                        "GA",
                                        "GM",
                                        "GE",
                                        "DE",
                                        "GH",
                                        "GI",
                                        "GR",
                                        "GL",
                                        "GD",
                                        "GP",
                                        "GU",
                                        "GT",
                                        "GG",
                                        "GN",
                                        "GW",
                                        "GY",
                                        "HT",
                                        "HN",
                                        "HK",
                                        "HU",
                                        "IS",
                                        "IN",
                                        "ID",
                                        "IR",
                                        "IQ",
                                        "IE",
                                        "IM",
                                        "IL",
                                        "IT",
                                        "JM",
                                        "JP",
                                        "JE",
                                        "JO",
                                        "KZ",
                                        "KE",
                                        "KI",
                                        "KP",
                                        "KR",
                                        "KW",
                                        "KG",
                                        "LA",
                                        "LV",
                                        "LB",
                                        "LS",
                                        "LR",
                                        "LY",
                                        "LI",
                                        "LT",
                                        "LU",
                                        "MO",
                                        "MG",
                                        "MW",
                                        "MY",
                                        "MV",
                                        "ML",
                                        "MT",
                                        "MH",
                                        "MQ",
                                        "MR",
                                        "MU",
                                        "MX",
                                        "FM",
                                        "MD",
                                        "MC",
                                        "MN",
                                        "ME",
                                        "MS",
                                        "MA",
                                        "MZ",
                                        "MM",
                                        "NA",
                                        "NR",
                                        "NP",
                                        "NL",
                                        "NC",
                                        "NZ",
                                        "NI",
                                        "NE",
                                        "NG",
                                        "NU",
                                        "NF",
                                        "MK",
                                        "MP",
                                        "NO",
                                        "OM",
                                        "PK",
                                        "PW",
                                        "PA",
                                        "PG",
                                        "PY",
                                        "PE",
                                        "PH",
                                        "PL",
                                        "PT",
                                        "PR",
                                        "QA",
                                        "RE",
                                        "RO",
                                        "RU",
                                        "RW",
                                        "BL",
                                        "SH",
                                        "KN",
                                        "LC",
                                        "PM",
                                        "VC",
                                        "WS",
                                        "SM",
                                        "ST",
                                        "SA",
                                        "SN",
                                        "RS",
                                        "SC",
                                        "SL",
                                        "SG",
                                        "BQ",
                                        "SX",
                                        "SK",
                                        "SI",
                                        "SB",
                                        "SO",
                                        "ZA",
                                        "GS",
                                        "SS",
                                        "ES",
                                        "LK",
                                        "SD",
                                        "SR",
                                        "SE",
                                        "CH",
                                        "SY",
                                        "TW",
                                        "TJ",
                                        "TZ",
                                        "TH",
                                        "TL",
                                        "TG",
                                        "TK",
                                        "TO",
                                        "TT",
                                        "TN",
                                        "TR",
                                        "TM",
                                        "TC",
                                        "TV",
                                        "UG",
                                        "UA",
                                        "AE",
                                        "GB",
                                        "US",
                                        "UY",
                                        "UZ",
                                        "VU",
                                        "VA",
                                        "VE",
                                        "VN",
                                        "VG",
                                        "VI",
                                        "WF",
                                        "EH",
                                        "YE",
                                        "ZM",
                                        "ZW"
                                      ],
                                      "type": "string",
                                      "description": "The country code (iso-3166-1 alpha-2) where the phone number is registered"
                                    },
                                    "number": {
                                      "title": "Phone number",
                                      "maxLength": 16,
                                      "minLength": 5,
                                      "pattern": "^[0-9]{5,16}$",
                                      "type": "string",
                                      "description": "The phone number without the country calling code"
                                    }
                                  },
                                  "description": "Phone number"
                                },
                                "address": {
                                  "title": "Address",
                                  "required": [
                                    "address_line1",
                                    "city",
                                    "zip",
                                    "country"
                                  ],
                                  "type": "object",
                                  "properties": {
                                    "address_line1": {
                                      "title": "Address line 1",
                                      "maxLength": 300,
                                      "minLength": 1,
                                      "pattern": "\\S",
                                      "type": "string",
                                      "description": "The first line of the address."
                                    },
                                    "address_line2": {
                                      "title": "Address line 2",
                                      "maxLength": 300,
                                      "description": "The second line of the address."
                                    },
                                    "city": {
                                      "title": "City",
                                      "maxLength": 300,
                                      "minLength": 2,
                                      "type": "string",
                                      "description": "The address city."
                                    },
                                    "state": {
                                      "title": "State",
                                      "maxLength": 300,
                                      "minLength": 1,
                                      "pattern": "\\S",
                                      "type": "string",
                                      "description": "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": {
                                      "title": "Postal code",
                                      "maxLength": 16,
                                      "minLength": 1,
                                      "pattern": "^[a-zA-Z0-9-\\s]+$",
                                      "type": "string",
                                      "description": "The address zip/postal code."
                                    },
                                    "country": {
                                      "title": "Country",
                                      "maxLength": 2,
                                      "minLength": 2,
                                      "pattern": "[a-zA-Z]{2}",
                                      "type": "string",
                                      "description": "The country code (iso-3166-1 alpha-2)",
                                      "format": "iso-3166-1-alpha-2"
                                    }
                                  },
                                  "description": "The representative's address."
                                }
                              },
                              "description": "Information about the individual representing the sub-entity."
                            }
                          ],
                          "description": "Information about the individual representing the sub-entity."
                        },
                        "company_position": {
                          "title": "Position within Company",
                          "enum": [
                            "ceo",
                            "cfo",
                            "coo",
                            "managing_member",
                            "general_partner",
                            "president",
                            "vice_president",
                            "treasurer",
                            "other_senior_management",
                            "other_executive_officer",
                            "other_non_executive_non_senior"
                          ],
                          "type": "string",
                          "description": "The position of the representative within the company."
                        },
                        "roles": {
                          "title": "Roles within company",
                          "maxItems": 10,
                          "minItems": 1,
                          "uniqueItems": true,
                          "type": "array",
                          "items": {
                            "title": "Representative Role",
                            "enum": [
                              "ubo",
                              "legal_representative",
                              "authorised_signatory",
                              "control_person"
                            ],
                            "type": "string",
                            "description": "The representative's role"
                          },
                          "description": "The individual's roles within the company"
                        },
                        "ownership_percentage": {
                          "title": "Percentage of Ownership",
                          "maximum": 100,
                          "minimum": 25,
                          "type": "integer",
                          "description": "The percentage ownership of the UBO or controlling company (required when over 25%)"
                        },
                        "documents": {
                          "title": "Documents",
                          "type": "object",
                          "properties": {
                            "identity_verification": {
                              "title": "Document",
                              "required": [
                                "type",
                                "front"
                              ],
                              "type": "object",
                              "properties": {
                                "type": {
                                  "title": "Document type",
                                  "enum": [
                                    "passport",
                                    "national_identity_card",
                                    "driving_license",
                                    "citizen_card",
                                    "residence_permit",
                                    "electoral_id"
                                  ],
                                  "type": "string",
                                  "description": "The type of document used for identity verification"
                                },
                                "front": {
                                  "title": "Front",
                                  "maxLength": 31,
                                  "minLength": 31,
                                  "pattern": "^file_[a-z2-7]{26}$",
                                  "type": "string",
                                  "description": "The ID of the front side of the document as represented within Checkout.com systems."
                                },
                                "back": {
                                  "title": "Back",
                                  "maxLength": 31,
                                  "minLength": 31,
                                  "pattern": "^file_[a-z2-7]{26}$",
                                  "type": "string",
                                  "description": "The ID of the back side of the document as represented within Checkout.com systems."
                                }
                              },
                              "description": "The document to use to confirm the individual's identity."
                            },
                            "certified_authorised_signatory": {
                              "title": "Certified Authorised Signatory Document",
                              "required": [
                                "type",
                                "front"
                              ],
                              "type": "object",
                              "properties": {
                                "type": {
                                  "title": "Document type",
                                  "enum": [
                                    "power_of_attorney"
                                  ],
                                  "type": "string",
                                  "description": "The type of document."
                                },
                                "front": {
                                  "title": "Front",
                                  "maxLength": 31,
                                  "minLength": 31,
                                  "pattern": "^file_[a-z2-7]{26}$",
                                  "type": "string",
                                  "description": "The ID of the front side of the document as represented within Checkout.com systems."
                                }
                              },
                              "description": "Required when the legal representative or other role owner is not registered on certificate of incorporation"
                            }
                          },
                          "additionalProperties": false,
                          "description": "Verification documents for the individual representative"
                        }
                      },
                      "description": "Personal information about the individual representing the sub-entity."
                    },
                    {
                      "title": "Controlling Company",
                      "required": [
                        "company"
                      ],
                      "type": "object",
                      "properties": {
                        "id": {
                          "maxLength": 30,
                          "minLength": 30,
                          "pattern": "^rep_[a-z0-9]{26}$",
                          "description": "The representative's id."
                        },
                        "company": {
                          "required": [
                            "legal_name",
                            "trading_name",
                            "registered_address"
                          ],
                          "type": "object",
                          "properties": {
                            "legal_name": {
                              "title": "Legal name",
                              "maxLength": 300,
                              "minLength": 2,
                              "type": "string",
                              "description": "The legal name of the sub-entity."
                            },
                            "trading_name": {
                              "title": "Trading name",
                              "maxLength": 300,
                              "minLength": 2,
                              "type": "string",
                              "description": "The trading name of the sub-entity, also referred to as 'doing business as'."
                            },
                            "registered_address": {
                              "title": "Address",
                              "required": [
                                "country"
                              ],
                              "type": "object",
                              "properties": {
                                "address_line1": {
                                  "title": "Address line 1",
                                  "maxLength": 300,
                                  "minLength": 1,
                                  "pattern": "\\S",
                                  "type": "string",
                                  "description": "The first line of the address."
                                },
                                "address_line2": {
                                  "title": "Address line 2",
                                  "maxLength": 300,
                                  "description": "The second line of the address."
                                },
                                "city": {
                                  "title": "City",
                                  "maxLength": 300,
                                  "minLength": 2,
                                  "type": "string",
                                  "description": "The address city."
                                },
                                "state": {
                                  "title": "State",
                                  "maxLength": 300,
                                  "minLength": 1,
                                  "pattern": "\\S",
                                  "type": "string",
                                  "description": "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": {
                                  "title": "Postal code",
                                  "maxLength": 16,
                                  "minLength": 1,
                                  "pattern": "^[a-zA-Z0-9-\\s]+$",
                                  "type": "string",
                                  "description": "The address zip/postal code."
                                },
                                "country": {
                                  "title": "Country",
                                  "maxLength": 2,
                                  "minLength": 2,
                                  "pattern": "[a-zA-Z]{2}",
                                  "type": "string",
                                  "description": "The country code (iso-3166-1 alpha-2)",
                                  "format": "iso-3166-1-alpha-2"
                                }
                              },
                              "description": "The representative's address."
                            }
                          }
                        },
                        "ownership_percentage": {
                          "title": "Percentage of Ownership",
                          "maximum": 100,
                          "minimum": 25,
                          "type": "integer",
                          "description": "The percentage ownership of the UBO or controlling company (required when over 25%)"
                        }
                      },
                      "description": "Information about the controlling company"
                    }
                  ]
                },
                "description": "Information about representatives of this company."
              },
              "business_type": {
                "title": "Business type",
                "enum": [
                  "individual_or_sole_proprietorship",
                  "limited_company",
                  "public_limited_company",
                  "limited_partnership",
                  "general_partnership",
                  "government_agency",
                  "non_profit_entity",
                  "trust",
                  "club_or_society",
                  "unincorporated_association"
                ],
                "type": "string",
                "description": "The legal type of the company"
              }
            },
            "description": "Information about the company represented by the sub-entity."
          },
          "processing_details": {
            "type": "object",
            "allOf": [
              {
                "title": "Processing Details",
                "required": [
                  "settlement_country",
                  "target_countries",
                  "annual_processing_volume",
                  "average_transaction_value",
                  "highest_transaction_value",
                  "currency"
                ],
                "type": "object",
                "properties": {
                  "settlement_country": {
                    "title": "Destination of funds",
                    "maxLength": 2,
                    "minLength": 2,
                    "pattern": "[a-zA-Z]{2}",
                    "type": "string",
                    "description": "The country code (iso-3166-1 alpha-2) where the settlement bank account is located",
                    "format": "iso-3166-1-alpha-2"
                  },
                  "target_countries": {
                    "title": "Target countries",
                    "maxItems": 10,
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "title": "Country",
                      "maxLength": 2,
                      "minLength": 2,
                      "pattern": "[a-zA-Z]{2}",
                      "type": "string",
                      "description": "The country code (iso-3166-1 alpha-2)",
                      "format": "iso-3166-1-alpha-2"
                    },
                    "description": "Target country codes (iso-3166-1 alpha-2) with more than 10% expected volume processing with Checkout"
                  },
                  "annual_processing_volume": {
                    "title": "Estimated annual processing volume",
                    "minimum": 0,
                    "type": "integer",
                    "description": "The estimated annual processing volume. In minor units without decimals."
                  },
                  "average_transaction_value": {
                    "title": "Average sales price",
                    "minimum": 0,
                    "type": "integer",
                    "description": "The expected average transaction value. In minor units without decimals."
                  },
                  "highest_transaction_value": {
                    "title": "Highest transaction value",
                    "minimum": 0,
                    "type": "integer",
                    "description": "The expected highest transaction value. In minor units without decimals."
                  },
                  "currency": {
                    "title": "Currency",
                    "enum": [
                      "EUR"
                    ],
                    "type": "string",
                    "description": "The currency used for the processing details provided."
                  }
                }
              }
            ]
          },
          "documents": {
            "title": "Documents",
            "required": [
              "company_verification",
              "articles_of_association",
              "shareholder_structure",
              "bank_verification"
            ],
            "type": "object",
            "properties": {
              "company_verification": {
                "title": "Company Verification",
                "required": [
                  "type",
                  "front"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Document type",
                    "enum": [
                      "incorporation_document"
                    ],
                    "type": "string",
                    "description": "The type of document used for company verification"
                  },
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document as represented within Checkout.com systems."
                  }
                },
                "description": "Certified by a power of attorney within the last 3 months"
              },
              "articles_of_association": {
                "title": "Memorandum or Articles of Association",
                "required": [
                  "type",
                  "front"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Document type",
                    "enum": [
                      "memorandum_of_association",
                      "articles_of_association"
                    ],
                    "type": "string",
                    "description": "The type of document used for company verification"
                  },
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document as represented within Checkout.com systems."
                  }
                },
                "description": "Memorandum or Articles of Association document"
              },
              "bank_verification": {
                "title": "Bank Verification",
                "required": [
                  "type",
                  "front"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Document type",
                    "enum": [
                      "bank_statement"
                    ],
                    "type": "string",
                    "description": "The type of document being used as bank verification"
                  },
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document as represented within Checkout.com systems."
                  }
                },
                "description": "A document showing transactions from last 3 months"
              },
              "shareholder_structure": {
                "title": "Shareholder Structure",
                "required": [
                  "type",
                  "front"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Document type",
                    "enum": [
                      "certified_shareholder_structure"
                    ],
                    "type": "string",
                    "description": "The type of document."
                  },
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document as represented within Checkout.com systems."
                  }
                },
                "description": "Shareholder structure chart (including % of shares) certified by a competent authority individual and dated within last 3 months"
              },
              "proof_of_legality": {
                "title": "Proof of Legality",
                "required": [
                  "type",
                  "front"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Document type",
                    "enum": [
                      "proof_of_legality"
                    ],
                    "type": "string",
                    "description": "The type of document used for proof of legality"
                  },
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document as represented within Checkout.com systems."
                  }
                },
                "description": "A regulatory licence document required for the company to operate (when applicable)"
              },
              "proof_of_principal_address": {
                "title": "Address Verification",
                "required": [
                  "type",
                  "front"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Document type",
                    "enum": [
                      "proof_of_address"
                    ],
                    "type": "string",
                    "description": "The type of document being used as address verification"
                  },
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document as represented within Checkout.com systems."
                  }
                },
                "description": "Proof of principal place of business"
              },
              "additional_document1": {
                "title": "Additional Documentation",
                "required": [
                  "front"
                ],
                "type": "object",
                "properties": {
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document as represented within Checkout.com systems."
                  }
                },
                "description": "Additional space for documents to be provided when requested"
              },
              "additional_document2": {
                "title": "Additional Documentation",
                "required": [
                  "front"
                ],
                "type": "object",
                "properties": {
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document as represented within Checkout.com systems."
                  }
                },
                "description": "Additional space for documents to be provided when requested"
              },
              "additional_document3": {
                "title": "Additional Documentation",
                "required": [
                  "front"
                ],
                "type": "object",
                "properties": {
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document as represented within Checkout.com systems."
                  }
                },
                "description": "Additional space for documents to be provided when requested"
              }
            },
            "description": "The documents used to support the verification of company details."
          }
        }
      },
      "EEACompanyLite2-0": {
        "title": "EEA Company - Lite (2.0)",
        "type": "object",
        "allOf": [
          {
            "title": "Create & Submit regulated EEA Company (V2.0)",
            "required": [
              "reference",
              "company",
              "contact_details",
              "profile"
            ],
            "type": "object",
            "properties": {
              "reference": {
                "title": "Unique reference",
                "maxLength": 50,
                "minLength": 1,
                "type": "string",
                "description": "A unique reference you can later use to identify the sub-entity."
              },
              "status": {
                "type": "string",
                "readOnly": true
              },
              "is_draft": {
                "type": "boolean",
                "description": "Specifies whether the sub-entity details are in draft.\n\nMarking a sub-entity as a draft allows sub-entity details to be updated, without triggering due diligence checks.",
                "writeOnly": true
              },
              "profile": {
                "title": "Profile",
                "required": [
                  "urls",
                  "mccs"
                ],
                "type": "object",
                "properties": {
                  "urls": {
                    "title": "Website",
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "title": "Company website URL",
                      "maxLength": 300,
                      "minLength": 4,
                      "pattern": "^(http|https):\\//\\S{2,293}$",
                      "type": "string",
                      "description": "The URL of the company's website.",
                      "format": "uri"
                    },
                    "description": "A collection of website URLs the sub-entity accepts payments on."
                  },
                  "mccs": {
                    "title": "Industry",
                    "maxItems": 5,
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "title": "Merchant category code",
                      "pattern": "^[0-9]{4}$",
                      "description": "The merchant category code (4-digit ISO 18245)."
                    },
                    "description": "Select the categories that most closely describe the business"
                  }
                },
                "description": "Information about the profile of the sub-entity, primarily regarding the products/services offered."
              },
              "contact_details": {
                "title": "Contact Details",
                "required": [
                  "phone",
                  "email_addresses"
                ],
                "type": "object",
                "properties": {
                  "phone": {
                    "title": "Phone",
                    "required": [
                      "number"
                    ],
                    "type": "object",
                    "properties": {
                      "number": {
                        "title": "Phone number",
                        "maximum": 9999999999999999,
                        "minimum": 10000000,
                        "maxLength": 16,
                        "minLength": 8,
                        "pattern": "^[1-9][0-9]{7,15}$",
                        "description": "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.)"
                      }
                    },
                    "description": "The phone number of the sub-entity."
                  },
                  "email_addresses": {
                    "required": [
                      "primary"
                    ],
                    "type": "object",
                    "properties": {
                      "primary": {
                        "title": "Email",
                        "description": "The main email address for this sub-entity.",
                        "format": "email"
                      }
                    },
                    "description": "Email addresses for this sub-entity."
                  },
                  "invitee": {
                    "title": "Invitee",
                    "type": "object",
                    "properties": {
                      "email": {
                        "title": "Email",
                        "description": "The main email address for this sub-entity.",
                        "format": "email"
                      }
                    },
                    "description": "The details of the user responsible for onboarding the sub-entity."
                  }
                },
                "description": "Contact details of this sub-entity."
              },
              "capabilities": {
                "title": "Capabilities",
                "type": "object",
                "description": "The capabilities of the entity.",
                "readOnly": true
              },
              "requirements_due": {
                "title": "Requirements Due",
                "minItems": 0,
                "type": "array",
                "items": {
                  "title": "Requirements due entry",
                  "type": "object",
                  "properties": {
                    "field": {
                      "title": "Field",
                      "type": "string",
                      "description": "The field that is needs to be addressed."
                    },
                    "reason": {
                      "title": "Reason",
                      "type": "string",
                      "description": "The reason behind the field needing attention."
                    }
                  },
                  "description": "A list of fields which require attention",
                  "readOnly": true
                },
                "description": "List of requirements due in order to be onboarded.",
                "readOnly": true
              },
              "instruments": {
                "type": "array",
                "items": {
                  "type": "object"
                },
                "readOnly": true
              },
              "company": {
                "title": "Company (V2.0)",
                "required": [
                  "legal_name",
                  "trading_name",
                  "registered_address",
                  "principal_address",
                  "representatives"
                ],
                "type": "object",
                "properties": {
                  "legal_name": {
                    "title": "Legal name",
                    "maxLength": 300,
                    "minLength": 2,
                    "type": "string",
                    "description": "The legal name of the sub-entity."
                  },
                  "trading_name": {
                    "title": "Trading name",
                    "maxLength": 300,
                    "minLength": 2,
                    "type": "string",
                    "description": "The trading name of the sub-entity, also referred to as 'doing business as'."
                  },
                  "business_registration_number": {
                    "title": "Registration Number",
                    "maxLength": 39,
                    "minLength": 2,
                    "description": "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": {
                    "title": "Principal Address",
                    "required": [
                      "address_line1",
                      "city",
                      "zip",
                      "country"
                    ],
                    "type": "object",
                    "properties": {
                      "address_line1": {
                        "title": "Address line 1",
                        "maxLength": 300,
                        "minLength": 1,
                        "pattern": "\\S",
                        "type": "string",
                        "description": "The first line of the address."
                      },
                      "address_line2": {
                        "title": "Address line 2",
                        "maxLength": 300,
                        "description": "The second line of the address."
                      },
                      "city": {
                        "title": "City",
                        "maxLength": 300,
                        "minLength": 2,
                        "type": "string",
                        "description": "The address city."
                      },
                      "state": {
                        "title": "State",
                        "maxLength": 300,
                        "minLength": 1,
                        "pattern": "\\S",
                        "type": "string",
                        "description": "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": {
                        "title": "EU Postal Code",
                        "maxLength": 16,
                        "minLength": 1,
                        "pattern": "^[a-zA-Z0-9]+[-\\s]?[a-zA-Z0-9]+$",
                        "type": "string",
                        "description": "The address zip/postal code."
                      },
                      "country": {
                        "title": "Country",
                        "maxLength": 2,
                        "minLength": 2,
                        "pattern": "[a-zA-Z]{2}",
                        "type": "string",
                        "description": "The country code (iso-3166-1 alpha-2)",
                        "format": "iso-3166-1-alpha-2"
                      }
                    },
                    "description": "The primary location of the company where business is performed."
                  },
                  "registered_address": {
                    "title": "Registered Address",
                    "required": [
                      "address_line1",
                      "city",
                      "zip",
                      "country"
                    ],
                    "type": "object",
                    "properties": {
                      "address_line1": {
                        "title": "Address line 1",
                        "maxLength": 300,
                        "minLength": 1,
                        "pattern": "\\S",
                        "type": "string",
                        "description": "The first line of the address."
                      },
                      "address_line2": {
                        "title": "Address line 2",
                        "maxLength": 300,
                        "description": "The second line of the address."
                      },
                      "city": {
                        "title": "City",
                        "maxLength": 300,
                        "minLength": 2,
                        "type": "string",
                        "description": "The address city."
                      },
                      "state": {
                        "title": "State",
                        "maxLength": 300,
                        "minLength": 1,
                        "pattern": "\\S",
                        "type": "string",
                        "description": "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": {
                        "title": "EU Postal Code",
                        "maxLength": 16,
                        "minLength": 1,
                        "pattern": "^[a-zA-Z0-9]+[-\\s]?[a-zA-Z0-9]+$",
                        "type": "string",
                        "description": "The address zip/postal code."
                      },
                      "country": {
                        "title": "Country",
                        "maxLength": 2,
                        "minLength": 2,
                        "pattern": "[a-zA-Z]{2}",
                        "type": "string",
                        "description": "The country code (iso-3166-1 alpha-2)",
                        "format": "iso-3166-1-alpha-2"
                      }
                    },
                    "description": "The registered address of the company."
                  },
                  "representatives": {
                    "title": "Representative List",
                    "maxItems": 5,
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "title": "Representative",
                      "required": [
                        "first_name",
                        "last_name",
                        "address"
                      ],
                      "type": "object",
                      "properties": {
                        "id": {
                          "maxLength": 30,
                          "minLength": 30,
                          "pattern": "^rep_[a-z0-9]{26}$",
                          "description": "The representative's id."
                        },
                        "first_name": {
                          "title": "First name",
                          "maxLength": 50,
                          "minLength": 2,
                          "type": "string",
                          "description": "The representative's first name."
                        },
                        "middle_name": {
                          "title": "Middle name",
                          "maxLength": 50,
                          "minLength": 2,
                          "type": "string",
                          "description": "The representative's middle name. Required if appears in official docs"
                        },
                        "last_name": {
                          "title": "Last name",
                          "maxLength": 50,
                          "minLength": 2,
                          "type": "string",
                          "description": "The representative's last name."
                        },
                        "documents": {
                          "title": "Document",
                          "required": [
                            "identity_verification"
                          ],
                          "type": "object",
                          "properties": {
                            "identity_verification": {
                              "title": "Document",
                              "required": [
                                "type",
                                "front"
                              ],
                              "type": "object",
                              "properties": {
                                "type": {
                                  "title": "Document type",
                                  "enum": [
                                    "passport",
                                    "national_identity_card",
                                    "driving_license",
                                    "citizen_card",
                                    "residence_permit",
                                    "electoral_id"
                                  ],
                                  "type": "string",
                                  "description": "The type of document used for identity verification"
                                },
                                "front": {
                                  "title": "Front",
                                  "maxLength": 31,
                                  "minLength": 31,
                                  "pattern": "^file_[a-z2-7]{26}$",
                                  "type": "string",
                                  "description": "The ID of the front side of the document as represented within Checkout.com systems."
                                },
                                "back": {
                                  "title": "Back",
                                  "maxLength": 31,
                                  "minLength": 31,
                                  "pattern": "^file_[a-z2-7]{26}$",
                                  "type": "string",
                                  "description": "The ID of the back side of the document as represented within Checkout.com systems."
                                }
                              },
                              "description": "The document to use to confirm the individual's identity."
                            }
                          },
                          "description": "A legal document used to verify identity"
                        },
                        "date_of_birth": {
                          "title": "Date of birth",
                          "required": [
                            "day",
                            "month",
                            "year"
                          ],
                          "type": "object",
                          "properties": {
                            "day": {
                              "maximum": 31,
                              "minimum": 1,
                              "type": "integer",
                              "description": "The calendar day of the month they were born."
                            },
                            "month": {
                              "maximum": 12,
                              "minimum": 1,
                              "type": "integer",
                              "description": "The month of the year they were born."
                            },
                            "year": {
                              "maximum": 2999,
                              "minimum": 1900,
                              "type": "integer",
                              "description": "The year they were born."
                            }
                          },
                          "description": "The date of birth of the person according to the Gregorian calendar."
                        },
                        "phone": {
                          "title": "Phone",
                          "required": [
                            "number"
                          ],
                          "type": "object",
                          "properties": {
                            "number": {
                              "title": "Phone number",
                              "maximum": 9999999999999999,
                              "minimum": 10000000,
                              "maxLength": 16,
                              "minLength": 8,
                              "pattern": "^[1-9][0-9]{7,15}$",
                              "description": "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.)"
                            }
                          },
                          "description": "The phone number of the sub-entity."
                        },
                        "address": {
                          "title": "Address",
                          "required": [
                            "country"
                          ],
                          "type": "object",
                          "properties": {
                            "address_line1": {
                              "title": "Address line 1",
                              "maxLength": 300,
                              "minLength": 1,
                              "pattern": "\\S",
                              "type": "string",
                              "description": "The first line of the address."
                            },
                            "address_line2": {
                              "title": "Address line 2",
                              "maxLength": 300,
                              "description": "The second line of the address."
                            },
                            "city": {
                              "title": "City",
                              "maxLength": 300,
                              "minLength": 2,
                              "type": "string",
                              "description": "The address city."
                            },
                            "state": {
                              "title": "State",
                              "maxLength": 300,
                              "minLength": 1,
                              "pattern": "\\S",
                              "type": "string",
                              "description": "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": {
                              "title": "Postal code",
                              "maxLength": 16,
                              "minLength": 1,
                              "pattern": "^[a-zA-Z0-9-\\s]+$",
                              "type": "string",
                              "description": "The address zip/postal code."
                            },
                            "country": {
                              "title": "Country",
                              "maxLength": 2,
                              "minLength": 2,
                              "pattern": "[a-zA-Z]{2}",
                              "type": "string",
                              "description": "The country code (iso-3166-1 alpha-2)",
                              "format": "iso-3166-1-alpha-2"
                            }
                          },
                          "description": "The representative's address."
                        },
                        "place_of_birth": {
                          "title": "Place of Birth",
                          "required": [
                            "country"
                          ],
                          "properties": {
                            "country": {
                              "title": "Country",
                              "maxLength": 2,
                              "minLength": 2,
                              "pattern": "[a-zA-Z]{2}",
                              "type": "string",
                              "description": "The country code (iso-3166-1 alpha-2)",
                              "format": "iso-3166-1-alpha-2"
                            }
                          },
                          "description": "The place of birth of the person."
                        },
                        "roles": {
                          "title": "Roles within company",
                          "maxItems": 2,
                          "minItems": 1,
                          "uniqueItems": true,
                          "type": "array",
                          "items": {
                            "title": "Representative Role",
                            "enum": [
                              "ubo",
                              "legal_representative"
                            ],
                            "type": "string",
                            "description": "The representative's roles within the company"
                          },
                          "description": "The individual's roles within the company"
                        }
                      },
                      "description": "Information about representatives of this company."
                    },
                    "description": "Information about representatives of this company."
                  },
                  "financial_details": {
                    "title": "Processing Details",
                    "type": "object",
                    "properties": {
                      "annual_processing_volume": {
                        "title": "Estimated annual processing volume",
                        "minimum": 0,
                        "type": "integer",
                        "description": "The estimated annual processing volume. In minor units without decimals."
                      },
                      "average_transaction_value": {
                        "title": "Average sales price",
                        "minimum": 0,
                        "type": "integer",
                        "description": "The expected average transaction value. In minor units without decimals."
                      },
                      "highest_transaction_value": {
                        "title": "Highest transaction value",
                        "minimum": 0,
                        "type": "integer",
                        "description": "The expected highest transaction value. In minor units without decimals."
                      },
                      "currency": {
                        "title": "Currency",
                        "enum": [
                          "EUR"
                        ],
                        "type": "string",
                        "description": "The currency used for the processing details provided."
                      }
                    },
                    "description": "Seller financial questions and supporting documents."
                  },
                  "business_type": {
                    "title": "Business structure",
                    "enum": [
                      "general_partnership",
                      "limited_partnership",
                      "public_limited_company",
                      "limited_company",
                      "professional_association",
                      "unincorporated_association",
                      "auto_entrepreneur"
                    ],
                    "type": "string",
                    "description": "The legal type of the company"
                  }
                }
              },
              "documents": {
                "title": "Documents",
                "type": "object",
                "properties": {
                  "company_verification": {
                    "title": "Company Verification",
                    "required": [
                      "type",
                      "front"
                    ],
                    "type": "object",
                    "properties": {
                      "type": {
                        "title": "Document type",
                        "enum": [
                          "incorporation_document"
                        ],
                        "type": "string",
                        "description": "The type of document used for company verification"
                      },
                      "front": {
                        "title": "Front",
                        "maxLength": 31,
                        "minLength": 31,
                        "pattern": "^file_[a-z2-7]{26}$",
                        "type": "string",
                        "description": "The ID of the front side of the document as represented within Checkout.com systems."
                      }
                    },
                    "description": "Certified by a power of attorney within the last 3 months"
                  },
                  "bank_verification": {
                    "title": "Bank Verification",
                    "required": [
                      "type",
                      "front"
                    ],
                    "type": "object",
                    "properties": {
                      "type": {
                        "title": "Document type",
                        "enum": [
                          "bank_statement"
                        ],
                        "type": "string",
                        "description": "The type of document being used as bank verification"
                      },
                      "front": {
                        "title": "Front",
                        "maxLength": 31,
                        "minLength": 31,
                        "pattern": "^file_[a-z2-7]{26}$",
                        "type": "string",
                        "description": "The ID of the front side of the document as represented within Checkout.com systems."
                      }
                    },
                    "description": "A document showing transactions from last 3 months"
                  },
                  "financial_verification": {
                    "title": "Financial Verification",
                    "required": [
                      "type",
                      "front"
                    ],
                    "type": "object",
                    "properties": {
                      "type": {
                        "title": "Document type",
                        "enum": [
                          "financial_statement"
                        ],
                        "type": "string",
                        "description": "The type of the file."
                      },
                      "front": {
                        "title": "Front",
                        "maxLength": 31,
                        "minLength": 31,
                        "pattern": "^file_[a-z2-7]{26}$",
                        "type": "string",
                        "description": "The ID of the front side of the document as represented within Checkout.com systems."
                      }
                    },
                    "description": "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."
                  }
                },
                "description": "The documents used to support the identity of a company."
              }
            }
          }
        ]
      },
      "EEASoleTraderFull2-0": {
        "title": "EEA Sole Trader - Full (2.0)",
        "type": "object",
        "allOf": [
          {
            "title": "Create & Submit EEA Individual (V2.0)",
            "required": [
              "reference",
              "individual",
              "contact_details",
              "profile",
              "documents"
            ],
            "type": "object",
            "properties": {
              "reference": {
                "title": "Unique reference",
                "maxLength": 50,
                "minLength": 1,
                "type": "string",
                "description": "A unique reference you can later use to identify the sub-entity."
              },
              "status": {
                "type": "string",
                "readOnly": true
              },
              "is_draft": {
                "type": "boolean",
                "description": "Specifies whether the sub-entity details are in draft.\n\nMarking a sub-entity as a draft allows sub-entity details to be updated, without triggering due diligence checks.",
                "writeOnly": true
              },
              "profile": {
                "title": "Profile",
                "required": [
                  "urls",
                  "mccs"
                ],
                "type": "object",
                "properties": {
                  "urls": {
                    "title": "Website",
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "title": "Company website URL",
                      "maxLength": 300,
                      "minLength": 4,
                      "pattern": "^(http|https):\\//\\S{2,293}$",
                      "type": "string",
                      "description": "The URL of the company's website.",
                      "format": "uri"
                    },
                    "description": "A collection of website URLs the sub-entity accepts payments on."
                  },
                  "mccs": {
                    "title": "Industry",
                    "maxItems": 5,
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "title": "Merchant category code",
                      "pattern": "^[0-9]{4}$",
                      "description": "The merchant category code (4-digit ISO 18245)."
                    },
                    "description": "Select the categories that most closely describe the business"
                  },
                  "default_holding_currency": {
                    "title": "Main currency",
                    "description": "The default holding currency code (iso-4217)",
                    "format": "iso-4217"
                  },
                  "holding_currencies": {
                    "title": "Currencies",
                    "items": {
                      "title": "Currency",
                      "enum": [
                        "AED",
                        "AUD",
                        "CAD",
                        "CHF",
                        "CZK",
                        "DKK",
                        "EUR",
                        "GBP",
                        "HKD",
                        "JPY",
                        "NOK",
                        "NZD",
                        "PLN",
                        "RON",
                        "SEK",
                        "SGD",
                        "USD",
                        "ZAR"
                      ],
                      "type": "string",
                      "description": "The currency code (iso-4217)"
                    },
                    "description": "Incoming funds are held in your selected currencies",
                    "default": [
                      "EUR"
                    ]
                  }
                },
                "description": "Information about the profile of the sub-entity, primarily regarding the products/services offered."
              },
              "contact_details": {
                "title": "Contact Details",
                "required": [
                  "phone",
                  "email_addresses"
                ],
                "type": "object",
                "properties": {
                  "phone": {
                    "title": "Phone",
                    "required": [
                      "number"
                    ],
                    "type": "object",
                    "properties": {
                      "number": {
                        "title": "Phone number",
                        "maximum": 9999999999999999,
                        "minimum": 10000000,
                        "maxLength": 16,
                        "minLength": 8,
                        "pattern": "^[1-9][0-9]{7,15}$",
                        "description": "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.)"
                      }
                    },
                    "description": "The phone number of the sub-entity."
                  },
                  "email_addresses": {
                    "required": [
                      "primary"
                    ],
                    "type": "object",
                    "properties": {
                      "primary": {
                        "title": "Email",
                        "description": "The main email address for this sub-entity.",
                        "format": "email"
                      }
                    },
                    "description": "Email addresses for this sub-entity."
                  },
                  "invitee": {
                    "title": "Invitee",
                    "type": "object",
                    "properties": {
                      "email": {
                        "title": "Email",
                        "description": "The main email address for this sub-entity.",
                        "format": "email"
                      }
                    },
                    "description": "The details of the user responsible for onboarding the sub-entity."
                  }
                },
                "description": "Contact details of this sub-entity."
              },
              "capabilities": {
                "title": "Capabilities",
                "type": "object",
                "description": "The capabilities of the entity.",
                "readOnly": true
              },
              "requirements_due": {
                "title": "Requirements Due",
                "minItems": 0,
                "type": "array",
                "items": {
                  "title": "Requirements due entry",
                  "type": "object",
                  "properties": {
                    "field": {
                      "title": "Field",
                      "type": "string",
                      "description": "The field that is needs to be addressed."
                    },
                    "reason": {
                      "title": "Reason",
                      "type": "string",
                      "description": "The reason behind the field needing attention."
                    }
                  },
                  "description": "A list of fields which require attention",
                  "readOnly": true
                },
                "description": "List of requirements due in order to be onboarded.",
                "readOnly": true
              },
              "instruments": {
                "type": "array",
                "items": {
                  "type": "object"
                },
                "readOnly": true
              },
              "individual": {
                "title": "Individual",
                "required": [
                  "first_name",
                  "last_name",
                  "date_of_birth",
                  "place_of_birth",
                  "registered_address",
                  "trading_name"
                ],
                "type": "object",
                "properties": {
                  "trading_name": {
                    "title": "Trading name",
                    "maxLength": 300,
                    "minLength": 2,
                    "type": "string",
                    "description": "The trading name of the sub-entity, also referred to as 'doing business as'."
                  },
                  "first_name": {
                    "title": "First name",
                    "maxLength": 50,
                    "minLength": 2,
                    "type": "string",
                    "description": "The representative's first name."
                  },
                  "middle_name": {
                    "title": "Middle name",
                    "maxLength": 50,
                    "minLength": 2,
                    "type": "string",
                    "description": "The representative's middle name. Required if appears in official docs"
                  },
                  "last_name": {
                    "title": "Last name",
                    "maxLength": 50,
                    "minLength": 2,
                    "type": "string",
                    "description": "The representative's last name."
                  },
                  "date_of_birth": {
                    "title": "Date of birth",
                    "required": [
                      "day",
                      "month",
                      "year"
                    ],
                    "type": "object",
                    "properties": {
                      "day": {
                        "maximum": 31,
                        "minimum": 1,
                        "type": "integer",
                        "description": "The calendar day of the month they were born."
                      },
                      "month": {
                        "maximum": 12,
                        "minimum": 1,
                        "type": "integer",
                        "description": "The month of the year they were born."
                      },
                      "year": {
                        "maximum": 2999,
                        "minimum": 1900,
                        "type": "integer",
                        "description": "The year they were born."
                      }
                    },
                    "description": "The date of birth of the person according to the Gregorian calendar."
                  },
                  "registered_address": {
                    "title": "Registered Address",
                    "required": [
                      "address_line1",
                      "city",
                      "zip",
                      "country"
                    ],
                    "type": "object",
                    "properties": {
                      "address_line1": {
                        "title": "Address line 1",
                        "maxLength": 300,
                        "minLength": 1,
                        "pattern": "\\S",
                        "type": "string",
                        "description": "The first line of the address."
                      },
                      "address_line2": {
                        "title": "Address line 2",
                        "maxLength": 300,
                        "description": "The second line of the address."
                      },
                      "city": {
                        "title": "City",
                        "maxLength": 300,
                        "minLength": 2,
                        "type": "string",
                        "description": "The address city."
                      },
                      "state": {
                        "title": "State",
                        "maxLength": 300,
                        "minLength": 1,
                        "pattern": "\\S",
                        "type": "string",
                        "description": "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": {
                        "title": "EU Postal Code",
                        "maxLength": 16,
                        "minLength": 1,
                        "pattern": "^[a-zA-Z0-9]+[-\\s]?[a-zA-Z0-9]+$",
                        "type": "string",
                        "description": "The address zip/postal code."
                      },
                      "country": {
                        "title": "Country",
                        "maxLength": 2,
                        "minLength": 2,
                        "pattern": "[a-zA-Z]{2}",
                        "type": "string",
                        "description": "The country code (iso-3166-1 alpha-2)",
                        "format": "iso-3166-1-alpha-2"
                      }
                    },
                    "description": "The registered address of the company."
                  },
                  "place_of_birth": {
                    "title": "Place of Birth",
                    "required": [
                      "country"
                    ],
                    "properties": {
                      "country": {
                        "title": "Country",
                        "maxLength": 2,
                        "minLength": 2,
                        "pattern": "[a-zA-Z]{2}",
                        "type": "string",
                        "description": "The country code (iso-3166-1 alpha-2)",
                        "format": "iso-3166-1-alpha-2"
                      }
                    },
                    "description": "The place of birth of the person."
                  }
                },
                "description": "Information about the individual represented by the sub-entity."
              },
              "documents": {
                "title": "Documents",
                "required": [
                  "identity_verification"
                ],
                "type": "object",
                "properties": {
                  "identity_verification": {
                    "title": "Document",
                    "required": [
                      "type",
                      "front"
                    ],
                    "type": "object",
                    "properties": {
                      "type": {
                        "title": "Document type",
                        "enum": [
                          "passport",
                          "national_identity_card",
                          "driving_license",
                          "citizen_card",
                          "residence_permit",
                          "electoral_id"
                        ],
                        "type": "string",
                        "description": "The type of document used for identity verification"
                      },
                      "front": {
                        "title": "Front",
                        "maxLength": 31,
                        "minLength": 31,
                        "pattern": "^file_[a-z2-7]{26}$",
                        "type": "string",
                        "description": "The ID of the front side of the document as represented within Checkout.com systems."
                      },
                      "back": {
                        "title": "Back",
                        "maxLength": 31,
                        "minLength": 31,
                        "pattern": "^file_[a-z2-7]{26}$",
                        "type": "string",
                        "description": "The ID of the back side of the document as represented within Checkout.com systems."
                      }
                    },
                    "description": "The document to use to confirm the individual's identity."
                  }
                },
                "description": "A legal document used to verify identity."
              }
            }
          }
        ]
      },
      "EEASoleTraderFull3-0": {
        "title": "EEA Sole Trader - Full (3.0)",
        "required": [
          "reference",
          "company",
          "profile",
          "contact_details",
          "documents",
          "processing_details"
        ],
        "type": "object",
        "properties": {
          "reference": {
            "title": "Unique reference",
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "description": "A unique reference you can later use to identify the sub-entity."
          },
          "status": {
            "type": "string",
            "readOnly": true
          },
          "is_draft": {
            "type": "boolean",
            "description": "Specifies whether the sub-entity details are in draft.\n\nMarking a sub-entity as a draft allows sub-entity details to be updated, without triggering due diligence checks.",
            "writeOnly": true
          },
          "profile": {
            "title": "Profile",
            "required": [
              "urls",
              "mccs",
              "default_holding_currency",
              "holding_currencies"
            ],
            "type": "object",
            "properties": {
              "urls": {
                "title": "Website",
                "maxItems": 100,
                "type": "array",
                "items": {
                  "title": "Company website URL",
                  "maxLength": 300,
                  "minLength": 4,
                  "pattern": "^(http|https):\\//\\S{2,293}$",
                  "type": "string",
                  "description": "The URL of the company's website.",
                  "format": "uri"
                },
                "description": "A collection of website URLs the sub-entity accepts payments on."
              },
              "mccs": {
                "title": "Industry",
                "maxItems": 5,
                "minItems": 1,
                "type": "array",
                "items": {
                  "title": "Merchant category code",
                  "pattern": "^[0-9]{4}$",
                  "description": "The merchant category code (4-digit ISO 18245)."
                },
                "description": "Select the categories that most closely describe the business"
              },
              "default_holding_currency": {
                "title": "Main currency",
                "description": "The default holding currency code (iso-4217)",
                "format": "iso-4217"
              },
              "holding_currencies": {
                "title": "Currencies",
                "minItems": 1,
                "type": "array",
                "items": {
                  "title": "Currency",
                  "enum": [
                    "AED",
                    "AUD",
                    "CAD",
                    "CHF",
                    "CZK",
                    "DKK",
                    "EUR",
                    "GBP",
                    "HKD",
                    "JPY",
                    "NOK",
                    "NZD",
                    "PLN",
                    "RON",
                    "SEK",
                    "SGD",
                    "USD",
                    "ZAR"
                  ],
                  "type": "string",
                  "description": "The currency code (iso-4217)"
                },
                "description": "Incoming funds are held in your selected currencies",
                "default": [
                  "EUR"
                ]
              }
            },
            "description": "Information about the profile of the sub-entity, primarily regarding the products/services offered."
          },
          "contact_details": {
            "title": "Contact Details",
            "type": "object",
            "properties": {
              "phone": {
                "title": "Phone number",
                "required": [
                  "country_code",
                  "number"
                ],
                "type": "object",
                "properties": {
                  "country_code": {
                    "title": "Country calling code",
                    "enum": [
                      "GR",
                      "NL",
                      "BE",
                      "FR",
                      "ES",
                      "PT",
                      "LU",
                      "IE",
                      "IS",
                      "MT",
                      "CY",
                      "FI",
                      "BG",
                      "HU",
                      "LT",
                      "LV",
                      "EE",
                      "AD",
                      "HR",
                      "SI",
                      "IT",
                      "RO",
                      "CZ",
                      "SK",
                      "LI",
                      "AT",
                      "DK",
                      "SE",
                      "NO",
                      "PL",
                      "DE"
                    ],
                    "type": "string",
                    "description": "The country code (iso-3166-1 alpha-2) where the phone number is registered"
                  },
                  "number": {
                    "title": "Phone number",
                    "maxLength": 13,
                    "minLength": 6,
                    "pattern": "^[0-9]{6,13}$",
                    "type": "string",
                    "description": "The phone number without the country calling code"
                  }
                },
                "description": "Phone number"
              },
              "email_addresses": {
                "required": [
                  "primary"
                ],
                "type": "object",
                "properties": {
                  "primary": {
                    "title": "Email",
                    "description": "The main email address for this sub-entity.",
                    "format": "email"
                  }
                },
                "description": "Email addresses for this sub-entity."
              },
              "invitee": {
                "title": "Invitee",
                "type": "object",
                "properties": {
                  "email": {
                    "title": "Email",
                    "description": "The main email address for this sub-entity.",
                    "format": "email"
                  }
                },
                "description": "The details of the user responsible for onboarding the sub-entity."
              }
            },
            "description": "Contact details of this sub-entity."
          },
          "capabilities": {
            "title": "Capabilities",
            "type": "object",
            "description": "The capabilities of the entity.",
            "readOnly": true
          },
          "requirements_due": {
            "title": "Requirements Due",
            "minItems": 0,
            "type": "array",
            "items": {
              "title": "Requirements due entry",
              "type": "object",
              "properties": {
                "field": {
                  "title": "Field",
                  "type": "string",
                  "description": "The field that is needs to be addressed."
                },
                "reason": {
                  "title": "Reason",
                  "type": "string",
                  "description": "The reason behind the field needing attention."
                },
                "message": {
                  "title": "Message",
                  "type": "string",
                  "description": "A more descriptive message."
                }
              },
              "description": "A list of fields which require attention",
              "readOnly": true
            },
            "description": "List of requirements due in order to be onboarded.",
            "readOnly": true
          },
          "company": {
            "title": "Business",
            "required": [
              "trading_name",
              "date_of_incorporation",
              "principal_address",
              "representatives",
              "business_type"
            ],
            "type": "object",
            "properties": {
              "trading_name": {
                "title": "Trading name",
                "maxLength": 300,
                "minLength": 2,
                "type": "string",
                "description": "The trading name of the sub-entity, also referred to as 'doing business as'."
              },
              "date_of_incorporation": {
                "title": "Date of Incorporation",
                "required": [
                  "month",
                  "year"
                ],
                "type": "object",
                "properties": {
                  "day": {
                    "maximum": 31,
                    "minimum": 1,
                    "type": "integer",
                    "description": "The day of the month the company was incorporated."
                  },
                  "month": {
                    "maximum": 12,
                    "minimum": 1,
                    "type": "integer",
                    "description": "The month the company was incorporated."
                  },
                  "year": {
                    "maximum": 2999,
                    "minimum": 1500,
                    "type": "integer",
                    "description": "The year the company was incorporated."
                  }
                },
                "description": "The date the company was incorporated."
              },
              "principal_address": {
                "title": "Principal Address",
                "required": [
                  "address_line1",
                  "city",
                  "zip",
                  "country"
                ],
                "type": "object",
                "properties": {
                  "address_line1": {
                    "title": "Address line 1",
                    "maxLength": 300,
                    "minLength": 1,
                    "pattern": "\\S",
                    "type": "string",
                    "description": "The first line of the address."
                  },
                  "address_line2": {
                    "title": "Address line 2",
                    "maxLength": 300,
                    "description": "The second line of the address."
                  },
                  "city": {
                    "title": "City",
                    "maxLength": 300,
                    "minLength": 2,
                    "type": "string",
                    "description": "The address city."
                  },
                  "state": {
                    "title": "State",
                    "maxLength": 300,
                    "minLength": 1,
                    "pattern": "\\S",
                    "type": "string",
                    "description": "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": {
                    "title": "EU Postal Code",
                    "maxLength": 16,
                    "minLength": 1,
                    "pattern": "^[a-zA-Z0-9]+[-\\s]?[a-zA-Z0-9]+$",
                    "type": "string",
                    "description": "The address zip/postal code."
                  },
                  "country": {
                    "title": "Country",
                    "maxLength": 2,
                    "minLength": 2,
                    "pattern": "[a-zA-Z]{2}",
                    "type": "string",
                    "description": "The country code (iso-3166-1 alpha-2)",
                    "format": "iso-3166-1-alpha-2"
                  }
                },
                "description": "The primary location where business is performed."
              },
              "representatives": {
                "title": "Representative List",
                "maxItems": 1,
                "minItems": 1,
                "type": "array",
                "items": {
                  "title": "Person of Interest",
                  "required": [
                    "individual",
                    "roles",
                    "documents"
                  ],
                  "type": "object",
                  "properties": {
                    "id": {
                      "maxLength": 30,
                      "minLength": 30,
                      "pattern": "^rep_[a-z0-9]{26}$",
                      "description": "The representative's id."
                    },
                    "individual": {
                      "title": "Individual",
                      "required": [
                        "first_name",
                        "last_name",
                        "date_of_birth",
                        "place_of_birth",
                        "address"
                      ],
                      "type": "object",
                      "properties": {
                        "first_name": {
                          "title": "First name",
                          "maxLength": 50,
                          "minLength": 2,
                          "type": "string",
                          "description": "The representative's first name."
                        },
                        "middle_name": {
                          "title": "Middle name",
                          "maxLength": 50,
                          "minLength": 2,
                          "type": "string",
                          "description": "The representative's middle name. Required if appears in official docs"
                        },
                        "last_name": {
                          "title": "Last name",
                          "maxLength": 50,
                          "minLength": 2,
                          "type": "string",
                          "description": "The representative's last name."
                        },
                        "date_of_birth": {
                          "title": "Date of birth",
                          "required": [
                            "day",
                            "month",
                            "year"
                          ],
                          "type": "object",
                          "properties": {
                            "day": {
                              "maximum": 31,
                              "minimum": 1,
                              "type": "integer",
                              "description": "The calendar day of the month they were born."
                            },
                            "month": {
                              "maximum": 12,
                              "minimum": 1,
                              "type": "integer",
                              "description": "The month of the year they were born."
                            },
                            "year": {
                              "maximum": 2999,
                              "minimum": 1900,
                              "type": "integer",
                              "description": "The year they were born."
                            }
                          },
                          "description": "The date of birth of the person according to the Gregorian calendar."
                        },
                        "place_of_birth": {
                          "title": "Place of Birth",
                          "required": [
                            "country"
                          ],
                          "properties": {
                            "country": {
                              "title": "Country",
                              "maxLength": 2,
                              "minLength": 2,
                              "pattern": "[a-zA-Z]{2}",
                              "type": "string",
                              "description": "The country code (iso-3166-1 alpha-2)",
                              "format": "iso-3166-1-alpha-2"
                            }
                          },
                          "description": "The place of birth of the person."
                        },
                        "national_id_number": {
                          "title": "Social security number (SSN or ITIN) - US Residents Only",
                          "maxLength": 9,
                          "minLength": 9,
                          "pattern": "^\\d{9}$",
                          "description": "Social security number (SSN) or Individual Taxpayer Identification Number (ITIN) for non-US citizens"
                        },
                        "email_address": {
                          "title": "Email",
                          "description": "The representative's personal email address.",
                          "format": "email"
                        },
                        "phone": {
                          "title": "Phone number",
                          "required": [
                            "country_code",
                            "number"
                          ],
                          "type": "object",
                          "properties": {
                            "country_code": {
                              "title": "Country calling code",
                              "enum": [
                                "AF",
                                "AL",
                                "DZ",
                                "AS",
                                "AD",
                                "AO",
                                "AI",
                                "AG",
                                "AR",
                                "AM",
                                "AW",
                                "AU",
                                "AT",
                                "AZ",
                                "BS",
                                "BH",
                                "BD",
                                "BB",
                                "BY",
                                "BE",
                                "BZ",
                                "BJ",
                                "BM",
                                "BT",
                                "BO",
                                "BA",
                                "BW",
                                "BR",
                                "BN",
                                "BG",
                                "BF",
                                "BI",
                                "CV",
                                "KH",
                                "CM",
                                "CA",
                                "KY",
                                "CF",
                                "TD",
                                "CL",
                                "CN",
                                "CO",
                                "KM",
                                "CD",
                                "CG",
                                "CK",
                                "CR",
                                "HR",
                                "CU",
                                "CW",
                                "CY",
                                "CZ",
                                "DK",
                                "DJ",
                                "DM",
                                "DO",
                                "EC",
                                "EG",
                                "SV",
                                "GQ",
                                "ER",
                                "EE",
                                "SZ",
                                "ET",
                                "FO",
                                "FJ",
                                "FI",
                                "FR",
                                "GF",
                                "PF",
                                "GA",
                                "GM",
                                "GE",
                                "DE",
                                "GH",
                                "GI",
                                "GR",
                                "GL",
                                "GD",
                                "GP",
                                "GU",
                                "GT",
                                "GG",
                                "GN",
                                "GW",
                                "GY",
                                "HT",
                                "HN",
                                "HK",
                                "HU",
                                "IS",
                                "IN",
                                "ID",
                                "IR",
                                "IQ",
                                "IE",
                                "IM",
                                "IL",
                                "IT",
                                "JM",
                                "JP",
                                "JE",
                                "JO",
                                "KZ",
                                "KE",
                                "KI",
                                "KP",
                                "KR",
                                "KW",
                                "KG",
                                "LA",
                                "LV",
                                "LB",
                                "LS",
                                "LR",
                                "LY",
                                "LI",
                                "LT",
                                "LU",
                                "MO",
                                "MG",
                                "MW",
                                "MY",
                                "MV",
                                "ML",
                                "MT",
                                "MH",
                                "MQ",
                                "MR",
                                "MU",
                                "MX",
                                "FM",
                                "MD",
                                "MC",
                                "MN",
                                "ME",
                                "MS",
                                "MA",
                                "MZ",
                                "MM",
                                "NA",
                                "NR",
                                "NP",
                                "NL",
                                "NC",
                                "NZ",
                                "NI",
                                "NE",
                                "NG",
                                "NU",
                                "NF",
                                "MK",
                                "MP",
                                "NO",
                                "OM",
                                "PK",
                                "PW",
                                "PA",
                                "PG",
                                "PY",
                                "PE",
                                "PH",
                                "PL",
                                "PT",
                                "PR",
                                "QA",
                                "RE",
                                "RO",
                                "RU",
                                "RW",
                                "BL",
                                "SH",
                                "KN",
                                "LC",
                                "PM",
                                "VC",
                                "WS",
                                "SM",
                                "ST",
                                "SA",
                                "SN",
                                "RS",
                                "SC",
                                "SL",
                                "SG",
                                "BQ",
                                "SX",
                                "SK",
                                "SI",
                                "SB",
                                "SO",
                                "ZA",
                                "GS",
                                "SS",
                                "ES",
                                "LK",
                                "SD",
                                "SR",
                                "SE",
                                "CH",
                                "SY",
                                "TW",
                                "TJ",
                                "TZ",
                                "TH",
                                "TL",
                                "TG",
                                "TK",
                                "TO",
                                "TT",
                                "TN",
                                "TR",
                                "TM",
                                "TC",
                                "TV",
                                "UG",
                                "UA",
                                "AE",
                                "GB",
                                "US",
                                "UY",
                                "UZ",
                                "VU",
                                "VA",
                                "VE",
                                "VN",
                                "VG",
                                "VI",
                                "WF",
                                "EH",
                                "YE",
                                "ZM",
                                "ZW"
                              ],
                              "type": "string",
                              "description": "The country code (iso-3166-1 alpha-2) where the phone number is registered"
                            },
                            "number": {
                              "title": "Phone number",
                              "maxLength": 16,
                              "minLength": 5,
                              "pattern": "^[0-9]{5,16}$",
                              "type": "string",
                              "description": "The phone number without the country calling code"
                            }
                          },
                          "description": "Phone number"
                        },
                        "address": {
                          "title": "Address",
                          "required": [
                            "address_line1",
                            "city",
                            "zip",
                            "country"
                          ],
                          "type": "object",
                          "properties": {
                            "address_line1": {
                              "title": "Address line 1",
                              "maxLength": 300,
                              "minLength": 1,
                              "pattern": "\\S",
                              "type": "string",
                              "description": "The first line of the address."
                            },
                            "address_line2": {
                              "title": "Address line 2",
                              "maxLength": 300,
                              "description": "The second line of the address."
                            },
                            "city": {
                              "title": "City",
                              "maxLength": 300,
                              "minLength": 2,
                              "type": "string",
                              "description": "The address city."
                            },
                            "state": {
                              "title": "State",
                              "maxLength": 300,
                              "minLength": 1,
                              "pattern": "\\S",
                              "type": "string",
                              "description": "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": {
                              "title": "Postal code",
                              "maxLength": 16,
                              "minLength": 1,
                              "pattern": "^[a-zA-Z0-9-\\s]+$",
                              "type": "string",
                              "description": "The address zip/postal code."
                            },
                            "country": {
                              "title": "Country",
                              "maxLength": 2,
                              "minLength": 2,
                              "pattern": "[a-zA-Z]{2}",
                              "type": "string",
                              "description": "The country code (iso-3166-1 alpha-2)",
                              "format": "iso-3166-1-alpha-2"
                            }
                          },
                          "description": "The representative's address."
                        }
                      },
                      "description": "Information about the individual representing the sub-entity."
                    },
                    "roles": {
                      "title": "Roles within company",
                      "maxItems": 1,
                      "minItems": 1,
                      "uniqueItems": true,
                      "type": "array",
                      "items": {
                        "title": "Representative Role",
                        "enum": [
                          "ubo"
                        ],
                        "type": "string",
                        "description": "The representative's role"
                      },
                      "description": "The individual's roles within the company"
                    },
                    "documents": {
                      "title": "Documents",
                      "required": [
                        "proof_of_residential_address",
                        "proof_of_registration",
                        "identity_verification"
                      ],
                      "type": "object",
                      "properties": {
                        "identity_verification": {
                          "title": "Document",
                          "required": [
                            "type",
                            "front"
                          ],
                          "type": "object",
                          "properties": {
                            "type": {
                              "title": "Document type",
                              "enum": [
                                "passport",
                                "national_identity_card",
                                "driving_license",
                                "citizen_card",
                                "residence_permit",
                                "electoral_id"
                              ],
                              "type": "string",
                              "description": "The type of document used for identity verification"
                            },
                            "front": {
                              "title": "Front",
                              "maxLength": 31,
                              "minLength": 31,
                              "pattern": "^file_[a-z2-7]{26}$",
                              "type": "string",
                              "description": "The ID of the front side of the document as represented within Checkout.com systems."
                            },
                            "back": {
                              "title": "Back",
                              "maxLength": 31,
                              "minLength": 31,
                              "pattern": "^file_[a-z2-7]{26}$",
                              "type": "string",
                              "description": "The ID of the back side of the document as represented within Checkout.com systems."
                            }
                          },
                          "description": "The document to use to confirm the individual's identity."
                        },
                        "proof_of_residential_address": {
                          "title": "Document",
                          "required": [
                            "type",
                            "front"
                          ],
                          "type": "object",
                          "properties": {
                            "type": {
                              "title": "Document type",
                              "enum": [
                                "proof_of_address"
                              ],
                              "type": "string",
                              "description": "The type of document being used as address verification"
                            },
                            "front": {
                              "title": "Front",
                              "maxLength": 31,
                              "minLength": 31,
                              "pattern": "^file_[a-z2-7]{26}$",
                              "type": "string",
                              "description": "The ID of the front side of the document as represented within Checkout.com systems."
                            }
                          },
                          "description": "Proof of residential address of the representative"
                        },
                        "proof_of_registration": {
                          "title": "Document",
                          "required": [
                            "type",
                            "front"
                          ],
                          "type": "object",
                          "properties": {
                            "type": {
                              "title": "Document type",
                              "enum": [
                                "extract_from_trade_register",
                                "other"
                              ],
                              "type": "string",
                              "description": "The type of document being used as proof of registration"
                            },
                            "front": {
                              "title": "Front",
                              "maxLength": 31,
                              "minLength": 31,
                              "pattern": "^file_[a-z2-7]{26}$",
                              "type": "string",
                              "description": "The ID of the front side of the document as represented within Checkout.com systems."
                            }
                          },
                          "description": "Proof of sole traders registration e.g. extract from a trade register"
                        }
                      },
                      "additionalProperties": false,
                      "description": "Verification documents for the individual representative"
                    }
                  },
                  "description": "Personal information about the individual representing the sub-entity."
                },
                "description": "Information about representatives of this company."
              },
              "business_type": {
                "title": "Business type",
                "enum": [
                  "individual_or_sole_proprietorship",
                  "limited_company",
                  "public_limited_company",
                  "limited_partnership",
                  "general_partnership",
                  "government_agency",
                  "non_profit_entity",
                  "trust",
                  "club_or_society",
                  "unincorporated_association"
                ],
                "type": "string",
                "description": "The legal type of the company"
              }
            },
            "description": "Information about the sole trader's business."
          },
          "processing_details": {
            "type": "object",
            "allOf": [
              {
                "title": "Processing Details",
                "required": [
                  "settlement_country",
                  "target_countries",
                  "annual_processing_volume",
                  "average_transaction_value",
                  "highest_transaction_value",
                  "currency"
                ],
                "type": "object",
                "properties": {
                  "settlement_country": {
                    "title": "Destination of funds",
                    "maxLength": 2,
                    "minLength": 2,
                    "pattern": "[a-zA-Z]{2}",
                    "type": "string",
                    "description": "The country code (iso-3166-1 alpha-2) where the settlement bank account is located",
                    "format": "iso-3166-1-alpha-2"
                  },
                  "target_countries": {
                    "title": "Target countries",
                    "maxItems": 10,
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "title": "Country",
                      "maxLength": 2,
                      "minLength": 2,
                      "pattern": "[a-zA-Z]{2}",
                      "type": "string",
                      "description": "The country code (iso-3166-1 alpha-2)",
                      "format": "iso-3166-1-alpha-2"
                    },
                    "description": "Target country codes (iso-3166-1 alpha-2) with more than 10% expected volume processing with Checkout"
                  },
                  "annual_processing_volume": {
                    "title": "Estimated annual processing volume",
                    "minimum": 0,
                    "type": "integer",
                    "description": "The estimated annual processing volume. In minor units without decimals."
                  },
                  "average_transaction_value": {
                    "title": "Average sales price",
                    "minimum": 0,
                    "type": "integer",
                    "description": "The expected average transaction value. In minor units without decimals."
                  },
                  "highest_transaction_value": {
                    "title": "Highest transaction value",
                    "minimum": 0,
                    "type": "integer",
                    "description": "The expected highest transaction value. In minor units without decimals."
                  },
                  "currency": {
                    "title": "Currency",
                    "enum": [
                      "EUR"
                    ],
                    "type": "string",
                    "description": "The currency used for the processing details provided."
                  }
                }
              }
            ]
          },
          "documents": {
            "title": "Documents",
            "required": [
              "bank_verification"
            ],
            "type": "object",
            "properties": {
              "bank_verification": {
                "title": "Bank Verification",
                "required": [
                  "type",
                  "front"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Document type",
                    "enum": [
                      "bank_statement"
                    ],
                    "type": "string",
                    "description": "The type of document being used as bank verification"
                  },
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document as represented within Checkout.com systems."
                  }
                },
                "description": "A document showing transactions from last 3 months"
              },
              "additional_document1": {
                "title": "Additional Documentation",
                "required": [
                  "front"
                ],
                "type": "object",
                "properties": {
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document as represented within Checkout.com systems."
                  }
                },
                "description": "Additional space for documents to be provided when requested"
              },
              "additional_document2": {
                "title": "Additional Documentation",
                "required": [
                  "front"
                ],
                "type": "object",
                "properties": {
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document as represented within Checkout.com systems."
                  }
                },
                "description": "Additional space for documents to be provided when requested"
              },
              "additional_document3": {
                "title": "Additional Documentation",
                "required": [
                  "front"
                ],
                "type": "object",
                "properties": {
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document as represented within Checkout.com systems."
                  }
                },
                "description": "Additional space for documents to be provided when requested"
              }
            },
            "description": "The documents used to support the verification of business details."
          }
        }
      },
      "EEASoleTraderLite2-0": {
        "title": "EEA Sole Trader - Lite (2.0)",
        "type": "object",
        "allOf": [
          {
            "title": "Create & Submit regulated EEA Individual (V2.0)",
            "required": [
              "reference",
              "individual",
              "contact_details",
              "profile"
            ],
            "type": "object",
            "properties": {
              "reference": {
                "title": "Unique reference",
                "maxLength": 50,
                "minLength": 1,
                "type": "string",
                "description": "A unique reference you can later use to identify the sub-entity."
              },
              "status": {
                "type": "string",
                "readOnly": true
              },
              "is_draft": {
                "type": "boolean",
                "description": "Specifies whether the sub-entity details are in draft.\n\nMarking a sub-entity as a draft allows sub-entity details to be updated, without triggering due diligence checks.",
                "writeOnly": true
              },
              "profile": {
                "title": "Profile",
                "required": [
                  "urls",
                  "mccs"
                ],
                "type": "object",
                "properties": {
                  "urls": {
                    "title": "Website",
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "title": "Company website URL",
                      "maxLength": 300,
                      "minLength": 4,
                      "pattern": "^(http|https):\\//\\S{2,293}$",
                      "type": "string",
                      "description": "The URL of the company's website.",
                      "format": "uri"
                    },
                    "description": "A collection of website URLs the sub-entity accepts payments on."
                  },
                  "mccs": {
                    "title": "Industry",
                    "maxItems": 5,
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "title": "Merchant category code",
                      "pattern": "^[0-9]{4}$",
                      "description": "The merchant category code (4-digit ISO 18245)."
                    },
                    "description": "Select the categories that most closely describe the business"
                  }
                },
                "description": "Information about the profile of the sub-entity, primarily regarding the products/services offered."
              },
              "contact_details": {
                "title": "Contact Details",
                "required": [
                  "phone",
                  "email_addresses"
                ],
                "type": "object",
                "properties": {
                  "phone": {
                    "title": "Phone",
                    "required": [
                      "number"
                    ],
                    "type": "object",
                    "properties": {
                      "number": {
                        "title": "Phone number",
                        "maximum": 9999999999999999,
                        "minimum": 10000000,
                        "maxLength": 16,
                        "minLength": 8,
                        "pattern": "^[1-9][0-9]{7,15}$",
                        "description": "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.)"
                      }
                    },
                    "description": "The phone number of the sub-entity."
                  },
                  "email_addresses": {
                    "required": [
                      "primary"
                    ],
                    "type": "object",
                    "properties": {
                      "primary": {
                        "title": "Email",
                        "description": "The main email address for this sub-entity.",
                        "format": "email"
                      }
                    },
                    "description": "Email addresses for this sub-entity."
                  },
                  "invitee": {
                    "title": "Invitee",
                    "type": "object",
                    "properties": {
                      "email": {
                        "title": "Email",
                        "description": "The main email address for this sub-entity.",
                        "format": "email"
                      }
                    },
                    "description": "The details of the user responsible for onboarding the sub-entity."
                  }
                },
                "description": "Contact details of this sub-entity."
              },
              "capabilities": {
                "title": "Capabilities",
                "type": "object",
                "description": "The capabilities of the entity.",
                "readOnly": true
              },
              "requirements_due": {
                "title": "Requirements Due",
                "minItems": 0,
                "type": "array",
                "items": {
                  "title": "Requirements due entry",
                  "type": "object",
                  "properties": {
                    "field": {
                      "title": "Field",
                      "type": "string",
                      "description": "The field that is needs to be addressed."
                    },
                    "reason": {
                      "title": "Reason",
                      "type": "string",
                      "description": "The reason behind the field needing attention."
                    }
                  },
                  "description": "A list of fields which require attention",
                  "readOnly": true
                },
                "description": "List of requirements due in order to be onboarded.",
                "readOnly": true
              },
              "instruments": {
                "type": "array",
                "items": {
                  "type": "object"
                },
                "readOnly": true
              },
              "documents": {
                "title": "Documents",
                "required": [
                  "identity_verification"
                ],
                "type": "object",
                "properties": {
                  "identity_verification": {
                    "title": "Document",
                    "required": [
                      "type",
                      "front"
                    ],
                    "type": "object",
                    "properties": {
                      "type": {
                        "title": "Document type",
                        "enum": [
                          "passport",
                          "national_identity_card",
                          "driving_license",
                          "citizen_card",
                          "residence_permit",
                          "electoral_id"
                        ],
                        "type": "string",
                        "description": "The type of document used for identity verification"
                      },
                      "front": {
                        "title": "Front",
                        "maxLength": 31,
                        "minLength": 31,
                        "pattern": "^file_[a-z2-7]{26}$",
                        "type": "string",
                        "description": "The ID of the front side of the document as represented within Checkout.com systems."
                      },
                      "back": {
                        "title": "Back",
                        "maxLength": 31,
                        "minLength": 31,
                        "pattern": "^file_[a-z2-7]{26}$",
                        "type": "string",
                        "description": "The ID of the back side of the document as represented within Checkout.com systems."
                      }
                    },
                    "description": "The document to use to confirm the individual's identity."
                  }
                },
                "description": "A legal document used to verify identity."
              },
              "individual": {
                "title": "Individual",
                "required": [
                  "first_name",
                  "last_name",
                  "date_of_birth",
                  "place_of_birth",
                  "registered_address",
                  "trading_name"
                ],
                "type": "object",
                "properties": {
                  "trading_name": {
                    "title": "Trading name",
                    "maxLength": 300,
                    "minLength": 2,
                    "type": "string",
                    "description": "The trading name of the sub-entity, also referred to as 'doing business as'."
                  },
                  "first_name": {
                    "title": "First name",
                    "maxLength": 50,
                    "minLength": 2,
                    "type": "string",
                    "description": "The representative's first name."
                  },
                  "middle_name": {
                    "title": "Middle name",
                    "maxLength": 50,
                    "minLength": 2,
                    "type": "string",
                    "description": "The representative's middle name. Required if appears in official docs"
                  },
                  "last_name": {
                    "title": "Last name",
                    "maxLength": 50,
                    "minLength": 2,
                    "type": "string",
                    "description": "The representative's last name."
                  },
                  "registered_address": {
                    "title": "Registered Address",
                    "required": [
                      "address_line1",
                      "city",
                      "zip",
                      "country"
                    ],
                    "type": "object",
                    "properties": {
                      "address_line1": {
                        "title": "Address line 1",
                        "maxLength": 300,
                        "minLength": 1,
                        "pattern": "\\S",
                        "type": "string",
                        "description": "The first line of the address."
                      },
                      "address_line2": {
                        "title": "Address line 2",
                        "maxLength": 300,
                        "description": "The second line of the address."
                      },
                      "city": {
                        "title": "City",
                        "maxLength": 300,
                        "minLength": 2,
                        "type": "string",
                        "description": "The address city."
                      },
                      "state": {
                        "title": "State",
                        "maxLength": 300,
                        "minLength": 1,
                        "pattern": "\\S",
                        "type": "string",
                        "description": "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": {
                        "title": "EU Postal Code",
                        "maxLength": 16,
                        "minLength": 1,
                        "pattern": "^[a-zA-Z0-9]+[-\\s]?[a-zA-Z0-9]+$",
                        "type": "string",
                        "description": "The address zip/postal code."
                      },
                      "country": {
                        "title": "Country",
                        "maxLength": 2,
                        "minLength": 2,
                        "pattern": "[a-zA-Z]{2}",
                        "type": "string",
                        "description": "The country code (iso-3166-1 alpha-2)",
                        "format": "iso-3166-1-alpha-2"
                      }
                    },
                    "description": "The registered address of the company."
                  },
                  "date_of_birth": {
                    "title": "Date of birth",
                    "required": [
                      "day",
                      "month",
                      "year"
                    ],
                    "type": "object",
                    "properties": {
                      "day": {
                        "maximum": 31,
                        "minimum": 1,
                        "type": "integer",
                        "description": "The calendar day of the month they were born."
                      },
                      "month": {
                        "maximum": 12,
                        "minimum": 1,
                        "type": "integer",
                        "description": "The month of the year they were born."
                      },
                      "year": {
                        "maximum": 2999,
                        "minimum": 1900,
                        "type": "integer",
                        "description": "The year they were born."
                      }
                    },
                    "description": "The date of birth of the person according to the Gregorian calendar."
                  },
                  "place_of_birth": {
                    "title": "Place of Birth",
                    "required": [
                      "country"
                    ],
                    "properties": {
                      "country": {
                        "title": "Country",
                        "maxLength": 2,
                        "minLength": 2,
                        "pattern": "[a-zA-Z]{2}",
                        "type": "string",
                        "description": "The country code (iso-3166-1 alpha-2)",
                        "format": "iso-3166-1-alpha-2"
                      }
                    },
                    "description": "The place of birth of the person."
                  }
                },
                "description": "Information about the individual represented by the sub-entity."
              }
            }
          }
        ]
      },
      "EntityBasicResponseV2": {
        "title": "Basic response",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the entity.",
            "example": "ent_wxglze3wwywujg4nna5fb7ldli"
          },
          "reference": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "description": "A unique reference you can later use to identify this entity.",
            "example": "superhero1234"
          },
          "capabilities": {
            "$ref": "#/components/schemas/EntityCapabilities"
          },
          "requirements_due": {
            "title": "Requirements Due",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EntityRequirementV2"
            },
            "description": "The requirements still due for this entity to unlock capabilities."
          }
        },
        "readOnly": true
      },
      "EntityBasicResponseV3": {
        "title": "Basic response",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the entity.",
            "example": "ent_wxglze3wwywujg4nna5fb7ldli"
          },
          "reference": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "description": "A unique reference you can later use to identify this entity.",
            "example": "superhero1234"
          },
          "requirements_due": {
            "title": "Requirements Due",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EntityRequirementV3"
            },
            "description": "The requirements still due for this entity to unlock capabilities."
          }
        },
        "readOnly": true
      },
      "EntityBasicResponseWithLinksV2": {
        "title": "Company - Platform (2.0)",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/EntityBasicResponseV2"
          },
          {
            "$ref": "#/components/schemas/EntityLinks"
          }
        ]
      },
      "EntityBasicResponseWithLinksV3": {
        "title": "Company - Platform (3.0)",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/EntityBasicResponseV3"
          },
          {
            "$ref": "#/components/schemas/EntityLinks"
          }
        ]
      },
      "EntityCapabilities": {
        "title": "Capabilities",
        "type": "object",
        "properties": {
          "payments": {
            "type": "object",
            "properties": {
              "available": {
                "type": "boolean",
                "description": "True if payments are available to the entity."
              },
              "enabled": {
                "type": "boolean",
                "description": "True if payments are enabled."
              }
            },
            "description": "Payment related capabilities of an entity.",
            "example": {
              "enabled": false,
              "available": true
            }
          },
          "payouts": {
            "type": "object",
            "properties": {
              "available": {
                "type": "boolean",
                "description": "True if payouts are available to the entity."
              },
              "enabled": {
                "type": "boolean",
                "description": "True if payouts are enabled."
              }
            },
            "description": "Payout related capabilities of an entity.",
            "example": {
              "enabled": false,
              "available": true
            }
          },
          "issuing": {
            "type": "object",
            "properties": {
              "available": {
                "type": "boolean",
                "description": "True if issuing is available to the entity."
              },
              "enabled": {
                "type": "boolean",
                "description": "True if issuing is enabled."
              }
            },
            "description": "Issuing related capabilities of an entity.",
            "example": {
              "enabled": false,
              "available": true
            }
          }
        }
      },
      "EntityLinks": {
        "title": "Links",
        "type": "object",
        "properties": {
          "_links": {
            "additionalProperties": {
              "$ref": "#/components/schemas/Link"
            },
            "example": {
              "self": {
                "href": "https://{prefix}.api.checkout.com/accounts/entities/ent_wxglze3wwywujg4nna5fb7ldli"
              }
            }
          }
        }
      },
      "EntityRequirementDetails": {
        "title": "Requirement details",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/EntityRequirementListItem"
          },
          {
            "type": "object",
            "properties": {
              "message": {
                "type": "string",
                "description": "A user-facing explanation of what is needed to resolve the requirement.",
                "example": "Please confirm your legal company name."
              },
              "_schema": {
                "type": "object",
                "description": "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.",
                "nullable": true
              }
            }
          }
        ],
        "description": "Detailed information about a single requirement.",
        "readOnly": true
      },
      "EntityRequirementListItem": {
        "title": "Requirement summary",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the requirement.",
            "example": "req_5wmacwhrhbzhqkhx5hlqmzje44"
          },
          "resource": {
            "type": "string",
            "description": "The ID of the resource (sub-entity or representative) the requirement applies to.",
            "example": "ent_wxglze3wwywujg4nna5fb7ldli"
          },
          "resource_type": {
            "type": "string",
            "description": "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.",
            "example": "company"
          },
          "reason": {
            "enum": [
              "periodic_review",
              "attestation"
            ],
            "type": "string",
            "description": "The reason the requirement was raised.",
            "example": "periodic_review"
          },
          "priority": {
            "enum": [
              "high",
              "critical"
            ],
            "type": "string",
            "description": "Priority level of this requirement. \"high\" by default, \"critical\" if deadline is within 7 days.",
            "example": "high"
          },
          "deadline": {
            "type": "string",
            "description": "The date and time, in ISO 8601 UTC format, by which the requirement must be resolved.",
            "format": "date-time",
            "example": "2026-06-01T00:00:00.0000000+00:00"
          },
          "urn": {
            "type": "string",
            "description": "The schema-registry URN identifying the field this requirement applies to. Format: `urn:object:{resource_type}#{resource_id}#field:{field_name}`.",
            "example": "urn:object:company#ent_wxglze3wwywujg4nna5fb7ldli#field:legal-name"
          },
          "field_path": {
            "type": "string",
            "description": "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.",
            "nullable": true,
            "example": "company.legal_name"
          },
          "field_urn": {
            "type": "string",
            "description": "The schema-registry URN of the field, from the public mapping definition. May be `null` if no mapping exists.",
            "nullable": true,
            "example": "urn:field:companies/legal-name"
          },
          "metadata": {
            "type": "object",
            "description": "Optional metadata from the property mapping definition. Shape varies by requirement.",
            "nullable": true,
            "example": {
              "purpose": "company_verification"
            }
          },
          "_links": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/Link"
            },
            "description": "Links to related resources.",
            "example": {
              "self": {
                "href": "https://{prefix}.api.checkout.com/accounts/entities/ent_wxglze3wwywujg4nna5fb7ldli/requirements/req_5wmacwhrhbzhqkhx5hlqmzje44"
              }
            }
          }
        },
        "description": "A pending requirement that the sub-entity must resolve to remain compliant or unlock capabilities.",
        "readOnly": true
      },
      "EntityRequirementListResponse": {
        "title": "Requirements list",
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EntityRequirementListItem"
            },
            "description": "The list of pending requirements for the sub-entity. Empty when no requirements are outstanding."
          }
        },
        "description": "The list of pending requirements for a sub-entity.",
        "readOnly": true
      },
      "EntityRequirementUpdateRequest": {
        "title": "Resolve requirement request",
        "required": [
          "value"
        ],
        "type": "object",
        "properties": {
          "value": {
            "oneOf": [
              {
                "type": "object"
              },
              {
                "type": "array",
                "items": { }
              },
              {
                "type": "string"
              },
              {
                "type": "number"
              },
              {
                "type": "boolean"
              }
            ],
            "description": "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.",
            "example": {
              "file_id": "file_6lbss42ezvoufcb2beo76rvwly"
            }
          }
        },
        "description": "Request body used to resolve a requirement. The shape of `value` is defined by the requirement's `_schema` (returned from `GET /accounts/entities/{id}/requirements/{requirementId}`)."
      },
      "EntityRequirementUpdateResponse": {
        "title": "Resolve requirement response",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the requirement.",
            "example": "req_5wmacwhrhbzhqkhx5hlqmzje44"
          },
          "status": {
            "enum": [
              "processing"
            ],
            "type": "string",
            "description": "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.",
            "example": "processing"
          },
          "submitted_at": {
            "type": "string",
            "description": "The date and time, in ISO 8601 UTC format, the response was accepted.",
            "format": "date-time",
            "example": "2026-05-05T10:15:30.0000000+00:00"
          },
          "_links": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/Link"
            },
            "example": {
              "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"
              }
            }
          }
        },
        "description": "Acknowledges that a requirement response has been accepted for processing.",
        "readOnly": true
      },
      "EntityRequirementV2": {
        "title": "Requirement",
        "type": "object",
        "properties": {
          "field": {
            "type": "string",
            "description": "The name of the field required.",
            "example": "individual.identification.document"
          },
          "reason": {
            "type": "string",
            "description": "The reason the field is required.",
            "example": "required"
          }
        },
        "readOnly": true
      },
      "EntityRequirementV3": {
        "title": "Requirement",
        "type": "object",
        "properties": {
          "field": {
            "type": "string",
            "description": "The name of the field required.",
            "example": "individual.identification.document"
          },
          "reason": {
            "type": "string",
            "description": "The reason the field is required.",
            "example": "required"
          },
          "message": {
            "type": "string",
            "description": "An additional text field for requirement reasoning.",
            "example": "required"
          }
        },
        "readOnly": true
      },
      "GBCompanyFull2-0": {
        "title": "GB Company - Full (2.0)",
        "type": "object",
        "allOf": [
          {
            "title": "Create & Submit GB Company (V2.0)",
            "required": [
              "reference",
              "company",
              "contact_details",
              "profile"
            ],
            "type": "object",
            "properties": {
              "reference": {
                "title": "Unique reference",
                "maxLength": 50,
                "minLength": 1,
                "type": "string",
                "description": "A unique reference you can later use to identify the sub-entity."
              },
              "status": {
                "type": "string",
                "readOnly": true
              },
              "is_draft": {
                "type": "boolean",
                "description": "Specifies whether the sub-entity details are in draft.\n\nMarking a sub-entity as a draft allows sub-entity details to be updated, without triggering due diligence checks.",
                "writeOnly": true
              },
              "profile": {
                "title": "Profile",
                "required": [
                  "urls",
                  "mccs"
                ],
                "type": "object",
                "properties": {
                  "urls": {
                    "title": "Website",
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "title": "Company website URL",
                      "maxLength": 300,
                      "minLength": 4,
                      "pattern": "^(http|https):\\//\\S{2,293}$",
                      "type": "string",
                      "description": "The URL of the company's website.",
                      "format": "uri"
                    },
                    "description": "A collection of website URLs the sub-entity accepts payments on."
                  },
                  "mccs": {
                    "title": "Industry",
                    "maxItems": 5,
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "title": "Merchant category code",
                      "pattern": "^[0-9]{4}$",
                      "description": "The merchant category code (4-digit ISO 18245)."
                    },
                    "description": "Select the categories that most closely describe the business"
                  },
                  "default_holding_currency": {
                    "title": "Main currency",
                    "description": "The default holding currency code (iso-4217)",
                    "format": "iso-4217"
                  },
                  "holding_currencies": {
                    "title": "Currencies",
                    "items": {
                      "title": "Currency",
                      "enum": [
                        "AED",
                        "AUD",
                        "CAD",
                        "CHF",
                        "CZK",
                        "DKK",
                        "EUR",
                        "GBP",
                        "HKD",
                        "JPY",
                        "KWD",
                        "NOK",
                        "NZD",
                        "PLN",
                        "RON",
                        "SEK",
                        "SGD",
                        "USD",
                        "ZAR"
                      ],
                      "type": "string",
                      "description": "The currency code (iso-4217)"
                    },
                    "description": "Incoming funds are held in your selected currencies",
                    "default": [
                      "GBP"
                    ]
                  }
                },
                "description": "Information about the profile of the sub-entity, primarily regarding the products/services offered."
              },
              "contact_details": {
                "title": "Contact Details",
                "required": [
                  "phone",
                  "email_addresses"
                ],
                "type": "object",
                "properties": {
                  "phone": {
                    "title": "Phone",
                    "required": [
                      "number"
                    ],
                    "type": "object",
                    "properties": {
                      "number": {
                        "title": "Phone number",
                        "maximum": 9999999999999999,
                        "minimum": 10000000,
                        "maxLength": 16,
                        "minLength": 8,
                        "pattern": "^[1-9][0-9]{7,15}$",
                        "description": "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.)"
                      }
                    },
                    "description": "The phone number of the sub-entity."
                  },
                  "email_addresses": {
                    "required": [
                      "primary"
                    ],
                    "type": "object",
                    "properties": {
                      "primary": {
                        "title": "Email",
                        "description": "The main email address for this sub-entity.",
                        "format": "email"
                      }
                    },
                    "description": "Email addresses for this sub-entity."
                  },
                  "invitee": {
                    "title": "Invitee",
                    "type": "object",
                    "properties": {
                      "email": {
                        "title": "Email",
                        "description": "The main email address for this sub-entity.",
                        "format": "email"
                      }
                    },
                    "description": "The details of the user responsible for onboarding the sub-entity."
                  }
                },
                "description": "Contact details of this sub-entity."
              },
              "capabilities": {
                "title": "Capabilities",
                "type": "object",
                "description": "The capabilities of the entity.",
                "readOnly": true
              },
              "requirements_due": {
                "title": "Requirements Due",
                "minItems": 0,
                "type": "array",
                "items": {
                  "title": "Requirements due entry",
                  "type": "object",
                  "properties": {
                    "field": {
                      "title": "Field",
                      "type": "string",
                      "description": "The field that is needs to be addressed."
                    },
                    "reason": {
                      "title": "Reason",
                      "type": "string",
                      "description": "The reason behind the field needing attention."
                    }
                  },
                  "description": "A list of fields which require attention",
                  "readOnly": true
                },
                "description": "List of requirements due in order to be onboarded.",
                "readOnly": true
              },
              "instruments": {
                "type": "array",
                "items": {
                  "type": "object"
                },
                "readOnly": true
              },
              "company": {
                "title": "Company",
                "required": [
                  "legal_name",
                  "trading_name",
                  "registered_address",
                  "principal_address",
                  "representatives",
                  "business_registration_number"
                ],
                "type": "object",
                "properties": {
                  "legal_name": {
                    "title": "Legal name",
                    "maxLength": 300,
                    "minLength": 2,
                    "type": "string",
                    "description": "The legal name of the sub-entity."
                  },
                  "trading_name": {
                    "title": "Trading name",
                    "maxLength": 300,
                    "minLength": 2,
                    "type": "string",
                    "description": "The trading name of the sub-entity, also referred to as 'doing business as'."
                  },
                  "business_registration_number": {
                    "title": "Registration number",
                    "maxLength": 8,
                    "minLength": 8,
                    "pattern": "^(([Aa][Cc]|[Cc][Ee]|[Ee][Nn]|[Ee][Ss]|[Ff][Cc]|[Gg][Ee]|[Gg][Nn]|[Gg][Ss]|[Ii][Cc]|[Ii][Pp]|[Ll][Pp]|[Nn][Aa]|[Nn][Cc]|[Nn][Ff]|[Nn][Ii]|[Nn][Ll]|[Nn][Oo]|[Nn][Pp]|[Nn][Rr]|[Nn][Vv]|[Nn][Zz]|[Oo][Cc]|[Rr][0]|[Rr][Cc]|[Ss][Aa]|[Ss][Cc]|[Ss][Ee]|[Ss][Ff]|[Ss][Ii]|[Ss][Ll]|[Ss][Oo]|[Ss][Pp]|[Ss][Rr]|[Ss][Zz]|[Zz][Cc]|\\d{2})\\d{6})$",
                    "description": "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": {
                    "title": "Principal Address",
                    "required": [
                      "address_line1",
                      "city",
                      "zip",
                      "country"
                    ],
                    "type": "object",
                    "properties": {
                      "address_line1": {
                        "title": "Address line 1",
                        "maxLength": 300,
                        "minLength": 1,
                        "pattern": "\\S",
                        "type": "string",
                        "description": "The first line of the address."
                      },
                      "address_line2": {
                        "title": "Address line 2",
                        "maxLength": 300,
                        "description": "The second line of the address."
                      },
                      "city": {
                        "title": "City",
                        "maxLength": 300,
                        "minLength": 2,
                        "type": "string",
                        "description": "The address city."
                      },
                      "state": {
                        "title": "State",
                        "maxLength": 300,
                        "minLength": 1,
                        "pattern": "\\S",
                        "type": "string",
                        "description": "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": {
                        "title": "UK Postal Code",
                        "maxLength": 8,
                        "minLength": 5,
                        "pattern": "^[A-Za-z]{1,2}([0-9]{1,2}|[0-9][A-Za-z])\\s?[0-9][A-Za-z]{2}$",
                        "type": "string",
                        "description": "The address zip/postal code."
                      },
                      "country": {
                        "title": "Country",
                        "maxLength": 2,
                        "minLength": 2,
                        "pattern": "[a-zA-Z]{2}",
                        "type": "string",
                        "description": "The country code (iso-3166-1 alpha-2)",
                        "format": "iso-3166-1-alpha-2"
                      }
                    },
                    "description": "The primary location of the company where business is performed."
                  },
                  "registered_address": {
                    "title": "Registered Address",
                    "required": [
                      "address_line1",
                      "city",
                      "zip",
                      "country"
                    ],
                    "type": "object",
                    "properties": {
                      "address_line1": {
                        "title": "Address line 1",
                        "maxLength": 300,
                        "minLength": 1,
                        "pattern": "\\S",
                        "type": "string",
                        "description": "The first line of the address."
                      },
                      "address_line2": {
                        "title": "Address line 2",
                        "maxLength": 300,
                        "description": "The second line of the address."
                      },
                      "city": {
                        "title": "City",
                        "maxLength": 300,
                        "minLength": 2,
                        "type": "string",
                        "description": "The address city."
                      },
                      "state": {
                        "title": "State",
                        "maxLength": 300,
                        "minLength": 1,
                        "pattern": "\\S",
                        "type": "string",
                        "description": "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": {
                        "title": "UK Postal Code",
                        "maxLength": 8,
                        "minLength": 5,
                        "pattern": "^[A-Za-z]{1,2}([0-9]{1,2}|[0-9][A-Za-z])\\s?[0-9][A-Za-z]{2}$",
                        "type": "string",
                        "description": "The address zip/postal code."
                      },
                      "country": {
                        "title": "Country",
                        "maxLength": 2,
                        "minLength": 2,
                        "pattern": "[a-zA-Z]{2}",
                        "type": "string",
                        "description": "The country code (iso-3166-1 alpha-2)",
                        "format": "iso-3166-1-alpha-2"
                      }
                    },
                    "description": "The registered address of the company."
                  },
                  "representatives": {
                    "title": "Representative List",
                    "maxItems": 5,
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "title": "Representative",
                      "required": [
                        "first_name",
                        "last_name",
                        "address",
                        "roles",
                        "date_of_birth"
                      ],
                      "type": "object",
                      "properties": {
                        "id": {
                          "maxLength": 30,
                          "minLength": 30,
                          "pattern": "^rep_[a-z0-9]{26}$",
                          "description": "The representative's id."
                        },
                        "first_name": {
                          "title": "First name",
                          "maxLength": 50,
                          "minLength": 2,
                          "type": "string",
                          "description": "The representative's first name."
                        },
                        "middle_name": {
                          "title": "Middle name",
                          "maxLength": 50,
                          "minLength": 2,
                          "type": "string",
                          "description": "The representative's middle name. Required if appears in official docs"
                        },
                        "last_name": {
                          "title": "Last name",
                          "maxLength": 50,
                          "minLength": 2,
                          "type": "string",
                          "description": "The representative's last name."
                        },
                        "documents": {
                          "title": "Document",
                          "required": [
                            "identity_verification"
                          ],
                          "type": "object",
                          "properties": {
                            "identity_verification": {
                              "title": "Document",
                              "required": [
                                "type",
                                "front"
                              ],
                              "type": "object",
                              "properties": {
                                "type": {
                                  "title": "Document type",
                                  "enum": [
                                    "passport",
                                    "national_identity_card",
                                    "driving_license",
                                    "citizen_card",
                                    "residence_permit",
                                    "electoral_id"
                                  ],
                                  "type": "string",
                                  "description": "The type of document used for identity verification"
                                },
                                "front": {
                                  "title": "Front",
                                  "maxLength": 31,
                                  "minLength": 31,
                                  "pattern": "^file_[a-z2-7]{26}$",
                                  "type": "string",
                                  "description": "The ID of the front side of the document as represented within Checkout.com systems."
                                },
                                "back": {
                                  "title": "Back",
                                  "maxLength": 31,
                                  "minLength": 31,
                                  "pattern": "^file_[a-z2-7]{26}$",
                                  "type": "string",
                                  "description": "The ID of the back side of the document as represented within Checkout.com systems."
                                }
                              },
                              "description": "The document to use to confirm the individual's identity."
                            }
                          },
                          "description": "A legal document used to verify identity"
                        },
                        "date_of_birth": {
                          "title": "Date of birth",
                          "required": [
                            "day",
                            "month",
                            "year"
                          ],
                          "type": "object",
                          "properties": {
                            "day": {
                              "maximum": 31,
                              "minimum": 1,
                              "type": "integer",
                              "description": "The calendar day of the month they were born."
                            },
                            "month": {
                              "maximum": 12,
                              "minimum": 1,
                              "type": "integer",
                              "description": "The month of the year they were born."
                            },
                            "year": {
                              "maximum": 2999,
                              "minimum": 1900,
                              "type": "integer",
                              "description": "The year they were born."
                            }
                          },
                          "description": "The date of birth of the person according to the Gregorian calendar."
                        },
                        "phone": {
                          "title": "Phone",
                          "required": [
                            "number"
                          ],
                          "type": "object",
                          "properties": {
                            "number": {
                              "title": "Phone number",
                              "maximum": 9999999999999999,
                              "minimum": 10000000,
                              "maxLength": 16,
                              "minLength": 8,
                              "pattern": "^[1-9][0-9]{7,15}$",
                              "description": "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.)"
                            }
                          },
                          "description": "The phone number of the sub-entity."
                        },
                        "address": {
                          "title": "Address",
                          "required": [
                            "country"
                          ],
                          "type": "object",
                          "properties": {
                            "address_line1": {
                              "title": "Address line 1",
                              "maxLength": 300,
                              "minLength": 1,
                              "pattern": "\\S",
                              "type": "string",
                              "description": "The first line of the address."
                            },
                            "address_line2": {
                              "title": "Address line 2",
                              "maxLength": 300,
                              "description": "The second line of the address."
                            },
                            "city": {
                              "title": "City",
                              "maxLength": 300,
                              "minLength": 2,
                              "type": "string",
                              "description": "The address city."
                            },
                            "state": {
                              "title": "State",
                              "maxLength": 300,
                              "minLength": 1,
                              "pattern": "\\S",
                              "type": "string",
                              "description": "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": {
                              "title": "Postal code",
                              "maxLength": 16,
                              "minLength": 1,
                              "pattern": "^[a-zA-Z0-9-\\s]+$",
                              "type": "string",
                              "description": "The address zip/postal code."
                            },
                            "country": {
                              "title": "Country",
                              "maxLength": 2,
                              "minLength": 2,
                              "pattern": "[a-zA-Z]{2}",
                              "type": "string",
                              "description": "The country code (iso-3166-1 alpha-2)",
                              "format": "iso-3166-1-alpha-2"
                            }
                          },
                          "description": "The representative's address."
                        },
                        "roles": {
                          "title": "Roles within company",
                          "maxItems": 2,
                          "minItems": 1,
                          "uniqueItems": true,
                          "type": "array",
                          "items": {
                            "title": "Representative Role",
                            "enum": [
                              "ubo",
                              "authorised_signatory"
                            ],
                            "type": "string",
                            "description": "The representative's roles within the company"
                          },
                          "description": "The individual's roles within the company"
                        }
                      },
                      "description": "Information about representatives of this company."
                    },
                    "description": "Information about representatives of this company."
                  },
                  "date_of_incorporation": {
                    "title": "Date of Incorporation",
                    "required": [
                      "month",
                      "year"
                    ],
                    "type": "object",
                    "properties": {
                      "day": {
                        "maximum": 31,
                        "minimum": 1,
                        "type": "integer",
                        "description": "The day of the month the company was incorporated."
                      },
                      "month": {
                        "maximum": 12,
                        "minimum": 1,
                        "type": "integer",
                        "description": "The month the company was incorporated."
                      },
                      "year": {
                        "maximum": 2999,
                        "minimum": 1500,
                        "type": "integer",
                        "description": "The year the company was incorporated."
                      }
                    },
                    "description": "The date the company was incorporated."
                  }
                },
                "description": "Information about the company represented by the sub-entity."
              },
              "documents": {
                "title": "Documents",
                "required": [
                  "company_verification"
                ],
                "type": "object",
                "properties": {
                  "company_verification": {
                    "title": "Company Verification",
                    "required": [
                      "type",
                      "front"
                    ],
                    "type": "object",
                    "properties": {
                      "type": {
                        "title": "Document type",
                        "enum": [
                          "incorporation_document"
                        ],
                        "type": "string",
                        "description": "The type of document used for company verification"
                      },
                      "front": {
                        "title": "Front",
                        "maxLength": 31,
                        "minLength": 31,
                        "pattern": "^file_[a-z2-7]{26}$",
                        "type": "string",
                        "description": "The ID of the front side of the document as represented within Checkout.com systems."
                      }
                    },
                    "description": "Certified by a power of attorney within the last 3 months"
                  }
                },
                "description": "The documents used to support the verification of company details."
              }
            }
          }
        ]
      },
      "GBCompanyFull3-0": {
        "title": "GB Company - Full (3.0)",
        "required": [
          "reference",
          "company",
          "profile",
          "contact_details",
          "documents",
          "processing_details"
        ],
        "type": "object",
        "properties": {
          "reference": {
            "title": "Unique reference",
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "description": "A unique reference you can later use to identify the sub-entity."
          },
          "status": {
            "type": "string",
            "readOnly": true
          },
          "is_draft": {
            "type": "boolean",
            "description": "Specifies whether the sub-entity details are in draft.\n\nMarking a sub-entity as a draft allows sub-entity details to be updated, without triggering due diligence checks.",
            "writeOnly": true
          },
          "profile": {
            "title": "Profile",
            "required": [
              "urls",
              "mccs",
              "default_holding_currency",
              "holding_currencies"
            ],
            "type": "object",
            "properties": {
              "urls": {
                "title": "Website",
                "maxItems": 100,
                "type": "array",
                "items": {
                  "title": "Company website URL",
                  "maxLength": 300,
                  "minLength": 4,
                  "pattern": "^(http|https):\\//\\S{2,293}$",
                  "type": "string",
                  "description": "The URL of the company's website.",
                  "format": "uri"
                },
                "description": "A collection of website URLs the sub-entity accepts payments on."
              },
              "mccs": {
                "title": "Industry",
                "maxItems": 5,
                "minItems": 1,
                "type": "array",
                "items": {
                  "title": "Merchant category code",
                  "pattern": "^[0-9]{4}$",
                  "description": "The merchant category code (4-digit ISO 18245)."
                },
                "description": "Select the categories that most closely describe the business"
              },
              "default_holding_currency": {
                "title": "Main currency",
                "description": "The default holding currency code (iso-4217)",
                "format": "iso-4217"
              },
              "holding_currencies": {
                "title": "Currencies",
                "minItems": 1,
                "type": "array",
                "items": {
                  "title": "Currency",
                  "enum": [
                    "AED",
                    "AUD",
                    "CAD",
                    "CHF",
                    "CZK",
                    "DKK",
                    "EUR",
                    "GBP",
                    "HKD",
                    "JPY",
                    "KWD",
                    "NOK",
                    "NZD",
                    "PLN",
                    "RON",
                    "SEK",
                    "SGD",
                    "USD",
                    "ZAR"
                  ],
                  "type": "string",
                  "description": "The currency code (iso-4217)"
                },
                "description": "Incoming funds are held in your selected currencies",
                "default": [
                  "GBP"
                ]
              }
            },
            "description": "Information about the profile of the sub-entity, primarily regarding the products/services offered."
          },
          "contact_details": {
            "title": "Contact Details",
            "type": "object",
            "properties": {
              "phone": {
                "title": "Phone number",
                "required": [
                  "country_code",
                  "number"
                ],
                "type": "object",
                "properties": {
                  "country_code": {
                    "title": "Country calling code",
                    "enum": [
                      "GI",
                      "CH",
                      "GG",
                      "IM",
                      "JE",
                      "GB"
                    ],
                    "type": "string",
                    "description": "The country code (iso-3166-1 alpha-2) where the phone number is registered"
                  },
                  "number": {
                    "title": "Phone number",
                    "maxLength": 11,
                    "minLength": 7,
                    "pattern": "^[0-9]{7,11}$",
                    "type": "string",
                    "description": "The phone number without the country calling code"
                  }
                },
                "description": "Phone number"
              },
              "email_addresses": {
                "required": [
                  "primary"
                ],
                "type": "object",
                "properties": {
                  "primary": {
                    "title": "Email",
                    "description": "The main email address for this sub-entity.",
                    "format": "email"
                  }
                },
                "description": "Email addresses for this sub-entity."
              },
              "invitee": {
                "title": "Invitee",
                "type": "object",
                "properties": {
                  "email": {
                    "title": "Email",
                    "description": "The main email address for this sub-entity.",
                    "format": "email"
                  }
                },
                "description": "The details of the user responsible for onboarding the sub-entity."
              }
            },
            "description": "Contact details of this sub-entity."
          },
          "capabilities": {
            "title": "Capabilities",
            "type": "object",
            "description": "The capabilities of the entity.",
            "readOnly": true
          },
          "requirements_due": {
            "title": "Requirements Due",
            "minItems": 0,
            "type": "array",
            "items": {
              "title": "Requirements due entry",
              "type": "object",
              "properties": {
                "field": {
                  "title": "Field",
                  "type": "string",
                  "description": "The field that is needs to be addressed."
                },
                "reason": {
                  "title": "Reason",
                  "type": "string",
                  "description": "The reason behind the field needing attention."
                },
                "message": {
                  "title": "Message",
                  "type": "string",
                  "description": "A more descriptive message."
                }
              },
              "description": "A list of fields which require attention",
              "readOnly": true
            },
            "description": "List of requirements due in order to be onboarded.",
            "readOnly": true
          },
          "company": {
            "title": "Company",
            "required": [
              "legal_name",
              "trading_name",
              "business_registration_number",
              "date_of_incorporation",
              "principal_address",
              "registered_address",
              "representatives",
              "business_type"
            ],
            "type": "object",
            "properties": {
              "legal_name": {
                "title": "Legal name",
                "maxLength": 300,
                "minLength": 2,
                "type": "string",
                "description": "The legal name of the sub-entity."
              },
              "trading_name": {
                "title": "Trading name",
                "maxLength": 300,
                "minLength": 2,
                "type": "string",
                "description": "The trading name of the sub-entity, also referred to as 'doing business as'."
              },
              "business_registration_number": {
                "title": "Registration Number",
                "maxLength": 8,
                "minLength": 8,
                "pattern": "^(((AC|CE|CS|FC|FE|GE|GS|IC|LP|NC|NF|NI|NL|NO|NP|OC|OE|PC|R0|RC|SA|SC|SE|SF|SG|SI|SL|SO|SR|SZ|ZC|\\d{2})\\d{6})|((IP|SP|RS)[A-Z\\d]{6})|(SL\\d{5}[\\dA]))$",
                "description": "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": {
                "title": "Date of Incorporation",
                "required": [
                  "month",
                  "year"
                ],
                "type": "object",
                "properties": {
                  "day": {
                    "maximum": 31,
                    "minimum": 1,
                    "type": "integer",
                    "description": "The day of the month the company was incorporated."
                  },
                  "month": {
                    "maximum": 12,
                    "minimum": 1,
                    "type": "integer",
                    "description": "The month the company was incorporated."
                  },
                  "year": {
                    "maximum": 2999,
                    "minimum": 1500,
                    "type": "integer",
                    "description": "The year the company was incorporated."
                  }
                },
                "description": "The date the company was incorporated."
              },
              "principal_address": {
                "title": "Principal Address",
                "required": [
                  "address_line1",
                  "city",
                  "zip",
                  "country"
                ],
                "type": "object",
                "properties": {
                  "address_line1": {
                    "title": "Address line 1",
                    "maxLength": 300,
                    "minLength": 1,
                    "pattern": "\\S",
                    "type": "string",
                    "description": "The first line of the address."
                  },
                  "address_line2": {
                    "title": "Address line 2",
                    "maxLength": 300,
                    "description": "The second line of the address."
                  },
                  "city": {
                    "title": "City",
                    "maxLength": 300,
                    "minLength": 2,
                    "type": "string",
                    "description": "The address city."
                  },
                  "state": {
                    "title": "State",
                    "maxLength": 300,
                    "minLength": 1,
                    "pattern": "\\S",
                    "type": "string",
                    "description": "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": {
                    "title": "Postal code",
                    "maxLength": 16,
                    "minLength": 1,
                    "pattern": "^[a-zA-Z0-9-\\s]+$",
                    "type": "string",
                    "description": "The address zip/postal code."
                  },
                  "country": {
                    "title": "Country",
                    "maxLength": 2,
                    "minLength": 2,
                    "pattern": "[a-zA-Z]{2}",
                    "type": "string",
                    "description": "The country code (iso-3166-1 alpha-2)",
                    "format": "iso-3166-1-alpha-2"
                  }
                },
                "description": "The primary location of the company where business is performed."
              },
              "registered_address": {
                "title": "Registered Address",
                "required": [
                  "address_line1",
                  "city",
                  "zip",
                  "country"
                ],
                "type": "object",
                "properties": {
                  "address_line1": {
                    "title": "Address line 1",
                    "maxLength": 300,
                    "minLength": 1,
                    "pattern": "\\S",
                    "type": "string",
                    "description": "The first line of the address."
                  },
                  "address_line2": {
                    "title": "Address line 2",
                    "maxLength": 300,
                    "description": "The second line of the address."
                  },
                  "city": {
                    "title": "City",
                    "maxLength": 300,
                    "minLength": 2,
                    "type": "string",
                    "description": "The address city."
                  },
                  "state": {
                    "title": "State",
                    "maxLength": 300,
                    "minLength": 1,
                    "pattern": "\\S",
                    "type": "string",
                    "description": "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": {
                    "title": "UK Postal Code",
                    "maxLength": 8,
                    "minLength": 5,
                    "pattern": "^[A-Za-z]{1,2}([0-9]{1,2}|[0-9][A-Za-z])\\s?[0-9][A-Za-z]{2}$",
                    "type": "string",
                    "description": "The address zip/postal code."
                  },
                  "country": {
                    "title": "Country",
                    "maxLength": 2,
                    "minLength": 2,
                    "pattern": "[a-zA-Z]{2}",
                    "type": "string",
                    "description": "The country code (iso-3166-1 alpha-2)",
                    "format": "iso-3166-1-alpha-2"
                  }
                },
                "description": "The registered address of the company."
              },
              "representatives": {
                "title": "Representative List",
                "maxItems": 25,
                "minItems": 1,
                "type": "array",
                "items": {
                  "title": "Representative",
                  "type": "object",
                  "oneOf": [
                    {
                      "title": "Person of Interest",
                      "required": [
                        "individual",
                        "roles"
                      ],
                      "type": "object",
                      "properties": {
                        "id": {
                          "maxLength": 30,
                          "minLength": 30,
                          "pattern": "^rep_[a-z0-9]{26}$",
                          "description": "The representative's id."
                        },
                        "individual": {
                          "title": "Individual",
                          "required": [
                            "first_name",
                            "last_name",
                            "date_of_birth",
                            "place_of_birth",
                            "address"
                          ],
                          "type": "object",
                          "properties": {
                            "first_name": {
                              "title": "First name",
                              "maxLength": 50,
                              "minLength": 2,
                              "type": "string",
                              "description": "The representative's first name."
                            },
                            "middle_name": {
                              "title": "Middle name",
                              "maxLength": 50,
                              "minLength": 2,
                              "type": "string",
                              "description": "The representative's middle name. Required if appears in official docs"
                            },
                            "last_name": {
                              "title": "Last name",
                              "maxLength": 50,
                              "minLength": 2,
                              "type": "string",
                              "description": "The representative's last name."
                            },
                            "date_of_birth": {
                              "title": "Date of birth",
                              "required": [
                                "day",
                                "month",
                                "year"
                              ],
                              "type": "object",
                              "properties": {
                                "day": {
                                  "maximum": 31,
                                  "minimum": 1,
                                  "type": "integer",
                                  "description": "The calendar day of the month they were born."
                                },
                                "month": {
                                  "maximum": 12,
                                  "minimum": 1,
                                  "type": "integer",
                                  "description": "The month of the year they were born."
                                },
                                "year": {
                                  "maximum": 2999,
                                  "minimum": 1900,
                                  "type": "integer",
                                  "description": "The year they were born."
                                }
                              },
                              "description": "The date of birth of the person according to the Gregorian calendar."
                            },
                            "place_of_birth": {
                              "title": "Place of Birth",
                              "required": [
                                "country"
                              ],
                              "properties": {
                                "country": {
                                  "title": "Country",
                                  "maxLength": 2,
                                  "minLength": 2,
                                  "pattern": "[a-zA-Z]{2}",
                                  "type": "string",
                                  "description": "The country code (iso-3166-1 alpha-2)",
                                  "format": "iso-3166-1-alpha-2"
                                }
                              },
                              "description": "The place of birth of the person."
                            },
                            "national_id_number": {
                              "title": "Social security number (SSN or ITIN) - US Residents Only",
                              "maxLength": 9,
                              "minLength": 9,
                              "pattern": "^\\d{9}$",
                              "description": "Social security number (SSN) or Individual Taxpayer Identification Number (ITIN) for non-US citizens"
                            },
                            "email_address": {
                              "title": "Email",
                              "description": "The main email address for this sub-entity.",
                              "format": "email"
                            },
                            "phone": {
                              "title": "Phone number",
                              "required": [
                                "country_code",
                                "number"
                              ],
                              "type": "object",
                              "properties": {
                                "country_code": {
                                  "title": "Country calling code",
                                  "enum": [
                                    "AF",
                                    "AL",
                                    "DZ",
                                    "AS",
                                    "AD",
                                    "AO",
                                    "AI",
                                    "AG",
                                    "AR",
                                    "AM",
                                    "AW",
                                    "AU",
                                    "AT",
                                    "AZ",
                                    "BS",
                                    "BH",
                                    "BD",
                                    "BB",
                                    "BY",
                                    "BE",
                                    "BZ",
                                    "BJ",
                                    "BM",
                                    "BT",
                                    "BO",
                                    "BA",
                                    "BW",
                                    "BR",
                                    "BN",
                                    "BG",
                                    "BF",
                                    "BI",
                                    "CV",
                                    "KH",
                                    "CM",
                                    "CA",
                                    "KY",
                                    "CF",
                                    "TD",
                                    "CL",
                                    "CN",
                                    "CO",
                                    "KM",
                                    "CD",
                                    "CG",
                                    "CK",
                                    "CR",
                                    "HR",
                                    "CU",
                                    "CW",
                                    "CY",
                                    "CZ",
                                    "DK",
                                    "DJ",
                                    "DM",
                                    "DO",
                                    "EC",
                                    "EG",
                                    "SV",
                                    "GQ",
                                    "ER",
                                    "EE",
                                    "SZ",
                                    "ET",
                                    "FO",
                                    "FJ",
                                    "FI",
                                    "FR",
                                    "GF",
                                    "PF",
                                    "GA",
                                    "GM",
                                    "GE",
                                    "DE",
                                    "GH",
                                    "GI",
                                    "GR",
                                    "GL",
                                    "GD",
                                    "GP",
                                    "GU",
                                    "GT",
                                    "GG",
                                    "GN",
                                    "GW",
                                    "GY",
                                    "HT",
                                    "HN",
                                    "HK",
                                    "HU",
                                    "IS",
                                    "IN",
                                    "ID",
                                    "IR",
                                    "IQ",
                                    "IE",
                                    "IM",
                                    "IL",
                                    "IT",
                                    "JM",
                                    "JP",
                                    "JE",
                                    "JO",
                                    "KZ",
                                    "KE",
                                    "KI",
                                    "KP",
                                    "KR",
                                    "KW",
                                    "KG",
                                    "LA",
                                    "LV",
                                    "LB",
                                    "LS",
                                    "LR",
                                    "LY",
                                    "LI",
                                    "LT",
                                    "LU",
                                    "MO",
                                    "MG",
                                    "MW",
                                    "MY",
                                    "MV",
                                    "ML",
                                    "MT",
                                    "MH",
                                    "MQ",
                                    "MR",
                                    "MU",
                                    "MX",
                                    "FM",
                                    "MD",
                                    "MC",
                                    "MN",
                                    "ME",
                                    "MS",
                                    "MA",
                                    "MZ",
                                    "MM",
                                    "NA",
                                    "NR",
                                    "NP",
                                    "NL",
                                    "NC",
                                    "NZ",
                                    "NI",
                                    "NE",
                                    "NG",
                                    "NU",
                                    "NF",
                                    "MK",
                                    "MP",
                                    "NO",
                                    "OM",
                                    "PK",
                                    "PW",
                                    "PA",
                                    "PG",
                                    "PY",
                                    "PE",
                                    "PH",
                                    "PL",
                                    "PT",
                                    "PR",
                                    "QA",
                                    "RE",
                                    "RO",
                                    "RU",
                                    "RW",
                                    "BL",
                                    "SH",
                                    "KN",
                                    "LC",
                                    "SX",
                                    "PM",
                                    "VC",
                                    "WS",
                                    "SM",
                                    "ST",
                                    "SA",
                                    "SN",
                                    "RS",
                                    "SC",
                                    "SL",
                                    "SG",
                                    "BQ",
                                    "SK",
                                    "SI",
                                    "SB",
                                    "SO",
                                    "ZA",
                                    "GS",
                                    "SS",
                                    "ES",
                                    "LK",
                                    "SD",
                                    "SR",
                                    "SE",
                                    "CH",
                                    "SY",
                                    "TW",
                                    "TJ",
                                    "TZ",
                                    "TH",
                                    "TL",
                                    "TG",
                                    "TK",
                                    "TO",
                                    "TT",
                                    "TN",
                                    "TR",
                                    "TM",
                                    "TC",
                                    "TV",
                                    "UG",
                                    "UA",
                                    "AE",
                                    "GB",
                                    "US",
                                    "UY",
                                    "UZ",
                                    "VU",
                                    "VA",
                                    "VE",
                                    "VN",
                                    "VG",
                                    "VI",
                                    "WF",
                                    "EH",
                                    "YE",
                                    "ZM",
                                    "ZW"
                                  ],
                                  "type": "string",
                                  "description": "The country code (iso-3166-1 alpha-2) where the phone number is registered"
                                },
                                "number": {
                                  "title": "Phone number",
                                  "maxLength": 16,
                                  "minLength": 5,
                                  "pattern": "^[0-9]{5,16}$",
                                  "type": "string",
                                  "description": "The phone number without the country calling code"
                                }
                              },
                              "description": "Phone number"
                            },
                            "address": {
                              "title": "Address",
                              "required": [
                                "address_line1",
                                "city",
                                "zip",
                                "country"
                              ],
                              "type": "object",
                              "properties": {
                                "address_line1": {
                                  "title": "Address line 1",
                                  "maxLength": 300,
                                  "minLength": 1,
                                  "pattern": "\\S",
                                  "type": "string",
                                  "description": "The first line of the address."
                                },
                                "address_line2": {
                                  "title": "Address line 2",
                                  "maxLength": 300,
                                  "description": "The second line of the address."
                                },
                                "city": {
                                  "title": "City",
                                  "maxLength": 300,
                                  "minLength": 2,
                                  "type": "string",
                                  "description": "The address city."
                                },
                                "state": {
                                  "title": "State",
                                  "maxLength": 300,
                                  "minLength": 1,
                                  "pattern": "\\S",
                                  "type": "string",
                                  "description": "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": {
                                  "title": "Postal code",
                                  "maxLength": 16,
                                  "minLength": 1,
                                  "pattern": "^[a-zA-Z0-9-\\s]+$",
                                  "type": "string",
                                  "description": "The address zip/postal code."
                                },
                                "country": {
                                  "title": "Country",
                                  "maxLength": 2,
                                  "minLength": 2,
                                  "pattern": "[a-zA-Z]{2}",
                                  "type": "string",
                                  "description": "The country code (iso-3166-1 alpha-2)",
                                  "format": "iso-3166-1-alpha-2"
                                }
                              },
                              "description": "The representative's address."
                            }
                          },
                          "description": "Information about the individual representing the sub-entity."
                        },
                        "company_position": {
                          "title": "Position within Company",
                          "enum": [
                            "ceo",
                            "cfo",
                            "coo",
                            "managing_member",
                            "general_partner",
                            "president",
                            "vice_president",
                            "treasurer",
                            "other_senior_management",
                            "other_executive_officer",
                            "other_non_executive_non_senior"
                          ],
                          "type": "string",
                          "description": "The position of the representative within the company."
                        },
                        "roles": {
                          "title": "Roles within company",
                          "maxItems": 10,
                          "minItems": 1,
                          "uniqueItems": true,
                          "type": "array",
                          "items": {
                            "title": "Representative Role",
                            "enum": [
                              "ubo",
                              "authorised_signatory",
                              "director",
                              "control_person"
                            ],
                            "type": "string",
                            "description": "The representative's role"
                          },
                          "description": "The individual's roles within the company"
                        },
                        "ownership_percentage": {
                          "title": "Percentage of Ownership",
                          "maximum": 100,
                          "minimum": 25,
                          "type": "integer",
                          "description": "The percentage ownership of the UBO or controlling company (required when over 25%)"
                        },
                        "documents": {
                          "title": "Documents",
                          "type": "object",
                          "properties": {
                            "identity_verification": {
                              "title": "Document",
                              "required": [
                                "type",
                                "front"
                              ],
                              "type": "object",
                              "properties": {
                                "type": {
                                  "title": "Document type",
                                  "enum": [
                                    "passport",
                                    "national_identity_card",
                                    "driving_license",
                                    "citizen_card",
                                    "residence_permit",
                                    "electoral_id"
                                  ],
                                  "type": "string",
                                  "description": "The type of document used for identity verification"
                                },
                                "front": {
                                  "title": "Front",
                                  "maxLength": 31,
                                  "minLength": 31,
                                  "pattern": "^file_[a-z2-7]{26}$",
                                  "type": "string",
                                  "description": "The ID of the front side of the document as represented within Checkout.com systems."
                                },
                                "back": {
                                  "title": "Back",
                                  "maxLength": 31,
                                  "minLength": 31,
                                  "pattern": "^file_[a-z2-7]{26}$",
                                  "type": "string",
                                  "description": "The ID of the back side of the document as represented within Checkout.com systems."
                                }
                              },
                              "description": "The document to use to confirm the individual's identity."
                            },
                            "certified_authorised_signatory": {
                              "title": "Certified Authorised Signatory Document",
                              "required": [
                                "type",
                                "front"
                              ],
                              "type": "object",
                              "properties": {
                                "type": {
                                  "title": "Document type",
                                  "enum": [
                                    "power_of_attorney"
                                  ],
                                  "type": "string",
                                  "description": "The type of document."
                                },
                                "front": {
                                  "title": "Front",
                                  "maxLength": 31,
                                  "minLength": 31,
                                  "pattern": "^file_[a-z2-7]{26}$",
                                  "type": "string",
                                  "description": "The ID of the front side of the document as represented within Checkout.com systems."
                                }
                              },
                              "description": "Required when the legal representative or other role owner is not registered on certificate of incorporation"
                            }
                          },
                          "additionalProperties": false,
                          "description": "Verification documents for the individual representative"
                        }
                      },
                      "description": "Personal information about the individual representing the sub-entity."
                    },
                    {
                      "title": "Controlling Company",
                      "required": [
                        "company"
                      ],
                      "type": "object",
                      "properties": {
                        "id": {
                          "maxLength": 30,
                          "minLength": 30,
                          "pattern": "^rep_[a-z0-9]{26}$",
                          "description": "The representative's id."
                        },
                        "company": {
                          "required": [
                            "legal_name",
                            "trading_name",
                            "registered_address"
                          ],
                          "type": "object",
                          "properties": {
                            "legal_name": {
                              "title": "Legal name",
                              "maxLength": 300,
                              "minLength": 2,
                              "type": "string",
                              "description": "The legal name of the sub-entity."
                            },
                            "trading_name": {
                              "title": "Trading name",
                              "maxLength": 300,
                              "minLength": 2,
                              "type": "string",
                              "description": "The trading name of the sub-entity, also referred to as 'doing business as'."
                            },
                            "registered_address": {
                              "title": "Address",
                              "required": [
                                "country"
                              ],
                              "type": "object",
                              "properties": {
                                "address_line1": {
                                  "title": "Address line 1",
                                  "maxLength": 300,
                                  "minLength": 1,
                                  "pattern": "\\S",
                                  "type": "string",
                                  "description": "The first line of the address."
                                },
                                "address_line2": {
                                  "title": "Address line 2",
                                  "maxLength": 300,
                                  "description": "The second line of the address."
                                },
                                "city": {
                                  "title": "City",
                                  "maxLength": 300,
                                  "minLength": 2,
                                  "type": "string",
                                  "description": "The address city."
                                },
                                "state": {
                                  "title": "State",
                                  "maxLength": 300,
                                  "minLength": 1,
                                  "pattern": "\\S",
                                  "type": "string",
                                  "description": "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": {
                                  "title": "Postal code",
                                  "maxLength": 16,
                                  "minLength": 1,
                                  "pattern": "^[a-zA-Z0-9-\\s]+$",
                                  "type": "string",
                                  "description": "The address zip/postal code."
                                },
                                "country": {
                                  "title": "Country",
                                  "maxLength": 2,
                                  "minLength": 2,
                                  "pattern": "[a-zA-Z]{2}",
                                  "type": "string",
                                  "description": "The country code (iso-3166-1 alpha-2)",
                                  "format": "iso-3166-1-alpha-2"
                                }
                              },
                              "description": "The representative's address."
                            }
                          }
                        },
                        "ownership_percentage": {
                          "title": "Percentage of Ownership",
                          "maximum": 100,
                          "minimum": 25,
                          "type": "integer",
                          "description": "The percentage ownership of the UBO or controlling company (required when over 25%)"
                        }
                      },
                      "description": "Information about the controlling company"
                    }
                  ]
                },
                "description": "Information about representatives of this company."
              },
              "business_type": {
                "title": "Business type",
                "enum": [
                  "individual_or_sole_proprietorship",
                  "limited_company",
                  "public_limited_company",
                  "limited_partnership",
                  "general_partnership",
                  "scottish_limited_partnership",
                  "government_agency",
                  "non_profit_entity",
                  "trust",
                  "club_or_society",
                  "unincorporated_association"
                ],
                "type": "string",
                "description": "The legal type of the company"
              }
            },
            "description": "Information about the company represented by the sub-entity."
          },
          "processing_details": {
            "title": "Processing Details",
            "required": [
              "settlement_country",
              "target_countries",
              "annual_processing_volume",
              "average_transaction_value",
              "highest_transaction_value",
              "currency"
            ],
            "type": "object",
            "properties": {
              "settlement_country": {
                "title": "Destination of funds",
                "maxLength": 2,
                "minLength": 2,
                "pattern": "[a-zA-Z]{2}",
                "type": "string",
                "description": "The country code (iso-3166-1 alpha-2) where the settlement bank account is located",
                "format": "iso-3166-1-alpha-2"
              },
              "target_countries": {
                "title": "Target countries",
                "maxItems": 10,
                "minItems": 1,
                "type": "array",
                "items": {
                  "title": "Country",
                  "maxLength": 2,
                  "minLength": 2,
                  "pattern": "[a-zA-Z]{2}",
                  "type": "string",
                  "description": "The country code (iso-3166-1 alpha-2)",
                  "format": "iso-3166-1-alpha-2"
                },
                "description": "Target country codes (iso-3166-1 alpha-2) with more than 10% expected volume processing with Checkout"
              },
              "annual_processing_volume": {
                "title": "Estimated annual processing volume",
                "minimum": 0,
                "type": "integer",
                "description": "The estimated annual processing volume. In minor units without decimals."
              },
              "average_transaction_value": {
                "title": "Average sales price",
                "minimum": 0,
                "type": "integer",
                "description": "The expected average transaction value. In minor units without decimals."
              },
              "highest_transaction_value": {
                "title": "Highest transaction value",
                "minimum": 0,
                "type": "integer",
                "description": "The expected highest transaction value. In minor units without decimals."
              },
              "currency": {
                "title": "Currency",
                "enum": [
                  "GBP"
                ],
                "type": "string",
                "description": "The currency used for the processing details provided."
              }
            },
            "description": "Seller processing details."
          },
          "documents": {
            "title": "Documents",
            "required": [
              "articles_of_association",
              "shareholder_structure"
            ],
            "type": "object",
            "properties": {
              "company_verification": {
                "title": "Company Verification",
                "required": [
                  "type",
                  "front"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Document type",
                    "enum": [
                      "incorporation_document"
                    ],
                    "type": "string",
                    "description": "The type of document used for company verification"
                  },
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document as represented within Checkout.com systems."
                  }
                },
                "description": "Certified by a power of attorney within the last 3 months"
              },
              "articles_of_association": {
                "title": "Memorandum or Articles of Association",
                "required": [
                  "type",
                  "front"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Document type",
                    "enum": [
                      "memorandum_of_association",
                      "articles_of_association"
                    ],
                    "type": "string",
                    "description": "The type of document used for company verification"
                  },
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document as represented within Checkout.com systems."
                  }
                },
                "description": "Memorandum or Articles of Association document"
              },
              "bank_verification": {
                "title": "Bank Verification",
                "required": [
                  "type",
                  "front"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Document type",
                    "enum": [
                      "bank_statement"
                    ],
                    "type": "string",
                    "description": "The type of document being used as bank verification"
                  },
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document as represented within Checkout.com systems."
                  }
                },
                "description": "A document showing transactions from last 3 months"
              },
              "shareholder_structure": {
                "title": "Shareholder Structure",
                "required": [
                  "type",
                  "front"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Document type",
                    "enum": [
                      "certified_shareholder_structure"
                    ],
                    "type": "string",
                    "description": "The type of document."
                  },
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document as represented within Checkout.com systems."
                  }
                },
                "description": "Shareholder structure chart (including % of shares) certified by a competent authority individual and dated within last 3 months"
              },
              "proof_of_legality": {
                "title": "Proof of Legality",
                "required": [
                  "type",
                  "front"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Document type",
                    "enum": [
                      "proof_of_legality"
                    ],
                    "type": "string",
                    "description": "The type of document used for proof of legality"
                  },
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document as represented within Checkout.com systems."
                  }
                },
                "description": "A regulatory licence document required for the company to operate (when applicable)"
              },
              "proof_of_principal_address": {
                "title": "Address Verification",
                "required": [
                  "type",
                  "front"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Document type",
                    "enum": [
                      "proof_of_address"
                    ],
                    "type": "string",
                    "description": "The type of document being used as address verification"
                  },
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document as represented within Checkout.com systems."
                  }
                },
                "description": "Proof of principal place of business"
              },
              "additional_document1": {
                "title": "Additional Documentation",
                "required": [
                  "front"
                ],
                "type": "object",
                "properties": {
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document as represented within Checkout.com systems."
                  }
                },
                "description": "Additional space for documents to be provided when requested"
              },
              "additional_document2": {
                "title": "Additional Documentation",
                "required": [
                  "front"
                ],
                "type": "object",
                "properties": {
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document as represented within Checkout.com systems."
                  }
                },
                "description": "Additional space for documents to be provided when requested"
              },
              "additional_document3": {
                "title": "Additional Documentation",
                "required": [
                  "front"
                ],
                "type": "object",
                "properties": {
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document as represented within Checkout.com systems."
                  }
                },
                "description": "Additional space for documents to be provided when requested"
              }
            },
            "description": "The documents used to support the verification of company details."
          }
        }
      },
      "GBCompanyLite2-0": {
        "title": "GB Company - Lite (2.0)",
        "type": "object",
        "allOf": [
          {
            "title": "Create & Submit regulated GB Company (V2.0)",
            "required": [
              "reference",
              "company",
              "contact_details",
              "profile"
            ],
            "type": "object",
            "properties": {
              "reference": {
                "title": "Unique reference",
                "maxLength": 50,
                "minLength": 1,
                "type": "string",
                "description": "A unique reference you can later use to identify the sub-entity."
              },
              "status": {
                "type": "string",
                "readOnly": true
              },
              "is_draft": {
                "type": "boolean",
                "description": "Specifies whether the sub-entity details are in draft.\n\nMarking a sub-entity as a draft allows sub-entity details to be updated, without triggering due diligence checks.",
                "writeOnly": true
              },
              "profile": {
                "title": "Profile",
                "required": [
                  "urls",
                  "mccs"
                ],
                "type": "object",
                "properties": {
                  "urls": {
                    "title": "Website",
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "title": "Company website URL",
                      "maxLength": 300,
                      "minLength": 4,
                      "pattern": "^(http|https):\\//\\S{2,293}$",
                      "type": "string",
                      "description": "The URL of the company's website.",
                      "format": "uri"
                    },
                    "description": "A collection of website URLs the sub-entity accepts payments on."
                  },
                  "mccs": {
                    "title": "Industry",
                    "maxItems": 5,
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "title": "Merchant category code",
                      "pattern": "^[0-9]{4}$",
                      "description": "The merchant category code (4-digit ISO 18245)."
                    },
                    "description": "Select the categories that most closely describe the business"
                  }
                },
                "description": "Information about the profile of the sub-entity, primarily regarding the products/services offered."
              },
              "contact_details": {
                "title": "Contact Details",
                "required": [
                  "phone",
                  "email_addresses"
                ],
                "type": "object",
                "properties": {
                  "phone": {
                    "title": "Phone",
                    "required": [
                      "number"
                    ],
                    "type": "object",
                    "properties": {
                      "number": {
                        "title": "Phone number",
                        "maximum": 9999999999999999,
                        "minimum": 10000000,
                        "maxLength": 16,
                        "minLength": 8,
                        "pattern": "^[1-9][0-9]{7,15}$",
                        "description": "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.)"
                      }
                    },
                    "description": "The phone number of the sub-entity."
                  },
                  "email_addresses": {
                    "required": [
                      "primary"
                    ],
                    "type": "object",
                    "properties": {
                      "primary": {
                        "title": "Email",
                        "description": "The main email address for this sub-entity.",
                        "format": "email"
                      }
                    },
                    "description": "Email addresses for this sub-entity."
                  },
                  "invitee": {
                    "title": "Invitee",
                    "type": "object",
                    "properties": {
                      "email": {
                        "title": "Email",
                        "description": "The main email address for this sub-entity.",
                        "format": "email"
                      }
                    },
                    "description": "The details of the user responsible for onboarding the sub-entity."
                  }
                },
                "description": "Contact details of this sub-entity."
              },
              "capabilities": {
                "title": "Capabilities",
                "type": "object",
                "description": "The capabilities of the entity.",
                "readOnly": true
              },
              "requirements_due": {
                "title": "Requirements Due",
                "minItems": 0,
                "type": "array",
                "items": {
                  "title": "Requirements due entry",
                  "type": "object",
                  "properties": {
                    "field": {
                      "title": "Field",
                      "type": "string",
                      "description": "The field that is needs to be addressed."
                    },
                    "reason": {
                      "title": "Reason",
                      "type": "string",
                      "description": "The reason behind the field needing attention."
                    }
                  },
                  "description": "A list of fields which require attention",
                  "readOnly": true
                },
                "description": "List of requirements due in order to be onboarded.",
                "readOnly": true
              },
              "instruments": {
                "type": "array",
                "items": {
                  "type": "object"
                },
                "readOnly": true
              },
              "company": {
                "title": "Company (V2.0)",
                "required": [
                  "legal_name",
                  "trading_name",
                  "registered_address",
                  "principal_address",
                  "representatives"
                ],
                "type": "object",
                "properties": {
                  "legal_name": {
                    "title": "Legal name",
                    "maxLength": 300,
                    "minLength": 2,
                    "type": "string",
                    "description": "The legal name of the sub-entity."
                  },
                  "trading_name": {
                    "title": "Trading name",
                    "maxLength": 300,
                    "minLength": 2,
                    "type": "string",
                    "description": "The trading name of the sub-entity, also referred to as 'doing business as'."
                  },
                  "business_registration_number": {
                    "title": "Registration number",
                    "maxLength": 8,
                    "minLength": 8,
                    "pattern": "^(([Aa][Cc]|[Cc][Ee]|[Ee][Nn]|[Ee][Ss]|[Ff][Cc]|[Gg][Ee]|[Gg][Nn]|[Gg][Ss]|[Ii][Cc]|[Ii][Pp]|[Ll][Pp]|[Nn][Aa]|[Nn][Cc]|[Nn][Ff]|[Nn][Ii]|[Nn][Ll]|[Nn][Oo]|[Nn][Pp]|[Nn][Rr]|[Nn][Vv]|[Nn][Zz]|[Oo][Cc]|[Rr][0]|[Rr][Cc]|[Ss][Aa]|[Ss][Cc]|[Ss][Ee]|[Ss][Ff]|[Ss][Ii]|[Ss][Ll]|[Ss][Oo]|[Ss][Pp]|[Ss][Rr]|[Ss][Zz]|[Zz][Cc]|\\d{2})\\d{6})$",
                    "description": "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": {
                    "title": "Principal Address",
                    "required": [
                      "address_line1",
                      "city",
                      "zip",
                      "country"
                    ],
                    "type": "object",
                    "properties": {
                      "address_line1": {
                        "title": "Address line 1",
                        "maxLength": 300,
                        "minLength": 1,
                        "pattern": "\\S",
                        "type": "string",
                        "description": "The first line of the address."
                      },
                      "address_line2": {
                        "title": "Address line 2",
                        "maxLength": 300,
                        "description": "The second line of the address."
                      },
                      "city": {
                        "title": "City",
                        "maxLength": 300,
                        "minLength": 2,
                        "type": "string",
                        "description": "The address city."
                      },
                      "state": {
                        "title": "State",
                        "maxLength": 300,
                        "minLength": 1,
                        "pattern": "\\S",
                        "type": "string",
                        "description": "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": {
                        "title": "UK Postal Code",
                        "maxLength": 8,
                        "minLength": 5,
                        "pattern": "^[A-Za-z]{1,2}([0-9]{1,2}|[0-9][A-Za-z])\\s?[0-9][A-Za-z]{2}$",
                        "type": "string",
                        "description": "The address zip/postal code."
                      },
                      "country": {
                        "title": "Country",
                        "maxLength": 2,
                        "minLength": 2,
                        "pattern": "[a-zA-Z]{2}",
                        "type": "string",
                        "description": "The country code (iso-3166-1 alpha-2)",
                        "format": "iso-3166-1-alpha-2"
                      }
                    },
                    "description": "The primary location of the company where business is performed."
                  },
                  "registered_address": {
                    "title": "Registered Address",
                    "required": [
                      "address_line1",
                      "city",
                      "zip",
                      "country"
                    ],
                    "type": "object",
                    "properties": {
                      "address_line1": {
                        "title": "Address line 1",
                        "maxLength": 300,
                        "minLength": 1,
                        "pattern": "\\S",
                        "type": "string",
                        "description": "The first line of the address."
                      },
                      "address_line2": {
                        "title": "Address line 2",
                        "maxLength": 300,
                        "description": "The second line of the address."
                      },
                      "city": {
                        "title": "City",
                        "maxLength": 300,
                        "minLength": 2,
                        "type": "string",
                        "description": "The address city."
                      },
                      "state": {
                        "title": "State",
                        "maxLength": 300,
                        "minLength": 1,
                        "pattern": "\\S",
                        "type": "string",
                        "description": "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": {
                        "title": "UK Postal Code",
                        "maxLength": 8,
                        "minLength": 5,
                        "pattern": "^[A-Za-z]{1,2}([0-9]{1,2}|[0-9][A-Za-z])\\s?[0-9][A-Za-z]{2}$",
                        "type": "string",
                        "description": "The address zip/postal code."
                      },
                      "country": {
                        "title": "Country",
                        "maxLength": 2,
                        "minLength": 2,
                        "pattern": "[a-zA-Z]{2}",
                        "type": "string",
                        "description": "The country code (iso-3166-1 alpha-2)",
                        "format": "iso-3166-1-alpha-2"
                      }
                    },
                    "description": "The registered address of the company."
                  },
                  "representatives": {
                    "title": "Representative List",
                    "maxItems": 5,
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "title": "Representative",
                      "required": [
                        "first_name",
                        "last_name",
                        "address",
                        "roles"
                      ],
                      "type": "object",
                      "properties": {
                        "id": {
                          "maxLength": 30,
                          "minLength": 30,
                          "pattern": "^rep_[a-z0-9]{26}$",
                          "description": "The representative's id."
                        },
                        "first_name": {
                          "title": "First name",
                          "maxLength": 50,
                          "minLength": 2,
                          "type": "string",
                          "description": "The representative's first name."
                        },
                        "middle_name": {
                          "title": "Middle name",
                          "maxLength": 50,
                          "minLength": 2,
                          "type": "string",
                          "description": "The representative's middle name. Required if appears in official docs"
                        },
                        "last_name": {
                          "title": "Last name",
                          "maxLength": 50,
                          "minLength": 2,
                          "type": "string",
                          "description": "The representative's last name."
                        },
                        "documents": {
                          "title": "Document",
                          "required": [
                            "identity_verification"
                          ],
                          "type": "object",
                          "properties": {
                            "identity_verification": {
                              "title": "Document",
                              "required": [
                                "type",
                                "front"
                              ],
                              "type": "object",
                              "properties": {
                                "type": {
                                  "title": "Document type",
                                  "enum": [
                                    "passport",
                                    "national_identity_card",
                                    "driving_license",
                                    "citizen_card",
                                    "residence_permit",
                                    "electoral_id"
                                  ],
                                  "type": "string",
                                  "description": "The type of document used for identity verification"
                                },
                                "front": {
                                  "title": "Front",
                                  "maxLength": 31,
                                  "minLength": 31,
                                  "pattern": "^file_[a-z2-7]{26}$",
                                  "type": "string",
                                  "description": "The ID of the front side of the document as represented within Checkout.com systems."
                                },
                                "back": {
                                  "title": "Back",
                                  "maxLength": 31,
                                  "minLength": 31,
                                  "pattern": "^file_[a-z2-7]{26}$",
                                  "type": "string",
                                  "description": "The ID of the back side of the document as represented within Checkout.com systems."
                                }
                              },
                              "description": "The document to use to confirm the individual's identity."
                            }
                          },
                          "description": "A legal document used to verify identity"
                        },
                        "date_of_birth": {
                          "title": "Date of birth",
                          "required": [
                            "day",
                            "month",
                            "year"
                          ],
                          "type": "object",
                          "properties": {
                            "day": {
                              "maximum": 31,
                              "minimum": 1,
                              "type": "integer",
                              "description": "The calendar day of the month they were born."
                            },
                            "month": {
                              "maximum": 12,
                              "minimum": 1,
                              "type": "integer",
                              "description": "The month of the year they were born."
                            },
                            "year": {
                              "maximum": 2999,
                              "minimum": 1900,
                              "type": "integer",
                              "description": "The year they were born."
                            }
                          },
                          "description": "The date of birth of the person according to the Gregorian calendar."
                        },
                        "phone": {
                          "title": "Phone",
                          "required": [
                            "number"
                          ],
                          "type": "object",
                          "properties": {
                            "number": {
                              "title": "Phone number",
                              "maximum": 9999999999999999,
                              "minimum": 10000000,
                              "maxLength": 16,
                              "minLength": 8,
                              "pattern": "^[1-9][0-9]{7,15}$",
                              "description": "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.)"
                            }
                          },
                          "description": "The phone number of the sub-entity."
                        },
                        "address": {
                          "title": "Address",
                          "required": [
                            "country"
                          ],
                          "type": "object",
                          "properties": {
                            "address_line1": {
                              "title": "Address line 1",
                              "maxLength": 300,
                              "minLength": 1,
                              "pattern": "\\S",
                              "type": "string",
                              "description": "The first line of the address."
                            },
                            "address_line2": {
                              "title": "Address line 2",
                              "maxLength": 300,
                              "description": "The second line of the address."
                            },
                            "city": {
                              "title": "City",
                              "maxLength": 300,
                              "minLength": 2,
                              "type": "string",
                              "description": "The address city."
                            },
                            "state": {
                              "title": "State",
                              "maxLength": 300,
                              "minLength": 1,
                              "pattern": "\\S",
                              "type": "string",
                              "description": "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": {
                              "title": "Postal code",
                              "maxLength": 16,
                              "minLength": 1,
                              "pattern": "^[a-zA-Z0-9-\\s]+$",
                              "type": "string",
                              "description": "The address zip/postal code."
                            },
                            "country": {
                              "title": "Country",
                              "maxLength": 2,
                              "minLength": 2,
                              "pattern": "[a-zA-Z]{2}",
                              "type": "string",
                              "description": "The country code (iso-3166-1 alpha-2)",
                              "format": "iso-3166-1-alpha-2"
                            }
                          },
                          "description": "The representative's address."
                        },
                        "roles": {
                          "title": "Roles within company",
                          "maxItems": 2,
                          "minItems": 1,
                          "uniqueItems": true,
                          "type": "array",
                          "items": {
                            "title": "Representative Role",
                            "enum": [
                              "ubo",
                              "authorised_signatory"
                            ],
                            "type": "string",
                            "description": "The representative's roles within the company"
                          },
                          "description": "The individual's roles within the company"
                        }
                      },
                      "description": "Information about representatives of this company."
                    },
                    "description": "Information about representatives of this company."
                  }
                }
              },
              "documents": {
                "title": "GB company documents (V2.0)",
                "type": "object",
                "properties": {
                  "company_verification": {
                    "title": "Company Verification",
                    "required": [
                      "type",
                      "front"
                    ],
                    "type": "object",
                    "properties": {
                      "type": {
                        "title": "Document type",
                        "enum": [
                          "incorporation_document"
                        ],
                        "type": "string",
                        "description": "The type of document used for company verification"
                      },
                      "front": {
                        "title": "Front",
                        "maxLength": 31,
                        "minLength": 31,
                        "pattern": "^file_[a-z2-7]{26}$",
                        "type": "string",
                        "description": "The ID of the front side of the document as represented within Checkout.com systems."
                      }
                    },
                    "description": "Certified by a power of attorney within the last 3 months"
                  }
                }
              }
            }
          }
        ]
      },
      "GBSoleTraderFull2-0": {
        "title": "GB Sole Trader - Full (2.0)",
        "type": "object",
        "allOf": [
          {
            "title": "Create & Submit GB Individual (V2.0)",
            "required": [
              "reference",
              "individual",
              "contact_details",
              "profile"
            ],
            "type": "object",
            "properties": {
              "reference": {
                "title": "Unique reference",
                "maxLength": 50,
                "minLength": 1,
                "type": "string",
                "description": "A unique reference you can later use to identify the sub-entity."
              },
              "status": {
                "type": "string",
                "readOnly": true
              },
              "is_draft": {
                "type": "boolean",
                "description": "Specifies whether the sub-entity details are in draft.\n\nMarking a sub-entity as a draft allows sub-entity details to be updated, without triggering due diligence checks.",
                "writeOnly": true
              },
              "profile": {
                "title": "Profile",
                "required": [
                  "urls",
                  "mccs"
                ],
                "type": "object",
                "properties": {
                  "urls": {
                    "title": "Website",
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "title": "Company website URL",
                      "maxLength": 300,
                      "minLength": 4,
                      "pattern": "^(http|https):\\//\\S{2,293}$",
                      "type": "string",
                      "description": "The URL of the company's website.",
                      "format": "uri"
                    },
                    "description": "A collection of website URLs the sub-entity accepts payments on."
                  },
                  "mccs": {
                    "title": "Industry",
                    "maxItems": 5,
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "title": "Merchant category code",
                      "pattern": "^[0-9]{4}$",
                      "description": "The merchant category code (4-digit ISO 18245)."
                    },
                    "description": "Select the categories that most closely describe the business"
                  },
                  "default_holding_currency": {
                    "title": "Main currency",
                    "description": "The default holding currency code (iso-4217)",
                    "format": "iso-4217"
                  },
                  "holding_currencies": {
                    "title": "Currencies",
                    "items": {
                      "title": "Currency",
                      "enum": [
                        "AED",
                        "AUD",
                        "CAD",
                        "CHF",
                        "CZK",
                        "DKK",
                        "EUR",
                        "GBP",
                        "HKD",
                        "JPY",
                        "KWD",
                        "NOK",
                        "NZD",
                        "PLN",
                        "RON",
                        "SEK",
                        "SGD",
                        "USD",
                        "ZAR"
                      ],
                      "type": "string",
                      "description": "The currency code (iso-4217)"
                    },
                    "description": "Incoming funds are held in your selected currencies",
                    "default": [
                      "GBP"
                    ]
                  }
                },
                "description": "Information about the profile of the sub-entity, primarily regarding the products/services offered."
              },
              "contact_details": {
                "title": "Contact Details",
                "required": [
                  "phone",
                  "email_addresses"
                ],
                "type": "object",
                "properties": {
                  "phone": {
                    "title": "Phone",
                    "required": [
                      "number"
                    ],
                    "type": "object",
                    "properties": {
                      "number": {
                        "title": "Phone number",
                        "maximum": 9999999999999999,
                        "minimum": 10000000,
                        "maxLength": 16,
                        "minLength": 8,
                        "pattern": "^[1-9][0-9]{7,15}$",
                        "description": "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.)"
                      }
                    },
                    "description": "The phone number of the sub-entity."
                  },
                  "email_addresses": {
                    "required": [
                      "primary"
                    ],
                    "type": "object",
                    "properties": {
                      "primary": {
                        "title": "Email",
                        "description": "The main email address for this sub-entity.",
                        "format": "email"
                      }
                    },
                    "description": "Email addresses for this sub-entity."
                  },
                  "invitee": {
                    "title": "Invitee",
                    "type": "object",
                    "properties": {
                      "email": {
                        "title": "Email",
                        "description": "The main email address for this sub-entity.",
                        "format": "email"
                      }
                    },
                    "description": "The details of the user responsible for onboarding the sub-entity."
                  }
                },
                "description": "Contact details of this sub-entity."
              },
              "capabilities": {
                "title": "Capabilities",
                "type": "object",
                "description": "The capabilities of the entity.",
                "readOnly": true
              },
              "requirements_due": {
                "title": "Requirements Due",
                "minItems": 0,
                "type": "array",
                "items": {
                  "title": "Requirements due entry",
                  "type": "object",
                  "properties": {
                    "field": {
                      "title": "Field",
                      "type": "string",
                      "description": "The field that is needs to be addressed."
                    },
                    "reason": {
                      "title": "Reason",
                      "type": "string",
                      "description": "The reason behind the field needing attention."
                    }
                  },
                  "description": "A list of fields which require attention",
                  "readOnly": true
                },
                "description": "List of requirements due in order to be onboarded.",
                "readOnly": true
              },
              "instruments": {
                "type": "array",
                "items": {
                  "type": "object"
                },
                "readOnly": true
              },
              "individual": {
                "title": "Individual",
                "required": [
                  "first_name",
                  "last_name",
                  "date_of_birth",
                  "registered_address",
                  "trading_name"
                ],
                "type": "object",
                "properties": {
                  "trading_name": {
                    "title": "Trading name",
                    "maxLength": 300,
                    "minLength": 2,
                    "type": "string",
                    "description": "The trading name of the sub-entity, also referred to as 'doing business as'."
                  },
                  "first_name": {
                    "title": "First name",
                    "maxLength": 50,
                    "minLength": 2,
                    "type": "string",
                    "description": "The representative's first name."
                  },
                  "middle_name": {
                    "title": "Middle name",
                    "maxLength": 50,
                    "minLength": 2,
                    "type": "string",
                    "description": "The representative's middle name. Required if appears in official docs"
                  },
                  "last_name": {
                    "title": "Last name",
                    "maxLength": 50,
                    "minLength": 2,
                    "type": "string",
                    "description": "The representative's last name."
                  },
                  "date_of_birth": {
                    "title": "Date of birth",
                    "required": [
                      "day",
                      "month",
                      "year"
                    ],
                    "type": "object",
                    "properties": {
                      "day": {
                        "maximum": 31,
                        "minimum": 1,
                        "type": "integer",
                        "description": "The calendar day of the month they were born."
                      },
                      "month": {
                        "maximum": 12,
                        "minimum": 1,
                        "type": "integer",
                        "description": "The month of the year they were born."
                      },
                      "year": {
                        "maximum": 2999,
                        "minimum": 1900,
                        "type": "integer",
                        "description": "The year they were born."
                      }
                    },
                    "description": "The date of birth of the person according to the Gregorian calendar."
                  },
                  "registered_address": {
                    "title": "Registered Address",
                    "required": [
                      "address_line1",
                      "city",
                      "zip",
                      "country"
                    ],
                    "type": "object",
                    "properties": {
                      "address_line1": {
                        "title": "Address line 1",
                        "maxLength": 300,
                        "minLength": 1,
                        "pattern": "\\S",
                        "type": "string",
                        "description": "The first line of the address."
                      },
                      "address_line2": {
                        "title": "Address line 2",
                        "maxLength": 300,
                        "description": "The second line of the address."
                      },
                      "city": {
                        "title": "City",
                        "maxLength": 300,
                        "minLength": 2,
                        "type": "string",
                        "description": "The address city."
                      },
                      "state": {
                        "title": "State",
                        "maxLength": 300,
                        "minLength": 1,
                        "pattern": "\\S",
                        "type": "string",
                        "description": "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": {
                        "title": "UK Postal Code",
                        "maxLength": 8,
                        "minLength": 5,
                        "pattern": "^[A-Za-z]{1,2}([0-9]{1,2}|[0-9][A-Za-z])\\s?[0-9][A-Za-z]{2}$",
                        "type": "string",
                        "description": "The address zip/postal code."
                      },
                      "country": {
                        "title": "Country",
                        "maxLength": 2,
                        "minLength": 2,
                        "pattern": "[a-zA-Z]{2}",
                        "type": "string",
                        "description": "The country code (iso-3166-1 alpha-2)",
                        "format": "iso-3166-1-alpha-2"
                      }
                    },
                    "description": "The registered address of the company."
                  }
                },
                "description": "Information about the individual represented by the sub-entity."
              },
              "documents": {
                "title": "Document",
                "required": [
                  "identity_verification"
                ],
                "type": "object",
                "properties": {
                  "identity_verification": {
                    "title": "Document",
                    "required": [
                      "type",
                      "front"
                    ],
                    "type": "object",
                    "properties": {
                      "type": {
                        "title": "Document type",
                        "enum": [
                          "passport",
                          "national_identity_card",
                          "driving_license",
                          "citizen_card",
                          "residence_permit",
                          "electoral_id"
                        ],
                        "type": "string",
                        "description": "The type of document used for identity verification"
                      },
                      "front": {
                        "title": "Front",
                        "maxLength": 31,
                        "minLength": 31,
                        "pattern": "^file_[a-z2-7]{26}$",
                        "type": "string",
                        "description": "The ID of the front side of the document as represented within Checkout.com systems."
                      },
                      "back": {
                        "title": "Back",
                        "maxLength": 31,
                        "minLength": 31,
                        "pattern": "^file_[a-z2-7]{26}$",
                        "type": "string",
                        "description": "The ID of the back side of the document as represented within Checkout.com systems."
                      }
                    },
                    "description": "The document to use to confirm the individual's identity."
                  }
                },
                "description": "A legal document used to verify identity."
              }
            }
          }
        ]
      },
      "GBSoleTraderFull3-0": {
        "title": "GB Sole Trader - Full (3.0)",
        "required": [
          "reference",
          "company",
          "profile",
          "contact_details",
          "documents",
          "processing_details"
        ],
        "type": "object",
        "properties": {
          "reference": {
            "title": "Unique reference",
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "description": "A unique reference you can later use to identify the sub-entity."
          },
          "status": {
            "type": "string",
            "readOnly": true
          },
          "is_draft": {
            "type": "boolean",
            "description": "Specifies whether the sub-entity details are in draft.\n\nMarking a sub-entity as a draft allows sub-entity details to be updated, without triggering due diligence checks.",
            "writeOnly": true
          },
          "profile": {
            "title": "Profile",
            "required": [
              "urls",
              "mccs",
              "default_holding_currency",
              "holding_currencies"
            ],
            "type": "object",
            "properties": {
              "urls": {
                "title": "Website",
                "maxItems": 100,
                "type": "array",
                "items": {
                  "title": "Company website URL",
                  "maxLength": 300,
                  "minLength": 4,
                  "pattern": "^(http|https):\\//\\S{2,293}$",
                  "type": "string",
                  "description": "The URL of the company's website.",
                  "format": "uri"
                },
                "description": "A collection of website URLs the sub-entity accepts payments on."
              },
              "mccs": {
                "title": "Industry",
                "maxItems": 5,
                "minItems": 1,
                "type": "array",
                "items": {
                  "title": "Merchant category code",
                  "pattern": "^[0-9]{4}$",
                  "description": "The merchant category code (4-digit ISO 18245)."
                },
                "description": "Select the categories that most closely describe the business"
              },
              "default_holding_currency": {
                "title": "Main currency",
                "description": "The default holding currency code (iso-4217)",
                "format": "iso-4217"
              },
              "holding_currencies": {
                "title": "Currencies",
                "minItems": 1,
                "type": "array",
                "items": {
                  "title": "Currency",
                  "enum": [
                    "AED",
                    "AUD",
                    "CAD",
                    "CHF",
                    "CZK",
                    "DKK",
                    "EUR",
                    "GBP",
                    "HKD",
                    "JPY",
                    "KWD",
                    "NOK",
                    "NZD",
                    "PLN",
                    "RON",
                    "SEK",
                    "SGD",
                    "USD",
                    "ZAR"
                  ],
                  "type": "string",
                  "description": "The currency code (iso-4217)"
                },
                "description": "Incoming funds are held in your selected currencies",
                "default": [
                  "GBP"
                ]
              }
            },
            "description": "Information about the profile of the sub-entity, primarily regarding the products/services offered."
          },
          "contact_details": {
            "title": "Contact Details",
            "type": "object",
            "properties": {
              "phone": {
                "title": "Phone number",
                "required": [
                  "country_code",
                  "number"
                ],
                "type": "object",
                "properties": {
                  "country_code": {
                    "title": "Country calling code",
                    "enum": [
                      "GI",
                      "CH",
                      "GG",
                      "IM",
                      "JE",
                      "GB"
                    ],
                    "type": "string",
                    "description": "The country code (iso-3166-1 alpha-2) where the phone number is registered"
                  },
                  "number": {
                    "title": "Phone number",
                    "maxLength": 11,
                    "minLength": 7,
                    "pattern": "^[0-9]{7,11}$",
                    "type": "string",
                    "description": "The phone number without the country calling code"
                  }
                },
                "description": "Phone number"
              },
              "email_addresses": {
                "required": [
                  "primary"
                ],
                "type": "object",
                "properties": {
                  "primary": {
                    "title": "Email",
                    "description": "The main email address for this sub-entity.",
                    "format": "email"
                  }
                },
                "description": "Email addresses for this sub-entity."
              },
              "invitee": {
                "title": "Invitee",
                "type": "object",
                "properties": {
                  "email": {
                    "title": "Email",
                    "description": "The main email address for this sub-entity.",
                    "format": "email"
                  }
                },
                "description": "The details of the user responsible for onboarding the sub-entity."
              }
            },
            "description": "Contact details of this sub-entity."
          },
          "capabilities": {
            "title": "Capabilities",
            "type": "object",
            "description": "The capabilities of the entity.",
            "readOnly": true
          },
          "requirements_due": {
            "title": "Requirements Due",
            "minItems": 0,
            "type": "array",
            "items": {
              "title": "Requirements due entry",
              "type": "object",
              "properties": {
                "field": {
                  "title": "Field",
                  "type": "string",
                  "description": "The field that is needs to be addressed."
                },
                "reason": {
                  "title": "Reason",
                  "type": "string",
                  "description": "The reason behind the field needing attention."
                },
                "message": {
                  "title": "Message",
                  "type": "string",
                  "description": "A more descriptive message."
                }
              },
              "description": "A list of fields which require attention",
              "readOnly": true
            },
            "description": "List of requirements due in order to be onboarded.",
            "readOnly": true
          },
          "company": {
            "title": "Business",
            "required": [
              "trading_name",
              "date_of_incorporation",
              "principal_address",
              "representatives",
              "business_type"
            ],
            "type": "object",
            "properties": {
              "trading_name": {
                "title": "Trading name",
                "maxLength": 300,
                "minLength": 2,
                "type": "string",
                "description": "The trading name of the sub-entity, also referred to as 'doing business as'."
              },
              "date_of_incorporation": {
                "title": "Date of Incorporation",
                "required": [
                  "month",
                  "year"
                ],
                "type": "object",
                "properties": {
                  "day": {
                    "maximum": 31,
                    "minimum": 1,
                    "type": "integer",
                    "description": "The day of the month the company was incorporated."
                  },
                  "month": {
                    "maximum": 12,
                    "minimum": 1,
                    "type": "integer",
                    "description": "The month the company was incorporated."
                  },
                  "year": {
                    "maximum": 2999,
                    "minimum": 1500,
                    "type": "integer",
                    "description": "The year the company was incorporated."
                  }
                },
                "description": "The date the company was incorporated."
              },
              "principal_address": {
                "title": "Principal Address",
                "required": [
                  "address_line1",
                  "city",
                  "zip",
                  "country"
                ],
                "type": "object",
                "properties": {
                  "address_line1": {
                    "title": "Address line 1",
                    "maxLength": 300,
                    "minLength": 1,
                    "pattern": "\\S",
                    "type": "string",
                    "description": "The first line of the address."
                  },
                  "address_line2": {
                    "title": "Address line 2",
                    "maxLength": 300,
                    "description": "The second line of the address."
                  },
                  "city": {
                    "title": "City",
                    "maxLength": 300,
                    "minLength": 2,
                    "type": "string",
                    "description": "The address city."
                  },
                  "state": {
                    "title": "State",
                    "maxLength": 300,
                    "minLength": 1,
                    "pattern": "\\S",
                    "type": "string",
                    "description": "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": {
                    "title": "UK Postal Code",
                    "maxLength": 8,
                    "minLength": 5,
                    "pattern": "^[A-Za-z]{1,2}([0-9]{1,2}|[0-9][A-Za-z])\\s?[0-9][A-Za-z]{2}$",
                    "type": "string",
                    "description": "The address zip/postal code."
                  },
                  "country": {
                    "title": "Country",
                    "maxLength": 2,
                    "minLength": 2,
                    "pattern": "[a-zA-Z]{2}",
                    "type": "string",
                    "description": "The country code (iso-3166-1 alpha-2)",
                    "format": "iso-3166-1-alpha-2"
                  }
                },
                "description": "The primary location where business is performed."
              },
              "representatives": {
                "title": "Representative List",
                "maxItems": 1,
                "minItems": 1,
                "type": "array",
                "items": {
                  "title": "Person of Interest",
                  "required": [
                    "individual",
                    "roles",
                    "documents"
                  ],
                  "type": "object",
                  "properties": {
                    "id": {
                      "maxLength": 30,
                      "minLength": 30,
                      "pattern": "^rep_[a-z0-9]{26}$",
                      "description": "The representative's id."
                    },
                    "individual": {
                      "title": "Individual",
                      "required": [
                        "first_name",
                        "last_name",
                        "date_of_birth",
                        "place_of_birth",
                        "address"
                      ],
                      "type": "object",
                      "properties": {
                        "first_name": {
                          "title": "First name",
                          "maxLength": 50,
                          "minLength": 2,
                          "type": "string",
                          "description": "The representative's first name."
                        },
                        "middle_name": {
                          "title": "Middle name",
                          "maxLength": 50,
                          "minLength": 2,
                          "type": "string",
                          "description": "The representative's middle name. Required if appears in official docs"
                        },
                        "last_name": {
                          "title": "Last name",
                          "maxLength": 50,
                          "minLength": 2,
                          "type": "string",
                          "description": "The representative's last name."
                        },
                        "date_of_birth": {
                          "title": "Date of birth",
                          "required": [
                            "day",
                            "month",
                            "year"
                          ],
                          "type": "object",
                          "properties": {
                            "day": {
                              "maximum": 31,
                              "minimum": 1,
                              "type": "integer",
                              "description": "The calendar day of the month they were born."
                            },
                            "month": {
                              "maximum": 12,
                              "minimum": 1,
                              "type": "integer",
                              "description": "The month of the year they were born."
                            },
                            "year": {
                              "maximum": 2999,
                              "minimum": 1900,
                              "type": "integer",
                              "description": "The year they were born."
                            }
                          },
                          "description": "The date of birth of the person according to the Gregorian calendar."
                        },
                        "place_of_birth": {
                          "title": "Place of Birth",
                          "required": [
                            "country"
                          ],
                          "properties": {
                            "country": {
                              "title": "Country",
                              "maxLength": 2,
                              "minLength": 2,
                              "pattern": "[a-zA-Z]{2}",
                              "type": "string",
                              "description": "The country code (iso-3166-1 alpha-2)",
                              "format": "iso-3166-1-alpha-2"
                            }
                          },
                          "description": "The place of birth of the person."
                        },
                        "national_id_number": {
                          "title": "Social security number (SSN or ITIN) - US Residents Only",
                          "maxLength": 9,
                          "minLength": 9,
                          "pattern": "^\\d{9}$",
                          "description": "Social security number (SSN) or Individual Taxpayer Identification Number (ITIN) for non-US citizens"
                        },
                        "email_address": {
                          "title": "Email",
                          "description": "The representative's personal email address.",
                          "format": "email"
                        },
                        "phone": {
                          "title": "Phone number",
                          "required": [
                            "country_code",
                            "number"
                          ],
                          "type": "object",
                          "properties": {
                            "country_code": {
                              "title": "Country calling code",
                              "enum": [
                                "AF",
                                "AL",
                                "DZ",
                                "AS",
                                "AD",
                                "AO",
                                "AI",
                                "AG",
                                "AR",
                                "AM",
                                "AW",
                                "AU",
                                "AT",
                                "AZ",
                                "BS",
                                "BH",
                                "BD",
                                "BB",
                                "BY",
                                "BE",
                                "BZ",
                                "BJ",
                                "BM",
                                "BT",
                                "BO",
                                "BA",
                                "BW",
                                "BR",
                                "BN",
                                "BG",
                                "BF",
                                "BI",
                                "CV",
                                "KH",
                                "CM",
                                "CA",
                                "KY",
                                "CF",
                                "TD",
                                "CL",
                                "CN",
                                "CO",
                                "KM",
                                "CD",
                                "CG",
                                "CK",
                                "CR",
                                "HR",
                                "CU",
                                "CW",
                                "CY",
                                "CZ",
                                "DK",
                                "DJ",
                                "DM",
                                "DO",
                                "EC",
                                "EG",
                                "SV",
                                "GQ",
                                "ER",
                                "EE",
                                "SZ",
                                "ET",
                                "FO",
                                "FJ",
                                "FI",
                                "FR",
                                "GF",
                                "PF",
                                "GA",
                                "GM",
                                "GE",
                                "DE",
                                "GH",
                                "GI",
                                "GR",
                                "GL",
                                "GD",
                                "GP",
                                "GU",
                                "GT",
                                "GG",
                                "GN",
                                "GW",
                                "GY",
                                "HT",
                                "HN",
                                "HK",
                                "HU",
                                "IS",
                                "IN",
                                "ID",
                                "IR",
                                "IQ",
                                "IE",
                                "IM",
                                "IL",
                                "IT",
                                "JM",
                                "JP",
                                "JE",
                                "JO",
                                "KZ",
                                "KE",
                                "KI",
                                "KP",
                                "KR",
                                "KW",
                                "KG",
                                "LA",
                                "LV",
                                "LB",
                                "LS",
                                "LR",
                                "LY",
                                "LI",
                                "LT",
                                "LU",
                                "MO",
                                "MG",
                                "MW",
                                "MY",
                                "MV",
                                "ML",
                                "MT",
                                "MH",
                                "MQ",
                                "MR",
                                "MU",
                                "MX",
                                "FM",
                                "MD",
                                "MC",
                                "MN",
                                "ME",
                                "MS",
                                "MA",
                                "MZ",
                                "MM",
                                "NA",
                                "NR",
                                "NP",
                                "NL",
                                "NC",
                                "NZ",
                                "NI",
                                "NE",
                                "NG",
                                "NU",
                                "NF",
                                "MK",
                                "MP",
                                "NO",
                                "OM",
                                "PK",
                                "PW",
                                "PA",
                                "PG",
                                "PY",
                                "PE",
                                "PH",
                                "PL",
                                "PT",
                                "PR",
                                "QA",
                                "RE",
                                "RO",
                                "RU",
                                "RW",
                                "BL",
                                "SH",
                                "KN",
                                "LC",
                                "PM",
                                "VC",
                                "WS",
                                "SM",
                                "ST",
                                "SA",
                                "SN",
                                "RS",
                                "SC",
                                "SL",
                                "SG",
                                "BQ",
                                "SX",
                                "SK",
                                "SI",
                                "SB",
                                "SO",
                                "ZA",
                                "GS",
                                "SS",
                                "ES",
                                "LK",
                                "SD",
                                "SR",
                                "SE",
                                "CH",
                                "SY",
                                "TW",
                                "TJ",
                                "TZ",
                                "TH",
                                "TL",
                                "TG",
                                "TK",
                                "TO",
                                "TT",
                                "TN",
                                "TR",
                                "TM",
                                "TC",
                                "TV",
                                "UG",
                                "UA",
                                "AE",
                                "GB",
                                "US",
                                "UY",
                                "UZ",
                                "VU",
                                "VA",
                                "VE",
                                "VN",
                                "VG",
                                "VI",
                                "WF",
                                "EH",
                                "YE",
                                "ZM",
                                "ZW"
                              ],
                              "type": "string",
                              "description": "The country code (iso-3166-1 alpha-2) where the phone number is registered"
                            },
                            "number": {
                              "title": "Phone number",
                              "maxLength": 16,
                              "minLength": 5,
                              "pattern": "^[0-9]{5,16}$",
                              "type": "string",
                              "description": "The phone number without the country calling code"
                            }
                          },
                          "description": "Phone number"
                        },
                        "address": {
                          "title": "Address",
                          "required": [
                            "address_line1",
                            "city",
                            "zip",
                            "country"
                          ],
                          "type": "object",
                          "properties": {
                            "address_line1": {
                              "title": "Address line 1",
                              "maxLength": 300,
                              "minLength": 1,
                              "pattern": "\\S",
                              "type": "string",
                              "description": "The first line of the address."
                            },
                            "address_line2": {
                              "title": "Address line 2",
                              "maxLength": 300,
                              "description": "The second line of the address."
                            },
                            "city": {
                              "title": "City",
                              "maxLength": 300,
                              "minLength": 2,
                              "type": "string",
                              "description": "The address city."
                            },
                            "state": {
                              "title": "State",
                              "maxLength": 300,
                              "minLength": 1,
                              "pattern": "\\S",
                              "type": "string",
                              "description": "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": {
                              "title": "Postal code",
                              "maxLength": 16,
                              "minLength": 1,
                              "pattern": "^[a-zA-Z0-9-\\s]+$",
                              "type": "string",
                              "description": "The address zip/postal code."
                            },
                            "country": {
                              "title": "Country",
                              "maxLength": 2,
                              "minLength": 2,
                              "pattern": "[a-zA-Z]{2}",
                              "type": "string",
                              "description": "The country code (iso-3166-1 alpha-2)",
                              "format": "iso-3166-1-alpha-2"
                            }
                          },
                          "description": "The representative's address."
                        }
                      },
                      "description": "Information about the individual representing the sub-entity."
                    },
                    "roles": {
                      "title": "Roles within company",
                      "maxItems": 1,
                      "minItems": 1,
                      "uniqueItems": true,
                      "type": "array",
                      "items": {
                        "title": "Representative Role",
                        "enum": [
                          "ubo"
                        ],
                        "type": "string",
                        "description": "The representative's role"
                      },
                      "description": "The individual's roles within the company"
                    },
                    "documents": {
                      "title": "Documents",
                      "required": [
                        "identity_verification"
                      ],
                      "type": "object",
                      "properties": {
                        "identity_verification": {
                          "title": "Document",
                          "required": [
                            "type",
                            "front"
                          ],
                          "type": "object",
                          "properties": {
                            "type": {
                              "title": "Document type",
                              "enum": [
                                "passport",
                                "national_identity_card",
                                "driving_license",
                                "citizen_card",
                                "residence_permit",
                                "electoral_id"
                              ],
                              "type": "string",
                              "description": "The type of document used for identity verification"
                            },
                            "front": {
                              "title": "Front",
                              "maxLength": 31,
                              "minLength": 31,
                              "pattern": "^file_[a-z2-7]{26}$",
                              "type": "string",
                              "description": "The ID of the front side of the document as represented within Checkout.com systems."
                            },
                            "back": {
                              "title": "Back",
                              "maxLength": 31,
                              "minLength": 31,
                              "pattern": "^file_[a-z2-7]{26}$",
                              "type": "string",
                              "description": "The ID of the back side of the document as represented within Checkout.com systems."
                            }
                          },
                          "description": "The document to use to confirm the individual's identity."
                        }
                      },
                      "additionalProperties": false,
                      "description": "Verification documents for the individual representative"
                    }
                  },
                  "description": "Personal information about the individual representing the sub-entity."
                },
                "description": "Information about representatives of this company."
              },
              "business_type": {
                "title": "Business type",
                "enum": [
                  "individual_or_sole_proprietorship",
                  "limited_company",
                  "public_limited_company",
                  "limited_partnership",
                  "general_partnership",
                  "scottish_limited_partnership",
                  "government_agency",
                  "non_profit_entity",
                  "trust",
                  "club_or_society",
                  "unincorporated_association"
                ],
                "type": "string",
                "description": "The legal type of the company"
              }
            },
            "description": "Information about the sole trader's business."
          },
          "processing_details": {
            "type": "object",
            "allOf": [
              {
                "title": "Processing Details",
                "required": [
                  "settlement_country",
                  "target_countries",
                  "annual_processing_volume",
                  "average_transaction_value",
                  "highest_transaction_value",
                  "currency"
                ],
                "type": "object",
                "properties": {
                  "settlement_country": {
                    "title": "Destination of funds",
                    "maxLength": 2,
                    "minLength": 2,
                    "pattern": "[a-zA-Z]{2}",
                    "type": "string",
                    "description": "The country code (iso-3166-1 alpha-2) where the settlement bank account is located",
                    "format": "iso-3166-1-alpha-2"
                  },
                  "target_countries": {
                    "title": "Target countries",
                    "maxItems": 10,
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "title": "Country",
                      "maxLength": 2,
                      "minLength": 2,
                      "pattern": "[a-zA-Z]{2}",
                      "type": "string",
                      "description": "The country code (iso-3166-1 alpha-2)",
                      "format": "iso-3166-1-alpha-2"
                    },
                    "description": "Target country codes (iso-3166-1 alpha-2) with more than 10% expected volume processing with Checkout"
                  },
                  "annual_processing_volume": {
                    "title": "Estimated annual processing volume",
                    "minimum": 0,
                    "type": "integer",
                    "description": "The estimated annual processing volume. In minor units without decimals."
                  },
                  "average_transaction_value": {
                    "title": "Average sales price",
                    "minimum": 0,
                    "type": "integer",
                    "description": "The expected average transaction value. In minor units without decimals."
                  },
                  "highest_transaction_value": {
                    "title": "Highest transaction value",
                    "minimum": 0,
                    "type": "integer",
                    "description": "The expected highest transaction value. In minor units without decimals."
                  },
                  "currency": {
                    "title": "Currency",
                    "enum": [
                      "GBP"
                    ],
                    "type": "string",
                    "description": "The currency used for the processing details provided."
                  }
                },
                "description": "Seller processing details."
              }
            ]
          },
          "documents": {
            "title": "Documents",
            "required": [
              "bank_verification"
            ],
            "type": "object",
            "properties": {
              "bank_verification": {
                "title": "Bank Verification",
                "required": [
                  "type",
                  "front"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Document type",
                    "enum": [
                      "bank_statement"
                    ],
                    "type": "string",
                    "description": "The type of document being used as bank verification"
                  },
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document as represented within Checkout.com systems."
                  }
                },
                "description": "A document showing transactions from last 3 months"
              },
              "additional_document1": {
                "title": "Additional Documentation",
                "required": [
                  "front"
                ],
                "type": "object",
                "properties": {
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document as represented within Checkout.com systems."
                  }
                },
                "description": "Additional space for documents to be provided when requested"
              },
              "additional_document2": {
                "title": "Additional Documentation",
                "required": [
                  "front"
                ],
                "type": "object",
                "properties": {
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document as represented within Checkout.com systems."
                  }
                },
                "description": "Additional space for documents to be provided when requested"
              },
              "additional_document3": {
                "title": "Additional Documentation",
                "required": [
                  "front"
                ],
                "type": "object",
                "properties": {
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document as represented within Checkout.com systems."
                  }
                },
                "description": "Additional space for documents to be provided when requested"
              }
            },
            "description": "The documents used to support the verification of business details."
          }
        }
      },
      "GBSoleTraderLite2-0": {
        "title": "GB Sole Trader - Lite (2.0)",
        "type": "object",
        "allOf": [
          {
            "title": "Create & Submit regulated GB Individual (V2.0)",
            "required": [
              "reference",
              "individual",
              "contact_details",
              "profile"
            ],
            "type": "object",
            "properties": {
              "reference": {
                "title": "Unique reference",
                "maxLength": 50,
                "minLength": 1,
                "type": "string",
                "description": "A unique reference you can later use to identify the sub-entity."
              },
              "status": {
                "type": "string",
                "readOnly": true
              },
              "is_draft": {
                "type": "boolean",
                "description": "Specifies whether the sub-entity details are in draft.\n\nMarking a sub-entity as a draft allows sub-entity details to be updated, without triggering due diligence checks.",
                "writeOnly": true
              },
              "profile": {
                "title": "Profile",
                "required": [
                  "urls",
                  "mccs"
                ],
                "type": "object",
                "properties": {
                  "urls": {
                    "title": "Website",
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "title": "Company website URL",
                      "maxLength": 300,
                      "minLength": 4,
                      "pattern": "^(http|https):\\//\\S{2,293}$",
                      "type": "string",
                      "description": "The URL of the company's website.",
                      "format": "uri"
                    },
                    "description": "A collection of website URLs the sub-entity accepts payments on."
                  },
                  "mccs": {
                    "title": "Industry",
                    "maxItems": 5,
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "title": "Merchant category code",
                      "pattern": "^[0-9]{4}$",
                      "description": "The merchant category code (4-digit ISO 18245)."
                    },
                    "description": "Select the categories that most closely describe the business"
                  }
                },
                "description": "Information about the profile of the sub-entity, primarily regarding the products/services offered."
              },
              "contact_details": {
                "title": "Contact Details",
                "required": [
                  "phone",
                  "email_addresses"
                ],
                "type": "object",
                "properties": {
                  "phone": {
                    "title": "Phone",
                    "required": [
                      "number"
                    ],
                    "type": "object",
                    "properties": {
                      "number": {
                        "title": "Phone number",
                        "maximum": 9999999999999999,
                        "minimum": 10000000,
                        "maxLength": 16,
                        "minLength": 8,
                        "pattern": "^[1-9][0-9]{7,15}$",
                        "description": "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.)"
                      }
                    },
                    "description": "The phone number of the sub-entity."
                  },
                  "email_addresses": {
                    "required": [
                      "primary"
                    ],
                    "type": "object",
                    "properties": {
                      "primary": {
                        "title": "Email",
                        "description": "The main email address for this sub-entity.",
                        "format": "email"
                      }
                    },
                    "description": "Email addresses for this sub-entity."
                  },
                  "invitee": {
                    "title": "Invitee",
                    "type": "object",
                    "properties": {
                      "email": {
                        "title": "Email",
                        "description": "The main email address for this sub-entity.",
                        "format": "email"
                      }
                    },
                    "description": "The details of the user responsible for onboarding the sub-entity."
                  }
                },
                "description": "Contact details of this sub-entity."
              },
              "capabilities": {
                "title": "Capabilities",
                "type": "object",
                "description": "The capabilities of the entity.",
                "readOnly": true
              },
              "requirements_due": {
                "title": "Requirements Due",
                "minItems": 0,
                "type": "array",
                "items": {
                  "title": "Requirements due entry",
                  "type": "object",
                  "properties": {
                    "field": {
                      "title": "Field",
                      "type": "string",
                      "description": "The field that is needs to be addressed."
                    },
                    "reason": {
                      "title": "Reason",
                      "type": "string",
                      "description": "The reason behind the field needing attention."
                    }
                  },
                  "description": "A list of fields which require attention",
                  "readOnly": true
                },
                "description": "List of requirements due in order to be onboarded.",
                "readOnly": true
              },
              "instruments": {
                "type": "array",
                "items": {
                  "type": "object"
                },
                "readOnly": true
              },
              "documents": {
                "title": "Document",
                "required": [
                  "identity_verification"
                ],
                "type": "object",
                "properties": {
                  "identity_verification": {
                    "title": "Document",
                    "required": [
                      "type",
                      "front"
                    ],
                    "type": "object",
                    "properties": {
                      "type": {
                        "title": "Document type",
                        "enum": [
                          "passport",
                          "national_identity_card",
                          "driving_license",
                          "citizen_card",
                          "residence_permit",
                          "electoral_id"
                        ],
                        "type": "string",
                        "description": "The type of document used for identity verification"
                      },
                      "front": {
                        "title": "Front",
                        "maxLength": 31,
                        "minLength": 31,
                        "pattern": "^file_[a-z2-7]{26}$",
                        "type": "string",
                        "description": "The ID of the front side of the document as represented within Checkout.com systems."
                      },
                      "back": {
                        "title": "Back",
                        "maxLength": 31,
                        "minLength": 31,
                        "pattern": "^file_[a-z2-7]{26}$",
                        "type": "string",
                        "description": "The ID of the back side of the document as represented within Checkout.com systems."
                      }
                    },
                    "description": "The document to use to confirm the individual's identity."
                  }
                },
                "description": "A legal document used to verify identity."
              },
              "individual": {
                "title": "Individual",
                "required": [
                  "first_name",
                  "last_name",
                  "registered_address",
                  "trading_name"
                ],
                "type": "object",
                "properties": {
                  "trading_name": {
                    "title": "Trading name",
                    "maxLength": 300,
                    "minLength": 2,
                    "type": "string",
                    "description": "The trading name of the sub-entity, also referred to as 'doing business as'."
                  },
                  "first_name": {
                    "title": "First name",
                    "maxLength": 50,
                    "minLength": 2,
                    "type": "string",
                    "description": "The representative's first name."
                  },
                  "middle_name": {
                    "title": "Middle name",
                    "maxLength": 50,
                    "minLength": 2,
                    "type": "string",
                    "description": "The representative's middle name. Required if appears in official docs"
                  },
                  "last_name": {
                    "title": "Last name",
                    "maxLength": 50,
                    "minLength": 2,
                    "type": "string",
                    "description": "The representative's last name."
                  },
                  "date_of_birth": {
                    "title": "Date of birth",
                    "required": [
                      "day",
                      "month",
                      "year"
                    ],
                    "type": "object",
                    "properties": {
                      "day": {
                        "maximum": 31,
                        "minimum": 1,
                        "type": "integer",
                        "description": "The calendar day of the month they were born."
                      },
                      "month": {
                        "maximum": 12,
                        "minimum": 1,
                        "type": "integer",
                        "description": "The month of the year they were born."
                      },
                      "year": {
                        "maximum": 2999,
                        "minimum": 1900,
                        "type": "integer",
                        "description": "The year they were born."
                      }
                    },
                    "description": "The date of birth of the person according to the Gregorian calendar."
                  },
                  "registered_address": {
                    "title": "Registered Address",
                    "required": [
                      "address_line1",
                      "city",
                      "zip",
                      "country"
                    ],
                    "type": "object",
                    "properties": {
                      "address_line1": {
                        "title": "Address line 1",
                        "maxLength": 300,
                        "minLength": 1,
                        "pattern": "\\S",
                        "type": "string",
                        "description": "The first line of the address."
                      },
                      "address_line2": {
                        "title": "Address line 2",
                        "maxLength": 300,
                        "description": "The second line of the address."
                      },
                      "city": {
                        "title": "City",
                        "maxLength": 300,
                        "minLength": 2,
                        "type": "string",
                        "description": "The address city."
                      },
                      "state": {
                        "title": "State",
                        "maxLength": 300,
                        "minLength": 1,
                        "pattern": "\\S",
                        "type": "string",
                        "description": "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": {
                        "title": "UK Postal Code",
                        "maxLength": 8,
                        "minLength": 5,
                        "pattern": "^[A-Za-z]{1,2}([0-9]{1,2}|[0-9][A-Za-z])\\s?[0-9][A-Za-z]{2}$",
                        "type": "string",
                        "description": "The address zip/postal code."
                      },
                      "country": {
                        "title": "Country",
                        "maxLength": 2,
                        "minLength": 2,
                        "pattern": "[a-zA-Z]{2}",
                        "type": "string",
                        "description": "The country code (iso-3166-1 alpha-2)",
                        "format": "iso-3166-1-alpha-2"
                      }
                    },
                    "description": "The registered address of the company."
                  }
                },
                "description": "Information about the individual represented by the sub-entity."
              }
            }
          }
        ]
      },
      "GetScheduleResponse": {
        "type": "object",
        "properties": {
          "GBP": {
            "maxLength": 3,
            "minLength": 3,
            "type": "object",
            "properties": {
              "recurrence": {
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "description": "Indicates the status of the payout schedule.",
                    "default": false,
                    "example": true
                  },
                  "threshold": {
                    "type": "number",
                    "description": "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.",
                    "example": 100
                  },
                  "payment_instrument_id": {
                    "type": "string",
                    "description": "The ID of the platforms payment instrument used for payouts on this schedule.",
                    "example": "ppi_w4jelhppmfiufdnatam37wrfc4"
                  },
                  "schedule": {
                    "required": [
                      "frequency"
                    ],
                    "type": "object",
                    "properties": {
                      "frequency": {
                        "enum": [
                          "weekly",
                          "daily",
                          "monthly"
                        ],
                        "type": "string",
                        "description": "Used to indicate how often funds should be paid out to a sub-entity.",
                        "example": "weekly"
                      }
                    },
                    "description": "Details about the payout schedule. Required if `enabled` is set to `true`.",
                    "discriminator": {
                      "propertyName": "frequency",
                      "mapping": {
                        "weekly": "#/components/schemas/ScheduleFrequencyWeekly",
                        "daily": "#/components/schemas/ScheduleFrequencyDaily",
                        "monthly": "#/components/schemas/ScheduleFrequencyMonthly"
                      }
                    },
                    "example": {
                      "frequency": "weekly",
                      "by_day": [
                        "monday"
                      ]
                    }
                  }
                },
                "description": "Information about how often the schedule takes place."
              },
              "_links": {
                "additionalProperties": {
                  "$ref": "#/components/schemas/Link"
                },
                "example": {
                  "self": {
                    "href": "https://{prefix}.api.checkout.com/accounts/entities/ent_wxglze3wwywujg4nna5fb7ldli"
                  }
                }
              }
            },
            "description": "The three-letter ISO currency code of the account's currency.",
            "format": "ISO 4217"
          }
        }
      },
      "GetScheduleResponseIsv": {
        "type": "object",
        "properties": {
          "GBP": {
            "maxLength": 3,
            "minLength": 3,
            "type": "object",
            "properties": {
              "recurrence": {
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "description": "Indicates whether the payout schedule is enabled.",
                    "default": false,
                    "example": true
                  },
                  "threshold": {
                    "type": "number",
                    "description": "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.",
                    "example": 100
                  },
                  "balance_minimum": {
                    "minimum": 0,
                    "type": "number",
                    "description": "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.",
                    "nullable": true,
                    "example": 500
                  },
                  "carry_forward_enabled": {
                    "type": "boolean",
                    "description": "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.",
                    "nullable": true,
                    "example": true
                  },
                  "payment_instrument_id": {
                    "type": "string",
                    "description": "The ID of the platforms payment instrument used for payouts on this schedule.",
                    "example": "ppi_w4jelhppmfiufdnatam37wrfc4"
                  },
                  "schedule": {
                    "required": [
                      "frequency"
                    ],
                    "type": "object",
                    "properties": {
                      "frequency": {
                        "enum": [
                          "weekly",
                          "daily",
                          "monthly"
                        ],
                        "type": "string",
                        "description": "Used to indicate how often funds should be paid out to a sub-entity.",
                        "example": "weekly"
                      }
                    },
                    "description": "Details about the payout schedule. Required if `enabled` is set to `true`.",
                    "discriminator": {
                      "propertyName": "frequency",
                      "mapping": {
                        "weekly": "#/components/schemas/ScheduleFrequencyWeeklyIsv",
                        "daily": "#/components/schemas/ScheduleFrequencyDailyIsv",
                        "monthly": "#/components/schemas/ScheduleFrequencyMonthlyIsv"
                      }
                    },
                    "example": {
                      "frequency": "weekly",
                      "by_day": [
                        "monday"
                      ]
                    }
                  }
                },
                "description": "Information about how often the payout takes place."
              },
              "_links": {
                "additionalProperties": {
                  "$ref": "#/components/schemas/Link"
                },
                "example": {
                  "self": {
                    "href": "https://{prefix}.api.checkout.com/accounts/entities/ent_wxglze3wwywujg4nna5fb7ldli"
                  }
                }
              }
            },
            "description": "The three-letter ISO currency code of the account's currency.",
            "format": "ISO 4217"
          }
        }
      },
      "PlatformsHostedOnboardGetMembers": {
        "title": "Sub-entity members response",
        "type": "object",
        "properties": {
          "data": {
            "title": "Data",
            "type": "array",
            "items": {
              "title": "Members",
              "type": "object",
              "properties": {
                "user_id": {
                  "title": "User id",
                  "type": "string",
                  "description": "The unique ID used to identify a sub-entity member.",
                  "example": "usr_eyk754cqieqexfh6u46no5nnha"
                }
              }
            },
            "description": "The list of members of the sub-entity."
          },
          "links": {
            "$ref": "#/components/schemas/EntityLinks"
          }
        }
      },
      "PlatformsHostedOnboardInviteRequest": {
        "title": "Hosted Onboarding Invitation Request",
        "required": [
          "reference",
          "contact_details",
          "is_draft"
        ],
        "type": "object",
        "properties": {
          "reference": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "description": "A unique reference you can later use to identify the sub-entity.",
            "example": "superhero1234"
          },
          "is_draft": {
            "type": "boolean",
            "description": "Specifies whether the sub-entity details are in draft. \n\nMarking a sub-entity as a draft allows sub-entity details to be updated, without triggering due diligence checks.\n"
          },
          "contact_details": {
            "title": "Contact details",
            "required": [
              "invitee"
            ],
            "type": "object",
            "properties": {
              "invitee": {
                "title": "Invitee",
                "required": [
                  "email"
                ],
                "type": "object",
                "properties": {
                  "email": {
                    "title": "Email",
                    "type": "string",
                    "description": "The email of the user responsible for onboarding the sub-entity.",
                    "format": "email",
                    "example": "admin@superhero1234.com"
                  }
                },
                "description": "The details of the user responsible for onboarding the sub-entity."
              }
            },
            "description": "The contact details of the members invited to onboard the sub-entity"
          }
        },
        "description": "<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>\nCreate a sub-entity and send an invite to the seller to onboard with Checkout.com. The seller will receive an email with a link to the Dashboard, where they can complete their onboarding application. Only one user can be invited to onboard the sub-entity through Hosted Onboarding.\n\nTo enable the <a href=\"https://www.checkout.com/docs/platforms/onboard-sub-entities/onboard-with-hosted-onboarding\" target=\"_blank\">Hosted Onboarding</a> feature, contact your Account Manager.\n"
      },
      "PlatformsHostedOnboardReinviteRequest": {
        "title": "Reinvite sub-entity member",
        "type": "object"
      },
      "PlatformsHostedOnboardReinviteResponse": {
        "title": "Reinvite sub-entity member",
        "type": "object"
      },
      "PlatformsInstrumentDetailsAch": {
        "title": "InstrumentDetailsAch",
        "required": [
          "account_number",
          "routing_number",
          "account_type"
        ],
        "type": "object",
        "properties": {
          "account_number": {
            "title": "Account number",
            "type": "string",
            "description": "The alphanumeric value that identifies the account.",
            "example": "12345100"
          },
          "routing_number": {
            "title": "Routing number",
            "pattern": "^[0-9]{9}$",
            "type": "string",
            "description": "The 9-digit American Bankers Association (ABA) routing number that identifies the financial institution.",
            "example": "026009593"
          },
          "account_type": {
            "title": "Account type",
            "enum": [
              "savings",
              "checking"
            ],
            "type": "string",
            "description": "The type of bank account.",
            "example": "savings"
          }
        }
      },
      "PlatformsInstrumentDetailsFasterPayments": {
        "title": "InstrumentDetailsFasterPayments",
        "required": [
          "account_number",
          "bank_code"
        ],
        "type": "object",
        "properties": {
          "account_number": {
            "title": "Account number",
            "type": "string",
            "description": "The alphanumeric value that identifies the account",
            "example": "13654567455"
          },
          "bank_code": {
            "title": "Bank code",
            "type": "string",
            "description": "The code that identifies the bank",
            "example": "123-456"
          }
        }
      },
      "PlatformsInstrumentDetailsSepa": {
        "title": "InstrumentDetailsSepa",
        "required": [
          "iban",
          "swift_bic"
        ],
        "type": "object",
        "properties": {
          "iban": {
            "title": "IBAN",
            "maxLength": 34,
            "minLength": 5,
            "type": "string",
            "description": "The account's International Bank Account Number (IBAN)",
            "example": "HU93116000060000000012345676"
          },
          "swift_bic": {
            "title": "SwiftBic",
            "type": "string",
            "description": "An 8 or 11 character code that identifies the bank or bank branch",
            "format": "ISO 9362:2009",
            "example": "37040044"
          }
        }
      },
      "PlatformsPaymentInstrumentBankAccount": {
        "title": "PaymentInstrumentBankAccount",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/PlatformsPaymentInstrument"
          },
          {
            "required": [
              "country",
              "document",
              "instrument_details"
            ],
            "type": "object",
            "properties": {
              "country": {
                "title": "Country",
                "type": "string",
                "description": "The account's country, as a two-letter ISO country code",
                "format": "ISO 3166-1",
                "example": "GB"
              },
              "default": {
                "title": "Default",
                "type": "boolean",
                "description": "For ad-hoc payouts, the payment instrument is explicitly specified in the payout request.\nFor scheduled payouts, the first payment instrument created for a given currency will be used for that currency's payout schedule.\nTo change the payment instrument associated with a payout schedule, update the payout schedule.\n(Deprecated) Specifies whether the payment instrument should be set as the default payout destination.\n",
                "deprecated": true
              },
              "document": {
                "title": "Document",
                "type": "object",
                "properties": {
                  "type": {
                    "enum": [
                      "bank_statement"
                    ],
                    "type": "string",
                    "description": "The document type",
                    "default": "bank_statement",
                    "example": "bank_statement"
                  },
                  "file_id": {
                    "type": "string",
                    "description": "The file ID of the uploaded document. The document must have been uploaded for the purpose of `\"bank_verification\"`.",
                    "example": "file_wxglze3wwywujg4nna5fb7ldli"
                  }
                },
                "description": "A legal document used to verify the bank account"
              },
              "instrument_details": {
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/PlatformsInstrumentDetailsFasterPayments"
                  },
                  {
                    "$ref": "#/components/schemas/PlatformsInstrumentDetailsSepa"
                  },
                  {
                    "$ref": "#/components/schemas/PlatformsInstrumentDetailsAch"
                  }
                ],
                "description": "Details of the payment instrument being created."
              }
            }
          }
        ]
      },
      "PlatformsInstrumentDetailsCardToken": {
        "title": "card_token",
        "allOf": [
          {
            "$ref": "#/components/schemas/PlatformsPaymentInstrument"
          },
          {
            "required": [
              "token",
              "instrument_details"
            ],
            "type": "object",
            "properties": {
              "instrument_details": {
                "type": "object",
                "properties": {
                  "token": {
                    "title": "Token",
                    "type": "string",
                    "description": "The token that identifies the card",
                    "example": "tok_4gzeau5o2uqubbk6fufs3m7p54"
                  }
                },
                "description": "Details of the payment instrument being created"
              }
            }
          }
        ],
        "description": "Card Token Request"
      },
      "PlatformsPaymentInstrument": {
        "title": "PaymentInstrumentBase",
        "required": [
          "label",
          "type",
          "currency"
        ],
        "type": "object",
        "properties": {
          "label": {
            "title": "Label",
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "description": "A reference that you can use to identify the payment instrument",
            "example": "Peter's Personal Account"
          },
          "type": {
            "title": "Type",
            "enum": [
              "bank_account",
              "card_token"
            ],
            "type": "string",
            "description": "The instrument type"
          },
          "currency": {
            "title": "Currency",
            "maxLength": 3,
            "minLength": 3,
            "type": "string",
            "description": "The account's currency, as a 3-letter ISO currency code",
            "format": "ISO 4217",
            "example": "GBP"
          }
        }
      },
      "PlatformsPaymentInstrumentCreate": {
        "title": "PaymentInstrumentCreateRequest",
        "required": [
          "label",
          "type",
          "currency",
          "instrument_details"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of instrument",
            "example": "bank_account"
          },
          "label": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "description": "A reference that you can use to identify the payment instrument",
            "example": "Peter's Personal Account"
          },
          "currency": {
            "maxLength": 3,
            "minLength": 3,
            "type": "string",
            "description": "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.",
            "example": "GBP"
          },
          "instrument_details": {
            "type": "object",
            "description": "Details of the payment instrument being created"
          }
        },
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "card_token": "#/components/schemas/PlatformsInstrumentDetailsCardToken",
            "bank_account": "#/components/schemas/PlatformsPaymentInstrumentBankAccount"
          }
        }
      },
      "PlatformsPaymentInstrumentQuery": {
        "title": "PaymentInstrumentQueryResponse",
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformsPaymentInstrumentRead"
            }
          },
          "_links": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/Link"
            }
          }
        }
      },
      "PlatformsPaymentInstrumentRead": {
        "title": "PaymentInstrumentReadResponse",
        "type": "object",
        "allOf": [
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The ID of the sub-entity's payment instrument.",
                "example": "ppi_qn4nis4k3ykpzzu7cvtuvhqqga"
              },
              "status": {
                "$ref": "#/components/schemas/PlatformsPaymentInstrumentStatus"
              },
              "instrument_id": {
                "title": "Status",
                "type": "string",
                "description": "The payment instrument's ID. Only available once the instrument status is `verified`.",
                "example": "src_wmlfc3zyhqzehihu7giusaaawu"
              }
            }
          },
          {
            "$ref": "#/components/schemas/PlatformsPaymentInstrument"
          },
          {
            "type": "object",
            "properties": {
              "_links": {
                "type": "object",
                "additionalProperties": {
                  "$ref": "#/components/schemas/Link"
                }
              }
            }
          }
        ]
      },
      "PlatformsPaymentInstrumentStatus": {
        "title": "Status",
        "enum": [
          "pending",
          "verified",
          "unverified"
        ],
        "type": "string",
        "description": "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.",
        "example": "verified"
      },
      "PlatformsPaymentInstrumentUpdate": {
        "title": "PaymentInstrumentUpdateRequest",
        "type": "object",
        "properties": {
          "label": {
            "title": "Label",
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "description": "A reference that you can use to identify the payment instrument.",
            "example": "Peter's Personal Account"
          },
          "default": {
            "title": "Default",
            "type": "boolean",
            "description": "For ad-hoc payouts, the payment instrument is explicitly specified in the payout request.\nFor scheduled payouts, the first payment instrument created for a given currency will be used for that currency's payout schedule.\nTo change the payment instrument associated with a payout schedule, update the payout schedule.\n(Deprecated) Specifies whether the payment instrument should be set as the default payout destination.\n",
            "deprecated": true
          },
          "headers": {
            "required": [
              "if-match"
            ],
            "type": "object",
            "properties": {
              "if-match": {
                "type": "string",
                "description": "The payment instrument ETag value",
                "example": "Y3Y9MCZydj0w"
              }
            }
          }
        }
      },
      "PlatformsFileRetrieveResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of the file.",
            "example": "file_6lbss42ezvoufcb2beo76rvwly"
          },
          "status": {
            "type": "string",
            "description": "The current status of the file.",
            "example": "invalid"
          },
          "status_reasons": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "If `status` is `Invalid`, returns the reasons why the file was invalid. If `status` is any other value, returns `Null`.",
            "example": [
              "InvalidMimeType"
            ]
          },
          "size": {
            "type": "number",
            "description": "The size of the file in KB.",
            "example": 1024
          },
          "mime_type": {
            "type": "string",
            "description": "The MIME type of the file.",
            "example": "application/pdf"
          },
          "uploaded_on": {
            "type": "string",
            "description": "The date and time the file was uploaded, in ISO 8601 UTC format.",
            "format": "date-time",
            "example": "2020-12-01T15:01:01.0000000+00:00"
          },
          "purpose": {
            "enum": [
              "identity_verification",
              "dispute_evidence",
              "bank_verification",
              "company_verification",
              "financial_verification",
              "tax_verification"
            ],
            "type": "string",
            "description": "The purpose of the file, as provided in the initial request.",
            "example": "identity_verification"
          },
          "_links": {
            "additionalProperties": {
              "$ref": "#/components/schemas/Link"
            },
            "example": {
              "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"
              }
            }
          }
        }
      },
      "PlatformsFileUpload": {
        "required": [
          "purpose"
        ],
        "type": "object",
        "properties": {
          "purpose": {
            "enum": [
              "additional_document",
              "articles_of_association",
              "bank_verification",
              "certified_authorised_signatory",
              "company_ownership",
              "company_verification",
              "financial_verification",
              "identity_verification",
              "proof_of_legality",
              "proof_of_principal_address",
              "shareholder_structure",
              "tax_verification",
              "proof_of_residential_address",
              "proof_of_registration"
            ],
            "type": "string",
            "description": "The purpose of the file upload.",
            "example": "identity_verification"
          }
        }
      },
      "PlatformsFileUploadResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The file identifier.",
            "example": "file_6lbss42ezvoufcb2beo76rvwly"
          },
          "maximum_size_in_bytes": {
            "type": "number",
            "description": "The maximum file size allowed, in bytes.",
            "example": 4194304
          },
          "document_types_for_purpose": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The MIME file types allowed for the document purpose, provided on the initial file upload request.",
            "example": [
              "image/jpeg",
              "image/png",
              "image/jpg"
            ]
          },
          "_links": {
            "type": "object",
            "properties": {
              "upload": {
                "properties": {
                  "href": {
                    "type": "string",
                    "example": "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"
                  }
                },
                "description": "Send a data-binary type request to this URL with your file attached. For example:\n\n```\ncurl --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'\n--data-binary '@/C:/Users/Test/test.pdf'\n```\n"
              },
              "self": {
                "properties": {
                  "href": {
                    "type": "string",
                    "example": "https://files.checkout.com/files/file_6lbss42ezvoufcb2beo76rvwly"
                  }
                },
                "description": "The file information retrieval URL."
              }
            }
          }
        },
        "description": "File uploaded successfully."
      },
      "ReserveRuleCreateRequest": {
        "title": "ReserveRuleCreateRequest",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/ReserveRuleUpdateRequest"
          },
          {
            "required": [
              "valid_from"
            ],
            "type": "object",
            "properties": {
              "valid_from": {
                "type": "string",
                "description": "The date and time the reserve rule will come into effect. This must be at least 15 minutes in the future.",
                "format": "date-time"
              }
            }
          }
        ]
      },
      "ReserveRuleId": {
        "title": "ReserveRuleId",
        "type": "string",
        "example": "rsv_qn4nis4k3ykpzzu7cvtuvhqqga"
      },
      "ReserveRuleQueryResponse": {
        "title": "ReserveRuleQueryResponse",
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReserveRuleReadResponse"
            }
          },
          "_links": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/Link"
            }
          }
        }
      },
      "ReserveRuleReadResponse": {
        "title": "ReserveRuleReadResponse",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/ReserveRuleCreateRequest"
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "$ref": "#/components/schemas/ReserveRuleId"
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "_links": {
                "type": "object",
                "additionalProperties": {
                  "$ref": "#/components/schemas/Link"
                }
              }
            }
          }
        ]
      },
      "ReserveRuleUpdateRequest": {
        "title": "ReserveRuleUpdateRequest",
        "required": [
          "type",
          "rolling"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "rolling"
            ],
            "type": "string"
          },
          "rolling": {
            "$ref": "#/components/schemas/RollingReserveRule"
          }
        }
      },
      "ReserveRuleWriteResponse": {
        "title": "ReserveRuleWriteResponse",
        "type": "object",
        "allOf": [
          {
            "type": "object",
            "properties": {
              "id": {
                "$ref": "#/components/schemas/ReserveRuleId"
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "_links": {
                "type": "object",
                "properties": {
                  "self": {
                    "$ref": "#/components/schemas/Link"
                  }
                }
              }
            }
          }
        ]
      },
      "RollingReserveRule": {
        "title": "RollingReserveRule",
        "required": [
          "percentage",
          "holding_duration"
        ],
        "type": "object",
        "properties": {
          "percentage": {
            "multipleOf": 0.01,
            "maximum": 100,
            "minimum": 0,
            "type": "number",
            "description": "The percentage of captured funds that will be reserved as a collateral balance.",
            "example": 10
          },
          "holding_duration": {
            "required": [
              "weeks"
            ],
            "type": "object",
            "properties": {
              "weeks": {
                "maximum": 104,
                "minimum": 2,
                "type": "integer",
                "example": 2
              }
            },
            "description": "The length of time the collateral balance will be reserved for."
          }
        }
      },
      "ScheduleFrequencyDaily": {
        "type": "object",
        "properties": {
          "frequency": {
            "type": "string",
            "description": "Used to indicate how often funds should be paid out to a sub-entity."
          }
        }
      },
      "ScheduleFrequencyDailyIsv": {
        "type": "object",
        "properties": {
          "frequency": {
            "type": "string",
            "description": "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."
          }
        }
      },
      "ScheduleFrequencyMonthly": {
        "required": [
          "by_month_day"
        ],
        "type": "object",
        "properties": {
          "frequency": {
            "type": "string",
            "description": "Used to indicate how often funds should be paid out to a sub-entity."
          },
          "by_month_day": {
            "type": "array",
            "items": {
              "maximum": 28,
              "minimum": 1,
              "type": "integer",
              "example": 2
            },
            "description": "The day or days of the month the payout should take place."
          }
        }
      },
      "ScheduleFrequencyMonthlyIsv": {
        "required": [
          "by_month_day"
        ],
        "type": "object",
        "properties": {
          "frequency": {
            "type": "string",
            "description": "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": {
            "maxItems": 2,
            "minItems": 1,
            "uniqueItems": true,
            "enum": [
              [
                1
              ],
              [
                15
              ],
              [
                1,
                15
              ],
              [
                15,
                1
              ],
              [
                1,
                16
              ],
              [
                16,
                1
              ]
            ],
            "type": "array",
            "items": {
              "enum": [
                1,
                15,
                16
              ],
              "type": "integer"
            },
            "description": "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]`.",
            "example": [
              1,
              15
            ]
          }
        }
      },
      "ScheduleFrequencyWeekly": {
        "required": [
          "by_day"
        ],
        "type": "object",
        "properties": {
          "frequency": {
            "type": "string",
            "description": "Used to indicate how often funds should be paid out to a sub-entity."
          },
          "by_day": {
            "type": "array",
            "items": {
              "enum": [
                "monday",
                "tuesday",
                "wednesday",
                "thursday",
                "friday",
                "saturday",
                "sunday"
              ],
              "type": "string"
            },
            "description": "The day or days of the week the payout should take place."
          }
        }
      },
      "ScheduleFrequencyWeeklyIsv": {
        "required": [
          "by_day"
        ],
        "type": "object",
        "properties": {
          "frequency": {
            "type": "string",
            "description": "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": {
            "type": "array",
            "items": {
              "enum": [
                "monday",
                "tuesday",
                "wednesday",
                "thursday",
                "friday"
              ],
              "type": "string"
            },
            "description": "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."
          }
        }
      },
      "UpdateScheduleRequest": {
        "type": "object",
        "properties": {
          "ISO": {
            "maxLength": 3,
            "minLength": 3,
            "type": "object",
            "properties": {
              "enabled": {
                "type": "boolean",
                "description": "Indicates the status of the payout schedule.",
                "default": false,
                "example": true
              },
              "threshold": {
                "type": "number",
                "description": "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.",
                "example": 100
              },
              "payment_instrument_id": {
                "type": "string",
                "description": "The ID of the platforms payment instrument used for payouts on this schedule.",
                "example": "ppi_w4jelhppmfiufdnatam37wrfc4"
              },
              "recurrence": {
                "required": [
                  "frequency"
                ],
                "type": "object",
                "properties": {
                  "frequency": {
                    "type": "string",
                    "example": "weekly"
                  }
                },
                "description": "Information about how often the schedule takes place.",
                "discriminator": {
                  "propertyName": "frequency",
                  "mapping": {
                    "weekly": "#/components/schemas/ScheduleFrequencyWeekly",
                    "daily": "#/components/schemas/ScheduleFrequencyDaily",
                    "monthly": "#/components/schemas/ScheduleFrequencyMonthly"
                  }
                },
                "example": {
                  "frequency": "weekly",
                  "by_day": [
                    "monday"
                  ]
                }
              }
            },
            "description": "The three-letter ISO currency code of the account's currency.",
            "format": "ISO 4217"
          }
        }
      },
      "UpdateScheduleRequestIsv": {
        "type": "object",
        "properties": {
          "ISO": {
            "maxLength": 3,
            "minLength": 3,
            "required": [
              "enabled",
              "recurrence"
            ],
            "type": "object",
            "properties": {
              "enabled": {
                "type": "boolean",
                "description": "Indicates whether the payout schedule is enabled.",
                "example": true
              },
              "threshold": {
                "type": "number",
                "description": "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.",
                "example": 100
              },
              "balance_minimum": {
                "minimum": 0,
                "type": "number",
                "description": "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.",
                "nullable": true,
                "example": 500
              },
              "carry_forward_enabled": {
                "type": "boolean",
                "description": "Indicates whether to carry forward any balance below the configured minimum to the next payout. Defaults to `false` if you do not set it.",
                "nullable": true,
                "example": true
              },
              "payment_instrument_id": {
                "type": "string",
                "description": "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.",
                "example": "ppi_w4jelhppmfiufdnatam37wrfc4"
              },
              "recurrence": {
                "required": [
                  "frequency"
                ],
                "type": "object",
                "properties": {
                  "frequency": {
                    "type": "string",
                    "example": "weekly"
                  }
                },
                "description": "Information about how often the schedule takes place.",
                "discriminator": {
                  "propertyName": "frequency",
                  "mapping": {
                    "weekly": "#/components/schemas/ScheduleFrequencyWeeklyIsv",
                    "daily": "#/components/schemas/ScheduleFrequencyDailyIsv",
                    "monthly": "#/components/schemas/ScheduleFrequencyMonthlyIsv"
                  }
                },
                "example": {
                  "frequency": "weekly",
                  "by_day": [
                    "monday"
                  ]
                }
              }
            },
            "description": "The three-letter ISO currency code of the account's currency.",
            "format": "ISO 4217"
          }
        }
      },
      "USCompanyFull2-0": {
        "title": "US Company - Full (2.0)",
        "type": "object",
        "allOf": [
          {
            "title": "Create & Submit US Company (V2.0)",
            "required": [
              "reference",
              "company",
              "contact_details",
              "profile"
            ],
            "type": "object",
            "properties": {
              "reference": {
                "title": "Unique reference",
                "maxLength": 50,
                "minLength": 1,
                "type": "string",
                "description": "A unique reference you can later use to identify the sub-entity."
              },
              "status": {
                "type": "string",
                "readOnly": true
              },
              "is_draft": {
                "type": "boolean",
                "description": "Specifies whether the sub-entity details are in draft.\n\nMarking a sub-entity as a draft allows sub-entity details to be updated, without triggering due diligence checks.",
                "writeOnly": true
              },
              "profile": {
                "title": "Profile",
                "required": [
                  "urls",
                  "mccs"
                ],
                "type": "object",
                "properties": {
                  "urls": {
                    "title": "Website",
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "title": "Company website URL",
                      "maxLength": 300,
                      "minLength": 4,
                      "pattern": "^(http|https):\\//\\S{2,293}$",
                      "type": "string",
                      "description": "The URL of the company's website.",
                      "format": "uri"
                    },
                    "description": "A collection of website URLs the sub-entity accepts payments on."
                  },
                  "mccs": {
                    "title": "Industry",
                    "maxItems": 5,
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "title": "Merchant category code",
                      "pattern": "^[0-9]{4}$",
                      "description": "The merchant category code (4-digit ISO 18245)."
                    },
                    "description": "Select the categories that most closely describe the business"
                  },
                  "default_holding_currency": {
                    "title": "Main currency",
                    "description": "The default holding currency code (iso-4217)",
                    "format": "iso-4217"
                  },
                  "holding_currencies": {
                    "title": "Currencies",
                    "items": {
                      "title": "Currency",
                      "enum": [
                        "USD"
                      ],
                      "type": "string",
                      "description": "The currency code (iso-4217)"
                    },
                    "description": "Incoming funds are held in your selected currencies",
                    "default": [
                      "USD"
                    ]
                  }
                },
                "description": "Information about the profile of the sub-entity, primarily regarding the products/services offered."
              },
              "contact_details": {
                "title": "Contact Details",
                "required": [
                  "phone",
                  "email_addresses"
                ],
                "type": "object",
                "properties": {
                  "phone": {
                    "title": "Phone",
                    "required": [
                      "number"
                    ],
                    "type": "object",
                    "properties": {
                      "number": {
                        "title": "Phone number",
                        "maximum": 9999999999999999,
                        "minimum": 2000000000,
                        "maxLength": 16,
                        "minLength": 10,
                        "pattern": "^[2-9]{1}[0-9]{9,15}$",
                        "description": "Include the area code"
                      }
                    }
                  },
                  "email_addresses": {
                    "required": [
                      "primary"
                    ],
                    "type": "object",
                    "properties": {
                      "primary": {
                        "title": "Email",
                        "description": "The main email address for this sub-entity.",
                        "format": "email"
                      }
                    }
                  },
                  "invitee": {
                    "title": "Invitee",
                    "type": "object",
                    "properties": {
                      "email": {
                        "title": "Email",
                        "description": "The main email address for this sub-entity.",
                        "format": "email"
                      }
                    }
                  }
                }
              },
              "capabilities": {
                "title": "Capabilities",
                "type": "object",
                "description": "The capabilities of the entity.",
                "readOnly": true
              },
              "requirements_due": {
                "title": "Requirements Due",
                "minItems": 0,
                "type": "array",
                "items": {
                  "title": "Requirements due entry",
                  "type": "object",
                  "properties": {
                    "field": {
                      "title": "Field",
                      "type": "string",
                      "description": "The field that is needs to be addressed."
                    },
                    "reason": {
                      "title": "Reason",
                      "type": "string",
                      "description": "The reason behind the field needing attention."
                    }
                  },
                  "description": "A list of fields which require attention",
                  "readOnly": true
                },
                "description": "List of requirements due in order to be onboarded.",
                "readOnly": true
              },
              "instruments": {
                "type": "array",
                "items": {
                  "type": "object"
                },
                "readOnly": true
              },
              "company": {
                "title": "Company",
                "required": [
                  "legal_name",
                  "trading_name",
                  "registered_address",
                  "principal_address",
                  "representatives",
                  "business_registration_number",
                  "business_type",
                  "financial_details"
                ],
                "type": "object",
                "properties": {
                  "legal_name": {
                    "title": "Legal name",
                    "maxLength": 300,
                    "minLength": 2,
                    "type": "string",
                    "description": "The legal name of the sub-entity."
                  },
                  "trading_name": {
                    "title": "Trading name",
                    "maxLength": 300,
                    "minLength": 2,
                    "type": "string",
                    "description": "The trading name of the sub-entity, also referred to as 'doing business as'."
                  },
                  "business_registration_number": {
                    "title": "Employer Identification Number (EIN)",
                    "maxLength": 9,
                    "minLength": 9,
                    "pattern": "^[0-9]{9}$",
                    "type": "string",
                    "description": "Employer Identification Number (EIN)."
                  },
                  "principal_address": {
                    "title": "Principal Address",
                    "required": [
                      "address_line1",
                      "city",
                      "zip",
                      "state",
                      "country"
                    ],
                    "type": "object",
                    "properties": {
                      "address_line1": {
                        "title": "Address line 1",
                        "maxLength": 300,
                        "minLength": 1,
                        "pattern": "\\S",
                        "type": "string",
                        "description": "The first line of the address."
                      },
                      "address_line2": {
                        "title": "Address line 2",
                        "maxLength": 300,
                        "description": "The second line of the address."
                      },
                      "city": {
                        "title": "City",
                        "maxLength": 300,
                        "minLength": 2,
                        "type": "string",
                        "description": "The address city."
                      },
                      "state": {
                        "title": "US State",
                        "enum": [
                          "AL",
                          "AK",
                          "AZ",
                          "AR",
                          "CA",
                          "CO",
                          "CT",
                          "DE",
                          "DC",
                          "FL",
                          "GA",
                          "HI",
                          "ID",
                          "IL",
                          "IN",
                          "IA",
                          "KS",
                          "KY",
                          "LA",
                          "ME",
                          "MD",
                          "MA",
                          "MI",
                          "MN",
                          "MS",
                          "MO",
                          "MT",
                          "NE",
                          "NV",
                          "NH",
                          "NJ",
                          "NM",
                          "NY",
                          "NC",
                          "ND",
                          "OH",
                          "OK",
                          "OR",
                          "PA",
                          "RI",
                          "SC",
                          "SD",
                          "TN",
                          "TX",
                          "UT",
                          "VT",
                          "VA",
                          "WA",
                          "WV",
                          "WI",
                          "WY",
                          "AS",
                          "GU",
                          "MP",
                          "PR",
                          "VI",
                          "UM"
                        ],
                        "type": "string",
                        "description": "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": {
                        "title": "Zip code",
                        "maxLength": 10,
                        "minLength": 5,
                        "pattern": "^\\d{5}(?:[-\\s]\\d{4})?$",
                        "type": "string",
                        "description": "The address zip/postal code."
                      },
                      "country": {
                        "title": "Country",
                        "maxLength": 2,
                        "minLength": 2,
                        "pattern": "[a-zA-Z]{2}",
                        "type": "string",
                        "description": "The country code (iso-3166-1 alpha-2)",
                        "format": "iso-3166-1-alpha-2"
                      }
                    },
                    "description": "The primary location of the company where business is performed."
                  },
                  "registered_address": {
                    "title": "Registered Address",
                    "required": [
                      "address_line1",
                      "city",
                      "zip",
                      "state",
                      "country"
                    ],
                    "type": "object",
                    "properties": {
                      "address_line1": {
                        "title": "Address line 1",
                        "maxLength": 300,
                        "minLength": 1,
                        "pattern": "\\S",
                        "type": "string",
                        "description": "The first line of the address."
                      },
                      "address_line2": {
                        "title": "Address line 2",
                        "maxLength": 300,
                        "description": "The second line of the address."
                      },
                      "city": {
                        "title": "City",
                        "maxLength": 300,
                        "minLength": 2,
                        "type": "string",
                        "description": "The address city."
                      },
                      "state": {
                        "title": "US State",
                        "enum": [
                          "AL",
                          "AK",
                          "AZ",
                          "AR",
                          "CA",
                          "CO",
                          "CT",
                          "DE",
                          "DC",
                          "FL",
                          "GA",
                          "HI",
                          "ID",
                          "IL",
                          "IN",
                          "IA",
                          "KS",
                          "KY",
                          "LA",
                          "ME",
                          "MD",
                          "MA",
                          "MI",
                          "MN",
                          "MS",
                          "MO",
                          "MT",
                          "NE",
                          "NV",
                          "NH",
                          "NJ",
                          "NM",
                          "NY",
                          "NC",
                          "ND",
                          "OH",
                          "OK",
                          "OR",
                          "PA",
                          "RI",
                          "SC",
                          "SD",
                          "TN",
                          "TX",
                          "UT",
                          "VT",
                          "VA",
                          "WA",
                          "WV",
                          "WI",
                          "WY",
                          "AS",
                          "GU",
                          "MP",
                          "PR",
                          "VI",
                          "UM"
                        ],
                        "type": "string",
                        "description": "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": {
                        "title": "Zip code",
                        "maxLength": 10,
                        "minLength": 5,
                        "pattern": "^\\d{5}(?:[-\\s]\\d{4})?$",
                        "type": "string",
                        "description": "The address zip/postal code."
                      },
                      "country": {
                        "title": "Country",
                        "maxLength": 2,
                        "minLength": 2,
                        "pattern": "[a-zA-Z]{2}",
                        "type": "string",
                        "description": "The country code (iso-3166-1 alpha-2)",
                        "format": "iso-3166-1-alpha-2"
                      }
                    },
                    "description": "The registered address of the company."
                  },
                  "representatives": {
                    "title": "Representative List",
                    "maxItems": 5,
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "title": "Representative",
                      "required": [
                        "first_name",
                        "last_name",
                        "address",
                        "date_of_birth",
                        "identification",
                        "roles"
                      ],
                      "type": "object",
                      "properties": {
                        "id": {
                          "maxLength": 30,
                          "minLength": 30,
                          "pattern": "^rep_[a-z0-9]{26}$",
                          "description": "The representative's id."
                        },
                        "first_name": {
                          "title": "First name",
                          "maxLength": 50,
                          "minLength": 2,
                          "type": "string",
                          "description": "The representative's first name."
                        },
                        "middle_name": {
                          "title": "Middle name",
                          "maxLength": 50,
                          "minLength": 2,
                          "type": "string",
                          "description": "The representative's middle name. Required if appears in official docs"
                        },
                        "last_name": {
                          "title": "Last name",
                          "maxLength": 50,
                          "minLength": 2,
                          "type": "string",
                          "description": "The representative's last name."
                        },
                        "identification": {
                          "title": "Individual identification",
                          "required": [
                            "national_id_number"
                          ],
                          "type": "object",
                          "properties": {
                            "national_id_number": {
                              "title": "Social security number (SSN or ITIN) - US Residents Only",
                              "maxLength": 9,
                              "minLength": 9,
                              "pattern": "^\\d{9}$",
                              "description": "Social security number (SSN) or Individual Taxpayer Identification Number (ITIN) for non-US citizens"
                            }
                          },
                          "description": "Information about representatives of this company."
                        },
                        "date_of_birth": {
                          "title": "Date of birth",
                          "required": [
                            "day",
                            "month",
                            "year"
                          ],
                          "type": "object",
                          "properties": {
                            "day": {
                              "maximum": 31,
                              "minimum": 1,
                              "type": "integer",
                              "description": "The calendar day of the month they were born."
                            },
                            "month": {
                              "maximum": 12,
                              "minimum": 1,
                              "type": "integer",
                              "description": "The month of the year they were born."
                            },
                            "year": {
                              "maximum": 2999,
                              "minimum": 1900,
                              "type": "integer",
                              "description": "The year they were born."
                            }
                          },
                          "description": "The date of birth of the person according to the Gregorian calendar."
                        },
                        "phone": {
                          "title": "Phone",
                          "required": [
                            "number"
                          ],
                          "type": "object",
                          "properties": {
                            "number": {
                              "title": "Phone number",
                              "maximum": 9999999999999999,
                              "minimum": 10000000,
                              "maxLength": 16,
                              "minLength": 8,
                              "pattern": "^[1-9][0-9]{7,15}$",
                              "description": "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.)"
                            }
                          },
                          "description": "The phone number of the sub-entity."
                        },
                        "address": {
                          "title": "Address",
                          "required": [
                            "country",
                            "address_line1",
                            "city",
                            "zip"
                          ],
                          "type": "object",
                          "properties": {
                            "address_line1": {
                              "title": "Address line 1",
                              "maxLength": 300,
                              "minLength": 1,
                              "pattern": "\\S",
                              "type": "string",
                              "description": "The first line of the address."
                            },
                            "address_line2": {
                              "title": "Address line 2",
                              "maxLength": 300,
                              "description": "The second line of the address."
                            },
                            "city": {
                              "title": "City",
                              "maxLength": 300,
                              "minLength": 2,
                              "type": "string",
                              "description": "The address city."
                            },
                            "state": {
                              "title": "State",
                              "maxLength": 300,
                              "minLength": 1,
                              "pattern": "\\S",
                              "type": "string",
                              "description": "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": {
                              "title": "Postal code",
                              "maxLength": 16,
                              "minLength": 1,
                              "pattern": "^[a-zA-Z0-9-\\s]+$",
                              "type": "string",
                              "description": "The address zip/postal code."
                            },
                            "country": {
                              "title": "Country",
                              "maxLength": 2,
                              "minLength": 2,
                              "pattern": "[a-zA-Z]{2}",
                              "type": "string",
                              "description": "The country code (iso-3166-1 alpha-2)",
                              "format": "iso-3166-1-alpha-2"
                            }
                          },
                          "description": "The representative's address."
                        },
                        "documents": {
                          "title": "Document",
                          "required": [
                            "identity_verification"
                          ],
                          "type": "object",
                          "properties": {
                            "identity_verification": {
                              "title": "Document",
                              "required": [
                                "type",
                                "front"
                              ],
                              "type": "object",
                              "properties": {
                                "type": {
                                  "title": "Document type",
                                  "enum": [
                                    "passport",
                                    "national_identity_card",
                                    "driving_license",
                                    "citizen_card",
                                    "residence_permit",
                                    "electoral_id"
                                  ],
                                  "type": "string",
                                  "description": "The type of document used for identity verification"
                                },
                                "front": {
                                  "title": "Front",
                                  "maxLength": 31,
                                  "minLength": 31,
                                  "pattern": "^file_[a-z2-7]{26}$",
                                  "type": "string",
                                  "description": "The ID of the front side of the document as represented within Checkout.com systems."
                                },
                                "back": {
                                  "title": "Back",
                                  "maxLength": 31,
                                  "minLength": 31,
                                  "pattern": "^file_[a-z2-7]{26}$",
                                  "type": "string",
                                  "description": "The ID of the back side of the document as represented within Checkout.com systems."
                                }
                              },
                              "description": "The document to use to confirm the individual's identity."
                            }
                          },
                          "description": "A legal document used to verify identity"
                        },
                        "roles": {
                          "title": "Roles within company",
                          "maxItems": 2,
                          "minItems": 1,
                          "uniqueItems": true,
                          "type": "array",
                          "items": {
                            "title": "Representative Role",
                            "enum": [
                              "ubo",
                              "authorised_signatory",
                              "control_person"
                            ],
                            "type": "string",
                            "description": "The representative's roles within the company"
                          },
                          "description": "The individual's roles within the company"
                        }
                      },
                      "description": "Information about representatives of this company."
                    },
                    "description": "Information about representatives of this company."
                  },
                  "business_type": {
                    "title": "Business structure",
                    "enum": [
                      "private_corporation",
                      "publicly_traded_corporation",
                      "government_agency",
                      "individual_or_sole_proprietorship",
                      "limited_liability_corporation",
                      "limited_partnership",
                      "non_profit_entity",
                      "sec_registered_entity",
                      "cftc_registered_entity",
                      "regulated_financial_institution"
                    ],
                    "type": "string",
                    "description": "The legal type of the company"
                  },
                  "financial_details": {
                    "title": "Financial Details",
                    "required": [
                      "annual_processing_volume",
                      "average_transaction_value",
                      "highest_transaction_value",
                      "currency"
                    ],
                    "type": "object",
                    "properties": {
                      "annual_processing_volume": {
                        "title": "Estimated annual processing volume",
                        "minimum": 0,
                        "type": "integer",
                        "description": "The estimated annual processing volume. In minor units without decimals."
                      },
                      "average_transaction_value": {
                        "title": "Average sales price",
                        "minimum": 0,
                        "type": "integer",
                        "description": "The expected average transaction value. In minor units without decimals."
                      },
                      "highest_transaction_value": {
                        "title": "Highest transaction value",
                        "minimum": 0,
                        "type": "integer",
                        "description": "The expected highest transaction value. In minor units without decimals."
                      },
                      "currency": {
                        "title": "Currency",
                        "enum": [
                          "USD"
                        ],
                        "type": "string",
                        "description": "The currency used for the processing details provided."
                      }
                    },
                    "description": "Seller financial questions and supporting documents."
                  },
                  "date_of_incorporation": {
                    "title": "Date of Incorporation",
                    "required": [
                      "month",
                      "year"
                    ],
                    "type": "object",
                    "properties": {
                      "day": {
                        "maximum": 31,
                        "minimum": 1,
                        "type": "integer",
                        "description": "The day of the month the company was incorporated."
                      },
                      "month": {
                        "maximum": 12,
                        "minimum": 1,
                        "type": "integer",
                        "description": "The month the company was incorporated."
                      },
                      "year": {
                        "maximum": 2999,
                        "minimum": 1500,
                        "type": "integer",
                        "description": "The year the company was incorporated."
                      }
                    },
                    "description": "The date the company was incorporated."
                  }
                },
                "description": "Information about the company represented by the sub-entity."
              },
              "documents": {
                "title": "Documents",
                "type": "object",
                "properties": {
                  "company_verification": {
                    "title": "Company Verification",
                    "required": [
                      "type",
                      "front"
                    ],
                    "type": "object",
                    "properties": {
                      "type": {
                        "title": "Document type",
                        "enum": [
                          "incorporation_document",
                          "articles_of_association"
                        ],
                        "type": "string",
                        "description": "The type of document being used for company verification."
                      },
                      "front": {
                        "title": "Front",
                        "maxLength": 31,
                        "minLength": 31,
                        "pattern": "^file_[a-z2-7]{26}$",
                        "type": "string",
                        "description": "The ID of the front side of the document as represented within Checkout.com systems."
                      }
                    },
                    "description": "The document to use to confirm the company's identity."
                  },
                  "tax_verification": {
                    "title": "Tax Verification",
                    "required": [
                      "type",
                      "front"
                    ],
                    "type": "object",
                    "properties": {
                      "type": {
                        "title": "Document type",
                        "enum": [
                          "ein_letter"
                        ],
                        "type": "string",
                        "description": "The type of document used for tax verification"
                      },
                      "front": {
                        "title": "Front",
                        "maxLength": 31,
                        "minLength": 31,
                        "pattern": "^file_[a-z2-7]{26}$",
                        "type": "string",
                        "description": "The ID of the front side of the document as represented within Checkout.com systems."
                      }
                    },
                    "description": "Employer Identification Number document."
                  }
                },
                "description": "The documents used to support the verification of company details."
              }
            }
          }
        ]
      },
      "USCompanyFull3-0": {
        "title": "US Company - Full (3.0)",
        "required": [
          "reference",
          "company",
          "profile",
          "contact_details",
          "documents",
          "processing_details"
        ],
        "type": "object",
        "properties": {
          "reference": {
            "title": "Unique reference",
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "description": "A unique reference you can later use to identify the sub-entity."
          },
          "status": {
            "type": "string",
            "readOnly": true
          },
          "is_draft": {
            "type": "boolean",
            "description": "Specifies whether the sub-entity details are in draft.\n\nMarking a sub-entity as a draft allows sub-entity details to be updated, without triggering due diligence checks.",
            "writeOnly": true
          },
          "profile": {
            "title": "Profile",
            "required": [
              "urls",
              "mccs",
              "default_holding_currency",
              "holding_currencies"
            ],
            "type": "object",
            "properties": {
              "urls": {
                "title": "Website",
                "maxItems": 100,
                "type": "array",
                "items": {
                  "title": "Company website URL",
                  "maxLength": 300,
                  "minLength": 4,
                  "pattern": "^(http|https):\\//\\S{2,293}$",
                  "type": "string",
                  "description": "The URL of the company's website.",
                  "format": "uri"
                },
                "description": "A collection of website URLs the sub-entity accepts payments on."
              },
              "mccs": {
                "title": "Industry",
                "maxItems": 5,
                "minItems": 1,
                "type": "array",
                "items": {
                  "title": "Merchant category code",
                  "pattern": "^[0-9]{4}$",
                  "description": "The merchant category code (4-digit ISO 18245)."
                },
                "description": "Select the categories that most closely describe the business"
              },
              "default_holding_currency": {
                "title": "Main currency",
                "description": "The default holding currency code (iso-4217)",
                "format": "iso-4217"
              },
              "holding_currencies": {
                "title": "Currencies",
                "minItems": 1,
                "type": "array",
                "items": {
                  "title": "Currency",
                  "enum": [
                    "USD"
                  ],
                  "type": "string",
                  "description": "The currency code (iso-4217)"
                },
                "description": "Incoming funds are held in your selected currencies",
                "default": [
                  "USD"
                ]
              }
            },
            "description": "Information about the profile of the sub-entity, primarily regarding the products/services offered."
          },
          "contact_details": {
            "title": "Contact Details",
            "type": "object",
            "properties": {
              "phone": {
                "title": "Phone number",
                "required": [
                  "country_code",
                  "number"
                ],
                "type": "object",
                "properties": {
                  "country_code": {
                    "title": "Country calling code",
                    "enum": [
                      "US"
                    ],
                    "type": "string",
                    "description": "The country code (iso-3166-1 alpha-2) where the phone number is registered"
                  },
                  "number": {
                    "title": "Phone number",
                    "maxLength": 16,
                    "minLength": 10,
                    "pattern": "^[1-9][0-9]{9,16}$",
                    "type": "string",
                    "description": "The phone number without the country calling code"
                  }
                },
                "description": "Phone number"
              },
              "email_addresses": {
                "required": [
                  "primary"
                ],
                "type": "object",
                "properties": {
                  "primary": {
                    "title": "Email",
                    "description": "The main email address for this sub-entity.",
                    "format": "email"
                  }
                },
                "description": "Email addresses for this sub-entity."
              },
              "invitee": {
                "title": "Invitee",
                "type": "object",
                "properties": {
                  "email": {
                    "title": "Email",
                    "description": "The main email address for this sub-entity.",
                    "format": "email"
                  }
                },
                "description": "The details of the user responsible for onboarding the sub-entity."
              }
            },
            "description": "Contact details of this sub-entity."
          },
          "capabilities": {
            "title": "Capabilities",
            "type": "object",
            "description": "The capabilities of the entity.",
            "readOnly": true
          },
          "requirements_due": {
            "title": "Requirements Due",
            "minItems": 0,
            "type": "array",
            "items": {
              "title": "Requirements due entry",
              "type": "object",
              "properties": {
                "field": {
                  "title": "Field",
                  "type": "string",
                  "description": "The field that is needs to be addressed."
                },
                "reason": {
                  "title": "Reason",
                  "type": "string",
                  "description": "The reason behind the field needing attention."
                },
                "message": {
                  "title": "Message",
                  "type": "string",
                  "description": "A more descriptive message."
                }
              },
              "description": "A list of fields which require attention",
              "readOnly": true
            },
            "description": "List of requirements due in order to be onboarded.",
            "readOnly": true
          },
          "company": {
            "title": "Company",
            "required": [
              "legal_name",
              "trading_name",
              "business_registration_number",
              "date_of_incorporation",
              "principal_address",
              "registered_address",
              "representatives",
              "business_type"
            ],
            "type": "object",
            "properties": {
              "legal_name": {
                "title": "Legal name",
                "maxLength": 300,
                "minLength": 2,
                "type": "string",
                "description": "The legal name of the sub-entity."
              },
              "trading_name": {
                "title": "Trading name",
                "maxLength": 300,
                "minLength": 2,
                "type": "string",
                "description": "The trading name of the sub-entity, also referred to as 'doing business as'."
              },
              "business_registration_number": {
                "title": "Employer Identification Number (EIN)",
                "maxLength": 9,
                "minLength": 9,
                "pattern": "^[0-9]{9}$",
                "description": "The sub-entity's Business Registration Number. \n\nThis can be a Commercial Registration number, a Ministry of Commerce certificate number, or an equivalent registration number.\n"
              },
              "date_of_incorporation": {
                "title": "Date of Incorporation",
                "required": [
                  "month",
                  "year"
                ],
                "type": "object",
                "properties": {
                  "day": {
                    "maximum": 31,
                    "minimum": 1,
                    "type": "integer",
                    "description": "The day of the month the company was incorporated."
                  },
                  "month": {
                    "maximum": 12,
                    "minimum": 1,
                    "type": "integer",
                    "description": "The month the company was incorporated."
                  },
                  "year": {
                    "maximum": 2999,
                    "minimum": 1500,
                    "type": "integer",
                    "description": "The year the company was incorporated."
                  }
                },
                "description": "The date the company was incorporated."
              },
              "principal_address": {
                "title": "Principal Address",
                "required": [
                  "address_line1",
                  "city",
                  "zip",
                  "country"
                ],
                "type": "object",
                "properties": {
                  "address_line1": {
                    "title": "Address line 1",
                    "maxLength": 300,
                    "minLength": 1,
                    "pattern": "\\S",
                    "type": "string",
                    "description": "The first line of the address."
                  },
                  "address_line2": {
                    "title": "Address line 2",
                    "maxLength": 300,
                    "description": "The second line of the address."
                  },
                  "city": {
                    "title": "City",
                    "maxLength": 300,
                    "minLength": 2,
                    "type": "string",
                    "description": "The address city."
                  },
                  "state": {
                    "title": "State",
                    "maxLength": 300,
                    "minLength": 1,
                    "pattern": "\\S",
                    "type": "string",
                    "description": "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": {
                    "title": "Postal code",
                    "maxLength": 16,
                    "minLength": 1,
                    "pattern": "^[a-zA-Z0-9-\\s]+$",
                    "type": "string",
                    "description": "The address zip/postal code."
                  },
                  "country": {
                    "title": "Country",
                    "maxLength": 2,
                    "minLength": 2,
                    "pattern": "[a-zA-Z]{2}",
                    "type": "string",
                    "description": "The country code (iso-3166-1 alpha-2)",
                    "format": "iso-3166-1-alpha-2"
                  }
                },
                "description": "The primary location of the company where business is performed."
              },
              "registered_address": {
                "title": "Registered Address",
                "required": [
                  "address_line1",
                  "city",
                  "zip",
                  "state",
                  "country"
                ],
                "type": "object",
                "properties": {
                  "address_line1": {
                    "title": "Address line 1",
                    "maxLength": 300,
                    "minLength": 1,
                    "pattern": "\\S",
                    "type": "string",
                    "description": "The first line of the address."
                  },
                  "address_line2": {
                    "title": "Address line 2",
                    "maxLength": 300,
                    "description": "The second line of the address."
                  },
                  "city": {
                    "title": "City",
                    "maxLength": 300,
                    "minLength": 2,
                    "type": "string",
                    "description": "The address city."
                  },
                  "state": {
                    "title": "US State",
                    "enum": [
                      "AL",
                      "AK",
                      "AZ",
                      "AR",
                      "CA",
                      "CO",
                      "CT",
                      "DE",
                      "DC",
                      "FL",
                      "GA",
                      "HI",
                      "ID",
                      "IL",
                      "IN",
                      "IA",
                      "KS",
                      "KY",
                      "LA",
                      "ME",
                      "MD",
                      "MA",
                      "MI",
                      "MN",
                      "MS",
                      "MO",
                      "MT",
                      "NE",
                      "NV",
                      "NH",
                      "NJ",
                      "NM",
                      "NY",
                      "NC",
                      "ND",
                      "OH",
                      "OK",
                      "OR",
                      "PA",
                      "RI",
                      "SC",
                      "SD",
                      "TN",
                      "TX",
                      "UT",
                      "VT",
                      "VA",
                      "WA",
                      "WV",
                      "WI",
                      "WY",
                      "AS",
                      "GU",
                      "MP",
                      "PR",
                      "VI",
                      "UM"
                    ],
                    "type": "string",
                    "description": "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": {
                    "title": "Zip code",
                    "maxLength": 10,
                    "minLength": 5,
                    "pattern": "^\\d{5}(?:[-\\s]\\d{4})?$",
                    "type": "string",
                    "description": "The address zip/postal code."
                  },
                  "country": {
                    "title": "Country",
                    "maxLength": 2,
                    "minLength": 2,
                    "pattern": "[a-zA-Z]{2}",
                    "type": "string",
                    "description": "The country code (iso-3166-1 alpha-2)",
                    "format": "iso-3166-1-alpha-2"
                  }
                },
                "description": "The registered address of the company."
              },
              "representatives": {
                "title": "Representative List",
                "maxItems": 25,
                "minItems": 1,
                "type": "array",
                "items": {
                  "title": "Representative",
                  "type": "object",
                  "oneOf": [
                    {
                      "title": "Person of Interest",
                      "required": [
                        "individual",
                        "roles"
                      ],
                      "type": "object",
                      "properties": {
                        "id": {
                          "maxLength": 30,
                          "minLength": 30,
                          "pattern": "^rep_[a-z0-9]{26}$",
                          "description": "The representative's id."
                        },
                        "individual": {
                          "title": "Individual",
                          "type": "object",
                          "allOf": [
                            {
                              "title": "Individual",
                              "required": [
                                "first_name",
                                "last_name",
                                "date_of_birth",
                                "place_of_birth",
                                "address"
                              ],
                              "type": "object",
                              "properties": {
                                "first_name": {
                                  "title": "First name",
                                  "maxLength": 50,
                                  "minLength": 2,
                                  "type": "string",
                                  "description": "The representative's first name."
                                },
                                "middle_name": {
                                  "title": "Middle name",
                                  "maxLength": 50,
                                  "minLength": 2,
                                  "type": "string",
                                  "description": "The representative's middle name. Required if appears in official docs"
                                },
                                "last_name": {
                                  "title": "Last name",
                                  "maxLength": 50,
                                  "minLength": 2,
                                  "type": "string",
                                  "description": "The representative's last name."
                                },
                                "date_of_birth": {
                                  "title": "Date of birth",
                                  "required": [
                                    "day",
                                    "month",
                                    "year"
                                  ],
                                  "type": "object",
                                  "properties": {
                                    "day": {
                                      "maximum": 31,
                                      "minimum": 1,
                                      "type": "integer",
                                      "description": "The calendar day of the month they were born."
                                    },
                                    "month": {
                                      "maximum": 12,
                                      "minimum": 1,
                                      "type": "integer",
                                      "description": "The month of the year they were born."
                                    },
                                    "year": {
                                      "maximum": 2999,
                                      "minimum": 1900,
                                      "type": "integer",
                                      "description": "The year they were born."
                                    }
                                  },
                                  "description": "The date of birth of the person according to the Gregorian calendar."
                                },
                                "place_of_birth": {
                                  "title": "Place of Birth",
                                  "required": [
                                    "country"
                                  ],
                                  "properties": {
                                    "country": {
                                      "title": "Country",
                                      "maxLength": 2,
                                      "minLength": 2,
                                      "pattern": "[a-zA-Z]{2}",
                                      "type": "string",
                                      "description": "The country code (iso-3166-1 alpha-2)",
                                      "format": "iso-3166-1-alpha-2"
                                    }
                                  },
                                  "description": "The place of birth of the person."
                                },
                                "national_id_number": {
                                  "title": "Social security number (SSN or ITIN) - US Residents Only",
                                  "maxLength": 9,
                                  "minLength": 9,
                                  "pattern": "^\\d{9}$",
                                  "description": "Social security number (SSN) or Individual Taxpayer Identification Number (ITIN) for non-US citizens"
                                },
                                "email_address": {
                                  "title": "Email",
                                  "description": "The main email address for this sub-entity.",
                                  "format": "email"
                                },
                                "phone": {
                                  "title": "Phone number",
                                  "required": [
                                    "country_code",
                                    "number"
                                  ],
                                  "type": "object",
                                  "properties": {
                                    "country_code": {
                                      "title": "Country calling code",
                                      "enum": [
                                        "AF",
                                        "AL",
                                        "DZ",
                                        "AS",
                                        "AD",
                                        "AO",
                                        "AI",
                                        "AG",
                                        "AR",
                                        "AM",
                                        "AW",
                                        "AU",
                                        "AT",
                                        "AZ",
                                        "BS",
                                        "BH",
                                        "BD",
                                        "BB",
                                        "BY",
                                        "BE",
                                        "BZ",
                                        "BJ",
                                        "BM",
                                        "BT",
                                        "BO",
                                        "BA",
                                        "BW",
                                        "BR",
                                        "BN",
                                        "BG",
                                        "BF",
                                        "BI",
                                        "CV",
                                        "KH",
                                        "CM",
                                        "CA",
                                        "KY",
                                        "CF",
                                        "TD",
                                        "CL",
                                        "CN",
                                        "CO",
                                        "KM",
                                        "CD",
                                        "CG",
                                        "CK",
                                        "CR",
                                        "HR",
                                        "CU",
                                        "CW",
                                        "CY",
                                        "CZ",
                                        "DK",
                                        "DJ",
                                        "DM",
                                        "DO",
                                        "EC",
                                        "EG",
                                        "SV",
                                        "GQ",
                                        "ER",
                                        "EE",
                                        "SZ",
                                        "ET",
                                        "FO",
                                        "FJ",
                                        "FI",
                                        "FR",
                                        "GF",
                                        "PF",
                                        "GA",
                                        "GM",
                                        "GE",
                                        "DE",
                                        "GH",
                                        "GI",
                                        "GR",
                                        "GL",
                                        "GD",
                                        "GP",
                                        "GU",
                                        "GT",
                                        "GG",
                                        "GN",
                                        "GW",
                                        "GY",
                                        "HT",
                                        "HN",
                                        "HK",
                                        "HU",
                                        "IS",
                                        "IN",
                                        "ID",
                                        "IR",
                                        "IQ",
                                        "IE",
                                        "IM",
                                        "IL",
                                        "IT",
                                        "JM",
                                        "JP",
                                        "JE",
                                        "JO",
                                        "KZ",
                                        "KE",
                                        "KI",
                                        "KP",
                                        "KR",
                                        "KW",
                                        "KG",
                                        "LA",
                                        "LV",
                                        "LB",
                                        "LS",
                                        "LR",
                                        "LY",
                                        "LI",
                                        "LT",
                                        "LU",
                                        "MO",
                                        "MG",
                                        "MW",
                                        "MY",
                                        "MV",
                                        "ML",
                                        "MT",
                                        "MH",
                                        "MQ",
                                        "MR",
                                        "MU",
                                        "MX",
                                        "FM",
                                        "MD",
                                        "MC",
                                        "MN",
                                        "ME",
                                        "MS",
                                        "MA",
                                        "MZ",
                                        "MM",
                                        "NA",
                                        "NR",
                                        "NP",
                                        "NL",
                                        "NC",
                                        "NZ",
                                        "NI",
                                        "NE",
                                        "NG",
                                        "NU",
                                        "NF",
                                        "MK",
                                        "MP",
                                        "NO",
                                        "OM",
                                        "PK",
                                        "PW",
                                        "PA",
                                        "PG",
                                        "PY",
                                        "PE",
                                        "PH",
                                        "PL",
                                        "PT",
                                        "PR",
                                        "QA",
                                        "RE",
                                        "RO",
                                        "RU",
                                        "RW",
                                        "BL",
                                        "SH",
                                        "KN",
                                        "LC",
                                        "PM",
                                        "VC",
                                        "WS",
                                        "SM",
                                        "ST",
                                        "SA",
                                        "SN",
                                        "RS",
                                        "SC",
                                        "SL",
                                        "SG",
                                        "BQ",
                                        "SX",
                                        "SK",
                                        "SI",
                                        "SB",
                                        "SO",
                                        "ZA",
                                        "GS",
                                        "SS",
                                        "ES",
                                        "LK",
                                        "SD",
                                        "SR",
                                        "SE",
                                        "CH",
                                        "SY",
                                        "TW",
                                        "TJ",
                                        "TZ",
                                        "TH",
                                        "TL",
                                        "TG",
                                        "TK",
                                        "TO",
                                        "TT",
                                        "TN",
                                        "TR",
                                        "TM",
                                        "TC",
                                        "TV",
                                        "UG",
                                        "UA",
                                        "AE",
                                        "GB",
                                        "US",
                                        "UY",
                                        "UZ",
                                        "VU",
                                        "VA",
                                        "VE",
                                        "VN",
                                        "VG",
                                        "VI",
                                        "WF",
                                        "EH",
                                        "YE",
                                        "ZM",
                                        "ZW"
                                      ],
                                      "type": "string",
                                      "description": "The country code (iso-3166-1 alpha-2) where the phone number is registered"
                                    },
                                    "number": {
                                      "title": "Phone number",
                                      "maxLength": 16,
                                      "minLength": 5,
                                      "pattern": "^[0-9]{5,16}$",
                                      "type": "string",
                                      "description": "The phone number without the country calling code"
                                    }
                                  },
                                  "description": "Phone number"
                                },
                                "address": {
                                  "title": "Address",
                                  "required": [
                                    "address_line1",
                                    "city",
                                    "zip",
                                    "country"
                                  ],
                                  "type": "object",
                                  "properties": {
                                    "address_line1": {
                                      "title": "Address line 1",
                                      "maxLength": 300,
                                      "minLength": 1,
                                      "pattern": "\\S",
                                      "type": "string",
                                      "description": "The first line of the address."
                                    },
                                    "address_line2": {
                                      "title": "Address line 2",
                                      "maxLength": 300,
                                      "description": "The second line of the address."
                                    },
                                    "city": {
                                      "title": "City",
                                      "maxLength": 300,
                                      "minLength": 2,
                                      "type": "string",
                                      "description": "The address city."
                                    },
                                    "state": {
                                      "title": "State",
                                      "maxLength": 300,
                                      "minLength": 1,
                                      "pattern": "\\S",
                                      "type": "string",
                                      "description": "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": {
                                      "title": "Postal code",
                                      "maxLength": 16,
                                      "minLength": 1,
                                      "pattern": "^[a-zA-Z0-9-\\s]+$",
                                      "type": "string",
                                      "description": "The address zip/postal code."
                                    },
                                    "country": {
                                      "title": "Country",
                                      "maxLength": 2,
                                      "minLength": 2,
                                      "pattern": "[a-zA-Z]{2}",
                                      "type": "string",
                                      "description": "The country code (iso-3166-1 alpha-2)",
                                      "format": "iso-3166-1-alpha-2"
                                    }
                                  },
                                  "description": "The representative's address."
                                }
                              },
                              "description": "Information about the individual representing the sub-entity."
                            }
                          ],
                          "description": "Information about the individual representing the sub-entity."
                        },
                        "company_position": {
                          "title": "Position within Company",
                          "enum": [
                            "ceo",
                            "cfo",
                            "coo",
                            "managing_member",
                            "general_partner",
                            "president",
                            "vice_president",
                            "treasurer",
                            "other_senior_management",
                            "other_executive_officer",
                            "other_non_executive_non_senior"
                          ],
                          "type": "string",
                          "description": "The position of the representative within the company."
                        },
                        "roles": {
                          "title": "Roles within company",
                          "maxItems": 10,
                          "minItems": 1,
                          "uniqueItems": true,
                          "type": "array",
                          "items": {
                            "title": "Representative Role",
                            "enum": [
                              "ubo",
                              "authorised_signatory",
                              "control_person"
                            ],
                            "type": "string",
                            "description": "The representative's role"
                          },
                          "description": "The individual's roles within the company"
                        },
                        "ownership_percentage": {
                          "title": "Percentage of Ownership",
                          "maximum": 100,
                          "minimum": 25,
                          "type": "integer",
                          "description": "The percentage ownership of the UBO or controlling company (required when over 25%)"
                        },
                        "documents": {
                          "title": "Documents",
                          "type": "object",
                          "properties": {
                            "identity_verification": {
                              "title": "Document",
                              "required": [
                                "type",
                                "front"
                              ],
                              "type": "object",
                              "properties": {
                                "type": {
                                  "title": "Document type",
                                  "enum": [
                                    "passport",
                                    "national_identity_card",
                                    "driving_license",
                                    "citizen_card",
                                    "residence_permit",
                                    "electoral_id"
                                  ],
                                  "type": "string",
                                  "description": "The type of document used for identity verification"
                                },
                                "front": {
                                  "title": "Front",
                                  "maxLength": 31,
                                  "minLength": 31,
                                  "pattern": "^file_[a-z2-7]{26}$",
                                  "type": "string",
                                  "description": "The ID of the front side of the document as represented within Checkout.com systems."
                                },
                                "back": {
                                  "title": "Back",
                                  "maxLength": 31,
                                  "minLength": 31,
                                  "pattern": "^file_[a-z2-7]{26}$",
                                  "type": "string",
                                  "description": "The ID of the back side of the document as represented within Checkout.com systems."
                                }
                              },
                              "description": "The document to use to confirm the individual's identity."
                            },
                            "certified_authorised_signatory": {
                              "title": "Certified Authorised Signatory Document",
                              "required": [
                                "type",
                                "front"
                              ],
                              "type": "object",
                              "properties": {
                                "type": {
                                  "title": "Document type",
                                  "enum": [
                                    "power_of_attorney"
                                  ],
                                  "type": "string",
                                  "description": "The type of document."
                                },
                                "front": {
                                  "title": "Front",
                                  "maxLength": 31,
                                  "minLength": 31,
                                  "pattern": "^file_[a-z2-7]{26}$",
                                  "type": "string",
                                  "description": "The ID of the front side of the document as represented within Checkout.com systems."
                                }
                              },
                              "description": "Required when the legal representative or other role owner is not registered on certificate of incorporation"
                            }
                          },
                          "additionalProperties": false,
                          "description": "Verification documents for the individual representative"
                        }
                      },
                      "description": "Personal information about the individual representing the sub-entity."
                    }
                  ]
                },
                "description": "Information about representatives of this company."
              },
              "business_type": {
                "title": "Business type",
                "enum": [
                  "individual_or_sole_proprietorship",
                  "private_corporation",
                  "limited_liability_corporation",
                  "publicly_traded_corporation",
                  "limited_partnership",
                  "non_profit_entity",
                  "government_agency",
                  "regulated_financial_institution",
                  "sec_registered_entity",
                  "cftc_registered_entity"
                ],
                "type": "string",
                "description": "The legal type of the company"
              }
            },
            "description": "Information about the company represented by the sub-entity."
          },
          "processing_details": {
            "type": "object",
            "allOf": [
              {
                "title": "Processing Details",
                "required": [
                  "settlement_country",
                  "target_countries",
                  "annual_processing_volume",
                  "average_transaction_value",
                  "highest_transaction_value",
                  "currency"
                ],
                "type": "object",
                "properties": {
                  "settlement_country": {
                    "title": "Destination of funds",
                    "maxLength": 2,
                    "minLength": 2,
                    "pattern": "[a-zA-Z]{2}",
                    "type": "string",
                    "description": "The country code (iso-3166-1 alpha-2) where the settlement bank account is located",
                    "format": "iso-3166-1-alpha-2"
                  },
                  "target_countries": {
                    "title": "Target countries",
                    "maxItems": 10,
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "title": "Country",
                      "maxLength": 2,
                      "minLength": 2,
                      "pattern": "[a-zA-Z]{2}",
                      "type": "string",
                      "description": "The country code (iso-3166-1 alpha-2)",
                      "format": "iso-3166-1-alpha-2"
                    },
                    "description": "Target country codes (iso-3166-1 alpha-2) with more than 10% expected volume processing with Checkout"
                  },
                  "annual_processing_volume": {
                    "title": "Estimated annual processing volume",
                    "minimum": 0,
                    "type": "integer",
                    "description": "The estimated annual processing volume. In minor units without decimals."
                  },
                  "average_transaction_value": {
                    "title": "Average sales price",
                    "minimum": 0,
                    "type": "integer",
                    "description": "The expected average transaction value. In minor units without decimals."
                  },
                  "highest_transaction_value": {
                    "title": "Highest transaction value",
                    "minimum": 0,
                    "type": "integer",
                    "description": "The expected highest transaction value. In minor units without decimals."
                  },
                  "currency": {
                    "title": "Currency",
                    "enum": [
                      "USD"
                    ],
                    "type": "string",
                    "description": "The currency used for the processing details provided."
                  }
                },
                "description": "Seller processing details."
              }
            ]
          },
          "documents": {
            "title": "Documents",
            "type": "object",
            "properties": {
              "tax_verification": {
                "title": "Tax Verification",
                "required": [
                  "type",
                  "front"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Document type",
                    "enum": [
                      "ein_letter"
                    ],
                    "type": "string",
                    "description": "The type of document used for tax verification"
                  },
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document as represented within Checkout.com systems."
                  }
                },
                "description": "Employer Identification Number document."
              },
              "company_verification": {
                "title": "Company Verification",
                "required": [
                  "type",
                  "front"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Document type",
                    "enum": [
                      "incorporation_document"
                    ],
                    "type": "string",
                    "description": "The type of document used for company verification"
                  },
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document as represented within Checkout.com systems."
                  }
                },
                "description": "Certified by a power of attorney within the last 3 months"
              },
              "articles_of_association": {
                "title": "Memorandum or Articles of Association",
                "required": [
                  "type",
                  "front"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Document type",
                    "enum": [
                      "memorandum_of_association",
                      "articles_of_association"
                    ],
                    "type": "string",
                    "description": "The type of document used for company verification"
                  },
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document as represented within Checkout.com systems."
                  }
                },
                "description": "Memorandum or Articles of Association document"
              },
              "bank_verification": {
                "title": "Bank Verification",
                "required": [
                  "type",
                  "front"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Document type",
                    "enum": [
                      "bank_statement"
                    ],
                    "type": "string",
                    "description": "The type of document being used as bank verification"
                  },
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document as represented within Checkout.com systems."
                  }
                },
                "description": "A document showing transactions from last 3 months"
              },
              "shareholder_structure": {
                "title": "Shareholder Structure",
                "required": [
                  "type",
                  "front"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Document type",
                    "enum": [
                      "certified_shareholder_structure"
                    ],
                    "type": "string",
                    "description": "The type of document."
                  },
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document as represented within Checkout.com systems."
                  }
                },
                "description": "Shareholder structure chart (including % of shares) certified by a competent authority individual and dated within last 3 months"
              },
              "proof_of_legality": {
                "title": "Proof of Legality",
                "required": [
                  "type",
                  "front"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Document type",
                    "enum": [
                      "proof_of_legality"
                    ],
                    "type": "string",
                    "description": "The type of document used for proof of legality"
                  },
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document as represented within Checkout.com systems."
                  }
                },
                "description": "A regulatory licence document required for the company to operate (when applicable)"
              },
              "proof_of_principal_address": {
                "title": "Address Verification",
                "required": [
                  "type",
                  "front"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Document type",
                    "enum": [
                      "proof_of_address"
                    ],
                    "type": "string",
                    "description": "The type of document being used as address verification"
                  },
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document as represented within Checkout.com systems."
                  }
                },
                "description": "Proof of principal place of business"
              },
              "additional_document1": {
                "title": "Additional Documentation",
                "required": [
                  "front"
                ],
                "type": "object",
                "properties": {
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document as represented within Checkout.com systems."
                  }
                },
                "description": "Additional space for documents to be provided when requested"
              },
              "additional_document2": {
                "title": "Additional Documentation",
                "required": [
                  "front"
                ],
                "type": "object",
                "properties": {
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document as represented within Checkout.com systems."
                  }
                },
                "description": "Additional space for documents to be provided when requested"
              },
              "additional_document3": {
                "title": "Additional Documentation",
                "required": [
                  "front"
                ],
                "type": "object",
                "properties": {
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document as represented within Checkout.com systems."
                  }
                },
                "description": "Additional space for documents to be provided when requested"
              }
            },
            "description": "The documents used to support the verification of company details."
          }
        }
      },
      "USCompanyLite2-0": {
        "title": "US Company - Lite (2.0)",
        "required": [
          "reference",
          "company",
          "contact_details",
          "profile"
        ],
        "type": "object",
        "properties": {
          "reference": {
            "title": "Unique reference",
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "description": "A unique reference you can later use to identify the sub-entity."
          },
          "status": {
            "type": "string",
            "readOnly": true
          },
          "is_draft": {
            "type": "boolean",
            "description": "Specifies whether the sub-entity details are in draft.\n\nMarking a sub-entity as a draft allows sub-entity details to be updated, without triggering due diligence checks.",
            "writeOnly": true
          },
          "profile": {
            "title": "Profile",
            "required": [
              "urls",
              "mccs"
            ],
            "type": "object",
            "properties": {
              "urls": {
                "title": "Website",
                "maxItems": 100,
                "type": "array",
                "items": {
                  "title": "Company website URL",
                  "maxLength": 300,
                  "minLength": 4,
                  "pattern": "^(http|https):\\//\\S{2,293}$",
                  "type": "string",
                  "description": "The URL of the company's website.",
                  "format": "uri"
                },
                "description": "A collection of website URLs the sub-entity accepts payments on."
              },
              "mccs": {
                "title": "Industry",
                "maxItems": 5,
                "minItems": 1,
                "type": "array",
                "items": {
                  "title": "Merchant category code",
                  "pattern": "^[0-9]{4}$",
                  "description": "The merchant category code (4-digit ISO 18245)."
                },
                "description": "Select the categories that most closely describe the business"
              }
            },
            "description": "Information about the profile of the sub-entity, primarily regarding the products/services offered."
          },
          "contact_details": {
            "title": "Contact Details",
            "required": [
              "phone",
              "email_addresses"
            ],
            "type": "object",
            "properties": {
              "phone": {
                "title": "Phone",
                "required": [
                  "number"
                ],
                "type": "object",
                "properties": {
                  "number": {
                    "title": "Phone number",
                    "maximum": 9999999999999999,
                    "minimum": 2000000000,
                    "maxLength": 16,
                    "minLength": 10,
                    "pattern": "^[2-9]{1}[0-9]{9,15}$",
                    "description": "Include the area code"
                  }
                }
              },
              "email_addresses": {
                "required": [
                  "primary"
                ],
                "type": "object",
                "properties": {
                  "primary": {
                    "title": "Email",
                    "description": "The main email address for this sub-entity.",
                    "format": "email"
                  }
                }
              },
              "invitee": {
                "title": "Invitee",
                "type": "object",
                "properties": {
                  "email": {
                    "title": "Email",
                    "description": "The main email address for this sub-entity.",
                    "format": "email"
                  }
                }
              }
            }
          },
          "capabilities": {
            "title": "Capabilities",
            "type": "object",
            "description": "The capabilities of the entity.",
            "readOnly": true
          },
          "requirements_due": {
            "title": "Requirements Due",
            "minItems": 0,
            "type": "array",
            "items": {
              "title": "Requirements due entry",
              "type": "object",
              "properties": {
                "field": {
                  "title": "Field",
                  "type": "string",
                  "description": "The field that is needs to be addressed."
                },
                "reason": {
                  "title": "Reason",
                  "type": "string",
                  "description": "The reason behind the field needing attention."
                }
              },
              "description": "A list of fields which require attention",
              "readOnly": true
            },
            "description": "List of requirements due in order to be onboarded.",
            "readOnly": true
          },
          "instruments": {
            "type": "array",
            "items": {
              "type": "object"
            },
            "readOnly": true
          },
          "company": {
            "title": "Company",
            "required": [
              "legal_name",
              "trading_name",
              "registered_address",
              "principal_address",
              "representatives"
            ],
            "type": "object",
            "properties": {
              "legal_name": {
                "title": "Legal name",
                "maxLength": 300,
                "minLength": 2,
                "type": "string",
                "description": "The legal name of the sub-entity."
              },
              "trading_name": {
                "title": "Trading name",
                "maxLength": 300,
                "minLength": 2,
                "type": "string",
                "description": "The trading name of the sub-entity, also referred to as 'doing business as'."
              },
              "business_registration_number": {
                "title": "Employer Identification Number (EIN)",
                "maxLength": 9,
                "minLength": 9,
                "pattern": "^[0-9]{9}$",
                "type": "string",
                "description": "Employer Identification Number (EIN)."
              },
              "principal_address": {
                "title": "Principal Address",
                "required": [
                  "address_line1",
                  "city",
                  "zip",
                  "state",
                  "country"
                ],
                "type": "object",
                "properties": {
                  "address_line1": {
                    "title": "Address line 1",
                    "maxLength": 300,
                    "minLength": 1,
                    "pattern": "\\S",
                    "type": "string",
                    "description": "The first line of the address."
                  },
                  "address_line2": {
                    "title": "Address line 2",
                    "maxLength": 300,
                    "description": "The second line of the address."
                  },
                  "city": {
                    "title": "City",
                    "maxLength": 300,
                    "minLength": 2,
                    "type": "string",
                    "description": "The address city."
                  },
                  "state": {
                    "title": "US State",
                    "enum": [
                      "AL",
                      "AK",
                      "AZ",
                      "AR",
                      "CA",
                      "CO",
                      "CT",
                      "DE",
                      "DC",
                      "FL",
                      "GA",
                      "HI",
                      "ID",
                      "IL",
                      "IN",
                      "IA",
                      "KS",
                      "KY",
                      "LA",
                      "ME",
                      "MD",
                      "MA",
                      "MI",
                      "MN",
                      "MS",
                      "MO",
                      "MT",
                      "NE",
                      "NV",
                      "NH",
                      "NJ",
                      "NM",
                      "NY",
                      "NC",
                      "ND",
                      "OH",
                      "OK",
                      "OR",
                      "PA",
                      "RI",
                      "SC",
                      "SD",
                      "TN",
                      "TX",
                      "UT",
                      "VT",
                      "VA",
                      "WA",
                      "WV",
                      "WI",
                      "WY",
                      "AS",
                      "GU",
                      "MP",
                      "PR",
                      "VI",
                      "UM"
                    ],
                    "type": "string",
                    "description": "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": {
                    "title": "Zip code",
                    "maxLength": 10,
                    "minLength": 5,
                    "pattern": "^\\d{5}(?:[-\\s]\\d{4})?$",
                    "type": "string",
                    "description": "The address zip/postal code."
                  },
                  "country": {
                    "title": "Country",
                    "maxLength": 2,
                    "minLength": 2,
                    "pattern": "[a-zA-Z]{2}",
                    "type": "string",
                    "description": "The country code (iso-3166-1 alpha-2)",
                    "format": "iso-3166-1-alpha-2"
                  }
                },
                "description": "The primary location of the company where business is performed."
              },
              "registered_address": {
                "title": "Registered Address",
                "required": [
                  "address_line1",
                  "city",
                  "zip",
                  "state",
                  "country"
                ],
                "type": "object",
                "properties": {
                  "address_line1": {
                    "title": "Address line 1",
                    "maxLength": 300,
                    "minLength": 1,
                    "pattern": "\\S",
                    "type": "string",
                    "description": "The first line of the address."
                  },
                  "address_line2": {
                    "title": "Address line 2",
                    "maxLength": 300,
                    "description": "The second line of the address."
                  },
                  "city": {
                    "title": "City",
                    "maxLength": 300,
                    "minLength": 2,
                    "type": "string",
                    "description": "The address city."
                  },
                  "state": {
                    "title": "US State",
                    "enum": [
                      "AL",
                      "AK",
                      "AZ",
                      "AR",
                      "CA",
                      "CO",
                      "CT",
                      "DE",
                      "DC",
                      "FL",
                      "GA",
                      "HI",
                      "ID",
                      "IL",
                      "IN",
                      "IA",
                      "KS",
                      "KY",
                      "LA",
                      "ME",
                      "MD",
                      "MA",
                      "MI",
                      "MN",
                      "MS",
                      "MO",
                      "MT",
                      "NE",
                      "NV",
                      "NH",
                      "NJ",
                      "NM",
                      "NY",
                      "NC",
                      "ND",
                      "OH",
                      "OK",
                      "OR",
                      "PA",
                      "RI",
                      "SC",
                      "SD",
                      "TN",
                      "TX",
                      "UT",
                      "VT",
                      "VA",
                      "WA",
                      "WV",
                      "WI",
                      "WY",
                      "AS",
                      "GU",
                      "MP",
                      "PR",
                      "VI",
                      "UM"
                    ],
                    "type": "string",
                    "description": "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": {
                    "title": "Zip code",
                    "maxLength": 10,
                    "minLength": 5,
                    "pattern": "^\\d{5}(?:[-\\s]\\d{4})?$",
                    "type": "string",
                    "description": "The address zip/postal code."
                  },
                  "country": {
                    "title": "Country",
                    "maxLength": 2,
                    "minLength": 2,
                    "pattern": "[a-zA-Z]{2}",
                    "type": "string",
                    "description": "The country code (iso-3166-1 alpha-2)",
                    "format": "iso-3166-1-alpha-2"
                  }
                },
                "description": "The registered address of the company."
              },
              "representatives": {
                "title": "Representative List",
                "maxItems": 5,
                "minItems": 1,
                "type": "array",
                "items": {
                  "title": "Representative",
                  "required": [
                    "first_name",
                    "last_name",
                    "address"
                  ],
                  "type": "object",
                  "properties": {
                    "first_name": {
                      "title": "First name",
                      "maxLength": 50,
                      "minLength": 2,
                      "type": "string",
                      "description": "The representative's first name."
                    },
                    "middle_name": {
                      "title": "Middle name",
                      "maxLength": 50,
                      "minLength": 2,
                      "type": "string",
                      "description": "The representative's middle name. Required if appears in official docs"
                    },
                    "last_name": {
                      "title": "Last name",
                      "maxLength": 50,
                      "minLength": 2,
                      "type": "string",
                      "description": "The representative's last name."
                    },
                    "identification": {
                      "title": "Individual identification",
                      "required": [
                        "national_id_number"
                      ],
                      "type": "object",
                      "properties": {
                        "national_id_number": {
                          "title": "Social security number (SSN or ITIN) - US Residents Only",
                          "maxLength": 9,
                          "minLength": 9,
                          "pattern": "^\\d{9}$",
                          "description": "Social security number (SSN) or Individual Taxpayer Identification Number (ITIN) for non-US citizens"
                        }
                      },
                      "description": "Information about representatives of this company."
                    },
                    "date_of_birth": {
                      "title": "Date of birth",
                      "required": [
                        "day",
                        "month",
                        "year"
                      ],
                      "type": "object",
                      "properties": {
                        "day": {
                          "maximum": 31,
                          "minimum": 1,
                          "type": "integer",
                          "description": "The calendar day of the month they were born."
                        },
                        "month": {
                          "maximum": 12,
                          "minimum": 1,
                          "type": "integer",
                          "description": "The month of the year they were born."
                        },
                        "year": {
                          "maximum": 2999,
                          "minimum": 1900,
                          "type": "integer",
                          "description": "The year they were born."
                        }
                      },
                      "description": "The date of birth of the person according to the Gregorian calendar."
                    },
                    "phone": {
                      "title": "Phone",
                      "required": [
                        "number"
                      ],
                      "type": "object",
                      "properties": {
                        "number": {
                          "title": "Phone number",
                          "maximum": 9999999999999999,
                          "minimum": 10000000,
                          "maxLength": 16,
                          "minLength": 8,
                          "pattern": "^[1-9][0-9]{7,15}$",
                          "description": "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.)"
                        }
                      },
                      "description": "The phone number of the sub-entity."
                    },
                    "address": {
                      "title": "Address",
                      "required": [
                        "country"
                      ],
                      "type": "object",
                      "properties": {
                        "address_line1": {
                          "title": "Address line 1",
                          "maxLength": 300,
                          "minLength": 1,
                          "pattern": "\\S",
                          "type": "string",
                          "description": "The first line of the address."
                        },
                        "address_line2": {
                          "title": "Address line 2",
                          "maxLength": 300,
                          "description": "The second line of the address."
                        },
                        "city": {
                          "title": "City",
                          "maxLength": 300,
                          "minLength": 2,
                          "type": "string",
                          "description": "The address city."
                        },
                        "state": {
                          "title": "State",
                          "maxLength": 300,
                          "minLength": 1,
                          "pattern": "\\S",
                          "type": "string",
                          "description": "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": {
                          "title": "Postal code",
                          "maxLength": 16,
                          "minLength": 1,
                          "pattern": "^[a-zA-Z0-9-\\s]+$",
                          "type": "string",
                          "description": "The address zip/postal code."
                        },
                        "country": {
                          "title": "Country",
                          "maxLength": 2,
                          "minLength": 2,
                          "pattern": "[a-zA-Z]{2}",
                          "type": "string",
                          "description": "The country code (iso-3166-1 alpha-2)",
                          "format": "iso-3166-1-alpha-2"
                        }
                      },
                      "description": "The representative's address."
                    },
                    "documents": {
                      "title": "Document",
                      "required": [
                        "identity_verification"
                      ],
                      "type": "object",
                      "properties": {
                        "identity_verification": {
                          "title": "Document",
                          "required": [
                            "type",
                            "front"
                          ],
                          "type": "object",
                          "properties": {
                            "type": {
                              "title": "Document type",
                              "enum": [
                                "passport",
                                "national_identity_card",
                                "driving_license",
                                "citizen_card",
                                "residence_permit",
                                "electoral_id"
                              ],
                              "type": "string",
                              "description": "The type of document used for identity verification"
                            },
                            "front": {
                              "title": "Front",
                              "maxLength": 31,
                              "minLength": 31,
                              "pattern": "^file_[a-z2-7]{26}$",
                              "type": "string",
                              "description": "The ID of the front side of the document as represented within Checkout.com systems."
                            },
                            "back": {
                              "title": "Back",
                              "maxLength": 31,
                              "minLength": 31,
                              "pattern": "^file_[a-z2-7]{26}$",
                              "type": "string",
                              "description": "The ID of the back side of the document as represented within Checkout.com systems."
                            }
                          },
                          "description": "The document to use to confirm the individual's identity."
                        }
                      },
                      "description": "A legal document used to verify identity"
                    },
                    "roles": {
                      "title": "Roles within company",
                      "maxItems": 2,
                      "minItems": 1,
                      "uniqueItems": true,
                      "type": "array",
                      "items": {
                        "title": "Representative Role",
                        "enum": [
                          "ubo",
                          "authorised_signatory",
                          "control_person"
                        ],
                        "type": "string",
                        "description": "The representative's roles within the company"
                      },
                      "description": "The individual's roles within the company"
                    }
                  },
                  "description": "Information about representatives of this company."
                },
                "description": "Information about representatives of this company."
              },
              "business_type": {
                "title": "Business structure",
                "enum": [
                  "private_corporation",
                  "publicly_traded_corporation",
                  "government_agency",
                  "individual_or_sole_proprietorship",
                  "limited_liability_corporation",
                  "limited_partnership",
                  "non_profit_entity",
                  "sec_registered_entity",
                  "cftc_registered_entity",
                  "regulated_financial_institution"
                ],
                "type": "string",
                "description": "The legal type of the company"
              },
              "financial_details": {
                "title": "Financial Details",
                "type": "object",
                "properties": {
                  "annual_processing_volume": {
                    "title": "Estimated annual processing volume",
                    "minimum": 0,
                    "type": "integer",
                    "description": "The estimated annual processing volume. In minor units without decimals."
                  },
                  "average_transaction_value": {
                    "title": "Average sales price",
                    "minimum": 0,
                    "type": "integer",
                    "description": "The expected average transaction value. In minor units without decimals."
                  },
                  "highest_transaction_value": {
                    "title": "Highest transaction value",
                    "minimum": 0,
                    "type": "integer",
                    "description": "The expected highest transaction value. In minor units without decimals."
                  },
                  "currency": {
                    "title": "Currency",
                    "enum": [
                      "USD"
                    ],
                    "type": "string",
                    "description": "The currency used for the processing details provided."
                  }
                },
                "description": "Seller financial questions and supporting documents."
              }
            },
            "description": "Information about the company represented by the sub-entity."
          },
          "documents": {
            "title": "Documents",
            "type": "object",
            "properties": {
              "company_verification": {
                "title": "Company Verification",
                "required": [
                  "type",
                  "front"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Document type",
                    "enum": [
                      "incorporation_document",
                      "articles_of_association"
                    ],
                    "type": "string",
                    "description": "The type of document being used for company verification."
                  },
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document as represented within Checkout.com systems."
                  }
                },
                "description": "The document to use to confirm the company's identity."
              },
              "tax_verification": {
                "title": "Tax Verification",
                "required": [
                  "type",
                  "front"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Document type",
                    "enum": [
                      "ein_letter"
                    ],
                    "type": "string",
                    "description": "The type of document used for tax verification"
                  },
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document as represented within Checkout.com systems."
                  }
                },
                "description": "Employer Identification Number document."
              }
            },
            "description": "The documents used to support the verification of company details."
          }
        }
      },
      "USISVSellerCompany3-0": {
        "title": "US Company (SaaS)",
        "required": [
          "reference",
          "agreed_terms",
          "seller_category",
          "company",
          "profile",
          "contact_details",
          "processing_details"
        ],
        "type": "object",
        "properties": {
          "reference": {
            "title": "Unique reference",
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "description": "A unique reference you can later use to identify the sub-entity. Immutable after creation."
          },
          "status": {
            "type": "string",
            "description": "The current lifecycle state of the sub-entity. Read-only on input. POST always returns Draft.",
            "readOnly": true
          },
          "is_draft": {
            "type": "boolean",
            "description": "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.",
            "writeOnly": true
          },
          "agreed_terms": {
            "title": "Agreed Terms",
            "required": [
              "date",
              "ip_address",
              "name",
              "email",
              "version"
            ],
            "type": "object",
            "properties": {
              "date": {
                "title": "Date agreed",
                "type": "string",
                "description": "Date and time the terms were agreed in RFC 3339 or ISO 8601 format.",
                "format": "date-time",
                "example": "2026-07-02T10:30:00.0000000+00:00"
              },
              "ip_address": {
                "title": "IP address",
                "type": "string",
                "description": "IP address (IPv4 or IPv6) of the person at the time they agreed the terms.",
                "example": "8.8.8.8"
              },
              "name": {
                "title": "Full name",
                "type": "string",
                "description": "First and last name of the person who agreed to the terms.",
                "example": "Toby Arden"
              },
              "email": {
                "title": "Email address",
                "type": "string",
                "description": "Email address of the person who agreed to the terms.",
                "format": "email",
                "example": "toby.arden@example.com"
              },
              "version": {
                "title": "Terms version",
                "type": "string",
                "description": "Identifier of the terms version that was agreed.",
                "example": "cko-platform-terms-1.0.0"
              }
            },
            "description": "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."
          },
          "seller_category": {
            "title": "Seller category",
            "type": "string",
            "description": "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": {
            "title": "Profile",
            "required": [
              "urls",
              "mccs",
              "default_holding_currency",
              "holding_currencies"
            ],
            "type": "object",
            "properties": {
              "urls": {
                "title": "Website",
                "maxItems": 100,
                "type": "array",
                "items": {
                  "title": "Company website URL",
                  "maxLength": 300,
                  "minLength": 4,
                  "pattern": "^(http|https):\\/\\/\\S{2,293}$",
                  "type": "string",
                  "description": "The URL of the company's website.",
                  "format": "uri"
                },
                "description": "The collection of website URLs the sub-entity accepts payments on."
              },
              "mccs": {
                "title": "Industry",
                "maxItems": 5,
                "minItems": 1,
                "type": "array",
                "items": {
                  "title": "Merchant category code",
                  "pattern": "^[0-9]{4}$",
                  "type": "string",
                  "description": "The merchant category code as a four-digit ISO 18245.\n\nReference: [Merchant Category Codes](https://www.checkout.com/docs/developer-resources/codes/merchant-category-codes)."
                },
                "description": "The collection of merchant category codes that most closely describe the business."
              },
              "default_holding_currency": {
                "title": "Main currency",
                "enum": [
                  "USD"
                ],
                "type": "string",
                "description": "The default holding currency's three-letter ISO 4217 code."
              },
              "holding_currencies": {
                "title": "Currencies",
                "minItems": 1,
                "type": "array",
                "items": {
                  "title": "Currency",
                  "enum": [
                    "USD"
                  ],
                  "type": "string",
                  "description": "The three-letter ISO 4217 code of the currency."
                },
                "description": "The collection of currencies in which incoming funds are held.",
                "default": [
                  "USD"
                ]
              }
            },
            "description": "Information about the profile of the sub-entity, primarily regarding the products/services offered."
          },
          "contact_details": {
            "title": "Contact Details",
            "required": [
              "phone",
              "email_addresses"
            ],
            "type": "object",
            "properties": {
              "phone": {
                "title": "Phone number",
                "required": [
                  "country_code",
                  "number"
                ],
                "type": "object",
                "properties": {
                  "country_code": {
                    "title": "Country calling code",
                    "enum": [
                      "US"
                    ],
                    "type": "string",
                    "description": "The two-letter ISO 3166-1 alpha-2 country code where the phone number is registered."
                  },
                  "number": {
                    "title": "Phone number",
                    "maxLength": 16,
                    "minLength": 10,
                    "pattern": "^[1-9][0-9]{9,16}$",
                    "type": "string",
                    "description": "The phone number without the country calling code."
                  }
                },
                "description": "Phone number with country code."
              },
              "email_addresses": {
                "required": [
                  "primary",
                  "pci_compliance_contact"
                ],
                "type": "object",
                "properties": {
                  "primary": {
                    "title": "Email",
                    "type": "string",
                    "description": "The primary email address for this sub-entity.",
                    "format": "email"
                  },
                  "pci_compliance_contact": {
                    "title": "PCI compliance contact",
                    "type": "string",
                    "description": "The email address of the person responsible for PCI compliance at this sub-entity.",
                    "format": "email"
                  }
                },
                "description": "Email addresses for this sub-entity."
              }
            },
            "description": "Contact details of this sub-entity."
          },
          "processing_details": {
            "title": "Processing Details",
            "required": [
              "annual_processing_volume",
              "average_transaction_value",
              "average_order_fulfillment_time",
              "currency",
              "target_countries",
              "payments"
            ],
            "type": "object",
            "properties": {
              "annual_processing_volume": {
                "title": "Estimated annual processing volume",
                "minimum": 0,
                "type": "integer",
                "description": "The estimated annual processing volume in minor units without decimals."
              },
              "average_transaction_value": {
                "title": "Average sales price",
                "minimum": 0,
                "type": "integer",
                "description": "The expected average transaction value in minor units without decimals."
              },
              "average_order_fulfillment_time": {
                "title": "Average order fulfillment time",
                "minimum": 0,
                "type": "integer",
                "description": "The average time in days between accepting payment and fulfilling the order."
              },
              "currency": {
                "title": "Currency",
                "enum": [
                  "USD"
                ],
                "type": "string",
                "description": "The currency used for the processing details provided."
              },
              "target_countries": {
                "title": "Target countries",
                "maxItems": 10,
                "minItems": 1,
                "type": "array",
                "items": {
                  "title": "Country",
                  "maxLength": 2,
                  "minLength": 2,
                  "pattern": "[a-zA-Z]{2}",
                  "type": "string",
                  "description": "The two-letter ISO 3166-1 alpha-2 country code.",
                  "format": "iso-3166-1-alpha-2"
                },
                "description": "The list of two-letter ISO 3166-1 alpha-2 target country codes with more than 10% expected volume processing with Checkout.com."
              },
              "payments": {
                "required": [
                  "ach"
                ],
                "type": "object",
                "properties": {
                  "ach": {
                    "required": [
                      "annual_ach_volume",
                      "average_ach_transaction_size",
                      "estimated_monthly_credit_volume",
                      "average_credit_amount"
                    ],
                    "type": "object",
                    "properties": {
                      "annual_ach_volume": {
                        "title": "Annual ACH volume",
                        "minimum": 0,
                        "type": "integer",
                        "description": "The estimated annual ACH processing volume in minor units without decimals."
                      },
                      "average_ach_transaction_size": {
                        "title": "Average ACH transaction size",
                        "minimum": 0,
                        "type": "integer",
                        "description": "The expected average ACH transaction size in minor units without decimals."
                      },
                      "estimated_monthly_credit_volume": {
                        "title": "Estimated monthly ACH credit volume",
                        "minimum": 0,
                        "type": "integer",
                        "description": "The estimated monthly volume of ACH credit transactions (for example, refunds issued to customers) in minor units without decimals."
                      },
                      "average_credit_amount": {
                        "title": "Average ACH credit amount",
                        "minimum": 0,
                        "type": "integer",
                        "description": "The average value of an ACH credit transaction (for example, a refund) in minor units without decimals."
                      }
                    },
                    "description": "ACH payment processing details."
                  }
                },
                "description": "Payment method-specific processing details."
              }
            },
            "description": "Information about the sub-entity's expected processing."
          },
          "company": {
            "title": "Company",
            "required": [
              "legal_name",
              "trading_name",
              "business_type",
              "business_registration_number",
              "registered_address",
              "principal_address",
              "date_of_incorporation",
              "representatives"
            ],
            "type": "object",
            "properties": {
              "legal_name": {
                "title": "Legal name",
                "maxLength": 300,
                "minLength": 2,
                "type": "string",
                "description": "The legal name of the sub-entity."
              },
              "trading_name": {
                "title": "Trading name",
                "maxLength": 300,
                "minLength": 2,
                "type": "string",
                "description": "The trading name of the sub-entity, also referred to as 'Doing Business As'."
              },
              "additional_trading_names": {
                "title": "Additional trading names",
                "type": "array",
                "items": {
                  "title": "Trading name",
                  "type": "string",
                  "description": "An additional trading name of the entity."
                },
                "description": "The collection of additional trading names for the sub-entity."
              },
              "business_type": {
                "title": "Business type",
                "enum": [
                  "private_corporation",
                  "limited_liability_corporation",
                  "publicly_traded_corporation",
                  "limited_partnership",
                  "non_profit_entity",
                  "government_agency",
                  "regulated_financial_institution",
                  "sec_registered_entity",
                  "cftc_registered_entity"
                ],
                "type": "string",
                "description": "The legal type of the company."
              },
              "business_registration_number": {
                "title": "Employer Identification Number (EIN)",
                "maxLength": 11,
                "minLength": 9,
                "pattern": "^[0-9]{2}-?[0-9]{7}$",
                "type": "string",
                "description": "US Employer Identification Number (EIN). Nine digits, with optional hyphen."
              },
              "date_of_incorporation": {
                "title": "Date of Incorporation",
                "required": [
                  "day",
                  "month",
                  "year"
                ],
                "type": "object",
                "properties": {
                  "day": {
                    "maximum": 31,
                    "minimum": 1,
                    "type": "integer",
                    "description": "The day of the month the company was incorporated."
                  },
                  "month": {
                    "maximum": 12,
                    "minimum": 1,
                    "type": "integer",
                    "description": "The month the company was incorporated."
                  },
                  "year": {
                    "maximum": 2999,
                    "minimum": 1500,
                    "type": "integer",
                    "description": "The year the company was incorporated."
                  }
                },
                "description": "The date the company was incorporated."
              },
              "registered_address": {
                "title": "Registered Address",
                "required": [
                  "address_line1",
                  "city",
                  "state",
                  "zip",
                  "country"
                ],
                "type": "object",
                "properties": {
                  "address_line1": {
                    "title": "Address line 1",
                    "maxLength": 300,
                    "minLength": 1,
                    "pattern": "\\S",
                    "type": "string",
                    "description": "The first line of the address."
                  },
                  "address_line2": {
                    "title": "Address line 2",
                    "maxLength": 300,
                    "type": "string",
                    "description": "The second line of the address."
                  },
                  "city": {
                    "title": "City",
                    "maxLength": 300,
                    "minLength": 2,
                    "type": "string",
                    "description": "The address city."
                  },
                  "state": {
                    "title": "US State",
                    "enum": [
                      "AL",
                      "AK",
                      "AZ",
                      "AR",
                      "CA",
                      "CO",
                      "CT",
                      "DE",
                      "DC",
                      "FL",
                      "GA",
                      "HI",
                      "ID",
                      "IL",
                      "IN",
                      "IA",
                      "KS",
                      "KY",
                      "LA",
                      "ME",
                      "MD",
                      "MA",
                      "MI",
                      "MN",
                      "MS",
                      "MO",
                      "MT",
                      "NE",
                      "NV",
                      "NH",
                      "NJ",
                      "NM",
                      "NY",
                      "NC",
                      "ND",
                      "OH",
                      "OK",
                      "OR",
                      "PA",
                      "RI",
                      "SC",
                      "SD",
                      "TN",
                      "TX",
                      "UT",
                      "VT",
                      "VA",
                      "WA",
                      "WV",
                      "WI",
                      "WY",
                      "AS",
                      "GU",
                      "MP",
                      "PR",
                      "VI",
                      "UM"
                    ],
                    "type": "string",
                    "description": "The address state. Provide the US state as a two-letter ISO 3166-2 code."
                  },
                  "zip": {
                    "title": "ZIP code",
                    "maxLength": 10,
                    "minLength": 5,
                    "pattern": "^\\d{5}(?:[-\\s]\\d{4})?$",
                    "type": "string",
                    "description": "The address ZIP code or post code."
                  },
                  "country": {
                    "title": "Country",
                    "enum": [
                      "US"
                    ],
                    "type": "string",
                    "description": "The two-letter ISO 3166-1 alpha-2 country code.\n\nReference: [Country codes](https://www.checkout.com/docs/developer-resources/codes/country-codes)."
                  }
                },
                "description": "The registered address of the company."
              },
              "principal_address": {
                "title": "Principal Address",
                "required": [
                  "address_line1",
                  "city",
                  "country"
                ],
                "type": "object",
                "properties": {
                  "address_line1": {
                    "title": "Address line 1",
                    "maxLength": 300,
                    "minLength": 1,
                    "pattern": "\\S",
                    "type": "string",
                    "description": "The first line of the address."
                  },
                  "address_line2": {
                    "title": "Address line 2",
                    "maxLength": 300,
                    "type": "string",
                    "description": "The second line of the address."
                  },
                  "city": {
                    "title": "City",
                    "maxLength": 300,
                    "minLength": 2,
                    "type": "string",
                    "description": "The address city."
                  },
                  "state": {
                    "title": "State",
                    "type": "string",
                    "description": "The address state. For US addresses, provide the two-letter ISO 3166-2 code."
                  },
                  "zip": {
                    "title": "ZIP code",
                    "type": "string",
                    "description": "The address ZIP code or post code."
                  },
                  "country": {
                    "title": "Country",
                    "maxLength": 2,
                    "minLength": 2,
                    "pattern": "[a-zA-Z]{2}",
                    "type": "string",
                    "description": "The two-letter ISO 3166-1 alpha-2 country code.\n\nReference: [Country codes](https://www.checkout.com/docs/developer-resources/codes/country-codes).",
                    "format": "iso-3166-1-alpha-2"
                  }
                },
                "description": "The primary location of the company where business is performed."
              },
              "representatives": {
                "title": "Representatives",
                "minItems": 1,
                "type": "array",
                "items": {
                  "required": [
                    "roles",
                    "individual"
                  ],
                  "type": "object",
                  "properties": {
                    "roles": {
                      "title": "Roles within company",
                      "maxItems": 10,
                      "minItems": 1,
                      "uniqueItems": true,
                      "type": "array",
                      "items": {
                        "title": "Representative role",
                        "enum": [
                          "ubo",
                          "authorised_signatory",
                          "control_person"
                        ],
                        "type": "string",
                        "description": "The representative's role."
                      },
                      "description": "The individual's roles within the company."
                    },
                    "ownership_percentage": {
                      "title": "Percentage of Ownership",
                      "maximum": 100,
                      "minimum": 0,
                      "type": "integer",
                      "description": "The percentage ownership of the UBO (required when the representative holds the ubo role)."
                    },
                    "company_position": {
                      "title": "Position within Company",
                      "enum": [
                        "ceo",
                        "cfo",
                        "coo",
                        "managing_member",
                        "general_partner",
                        "president",
                        "vice_president",
                        "treasurer",
                        "other_senior_management",
                        "other_executive_officer",
                        "other_non_executive_non_senior"
                      ],
                      "type": "string",
                      "description": "The position of the representative within the company (required for control_person role)."
                    },
                    "individual": {
                      "title": "Individual",
                      "required": [
                        "first_name",
                        "last_name",
                        "email_address",
                        "date_of_birth",
                        "address",
                        "place_of_birth",
                        "citizenships",
                        "phone",
                        "national_id_type",
                        "national_id_number"
                      ],
                      "type": "object",
                      "properties": {
                        "first_name": {
                          "title": "First name",
                          "maxLength": 50,
                          "minLength": 2,
                          "type": "string",
                          "description": "The representative's first name."
                        },
                        "middle_name": {
                          "title": "Middle name",
                          "maxLength": 50,
                          "minLength": 2,
                          "type": "string",
                          "description": "The representative's middle name. Required if it appears in official documents."
                        },
                        "last_name": {
                          "title": "Last name",
                          "maxLength": 50,
                          "minLength": 2,
                          "type": "string",
                          "description": "The representative's last name."
                        },
                        "email_address": {
                          "title": "Email",
                          "type": "string",
                          "description": "The representative's email address.",
                          "format": "email"
                        },
                        "date_of_birth": {
                          "title": "Date of birth",
                          "required": [
                            "day",
                            "month",
                            "year"
                          ],
                          "type": "object",
                          "properties": {
                            "day": {
                              "maximum": 31,
                              "minimum": 1,
                              "type": "integer",
                              "description": "The calendar day of the month they were born."
                            },
                            "month": {
                              "maximum": 12,
                              "minimum": 1,
                              "type": "integer",
                              "description": "The month of the year they were born."
                            },
                            "year": {
                              "maximum": 2999,
                              "minimum": 1900,
                              "type": "integer",
                              "description": "The year they were born."
                            }
                          },
                          "description": "The person's date of birth according to the Gregorian calendar."
                        },
                        "address": {
                          "title": "Address",
                          "required": [
                            "address_line1",
                            "city",
                            "zip",
                            "country"
                          ],
                          "type": "object",
                          "properties": {
                            "address_line1": {
                              "title": "Address line 1",
                              "maxLength": 300,
                              "minLength": 1,
                              "pattern": "\\S",
                              "type": "string",
                              "description": "The first line of the address."
                            },
                            "address_line2": {
                              "title": "Address line 2",
                              "maxLength": 300,
                              "type": "string",
                              "description": "The second line of the address."
                            },
                            "city": {
                              "title": "City",
                              "maxLength": 300,
                              "minLength": 2,
                              "type": "string",
                              "description": "The address city."
                            },
                            "state": {
                              "title": "State",
                              "maxLength": 300,
                              "minLength": 1,
                              "pattern": "\\S",
                              "type": "string",
                              "description": "The address state. For US addresses, provide the two-letter ISO 3166-2 code."
                            },
                            "zip": {
                              "title": "Postal code",
                              "maxLength": 16,
                              "minLength": 1,
                              "pattern": "^[a-zA-Z0-9-\\s]+$",
                              "type": "string",
                              "description": "The address ZIP code or post code."
                            },
                            "country": {
                              "title": "Country",
                              "maxLength": 2,
                              "minLength": 2,
                              "pattern": "[a-zA-Z]{2}",
                              "type": "string",
                              "description": "The two-letter ISO 3166-1 alpha-2 country code.",
                              "format": "iso-3166-1-alpha-2"
                            }
                          },
                          "description": "The representative's residential address."
                        },
                        "place_of_birth": {
                          "title": "Place of Birth",
                          "required": [
                            "country"
                          ],
                          "type": "object",
                          "properties": {
                            "country": {
                              "title": "Country",
                              "maxLength": 2,
                              "minLength": 2,
                              "pattern": "[a-zA-Z]{2}",
                              "type": "string",
                              "description": "The two-letter ISO 3166-1 alpha-2 country code.",
                              "format": "iso-3166-1-alpha-2"
                            }
                          },
                          "description": "The person's place of birth."
                        },
                        "citizenships": {
                          "title": "Citizenships",
                          "type": "array",
                          "items": {
                            "required": [
                              "country"
                            ],
                            "type": "object",
                            "properties": {
                              "type": {
                                "title": "Type",
                                "type": "string",
                                "description": "The type of citizenship or legal status (e.g. `citizenship`, `residency`)."
                              },
                              "country": {
                                "title": "Country",
                                "maxLength": 2,
                                "minLength": 2,
                                "pattern": "[a-zA-Z]{2}",
                                "type": "string",
                                "description": "The two-letter ISO 3166-1 alpha-2 country code.",
                                "format": "iso-3166-1-alpha-2"
                              }
                            },
                            "description": "A citizenship or legal-status record."
                          },
                          "description": "The list of citizenships or legal statuses for the representative."
                        },
                        "national_id_type": {
                          "title": "Identification number type",
                          "enum": [
                            "ssn",
                            "itin",
                            "passport",
                            "driving_license",
                            "national_id_card",
                            "residence_permit",
                            "other"
                          ],
                          "type": "string",
                          "description": "The classification of the national identification number provided."
                        },
                        "national_id_number": {
                          "title": "National ID number",
                          "maxLength": 16,
                          "minLength": 5,
                          "pattern": "^[a-zA-Z0-9\\-]+$",
                          "type": "string",
                          "description": "When `national_id_type` is `ssn`, provide the SSN (or ITIN). Otherwise, provide the identifier from the chosen document type."
                        },
                        "phone": {
                          "title": "Phone number",
                          "required": [
                            "country_code",
                            "number"
                          ],
                          "type": "object",
                          "properties": {
                            "country_code": {
                              "title": "Country calling code",
                              "maxLength": 2,
                              "minLength": 2,
                              "pattern": "^[a-zA-Z]{2}$",
                              "type": "string",
                              "description": "The two-letter ISO 3166-1 alpha-2 country code where the phone number is registered.",
                              "format": "iso-3166-1-alpha-2"
                            },
                            "number": {
                              "title": "Phone number",
                              "maxLength": 16,
                              "minLength": 5,
                              "pattern": "^[0-9]{5,16}$",
                              "type": "string",
                              "description": "The phone number without the country calling code."
                            }
                          },
                          "description": "The representative's phone number."
                        }
                      },
                      "description": "Personal information about the individual representing the sub-entity."
                    },
                    "documents": {
                      "title": "Documents",
                      "type": "object",
                      "properties": {
                        "identity_verification": {
                          "title": "Identity Document",
                          "required": [
                            "type",
                            "front"
                          ],
                          "type": "object",
                          "properties": {
                            "type": {
                              "title": "Document type",
                              "enum": [
                                "passport",
                                "national_identity_card",
                                "driving_license",
                                "citizen_card",
                                "residence_permit",
                                "electoral_id"
                              ],
                              "type": "string",
                              "description": "The type of document used for identity verification."
                            },
                            "front": {
                              "title": "Front",
                              "maxLength": 31,
                              "minLength": 31,
                              "pattern": "^file_[a-z2-7]{26}$",
                              "type": "string",
                              "description": "The ID of the front side of the document."
                            },
                            "back": {
                              "title": "Back",
                              "maxLength": 31,
                              "minLength": 31,
                              "pattern": "^file_[a-z2-7]{26}$",
                              "type": "string",
                              "description": "The ID of the back side of the document."
                            }
                          },
                          "description": "The document to use to confirm the individual's identity."
                        },
                        "certified_authorised_signatory": {
                          "title": "Certified Authorised Signatory Document",
                          "required": [
                            "type",
                            "front"
                          ],
                          "type": "object",
                          "properties": {
                            "type": {
                              "title": "Document type",
                              "enum": [
                                "power_of_attorney"
                              ],
                              "type": "string",
                              "description": "The type of document."
                            },
                            "front": {
                              "title": "Front",
                              "maxLength": 31,
                              "minLength": 31,
                              "pattern": "^file_[a-z2-7]{26}$",
                              "type": "string",
                              "description": "The ID of the front side of the document."
                            }
                          },
                          "description": "Required for representatives with the `authorised_signatory` role, when the legal representative or other role owner is not registered on the certificate of incorporation."
                        }
                      },
                      "description": "Verification documents for the individual representative."
                    }
                  },
                  "description": "A representative of the sub-entity."
                },
                "description": "The list of the company's representatives."
              }
            },
            "description": "Information about the company represented by the sub-entity."
          },
          "documents": {
            "title": "Documents",
            "type": "object",
            "properties": {
              "tax_verification": {
                "title": "Tax Verification",
                "required": [
                  "type",
                  "front"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Document type",
                    "enum": [
                      "ein_letter"
                    ],
                    "type": "string",
                    "description": "The type of IRS-issued document used for tax verification."
                  },
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document."
                  }
                },
                "description": "IRS-issued document used to verify the entity's tax identification."
              },
              "company_verification": {
                "title": "Company Verification",
                "required": [
                  "type",
                  "front"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Document type",
                    "enum": [
                      "incorporation_document"
                    ],
                    "type": "string",
                    "description": "The type of document used for company verification."
                  },
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document."
                  }
                },
                "description": "Certified by a power of attorney within the last 3 months."
              },
              "articles_of_association": {
                "title": "Memorandum or Articles of Association",
                "required": [
                  "type",
                  "front"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Document type",
                    "enum": [
                      "memorandum_of_association",
                      "articles_of_association"
                    ],
                    "type": "string",
                    "description": "The type of document used."
                  },
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document."
                  }
                },
                "description": "Memorandum or Articles of Association document."
              },
              "shareholder_structure": {
                "title": "Shareholder Structure",
                "required": [
                  "type",
                  "front"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Document type",
                    "enum": [
                      "certified_shareholder_structure"
                    ],
                    "type": "string",
                    "description": "The type of document."
                  },
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document."
                  }
                },
                "description": "Shareholder structure chart including the percentage of shares certified by a competent authority individual and dated within the last 3 months."
              },
              "proof_of_legality": {
                "title": "Proof of Legality",
                "required": [
                  "type",
                  "front"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Document type",
                    "enum": [
                      "proof_of_legality"
                    ],
                    "type": "string",
                    "description": "The type of document used for proof of legality."
                  },
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document."
                  }
                },
                "description": "A regulatory license document required for the company to operate if applicable."
              },
              "proof_of_principal_address": {
                "title": "Address Verification",
                "required": [
                  "type",
                  "front"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Document type",
                    "enum": [
                      "proof_of_address"
                    ],
                    "type": "string",
                    "description": "The type of document used for address verification."
                  },
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document."
                  }
                },
                "description": "Proof of principal place of business."
              },
              "financial_statements": {
                "title": "Financial Statements",
                "required": [
                  "type",
                  "front"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Document type",
                    "enum": [
                      "financial_statements"
                    ],
                    "type": "string",
                    "description": "The type of document."
                  },
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document."
                  }
                },
                "description": "Audited or management-prepared financial statements (when applicable)."
              }
            },
            "description": "Verification documents for the sub-entity."
          }
        },
        "example": {
          "reference": "isv-seller-example001",
          "agreed_terms": {
            "date": "2026-07-02T10:30:00.0000000+00:00",
            "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"
                  }
                }
              }
            ]
          }
        }
      },
      "USISVSellerSoleTrader3-0": {
        "title": "US Sole Trader (SaaS)",
        "required": [
          "reference",
          "agreed_terms",
          "seller_category",
          "company",
          "profile",
          "contact_details",
          "processing_details"
        ],
        "type": "object",
        "properties": {
          "reference": {
            "title": "Unique reference",
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "description": "A unique reference you can later use to identify the sub-entity. Immutable after creation."
          },
          "status": {
            "type": "string",
            "description": "The current lifecycle state of the sub-entity. Read-only on input. POST always returns Draft.",
            "readOnly": true
          },
          "is_draft": {
            "type": "boolean",
            "description": "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.",
            "writeOnly": true
          },
          "agreed_terms": {
            "title": "Agreed Terms",
            "required": [
              "date",
              "ip_address",
              "name",
              "email",
              "version"
            ],
            "type": "object",
            "properties": {
              "date": {
                "title": "Date agreed",
                "type": "string",
                "description": "Date and time the terms were agreed in RFC 3339 or ISO 8601 format.",
                "format": "date-time",
                "example": "2026-07-02T10:30:00.0000000+00:00"
              },
              "ip_address": {
                "title": "IP address",
                "type": "string",
                "description": "IP address (IPv4 or IPv6) of the sole trader at the time they agreed the terms.",
                "example": "8.8.8.8"
              },
              "name": {
                "title": "Full name",
                "type": "string",
                "description": "First and last name of the sole trader who agreed to the terms.",
                "example": "Hannah Bret"
              },
              "email": {
                "title": "Email address",
                "type": "string",
                "description": "Email address of the sole trader who agreed to the terms.",
                "format": "email",
                "example": "hannah.bret@example.com"
              },
              "version": {
                "title": "Terms version",
                "type": "string",
                "description": "Identifier of the terms version that was agreed.",
                "example": "cko-platform-terms-1.0.0"
              }
            },
            "description": "Details of the sole trader who agreed to the terms and conditions, captured as evidence of consent to Checkout.com onboarding."
          },
          "seller_category": {
            "title": "Seller category",
            "type": "string",
            "description": "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": {
            "title": "Profile",
            "required": [
              "urls",
              "mccs",
              "default_holding_currency",
              "holding_currencies"
            ],
            "type": "object",
            "properties": {
              "urls": {
                "title": "Website",
                "maxItems": 100,
                "type": "array",
                "items": {
                  "title": "Company website URL",
                  "maxLength": 300,
                  "minLength": 4,
                  "pattern": "^(http|https):\\/\\/\\S{2,293}$",
                  "type": "string",
                  "description": "The URL of the website the sole trader accepts payments on.",
                  "format": "uri"
                },
                "description": "The collection of website URLs the sub-entity accepts payments on."
              },
              "mccs": {
                "title": "Industry",
                "maxItems": 5,
                "minItems": 1,
                "type": "array",
                "items": {
                  "title": "Merchant category code",
                  "pattern": "^[0-9]{4}$",
                  "type": "string",
                  "description": "The merchant category code as a four-digit ISO 18245.\n\nReference: [Merchant Category Codes](https://www.checkout.com/docs/developer-resources/codes/merchant-category-codes)."
                },
                "description": "The collection of merchant category codes that most closely describe the business."
              },
              "default_holding_currency": {
                "title": "Main currency",
                "enum": [
                  "USD"
                ],
                "type": "string",
                "description": "The default holding currency's three-letter ISO 4217 code."
              },
              "holding_currencies": {
                "title": "Currencies",
                "minItems": 1,
                "type": "array",
                "items": {
                  "title": "Currency",
                  "enum": [
                    "USD"
                  ],
                  "type": "string",
                  "description": "The three-letter ISO 4217 code of the currency."
                },
                "description": "The collection of currencies in which incoming funds are held.",
                "default": [
                  "USD"
                ]
              }
            },
            "description": "Information about the profile of the sub-entity, primarily regarding the products/services offered."
          },
          "contact_details": {
            "title": "Contact Details",
            "required": [
              "phone",
              "email_addresses"
            ],
            "type": "object",
            "properties": {
              "phone": {
                "title": "Phone number",
                "required": [
                  "country_code",
                  "number"
                ],
                "type": "object",
                "properties": {
                  "country_code": {
                    "title": "Country calling code",
                    "enum": [
                      "US"
                    ],
                    "type": "string",
                    "description": "The two-letter ISO 3166-1 alpha-2 country code where the phone number is registered."
                  },
                  "number": {
                    "title": "Phone number",
                    "maxLength": 16,
                    "minLength": 10,
                    "pattern": "^[1-9][0-9]{9,16}$",
                    "type": "string",
                    "description": "The phone number without the country calling code."
                  }
                },
                "description": "Phone number with country code."
              },
              "email_addresses": {
                "required": [
                  "primary",
                  "pci_compliance_contact"
                ],
                "type": "object",
                "properties": {
                  "primary": {
                    "title": "Email",
                    "type": "string",
                    "description": "The main email address for this sub-entity.",
                    "format": "email"
                  },
                  "pci_compliance_contact": {
                    "title": "PCI compliance contact",
                    "type": "string",
                    "description": "The email address of the person responsible for PCI compliance at this sub-entity.",
                    "format": "email"
                  }
                },
                "description": "Email addresses for this sub-entity."
              }
            },
            "description": "Contact details of this sub-entity."
          },
          "processing_details": {
            "title": "Processing Details",
            "required": [
              "annual_processing_volume",
              "average_transaction_value",
              "average_order_fulfillment_time",
              "currency",
              "target_countries",
              "payments"
            ],
            "type": "object",
            "properties": {
              "annual_processing_volume": {
                "title": "Estimated annual processing volume",
                "minimum": 0,
                "type": "integer",
                "description": "The estimated annual processing volume in minor units without decimals."
              },
              "average_transaction_value": {
                "title": "Average sales price",
                "minimum": 0,
                "type": "integer",
                "description": "The expected average transaction value in minor units without decimals."
              },
              "average_order_fulfillment_time": {
                "title": "Average order fulfillment time",
                "minimum": 0,
                "type": "integer",
                "description": "The average time in days between accepting payment and fulfilling the order."
              },
              "currency": {
                "title": "Currency",
                "enum": [
                  "USD"
                ],
                "type": "string",
                "description": "The currency used for the processing details provided."
              },
              "target_countries": {
                "title": "Target countries",
                "maxItems": 10,
                "minItems": 1,
                "type": "array",
                "items": {
                  "title": "Country",
                  "maxLength": 2,
                  "minLength": 2,
                  "pattern": "[a-zA-Z]{2}",
                  "type": "string",
                  "description": "The two-letter ISO 3166-1 alpha-2 country code.",
                  "format": "iso-3166-1-alpha-2"
                },
                "description": "The list of two-letter ISO 3166-1 alpha-2 target country codes with more than 10% expected volume processing with Checkout.com."
              },
              "payments": {
                "required": [
                  "ach"
                ],
                "type": "object",
                "properties": {
                  "ach": {
                    "required": [
                      "annual_ach_volume",
                      "average_ach_transaction_size",
                      "estimated_monthly_credit_volume",
                      "average_credit_amount"
                    ],
                    "type": "object",
                    "properties": {
                      "annual_ach_volume": {
                        "title": "Annual ACH volume",
                        "minimum": 0,
                        "type": "integer",
                        "description": "The estimated annual ACH processing volume in minor units without decimals."
                      },
                      "average_ach_transaction_size": {
                        "title": "Average ACH transaction size",
                        "minimum": 0,
                        "type": "integer",
                        "description": "The expected average ACH transaction size in minor units without decimals."
                      },
                      "estimated_monthly_credit_volume": {
                        "title": "Estimated monthly ACH credit volume",
                        "minimum": 0,
                        "type": "integer",
                        "description": "The estimated monthly volume of ACH credit transactions (for example, refunds issued to customers) in minor units without decimals."
                      },
                      "average_credit_amount": {
                        "title": "Average ACH credit amount",
                        "minimum": 0,
                        "type": "integer",
                        "description": "The average value of an ACH credit transaction (for example, a refund) in minor units without decimals."
                      }
                    },
                    "description": "ACH payment processing details."
                  }
                },
                "description": "Payment method-specific processing details."
              }
            },
            "description": "Information about the sub-entity's processing."
          },
          "company": {
            "title": "Business",
            "required": [
              "trading_name",
              "business_type",
              "is_registered_company",
              "date_of_incorporation",
              "principal_address",
              "representatives"
            ],
            "type": "object",
            "properties": {
              "is_registered_company": {
                "title": "Is a registered company",
                "enum": [
                  false
                ],
                "type": "boolean",
                "description": "Indicates whether the sub-entity is a registered legal entity. Must be `false` for this variant."
              },
              "trading_name": {
                "title": "Trading name",
                "maxLength": 300,
                "minLength": 2,
                "type": "string",
                "description": "The trading name the sole trader uses, also referred to as 'Doing Business As'."
              },
              "additional_trading_names": {
                "title": "Additional trading names",
                "type": "array",
                "items": {
                  "title": "Trading name",
                  "type": "string",
                  "description": "An additional trading name of the sole trader."
                },
                "description": "The collection of additional trading names for the sub-entity."
              },
              "business_type": {
                "title": "Business type",
                "enum": [
                  "individual_or_sole_proprietorship"
                ],
                "type": "string",
                "description": "The legal type of the entity. Must be `individual_or_sole_proprietorship` for this variant."
              },
              "date_of_incorporation": {
                "title": "Date the sole trader started trading",
                "required": [
                  "month",
                  "year",
                  "day"
                ],
                "type": "object",
                "properties": {
                  "day": {
                    "maximum": 31,
                    "minimum": 1,
                    "type": "integer",
                    "description": "The day of the month the sole trader started trading."
                  },
                  "month": {
                    "maximum": 12,
                    "minimum": 1,
                    "type": "integer",
                    "description": "The month the sole trader started trading."
                  },
                  "year": {
                    "maximum": 2999,
                    "minimum": 1500,
                    "type": "integer",
                    "description": "The year the sole trader started trading."
                  }
                },
                "description": "The date the sole trader started trading."
              },
              "principal_address": {
                "title": "Principal Address",
                "required": [
                  "address_line1",
                  "city",
                  "zip",
                  "country"
                ],
                "type": "object",
                "properties": {
                  "address_line1": {
                    "title": "Address line 1",
                    "maxLength": 300,
                    "minLength": 1,
                    "pattern": "\\S",
                    "type": "string",
                    "description": "The first line of the address."
                  },
                  "address_line2": {
                    "title": "Address line 2",
                    "maxLength": 300,
                    "type": "string",
                    "description": "The second line of the address."
                  },
                  "city": {
                    "title": "City",
                    "maxLength": 300,
                    "minLength": 2,
                    "type": "string",
                    "description": "The address city."
                  },
                  "state": {
                    "title": "US State",
                    "enum": [
                      "AL",
                      "AK",
                      "AZ",
                      "AR",
                      "CA",
                      "CO",
                      "CT",
                      "DE",
                      "DC",
                      "FL",
                      "GA",
                      "HI",
                      "ID",
                      "IL",
                      "IN",
                      "IA",
                      "KS",
                      "KY",
                      "LA",
                      "ME",
                      "MD",
                      "MA",
                      "MI",
                      "MN",
                      "MS",
                      "MO",
                      "MT",
                      "NE",
                      "NV",
                      "NH",
                      "NJ",
                      "NM",
                      "NY",
                      "NC",
                      "ND",
                      "OH",
                      "OK",
                      "OR",
                      "PA",
                      "RI",
                      "SC",
                      "SD",
                      "TN",
                      "TX",
                      "UT",
                      "VT",
                      "VA",
                      "WA",
                      "WV",
                      "WI",
                      "WY",
                      "AS",
                      "GU",
                      "MP",
                      "PR",
                      "VI",
                      "UM"
                    ],
                    "type": "string",
                    "description": "The address state. Provide the US state as a two-letter ISO 3166-2 code."
                  },
                  "zip": {
                    "title": "ZIP code",
                    "maxLength": 10,
                    "minLength": 5,
                    "pattern": "^\\d{5}(?:[-\\s]\\d{4})?$",
                    "type": "string",
                    "description": "The address ZIP code or post code."
                  },
                  "country": {
                    "title": "Country",
                    "enum": [
                      "US"
                    ],
                    "type": "string",
                    "description": "The two-letter ISO 3166-1 alpha-2 country code.\n\nReference: [Country codes](https://www.checkout.com/docs/developer-resources/codes/country-codes)."
                  }
                },
                "description": "The primary location where the sole trader performs business."
              },
              "representatives": {
                "title": "Representatives",
                "maxItems": 1,
                "minItems": 1,
                "type": "array",
                "items": {
                  "required": [
                    "roles",
                    "individual"
                  ],
                  "type": "object",
                  "properties": {
                    "roles": {
                      "title": "Roles within company",
                      "maxItems": 1,
                      "minItems": 1,
                      "type": "array",
                      "items": {
                        "enum": [
                          "ubo"
                        ],
                        "type": "string",
                        "description": "Sole traders must use the `ubo` role only."
                      },
                      "description": "The representative's roles. For sole traders, must be `[ubo]` only."
                    },
                    "ownership_percentage": {
                      "title": "Percentage of Ownership",
                      "maximum": 100,
                      "minimum": 0,
                      "type": "integer",
                      "description": "The percentage ownership of the sole trader with the UBO role."
                    },
                    "individual": {
                      "title": "Individual",
                      "required": [
                        "first_name",
                        "last_name",
                        "email_address",
                        "date_of_birth",
                        "address",
                        "place_of_birth",
                        "citizenships",
                        "phone",
                        "national_id_type",
                        "national_id_number"
                      ],
                      "type": "object",
                      "properties": {
                        "first_name": {
                          "title": "First name",
                          "maxLength": 50,
                          "minLength": 2,
                          "type": "string",
                          "description": "The sole trader's first name."
                        },
                        "middle_name": {
                          "title": "Middle name",
                          "maxLength": 50,
                          "minLength": 2,
                          "type": "string",
                          "description": "The sole trader's middle name. Required if it appears in official documents."
                        },
                        "last_name": {
                          "title": "Last name",
                          "maxLength": 50,
                          "minLength": 2,
                          "type": "string",
                          "description": "The sole trader's last name."
                        },
                        "email_address": {
                          "title": "Email",
                          "type": "string",
                          "description": "The sole trader's email address.",
                          "format": "email"
                        },
                        "date_of_birth": {
                          "title": "Date of birth",
                          "required": [
                            "day",
                            "month",
                            "year"
                          ],
                          "type": "object",
                          "properties": {
                            "day": {
                              "maximum": 31,
                              "minimum": 1,
                              "type": "integer",
                              "description": "The calendar day of the month they were born."
                            },
                            "month": {
                              "maximum": 12,
                              "minimum": 1,
                              "type": "integer",
                              "description": "The month of the year they were born."
                            },
                            "year": {
                              "maximum": 2999,
                              "minimum": 1900,
                              "type": "integer",
                              "description": "The year they were born."
                            }
                          },
                          "description": "The person's date of birth according to the Gregorian calendar."
                        },
                        "address": {
                          "title": "Address",
                          "required": [
                            "address_line1",
                            "city",
                            "zip",
                            "country"
                          ],
                          "type": "object",
                          "properties": {
                            "address_line1": {
                              "title": "Address line 1",
                              "maxLength": 300,
                              "minLength": 1,
                              "pattern": "\\S",
                              "type": "string",
                              "description": "The first line of the address."
                            },
                            "address_line2": {
                              "title": "Address line 2",
                              "maxLength": 300,
                              "type": "string",
                              "description": "The second line of the address."
                            },
                            "city": {
                              "title": "City",
                              "maxLength": 300,
                              "minLength": 2,
                              "type": "string",
                              "description": "The address city."
                            },
                            "state": {
                              "title": "State",
                              "maxLength": 300,
                              "minLength": 1,
                              "pattern": "\\S",
                              "type": "string",
                              "description": "The address state. For US addresses, provide the two-letter ISO 3166-2 code."
                            },
                            "zip": {
                              "title": "Postal code",
                              "maxLength": 16,
                              "minLength": 1,
                              "pattern": "^[a-zA-Z0-9-\\s]+$",
                              "type": "string",
                              "description": "The address ZIP code or post code."
                            },
                            "country": {
                              "title": "Country",
                              "maxLength": 2,
                              "minLength": 2,
                              "pattern": "[a-zA-Z]{2}",
                              "type": "string",
                              "description": "The two-letter ISO 3166-1 alpha-2 country code.",
                              "format": "iso-3166-1-alpha-2"
                            }
                          },
                          "description": "The sole trader's residential address."
                        },
                        "place_of_birth": {
                          "title": "Place of Birth",
                          "required": [
                            "country"
                          ],
                          "type": "object",
                          "properties": {
                            "country": {
                              "title": "Country",
                              "maxLength": 2,
                              "minLength": 2,
                              "pattern": "[a-zA-Z]{2}",
                              "type": "string",
                              "description": "The two-letter ISO 3166-1 alpha-2 country code.",
                              "format": "iso-3166-1-alpha-2"
                            }
                          },
                          "description": "The person's place of birth."
                        },
                        "citizenships": {
                          "title": "Citizenships",
                          "type": "array",
                          "items": {
                            "required": [
                              "country"
                            ],
                            "type": "object",
                            "properties": {
                              "type": {
                                "title": "Type",
                                "type": "string",
                                "description": "The type of citizenship or legal status (e.g. `citizenship`, `residency`)."
                              },
                              "country": {
                                "title": "Country",
                                "maxLength": 2,
                                "minLength": 2,
                                "pattern": "[a-zA-Z]{2}",
                                "type": "string",
                                "description": "The two-letter ISO 3166-1 alpha-2 country code.",
                                "format": "iso-3166-1-alpha-2"
                              }
                            },
                            "description": "A citizenship or legal-status record."
                          },
                          "description": "The list of citizenships or legal statuses of the sole trader."
                        },
                        "national_id_type": {
                          "title": "Identification number type",
                          "enum": [
                            "ssn",
                            "itin",
                            "passport",
                            "driving_license",
                            "national_id_card",
                            "residence_permit",
                            "other"
                          ],
                          "type": "string",
                          "description": "The classification of the national identification number provided."
                        },
                        "national_id_number": {
                          "title": "National ID number",
                          "maxLength": 16,
                          "minLength": 5,
                          "pattern": "^[a-zA-Z0-9\\-]+$",
                          "type": "string",
                          "description": "When `national_id_type` is `ssn`, provide the SSN (or ITIN). Otherwise, provide the identifier from the chosen document type."
                        },
                        "phone": {
                          "title": "Phone number",
                          "required": [
                            "country_code",
                            "number"
                          ],
                          "type": "object",
                          "properties": {
                            "country_code": {
                              "title": "Country calling code",
                              "maxLength": 2,
                              "minLength": 2,
                              "pattern": "^[a-zA-Z]{2}$",
                              "type": "string",
                              "description": "The two-letter ISO 3166-1 alpha-2 country code where the phone number is registered.",
                              "format": "iso-3166-1-alpha-2"
                            },
                            "number": {
                              "title": "Phone number",
                              "maxLength": 16,
                              "minLength": 5,
                              "pattern": "^[0-9]{5,16}$",
                              "type": "string",
                              "description": "The phone number without the country calling code."
                            }
                          },
                          "description": "The sole trader's phone number."
                        }
                      },
                      "description": "Personal information about the sole trader."
                    },
                    "documents": {
                      "title": "Documents",
                      "type": "object",
                      "properties": {
                        "identity_verification": {
                          "title": "Identity Document",
                          "required": [
                            "type",
                            "front"
                          ],
                          "type": "object",
                          "properties": {
                            "type": {
                              "title": "Document type",
                              "enum": [
                                "passport",
                                "national_identity_card",
                                "driving_license",
                                "citizen_card",
                                "residence_permit",
                                "electoral_id"
                              ],
                              "type": "string",
                              "description": "The type of document used for identity verification."
                            },
                            "front": {
                              "title": "Front",
                              "maxLength": 31,
                              "minLength": 31,
                              "pattern": "^file_[a-z2-7]{26}$",
                              "type": "string",
                              "description": "The ID of the front side of the document."
                            },
                            "back": {
                              "title": "Back",
                              "maxLength": 31,
                              "minLength": 31,
                              "pattern": "^file_[a-z2-7]{26}$",
                              "type": "string",
                              "description": "The ID of the back side of the document."
                            }
                          },
                          "description": "The document to use to confirm the sole trader's identity."
                        }
                      },
                      "description": "Verification documents for the sole trader."
                    }
                  },
                  "description": "A representative of the sub-entity. For sole traders, this is the individual themselves."
                },
                "description": "The list of representatives for the sub-entity. Sole traders must have exactly one representative — the individual themselves — with roles set to `[ubo]`."
              }
            },
            "description": "Information about the sole trader sub-entity."
          },
          "documents": {
            "title": "Documents",
            "type": "object",
            "properties": {
              "tax_verification": {
                "title": "Tax Verification",
                "required": [
                  "type",
                  "front"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Document type",
                    "enum": [
                      "ein_letter"
                    ],
                    "type": "string",
                    "description": "The type of IRS-issued document used for tax verification."
                  },
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document."
                  }
                },
                "description": "IRS-issued document used to verify the entity's tax identification."
              },
              "company_verification": {
                "title": "Company Verification",
                "required": [
                  "type",
                  "front"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Document type",
                    "enum": [
                      "incorporation_document"
                    ],
                    "type": "string",
                    "description": "The type of document used for company verification."
                  },
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document."
                  }
                },
                "description": "Certified by a power of attorney within the last 3 months."
              },
              "articles_of_association": {
                "title": "Memorandum or Articles of Association",
                "required": [
                  "type",
                  "front"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Document type",
                    "enum": [
                      "memorandum_of_association",
                      "articles_of_association"
                    ],
                    "type": "string",
                    "description": "The type of document used."
                  },
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document."
                  }
                },
                "description": "Memorandum or Articles of Association document."
              },
              "proof_of_legality": {
                "title": "Proof of Legality",
                "required": [
                  "type",
                  "front"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Document type",
                    "enum": [
                      "proof_of_legality"
                    ],
                    "type": "string",
                    "description": "The type of document used for proof of legality."
                  },
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document."
                  }
                },
                "description": "A regulatory license document required for the company to operate if applicable."
              },
              "proof_of_principal_address": {
                "title": "Address Verification",
                "required": [
                  "type",
                  "front"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Document type",
                    "enum": [
                      "proof_of_address"
                    ],
                    "type": "string",
                    "description": "The type of document used for address verification."
                  },
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document."
                  }
                },
                "description": "Proof of principal place of business."
              },
              "financial_statements": {
                "title": "Financial Statements",
                "required": [
                  "type",
                  "front"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Document type",
                    "enum": [
                      "financial_statements"
                    ],
                    "type": "string",
                    "description": "The type of document."
                  },
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document."
                  }
                },
                "description": "Financial statements (when applicable)."
              }
            },
            "description": "Verification documents for the sub-entity."
          }
        },
        "example": {
          "reference": "isv-sole-trader-example001",
          "agreed_terms": {
            "date": "2026-07-02T10:30:00.0000000+00:00",
            "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"
                  }
                }
              }
            ]
          }
        }
      },
      "USSoleTraderFull2-0": {
        "title": "US Sole Trader - Full (2.0)",
        "type": "object",
        "allOf": [
          {
            "title": "Create & Submit US Individual (V2.0)",
            "required": [
              "reference",
              "individual",
              "contact_details",
              "profile"
            ],
            "type": "object",
            "properties": {
              "reference": {
                "title": "Unique reference",
                "maxLength": 50,
                "minLength": 1,
                "type": "string",
                "description": "A unique reference you can later use to identify the sub-entity."
              },
              "status": {
                "type": "string",
                "readOnly": true
              },
              "is_draft": {
                "type": "boolean",
                "description": "Specifies whether the sub-entity details are in draft.\n\nMarking a sub-entity as a draft allows sub-entity details to be updated, without triggering due diligence checks.",
                "writeOnly": true
              },
              "profile": {
                "title": "Profile",
                "required": [
                  "urls",
                  "mccs"
                ],
                "type": "object",
                "properties": {
                  "urls": {
                    "title": "Website",
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "title": "Company website URL",
                      "maxLength": 300,
                      "minLength": 4,
                      "pattern": "^(http|https):\\//\\S{2,293}$",
                      "type": "string",
                      "description": "The URL of the company's website.",
                      "format": "uri"
                    },
                    "description": "A collection of website URLs the sub-entity accepts payments on."
                  },
                  "mccs": {
                    "title": "Industry",
                    "maxItems": 5,
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "title": "Merchant category code",
                      "pattern": "^[0-9]{4}$",
                      "description": "The merchant category code (4-digit ISO 18245)."
                    },
                    "description": "Select the categories that most closely describe the business"
                  },
                  "default_holding_currency": {
                    "title": "Main currency",
                    "description": "The default holding currency code (iso-4217)",
                    "format": "iso-4217"
                  },
                  "holding_currencies": {
                    "title": "Currencies",
                    "items": {
                      "title": "Currency",
                      "enum": [
                        "USD"
                      ],
                      "type": "string",
                      "description": "The currency code (iso-4217)"
                    },
                    "description": "Incoming funds are held in your selected currencies",
                    "default": [
                      "USD"
                    ]
                  }
                },
                "description": "Information about the profile of the sub-entity, primarily regarding the products/services offered."
              },
              "contact_details": {
                "title": "Contact Details",
                "required": [
                  "phone",
                  "email_addresses"
                ],
                "type": "object",
                "properties": {
                  "phone": {
                    "title": "Phone",
                    "required": [
                      "number"
                    ],
                    "type": "object",
                    "properties": {
                      "number": {
                        "title": "Phone number",
                        "maximum": 9999999999999999,
                        "minimum": 2000000000,
                        "maxLength": 16,
                        "minLength": 10,
                        "pattern": "^[2-9]{1}[0-9]{9,15}$",
                        "description": "Include the area code"
                      }
                    }
                  },
                  "email_addresses": {
                    "required": [
                      "primary"
                    ],
                    "type": "object",
                    "properties": {
                      "primary": {
                        "title": "Email",
                        "description": "The main email address for this sub-entity.",
                        "format": "email"
                      }
                    }
                  },
                  "invitee": {
                    "title": "Invitee",
                    "type": "object",
                    "properties": {
                      "email": {
                        "title": "Email",
                        "description": "The main email address for this sub-entity.",
                        "format": "email"
                      }
                    }
                  }
                }
              },
              "capabilities": {
                "title": "Capabilities",
                "type": "object",
                "description": "The capabilities of the entity.",
                "readOnly": true
              },
              "requirements_due": {
                "title": "Requirements Due",
                "minItems": 0,
                "type": "array",
                "items": {
                  "title": "Requirements due entry",
                  "type": "object",
                  "properties": {
                    "field": {
                      "title": "Field",
                      "type": "string",
                      "description": "The field that is needs to be addressed."
                    },
                    "reason": {
                      "title": "Reason",
                      "type": "string",
                      "description": "The reason behind the field needing attention."
                    }
                  },
                  "description": "A list of fields which require attention",
                  "readOnly": true
                },
                "description": "List of requirements due in order to be onboarded.",
                "readOnly": true
              },
              "instruments": {
                "type": "array",
                "items": {
                  "type": "object"
                },
                "readOnly": true
              },
              "documents": {
                "title": "Document",
                "required": [
                  "identity_verification"
                ],
                "type": "object",
                "properties": {
                  "identity_verification": {
                    "title": "Document",
                    "required": [
                      "type",
                      "front"
                    ],
                    "type": "object",
                    "properties": {
                      "type": {
                        "title": "Document type",
                        "enum": [
                          "passport",
                          "national_identity_card",
                          "driving_license",
                          "citizen_card",
                          "residence_permit",
                          "electoral_id"
                        ],
                        "type": "string",
                        "description": "The type of document used for identity verification"
                      },
                      "front": {
                        "title": "Front",
                        "maxLength": 31,
                        "minLength": 31,
                        "pattern": "^file_[a-z2-7]{26}$",
                        "type": "string",
                        "description": "The ID of the front side of the document as represented within Checkout.com systems."
                      },
                      "back": {
                        "title": "Back",
                        "maxLength": 31,
                        "minLength": 31,
                        "pattern": "^file_[a-z2-7]{26}$",
                        "type": "string",
                        "description": "The ID of the back side of the document as represented within Checkout.com systems."
                      }
                    },
                    "description": "The document to use to confirm the individual's identity."
                  }
                },
                "description": "A legal document used to verify identity."
              },
              "individual": {
                "title": "Individual",
                "required": [
                  "first_name",
                  "last_name",
                  "date_of_birth",
                  "registered_address",
                  "trading_name",
                  "identification",
                  "financial_details"
                ],
                "type": "object",
                "properties": {
                  "trading_name": {
                    "title": "Trading name",
                    "maxLength": 300,
                    "minLength": 2,
                    "type": "string",
                    "description": "The trading name of the sub-entity, also referred to as 'doing business as'."
                  },
                  "first_name": {
                    "title": "First name",
                    "maxLength": 50,
                    "minLength": 2,
                    "type": "string",
                    "description": "The representative's first name."
                  },
                  "middle_name": {
                    "title": "Middle name",
                    "maxLength": 50,
                    "minLength": 2,
                    "type": "string",
                    "description": "The representative's middle name. Required if appears in official docs"
                  },
                  "last_name": {
                    "title": "Last name",
                    "maxLength": 50,
                    "minLength": 2,
                    "type": "string",
                    "description": "The representative's last name."
                  },
                  "date_of_birth": {
                    "title": "Date of birth",
                    "required": [
                      "day",
                      "month",
                      "year"
                    ],
                    "type": "object",
                    "properties": {
                      "day": {
                        "maximum": 31,
                        "minimum": 1,
                        "type": "integer",
                        "description": "The calendar day of the month they were born."
                      },
                      "month": {
                        "maximum": 12,
                        "minimum": 1,
                        "type": "integer",
                        "description": "The month of the year they were born."
                      },
                      "year": {
                        "maximum": 2999,
                        "minimum": 1900,
                        "type": "integer",
                        "description": "The year they were born."
                      }
                    },
                    "description": "The date of birth of the person according to the Gregorian calendar."
                  },
                  "registered_address": {
                    "title": "Registered Address",
                    "required": [
                      "address_line1",
                      "city",
                      "zip",
                      "state",
                      "country"
                    ],
                    "type": "object",
                    "properties": {
                      "address_line1": {
                        "title": "Address line 1",
                        "maxLength": 300,
                        "minLength": 1,
                        "pattern": "\\S",
                        "type": "string",
                        "description": "The first line of the address."
                      },
                      "address_line2": {
                        "title": "Address line 2",
                        "maxLength": 300,
                        "description": "The second line of the address."
                      },
                      "city": {
                        "title": "City",
                        "maxLength": 300,
                        "minLength": 2,
                        "type": "string",
                        "description": "The address city."
                      },
                      "state": {
                        "title": "US State",
                        "enum": [
                          "AL",
                          "AK",
                          "AZ",
                          "AR",
                          "CA",
                          "CO",
                          "CT",
                          "DE",
                          "DC",
                          "FL",
                          "GA",
                          "HI",
                          "ID",
                          "IL",
                          "IN",
                          "IA",
                          "KS",
                          "KY",
                          "LA",
                          "ME",
                          "MD",
                          "MA",
                          "MI",
                          "MN",
                          "MS",
                          "MO",
                          "MT",
                          "NE",
                          "NV",
                          "NH",
                          "NJ",
                          "NM",
                          "NY",
                          "NC",
                          "ND",
                          "OH",
                          "OK",
                          "OR",
                          "PA",
                          "RI",
                          "SC",
                          "SD",
                          "TN",
                          "TX",
                          "UT",
                          "VT",
                          "VA",
                          "WA",
                          "WV",
                          "WI",
                          "WY",
                          "AS",
                          "GU",
                          "MP",
                          "PR",
                          "VI",
                          "UM"
                        ],
                        "type": "string",
                        "description": "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": {
                        "title": "Zip code",
                        "maxLength": 10,
                        "minLength": 5,
                        "pattern": "^\\d{5}(?:[-\\s]\\d{4})?$",
                        "type": "string",
                        "description": "The address zip/postal code."
                      },
                      "country": {
                        "title": "Country",
                        "maxLength": 2,
                        "minLength": 2,
                        "pattern": "[a-zA-Z]{2}",
                        "type": "string",
                        "description": "The country code (iso-3166-1 alpha-2)",
                        "format": "iso-3166-1-alpha-2"
                      }
                    },
                    "description": "The registered address of the company."
                  },
                  "identification": {
                    "title": "Individual identification",
                    "required": [
                      "national_id_number"
                    ],
                    "type": "object",
                    "properties": {
                      "national_id_number": {
                        "title": "Social security number (SSN or ITIN) - US Residents Only",
                        "maxLength": 9,
                        "minLength": 9,
                        "pattern": "^\\d{9}$",
                        "description": "Social security number (SSN) or Individual Taxpayer Identification Number (ITIN) for non-US citizens"
                      }
                    },
                    "description": "Information about representatives of this company."
                  },
                  "financial_details": {
                    "title": "Financial Details",
                    "required": [
                      "annual_processing_volume",
                      "average_transaction_value",
                      "highest_transaction_value",
                      "currency"
                    ],
                    "type": "object",
                    "properties": {
                      "annual_processing_volume": {
                        "title": "Estimated annual processing volume",
                        "minimum": 0,
                        "type": "integer",
                        "description": "The estimated annual processing volume. In minor units without decimals."
                      },
                      "average_transaction_value": {
                        "title": "Average sales price",
                        "minimum": 0,
                        "type": "integer",
                        "description": "The expected average transaction value. In minor units without decimals."
                      },
                      "highest_transaction_value": {
                        "title": "Highest transaction value",
                        "minimum": 0,
                        "type": "integer",
                        "description": "The expected highest transaction value. In minor units without decimals."
                      },
                      "currency": {
                        "title": "Currency",
                        "enum": [
                          "USD"
                        ],
                        "type": "string",
                        "description": "The currency used for the processing details provided."
                      }
                    },
                    "description": "Seller financial questions and supporting documents."
                  }
                },
                "description": "Information about the individual represented by the sub-entity."
              }
            }
          }
        ]
      },
      "USSoleTraderFull3-0": {
        "title": "US Sole Trader - Full (3.0)",
        "required": [
          "reference",
          "company",
          "profile",
          "contact_details",
          "documents",
          "processing_details"
        ],
        "type": "object",
        "properties": {
          "reference": {
            "title": "Unique reference",
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "description": "A unique reference you can later use to identify the sub-entity."
          },
          "status": {
            "type": "string",
            "readOnly": true
          },
          "is_draft": {
            "type": "boolean",
            "description": "Specifies whether the sub-entity details are in draft.\n\nMarking a sub-entity as a draft allows sub-entity details to be updated, without triggering due diligence checks.",
            "writeOnly": true
          },
          "profile": {
            "title": "Profile",
            "required": [
              "urls",
              "mccs",
              "default_holding_currency",
              "holding_currencies"
            ],
            "type": "object",
            "properties": {
              "urls": {
                "title": "Website",
                "maxItems": 100,
                "type": "array",
                "items": {
                  "title": "Company website URL",
                  "maxLength": 300,
                  "minLength": 4,
                  "pattern": "^(http|https):\\//\\S{2,293}$",
                  "type": "string",
                  "description": "The URL of the company's website.",
                  "format": "uri"
                },
                "description": "A collection of website URLs the sub-entity accepts payments on."
              },
              "mccs": {
                "title": "Industry",
                "maxItems": 5,
                "minItems": 1,
                "type": "array",
                "items": {
                  "title": "Merchant category code",
                  "pattern": "^[0-9]{4}$",
                  "description": "The merchant category code (4-digit ISO 18245)."
                },
                "description": "Select the categories that most closely describe the business"
              },
              "default_holding_currency": {
                "title": "Main currency",
                "description": "The default holding currency code (iso-4217)",
                "format": "iso-4217"
              },
              "holding_currencies": {
                "title": "Currencies",
                "minItems": 1,
                "type": "array",
                "items": {
                  "title": "Currency",
                  "enum": [
                    "USD"
                  ],
                  "type": "string",
                  "description": "The currency code (iso-4217)"
                },
                "description": "Incoming funds are held in your selected currencies",
                "default": [
                  "USD"
                ]
              }
            },
            "description": "Information about the profile of the sub-entity, primarily regarding the products/services offered."
          },
          "contact_details": {
            "title": "Contact Details",
            "type": "object",
            "properties": {
              "phone": {
                "title": "Phone number",
                "required": [
                  "country_code",
                  "number"
                ],
                "type": "object",
                "properties": {
                  "country_code": {
                    "title": "Country calling code",
                    "enum": [
                      "US"
                    ],
                    "type": "string",
                    "description": "The country code (iso-3166-1 alpha-2) where the phone number is registered"
                  },
                  "number": {
                    "title": "Phone number",
                    "maxLength": 16,
                    "minLength": 10,
                    "pattern": "^[1-9][0-9]{9,16}$",
                    "type": "string",
                    "description": "The phone number without the country calling code"
                  }
                },
                "description": "Phone number"
              },
              "email_addresses": {
                "required": [
                  "primary"
                ],
                "type": "object",
                "properties": {
                  "primary": {
                    "title": "Email",
                    "description": "The main email address for this sub-entity.",
                    "format": "email"
                  }
                },
                "description": "Email addresses for this sub-entity."
              },
              "invitee": {
                "title": "Invitee",
                "type": "object",
                "properties": {
                  "email": {
                    "title": "Email",
                    "description": "The main email address for this sub-entity.",
                    "format": "email"
                  }
                },
                "description": "The details of the user responsible for onboarding the sub-entity."
              }
            },
            "description": "Contact details of this sub-entity."
          },
          "capabilities": {
            "title": "Capabilities",
            "type": "object",
            "description": "The capabilities of the entity.",
            "readOnly": true
          },
          "requirements_due": {
            "title": "Requirements Due",
            "minItems": 0,
            "type": "array",
            "items": {
              "title": "Requirements due entry",
              "type": "object",
              "properties": {
                "field": {
                  "title": "Field",
                  "type": "string",
                  "description": "The field that is needs to be addressed."
                },
                "reason": {
                  "title": "Reason",
                  "type": "string",
                  "description": "The reason behind the field needing attention."
                },
                "message": {
                  "title": "Message",
                  "type": "string",
                  "description": "A more descriptive message."
                }
              },
              "description": "A list of fields which require attention",
              "readOnly": true
            },
            "description": "List of requirements due in order to be onboarded.",
            "readOnly": true
          },
          "company": {
            "title": "Business",
            "required": [
              "trading_name",
              "date_of_incorporation",
              "principal_address",
              "representatives",
              "business_type"
            ],
            "type": "object",
            "properties": {
              "trading_name": {
                "title": "Trading name",
                "maxLength": 300,
                "minLength": 2,
                "type": "string",
                "description": "The trading name of the sub-entity, also referred to as 'doing business as'."
              },
              "date_of_incorporation": {
                "title": "Date of Incorporation",
                "required": [
                  "month",
                  "year"
                ],
                "type": "object",
                "properties": {
                  "day": {
                    "maximum": 31,
                    "minimum": 1,
                    "type": "integer",
                    "description": "The day of the month the company was incorporated."
                  },
                  "month": {
                    "maximum": 12,
                    "minimum": 1,
                    "type": "integer",
                    "description": "The month the company was incorporated."
                  },
                  "year": {
                    "maximum": 2999,
                    "minimum": 1500,
                    "type": "integer",
                    "description": "The year the company was incorporated."
                  }
                },
                "description": "The date the company was incorporated."
              },
              "principal_address": {
                "title": "Principal Address",
                "required": [
                  "address_line1",
                  "city",
                  "zip",
                  "state",
                  "country"
                ],
                "type": "object",
                "properties": {
                  "address_line1": {
                    "title": "Address line 1",
                    "maxLength": 300,
                    "minLength": 1,
                    "pattern": "\\S",
                    "type": "string",
                    "description": "The first line of the address."
                  },
                  "address_line2": {
                    "title": "Address line 2",
                    "maxLength": 300,
                    "description": "The second line of the address."
                  },
                  "city": {
                    "title": "City",
                    "maxLength": 300,
                    "minLength": 2,
                    "type": "string",
                    "description": "The address city."
                  },
                  "state": {
                    "title": "US State",
                    "enum": [
                      "AL",
                      "AK",
                      "AZ",
                      "AR",
                      "CA",
                      "CO",
                      "CT",
                      "DE",
                      "DC",
                      "FL",
                      "GA",
                      "HI",
                      "ID",
                      "IL",
                      "IN",
                      "IA",
                      "KS",
                      "KY",
                      "LA",
                      "ME",
                      "MD",
                      "MA",
                      "MI",
                      "MN",
                      "MS",
                      "MO",
                      "MT",
                      "NE",
                      "NV",
                      "NH",
                      "NJ",
                      "NM",
                      "NY",
                      "NC",
                      "ND",
                      "OH",
                      "OK",
                      "OR",
                      "PA",
                      "RI",
                      "SC",
                      "SD",
                      "TN",
                      "TX",
                      "UT",
                      "VT",
                      "VA",
                      "WA",
                      "WV",
                      "WI",
                      "WY",
                      "AS",
                      "GU",
                      "MP",
                      "PR",
                      "VI",
                      "UM"
                    ],
                    "type": "string",
                    "description": "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": {
                    "title": "Zip code",
                    "maxLength": 10,
                    "minLength": 5,
                    "pattern": "^\\d{5}(?:[-\\s]\\d{4})?$",
                    "type": "string",
                    "description": "The address zip/postal code."
                  },
                  "country": {
                    "title": "Country",
                    "maxLength": 2,
                    "minLength": 2,
                    "pattern": "[a-zA-Z]{2}",
                    "type": "string",
                    "description": "The country code (iso-3166-1 alpha-2)",
                    "format": "iso-3166-1-alpha-2"
                  }
                },
                "description": "The primary location where business is performed."
              },
              "representatives": {
                "title": "Representative List",
                "maxItems": 1,
                "minItems": 1,
                "type": "array",
                "items": {
                  "title": "Person of Interest",
                  "required": [
                    "individual",
                    "roles",
                    "documents"
                  ],
                  "type": "object",
                  "properties": {
                    "id": {
                      "maxLength": 30,
                      "minLength": 30,
                      "pattern": "^rep_[a-z0-9]{26}$",
                      "description": "The representative's id."
                    },
                    "individual": {
                      "title": "Individual",
                      "required": [
                        "first_name",
                        "last_name",
                        "date_of_birth",
                        "place_of_birth",
                        "address"
                      ],
                      "type": "object",
                      "properties": {
                        "first_name": {
                          "title": "First name",
                          "maxLength": 50,
                          "minLength": 2,
                          "type": "string",
                          "description": "The representative's first name."
                        },
                        "middle_name": {
                          "title": "Middle name",
                          "maxLength": 50,
                          "minLength": 2,
                          "type": "string",
                          "description": "The representative's middle name. Required if appears in official docs"
                        },
                        "last_name": {
                          "title": "Last name",
                          "maxLength": 50,
                          "minLength": 2,
                          "type": "string",
                          "description": "The representative's last name."
                        },
                        "date_of_birth": {
                          "title": "Date of birth",
                          "required": [
                            "day",
                            "month",
                            "year"
                          ],
                          "type": "object",
                          "properties": {
                            "day": {
                              "maximum": 31,
                              "minimum": 1,
                              "type": "integer",
                              "description": "The calendar day of the month they were born."
                            },
                            "month": {
                              "maximum": 12,
                              "minimum": 1,
                              "type": "integer",
                              "description": "The month of the year they were born."
                            },
                            "year": {
                              "maximum": 2999,
                              "minimum": 1900,
                              "type": "integer",
                              "description": "The year they were born."
                            }
                          },
                          "description": "The date of birth of the person according to the Gregorian calendar."
                        },
                        "place_of_birth": {
                          "title": "Place of Birth",
                          "required": [
                            "country"
                          ],
                          "properties": {
                            "country": {
                              "title": "Country",
                              "maxLength": 2,
                              "minLength": 2,
                              "pattern": "[a-zA-Z]{2}",
                              "type": "string",
                              "description": "The country code (iso-3166-1 alpha-2)",
                              "format": "iso-3166-1-alpha-2"
                            }
                          },
                          "description": "The place of birth of the person."
                        },
                        "national_id_number": {
                          "title": "Social security number (SSN or ITIN) - US Residents Only",
                          "maxLength": 9,
                          "minLength": 9,
                          "pattern": "^\\d{9}$",
                          "description": "Social security number (SSN) or Individual Taxpayer Identification Number (ITIN) for non-US citizens"
                        },
                        "email_address": {
                          "title": "Email",
                          "description": "The representative's personal email address.",
                          "format": "email"
                        },
                        "phone": {
                          "title": "Phone number",
                          "required": [
                            "country_code",
                            "number"
                          ],
                          "type": "object",
                          "properties": {
                            "country_code": {
                              "title": "Country calling code",
                              "enum": [
                                "AF",
                                "AL",
                                "DZ",
                                "AS",
                                "AD",
                                "AO",
                                "AI",
                                "AG",
                                "AR",
                                "AM",
                                "AW",
                                "AU",
                                "AT",
                                "AZ",
                                "BS",
                                "BH",
                                "BD",
                                "BB",
                                "BY",
                                "BE",
                                "BZ",
                                "BJ",
                                "BM",
                                "BT",
                                "BO",
                                "BA",
                                "BW",
                                "BR",
                                "BN",
                                "BG",
                                "BF",
                                "BI",
                                "CV",
                                "KH",
                                "CM",
                                "CA",
                                "KY",
                                "CF",
                                "TD",
                                "CL",
                                "CN",
                                "CO",
                                "KM",
                                "CD",
                                "CG",
                                "CK",
                                "CR",
                                "HR",
                                "CU",
                                "CW",
                                "CY",
                                "CZ",
                                "DK",
                                "DJ",
                                "DM",
                                "DO",
                                "EC",
                                "EG",
                                "SV",
                                "GQ",
                                "ER",
                                "EE",
                                "SZ",
                                "ET",
                                "FO",
                                "FJ",
                                "FI",
                                "FR",
                                "GF",
                                "PF",
                                "GA",
                                "GM",
                                "GE",
                                "DE",
                                "GH",
                                "GI",
                                "GR",
                                "GL",
                                "GD",
                                "GP",
                                "GU",
                                "GT",
                                "GG",
                                "GN",
                                "GW",
                                "GY",
                                "HT",
                                "HN",
                                "HK",
                                "HU",
                                "IS",
                                "IN",
                                "ID",
                                "IR",
                                "IQ",
                                "IE",
                                "IM",
                                "IL",
                                "IT",
                                "JM",
                                "JP",
                                "JE",
                                "JO",
                                "KZ",
                                "KE",
                                "KI",
                                "KP",
                                "KR",
                                "KW",
                                "KG",
                                "LA",
                                "LV",
                                "LB",
                                "LS",
                                "LR",
                                "LY",
                                "LI",
                                "LT",
                                "LU",
                                "MO",
                                "MG",
                                "MW",
                                "MY",
                                "MV",
                                "ML",
                                "MT",
                                "MH",
                                "MQ",
                                "MR",
                                "MU",
                                "MX",
                                "FM",
                                "MD",
                                "MC",
                                "MN",
                                "ME",
                                "MS",
                                "MA",
                                "MZ",
                                "MM",
                                "NA",
                                "NR",
                                "NP",
                                "NL",
                                "NC",
                                "NZ",
                                "NI",
                                "NE",
                                "NG",
                                "NU",
                                "NF",
                                "MK",
                                "MP",
                                "NO",
                                "OM",
                                "PK",
                                "PW",
                                "PA",
                                "PG",
                                "PY",
                                "PE",
                                "PH",
                                "PL",
                                "PT",
                                "PR",
                                "QA",
                                "RE",
                                "RO",
                                "RU",
                                "RW",
                                "BL",
                                "SH",
                                "KN",
                                "LC",
                                "PM",
                                "VC",
                                "WS",
                                "SM",
                                "ST",
                                "SA",
                                "SN",
                                "RS",
                                "SC",
                                "SL",
                                "SG",
                                "BQ",
                                "SX",
                                "SK",
                                "SI",
                                "SB",
                                "SO",
                                "ZA",
                                "GS",
                                "SS",
                                "ES",
                                "LK",
                                "SD",
                                "SR",
                                "SE",
                                "CH",
                                "SY",
                                "TW",
                                "TJ",
                                "TZ",
                                "TH",
                                "TL",
                                "TG",
                                "TK",
                                "TO",
                                "TT",
                                "TN",
                                "TR",
                                "TM",
                                "TC",
                                "TV",
                                "UG",
                                "UA",
                                "AE",
                                "GB",
                                "US",
                                "UY",
                                "UZ",
                                "VU",
                                "VA",
                                "VE",
                                "VN",
                                "VG",
                                "VI",
                                "WF",
                                "EH",
                                "YE",
                                "ZM",
                                "ZW"
                              ],
                              "type": "string",
                              "description": "The country code (iso-3166-1 alpha-2) where the phone number is registered"
                            },
                            "number": {
                              "title": "Phone number",
                              "maxLength": 16,
                              "minLength": 5,
                              "pattern": "^[0-9]{5,16}$",
                              "type": "string",
                              "description": "The phone number without the country calling code"
                            }
                          },
                          "description": "Phone number"
                        },
                        "address": {
                          "title": "Address",
                          "required": [
                            "address_line1",
                            "city",
                            "zip",
                            "country"
                          ],
                          "type": "object",
                          "properties": {
                            "address_line1": {
                              "title": "Address line 1",
                              "maxLength": 300,
                              "minLength": 1,
                              "pattern": "\\S",
                              "type": "string",
                              "description": "The first line of the address."
                            },
                            "address_line2": {
                              "title": "Address line 2",
                              "maxLength": 300,
                              "description": "The second line of the address."
                            },
                            "city": {
                              "title": "City",
                              "maxLength": 300,
                              "minLength": 2,
                              "type": "string",
                              "description": "The address city."
                            },
                            "state": {
                              "title": "State",
                              "maxLength": 300,
                              "minLength": 1,
                              "pattern": "\\S",
                              "type": "string",
                              "description": "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": {
                              "title": "Postal code",
                              "maxLength": 16,
                              "minLength": 1,
                              "pattern": "^[a-zA-Z0-9-\\s]+$",
                              "type": "string",
                              "description": "The address zip/postal code."
                            },
                            "country": {
                              "title": "Country",
                              "maxLength": 2,
                              "minLength": 2,
                              "pattern": "[a-zA-Z]{2}",
                              "type": "string",
                              "description": "The country code (iso-3166-1 alpha-2)",
                              "format": "iso-3166-1-alpha-2"
                            }
                          },
                          "description": "The representative's address."
                        }
                      },
                      "description": "Information about the individual representing the sub-entity."
                    },
                    "roles": {
                      "title": "Roles within company",
                      "maxItems": 1,
                      "minItems": 1,
                      "uniqueItems": true,
                      "type": "array",
                      "items": {
                        "title": "Representative Role",
                        "enum": [
                          "ubo"
                        ],
                        "type": "string",
                        "description": "The representative's role"
                      },
                      "description": "The individual's roles within the company"
                    },
                    "documents": {
                      "title": "Documents",
                      "required": [
                        "identity_verification"
                      ],
                      "type": "object",
                      "properties": {
                        "identity_verification": {
                          "title": "Document",
                          "required": [
                            "type",
                            "front"
                          ],
                          "type": "object",
                          "properties": {
                            "type": {
                              "title": "Document type",
                              "enum": [
                                "passport",
                                "national_identity_card",
                                "driving_license",
                                "citizen_card",
                                "residence_permit",
                                "electoral_id"
                              ],
                              "type": "string",
                              "description": "The type of document used for identity verification"
                            },
                            "front": {
                              "title": "Front",
                              "maxLength": 31,
                              "minLength": 31,
                              "pattern": "^file_[a-z2-7]{26}$",
                              "type": "string",
                              "description": "The ID of the front side of the document as represented within Checkout.com systems."
                            },
                            "back": {
                              "title": "Back",
                              "maxLength": 31,
                              "minLength": 31,
                              "pattern": "^file_[a-z2-7]{26}$",
                              "type": "string",
                              "description": "The ID of the back side of the document as represented within Checkout.com systems."
                            }
                          },
                          "description": "The document to use to confirm the individual's identity."
                        }
                      },
                      "additionalProperties": false,
                      "description": "Verification documents for the individual representative"
                    }
                  },
                  "description": "Personal information about the individual representing the sub-entity."
                },
                "description": "Information about representatives of this company."
              },
              "business_type": {
                "title": "Business type",
                "enum": [
                  "individual_or_sole_proprietorship",
                  "private_corporation",
                  "limited_liability_corporation",
                  "publicly_traded_corporation",
                  "limited_partnership",
                  "non_profit_entity",
                  "government_agency",
                  "regulated_financial_institution",
                  "sec_registered_entity",
                  "cftc_registered_entity"
                ],
                "type": "string",
                "description": "The legal type of the company"
              }
            },
            "description": "Information about the company represented by the sub-entity."
          },
          "processing_details": {
            "type": "object",
            "allOf": [
              {
                "title": "Processing Details",
                "required": [
                  "settlement_country",
                  "target_countries",
                  "annual_processing_volume",
                  "average_transaction_value",
                  "highest_transaction_value",
                  "currency"
                ],
                "type": "object",
                "properties": {
                  "settlement_country": {
                    "title": "Destination of funds",
                    "maxLength": 2,
                    "minLength": 2,
                    "pattern": "[a-zA-Z]{2}",
                    "type": "string",
                    "description": "The country code (iso-3166-1 alpha-2) where the settlement bank account is located",
                    "format": "iso-3166-1-alpha-2"
                  },
                  "target_countries": {
                    "title": "Target countries",
                    "maxItems": 10,
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "title": "Country",
                      "maxLength": 2,
                      "minLength": 2,
                      "pattern": "[a-zA-Z]{2}",
                      "type": "string",
                      "description": "The country code (iso-3166-1 alpha-2)",
                      "format": "iso-3166-1-alpha-2"
                    },
                    "description": "Target country codes (iso-3166-1 alpha-2) with more than 10% expected volume processing with Checkout"
                  },
                  "annual_processing_volume": {
                    "title": "Estimated annual processing volume",
                    "minimum": 0,
                    "type": "integer",
                    "description": "The estimated annual processing volume. In minor units without decimals."
                  },
                  "average_transaction_value": {
                    "title": "Average sales price",
                    "minimum": 0,
                    "type": "integer",
                    "description": "The expected average transaction value. In minor units without decimals."
                  },
                  "highest_transaction_value": {
                    "title": "Highest transaction value",
                    "minimum": 0,
                    "type": "integer",
                    "description": "The expected highest transaction value. In minor units without decimals."
                  },
                  "currency": {
                    "title": "Currency",
                    "enum": [
                      "USD"
                    ],
                    "type": "string",
                    "description": "The currency used for the processing details provided."
                  }
                },
                "description": "Seller processing details."
              }
            ]
          },
          "documents": {
            "title": "Documents",
            "required": [
              "bank_verification"
            ],
            "type": "object",
            "properties": {
              "bank_verification": {
                "title": "Bank Verification",
                "required": [
                  "type",
                  "front"
                ],
                "type": "object",
                "properties": {
                  "type": {
                    "title": "Document type",
                    "enum": [
                      "bank_statement"
                    ],
                    "type": "string",
                    "description": "The type of document being used as bank verification"
                  },
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document as represented within Checkout.com systems."
                  }
                },
                "description": "A document showing transactions from last 3 months"
              },
              "additional_document1": {
                "title": "Additional Documentation",
                "required": [
                  "front"
                ],
                "type": "object",
                "properties": {
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document as represented within Checkout.com systems."
                  }
                },
                "description": "Additional space for documents to be provided when requested"
              },
              "additional_document2": {
                "title": "Additional Documentation",
                "required": [
                  "front"
                ],
                "type": "object",
                "properties": {
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document as represented within Checkout.com systems."
                  }
                },
                "description": "Additional space for documents to be provided when requested"
              },
              "additional_document3": {
                "title": "Additional Documentation",
                "required": [
                  "front"
                ],
                "type": "object",
                "properties": {
                  "front": {
                    "title": "Front",
                    "maxLength": 31,
                    "minLength": 31,
                    "pattern": "^file_[a-z2-7]{26}$",
                    "type": "string",
                    "description": "The ID of the front side of the document as represented within Checkout.com systems."
                  }
                },
                "description": "Additional space for documents to be provided when requested"
              }
            },
            "description": "The documents used to support the verification of business details."
          }
        }
      },
      "USSoleTraderLite2-0": {
        "title": "US Sole Trader - Lite (2.0)",
        "type": "object",
        "allOf": [
          {
            "title": "Create & Submit regulated US Individual (V2.0)",
            "required": [
              "reference",
              "individual",
              "contact_details",
              "profile"
            ],
            "type": "object",
            "properties": {
              "reference": {
                "title": "Unique reference",
                "maxLength": 50,
                "minLength": 1,
                "type": "string",
                "description": "A unique reference you can later use to identify the sub-entity."
              },
              "status": {
                "type": "string",
                "readOnly": true
              },
              "is_draft": {
                "type": "boolean",
                "description": "Specifies whether the sub-entity details are in draft.\n\nMarking a sub-entity as a draft allows sub-entity details to be updated, without triggering due diligence checks.",
                "writeOnly": true
              },
              "profile": {
                "title": "Profile",
                "required": [
                  "urls",
                  "mccs"
                ],
                "type": "object",
                "properties": {
                  "urls": {
                    "title": "Website",
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "title": "Company website URL",
                      "maxLength": 300,
                      "minLength": 4,
                      "pattern": "^(http|https):\\//\\S{2,293}$",
                      "type": "string",
                      "description": "The URL of the company's website.",
                      "format": "uri"
                    },
                    "description": "A collection of website URLs the sub-entity accepts payments on."
                  },
                  "mccs": {
                    "title": "Industry",
                    "maxItems": 5,
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "title": "Merchant category code",
                      "pattern": "^[0-9]{4}$",
                      "description": "The merchant category code (4-digit ISO 18245)."
                    },
                    "description": "Select the categories that most closely describe the business"
                  }
                },
                "description": "Information about the profile of the sub-entity, primarily regarding the products/services offered."
              },
              "contact_details": {
                "title": "Contact Details",
                "required": [
                  "phone",
                  "email_addresses"
                ],
                "type": "object",
                "properties": {
                  "phone": {
                    "title": "Phone",
                    "required": [
                      "number"
                    ],
                    "type": "object",
                    "properties": {
                      "number": {
                        "title": "Phone number",
                        "maximum": 9999999999999999,
                        "minimum": 2000000000,
                        "maxLength": 16,
                        "minLength": 10,
                        "pattern": "^[2-9]{1}[0-9]{9,15}$",
                        "description": "Include the area code"
                      }
                    }
                  },
                  "email_addresses": {
                    "required": [
                      "primary"
                    ],
                    "type": "object",
                    "properties": {
                      "primary": {
                        "title": "Email",
                        "description": "The main email address for this sub-entity.",
                        "format": "email"
                      }
                    }
                  },
                  "invitee": {
                    "title": "Invitee",
                    "type": "object",
                    "properties": {
                      "email": {
                        "title": "Email",
                        "description": "The main email address for this sub-entity.",
                        "format": "email"
                      }
                    }
                  }
                }
              },
              "capabilities": {
                "title": "Capabilities",
                "type": "object",
                "description": "The capabilities of the entity.",
                "readOnly": true
              },
              "requirements_due": {
                "title": "Requirements Due",
                "minItems": 0,
                "type": "array",
                "items": {
                  "title": "Requirements due entry",
                  "type": "object",
                  "properties": {
                    "field": {
                      "title": "Field",
                      "type": "string",
                      "description": "The field that is needs to be addressed."
                    },
                    "reason": {
                      "title": "Reason",
                      "type": "string",
                      "description": "The reason behind the field needing attention."
                    }
                  },
                  "description": "A list of fields which require attention",
                  "readOnly": true
                },
                "description": "List of requirements due in order to be onboarded.",
                "readOnly": true
              },
              "instruments": {
                "type": "array",
                "items": {
                  "type": "object"
                },
                "readOnly": true
              },
              "documents": {
                "title": "Document",
                "required": [
                  "identity_verification"
                ],
                "type": "object",
                "properties": {
                  "identity_verification": {
                    "title": "Document",
                    "required": [
                      "type",
                      "front"
                    ],
                    "type": "object",
                    "properties": {
                      "type": {
                        "title": "Document type",
                        "enum": [
                          "passport",
                          "national_identity_card",
                          "driving_license",
                          "citizen_card",
                          "residence_permit",
                          "electoral_id"
                        ],
                        "type": "string",
                        "description": "The type of document used for identity verification"
                      },
                      "front": {
                        "title": "Front",
                        "maxLength": 31,
                        "minLength": 31,
                        "pattern": "^file_[a-z2-7]{26}$",
                        "type": "string",
                        "description": "The ID of the front side of the document as represented within Checkout.com systems."
                      },
                      "back": {
                        "title": "Back",
                        "maxLength": 31,
                        "minLength": 31,
                        "pattern": "^file_[a-z2-7]{26}$",
                        "type": "string",
                        "description": "The ID of the back side of the document as represented within Checkout.com systems."
                      }
                    },
                    "description": "The document to use to confirm the individual's identity."
                  }
                },
                "description": "A legal document used to verify identity."
              },
              "individual": {
                "title": "Individual",
                "required": [
                  "first_name",
                  "last_name",
                  "date_of_birth",
                  "registered_address",
                  "trading_name"
                ],
                "type": "object",
                "properties": {
                  "trading_name": {
                    "title": "Trading name",
                    "maxLength": 300,
                    "minLength": 2,
                    "type": "string",
                    "description": "The trading name of the sub-entity, also referred to as 'doing business as'."
                  },
                  "first_name": {
                    "title": "First name",
                    "maxLength": 50,
                    "minLength": 2,
                    "type": "string",
                    "description": "The representative's first name."
                  },
                  "middle_name": {
                    "title": "Middle name",
                    "maxLength": 50,
                    "minLength": 2,
                    "type": "string",
                    "description": "The representative's middle name. Required if appears in official docs"
                  },
                  "last_name": {
                    "title": "Last name",
                    "maxLength": 50,
                    "minLength": 2,
                    "type": "string",
                    "description": "The representative's last name."
                  },
                  "date_of_birth": {
                    "title": "Date of birth",
                    "required": [
                      "day",
                      "month",
                      "year"
                    ],
                    "type": "object",
                    "properties": {
                      "day": {
                        "maximum": 31,
                        "minimum": 1,
                        "type": "integer",
                        "description": "The calendar day of the month they were born."
                      },
                      "month": {
                        "maximum": 12,
                        "minimum": 1,
                        "type": "integer",
                        "description": "The month of the year they were born."
                      },
                      "year": {
                        "maximum": 2999,
                        "minimum": 1900,
                        "type": "integer",
                        "description": "The year they were born."
                      }
                    },
                    "description": "The date of birth of the person according to the Gregorian calendar."
                  },
                  "registered_address": {
                    "title": "Registered Address",
                    "required": [
                      "address_line1",
                      "city",
                      "zip",
                      "state",
                      "country"
                    ],
                    "type": "object",
                    "properties": {
                      "address_line1": {
                        "title": "Address line 1",
                        "maxLength": 300,
                        "minLength": 1,
                        "pattern": "\\S",
                        "type": "string",
                        "description": "The first line of the address."
                      },
                      "address_line2": {
                        "title": "Address line 2",
                        "maxLength": 300,
                        "description": "The second line of the address."
                      },
                      "city": {
                        "title": "City",
                        "maxLength": 300,
                        "minLength": 2,
                        "type": "string",
                        "description": "The address city."
                      },
                      "state": {
                        "title": "US State",
                        "enum": [
                          "AL",
                          "AK",
                          "AZ",
                          "AR",
                          "CA",
                          "CO",
                          "CT",
                          "DE",
                          "DC",
                          "FL",
                          "GA",
                          "HI",
                          "ID",
                          "IL",
                          "IN",
                          "IA",
                          "KS",
                          "KY",
                          "LA",
                          "ME",
                          "MD",
                          "MA",
                          "MI",
                          "MN",
                          "MS",
                          "MO",
                          "MT",
                          "NE",
                          "NV",
                          "NH",
                          "NJ",
                          "NM",
                          "NY",
                          "NC",
                          "ND",
                          "OH",
                          "OK",
                          "OR",
                          "PA",
                          "RI",
                          "SC",
                          "SD",
                          "TN",
                          "TX",
                          "UT",
                          "VT",
                          "VA",
                          "WA",
                          "WV",
                          "WI",
                          "WY",
                          "AS",
                          "GU",
                          "MP",
                          "PR",
                          "VI",
                          "UM"
                        ],
                        "type": "string",
                        "description": "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": {
                        "title": "Zip code",
                        "maxLength": 10,
                        "minLength": 5,
                        "pattern": "^\\d{5}(?:[-\\s]\\d{4})?$",
                        "type": "string",
                        "description": "The address zip/postal code."
                      },
                      "country": {
                        "title": "Country",
                        "maxLength": 2,
                        "minLength": 2,
                        "pattern": "[a-zA-Z]{2}",
                        "type": "string",
                        "description": "The country code (iso-3166-1 alpha-2)",
                        "format": "iso-3166-1-alpha-2"
                      }
                    },
                    "description": "The registered address of the company."
                  },
                  "identification": {
                    "title": "Individual identification",
                    "required": [
                      "national_id_number"
                    ],
                    "type": "object",
                    "properties": {
                      "national_id_number": {
                        "title": "Social security number (SSN or ITIN) - US Residents Only",
                        "maxLength": 9,
                        "minLength": 9,
                        "pattern": "^\\d{9}$",
                        "description": "Social security number (SSN) or Individual Taxpayer Identification Number (ITIN) for non-US citizens"
                      }
                    },
                    "description": "Information about representatives of this company."
                  },
                  "financial_details": {
                    "title": "Financial Details",
                    "type": "object",
                    "properties": {
                      "annual_processing_volume": {
                        "title": "Estimated annual processing volume",
                        "minimum": 0,
                        "type": "integer",
                        "description": "The estimated annual processing volume. In minor units without decimals."
                      },
                      "average_transaction_value": {
                        "title": "Average sales price",
                        "minimum": 0,
                        "type": "integer",
                        "description": "The expected average transaction value. In minor units without decimals."
                      },
                      "highest_transaction_value": {
                        "title": "Highest transaction value",
                        "minimum": 0,
                        "type": "integer",
                        "description": "The expected highest transaction value. In minor units without decimals."
                      },
                      "currency": {
                        "title": "Currency",
                        "enum": [
                          "USD"
                        ],
                        "type": "string",
                        "description": "The currency used for the processing details provided."
                      }
                    },
                    "description": "Seller financial questions and supporting documents."
                  }
                },
                "description": "Information about the individual represented by the sub-entity."
              }
            }
          }
        ]
      },
      "PreconditionRequiredError": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "example": "428"
          }
        }
      },
      "Purpose": {
        "enum": [
          "donations",
          "education",
          "emergency_need",
          "expatriation",
          "family_support",
          "financial_services",
          "gifts",
          "income",
          "insurance",
          "investment",
          "it_services",
          "leisure",
          "loan_payment",
          "medical_treatment",
          "other",
          "pension",
          "royalties",
          "savings",
          "travel_and_tourism"
        ],
        "type": "string",
        "description": "The purpose of the payment.\nThis 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).\nSee the [AFT documentation page](https://www.checkout.com/docs/payments/manage-payments/perform-an-account-funding-transaction) for more details."
      },
      "AccountResponse": {
        "type": "object",
        "properties": {
          "client_id": {
            "pattern": "^(cli)_(\\w{26})$",
            "type": "string",
            "description": "The client ID.",
            "example": "cli_bvaelhppmfiufdnatam37wrfc4"
          },
          "entity_id": {
            "pattern": "^(ent)_(\\w{26})$",
            "type": "string",
            "description": "The entity ID.",
            "example": "ent_znj4ih5kn4fuxiaquoudv5mvwy"
          }
        },
        "additionalProperties": false,
        "description": "The client and entity details."
      },
      "FileResponse": {
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^(file)_(\\w{26})$",
            "type": "string",
            "description": "The file ID.",
            "example": "file_7ysmgfkj4ipunduud22uf73iey"
          },
          "filename": {
            "type": "string",
            "description": "The file name.",
            "example": "financial-actions_ent_znj4ih5kn4fuxiaquoudv5mvwy_20220218_000000001drl_1.csv"
          },
          "format": {
            "type": "string",
            "description": "The file format.",
            "example": "CSV"
          },
          "_links": {
            "type": "object",
            "properties": {
              "self": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Link"
                  }
                ],
                "description": "The self object.",
                "example": {
                  "href": "https://{prefix}.api.checkout.com/reports/rpt_lmmldzousk7etoqijqundqexa4/files/file_lmmldzousk7etoqijqundqexa4"
                }
              }
            },
            "description": "The link to retrieve the file from."
          }
        },
        "additionalProperties": false,
        "description": "Details of a file from the response."
      },
      "ReportErrorResponse": {
        "type": "object",
        "properties": {
          "request_id": {
            "type": "string",
            "description": "Request Id",
            "example": "0HMJGFVAQ35TL:00000117"
          },
          "error_type": {
            "type": "string",
            "description": "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/>\n"
          },
          "error_codes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "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/>\n"
          }
        },
        "additionalProperties": false,
        "description": "Error Response"
      },
      "ReportListResponse": {
        "type": "object",
        "properties": {
          "count": {
            "type": "integer",
            "description": "The total number of reports on the current page.",
            "format": "int32",
            "example": 1
          },
          "limit": {
            "maximum": 100,
            "minimum": 1,
            "type": "integer",
            "description": "The maximum number of results included per page.",
            "format": "int32",
            "default": 100,
            "example": 5
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReportResponse"
            },
            "description": "The list of reports from the current page."
          },
          "_links": {
            "type": "object",
            "properties": {
              "self": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Link"
                  }
                ],
                "description": "The self object.",
                "example": {
                  "href": "https://{prefix}.api.checkout.com/reports?entity_id=ent_znj4ih5kn4fuxiaquoudv5mvwy&created_after=2022-02-17T00:00:00.000Z&limit=5"
                }
              },
              "next": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Link"
                  }
                ],
                "description": "The next object.",
                "example": {
                  "href": "https://{prefix}.api.checkout.com/reports?pagination_token=NaZMwq3KbreYcXg0dg752Dg8ps4orkwVK9pj9WFzkXk8rPoR32Wf74QWX0EkZ&entity_id=ent_znj4ih5kn4fuxiaquoudv5mvwy&created_after=2022-02-17T00:00:00.000Z&limit=5"
                }
              }
            },
            "description": "The links object."
          }
        },
        "additionalProperties": false,
        "description": "The list of reports in the response."
      },
      "ReportResponse": {
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^(rpt)_(\\w{26})$",
            "type": "string",
            "description": "The report ID.",
            "example": "rpt_lmmldzousk7etoqijqundqexa4"
          },
          "created_on": {
            "type": "string",
            "description": "The date and time the report was created.",
            "format": "date-time",
            "example": "2022-02-18T13:00:12.3570000+00:00"
          },
          "last_modified_on": {
            "type": "string",
            "description": "The date the report was last modified.",
            "format": "date-time",
            "example": "2022-02-18T13:16:12.3570000+00:00"
          },
          "type": {
            "enum": [
              "Authentication",
              "Balance",
              "BalanceBreakdown",
              "BankPayouts",
              "CardPayouts",
              "Disputes",
              "FinancialActions",
              "FinancialActionsByPayout",
              "FraudDetection",
              "IssuingAuthorizations",
              "IssuingCards",
              "IssuingChargebacks",
              "IssuingPresentments",
              "IssuingSettlementActivity",
              "IssuingSettlementSummary",
              "Manifest",
              "Payments",
              "PayoutSummary",
              "RealTimeAccountUpdater",
              "ReportedFraudulentTransactions",
              "Retrievals",
              "SettlementBreakdown",
              "SettlementStatement"
            ],
            "type": "string",
            "description": "The report type."
          },
          "description": {
            "type": "string",
            "description": "The report description.",
            "example": "Reconciliation Report for X."
          },
          "account": {
            "$ref": "#/components/schemas/AccountResponse"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The list of tags for filtering.",
            "example": [
              "payout_id:pay_123456789"
            ]
          },
          "from": {
            "type": "string",
            "description": "The reporting period's start date and time.",
            "format": "date-time",
            "example": "2022-02-17T12:00:00.0000000+00:00"
          },
          "to": {
            "type": "string",
            "description": "The reporting period's end date and time.",
            "format": "date-time",
            "example": "2022-02-18T12:00:00.0000000+00:00"
          },
          "files": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FileResponse"
            },
            "description": "The list of files included in the report."
          },
          "_links": {
            "type": "object",
            "properties": {
              "self": {
                "type": "object",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Link"
                  }
                ],
                "description": "The self object.",
                "example": {
                  "href": "https://{prefix}.api.checkout.com/reports/rpt_lmmldzousk7etoqijqundqexa4"
                }
              }
            },
            "description": "The links object."
          }
        },
        "additionalProperties": false,
        "description": "Report response details."
      },
      "CardSourcePrism": {
        "title": "card",
        "required": [
          "type",
          "number",
          "expiry_month",
          "expiry_year"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The payment source type",
            "example": "card"
          },
          "number": {
            "maxLength": 19,
            "type": "string",
            "description": "The card number (without separators)",
            "example": "4543474002249996"
          },
          "expiry_month": {
            "minimum": 1,
            "maxLength": 2,
            "minLength": 1,
            "type": "integer",
            "description": "The expiry month of the card",
            "example": 6
          },
          "expiry_year": {
            "maxLength": 4,
            "minLength": 4,
            "type": "integer",
            "description": "The expiry year of the card",
            "example": 2025
          },
          "name": {
            "maxLength": 255,
            "type": "string",
            "description": "The name of the cardholder",
            "example": "Bruce Wayne"
          },
          "billing_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "The billing address of the cardholder"
          },
          "phone": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PhoneNumber"
              }
            ],
            "description": "The phone number of the cardholder"
          }
        },
        "description": "A card payment source"
      },
      "CustomerSourcePrism": {
        "title": "customer",
        "required": [
          "type",
          "id"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The payment source type",
            "example": "customer"
          },
          "id": {
            "pattern": "^(cus)_(\\w{26})$",
            "type": "string",
            "description": "The customer's identifier.",
            "example": "cus_y3oqhf46pyzuxjbcn2giaqnb44"
          }
        },
        "description": "A customer source"
      },
      "IdSourcePrism": {
        "title": "id",
        "required": [
          "type",
          "id"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The payment source type",
            "example": "id"
          },
          "id": {
            "pattern": "^(src)_(\\w{26})$",
            "type": "string",
            "description": "The payment source identifier (e.g., a card source identifier)",
            "example": "src_wmlfc3zyhqzehihu7giusaaawu"
          },
          "cvv": {
            "maxLength": 4,
            "minLength": 3,
            "type": "string",
            "description": "The card verification value/code (for card sources). 3 digits, except for American Express (4 digits)",
            "example": "956"
          }
        },
        "description": "An existing payment source"
      },
      "RiskPaymentRequestSource": {
        "required": [
          "type"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/PaymentRequestTokenSource"
          },
          {
            "$ref": "#/components/schemas/IdSourcePrism"
          },
          {
            "$ref": "#/components/schemas/CardSourcePrism"
          },
          {
            "$ref": "#/components/schemas/CustomerSourcePrism"
          }
        ],
        "description": "The source of the payment.<br>",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "token": "#/components/schemas/PaymentRequestTokenSource",
            "id": "#/components/schemas/IdSourcePrism",
            "card": "#/components/schemas/CardSourcePrism",
            "customer": "#/components/schemas/CustomerSourcePrism"
          }
        }
      },
      "Segment": {
        "type": "object",
        "properties": {
          "brand": {
            "maxLength": 50,
            "type": "string",
            "description": "The brand of business segment.",
            "example": "Acme Corporation"
          },
          "business_category": {
            "maxLength": 50,
            "type": "string",
            "description": "The category of business segment.",
            "example": "Inward Payments"
          },
          "market": {
            "maxLength": 50,
            "type": "string",
            "description": "The market of business segment.",
            "example": "UK"
          }
        },
        "description": "The dimension details about business segment for payment request. At least one dimension required."
      },
      "ServerTimestamp": {
        "type": "string",
        "description": "Read-only UTC timestamp, automatically assigned by us",
        "format": "date-time",
        "readOnly": true
      },
      "SessionsBillingDescriptor": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 40,
            "type": "string",
            "description": "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: `.` `!` `*` `-` `=` `_` `@`",
            "example": "SUPERHEROES.COM"
          }
        },
        "description": "An optional dynamic billing descriptor."
      },
      "SimulatorAvailableRequirement": {
        "type": "object",
        "properties": {
          "field": {
            "type": "string",
            "description": "The public path of the requirement field.",
            "example": "individual.identification.document"
          },
          "type": {
            "type": "string",
            "description": "The data type of the field.",
            "example": "string"
          }
        }
      },
      "SimulatorErrorResponse": {
        "type": "object",
        "properties": {
          "error_codes": {
            "type": "array",
            "items": {
              "type": "string",
              "example": "invalid_status"
            },
            "description": "Error codes describing what went wrong."
          }
        }
      },
      "SimulatorRunScenarioResponse": {
        "type": "object",
        "properties": {
          "entity_id": {
            "type": "string",
            "description": "The ID of the entity.",
            "example": "ent_w4jelhppmfiufdnatam37wrfc4"
          },
          "scenario_id": {
            "type": "string",
            "description": "The ID of the scenario that was run.",
            "example": "go_active"
          },
          "scenario_name": {
            "type": "string",
            "description": "The name of the scenario that was run.",
            "example": "Go Active"
          },
          "previous_status": {
            "type": "string",
            "description": "The entity status before the scenario ran.",
            "example": "RequirementsDue"
          },
          "current_status": {
            "type": "string",
            "description": "The entity status after the scenario ran.",
            "example": "Active"
          },
          "requirements_due": {
            "type": "array",
            "items": {
              "type": "string",
              "example": "individual.identification.document"
            },
            "description": "Requirement fields applied by the scenario, if any."
          }
        }
      },
      "SimulatorScenario": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the scenario.",
            "example": "go_active"
          },
          "name": {
            "type": "string",
            "description": "Human-readable name of the scenario.",
            "example": "Go Active"
          },
          "description": {
            "type": "string",
            "description": "Description of what the scenario does.",
            "example": "Transitions the entity to active status."
          },
          "action": {
            "type": "string",
            "description": "The action type performed by this scenario.",
            "example": "set_status"
          },
          "status": {
            "type": "string",
            "description": "The resulting entity status after the scenario runs. Empty string for non-status actions.",
            "example": "active"
          },
          "requirements_due": {
            "type": "array",
            "items": {
              "type": "string",
              "example": "individual.identification.document"
            },
            "description": "Requirement fields applied when the scenario runs, if any."
          }
        }
      },
      "SimulatorSetRequirementsDueRequest": {
        "required": [
          "fields"
        ],
        "type": "object",
        "properties": {
          "fields": {
            "type": "array",
            "items": {
              "type": "string",
              "example": "individual.identification.document"
            },
            "description": "The requirement fields to mark as due. <br/>\nCall the [List available requirements](/#tag/Onboarding-Simulator/paths/~1simulate~1requirements-due/get) endpoint for a list of valid values.\n"
          }
        }
      },
      "SimulatorSetRequirementsDueResponse": {
        "type": "object",
        "properties": {
          "entity_id": {
            "type": "string",
            "description": "The ID of the entity.",
            "example": "ent_w4jelhppmfiufdnatam37wrfc4"
          },
          "previous_status": {
            "type": "string",
            "description": "The status before the update.",
            "example": "Active"
          },
          "current_status": {
            "type": "string",
            "description": "The status after the update.",
            "example": "requirements_due"
          },
          "requirements_due": {
            "type": "array",
            "items": {
              "type": "string",
              "example": "individual.identification.document"
            },
            "description": "The requirement fields that are now marked as due."
          }
        }
      },
      "SimulatorSetStatusRequest": {
        "required": [
          "status"
        ],
        "type": "object",
        "properties": {
          "status": {
            "enum": [
              "draft",
              "requirements_due",
              "pending",
              "active",
              "restricted",
              "rejected",
              "inactive"
            ],
            "type": "string",
            "description": "The status to set on the entity.",
            "example": "active"
          }
        }
      },
      "SimulatorSetStatusResponse": {
        "type": "object",
        "properties": {
          "entity_id": {
            "type": "string",
            "description": "The ID of the entity.",
            "example": "ent_w4jelhppmfiufdnatam37wrfc4"
          },
          "previous_status": {
            "type": "string",
            "description": "The status before the update.",
            "example": "Pending"
          },
          "current_status": {
            "type": "string",
            "description": "The status after the update.",
            "example": "Active"
          }
        }
      },
      "Acs": {
        "required": [
          "reference_number",
          "transaction_id",
          "operator_id",
          "challenge_mandated"
        ],
        "type": "object",
        "properties": {
          "reference_number": {
            "maxLength": 32,
            "type": "string",
            "description": "EMVCo-assigned unique identifier to track approved ACS",
            "example": "ACSRefNum1234"
          },
          "transaction_id": {
            "maxLength": 36,
            "minLength": 36,
            "type": "string",
            "description": "Universally unique transaction identifier assigned by the ACS",
            "example": "be481bd1-1f1d-4ef8-9fa8-0fb2a38e3c87"
          },
          "operator_id": {
            "maxLength": 32,
            "type": "string",
            "description": "DS assigned ACS identifier",
            "example": "ACSRefNum1234"
          },
          "url": {
            "maxLength": 2048,
            "type": "string",
            "description": "Fully qualified URL of the ACS to be used for the challenge",
            "example": "https://server.acsdomainname.com"
          },
          "signed_content": {
            "maxLength": 512,
            "type": "string",
            "description": "Contains the JSON web signature (JWS) compact serialization created by the ACS for a challenged app authentication. (Example has been truncated for readability.)\n",
            "example": "eyJ4NWMiOlsiTUlJQjdEQ0NBWktnQXdJQkFnSVZBSzIxWEc5SVBCL083QzZjUTBvRlJJUkIwWDI0TUFvR0NDcUdTTTQ5QkFNQ01INHhDekFKQm"
          },
          "challenge_mandated": {
            "type": "boolean",
            "description": "Indicates whether a challenge is required for the transaction to be authorized"
          },
          "authentication_type": {
            "pattern": "^\\d{2}$",
            "type": "string",
            "description": "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\n"
          },
          "challenge_cancel_reason": {
            "enum": [
              "cardholder_cancel",
              "transaction_timed_out",
              "challenge_timed_out",
              "transaction_error",
              "unknown",
              "sdk_timed_out"
            ],
            "type": "string",
            "description": "Indicator informing the ACS and the DS that the authentication has been cancelled"
          },
          "interface": {
            "enum": [
              "native_ui",
              "html"
            ],
            "type": "string"
          },
          "ui_template": {
            "enum": [
              "text",
              "single_select",
              "multi_select",
              "oob",
              "html_other"
            ],
            "type": "string"
          },
          "challenge_cancel_reason_code": {
            "maximum": 99,
            "minimum": 0,
            "type": "string",
            "description": "Indicator in the 3D Secure 2 RReq when the challenge is cancelled"
          }
        },
        "description": "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."
      },
      "Amount": {
        "maximum": 9007199254740991,
        "minimum": 0,
        "type": "integer",
        "description": "The amount in the minor currency.",
        "format": "int64",
        "example": 120
      },
      "App": {
        "title": "app",
        "required": [
          "channel",
          "sdk_app_id",
          "sdk_max_timeout",
          "sdk_ephem_pub_key",
          "sdk_encrypted_data",
          "sdk_reference_number",
          "sdk_transaction_id",
          "sdk_interface_type",
          "sdk_ui_elements"
        ],
        "properties": {
          "channel": {
            "enum": [
              "app"
            ],
            "type": "string"
          },
          "sdk_app_id": {
            "maxLength": 36,
            "minLength": 36,
            "type": "string",
            "description": "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.\n",
            "example": "dbd64fcb-c19a-4728-8849-e3d50bfdde39"
          },
          "sdk_max_timeout": {
            "minimum": 5,
            "type": "integer",
            "description": "Indicates maximum amount of time (in minutes) for all exchanges\n",
            "example": 5
          },
          "sdk_ephem_pub_key": {
            "$ref": "#/components/schemas/SdkEphemeralPublicKey"
          },
          "sdk_reference_number": {
            "maxLength": 32,
            "type": "string",
            "description": "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.\n",
            "example": "3DS_LOA_SDK_PPFU_020100_00007"
          },
          "sdk_encrypted_data": {
            "maxLength": 64000,
            "type": "string",
            "description": "A JSON web encryption (JWE) object in compact serialization, containing data encrypted by the SDK for the Directory Server to decrypt.\n",
            "example": "<device-information>"
          },
          "sdk_transaction_id": {
            "maxLength": 36,
            "minLength": 36,
            "type": "string",
            "description": "Universally unique transaction identifier assigned by the 3DS SDK to identify a single transaction\n",
            "example": "b2385523-a66c-4907-ac3c-91848e8c0067"
          },
          "sdk_interface_type": {
            "enum": [
              "native",
              "html",
              "both"
            ],
            "type": "string",
            "description": "Lists all of the SDK interface types that the device supports for displaying specific challenge user interfaces within the SDK\n"
          },
          "sdk_ui_elements": {
            "type": "array",
            "items": {
              "enum": [
                "text",
                "single_select",
                "multi_select",
                "oob",
                "html_other"
              ],
              "type": "string"
            },
            "description": "Lists all the user interface elements that the cardholder's device supports for displaying specific challenge user interfaces within the SDK\n"
          }
        }
      },
      "Approved": {
        "type": "boolean",
        "description": "Whether the authentication was successful. This will only be set if the Session is in a final state",
        "example": false
      },
      "AuthenticationType": {
        "enum": [
          "regular",
          "recurring",
          "installment",
          "maintain_card",
          "add_card"
        ],
        "type": "string",
        "description": "Indicates the type of payment this session is for. Please note the spelling of `installment` consists of two `l`s.",
        "default": "regular",
        "example": "regular"
      },
      "Browser": {
        "title": "browser",
        "required": [
          "channel",
          "accept_header",
          "java_enabled",
          "javascript_enabled",
          "language",
          "color_depth",
          "screen_height",
          "screen_width",
          "timezone",
          "user_agent",
          "ip_address"
        ],
        "properties": {
          "channel": {
            "enum": [
              "browser"
            ],
            "type": "string"
          },
          "three_ds_method_completion": {
            "maxLength": 1,
            "minLength": 1,
            "enum": [
              "Y",
              "N",
              "U"
            ],
            "type": "string",
            "description": "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)\n",
            "default": "U",
            "example": "U"
          },
          "accept_header": {
            "maxLength": 2048,
            "type": "string",
            "description": "Exact content of the HTTP accept headers as sent to the 3DS Requestor from the cardholder’s browser\n",
            "example": "Accept:  *.*, q=0.1"
          },
          "java_enabled": {
            "type": "boolean",
            "description": "Boolean that represents the ability of the cardholder's browser to execute Java. Value is returned from the `navigator.javaEnabled` property.\n",
            "example": true
          },
          "javascript_enabled": {
            "type": "boolean",
            "description": "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. \n",
            "default": true,
            "example": true
          },
          "language": {
            "maxLength": 12,
            "minLength": 1,
            "type": "string",
            "description": "Value representing the browser language as defined in IETF BCP47. Returned from the `navigator.language` property.\n",
            "example": "FR-fr"
          },
          "color_depth": {
            "maxLength": 2,
            "minLength": 1,
            "type": "string",
            "description": "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.\n",
            "example": "16"
          },
          "screen_height": {
            "maxLength": 6,
            "minLength": 1,
            "type": "string",
            "description": "Total height of the cardholder’s screen in pixels. Value is returned from the `screen.height` property.\n",
            "example": "1080"
          },
          "screen_width": {
            "maxLength": 6,
            "minLength": 1,
            "type": "string",
            "description": "Total width of the cardholder’s screen in pixels. Value is returned from the `screen.width` property.\n",
            "example": "1920"
          },
          "timezone": {
            "maxLength": 5,
            "minLength": 1,
            "type": "string",
            "description": "Time difference between UTC time and the local time of the cardholder's browser, in minutes.\n",
            "example": "60"
          },
          "user_agent": {
            "maxLength": 2048,
            "type": "string",
            "description": "Exact content of the HTTP user-agent header\n",
            "example": "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": {
            "maxLength": 45,
            "type": "string",
            "description": "IP address of the browser as returned by the HTTP headers to the 3DS Requestor\n",
            "example": "1.12.123.255"
          },
          "iframe_payment_allowed": {
            "type": "boolean",
            "description": "Whether the Payment API is enabled for all parent frames. This is required for Google SPA support in hosted sessions.\n",
            "example": true
          },
          "user_agent_client_hint": {
            "type": "string",
            "description": "The raw Sec-CH-UA header value. This can improve Google SPA support.\n",
            "example": "'Sec-CH-UA: \" Not A;Brand\";v=\"99\", \"Chromium\";v=\"96\", \"Google Chrome\";v=\"96\"'\n"
          }
        }
      },
      "CardholderAccountInfo": {
        "type": "object",
        "properties": {
          "purchase_count": {
            "maximum": 9999,
            "minimum": 0,
            "type": "number",
            "description": "The number of purchases with this cardholder's account during the last six months.\n",
            "example": 10
          },
          "account_age": {
            "enum": [
              "no_account",
              "created_during_transaction",
              "less_than_thirty_days",
              "thirty_to_sixty_days",
              "more_than_sixty_days"
            ],
            "type": "string",
            "description": "The length of time that the payment account was enrolled in the cardholder's account.\n"
          },
          "add_card_attempts": {
            "maximum": 999,
            "minimum": 0,
            "type": "number",
            "description": "The number of Add Card attempts in the last 24 hours.\n",
            "example": 10
          },
          "shipping_address_age": {
            "enum": [
              "this_transaction",
              "less_than_thirty_days",
              "thirty_to_sixty_days",
              "more_than_sixty_days"
            ],
            "type": "string",
            "description": "Indicates when the shipping address used for this transaction was first used.\n"
          },
          "account_name_matches_shipping_name": {
            "type": "boolean",
            "description": "Indicates if the Cardholder Name on the account is identical to the shipping Name used for this transaction.\n",
            "example": true
          },
          "suspicious_account_activity": {
            "type": "boolean",
            "description": "Indicates whether suspicious activity on the cardholder account has been observed.\n",
            "example": true
          },
          "transactions_today": {
            "maximum": 999,
            "minimum": 0,
            "type": "number",
            "description": "The number of transactions (successful and abandoned) for the cardholder account across all payment accounts in the previous 24 hours\n",
            "example": 10
          },
          "authentication_method": {
            "enum": [
              "no_authentication",
              "own_credentials",
              "federated_id",
              "issuer_credentials",
              "third_party_authentication",
              "fido"
            ],
            "type": "string",
            "description": "Information about how the cardholder was authenticated before or during the transaction.\n",
            "deprecated": true
          },
          "cardholder_account_age_indicator": {
            "enum": [
              "no_account,",
              "this_transaction",
              "less_than_thirty_days",
              "thirty_to_sixty_days",
              "more_than_sixty_days"
            ],
            "type": "string",
            "description": "The length of time the cardholder has held the account with the 3DS Requestor."
          },
          "account_change": {
            "type": "string",
            "description": "The UTC date and time the cardholder’s account with the 3DS Requestor was last changed, in ISO 8601 format.\n\nChanges that affect this value include:\n- updating the billing or shipping address\n- adding a new payment account\n- adding a new user\n",
            "format": "date-time"
          },
          "account_change_indicator": {
            "enum": [
              "this_transaction",
              "less_than_thirty_days",
              "thirty_to_sixty_days",
              "more_than_sixty_days"
            ],
            "type": "string",
            "description": "The amount of time since the cardholder’s account information with the 3DS Requestor was last changed.\n\nChanges that affect this value include:\n- updating the billing or shipping address\n- adding a new payment account\n- adding a new user\n"
          },
          "account_date": {
            "type": "string",
            "description": "The UTC date and time the cardholder opened the account with the 3DS Requestor, in ISO 8601 format.",
            "format": "date-time"
          },
          "account_password_change": {
            "type": "string",
            "description": "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.",
            "format": "date-time"
          },
          "account_password_change_indicator": {
            "enum": [
              "no_change",
              "this_transaction",
              "less_than_thirty_days",
              "thirty_to_sixty_days",
              "more_than_sixty_days"
            ],
            "type": "string",
            "description": "The amount of time since the cardholder’s account with the 3DS Requestor was last reset or had a password change."
          },
          "transactions_per_year": {
            "maximum": 999,
            "maxLength": 3,
            "type": "integer",
            "description": "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. \n\nSet this value to `999` if the number of transactions is `1000` or greater.\n",
            "example": 2
          },
          "payment_account_age": {
            "type": "string",
            "description": "The UTC date and time the payment account was enrolled in the cardholder’s account with the 3DS Requestor, in ISO 8601 format.",
            "format": "date-time"
          },
          "shipping_address_usage": {
            "type": "string",
            "description": "The UTC date and time the shipping address used for the transaction was first used with the 3DS Requestor, in ISO 8601 format.",
            "format": "date-time"
          },
          "account_type": {
            "enum": [
              "not_applicable",
              "credit",
              "debit"
            ],
            "type": "string",
            "description": "The type of account, in the case of a card product with multiple accounts."
          },
          "account_id": {
            "maxLength": 64,
            "type": "string",
            "description": "Additional information about the account optionally provided by the 3DS Requestor."
          },
          "three_ds_requestor_authentication_info": {
            "$ref": "#/components/schemas/ThreeDsRequestorAuthenticationInfo"
          }
        },
        "description": "Additional information about the Cardholder's account.\n"
      },
      "CardInfo": {
        "required": [
          "instrument_id",
          "fingerprint"
        ],
        "type": "object",
        "properties": {
          "instrument_id": {
            "type": "string",
            "description": "The identifier of the card instrument.",
            "example": "src_ubfj2q76miwundwlk72vxt2i7q"
          },
          "fingerprint": {
            "type": "string",
            "description": "A token that can uniquely identify this card across all customers.",
            "example": "vnsdrvikkvre3dtrjjvlm5du4q"
          },
          "metadata": {
            "type": "object",
            "properties": {
              "card_type": {
                "enum": [
                  "CREDIT",
                  "DEBIT",
                  "PREPAID",
                  "CHARGE",
                  "DEFERRED DEBIT"
                ],
                "type": "string",
                "description": "The card type",
                "example": "CREDIT"
              },
              "card_category": {
                "enum": [
                  "CONSUMER",
                  "COMMERCIAL"
                ],
                "type": "string",
                "description": "The card category.",
                "example": "CONSUMER"
              },
              "issuer_name": {
                "type": "string",
                "description": "The card issuer's name.",
                "example": "Checkout"
              },
              "issuer_country": {
                "pattern": "^[A-Z]{2}",
                "type": "string",
                "description": "The two letter alpha country code of the card issuer.",
                "example": "GB"
              },
              "product_id": {
                "type": "string",
                "description": "The issuer/card scheme product identifier.",
                "example": "MDS"
              },
              "product_type": {
                "type": "string",
                "description": "The issuer/card scheme product type.",
                "example": "Debit MasterCard® Card"
              }
            },
            "description": "Additional details for this card"
          }
        },
        "description": "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."
      },
      "CardSource": {
        "title": "card",
        "required": [
          "type",
          "number",
          "expiry_month",
          "expiry_year"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The payment source type",
            "default": "card",
            "example": "card"
          },
          "scheme": {
            "enum": [
              "amex",
              "cartes_bancaires",
              "diners",
              "mastercard",
              "visa",
              "discover",
              "upi",
              "jcb"
            ],
            "type": "string",
            "description": "Indicates the cardholder scheme choice"
          },
          "number": {
            "maxLength": 19,
            "minLength": 13,
            "type": "string",
            "description": "The card number.",
            "example": "4242424242424242"
          },
          "expiry_month": {
            "maximum": 12,
            "minimum": 1,
            "maxLength": 2,
            "minLength": 1,
            "type": "integer",
            "description": "The expiry month of the card.",
            "example": 12
          },
          "expiry_year": {
            "maxLength": 4,
            "minLength": 4,
            "type": "integer",
            "description": "The expiry year of the card.",
            "example": 2077
          },
          "billing_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SessionAddress"
              }
            ],
            "description": "The customer's billing address. Any special characters will be replaced."
          },
          "home_phone": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SessionPhone"
              }
            ],
            "description": "The cardholder's home phone number"
          },
          "mobile_phone": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SessionPhone"
              }
            ],
            "description": "The cardholder's mobile phone number"
          },
          "work_phone": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SessionPhone"
              }
            ],
            "description": "The cardholder's work phone number"
          },
          "email": {
            "maxLength": 254,
            "type": "string",
            "description": "The email of the cardholder",
            "example": "bruce.wayne@email.com"
          },
          "name": {
            "maxLength": 45,
            "minLength": 2,
            "type": "string",
            "description": "The name of the cardholder. Any special characters will be replaced.",
            "example": "Bruce Wayne"
          },
          "stored": {
            "type": "boolean",
            "description": "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.",
            "default": false,
            "example": true
          }
        }
      },
      "Category": {
        "enum": [
          "payment",
          "non_payment"
        ],
        "type": "string",
        "description": "Indicates the category of the authentication request",
        "default": "payment"
      },
      "ChallengeIndicator": {
        "maxLength": 50,
        "enum": [
          "no_preference",
          "no_challenge_requested",
          "challenge_requested",
          "challenge_requested_mandate",
          "low_value",
          "trusted_listing",
          "trusted_listing_prompt",
          "transaction_risk_assessment",
          "data_share"
        ],
        "type": "string",
        "description": "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/>\nIf an exemption cannot be applied, then the value `no_challenge_requested` will be used instead.\n",
        "default": "no_preference",
        "example": "no_preference"
      },
      "ChannelData": {
        "required": [
          "channel"
        ],
        "oneOf": [
          {
            "$ref": "#/components/schemas/Browser"
          },
          {
            "$ref": "#/components/schemas/App"
          },
          {
            "$ref": "#/components/schemas/MerchantInitiated"
          }
        ],
        "description": "The information gathered from the environment used to initiate the session",
        "discriminator": {
          "propertyName": "channel",
          "mapping": {
            "browser": "#/components/schemas/Browser",
            "app": "#/components/schemas/App",
            "merchant_initiated": "#/components/schemas/MerchantInitiated"
          }
        },
        "example": {
          "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\""
        }
      },
      "CompletionInfo": {
        "required": [
          "type"
        ],
        "oneOf": [
          {
            "$ref": "#/components/schemas/HostedCompletionInfo"
          },
          {
            "$ref": "#/components/schemas/NonHostedCompletionInfo"
          }
        ],
        "description": "The redirect information needed for callbacks or redirects after the payment is completed",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "hosted": "#/components/schemas/HostedCompletionInfo",
            "non_hosted": "#/components/schemas/NonHostedCompletionInfo"
          }
        },
        "example": {
          "type": "non_hosted",
          "callback_url": "https://merchant.com/callback"
        }
      },
      "CreateSessionAcceptedResponse": {
        "required": [
          "session_secret",
          "id",
          "transaction_id",
          "scheme",
          "amount",
          "currency",
          "authentication_type",
          "authentication_category",
          "status",
          "protocol_version",
          "_links",
          "challenge_indicator",
          "authentication_date",
          "next_actions"
        ],
        "properties": {
          "session_secret": {
            "$ref": "#/components/schemas/SessionSecret"
          },
          "id": {
            "$ref": "#/components/schemas/SessionId"
          },
          "transaction_id": {
            "maxLength": 36,
            "minLength": 36,
            "type": "string",
            "description": "The transaction identifier that needs to be provided when communicating directly with the Access Control Server (ACS)",
            "example": "9aea641d-0549-4222-9ca9-d90b43a4f38c"
          },
          "scheme": {
            "enum": [
              "visa",
              "mastercard",
              "jcb",
              "amex",
              "diners",
              "cartes_bancaires",
              "discover",
              "upi"
            ],
            "type": "string",
            "description": "Indicates the scheme this authentication is carried out against"
          },
          "amount": {
            "$ref": "#/components/schemas/Amount"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "completed": {
            "type": "boolean",
            "description": "Specifies if the session was completed.",
            "example": false
          },
          "authentication_type": {
            "$ref": "#/components/schemas/AuthenticationType"
          },
          "authentication_category": {
            "$ref": "#/components/schemas/Category"
          },
          "status": {
            "enum": [
              "pending",
              "processing",
              "challenged",
              "challenge_abandoned",
              "expired",
              "approved",
              "attempted",
              "unavailable",
              "declined",
              "rejected"
            ],
            "type": "string",
            "description": "The status of the session."
          },
          "next_actions": {
            "type": "array",
            "items": {
              "enum": [
                "collect_channel_data",
                "redirect_cardholder",
                "issuer_fingerprint",
                "challenge_cardholder",
                "complete"
              ],
              "type": "string"
            },
            "description": "Specifies which action to take in order to complete the session. \n\nThe `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>.\n"
          },
          "protocol_version": {
            "$ref": "#/components/schemas/ProtocolVersion"
          },
          "account_info": {
            "$ref": "#/components/schemas/CardholderAccountInfo"
          },
          "merchant_risk_info": {
            "$ref": "#/components/schemas/MerchantRiskInfo"
          },
          "reference": {
            "$ref": "#/components/schemas/Reference"
          },
          "transaction_type": {
            "$ref": "#/components/schemas/TransactionType"
          },
          "card": {
            "$ref": "#/components/schemas/CardInfo"
          },
          "recurring": {
            "$ref": "#/components/schemas/Recurring"
          },
          "installment": {
            "$ref": "#/components/schemas/Installment"
          },
          "initial_transaction": {
            "$ref": "#/components/schemas/InitialTransaction"
          },
          "_links": {
            "$ref": "#/components/schemas/CreateSessionLinks"
          },
          "authentication_date": {
            "type": "string",
            "description": "Authentication date and time",
            "format": "date-time"
          },
          "challenge_indicator": {
            "enum": [
              "no_preference",
              "no_challenge_requested",
              "challenge_requested",
              "challenge_requested_mandate"
            ],
            "type": "string",
            "description": "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",
            "default": "no_preference"
          },
          "optimization": {
            "type": "object",
            "properties": {
              "optimized": {
                "type": "boolean",
                "description": "Indicates if any optimization has been applied\n",
                "example": true
              },
              "framework": {
                "enum": [
                  "acceptance_rates"
                ],
                "type": "string",
                "description": "The optimization framework applied\n"
              },
              "optimized_properties": {
                "title": "OptimizedProperty",
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/OptimizedProperty"
                },
                "description": "The collection of optimized fields"
              }
            },
            "description": "The information about the optimization options selected\n"
          },
          "preferred_experiences": {
            "$ref": "#/components/schemas/PreferredExperiences"
          },
          "experience": {
            "$ref": "#/components/schemas/Experience"
          },
          "google_spa": {
            "$ref": "#/components/schemas/GoogleSpaInfo"
          },
          "ds": {
            "$ref": "#/components/schemas/Ds"
          },
          "certificates": {
            "$ref": "#/components/schemas/DsPublicKeys"
          }
        }
      },
      "CreateSessionLinks": {
        "allOf": [
          {
            "$ref": "#/components/schemas/GetSessionLinks"
          }
        ],
        "properties": {
          "redirect_url": {
            "required": [
              "href"
            ],
            "type": "object",
            "properties": {
              "href": {
                "maxLength": 100,
                "type": "string",
                "example": "http://3ds2.checkout.com/interceptor/sid_y3oqhf46pyzuxjbcn2giaqnb44"
              }
            },
            "description": "The link to which the cardholder should be redirected. </br> Only available when the `hosted` value is `true`.\n"
          }
        }
      },
      "CreateSessionOkResponse": {
        "required": [
          "session_secret"
        ],
        "allOf": [
          {
            "$ref": "#/components/schemas/GetSessionResponse"
          }
        ]
      },
      "Cryptogram": {
        "maxLength": 28,
        "minLength": 28,
        "type": "string",
        "description": "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 \n  with `session_secret`. Cryptogram can only be retrieved for up to 24 hours after the session is created.\n",
        "example": "MTIzNDU2Nzg5MDA5ODc2NTQzMjE="
      },
      "Currency": {
        "type": "string",
        "description": "The three-letter ISO currency code",
        "example": "USD"
      },
      "DeviceInformation": {
        "type": "object",
        "properties": {
          "device_id": {
            "type": "string",
            "description": "The unique identifier for the device."
          },
          "device_session_id": {
            "pattern": "^(dsid)_(\\w{26})$",
            "type": "string",
            "description": "Device session ID collected from our standalone Risk.js package.",
            "example": "dsid_ipsmclhxwq72phhr32iwfvrflm"
          }
        },
        "description": "Details of the device from which the authentication originated."
      },
      "Ds": {
        "type": "object",
        "properties": {
          "ds_id": {
            "maxLength": 32,
            "type": "string",
            "description": "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.",
            "example": "A000000003"
          },
          "reference_number": {
            "maxLength": 32,
            "type": "string",
            "description": "EMVCo-assigned unique identifier to track approved DS",
            "example": "VISA.V 17 0003"
          },
          "transaction_id": {
            "maxLength": 36,
            "minLength": 36,
            "type": "string",
            "description": "Universally unique transaction identifier assigned by the DS",
            "example": "9aea641d-0549-4222-9ca9-d90b43a4f38c"
          }
        },
        "description": "The directory server (DS) information. Can be empty if the session is pending or communication with the DS failed"
      },
      "DsPublicKeys": {
        "required": [
          "ds_public"
        ],
        "type": "object",
        "properties": {
          "ds_public": {
            "maxLength": 1024,
            "type": "string",
            "description": "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>.",
            "example": "eyJrdHkiOiJFQyIsImNydiI6IlAtMjU2IiwieCI6Ik1LQkNUTkljS1VTRGlpMTF5U3MzNTI2aURaOEFpVG83VHU2S1BBcXY3RDQiLCJ5IjoiNEV0bDZTUlcyWWlMVXJONXZmdlZIdWhwN3g4UHhsdG1XV2xiYk00SUZ5TSIsInVzZSI6ImVuYyIsImtpZCI6IjEifQ"
          },
          "ca_public": {
            "maxLength": 1024,
            "type": "string",
            "description": "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.",
            "example": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxWEvDZRhKEefZ5sQS7RJZXWbSOPxus-ZyLQjtmrrAQawnKI-AG8BKpVdZVGlpcdxCnGbCIy8CKk2Oi7Mgdqfv5R_4_jI7yl4j7Svmh1Sw934eeF9RyB59Ihl36Y0pNfVW9hBqJuq2o8ulrA1TOtpTpje23CY8sjFE5QnJm1evZRB_ZZQ1txl4nrAiHkno4cVJPouBesryVGVQ0zi1bM0P-05Ydgksvph-1nyjnDldD68mejVF69Tijxa22b6BUCXEuPfbXZcW2NpM_W3msnvKiTWFaMlnIzGYIoFnAnCIVU7Min6CPn565tv0iyIt8BrcezsGzefUw17NEq0J4tCvWwIDAQAB"
          },
          "ca_public_all": {
            "type": "array",
            "items": {
              "maxLength": 1024,
              "type": "string"
            },
            "description": "An array of available certificate authority (CA) public certificates (root) of the DS-CA. \n\nThe 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.\n",
            "example": [
              "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxWEvDZRhKEefZ5sQS7RJZXWbSOPxus-ZyLQjtmrrAQawnKI-AG8BKpVdZVGlpcdxCnGbCIy8CKk2Oi7Mgdqfv5R_4_jI7yl4j7Svmh1Sw934eeF9RyB59Ihl36Y0pNfVW9hBqJuq2o8ulrA1TOtpTpje23CY8sjFE5QnJm1evZRB_ZZQ1txl4nrAiHkno4cVJPouBesryVGVQ0zi1bM0P-05Ydgksvph-1nyjnDldD68mejVF69Tijxa22b6BUCXEuPfbXZcW2NpM_W3msnvKiTWFaMlnIzGYIoFnAnCIVU7Min6CPn565tv0iyIt8BrcezsGzefUw17NEq0J4tCvWwIDAQAB"
            ]
          }
        },
        "description": "Public certificates specific to a Directory Server (DS) for encrypting device data and verifying ACS signed content. Required when channel is `app`."
      },
      "Eci": {
        "maxLength": 2,
        "minLength": 2,
        "type": "string",
        "description": "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`.\n",
        "example": "05"
      },
      "ErrorDetails": {
        "type": "object",
        "properties": {
          "error_code": {
            "type": "string",
            "description": "An error code identifying the type of issue.",
            "example": "101"
          },
          "error_component": {
            "type": "string",
            "description": "A code that specifies which 3D Secure component identified the error.",
            "example": "D"
          },
          "error_detail": {
            "maxLength": 2048,
            "type": "string",
            "description": "Provides additional details about the issue.",
            "example": "acctNumber"
          },
          "error_description": {
            "maxLength": 2048,
            "type": "string",
            "description": "A description of the issue identified.",
            "example": "Cardholder Account Number is not in a range belonging to Issuer."
          }
        },
        "description": "Provides additional information about the error returned."
      },
      "ErrorResponse": {
        "required": [
          "request_id",
          "error_type",
          "error_codes"
        ],
        "type": "object",
        "properties": {
          "request_id": {
            "type": "string",
            "example": "5342217f-7fa2-4626-a6c9-c979a04671a6"
          },
          "error_type": {
            "enum": [
              "operation_not_allowed",
              "not_implemented",
              "not_found",
              "forbidden",
              "callback_failed",
              "internal_server_error",
              "unprocessable_entity",
              "conflict",
              "duplicate_requests_detected",
              "service_not_available"
            ],
            "type": "string",
            "description": "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 />\n"
          },
          "error_codes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "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/>\nAlso, 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/>\n"
          }
        }
      },
      "Experience": {
        "enum": [
          "3ds",
          "google_spa"
        ],
        "type": "string",
        "description": "The authentication experience that was used for processing",
        "example": "3ds"
      },
      "GetBaseSessionLinks": {
        "required": [
          "self"
        ],
        "type": "object",
        "properties": {
          "self": {
            "required": [
              "href"
            ],
            "type": "object",
            "properties": {
              "href": {
                "maxLength": 100,
                "type": "string",
                "example": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2giaqnb441"
              }
            },
            "description": "The URI of the session"
          }
        },
        "description": "The links related to the session"
      },
      "GetFingerprintSessionLinks": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/GetBaseSessionLinks"
          }
        ],
        "properties": {
          "complete": {
            "required": [
              "href"
            ],
            "type": "object",
            "properties": {
              "href": {
                "maxLength": 100,
                "type": "string",
                "example": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2gia/complete"
              }
            },
            "description": "The URI to signal the session as complete. Only available if `next_actions` contains `complete`"
          },
          "issuer_fingerprint": {
            "required": [
              "href"
            ],
            "type": "object",
            "properties": {
              "href": {
                "maxLength": 100,
                "type": "string",
                "example": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2gia/issuer-fingerprint"
              }
            },
            "description": "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`\n"
          },
          "collect_channel_data": {
            "required": [
              "href"
            ],
            "type": "object",
            "properties": {
              "href": {
                "maxLength": 100,
                "type": "string",
                "example": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2gia/collect-data"
              }
            },
            "description": "The URI to send device information to. Only available if `next_actions` contains `collect_data`"
          },
          "three_ds_method_url": {
            "required": [
              "href"
            ],
            "type": "object",
            "properties": {
              "href": {
                "maxLength": 100,
                "type": "string",
                "example": "https://api.hsbc.com/3dsmethod?tx=123456"
              }
            },
            "description": "The URI of the issuer fingerprint (3DS method). Only available if `next_actions` contains `issuer_fingerprint`"
          }
        },
        "description": "The links related to the session"
      },
      "GetSessionLinks": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/GetBaseSessionLinks"
          }
        ],
        "properties": {
          "issuer_fingerprint": {
            "required": [
              "href"
            ],
            "type": "object",
            "properties": {
              "href": {
                "maxLength": 100,
                "type": "string",
                "example": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2gia/issuer-fingerprint"
              }
            },
            "description": "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`\n"
          },
          "collect_channel_data": {
            "required": [
              "href"
            ],
            "type": "object",
            "properties": {
              "href": {
                "maxLength": 100,
                "type": "string",
                "example": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2gia/collect-data"
              }
            },
            "description": "The URI to send device information to. Only available if `next_actions` contains `collect_data`"
          },
          "three_ds_method_url": {
            "required": [
              "href"
            ],
            "type": "object",
            "properties": {
              "href": {
                "maxLength": 100,
                "type": "string",
                "example": "https://api.hsbc.com/3dsmethod?tx=123456"
              }
            },
            "description": "The URI of the issuer fingerprint (3DS method). Only available if `next_actions` contains `issuer_fingerprint`"
          },
          "acs_url": {
            "required": [
              "href"
            ],
            "type": "object",
            "properties": {
              "href": {
                "maxLength": 100,
                "type": "string",
                "example": "https://api.hsbc.com/challenge"
              }
            },
            "description": "Fully qualified URL of the ACS to be used for the challenge. Only available if `next_actions` contains `authenticate`"
          },
          "complete": {
            "required": [
              "href"
            ],
            "type": "object",
            "properties": {
              "href": {
                "maxLength": 100,
                "type": "string",
                "example": "https://{prefix}.api.checkout.com/sessions/sid_y3oqhf46pyzuxjbcn2gia/complete"
              }
            },
            "description": "The URI to signal the session as complete. Only available if `next_actions` contains `complete`"
          },
          "success_url": {
            "required": [
              "href"
            ],
            "type": "object",
            "properties": {
              "href": {
                "maxLength": 300,
                "type": "string"
              }
            },
            "description": "The cardholder will be redirected to this URI given an authentication was approved or attempted. Only available if the completion type is `hosted`."
          },
          "failure_url": {
            "required": [
              "href"
            ],
            "type": "object",
            "properties": {
              "href": {
                "maxLength": 300,
                "type": "string"
              }
            },
            "description": "The cardholder will be redirected to this URI given an authentication was not approved or attempted. Only available if the completion type is `hosted`."
          },
          "callback_url": {
            "required": [
              "href"
            ],
            "type": "object",
            "properties": {
              "href": {
                "maxLength": 300,
                "type": "string"
              }
            },
            "description": "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`."
          }
        },
        "description": "The links related to the session"
      },
      "GetSessionResponse": {
        "required": [
          "id",
          "transaction_id",
          "scheme",
          "amount",
          "currency",
          "authentication_type",
          "authentication_category",
          "status",
          "protocol_version",
          "_links",
          "challenge_indicator"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/SessionId"
          },
          "session_secret": {
            "$ref": "#/components/schemas/SessionSecret"
          },
          "transaction_id": {
            "maxLength": 36,
            "minLength": 36,
            "type": "string",
            "description": "The transaction identifier that needs to be provided when communicating directly with the Access Control Server (ACS)",
            "example": "9aea641d-0549-4222-9ca9-d90b43a4f38c"
          },
          "scheme": {
            "enum": [
              "visa",
              "mastercard",
              "jcb",
              "amex",
              "diners",
              "cartes_bancaires",
              "discover",
              "upi"
            ],
            "type": "string",
            "description": "Indicates the scheme this authentication is carried out against"
          },
          "amount": {
            "$ref": "#/components/schemas/Amount"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "completed": {
            "type": "boolean",
            "description": "Indicates whether this session has been completed",
            "example": false
          },
          "challenged": {
            "type": "boolean",
            "description": "Indicates whether this session involved a challenge. This will only be set after communication with the scheme is finished.",
            "example": true
          },
          "authentication_type": {
            "$ref": "#/components/schemas/AuthenticationType"
          },
          "authentication_category": {
            "$ref": "#/components/schemas/Category"
          },
          "certificates": {
            "$ref": "#/components/schemas/DsPublicKeys"
          },
          "status": {
            "$ref": "#/components/schemas/Status"
          },
          "status_reason": {
            "$ref": "#/components/schemas/StatusReason"
          },
          "approved": {
            "$ref": "#/components/schemas/Approved"
          },
          "protocol_version": {
            "$ref": "#/components/schemas/ProtocolVersion"
          },
          "account_info": {
            "$ref": "#/components/schemas/CardholderAccountInfo"
          },
          "merchant_risk_info": {
            "$ref": "#/components/schemas/MerchantRiskInfo"
          },
          "reference": {
            "$ref": "#/components/schemas/Reference"
          },
          "transaction_type": {
            "$ref": "#/components/schemas/TransactionType"
          },
          "next_actions": {
            "$ref": "#/components/schemas/NextActions"
          },
          "ds": {
            "$ref": "#/components/schemas/Ds"
          },
          "acs": {
            "$ref": "#/components/schemas/Acs"
          },
          "response_code": {
            "$ref": "#/components/schemas/ResponseCode"
          },
          "response_status_reason": {
            "$ref": "#/components/schemas/ResponseStatusReason"
          },
          "cryptogram": {
            "$ref": "#/components/schemas/Cryptogram"
          },
          "eci": {
            "$ref": "#/components/schemas/Eci"
          },
          "xid": {
            "type": "string",
            "description": "The xid value to use for authorization",
            "example": "XSUErNftqkiTdlkpSk8p32GWOFA"
          },
          "cardholder_info": {
            "type": "string",
            "description": "May provide cardholder information from the DS to be presented to the cardholder",
            "example": "Card declined. Please contact your issuing bank."
          },
          "card": {
            "$ref": "#/components/schemas/CardInfo"
          },
          "recurring": {
            "$ref": "#/components/schemas/Recurring"
          },
          "installment": {
            "$ref": "#/components/schemas/Installment"
          },
          "initial_transaction": {
            "$ref": "#/components/schemas/InitialTransaction"
          },
          "customer_ip": {
            "type": "string",
            "description": "Indicates the card holder's IP address.       Only available when the scheme selected is Cartes Bancaires.\n",
            "example": "192.168.1.1"
          },
          "_links": {
            "$ref": "#/components/schemas/GetSessionLinks"
          },
          "authentication_date": {
            "type": "string",
            "description": "Authentication date and time",
            "format": "date-time"
          },
          "exemption": {
            "type": "object",
            "properties": {
              "requested": {
                "enum": [
                  "none"
                ],
                "type": "string",
                "description": "Indicates merchant requested exemption"
              },
              "applied": {
                "enum": [
                  "none",
                  "low_value",
                  "transaction_risk_assessment",
                  "secure_corporate_payment",
                  "trusted_listing",
                  "3ds_outage",
                  "sca_delegation",
                  "out_of_sca_scope",
                  "other",
                  "low_risk_program"
                ],
                "type": "string",
                "description": "Indicates Issuer accepted or applied exemption"
              },
              "code": {
                "type": "string",
                "description": "Indicates Cartes Bancaire specific exemption value"
              },
              "trusted_beneficiary": {
                "$ref": "#/components/schemas/TrustedBeneficiary"
              }
            },
            "description": "Details related to exemption present in 3DS flow"
          },
          "flow_type": {
            "enum": [
              "challenged",
              "frictionless",
              "frictionless_delegated"
            ],
            "type": "string",
            "description": "Indicates whether the 3D Secure 2 authentication was challenged or frictionless"
          },
          "challenge_indicator": {
            "enum": [
              "no_preference",
              "no_challenge_requested",
              "challenge_requested",
              "challenge_requested_mandate"
            ],
            "type": "string",
            "description": "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",
            "default": "no_preference"
          },
          "optimization": {
            "type": "object",
            "properties": {
              "optimized": {
                "type": "boolean",
                "description": "Indicates if any optimization has been applied\n",
                "example": true
              },
              "framework": {
                "enum": [
                  "acceptance_rates"
                ],
                "type": "string",
                "description": "The optimization framework applied\n"
              },
              "optimized_properties": {
                "title": "OptimizedProperty",
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/OptimizedProperty"
                },
                "description": "The collection of fields optimized"
              }
            },
            "description": "The information about the optimization options selected\n"
          },
          "scheme_info": {
            "type": "object",
            "properties": {
              "name": {
                "enum": [
                  "cartes_bancaires",
                  "visa",
                  "mastercard"
                ],
                "type": "string",
                "description": "Indicates which scheme was used to perform authentication"
              },
              "score": {
                "type": "string",
                "description": "Risk score calculated by Directory Server (DS). Cartes Bancaires 3D Secure 2 only"
              },
              "avalgo": {
                "type": "string",
                "description": "Identification of the algorithm used by the ACS to calculate the Authentication Value indicated"
              }
            },
            "description": "Indicates scheme-specific information"
          },
          "3ds": {
            "type": "object",
            "properties": {
              "challenge_request": {
                "type": "string",
                "description": "The CReq message, encoded in Base 64.",
                "example": "eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjYwYTY2ZDRjLTdjY2EtNDc1Zi04YzMxLWFiMjkwNTI1M2M4NiIsImFjc1RyYW5zSUQiOiI1ODVhM2NlZi04OWQ4LTQ3ZDMtYjk4Yi0xMDhiMGRjYjEyYzEiLCJtZXNzYWdlVHlwZSI6IkNSZXEiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMi4wIiwiY2hhbGxlbmdlV2luZG93U2l6ZSI6IjA1In0"
              },
              "interaction_counter": {
                "maxLength": 2,
                "type": "string",
                "description": "The number of authentication attempts performed by the cardholder.",
                "example": "03"
              },
              "error_details": {
                "$ref": "#/components/schemas/ErrorDetails"
              }
            },
            "description": "This object provides more information about the 3DS experience"
          },
          "preferred_experiences": {
            "$ref": "#/components/schemas/PreferredExperiences"
          },
          "experience": {
            "$ref": "#/components/schemas/Experience"
          },
          "google_spa": {
            "$ref": "#/components/schemas/GoogleSpaInfo"
          }
        }
      },
      "GetSessionResponseAfterChannelDataSupplied": {
        "required": [
          "id",
          "transaction_id",
          "scheme",
          "amount",
          "currency",
          "authentication_type",
          "authentication_category",
          "status",
          "protocol_version",
          "_links"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/SessionId"
          },
          "session_secret": {
            "$ref": "#/components/schemas/SessionSecret"
          },
          "transaction_id": {
            "maxLength": 36,
            "minLength": 36,
            "type": "string",
            "description": "The transaction identifier that needs to be provided when communicating directly with the Access Control Server (ACS)",
            "example": "9aea641d-0549-4222-9ca9-d90b43a4f38c"
          },
          "scheme": {
            "enum": [
              "visa",
              "mastercard",
              "jcb",
              "amex",
              "diners",
              "cartes_bancaires",
              "discover",
              "upi"
            ],
            "type": "string",
            "description": "Indicates the scheme this authentication is carried out against"
          },
          "amount": {
            "$ref": "#/components/schemas/Amount"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "completed": {
            "type": "boolean",
            "description": "Indicates whether this session has been completed",
            "example": false
          },
          "challenged": {
            "type": "boolean",
            "description": "Indicates whether this session involved a challenge. This will only be set after communication with the scheme is finished.",
            "example": true
          },
          "authentication_type": {
            "$ref": "#/components/schemas/AuthenticationType"
          },
          "authentication_category": {
            "$ref": "#/components/schemas/Category"
          },
          "status": {
            "$ref": "#/components/schemas/Status"
          },
          "status_reason": {
            "$ref": "#/components/schemas/StatusReason"
          },
          "approved": {
            "$ref": "#/components/schemas/Approved"
          },
          "protocol_version": {
            "$ref": "#/components/schemas/ProtocolVersion"
          },
          "account_info": {
            "$ref": "#/components/schemas/CardholderAccountInfo"
          },
          "merchant_risk_info": {
            "$ref": "#/components/schemas/MerchantRiskInfo"
          },
          "reference": {
            "$ref": "#/components/schemas/Reference"
          },
          "transaction_type": {
            "$ref": "#/components/schemas/TransactionType"
          },
          "initial_transaction": {
            "$ref": "#/components/schemas/InitialTransaction"
          },
          "next_actions": {
            "$ref": "#/components/schemas/NextActions"
          },
          "ds": {
            "$ref": "#/components/schemas/Ds"
          },
          "acs": {
            "$ref": "#/components/schemas/Acs"
          },
          "response_code": {
            "$ref": "#/components/schemas/ResponseCode"
          },
          "response_status_reason": {
            "$ref": "#/components/schemas/ResponseStatusReason"
          },
          "cryptogram": {
            "$ref": "#/components/schemas/Cryptogram"
          },
          "eci": {
            "$ref": "#/components/schemas/Eci"
          },
          "xid": {
            "type": "string",
            "description": "The xid value to use for authorization",
            "example": "XSUErNftqkiTdlkpSk8p32GWOFA"
          },
          "preferred_experiences": {
            "$ref": "#/components/schemas/PreferredExperiences"
          },
          "experience": {
            "$ref": "#/components/schemas/Experience"
          },
          "google_spa": {
            "$ref": "#/components/schemas/GoogleSpaInfo"
          },
          "card": {
            "$ref": "#/components/schemas/CardInfo"
          },
          "_links": {
            "$ref": "#/components/schemas/GetFingerprintSessionLinks"
          },
          "3ds": {
            "type": "object",
            "properties": {
              "challenge_request": {
                "type": "string",
                "description": "The CReq message, encoded in Base 64.",
                "example": "eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjYwYTY2ZDRjLTdjY2EtNDc1Zi04YzMxLWFiMjkwNTI1M2M4NiIsImFjc1RyYW5zSUQiOiI1ODVhM2NlZi04OWQ4LTQ3ZDMtYjk4Yi0xMDhiMGRjYjEyYzEiLCJtZXNzYWdlVHlwZSI6IkNSZXEiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMi4wIiwiY2hhbGxlbmdlV2luZG93U2l6ZSI6IjA1In0"
              },
              "interaction_counter": {
                "maxLength": 2,
                "type": "string",
                "description": "The number of authentication attempts performed by the cardholder.",
                "example": "03"
              },
              "error_details": {
                "$ref": "#/components/schemas/ErrorDetails"
              }
            },
            "description": "Provides additional information about the 3DS authentication experience."
          }
        }
      },
      "GoogleSpaInfo": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/HostedGoogleSpaInfo"
          },
          {
            "$ref": "#/components/schemas/NonHostedGoogleSpaInfo"
          }
        ],
        "description": "Details of Google SPA (Secure Payment Authentication)\n \n"
      },
      "GoogleSpaToken": {
        "type": "object",
        "properties": {
          "number": {
            "type": "string",
            "description": "Value of token. Represented as a numerical string\n"
          },
          "expiry_month": {
            "type": "number",
            "description": "Expiry month of the token\n"
          },
          "expiry_year": {
            "type": "number",
            "description": "Expiry year of the token\n"
          }
        },
        "description": "Token for the given PAN provisioned and authenticated\n"
      },
      "HostedCompletionInfo": {
        "title": "hosted",
        "required": [
          "type",
          "success_url",
          "failure_url"
        ],
        "properties": {
          "type": {
            "maxLength": 10,
            "enum": [
              "hosted"
            ],
            "type": "string",
            "description": "Whether the session should be hosted by Checkout.com.\n",
            "example": "hosted"
          },
          "success_url": {
            "maxLength": 256,
            "type": "string",
            "description": "For `hosted` sessions, this overrides the default success redirect URL configured on your account",
            "format": "uri",
            "example": "http://example.com/payments/success"
          },
          "failure_url": {
            "maxLength": 256,
            "type": "string",
            "description": "For `hosted` sessions, this overrides the default failure redirect URL configured on your account",
            "format": "uri",
            "example": "http://example.com/payments/fail"
          }
        }
      },
      "HostedGoogleSpaInfo": {
        "title": "Hosted",
        "type": "object",
        "properties": {
          "token": {
            "$ref": "#/components/schemas/GoogleSpaToken"
          }
        },
        "description": "Details of Google SPA (Secure Payment Authentication) for a hosted authentication\n"
      },
      "IdSource": {
        "title": "id",
        "required": [
          "type",
          "id"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The payment source type",
            "default": "card",
            "example": "id"
          },
          "scheme": {
            "enum": [
              "amex",
              "cartes_bancaires",
              "diners",
              "mastercard",
              "visa",
              "discover",
              "upi",
              "jcb"
            ],
            "type": "string",
            "description": "Indicates the cardholder scheme choice"
          },
          "number": {
            "maxLength": 19,
            "minLength": 13,
            "type": "string",
            "description": "The card number.",
            "example": "4242424242424242"
          },
          "expiry_month": {
            "maximum": 12,
            "minimum": 1,
            "maxLength": 2,
            "minLength": 1,
            "type": "integer",
            "description": "The expiry month of the card.",
            "example": 12
          },
          "expiry_year": {
            "maxLength": 4,
            "minLength": 4,
            "type": "integer",
            "description": "The expiry year of the card.",
            "example": 2077
          },
          "billing_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SessionAddress"
              }
            ],
            "description": "The customer's billing address. Any special characters will be replaced."
          },
          "home_phone": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SessionPhone"
              }
            ],
            "description": "The cardholder's home phone number"
          },
          "mobile_phone": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SessionPhone"
              }
            ],
            "description": "The cardholder's mobile phone number"
          },
          "work_phone": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SessionPhone"
              }
            ],
            "description": "The cardholder's work phone number"
          },
          "email": {
            "maxLength": 254,
            "type": "string",
            "description": "The email of the cardholder",
            "example": "bruce.wayne@email.com"
          },
          "id": {
            "maxLength": 100,
            "type": "string",
            "description": "The card instrument id",
            "example": "src_4gzeau5o2uqubbk6fufs3m7p54"
          }
        }
      },
      "InitialTransaction": {
        "type": "object",
        "properties": {
          "acs_transaction_id": {
            "minLength": 36,
            "type": "string",
            "description": "The Access Control Server (ACS) transaction ID for a previously authenticated transaction"
          },
          "authentication_method": {
            "enum": [
              "frictionless_authentication",
              "challenge_occurred",
              "avs_verified",
              "other_issuer_methods"
            ],
            "type": "string"
          },
          "authentication_timestamp": {
            "type": "string",
            "description": "The timestamp of the previous authentication, in ISO 8601 format.",
            "example": "2023-02-06T15:00:00.000Z"
          },
          "authentication_data": {
            "maxLength": 2048,
            "type": "string",
            "description": "Data that documents and supports a specific authentication process"
          },
          "initial_session_id": {
            "maxLength": 30,
            "minLength": 30,
            "type": "string",
            "description": "The ID for a previous session, which is used for retrieve the initial transaction's properties",
            "example": "sid_p6prbhogijnuxgv4grm3ber55u"
          }
        },
        "description": "Details of a previous transaction"
      },
      "Installment": {
        "required": [
          "number_of_payments"
        ],
        "type": "object",
        "properties": {
          "number_of_payments": {
            "minimum": 2,
            "maxLength": 3,
            "type": "integer",
            "description": "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`.",
            "example": 2
          },
          "days_between_payments": {
            "type": "integer",
            "description": "Indicates the minimum number of days between authorisations. If no value is specified for an installment authentication type the default value will be used.",
            "default": 1,
            "example": 28
          },
          "expiry": {
            "type": "string",
            "description": "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.",
            "default": "99991231",
            "example": "20220901"
          }
        },
        "description": "Details of an installment authentication. This property is needed only for an installment authentication type. Value will be ignored in any other cases."
      },
      "MerchantInitiated": {
        "title": "merchant_initiated",
        "required": [
          "channel",
          "request_type"
        ],
        "properties": {
          "channel": {
            "enum": [
              "merchant_initiated"
            ],
            "type": "string"
          },
          "request_type": {
            "enum": [
              "recurring_transaction",
              "installment_transaction",
              "add_card",
              "maintain_card_information",
              "account_verification",
              "split_or_delayed_shipment",
              "top_up",
              "mail_order",
              "telephone_order",
              "whitelist_status_check",
              "other_payment"
            ],
            "type": "string"
          }
        }
      },
      "MerchantRiskInfo": {
        "type": "object",
        "properties": {
          "delivery_email": {
            "maxLength": 254,
            "type": "string",
            "description": "For Electronic delivery, the email address to which the merchandise was delivered.\n",
            "example": "brucewayne@email.com"
          },
          "delivery_timeframe": {
            "enum": [
              "electronic_delivery",
              "same_day",
              "overnight",
              "two_day_or_more"
            ],
            "type": "string",
            "description": "Indicates the merchandise delivery timeframe.\n"
          },
          "is_preorder": {
            "type": "boolean",
            "description": "Indicates whether the cardholder is placing an order for merchandise with a future availability or release date.\n",
            "example": true
          },
          "is_reorder": {
            "type": "boolean",
            "description": "Indicates whether the cardholder is reordering previously purchased merchandise.\n",
            "example": false
          },
          "shipping_indicator": {
            "enum": [
              "billing_address",
              "another_address_on_file",
              "not_on_file",
              "store_pick_up",
              "digital_goods",
              "travel_and_event_no_shipping",
              "other"
            ],
            "type": "string",
            "description": "Indicates the shipping method chosen for the transaction. Please choose an option that accurately describes the cardholder's specific transaction.\n"
          },
          "reorder_items_indicator": {
            "enum": [
              "first_time_ordered",
              "reordered"
            ],
            "type": "string",
            "description": "Specifies whether the cardholder is reordering merchandise they've previously purchased."
          },
          "pre_order_purchase_indicator": {
            "enum": [
              "merchandise_available",
              "future_availability"
            ],
            "type": "string",
            "description": "Specifies whether the cardholder is placing an order for merchandise with an availability date or release date in the future."
          },
          "pre_order_date": {
            "type": "string",
            "description": "The UTC date the pre-ordered merchandise is expected to be available, in ISO 8601 format.",
            "format": "date-time"
          },
          "gift_card_amount": {
            "maxLength": 15,
            "type": "string",
            "description": "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.",
            "example": "123"
          },
          "gift_card_currency": {
            "maxLength": 3,
            "minLength": 3,
            "type": "string",
            "description": "The currency code of the gift card,  as a three-digit ISO 4217 code. Only applicable for prepaid or gift card purchases.",
            "example": "USD"
          },
          "gift_card_count": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string",
            "description": "The total number of individual prepaid cards, gift cards, or gift codes purchased. Only applicable for prepaid or gift card purchases.",
            "example": "02"
          }
        },
        "description": "Additional information about the cardholder's purchase.\n"
      },
      "NetworkTokenSource": {
        "title": "network_token",
        "required": [
          "type",
          "token",
          "expiry_month",
          "expiry_year"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The payment source type",
            "default": "card",
            "example": "network_token"
          },
          "scheme": {
            "enum": [
              "amex",
              "cartes_bancaires",
              "diners",
              "mastercard",
              "visa",
              "discover",
              "upi",
              "jcb"
            ],
            "type": "string",
            "description": "Indicates the cardholder scheme choice"
          },
          "number": {
            "maxLength": 19,
            "minLength": 13,
            "type": "string",
            "description": "The card number.",
            "example": "4242424242424242"
          },
          "expiry_month": {
            "maximum": 12,
            "minimum": 1,
            "maxLength": 2,
            "minLength": 1,
            "type": "integer",
            "description": "The expiry month of the card.",
            "example": 12
          },
          "expiry_year": {
            "maxLength": 4,
            "minLength": 4,
            "type": "integer",
            "description": "The expiry year of the card.",
            "example": 2077
          },
          "billing_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SessionAddress"
              }
            ],
            "description": "The customer's billing address. Any special characters will be replaced."
          },
          "home_phone": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SessionPhone"
              }
            ],
            "description": "The cardholder's home phone number"
          },
          "mobile_phone": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SessionPhone"
              }
            ],
            "description": "The cardholder's mobile phone number"
          },
          "work_phone": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SessionPhone"
              }
            ],
            "description": "The cardholder's work phone number"
          },
          "email": {
            "maxLength": 254,
            "type": "string",
            "description": "The email of the cardholder",
            "example": "bruce.wayne@email.com"
          },
          "token": {
            "maxLength": 19,
            "minLength": 9,
            "type": "string",
            "description": "The network token PAN",
            "example": "4543474002249996"
          },
          "name": {
            "maxLength": 45,
            "minLength": 2,
            "type": "string",
            "description": "The customer's name. Any special characters will be replaced.",
            "example": "Bruce Wayne"
          },
          "stored": {
            "type": "boolean",
            "description": "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.",
            "default": false,
            "example": true
          }
        }
      },
      "NextActions": {
        "type": "array",
        "items": {
          "enum": [
            "redirect_cardholder",
            "collect_channel_data",
            "issuer_fingerprint",
            "challenge_cardholder",
            "complete"
          ],
          "type": "string"
        },
        "description": "Specifies which action to take in order to complete the session. \n\nThe `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>.\n"
      },
      "NonHostedCompletionInfo": {
        "title": "non_hosted",
        "required": [
          "type"
        ],
        "properties": {
          "type": {
            "maxLength": 10,
            "enum": [
              "non_hosted"
            ],
            "type": "string",
            "description": "Whether the session should be hosted by Checkout.com.\n",
            "example": "non_hosted"
          },
          "callback_url": {
            "maxLength": 256,
            "type": "string",
            "description": "For `non-hosted` sessions, you can define a URL to be called once the session is complete",
            "format": "uri",
            "example": "http://example.com/payments/callback/pay_mbabizu24mvu3mela5njyhpit4"
          },
          "challenge_notification_url": {
            "maxLength": 256,
            "type": "string",
            "description": "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.",
            "format": "uri",
            "example": "http://example.com/payments/challenge/sid_mbabizu24mvu3mela5njyhpit4"
          }
        }
      },
      "NonHostedGoogleSpaInfo": {
        "title": "Non Hosted",
        "type": "object",
        "properties": {
          "challenge_url": {
            "type": "string",
            "description": "Fully qualified URL of the Google SPA (Secure Payment Authentication) frontend for user challenge/unlock\n"
          },
          "initial_timeout": {
            "type": "string",
            "description": "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)\n"
          },
          "max_timeout": {
            "type": "string",
            "description": "Indicates maximum amount of time (in minutes) allowed for completing all PSP-Google message exchanges for current authentication session\n"
          },
          "iframe": {
            "type": "object",
            "properties": {
              "height": {
                "type": "string",
                "description": "Height of the challenge iframe displayed in the Cardholder browser window.\n"
              },
              "width": {
                "type": "string",
                "description": "Width of the challenge iframe displayed in the Cardholder browser window.\n"
              }
            },
            "description": "Details of the challenge iframe displayed in the Cardholder browser window\n"
          },
          "token": {
            "$ref": "#/components/schemas/GoogleSpaToken"
          }
        },
        "description": "Details of Google SPA (Secure Payment Authentication) for a non-hosted authentication\n"
      },
      "Optimization": {
        "type": "object",
        "properties": {
          "framework": {
            "enum": [
              "acceptance_rates"
            ],
            "type": "string",
            "description": "The theme-based option for optimization\n"
          }
        },
        "description": "Optionally opt into request optimization\n"
      },
      "OptimizedProperty": {
        "type": "object",
        "properties": {
          "field": {
            "type": "string",
            "description": "Name of the field which has been optimized.\n",
            "example": "challenge_indicator"
          },
          "original_value": {
            "type": "string",
            "description": "Value prior to optimization.\n",
            "example": "trusted_listing"
          },
          "optimized_value": {
            "type": "string",
            "description": "Value prior to optimization.\n",
            "example": "transaction_risk_assessment"
          }
        },
        "description": "Optionally opt into request optimization\n"
      },
      "PreferredExperiences": {
        "type": "object",
        "properties": {
          "google_spa": {
            "type": "object",
            "properties": {
              "status": {
                "enum": [
                  "available",
                  "unprocessed",
                  "processed",
                  "unavailable"
                ],
                "type": "string"
              },
              "reason": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Reason(s) why processing the experience was unsuccessful.\n",
                "example": [
                  "Invalid response"
                ]
              }
            },
            "description": "Google SPA experience.\n"
          },
          "3ds": {
            "type": "object",
            "properties": {
              "status": {
                "enum": [
                  "available",
                  "unprocessed",
                  "processed",
                  "unavailable"
                ],
                "type": "string"
              },
              "reason": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Reason(s) why processing the experience was unsuccessful.\n",
                "example": [
                  "Invalid response"
                ]
              }
            },
            "description": "3DS experience.\n"
          }
        },
        "description": "Preferred Experiences\n"
      },
      "ProtocolVersion": {
        "maxLength": 50,
        "type": "string",
        "description": "The protocol version number of the specification used by the API for authentication",
        "example": "2.2.0"
      },
      "Recurring": {
        "type": "object",
        "properties": {
          "days_between_payments": {
            "type": "integer",
            "description": "Indicates the minimum number of days between authorisations. If no value is specified for a recurring authentication type the default value will be used.",
            "default": 1,
            "example": 28
          },
          "expiry": {
            "type": "string",
            "description": "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.",
            "default": "99991231",
            "example": "20220901"
          }
        },
        "description": "Details of a recurring authentication. This property is needed only for a recurring authentication type. Value will be ignored in any other cases."
      },
      "Reference": {
        "maxLength": 100,
        "type": "string",
        "description": "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**",
        "example": "ORD-5023-4E89"
      },
      "ResponseCode": {
        "enum": [
          "Y",
          "N",
          "U",
          "A",
          "C",
          "D",
          "R",
          "I"
        ],
        "type": "string",
        "description": "Only available as a result of a 3DS2 authentication. \nThe 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.\n"
      },
      "ResponseStatusReason": {
        "type": "string",
        "description": "Only available as a result of a 3DS2 authentication. \nThe 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/>\n",
        "example": "01"
      },
      "SdkEphemeralPublicKey": {
        "type": "object",
        "properties": {
          "kty": {
            "enum": [
              "EC"
            ],
            "type": "string",
            "description": "The key type.",
            "example": "EC"
          },
          "crv": {
            "maxLength": 40,
            "type": "string",
            "description": "The type of elliptic curve.",
            "example": "P-256"
          },
          "x": {
            "maxLength": 100,
            "type": "string",
            "description": "x coordinate of the elliptic curve that is base64url-encoded.",
            "example": "f83OJ3D2xF1Bg8vub9tLe1gHMzV76e8Tus9uPHvRVEU"
          },
          "y": {
            "maxLength": 100,
            "type": "string",
            "description": "y coordinate of the elliptic curve that is base64url-encoded.",
            "example": "x_FEzRu9m36HLN_tue659LNpXW6pCyStikYjKIWI5a0"
          }
        },
        "description": "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"
      },
      "SessionAddress": {
        "type": "object",
        "properties": {
          "address_line1": {
            "maxLength": 50,
            "type": "string",
            "description": "The first line of the address",
            "example": "123 High St."
          },
          "address_line2": {
            "maxLength": 50,
            "type": "string",
            "description": "The second line of the address",
            "example": "ABC building"
          },
          "address_line3": {
            "maxLength": 50,
            "type": "string",
            "description": "The third line of the address",
            "example": "14 Wells Mews"
          },
          "city": {
            "maxLength": 50,
            "type": "string",
            "description": "The address city",
            "example": "London"
          },
          "state": {
            "maxLength": 3,
            "minLength": 3,
            "type": "string",
            "description": "The country subdivision code defined in ISO 3166-2",
            "example": "ENG"
          },
          "zip": {
            "maxLength": 16,
            "type": "string",
            "description": "The address zip/postal code",
            "example": "SW1A 1AA"
          },
          "country": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string",
            "description": "The two-letter <a href=\"https://www.checkout.com/docs/resources/codes/country-codes\" target=\"_blank\">ISO country code</a> of the address",
            "example": "GB"
          }
        },
        "description": "The shipping address. Any special characters will be replaced."
      },
      "SessionId": {
        "maxLength": 30,
        "minLength": 30,
        "pattern": "^(sid)_(\\w{26})$",
        "type": "string",
        "description": "Session unique identifier",
        "example": "sid_y3oqhf46pyzuxjbcn2giaqnb44"
      },
      "SessionMarketplaceData": {
        "type": "object",
        "properties": {
          "sub_entity_id": {
            "type": "string",
            "description": "The sub-entity that the authentication is being processed on behalf of",
            "example": "ent_rgyzti4x74xubmu72m6r3pvksa"
          }
        },
        "description": "Information related to authentication for payfac payments"
      },
      "SessionPhone": {
        "required": [
          "country_code",
          "number"
        ],
        "type": "object",
        "properties": {
          "country_code": {
            "maxLength": 3,
            "minLength": 1,
            "pattern": "^\\d{1,3}$",
            "type": "string",
            "description": "Country code. According to ITU-E.164",
            "example": "234"
          },
          "number": {
            "maxLength": 15,
            "pattern": "^\\d{1,15}$",
            "type": "string",
            "description": "The rest of the number. According to ITU-E.164",
            "example": "0204567895"
          }
        }
      },
      "SessionRequest": {
        "required": [
          "currency",
          "source",
          "completion"
        ],
        "type": "object",
        "properties": {
          "source": {
            "$ref": "#/components/schemas/SessionSource"
          },
          "amount": {
            "minimum": 0,
            "maxLength": 48,
            "type": "integer",
            "description": "The payment amount in the [minor currency unit](https://www.checkout.com/docs/payments/accept-payments/format-the-payment-amount).\n\nFor `recurring` and `installment` payment types, this value is required and must be greater than zero.\n\nOmitting this value will set `authentication_category` to `non_payment`.\n",
            "example": 6540
          },
          "currency": {
            "maxLength": 3,
            "minLength": 3,
            "type": "string",
            "description": "The three-letter ISO currency code\n",
            "example": "USD"
          },
          "processing_channel_id": {
            "pattern": "^(pc)_(\\w{26})$",
            "type": "string",
            "description": "The processing channel to be used for the session. Required if this was not set in the request for the OAuth token.\n"
          },
          "marketplace": {
            "$ref": "#/components/schemas/SessionMarketplaceData"
          },
          "authentication_type": {
            "$ref": "#/components/schemas/AuthenticationType"
          },
          "authentication_category": {
            "$ref": "#/components/schemas/Category"
          },
          "account_info": {
            "$ref": "#/components/schemas/CardholderAccountInfo"
          },
          "challenge_indicator": {
            "$ref": "#/components/schemas/ChallengeIndicator"
          },
          "billing_descriptor": {
            "$ref": "#/components/schemas/SessionsBillingDescriptor"
          },
          "reference": {
            "$ref": "#/components/schemas/Reference"
          },
          "merchant_risk_info": {
            "$ref": "#/components/schemas/MerchantRiskInfo"
          },
          "transaction_type": {
            "$ref": "#/components/schemas/TransactionType"
          },
          "shipping_address": {
            "$ref": "#/components/schemas/SessionAddress"
          },
          "shipping_address_matches_billing": {
            "type": "boolean",
            "description": "Indicates whether the cardholder shipping address and billing address are the same.\n",
            "example": false
          },
          "completion": {
            "$ref": "#/components/schemas/CompletionInfo"
          },
          "channel_data": {
            "$ref": "#/components/schemas/ChannelData"
          },
          "recurring": {
            "$ref": "#/components/schemas/Recurring"
          },
          "installment": {
            "$ref": "#/components/schemas/Installment"
          },
          "optimization": {
            "$ref": "#/components/schemas/Optimization"
          },
          "initial_transaction": {
            "$ref": "#/components/schemas/InitialTransaction"
          },
          "google_spa": {
            "type": "object",
            "properties": {
              "continue_url": {
                "type": "string",
                "description": "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/>\n"
              }
            },
            "description": "This object contains the Google SPA properties (non-hosted only)\n"
          },
          "preferred_experiences": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Experience"
            },
            "description": "Indicates the chosen experience(s) for this session.<br/> <br/> Available experiences include: <br/> • `3ds` <br/> • `google_spa` <br/>\n"
          },
          "device_information": {
            "$ref": "#/components/schemas/DeviceInformation"
          }
        }
      },
      "SessionSecret": {
        "maxLength": 48,
        "minLength": 48,
        "pattern": "^(sek)_(.{44})$",
        "type": "string",
        "description": "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.\n",
        "example": "sek_Dal7UyiH8rIFXA4PfgiIk2jUyQkVDeEWgVBEL4TsRTE="
      },
      "SessionSource": {
        "required": [
          "type"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/CardSource"
          },
          {
            "$ref": "#/components/schemas/IdSource"
          },
          {
            "$ref": "#/components/schemas/TokenSource"
          },
          {
            "$ref": "#/components/schemas/NetworkTokenSource"
          }
        ],
        "properties": {
          "type": {
            "type": "string",
            "description": "The payment source type",
            "default": "card",
            "example": "card"
          },
          "scheme": {
            "enum": [
              "amex",
              "cartes_bancaires",
              "diners",
              "mastercard",
              "visa",
              "discover",
              "upi",
              "jcb"
            ],
            "type": "string",
            "description": "Indicates the cardholder scheme choice"
          },
          "number": {
            "maxLength": 19,
            "minLength": 13,
            "type": "string",
            "description": "The card number.",
            "example": "4242424242424242"
          },
          "expiry_month": {
            "maximum": 12,
            "minimum": 1,
            "maxLength": 2,
            "minLength": 1,
            "type": "integer",
            "description": "The expiry month of the card.",
            "example": 12
          },
          "expiry_year": {
            "maxLength": 4,
            "minLength": 4,
            "type": "integer",
            "description": "The expiry year of the card.",
            "example": 2077
          },
          "billing_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SessionAddress"
              }
            ],
            "description": "The customer's billing address. Any special characters will be replaced."
          },
          "home_phone": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SessionPhone"
              }
            ],
            "description": "The cardholder's home phone number"
          },
          "mobile_phone": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SessionPhone"
              }
            ],
            "description": "The cardholder's mobile phone number"
          },
          "work_phone": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SessionPhone"
              }
            ],
            "description": "The cardholder's work phone number"
          },
          "email": {
            "maxLength": 254,
            "type": "string",
            "description": "The email of the cardholder",
            "example": "bruce.wayne@email.com"
          }
        },
        "description": "The source of the authentication.",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "card": "#/components/schemas/CardSource",
            "id": "#/components/schemas/IdSource",
            "token": "#/components/schemas/TokenSource",
            "network_token": "#/components/schemas/NetworkTokenSource"
          }
        }
      },
      "Status": {
        "enum": [
          "challenged",
          "pending",
          "processing",
          "challenge_abandoned",
          "expired",
          "approved",
          "attempted",
          "unavailable",
          "declined",
          "rejected"
        ],
        "type": "string",
        "description": "Indicates the status of the session"
      },
      "StatusReason": {
        "enum": [
          "ares_status",
          "ares_error",
          "rreq_error",
          "rreq_status",
          "risk_declined"
        ],
        "type": "string",
        "description": "When the Session is unavailable this will point to the reason it is so.  <br/><br/>\n• 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/>\n"
      },
      "ThreeDsMethodCompletion": {
        "required": [
          "three_ds_method_completion"
        ],
        "properties": {
          "three_ds_method_completion": {
            "maxLength": 1,
            "minLength": 1,
            "enum": [
              "Y",
              "N",
              "U"
            ],
            "type": "string",
            "description": "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.\n",
            "example": "Y"
          }
        },
        "description": "The result of the 3DS method url",
        "example": {
          "three_ds_method_completion": "Y"
        }
      },
      "ThreeDsRequestorAuthenticationInfo": {
        "type": "object",
        "properties": {
          "three_ds_req_auth_method": {
            "enum": [
              "no_threeds_requestor_authentication_occurred",
              "three3ds_requestor_own_credentials",
              "federated_id",
              "issuer_credentials",
              "third_party_authentication",
              "fido_authenticator",
              "fido_authenticator_fido_assurance_data_signed",
              "src_assurance_data"
            ],
            "type": "string",
            "description": "The mechanism used by the cardholder to authenticate with the 3DS Requestor."
          },
          "three_ds_req_auth_timestamp": {
            "type": "string",
            "description": "The UTC date and time the cardholder authenticated with the 3DS Requestor, in ISO 8601 format.",
            "format": "date-time"
          },
          "three_ds_req_auth_data": {
            "maxLength": 20000,
            "type": "string",
            "description": "Data that documents and supports a specific authentication process."
          }
        },
        "description": "Information about how the 3DS Requestor authenticated the cardholder before or during the transaction."
      },
      "TokenSource": {
        "title": "token",
        "required": [
          "type",
          "token"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The payment source type",
            "default": "card",
            "example": "token"
          },
          "scheme": {
            "enum": [
              "amex",
              "cartes_bancaires",
              "diners",
              "mastercard",
              "visa",
              "discover",
              "upi",
              "jcb"
            ],
            "type": "string",
            "description": "Indicates the cardholder scheme choice"
          },
          "number": {
            "maxLength": 19,
            "minLength": 13,
            "type": "string",
            "description": "The card number.",
            "example": "4242424242424242"
          },
          "expiry_month": {
            "maximum": 12,
            "minimum": 1,
            "maxLength": 2,
            "minLength": 1,
            "type": "integer",
            "description": "The expiry month of the card.",
            "example": 12
          },
          "expiry_year": {
            "maxLength": 4,
            "minLength": 4,
            "type": "integer",
            "description": "The expiry year of the card.",
            "example": 2077
          },
          "billing_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SessionAddress"
              }
            ],
            "description": "The customer's billing address. Any special characters will be replaced."
          },
          "home_phone": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SessionPhone"
              }
            ],
            "description": "The cardholder's home phone number"
          },
          "mobile_phone": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SessionPhone"
              }
            ],
            "description": "The cardholder's mobile phone number"
          },
          "work_phone": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SessionPhone"
              }
            ],
            "description": "The cardholder's work phone number"
          },
          "email": {
            "maxLength": 254,
            "type": "string",
            "description": "The email of the cardholder",
            "example": "bruce.wayne@email.com"
          },
          "token": {
            "maxLength": 100,
            "type": "string",
            "description": "The Checkout.com card token",
            "example": "tok_4gzeau5o2uqubbk6fufs3m7p54"
          }
        }
      },
      "TransactionType": {
        "maxLength": 50,
        "enum": [
          "goods_service",
          "check_acceptance",
          "account_funding",
          "quasi_card_transaction",
          "prepaid_activation_and_load"
        ],
        "type": "string",
        "description": "Identifies the type of transaction being authenticated",
        "default": "goods_service",
        "example": "goods_service"
      },
      "TrustedBeneficiary": {
        "type": "object",
        "properties": {
          "status": {
            "enum": [
              "Y",
              "N",
              "E",
              "P",
              "R",
              "U"
            ],
            "type": "string",
            "description": "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/>\n• 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\n",
            "example": "Y"
          },
          "source": {
            "type": "string",
            "description": "The system setting trusted beneficiary status.<br/><br/>\n• 01 = 3DS Server <br/> • 02 = DS <br/> • 03 = ACS <br/> • 80-99 = DS-specific values <br/>\n",
            "example": "01"
          }
        },
        "description": "Details of the trusted listing status of the merchant."
      },
      "AccountUpdaterRequest": {
        "type": "object",
        "properties": {
          "source_options": {
            "type": "object",
            "properties": {
              "card": {
                "$ref": "#/components/schemas/CardDetailsRequest"
              },
              "instrument": {
                "$ref": "#/components/schemas/Instrument"
              }
            },
            "description": "The source to update. You must provide either `card` or `instrument` object, but not both."
          }
        }
      },
      "AccountUpdaterResponse": {
        "required": [
          "account_update_status"
        ],
        "type": "object",
        "properties": {
          "account_update_status": {
            "enum": [
              "CARD_UPDATED",
              "CARD_EXPIRY_UPDATED",
              "CARD_CLOSED",
              "UPDATE_FAILED"
            ],
            "type": "string",
            "description": "Result of the update operation.",
            "example": "CARD_UPDATED"
          },
          "account_update_failure_code": {
            "enum": [
              "CARDHOLDER_OPT_OUT",
              "UP_TO_DATE",
              "NON_PARTICIPATING_BIN",
              "UNKNOWN"
            ],
            "type": "string",
            "description": "This field is returned when the update fails and the scheme returns an appropriate reason code. <p/>\n\nFor more information, see [Standalone Account Updater](https://checkout.com/docs/payments/store-and-manage-credentials/update-stored-credentials/standalone-account-updater)\n"
          },
          "card": {
            "$ref": "#/components/schemas/CardDetailsResponse"
          }
        }
      },
      "CardDetailsRequest": {
        "required": [
          "number",
          "expiry_month",
          "expiry_year"
        ],
        "type": "object",
        "properties": {
          "number": {
            "pattern": "^[0-9]+$",
            "type": "string",
            "description": "The card number.",
            "example": "5436424242424242"
          },
          "expiry_month": {
            "maximum": 12,
            "minimum": 1,
            "type": "integer",
            "description": "The expiry month of the card",
            "format": "int32",
            "example": 5
          },
          "expiry_year": {
            "type": "integer",
            "description": "The four-digit expiry year of the card",
            "format": "int32",
            "example": 2025
          }
        },
        "description": "The card details"
      },
      "CardDetailsResponse": {
        "required": [
          "expiry_month",
          "expiry_year"
        ],
        "type": "object",
        "properties": {
          "encrypted_card_number": {
            "type": "string",
            "description": "The encrypted full Primary Account Number (PAN). Returned only for PCI SAQ D merchants.",
            "example": "3nCryp73dFPANv4lu3"
          },
          "bin": {
            "pattern": "^\\d{6}$",
            "type": "string",
            "description": "The first 6 digits of the PAN.",
            "example": "543642"
          },
          "last4": {
            "pattern": "^\\d{4}$",
            "type": "string",
            "description": "Last 4 digits of the PAN.",
            "example": "4242"
          },
          "expiry_month": {
            "maximum": 12,
            "minimum": 1,
            "type": "integer",
            "description": "Expiry month. Expressed in number.",
            "format": "int32",
            "example": 5
          },
          "expiry_year": {
            "type": "integer",
            "description": "Four-digit expiry year.",
            "format": "int32",
            "example": 2025
          },
          "fingerprint": {
            "type": "string",
            "description": "Unique identifier for the card",
            "example": "abc123fingerprint"
          }
        },
        "description": "Updated card details. Fields vary depending on PCI compliance level."
      },
      "Instrument": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique instrument identifier",
            "example": "src_nmukohhu7vbe5f55ndwqzwv2c4"
          }
        },
        "description": "Instrument reference"
      },
      "Timestamp": {
        "type": "string",
        "description": "ISO 8601 timestamp",
        "format": "date-time"
      },
      "01_CardTokenRequest": {
        "title": "card",
        "required": [
          "type",
          "number",
          "expiry_month",
          "expiry_year"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "card"
            ],
            "type": "string",
            "description": "The type of card details to be tokenized",
            "example": "card"
          },
          "number": {
            "type": "string",
            "description": "The card number",
            "example": "4543474002249996"
          },
          "expiry_month": {
            "minimum": 1,
            "maxLength": 2,
            "minLength": 1,
            "type": "integer",
            "description": "The expiry month of the card",
            "example": 6
          },
          "expiry_year": {
            "maxLength": 4,
            "minLength": 4,
            "type": "integer",
            "description": "The expiry year of the card",
            "example": 2025
          },
          "name": {
            "type": "string",
            "description": "The cardholder's name",
            "example": "Bruce Wayne"
          },
          "cvv": {
            "maxLength": 4,
            "minLength": 3,
            "type": "string",
            "description": "The card verification value/code. 3 digits, except for American Express (4 digits)",
            "example": "956"
          },
          "pin": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string",
            "description": "The first 2 digits of the card PIN",
            "example": "12"
          },
          "billing_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "The payment source owner's billing address"
          },
          "phone": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PhoneNumber"
              }
            ],
            "description": "The payment source owner's phone number"
          }
        },
        "description": "Card Token Request"
      },
      "01_CardTokenResponse": {
        "title": "card",
        "required": [
          "type",
          "token",
          "expires_on",
          "expiry_month",
          "expiry_year",
          "last4",
          "bin",
          "scheme"
        ],
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TokenResponseType"
              },
              {
                "enum": [
                  "card"
                ],
                "type": "string"
              }
            ],
            "description": "The type of card details to be tokenized"
          },
          "token": {
            "type": "string",
            "description": "The reference token",
            "example": "tok_ubfj2q76miwundwlk72vxt2i7q"
          },
          "expires_on": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ServerTimestamp"
              }
            ],
            "description": "The date/time the token will expire"
          },
          "billing_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "The payment source owner's billing address"
          },
          "phone": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PhoneNumber"
              }
            ],
            "description": "The payment source owner's phone number"
          },
          "expiry_month": {
            "minimum": 1,
            "maxLength": 2,
            "minLength": 1,
            "type": "integer",
            "description": "The expiry month",
            "example": 6
          },
          "expiry_year": {
            "maxLength": 4,
            "minLength": 4,
            "type": "integer",
            "description": "The expiry year",
            "example": 2025
          },
          "name": {
            "type": "string",
            "description": "The cardholder's name",
            "example": "Bruce Wayne"
          },
          "scheme": {
            "type": "string",
            "description": "The card scheme",
            "example": "VISA"
          },
          "scheme_local": {
            "enum": [
              "cartes_bancaires"
            ],
            "type": "string",
            "description": "The local co-branded card scheme",
            "example": "cartes_bancaires"
          },
          "last4": {
            "maxLength": 4,
            "minLength": 4,
            "type": "string",
            "description": "The last four digits of the card number",
            "example": "9996"
          },
          "bin": {
            "maxLength": 6,
            "type": "string",
            "description": "The card issuer's Bank Identification Number (BIN)",
            "example": "454347"
          },
          "card_type": {
            "enum": [
              "CREDIT",
              "DEBIT",
              "PREPAID",
              "CHARGE",
              "DEFERRED DEBIT"
            ],
            "type": "string",
            "description": "The card type",
            "example": "CREDIT"
          },
          "card_category": {
            "enum": [
              "CONSUMER",
              "COMMERCIAL"
            ],
            "type": "string",
            "description": "The card category",
            "example": "CONSUMER"
          },
          "issuer": {
            "type": "string",
            "description": "The name of the card issuer",
            "example": "GOTHAM STATE BANK"
          },
          "issuer_country": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string",
            "description": "The card issuer's country (<a href=\"https://www.checkout.com/docs/resources/codes/country-codes\" target=\"blank\">two-letter ISO code</a>)",
            "example": "US"
          },
          "product_id": {
            "type": "string",
            "description": "The issuer/card scheme product identifier",
            "example": "F"
          },
          "product_type": {
            "type": "string",
            "description": "The issuer/card scheme product type",
            "example": "CLASSIC"
          }
        },
        "description": "Card Token Response"
      },
      "02_GooglePayTokenRequest": {
        "title": "googlepay",
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "googlepay"
            ],
            "type": "string",
            "description": "The type of card details to be tokenized",
            "example": "googlepay"
          },
          "token_data": {
            "type": "object",
            "properties": {
              "signature": {
                "type": "string",
                "description": "Verifies the message came from Google. The signature is created using ECDSA"
              },
              "protocolVersion": {
                "type": "string",
                "description": "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": {
                "type": "string",
                "description": "A serialized JSON string containing the encryptedMessage, ephemeralPublicKey, and tag. To simplify the signature verification process, this value is serialized"
              }
            },
            "description": "The Google Pay payment token",
            "example": {
              "protocolVersion": "ECv1",
              "signature": "TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ",
              "signedMessage": "{\"encryptedMessage\": \"ZW5jcnlwdGVkTWVzc2FnZQ==\", \"ephemeralPublicKey\": \"ZXBoZW1lcmFsUHVibGljS2V5\", \"tag\": \"c2lnbmF0dXJl\"}"
            }
          }
        },
        "description": "Google Pay Token Request"
      },
      "02_GooglePayTokenResponse": {
        "title": "googlepay",
        "required": [
          "type",
          "token",
          "expires_on",
          "expiry_month",
          "expiry_year",
          "last4",
          "bin",
          "scheme"
        ],
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TokenResponseType"
              },
              {
                "enum": [
                  "googlepay"
                ],
                "type": "string"
              }
            ],
            "description": "The type of card details to be tokenized"
          },
          "token": {
            "type": "string",
            "description": "The reference token",
            "example": "tok_ubfj2q76miwundwlk72vxt2i7q"
          },
          "expires_on": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ServerTimestamp"
              }
            ],
            "description": "The date/time the token will expire"
          },
          "expiry_month": {
            "minimum": 1,
            "maxLength": 2,
            "minLength": 1,
            "type": "integer",
            "description": "The expiry month",
            "example": 6
          },
          "expiry_year": {
            "maxLength": 4,
            "minLength": 4,
            "type": "integer",
            "description": "expiry year",
            "example": 2025
          },
          "scheme": {
            "type": "string",
            "description": "The card scheme",
            "example": "VISA"
          },
          "scheme_local": {
            "enum": [
              "cartes_bancaires"
            ],
            "type": "string",
            "description": "The local co-branded card scheme",
            "example": "cartes_bancaires"
          },
          "last4": {
            "type": "string",
            "description": "The last four digits of the card number",
            "example": "9996"
          },
          "bin": {
            "type": "string",
            "description": "The card issuer BIN",
            "example": "454347"
          },
          "card_type": {
            "enum": [
              "CREDIT",
              "DEBIT",
              "PREPAID",
              "CHARGE",
              "DEFERRED DEBIT"
            ],
            "type": "string",
            "description": "The card type",
            "example": "CREDIT"
          },
          "card_category": {
            "enum": [
              "CONSUMER",
              "COMMERCIAL"
            ],
            "type": "string",
            "description": "The card category",
            "example": "CONSUMER"
          },
          "issuer": {
            "type": "string",
            "description": "The name of the card issuer",
            "example": "GOTHAM STATE BANK"
          },
          "issuer_country": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string",
            "description": "The card issuer country ISO-2 code",
            "example": "US"
          },
          "product_id": {
            "type": "string",
            "description": "The issuer/card scheme product identifier",
            "example": "F"
          },
          "product_type": {
            "type": "string",
            "description": "The issuer/card scheme product type",
            "example": "CLASSIC"
          },
          "token_format": {
            "enum": [
              "pan_only",
              "cryptogram_3ds"
            ],
            "type": "string",
            "description": "The format of the token.",
            "example": "pan_only"
          }
        },
        "description": "Google Pay Token Response"
      },
      "03_ApplePayTokenRequest": {
        "title": "applepay",
        "required": [
          "type",
          "token_data"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "applepay"
            ],
            "type": "string",
            "description": "The type of card details to be tokenized",
            "example": "applepay"
          },
          "token_data": {
            "$ref": "#/components/schemas/TokenData"
          }
        },
        "description": "Apple Pay Token Request"
      },
      "03_ApplePayTokenResponse": {
        "title": "applepay",
        "required": [
          "type",
          "token",
          "expires_on",
          "expiry_month",
          "expiry_year",
          "last4",
          "bin",
          "scheme"
        ],
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TokenResponseType"
              },
              {
                "enum": [
                  "applepay"
                ],
                "type": "string"
              }
            ],
            "description": "The type of card details to be tokenized"
          },
          "token": {
            "type": "string",
            "description": "The reference token",
            "example": "tok_ubfj2q76miwundwlk72vxt2i7q"
          },
          "expires_on": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ServerTimestamp"
              }
            ],
            "description": "The date/time the token will expire"
          },
          "expiry_month": {
            "minimum": 1,
            "maxLength": 2,
            "minLength": 1,
            "type": "integer",
            "description": "The expiry month",
            "example": 6
          },
          "expiry_year": {
            "maxLength": 4,
            "minLength": 4,
            "type": "integer",
            "description": "expiry year",
            "example": 2025
          },
          "scheme": {
            "type": "string",
            "description": "The card scheme",
            "example": "VISA"
          },
          "scheme_local": {
            "enum": [
              "cartes_bancaires"
            ],
            "type": "string",
            "description": "The local co-branded card scheme",
            "example": "cartes_bancaires"
          },
          "last4": {
            "type": "string",
            "description": "The last four digits of the card number",
            "example": "9996"
          },
          "bin": {
            "type": "string",
            "description": "The card issuer BIN",
            "example": "454347"
          },
          "card_type": {
            "enum": [
              "CREDIT",
              "DEBIT",
              "PREPAID",
              "CHARGE",
              "DEFERRED DEBIT"
            ],
            "type": "string",
            "description": "The card type",
            "example": "CREDIT"
          },
          "card_category": {
            "enum": [
              "CONSUMER",
              "COMMERCIAL"
            ],
            "type": "string",
            "description": "The card category",
            "example": "CONSUMER"
          },
          "issuer": {
            "type": "string",
            "description": "The name of the card issuer",
            "example": "GOTHAM STATE BANK"
          },
          "issuer_country": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string",
            "description": "The card issuer country ISO-2 code",
            "example": "US"
          },
          "product_id": {
            "type": "string",
            "description": "The issuer/card scheme product identifier",
            "example": "F"
          },
          "product_type": {
            "type": "string",
            "description": "The issuer/card scheme product type",
            "example": "CLASSIC"
          },
          "token_format": {
            "enum": [
              "cryptogram_3ds"
            ],
            "type": "string",
            "description": "The format of the token.",
            "example": "cryptogram_3ds"
          }
        },
        "description": "Apple Pay Token Response"
      },
      "04_CvvTokenRequest": {
        "title": "cvv",
        "required": [
          "type",
          "token_data"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "cvv"
            ],
            "type": "string",
            "description": "The type of card details to be tokenized",
            "example": "cvv"
          },
          "token_data": {
            "type": "object",
            "properties": {
              "cvv": {
                "maxLength": 4,
                "minLength": 3,
                "type": "string",
                "description": "The card verification value/code. 3 digits, except for American Express (4 digits)",
                "example": "956"
              }
            },
            "description": "Data containing the CVV token value",
            "example": {
              "cvv": "123"
            }
          }
        },
        "description": "CVV Token Request"
      },
      "04_CvvTokenResponse": {
        "title": "cvv",
        "required": [
          "type",
          "token",
          "expires_on"
        ],
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TokenResponseType"
              },
              {
                "enum": [
                  "cvv"
                ],
                "type": "string"
              }
            ],
            "description": "The type of card details to be tokenized"
          },
          "token": {
            "type": "string",
            "description": "The token id.",
            "example": "tok_ubfj2q76miwundwlk72vxt2i7q"
          },
          "expires_on": {
            "type": "string",
            "description": "The expiry value for the token id.",
            "format": "date-time",
            "example": "2023-07-11T15:57:32.4350000+00:00"
          }
        },
        "description": "CVV Token Response"
      },
      "05_PinTokenRequest": {
        "title": "pin",
        "required": [
          "type",
          "token_data"
        ],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "pin"
            ],
            "type": "string",
            "description": "The type of card details to be tokenized",
            "example": "pin"
          },
          "token_data": {
            "type": "object",
            "properties": {
              "pin": {
                "type": "string",
                "description": "The first 2 digits of the card PIN"
              }
            },
            "description": "Data containing the PIN token value",
            "example": {
              "pin": "12"
            }
          }
        },
        "description": "PIN Token Request"
      },
      "05_PinTokenResponse": {
        "title": "pin",
        "required": [
          "type",
          "token",
          "expires_on"
        ],
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TokenResponseType"
              },
              {
                "enum": [
                  "pin"
                ],
                "type": "string"
              }
            ],
            "description": "The type of card details to be tokenized"
          },
          "token": {
            "type": "string",
            "description": "The token id.",
            "example": "tok_ubfj2q76miwundwlk72vxt2i7q"
          },
          "expires_on": {
            "type": "string",
            "description": "The expiry value for the token id.",
            "format": "date-time",
            "example": "2023-07-11T15:57:32.4350000+00:00"
          }
        },
        "description": "PIN Token Response"
      },
      "TokenData": {
        "type": "object",
        "properties": {
          "version": {
            "type": "string",
            "description": "Version information about the payment token. The token uses `EC_v1` for ECC-encrypted data, and `RSA_v1` for RSA-encrypted data"
          },
          "data": {
            "type": "string",
            "description": "Encrypted payment data. Base64 encoded as a string"
          },
          "signature": {
            "type": "string",
            "description": "Signature of the payment and header data. The signature includes the signing certificate, its intermediate CA certificate, and information about the signing algorithm"
          },
          "header": {
            "type": "object",
            "description": "Additional version-dependent information used to decrypt and verify the payment"
          }
        },
        "description": "The Apple Pay payment token",
        "example": {
          "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"
          }
        }
      },
      "TokenMetadataResponse": {
        "required": [
          "token",
          "type",
          "expires_on",
          "expiry_month",
          "expiry_year",
          "last4",
          "bin",
          "scheme"
        ],
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "description": "The token ID",
            "example": "tok_4gzeau5o2uqubbk6fudbloo47a"
          },
          "type": {
            "type": "string",
            "description": "The token type.",
            "example": "card"
          },
          "expires_on": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ServerTimestamp"
              }
            ],
            "description": "The date/time the token will expire."
          },
          "expiry_month": {
            "maximum": 12,
            "minimum": 1,
            "type": "integer",
            "description": "The card expiry month.",
            "example": 12
          },
          "expiry_year": {
            "type": "integer",
            "description": "The card expiry year.",
            "example": 2030
          },
          "scheme": {
            "type": "string",
            "description": "The card scheme.",
            "example": "Visa"
          },
          "last4": {
            "type": "string",
            "description": "The last four digits of the card number.",
            "example": "4242"
          },
          "bin": {
            "type": "string",
            "description": "The card issuer BIN.",
            "example": "424242"
          },
          "card_type": {
            "enum": [
              "CREDIT",
              "DEBIT",
              "PREPAID",
              "CHARGE",
              "DEFERRED DEBIT"
            ],
            "type": "string",
            "description": "The card type.",
            "example": "CREDIT"
          },
          "card_category": {
            "enum": [
              "CONSUMER",
              "COMMERCIAL"
            ],
            "type": "string",
            "description": "The card category.",
            "example": "CONSUMER"
          },
          "issuer": {
            "type": "string",
            "description": "The name of the card issuer.",
            "example": "JPMORGAN CHASE BANK NA"
          },
          "issuer_country": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string",
            "description": "The card issuer's country (<a href=\"https://www.checkout.com/docs/previous/resources/codes/country-codes\" target=\"blank\">two-letter ISO code</a>).",
            "example": "US"
          },
          "product_id": {
            "type": "string",
            "description": "The issuer or card scheme's product identifier.",
            "example": "A"
          },
          "product_type": {
            "type": "string",
            "description": "The issuer or card scheme's product type.",
            "example": "Visa Traditional"
          },
          "billing_address": {
            "type": "object",
            "properties": {
              "city": {
                "type": "string",
                "description": "The address city",
                "example": "London"
              },
              "country": {
                "maxLength": 2,
                "minLength": 2,
                "type": "string",
                "description": "The billing address country's (<a href=\"https://www.checkout.com/docs/previous/resources/codes/country-codes\" target=\"blank\">two-letter ISO code</a>).",
                "example": "GB"
              }
            },
            "description": "Partial billing address — city and country only.",
            "nullable": true
          }
        }
      },
      "TokenRequest": {
        "required": [
          "type"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/01_CardTokenRequest"
          },
          {
            "$ref": "#/components/schemas/02_GooglePayTokenRequest"
          },
          {
            "$ref": "#/components/schemas/03_ApplePayTokenRequest"
          },
          {
            "$ref": "#/components/schemas/04_CvvTokenRequest"
          },
          {
            "$ref": "#/components/schemas/05_PinTokenRequest"
          }
        ],
        "description": "The source of the payment",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "card": "#/components/schemas/01_CardTokenRequest",
            "googlepay": "#/components/schemas/02_GooglePayTokenRequest",
            "applepay": "#/components/schemas/03_ApplePayTokenRequest",
            "cvv": "#/components/schemas/04_CvvTokenRequest",
            "pin": "#/components/schemas/05_PinTokenRequest"
          }
        }
      },
      "TokenResponse": {
        "required": [
          "type",
          "token",
          "expires_on"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/01_CardTokenResponse"
          },
          {
            "$ref": "#/components/schemas/02_GooglePayTokenResponse"
          },
          {
            "$ref": "#/components/schemas/03_ApplePayTokenResponse"
          },
          {
            "$ref": "#/components/schemas/04_CvvTokenResponse"
          },
          {
            "$ref": "#/components/schemas/05_PinTokenResponse"
          }
        ],
        "properties": {
          "type": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/TokenResponseType"
              }
            ],
            "description": "The type of card details to be tokenized",
            "example": "card"
          },
          "token": {
            "type": "string",
            "description": "The reference token",
            "example": "tok_ubfj2q76miwundwlk72vxt2i7q"
          },
          "expires_on": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ServerTimestamp"
              }
            ],
            "description": "The date/time the token will expire"
          },
          "expiry_month": {
            "minimum": 1,
            "maxLength": 2,
            "minLength": 1,
            "type": "integer",
            "description": "The expiry month",
            "example": 6
          },
          "expiry_year": {
            "maxLength": 4,
            "minLength": 4,
            "type": "integer",
            "description": "expiry year",
            "example": 2025
          },
          "scheme": {
            "type": "string",
            "description": "The card scheme",
            "example": "VISA"
          },
          "scheme_local": {
            "enum": [
              "cartes_bancaires"
            ],
            "type": "string",
            "description": "The local co-branded card scheme",
            "example": "cartes_bancaires"
          },
          "last4": {
            "type": "string",
            "description": "The last four digits of the card number",
            "example": "9996"
          },
          "bin": {
            "type": "string",
            "description": "The card issuer BIN",
            "example": "454347"
          },
          "card_type": {
            "enum": [
              "CREDIT",
              "DEBIT",
              "PREPAID",
              "CHARGE",
              "DEFERRED DEBIT"
            ],
            "type": "string",
            "description": "The card type",
            "example": "CREDIT"
          },
          "card_category": {
            "enum": [
              "CONSUMER",
              "COMMERCIAL"
            ],
            "type": "string",
            "description": "The card category",
            "example": "CONSUMER"
          },
          "issuer": {
            "type": "string",
            "description": "The name of the card issuer",
            "example": "GOTHAM STATE BANK"
          },
          "issuer_country": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string",
            "description": "The card issuer country ISO-2 code",
            "example": "US"
          },
          "product_id": {
            "type": "string",
            "description": "The issuer/card scheme product identifier",
            "example": "F"
          },
          "product_type": {
            "type": "string",
            "description": "The issuer/card scheme product type",
            "example": "CLASSIC"
          }
        },
        "description": "The source of the payment",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "card": "#/components/schemas/01_CardTokenResponse",
            "googlepay": "#/components/schemas/02_GooglePayTokenResponse",
            "applepay": "#/components/schemas/03_ApplePayTokenResponse",
            "cvv": "#/components/schemas/04_CvvTokenResponse",
            "pin": "#/components/schemas/05_PinTokenResponse"
          }
        }
      },
      "TokenResponseType": {
        "enum": [
          "card",
          "googlepay",
          "applepay",
          "cvv",
          "pin"
        ],
        "type": "string",
        "description": "Ordered list of token response types used for discriminators"
      },
      "CreateTransferRequest": {
        "title": "Create transfer request",
        "required": [
          "transfer_type",
          "source",
          "destination"
        ],
        "type": "object",
        "properties": {
          "reference": {
            "maxLength": 50,
            "type": "string",
            "description": "A reference you can use later to identify this transfer",
            "example": "superhero1234"
          },
          "transfer_type": {
            "$ref": "#/components/schemas/TransferType"
          },
          "source": {
            "required": [
              "id",
              "amount"
            ],
            "allOf": [
              {
                "$ref": "#/components/schemas/TransferSource"
              }
            ]
          },
          "destination": {
            "required": [
              "id"
            ],
            "allOf": [
              {
                "$ref": "#/components/schemas/TransferDestination"
              }
            ]
          }
        }
      },
      "CreateTransferResponse": {
        "title": "Create transfer response",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The `id` representing the initiated transfer.",
            "example": "tra_y3oqhf46pyzuxjbcn2giaqnb4"
          },
          "status": {
            "$ref": "#/components/schemas/TransferStatus"
          },
          "_links": {
            "type": "object",
            "properties": {
              "self": {
                "$ref": "#/components/schemas/TransferLink"
              }
            },
            "example": {
              "self": {
                "href": "https://transfers.checkout.com/transfers/tra_y3oqhf46pyzuxjbcn2giaqnb4"
              }
            }
          }
        }
      },
      "Transfer": {
        "title": "The transfer information",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The transfer identifier",
            "example": "tra_y3oqhf46pyzuxjbcn2giaqnb4"
          },
          "reference": {
            "type": "string",
            "description": "A unique reference used to identify this transfer",
            "example": "superhero1234"
          },
          "status": {
            "$ref": "#/components/schemas/TransferStatus"
          },
          "transfer_type": {
            "$ref": "#/components/schemas/TransferType"
          },
          "requested_on": {
            "type": "string",
            "description": "The date the transfer was requested on",
            "example": "2021-12-15T09:15:02.3845763Z"
          },
          "reason_codes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "An optional set of reason codes describing why the transfer is in its current state",
            "example": [
              "destination_transfers_capability_disabled",
              "source_and_destination_currency_accounts_must_be_different"
            ]
          },
          "source": {
            "type": "object",
            "properties": {
              "entity_id": {
                "type": "string",
                "description": "The ID of the entity that sent the transfer",
                "example": "ent_azsiyswl7bwe2ynjzujy7lcjca"
              },
              "amount": {
                "type": "integer",
                "description": "The amount transferred, in the minor unit of the currency represented by the `currency` property",
                "example": 100
              },
              "currency": {
                "type": "string",
                "description": "The ISO currency code of the funds being transferred",
                "example": "GBP"
              }
            },
            "description": "The source of the funds involved in the transfer"
          },
          "destination": {
            "type": "object",
            "properties": {
              "entity_id": {
                "type": "string",
                "description": "The ID of the entity that received the transfer",
                "example": "ent_bqik7gxoavwhmy3ot6kvmbx6py"
              }
            },
            "description": "The destination of the funds involved in the transfer"
          },
          "_links": {
            "type": "object",
            "properties": {
              "self": {
                "$ref": "#/components/schemas/TransferLink"
              }
            },
            "example": {
              "self": {
                "href": "https://transfers.checkout.com/transfers/tra_y3oqhf46pyzuxjbcn2giaqnb4"
              }
            }
          }
        },
        "example": {
          "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"
            }
          }
        }
      },
      "TransferDestination": {
        "title": "Transfer destination",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The identifier representing the destination of the funds. Currently this should be an entity ID.",
            "example": "ent_w4jelhppmfiufdnatam37wrfc4"
          }
        },
        "description": "The object representing the destination of the funds involved in the transfer."
      },
      "TransferLink": {
        "title": "Transfer link",
        "type": "object",
        "properties": {
          "href": {
            "type": "string",
            "description": "The link URL."
          }
        }
      },
      "TransferSource": {
        "title": "Transfer source",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The identifier representing the source of the funds. Currently this should be an entity ID.",
            "example": "ent_azsiyswl7bwe2ynjzujy7lcjca"
          },
          "amount": {
            "type": "integer",
            "description": "The amount to be transferred, in the minor unit of the currency (which is represented by the `id` and, optionally, the `currency` property)",
            "example": 100
          },
          "currency": {
            "type": "string",
            "description": "The currency that the transfer should be made in. This should be a currency supported by both the source and destination of the transfer.",
            "format": "ISO 4217",
            "example": "GBP"
          }
        },
        "description": "The object representing the source of the funds involved in the transfer."
      },
      "TransferStatus": {
        "title": "Transfer status",
        "enum": [
          "pending",
          "completed",
          "rejected"
        ],
        "type": "string",
        "description": "The current state of the initiated transfer."
      },
      "TransferType": {
        "title": "Transfer type",
        "enum": [
          "commission",
          "promotion",
          "refund"
        ],
        "type": "string",
        "description": "The type of transfer"
      },
      "UnreferencedRefundRequestAccountHolder": {
        "required": [
          "type"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/UnreferencedRefundRequestIndividualAccountHolder"
          },
          {
            "$ref": "#/components/schemas/UnreferencedRefundRequestCorporateAccountHolder"
          },
          {
            "$ref": "#/components/schemas/UnreferencedRefundRequestGovernmentAccountHolder"
          }
        ],
        "description": "The unreferenced refund destination account holder.",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "individual": "#/components/schemas/UnreferencedRefundRequestIndividualAccountHolder",
            "corporate": "#/components/schemas/UnreferencedRefundRequestCorporateAccountHolder",
            "government": "#/components/schemas/UnreferencedRefundRequestGovernmentAccountHolder"
          }
        }
      },
      "UnreferencedRefundRequestCorporateAccountHolder": {
        "title": "corporate",
        "required": [
          "type",
          "company_name"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of account receiving the unreferenced refund.",
            "example": "corporate"
          },
          "company_name": {
            "maxLength": 50,
            "type": "string",
            "description": "The corporate account holder's company name.\n\nThis 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):\n\n  - a single character\n  - all non-alphabetic characters\n"
          },
          "billing_address": {
            "type": "object",
            "properties": {
              "address_line1": {
                "maxLength": 200,
                "type": "string",
                "description": "The first line of the address.\n"
              },
              "address_line2": {
                "maxLength": 200,
                "type": "string",
                "description": "The second line of the address."
              },
              "city": {
                "maxLength": 50,
                "type": "string",
                "description": "The address city."
              },
              "state": {
                "maxLength": 3,
                "minLength": 2,
                "type": "string",
                "description": "The address state.\n"
              },
              "zip": {
                "maxLength": 10,
                "type": "string",
                "description": "The address ZIP or postal code.\n\nYou must provide US ZIPs in the format `00000`, or `00000-0000`.\n"
              },
              "country": {
                "maxLength": 2,
                "minLength": 2,
                "type": "string",
                "description": "The address country, as a [two-letter ISO country code](https://www.checkout.com/docs/developer-resources/codes/country-codes).\n"
              }
            },
            "description": "The account holder's billing address.\n\nIf your company is incorporated in the United States, this field is required for all unreferenced refunds you perform.\n"
          },
          "phone": {
            "required": [
              "country_code",
              "number"
            ],
            "type": "object",
            "properties": {
              "country_code": {
                "maxLength": 7,
                "minLength": 1,
                "type": "string",
                "description": "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": {
                "maxLength": 25,
                "minLength": 6,
                "type": "string",
                "description": "The digits of the phone number, not including the `country_code`."
              }
            },
            "description": "The account holder's phone number."
          },
          "identification": {
            "required": [
              "type",
              "number"
            ],
            "type": "object",
            "properties": {
              "type": {
                "enum": [
                  "passport",
                  "driving_license",
                  "national_id",
                  "company_registration",
                  "tax_id"
                ],
                "type": "string",
                "description": "The type of identification for the account holder."
              },
              "number": {
                "maxLength": 25,
                "type": "string",
                "description": "The account holder's identification number."
              },
              "issuing_country": {
                "maxLength": 2,
                "minLength": 2,
                "type": "string",
                "description": "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).\n\nProviding `issuing_country` increases the likelihood of a successful identity verification.\n"
              },
              "date_of_expiry": {
                "maxLength": 10,
                "minLength": 10,
                "type": "string",
                "description": "If applicable, the expiration date of the account holder's identification, in the format `YYYY-MM-DD`.\n\nProviding `date_of_expiry` increases the likelihood of a successful identity verification.\n"
              }
            },
            "description": "The account holder's identification.\n\nProviding identification details for the unreferenced refund recipient increases the likelihood of a successful unreferenced refund.\n"
          },
          "email": {
            "maxLength": 255,
            "type": "string",
            "description": "The account holder's email address."
          }
        },
        "description": "The unreferenced refund destination account holder's details."
      },
      "UnreferencedRefundRequestGovernmentAccountHolder": {
        "title": "government",
        "required": [
          "type",
          "company_name"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of account receiving the unreferenced refund.",
            "example": "government"
          },
          "company_name": {
            "maxLength": 50,
            "type": "string",
            "description": "The account holder's company name.\n\nThis 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):\n\n  - a single character\n  - all non-alphabetic characters\n"
          },
          "billing_address": {
            "type": "object",
            "properties": {
              "address_line1": {
                "maxLength": 200,
                "type": "string",
                "description": "The first line of the address.\n"
              },
              "address_line2": {
                "maxLength": 200,
                "type": "string",
                "description": "The second line of the address."
              },
              "city": {
                "maxLength": 50,
                "type": "string",
                "description": "The address city."
              },
              "state": {
                "maxLength": 3,
                "minLength": 2,
                "type": "string",
                "description": "The address state."
              },
              "zip": {
                "maxLength": 10,
                "type": "string",
                "description": "The address ZIP or postal code.\n\nYou must provide United States ZIPs in the format `00000`, or `00000-0000`.\n"
              },
              "country": {
                "maxLength": 2,
                "minLength": 2,
                "type": "string",
                "description": "The address country, as a [two-letter ISO country code](https://www.checkout.com/docs/developer-resources/codes/country-codes).\n"
              }
            },
            "description": "The account holder's billing address.\n\nIf your company is incorporated in the United States, this field is required for all unreferenced refunds you perform.\n"
          },
          "phone": {
            "required": [
              "country_code",
              "number"
            ],
            "type": "object",
            "properties": {
              "country_code": {
                "maxLength": 7,
                "minLength": 1,
                "type": "string",
                "description": "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": {
                "maxLength": 25,
                "minLength": 6,
                "type": "string",
                "description": "The digits for the phone number, not including the `country_code`."
              }
            },
            "description": "The account holder's phone number."
          },
          "identification": {
            "required": [
              "type",
              "number"
            ],
            "type": "object",
            "properties": {
              "type": {
                "enum": [
                  "passport",
                  "driving_license",
                  "national_id",
                  "company_registration",
                  "tax_id"
                ],
                "type": "string",
                "description": "The type of identification for the account holder."
              },
              "number": {
                "maxLength": 25,
                "type": "string",
                "description": "The account holder's identification number."
              },
              "issuing_country": {
                "maxLength": 2,
                "minLength": 2,
                "type": "string",
                "description": "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).\n\nProviding `issuing_country` increases the likelihood of a successful identity verification.\n"
              },
              "date_of_expiry": {
                "maxLength": 10,
                "minLength": 10,
                "type": "string",
                "description": "If applicable, the expiration date of the account holder's identification, in the format `YYYY-MM-DD`.\n\nProviding `date_of_expiry` increases the likelihood of a successful identity verification.\n"
              }
            },
            "description": "The account holder's identification.\n\nProviding identification details for the unreferenced refund recipient increases the likelihood of a successful unreferenced refund.\n"
          },
          "email": {
            "maxLength": 255,
            "type": "string",
            "description": "The account holder's email address."
          }
        },
        "description": "The unreferenced refund destination account holder's details."
      },
      "UnreferencedRefundRequestIndividualAccountHolder": {
        "title": "individual",
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of account receiving the unreferenced refund.",
            "example": "individual"
          },
          "first_name": {
            "maxLength": 50,
            "type": "string",
            "description": "The account holder's first name.\n  \nThis 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):\n\n- a single character\n- all numeric characters\n- all punctuation characters\n"
          },
          "middle_name": {
            "maxLength": 50,
            "type": "string",
            "description": "The account holder's middle name.\n"
          },
          "last_name": {
            "maxLength": 50,
            "type": "string",
            "description": "The account holder's last name.\n\nThis 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):\n\n  - a single character\n  - all numeric characters\n  - all punctuation characters\n"
          },
          "billing_address": {
            "type": "object",
            "properties": {
              "address_line1": {
                "maxLength": 200,
                "type": "string",
                "description": "The first line of the address.\n"
              },
              "address_line2": {
                "maxLength": 200,
                "type": "string",
                "description": "The second line of the address."
              },
              "city": {
                "maxLength": 50,
                "minLength": 3,
                "type": "string",
                "description": "The address city."
              },
              "state": {
                "maxLength": 3,
                "minLength": 2,
                "type": "string",
                "description": "The address state.\n"
              },
              "zip": {
                "maxLength": 10,
                "type": "string",
                "description": "The address ZIP or postal code.\n\nYou must provide United States ZIPs in the format `00000`, or `00000-0000`.\n"
              },
              "country": {
                "maxLength": 2,
                "minLength": 2,
                "type": "string",
                "description": "The address country, as a [two-letter ISO country code](https://www.checkout.com/docs/developer-resources/codes/country-codes).\n"
              }
            },
            "description": "The account holder's billing address.\n\nIf your company is incorporated in the United States, this field is required for all unreferenced refunds you perform.\n"
          },
          "phone": {
            "required": [
              "country_code",
              "number"
            ],
            "type": "object",
            "properties": {
              "country_code": {
                "maxLength": 7,
                "minLength": 1,
                "type": "string",
                "description": "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": {
                "maxLength": 25,
                "minLength": 6,
                "type": "string",
                "description": "The digits for the phone number, not including the `country_code`."
              }
            },
            "description": "The account holder's phone number."
          },
          "identification": {
            "required": [
              "type",
              "number"
            ],
            "type": "object",
            "properties": {
              "type": {
                "enum": [
                  "passport",
                  "driving_license",
                  "national_id",
                  "company_registration",
                  "tax_id"
                ],
                "type": "string",
                "description": "The type of identification for the account holder."
              },
              "number": {
                "maxLength": 25,
                "type": "string",
                "description": "The account holder's identification number."
              },
              "issuing_country": {
                "maxLength": 2,
                "minLength": 2,
                "type": "string",
                "description": "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).\n\nProviding `issuing_country` increases the likelihood of a successful identity verification.\n"
              },
              "date_of_expiry": {
                "maxLength": 10,
                "minLength": 10,
                "type": "string",
                "description": "If applicable, the expiration date of the account holder's identification, in the format `YYYY-MM-DD`.\n\nProviding `date_of_expiry` increases the likelihood of a successful identity verification.\n"
              }
            },
            "description": "The account holder's identification.\n\nProviding identification details for the unreferenced refund recipient increases the likelihood of a successful payout.\n"
          },
          "email": {
            "maxLength": 255,
            "type": "string",
            "description": "The account holder's email address."
          },
          "date_of_birth": {
            "maxLength": 10,
            "minLength": 10,
            "type": "string",
            "description": "The account holder's date of birth, in the format `YYYY-MM-DD`."
          },
          "country_of_birth": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string",
            "description": "The account holder's country of birth, as a [two-letter ISO country code](https://www.checkout.com/docs/developer-resources/codes/country-codes)."
          }
        },
        "description": "The unreferenced refund destination account holder's details."
      },
      "UnreferencedRefundRequestIndividualCardTypeAccountHolder": {
        "title": "individual",
        "required": [
          "type",
          "first_name",
          "last_name"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of account receiving the unreferenced refund.",
            "example": "individual"
          },
          "first_name": {
            "maxLength": 50,
            "type": "string",
            "description": "The account holder's first name.\n  \nThis 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):\n\n- a single character\n- all non-alphabetic characters\n"
          },
          "middle_name": {
            "maxLength": 50,
            "type": "string",
            "description": "The account holder's middle name.\n"
          },
          "last_name": {
            "maxLength": 50,
            "type": "string",
            "description": "The account holder's last name.\n\nThis 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):\n\n  - a single character\n  - all non-alphabetic characters\n"
          },
          "billing_address": {
            "type": "object",
            "properties": {
              "address_line1": {
                "maxLength": 200,
                "type": "string",
                "description": "The first line of the address.\n"
              },
              "address_line2": {
                "maxLength": 200,
                "type": "string",
                "description": "The second line of the address."
              },
              "city": {
                "maxLength": 50,
                "minLength": 3,
                "type": "string",
                "description": "The address city."
              },
              "state": {
                "maxLength": 3,
                "minLength": 2,
                "type": "string",
                "description": "The address state."
              },
              "zip": {
                "maxLength": 10,
                "type": "string",
                "description": "The address ZIP or postal code.\n\nYou must provide United States ZIPs in the format `00000`, or `00000-0000`.\n"
              },
              "country": {
                "maxLength": 2,
                "minLength": 2,
                "type": "string",
                "description": "The address country, as a [two-letter ISO country code](https://www.checkout.com/docs/developer-resources/codes/country-codes).\n"
              }
            },
            "description": "The account holder's billing address.\n\nIf your company is incorporated in the United States, this field is required for all unreferenced refunds you perform.\n"
          },
          "phone": {
            "required": [
              "country_code",
              "number"
            ],
            "type": "object",
            "properties": {
              "country_code": {
                "maxLength": 7,
                "minLength": 1,
                "type": "string",
                "description": "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": {
                "maxLength": 25,
                "minLength": 6,
                "type": "string",
                "description": "The digits for the phone number, not including the `country_code`."
              }
            },
            "description": "The account holder's phone number."
          },
          "identification": {
            "required": [
              "type",
              "number"
            ],
            "type": "object",
            "properties": {
              "type": {
                "enum": [
                  "passport",
                  "driving_license",
                  "national_id",
                  "company_registration",
                  "tax_id"
                ],
                "type": "string",
                "description": "The type of identification for the account holder."
              },
              "number": {
                "maxLength": 25,
                "type": "string",
                "description": "The account holder's identification number."
              },
              "issuing_country": {
                "maxLength": 2,
                "minLength": 2,
                "type": "string",
                "description": "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).\n\nProviding `issuing_country` increases the likelihood of a successful identity verification.\n"
              },
              "date_of_expiry": {
                "maxLength": 10,
                "minLength": 10,
                "type": "string",
                "description": "If applicable, the expiration date of the account holder's identification, in the format `YYYY-MM-DD`.\n\nProviding `date_of_expiry` increases the likelihood of a successful identity verification.\n"
              }
            },
            "description": "The account holder's identification.\n\nProviding identification details for the unreferenced refund recipient increases the likelihood of a successful unreferenced refund.\n"
          },
          "email": {
            "maxLength": 255,
            "type": "string",
            "description": "The account holder's email address."
          },
          "date_of_birth": {
            "maxLength": 10,
            "minLength": 10,
            "type": "string",
            "description": "The account holder's date of birth, in the format `YYYY-MM-DD`."
          },
          "country_of_birth": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string",
            "description": "The account holder's country of birth, as a [two-letter ISO country code](https://www.checkout.com/docs/developer-resources/codes/country-codes)."
          }
        },
        "description": "The unreferenced refund destination account holder's details."
      },
      "UnreferencedRefundRequestNameRequiredAccountHolder": {
        "required": [
          "type"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/UnreferencedRefundRequestIndividualCardTypeAccountHolder"
          },
          {
            "$ref": "#/components/schemas/UnreferencedRefundRequestCorporateAccountHolder"
          },
          {
            "$ref": "#/components/schemas/UnreferencedRefundRequestGovernmentAccountHolder"
          }
        ],
        "description": "The unreferenced refund destination account holder.",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "individual": "#/components/schemas/UnreferencedRefundRequestIndividualCardTypeAccountHolder",
            "corporate": "#/components/schemas/UnreferencedRefundRequestCorporateAccountHolder",
            "government": "#/components/schemas/UnreferencedRefundRequestGovernmentAccountHolder"
          }
        }
      },
      "UnreferencedRefundRequestDestinationTypeCard": {
        "title": "card",
        "required": [
          "type",
          "number",
          "expiry_month",
          "expiry_year",
          "account_holder"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The unreferenced refund destination type."
          },
          "number": {
            "maxLength": 19,
            "type": "string",
            "description": "The card number."
          },
          "expiry_month": {
            "maxLength": 2,
            "minLength": 1,
            "type": "integer",
            "description": "The card's expiration month."
          },
          "expiry_year": {
            "maxLength": 4,
            "minLength": 4,
            "type": "integer",
            "description": "The card's expiration year."
          },
          "account_holder": {
            "$ref": "#/components/schemas/UnreferencedRefundRequestNameRequiredAccountHolder"
          }
        },
        "description": "The destination of the unreferenced refund."
      },
      "UnreferencedRefundRequestDestinationTypeId": {
        "title": "id",
        "required": [
          "type",
          "id"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The unreferenced refund destination type."
          },
          "id": {
            "maxLength": 30,
            "minLength": 30,
            "pattern": "^(src)_(\\w{26})$",
            "type": "string",
            "description": "The payment source ID. This will be an ID with the prefix `src_`."
          },
          "account_holder": {
            "$ref": "#/components/schemas/UnreferencedRefundRequestAccountHolder"
          }
        },
        "description": "The destination of the unreferenced refund."
      },
      "UnreferencedRefundRequestDestinationTypeNetworkToken": {
        "title": "network_token",
        "required": [
          "type",
          "token",
          "expiry_month",
          "expiry_year",
          "token_type",
          "account_holder"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The unreferenced refund destination type."
          },
          "token": {
            "type": "string",
            "description": "The network token's Primary Account Number (PAN).",
            "example": "4543474002249996"
          },
          "expiry_month": {
            "minimum": 1,
            "maxLength": 2,
            "minLength": 1,
            "type": "integer",
            "description": "The network token's expiration month.",
            "example": 6
          },
          "expiry_year": {
            "maxLength": 4,
            "minLength": 4,
            "type": "integer",
            "description": "The network token's expiration year.",
            "example": 2025
          },
          "token_type": {
            "enum": [
              "vts",
              "mdes",
              "applepay",
              "googlepay"
            ],
            "type": "string",
            "description": "The network token type."
          },
          "cryptogram": {
            "maxLength": 50,
            "type": "string",
            "description": "The network token's Base64-encoded cryptographic identifier (TAVV).\n\nThe cryptogram is used by card schemes to validate the token verification result.\n",
            "example": "hv8mUFzPzRZoCAAAAAEQBDMAAAA="
          },
          "eci": {
            "maxLength": 2,
            "type": "string",
            "description": "The network token's Electronic Commerce Indicator (ECI) security level.",
            "example": "05"
          },
          "account_holder": {
            "$ref": "#/components/schemas/UnreferencedRefundRequestNameRequiredAccountHolder"
          }
        },
        "description": "The destination of the unreferenced refund."
      },
      "UnreferencedRefundRequestDestinationTypeToken": {
        "title": "token",
        "required": [
          "type",
          "token"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The unreferenced refund destination type."
          },
          "token": {
            "maxLength": 30,
            "minLength": 30,
            "pattern": "^(tok)_(\\w{26})$",
            "type": "string",
            "description": "The Checkout.com card token ID. This will be an ID with the prefix `tok_`."
          },
          "account_holder": {
            "$ref": "#/components/schemas/UnreferencedRefundRequestAccountHolder"
          }
        },
        "description": "The destination of the unreferenced refund."
      },
      "UnreferencedRefundAcceptedResponse": {
        "title": "Unreferenced Refund",
        "required": [
          "id",
          "status"
        ],
        "type": "object",
        "properties": {
          "id": {
            "maxLength": 30,
            "minLength": 30,
            "pattern": "^(pay)_(\\w{26})$",
            "type": "string",
            "description": "The payment's unique identifier.",
            "example": "pay_g4blr3juzouutaijarea5hejd4"
          },
          "status": {
            "enum": [
              "Accepted",
              "Rejected",
              "Pending"
            ],
            "type": "string",
            "description": "The refund status.",
            "example": "Pending"
          },
          "reference": {
            "maxLength": 50,
            "type": "string",
            "description": "The reference you provided in the refund request.",
            "example": "REF-FQSGRB"
          },
          "instruction": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentInstructionResponse"
              }
            ]
          },
          "destination": {
            "type": "object",
            "properties": {
              "account_holder": {
                "type": "object",
                "properties": {
                  "id": {
                    "maxLength": 30,
                    "minLength": 30,
                    "pattern": "^(src)_(\\w{26})$",
                    "type": "string",
                    "description": "The payment destination identifier (e.g., a card source identifier)",
                    "example": "src_nwd3m4in3hkuddfpjsaevunhdy"
                  }
                },
                "description": "The account holder details."
              }
            },
            "description": "The refund destination."
          },
          "_links": {
            "required": [
              "self"
            ],
            "type": "object",
            "properties": {
              "self": {
                "type": "object",
                "properties": {
                  "href": {
                    "type": "string",
                    "description": "The link URL",
                    "example": "https://{prefix}.api.sandbox.checkout.com/payments/pay_g4blr3juzouutaijarea5hejd4"
                  }
                },
                "description": "The refund URI."
              },
              "actions": {
                "type": "object",
                "properties": {
                  "href": {
                    "type": "string",
                    "description": "The link URL",
                    "example": "https://{prefix}.api.sandbox.checkout.com/payments/pay_g4blr3juzouutaijarea5hejd4/actions"
                  }
                },
                "description": "The refund actions URI."
              }
            },
            "description": "The links related to the refund."
          }
        },
        "description": "Unreferenced refund accepted response"
      },
      "UnreferencedRefundRequestDestination": {
        "required": [
          "type"
        ],
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/UnreferencedRefundRequestDestinationTypeToken"
          },
          {
            "$ref": "#/components/schemas/UnreferencedRefundRequestDestinationTypeId"
          },
          {
            "$ref": "#/components/schemas/UnreferencedRefundRequestDestinationTypeCard"
          },
          {
            "$ref": "#/components/schemas/UnreferencedRefundRequestDestinationTypeNetworkToken"
          }
        ],
        "description": "The destination of the unreferenced refund.",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "token": "#/components/schemas/UnreferencedRefundRequestDestinationTypeToken",
            "id": "#/components/schemas/UnreferencedRefundRequestDestinationTypeId",
            "card": "#/components/schemas/UnreferencedRefundRequestDestinationTypeCard",
            "network_token": "#/components/schemas/UnreferencedRefundRequestDestinationTypeNetworkToken"
          }
        }
      },
      "UpdateCustomerRequest": {
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^(cus)_(\\w{26})$",
            "type": "string",
            "description": "The identifier of an existing customer",
            "example": "cus_y3oqhf46pyzuxjbcn2giaqnb44"
          },
          "default": {
            "type": "boolean",
            "description": "If true, sets this instrument as the default for the customer",
            "example": true
          }
        },
        "description": "The customer's details"
      },
      "ValidationError": {
        "type": "object",
        "properties": {
          "request_id": {
            "type": "string",
            "example": "0HL80RJLS76I7"
          },
          "error_type": {
            "type": "string",
            "example": "request_invalid"
          },
          "error_codes": {
            "type": "array",
            "items": {
              "type": "string",
              "example": "payment_source_required"
            }
          }
        }
      }
    },
    "parameters": {
      "ckoIdempotencyKey": {
        "name": "Cko-Idempotency-Key",
        "in": "header",
        "description": "An optional idempotency key for safely retrying payment requests",
        "schema": {
          "type": "string"
        }
      },
      "ckoIdempotencyKeyRequired": {
        "name": "Cko-Idempotency-Key",
        "in": "header",
        "description": "An idempotency key for safely retrying transfer requests",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "EntityId": {
        "name": "id",
        "in": "path",
        "description": "The ID of the entity.",
        "required": true,
        "style": "simple",
        "schema": {
          "type": "string"
        },
        "example": "ent_w4jelhppmfiufdnatam37wrfc4"
      },
      "IssuingCkoIdempotencyKey": {
        "name": "Cko-Idempotency-Key",
        "in": "header",
        "description": "An optional idempotency key for safely retrying Issuing requests.",
        "schema": {
          "maxLength": 256,
          "minLength": 1,
          "pattern": "^[A-Za-z0-9._-]+$",
          "type": "string"
        },
        "example": "7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a"
      },
      "IssuingCkoIdempotencyKeyRequired": {
        "name": "Cko-Idempotency-Key",
        "in": "header",
        "description": "An idempotency key for safely retrying requests.",
        "required": true,
        "schema": {
          "maxLength": 256,
          "minLength": 1,
          "pattern": "^[A-Za-z0-9._-]+$",
          "type": "string"
        },
        "example": "7c1b9f96-4f2e-4b1a-bc2b-3d0f1a2e9f3a"
      },
      "Query": {
        "name": "query",
        "in": "query",
        "description": "The query to apply to limit the currency accounts.",
        "style": "form",
        "explode": false,
        "schema": {
          "type": "string"
        },
        "example": "currency:EUR"
      }
    },
    "examples": {
      "adv_address_document_verification_creation_request_body": {
        "value": {
          "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
          "user_journey_id": "usj_tkoi5db4hryu5cei5vwoabr7we",
          "declared_data": {
            "name": "Hannah Bret"
          }
        }
      },
      "adv_address_document_verification_creation_response_body": {
        "value": {
          "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"
            }
          }
        }
      },
      "adv_address_document_verification_pdf_response_body": {
        "value": {
          "pdf_report": "https://www.example.com/reports/adv_tkoi5db4hryu5cei5vwoabr7we.pdf"
        }
      },
      "adv_address_document_verification_response_body_anonymized": {
        "value": {
          "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"
            }
          }
        }
      },
      "adv_address_document_verification_response_body": {
        "value": {
          "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"
            }
          }
        }
      },
      "adv_attempt_assets_response_body": {
        "value": {
          "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?..."
            }
          }
        }
      },
      "adv_attempt_creation_request_body": {
        "value": {
          "document": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD…\n"
        }
      },
      "adv_attempt_creation_response_body": {
        "value": {
          "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"
            }
          }
        }
      },
      "adv_attempt_get_response_body": {
        "value": {
          "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"
            }
          }
        }
      },
      "adv_attempt_list_response_body": {
        "value": {
          "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"
            }
          }
        }
      },
      "aml_verification_creation_request_body_max": {
        "value": {
          "search_parameters": {
            "configuration_identifier": "011e5c14-2222-738c-8852-dfdbbe53f233"
          },
          "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
          "monitored": "false"
        }
      },
      "aml_verification_creation_request_body_min": {
        "value": {
          "search_parameters": {
            "configuration_identifier": "011e5c14-2222-738c-8852-dfdbbe53f233"
          },
          "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we"
        }
      },
      "aml_verification_response_body": {
        "value": {
          "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"
            }
          }
        }
      },
      "fav_attempt_assets_response_body": {
        "value": {
          "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?..."
            }
          }
        }
      },
      "fav_attempt_creation_request_body_max": {
        "value": {
          "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"
        }
      },
      "fav_attempt_creation_request_body_min": {
        "value": {
          "redirect_url": "https://myweb.site?query-param=hello"
        }
      },
      "fav_attempt_creation_response_body": {
        "value": {
          "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"
            }
          }
        }
      },
      "fav_attempt_get_response_body": {
        "value": {
          "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"
            }
          }
        }
      },
      "fav_attempt_list_response_body": {
        "value": {
          "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?..."
            }
          }
        }
      },
      "fav_face_authentication_creation_request_body": {
        "value": {
          "user_journey_id": "usj_t5bdzsdmi57ehhkrnmp5omjimu",
          "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we"
        }
      },
      "fav_face_authentication_creation_request_invalid_body": {
        "value": {
          "error_type": "request_invalid",
          "error_codes": [
            "applicant_id_required"
          ]
        }
      },
      "fav_face_authentication_creation_response_body": {
        "value": {
          "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"
            }
          }
        }
      },
      "fav_face_authentication_response_body_anonymized": {
        "value": {
          "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"
            }
          }
        }
      },
      "fav_face_authentication_response_body_approved": {
        "value": {
          "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"
            }
          }
        }
      },
      "fav_face_authentication_response_body_declined": {
        "value": {
          "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"
            }
          }
        }
      },
      "fav_face_authentication_unprocessable_entity_body": {
        "value": {
          "error_type": "unprocessable_entity",
          "error_codes": [
            "organization_no_configuration"
          ]
        }
      },
      "iddv_attempt_assets_response_body": {
        "value": {
          "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?..."
            }
          }
        }
      },
      "iddv_attempt_creation_response_body": {
        "value": {
          "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"
            }
          }
        }
      },
      "iddv_attempt_get_response_body": {
        "value": {
          "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"
            }
          }
        }
      },
      "iddv_attempt_list_response_body": {
        "value": {
          "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?..."
            }
          }
        }
      },
      "iddv_id_document_verification_attempt_creation_request_body_max": {
        "value": {
          "document_front": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD…\n",
          "document_back": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA…\n"
        }
      },
      "iddv_id_document_verification_attempt_creation_request_body_min": {
        "value": {
          "document_front": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD…\n"
        }
      },
      "iddv_id_document_verification_creation_request_body": {
        "value": {
          "user_journey_id": "usj_tkoi5db4hryu5cei5vwoabr7we",
          "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
          "declared_data": {
            "name": "Hannah Bret"
          }
        }
      },
      "iddv_id_document_verification_creation_response_body": {
        "value": {
          "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"
            }
          }
        }
      },
      "iddv_id_document_verification_response_body_anonymized": {
        "value": {
          "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"
            }
          }
        }
      },
      "idv_applicant_creation_request_body": {
        "value": {
          "external_applicant_id": "ext_osdfdfdb4hryu5cei5vwoabrk5k",
          "email": "hannah.bret@example.com",
          "external_applicant_name": "Hannah Bret"
        }
      },
      "idv_applicant_response_body_anonymized": {
        "value": {
          "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"
            }
          }
        }
      },
      "idv_applicant_response_body": {
        "value": {
          "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"
            }
          }
        }
      },
      "idv_applicant_update_request_body": {
        "value": {
          "email": "hannah.bret@example.com",
          "external_applicant_name": "Hannah Bret"
        }
      },
      "idv_attempt_assets_response_body": {
        "value": {
          "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?..."
            }
          }
        }
      },
      "idv_attempt_creation_request_body_max": {
        "value": {
          "redirect_url": "https://myweb.site?query-param=hello",
          "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"
          }
        }
      },
      "idv_attempt_creation_request_body_min": {
        "value": {
          "redirect_url": "https://myweb.site?query-param=hello"
        }
      },
      "idv_attempt_creation_response_body": {
        "value": {
          "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"
            }
          }
        }
      },
      "idv_attempt_get_response_body": {
        "value": {
          "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/"
            }
          }
        }
      },
      "idv_attempt_list_response_body": {
        "value": {
          "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"
            }
          }
        }
      },
      "idv_identity_verification_creation_helper_request_body_max": {
        "value": {
          "user_journey_id": "usj_tkoi5db4hryu5cei5vwoabr7we",
          "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
          "declared_data": {
            "name": "Hannah Bret",
            "birth_date": "1994-10-15",
            "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"
            }
          },
          "redirect_url": "https://myweb.site?query-param=hello"
        }
      },
      "idv_identity_verification_creation_helper_request_body_min_plus_aplt": {
        "value": {
          "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
          "declared_data": {
            "name": "Hannah Bret"
          },
          "redirect_url": "https://myweb.site?query-param=hello"
        }
      },
      "idv_identity_verification_creation_helper_request_body_min": {
        "value": {
          "declared_data": {
            "name": "Hannah Bret"
          },
          "redirect_url": "https://myweb.site?query-param=hello"
        }
      },
      "idv_identity_verification_creation_helper_response_body": {
        "value": {
          "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/"
            }
          }
        }
      },
      "idv_identity_verification_creation_request_body_max": {
        "value": {
          "user_journey_id": "usj_tkoi5db4hryu5cei5vwoabr7we",
          "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
          "declared_data": {
            "name": "Hannah Bret",
            "birth_date": "1994-10-15",
            "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"
            }
          }
        }
      },
      "idv_identity_verification_creation_request_body_min": {
        "value": {
          "applicant_id": "aplt_tkoi5db4hryu5cei5vwoabr7we",
          "declared_data": {
            "name": "Hannah Bret"
          }
        }
      },
      "idv_identity_verification_creation_request_invalid_body": {
        "value": {
          "error_type": "request_invalid",
          "error_codes": [
            "declared_data__name__required"
          ]
        }
      },
      "idv_identity_verification_creation_response_body": {
        "value": {
          "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"
            }
          }
        }
      },
      "idv_identity_verification_pdf_response_body": {
        "value": {
          "pdf_report": "https://www.example.com/reports/idv_tkoi5db4hryu5cei5vwoabr7we.pdf"
        }
      },
      "idv_identity_verification_response_body_anonymized": {
        "value": {
          "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"
            }
          }
        }
      },
      "idv_identity_verification_response_body_approved": {
        "value": {
          "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"
            }
          }
        }
      },
      "idv_identity_verification_response_body_declined": {
        "value": {
          "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"
            }
          }
        }
      },
      "idv_identity_verification_unprocessable_entity_body": {
        "value": {
          "error_type": "unprocessable_entity",
          "error_codes": [
            "organization__no_configuration"
          ]
        }
      },
      "PaymentResponse": {
        "value": {
          "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"
          },
          "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"
            }
          }
        }
      }
    },
    "headers": {
      "Cko-Request-Id": {
        "description": "The unique identifier of the request",
        "schema": {
          "type": "string"
        }
      },
      "Cko-Version": {
        "description": "The version of the API",
        "schema": {
          "type": "string"
        }
      }
    },
    "securitySchemes": {
      "ApiPublicKey": {
        "type": "apiKey",
        "description": "Public keys are for client-side authentication and supported only in JavaScript or native applications.\n  \n#### Format\n\n- Sandbox – `pk_sbox_xxxxxxxxxxxxxxxxxxxxxxxxxx`\n\n- Production – `pk_xxxxxxxxxxxxxxxxxxxxxxxxxx`\n\nWhen specifying your public key, use the format `Bearer {{PublicApiKey}}`.\n",
        "name": "Authorization",
        "in": "header",
        "x-cko-type": "publicKey"
      },
      "ApiSecretKey": {
        "type": "apiKey",
        "description": "You can pass your secret API key in the `Authorization` header of your requests for supported endpoints.\n\n#### Format\n\n- Sandbox – `sk_sbox_xxxxxxxxxxxxxxxxxxxxxxxxxx`\n\n- Production – `sk_xxxxxxxxxxxxxxxxxxxxxxxxxx`\n\nWhen specifying your secret key, use the format `Bearer {{SecretApiKey}}`.\n\n```\ncurl --location --request POST 'https://{prefix}.api.checkout.com/{{path}}' \\\n--header 'Content-Type: application/json' \\\n--header 'Accept: application/json' \\\n--header 'Authorization: Bearer {{SecretApiKey}}' \\\n--data-raw '{\n\"amount\": 10000,\n\"currency\": \"USD\",\n\"reference\": \"Visa-USD-Test\",\n...\n}'\n```\n",
        "name": "Authorization",
        "in": "header",
        "x-cko-type": "secretKey"
      },
      "OAuth": {
        "type": "oauth2",
        "description": "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. \n\nTo 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.\n\n| Environment   |      Authorization server                            |\n|---------------|------------------------------------------------------|\n| Sandbox       |  https://{prefix}.access.sandbox.checkout.com/connect/token   |\n| Production    |  https://{prefix}.access.checkout.com/connect/token           |\n\n```\ncurl --location 'https://{prefix}.access.checkout.com/connect/token' \\\n--header 'Content-Type: application/x-www-form-urlencoded' \\\n--data-urlencode 'grant_type=client_credentials' \\\n--data-urlencode 'client_id=ack_...' \\\n--data-urlencode 'client_secret=...' \n```\n\nThe token server returns a Bearer `access_token` in JSON Web Token (JWT) format. Use this token in the `Authorization` header of your API requests.\n\n```\ncurl --location --request POST 'https://{prefix}.api.checkout.com/{{path}}' \\\n--header 'Content-Type: application/json' \\\n--header 'Accept: application/json' \\\n--header 'Authorization: Bearer {{AccessToken}}' \\\n--data-raw '{\n  \"amount\": 10000,\n  \"currency\": \"USD\",\n  \"reference\": \"Visa-USD-Test\",\n  ...\n}'\n```\n\nThe `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.\n\nDepending on the Environment against which you're making your requests against you'll need to request the token from a different Authorization Server.\n\n| Environment   |      Authorization Server                            |\n|---------------|------------------------------------------------------|\n| Sandbox       |  https://{prefix}.access.sandbox.checkout.com/connect/token   |\n| Production    |  https://{prefix}.access.checkout.com/connect/token           |\n\nYour 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).\n",
        "flows": {
          "clientCredentials": {
            "tokenUrl": "string",
            "scopes": {
              "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"
            }
          }
        }
      },
      "SessionSecret": {
        "type": "apiKey",
        "description": "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.\n",
        "name": "Authorization",
        "in": "header"
      }
    }
  },
  "tags": [
    {
      "name": "Access",
      "description": "Create an access token to begin using our APIs."
    },
    {
      "name": "Apple Pay",
      "description": "Manage your Apple Pay certificates in order to process payments via Apple Pay."
    },
    {
      "name": "Bacs Direct Debit",
      "description": "Send Bacs Direct Debit pre-notifications to payers ahead of collecting funds."
    },
    {
      "name": "Google Pay",
      "description": "Manage your domain enrollments to process payments via Google Pay."
    },
    {
      "name": "Balances",
      "description": "View the balances for sub-accounts in an entity, and retrieve the bank details used to top them up."
    },
    {
      "name": "Business details",
      "description": "View and manage the business details of your SaaS seller sub-entities."
    },
    {
      "name": "Card Metadata",
      "description": "Retrieve card metadata"
    },
    {
      "name": "Card testing",
      "description": "Simulate transactions using a card on the sandbox environment."
    },
    {
      "name": "Onboarding Simulator",
      "description": "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."
    },
    {
      "name": "Cardholder access tokens",
      "description": "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."
    },
    {
      "name": "Cardholders",
      "description": "Create new cardholders to issue cards to, and manage your existing cardholders."
    },
    {
      "name": "Cards",
      "description": "Issue new cards to your cardholders, and manage cards you've already issued."
    },
    {
      "name": "Compliance Requests",
      "description": "Retrieve and respond to Compliance Requests"
    },
    {
      "name": "Control groups",
      "description": "Group multiple spending controls together and specify how to apply the combined outcome."
    },
    {
      "name": "Control profiles",
      "description": "Creates a control profile and applies it to the specified target."
    },
    {
      "name": "Controls",
      "description": "Set spending controls to limit how much can be spent over a given period of time."
    },
    {
      "name": "Disputes",
      "description": "Keep track of and act on your open disputes (also known as chargebacks) to submit the best possible response."
    },
    {
      "name": "Financial actions",
      "description": "Returns all the processed financial actions associated with your given filter. The results are ordered by processing date in descending order (latest first)."
    },
    {
      "name": "Flow",
      "description": "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.\n\nTo 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).\n"
    },
    {
      "name": "Forex",
      "description": "Use the Forex API to access Checkout.com's foreign exchange (FX) services."
    },
    {
      "name": "Hosted Payments Page",
      "description": "Create a Hosted Payments Page to accept and process payment details."
    },
    {
      "name": "Address Document Verification",
      "description": "Verify your users' addresses by checking their address documents."
    },
    {
      "name": "Identity verification",
      "description": "Verify your users' identities."
    },
    {
      "name": "Instruments",
      "description": "Create and manage your card and bank account payment instruments."
    },
    {
      "name": "Network Tokens",
      "description": "Provision network tokens and cryptograms."
    },
    {
      "name": "Payment instruments",
      "description": "Manage bank account payment instruments for your sub-entities."
    },
    {
      "name": "Payment Links",
      "description": "Create a Payment Link to accept and process payment details."
    },
    {
      "name": "Payment Setups",
      "description": "The Payment Setup API enables you to simplify the management of complex payment flows that cover multiple payment methods.\n\nFor 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).\n"
    },
    {
      "name": "Payments",
      "description": "Process and manage payments from a variety of sources and to various destinations all within one integration."
    },
    {
      "name": "Payout schedules",
      "description": "View and manage payout schedules for your sub-entities."
    },
    {
      "name": "Platforms",
      "description": "Manage all your sub-entities (also known as sub-merchants) through one integration, globally."
    },
    {
      "name": "Reports",
      "description": "Retrieve your reconciliation reports programmatically with the [Reports API](https://www.checkout.com/docs/reporting/reports-api)."
    },
    {
      "name": "Reserve rules",
      "description": "View and manage reserve rules for your sub-entities."
    },
    {
      "name": "Standalone",
      "description": "Use Standalone Sessions to authenticate transactions with 3D Secure (3DS) and comply with Strong Customer Authentication (SCA) requirements."
    },
    {
      "name": "Standalone Account Updater",
      "description": "Retrieve updated card details"
    },
    {
      "name": "Tokens",
      "description": "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."
    },
    {
      "name": "Transfers",
      "description": "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."
    },
    {
      "name": "Workflows",
      "description": "Use Workflows to start receiving webhook notifications for your payments, disputes, and sub-entities."
    },
    {
      "name": "Agentic Commerce Protocol",
      "description": "<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>\n\nEnable 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.\n\nTo onboard your AI platform, [contact us](https://www.checkout.com/contact-sales).\n"
    },
    {
      "name": "Inventory",
      "description": "<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>\n\nManage 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.\nHolds work the same way regardless of which agentic commerce protocol is used.\n\nRequires the `agentic:inventory` scope. To onboard your AI platform, <a href=\"https://www.checkout.com/contact-sales\" target=\"_blank\">contact us</a>.\n"
    }
  ],
  "x-tagGroups": [
    {
      "name": "Set up",
      "tags": [
        "Access"
      ]
    },
    {
      "name": "Handle payments and payouts",
      "tags": [
        "Payments",
        "Flow",
        "Payment Setups",
        "Payment Links",
        "Hosted Payments Page",
        "Forex",
        "Apple Pay",
        "Bacs Direct Debit",
        "Google Pay",
        "Transfers",
        "Balances"
      ]
    },
    {
      "name": "Payment Context",
      "tags": [
        "Payment Context"
      ]
    },
    {
      "name": "Payment Methods",
      "tags": [
        "Payment Methods"
      ]
    },
    {
      "name": "Store and forward payment credentials",
      "tags": [
        "Tokens",
        "Instruments",
        "Customers",
        "Forward"
      ]
    },
    {
      "name": "Authentication",
      "tags": [
        "Standalone"
      ]
    },
    {
      "name": "Risk management",
      "tags": [
        "Disputes"
      ]
    },
    {
      "name": "Notifications",
      "tags": [
        "Workflows"
      ]
    },
    {
      "name": "Platforms",
      "tags": [
        "Platforms",
        "Business details",
        "Payment instruments",
        "Payout schedules",
        "Reserve rules",
        "Onboarding Simulator"
      ]
    },
    {
      "name": "Card issuing",
      "tags": [
        "Cardholders",
        "Cards",
        "Controls",
        "Control profiles",
        "Control groups",
        "Cardholder access tokens",
        "Transactions",
        "Issuing disputes",
        "Card testing"
      ]
    },
    {
      "name": "Identities",
      "tags": [
        "Applicants",
        "Identity Verification",
        "AML Screening",
        "Face Authentication",
        "ID Document Verification",
        "Address Document Verification"
      ]
    },
    {
      "name": "Reporting",
      "tags": [
        "Reports",
        "Financial actions"
      ]
    },
    {
      "name": "Metadata",
      "tags": [
        "Card metadata"
      ]
    },
    {
      "name": "Network Tokens",
      "tags": [
        "Network Tokens"
      ]
    },
    {
      "name": "Standalone Account Updater",
      "tags": [
        "Standalone Account Updater"
      ]
    },
    {
      "name": "Compliance requests",
      "tags": [
        "Compliance requests"
      ]
    },
    {
      "name": "Agentic Commerce",
      "tags": [
        "Agentic Commerce Protocol",
        "Inventory"
      ]
    }
  ]
}