{
  "components": {
    "parameters": {
      "accountNumber": {
        "description": "Client account number",
        "in": "query",
        "name": "accountNumber",
        "required": false,
        "schema": {
          "example": "XEMT0110111111",
          "type": "string"
        }
      }
    },
    "schemas": {
      "Address": {
        "description": "Represents an address.",
        "properties": {
          "country": {
            "$ref": "#/components/schemas/Country"
          },
          "line1": {
            "description": "Address Line 1",
            "example": "1 Apartment name",
            "maxLength": 70,
            "minLength": 1,
            "type": "string"
          },
          "line2": {
            "description": "Address line 2",
            "example": "Railway Terrace",
            "maxLength": 70,
            "minLength": 1,
            "type": "string"
          },
          "locality": {
            "description": " The city, town, village, post town, or other locality within which the street address may be found",
            "example": "Slough",
            "maxLength": 50,
            "minLength": 1,
            "type": "string"
          },
          "postcode": {
            "description": "The postal code, post code, ZIP code or other short code associated with the address by the relevant country's postal system.",
            "maxLength": 20,
            "type": "string"
          },
          "region": {
            "description": "The province, such as a state, county, or canton within which the locality may be found. For Australia, Canada, USA and Mexico, please provide the 2, 3 letter ISO State Code.",
            "example": "Berkshire,QLD,TX",
            "maxLength": 50,
            "minLength": 1,
            "type": "string"
          }
        },
        "title": "Address",
        "type": "object",
        "x-examples": {},
        "x-stoplight": {
          "id": "v28hftp3cprta"
        }
      },
      "AttachPayment": {
        "description": "Attach payment request item",
        "properties": {
          "amount": {
            "description": "The amount should be paid for the proiovided recipient. This field can be null if `autoAdjustAmountToRemainingBalance` flag is set to true.",
            "example": 80,
            "format": "decimal",
            "minimum": 0.01,
            "nullable": true,
            "type": "number"
          },
          "autoAdjustAmountToRemainingBalance": {
            "default": false,
            "description": "If auto adjust amount to remaining balance flag is set to true, then the whole remaining amount is paid to the recipient",
            "type": "boolean",
            "x-stoplight": {
              "id": "5shiycpge8bjc"
            }
          },
          "paymentReference": {
            "description": "Reference shown to the recipient.",
            "example": "INV1234",
            "maxLength": 70,
            "minLength": 1,
            "type": "string"
          },
          "purposeOfPaymentCode": {
            "description": "Purpose of payment code. Get list of Payment purposes using \\'/payments/purposes\\' endpoint",
            "example": "CORP_SUPLIER_PAYMENT",
            "maxLength": 40,
            "type": "string"
          },
          "purposeOfPaymentText": {
            "description": "Optional.\nReason for the payment. Required when purposeOfPaymentCode allows free text.",
            "example": "Supplier Payment",
            "maxLength": 35,
            "type": "string"
          },
          "recipientId": {
            "description": "Recipient unique Id provided by Xe in the recipient registration response",
            "example": "85ad53e2-4077-418c-b17c-b597ed90c01d",
            "maxLength": 36,
            "minLength": 1,
            "type": "string"
          }
        },
        "title": "AttachPayment",
        "type": "object",
        "x-examples": {
          "Example 1": {
            "amount": 10,
            "autoAdjustAmountToRemainingBalance": false,
            "paymentReference": "INV1234",
            "purposeOfPaymentCode": "CORP_SUPLIER_PAYMENT",
            "purposeOfPaymentText": "Supplier Payment",
            "recipientId": "85ad53e2-4077-418c-b17c-b597ed90c01d"
          }
        },
        "x-stoplight": {
          "id": "31g6bmx1kjp9e"
        }
      },
      "AttachedRecipient": {
        "description": "An **AttachedRecipient** represents either a registered or non-registered recipient attached to a payment.\n\nIf you are providing a registered recipient, set the **type** field to **Registered** and present the **recipientId** field.\n\nFor a Non-Registered recipient, set the **type** field to **NonRegistered** and present the **Recipient** field, we will try and register the recipient for you.",
        "properties": {
          "recipient": {
            "$ref": "#/components/schemas/Recipient"
          },
          "recipientId": {
            "$ref": "#/components/schemas/RecipientIdentifier"
          },
          "type": {
            "$ref": "#/components/schemas/RecipientRegistrationType"
          }
        },
        "required": [
          "type"
        ],
        "title": "Attached Recipient",
        "type": "object",
        "x-stoplight": {
          "id": "oiotlk2ripg3e"
        }
      },
      "AuthRequest": {
        "description": "Authentication request",
        "properties": {
          "password": {
            "description": "Password associated to account.",
            "example": "x14jhas9173$",
            "format": "password",
            "maxLength": 256,
            "minLength": 1,
            "type": "string"
          },
          "username": {
            "description": "Username associated to account.",
            "example": "xm276589",
            "maxLength": 50,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "username",
          "password"
        ],
        "title": "Authentication Request",
        "type": "object",
        "x-examples": {
          "Acme User Authentication Request": {
            "password": "x14jhas9173$",
            "username": "xm276589"
          }
        },
        "x-stoplight": {
          "id": "o7284o5bmk142"
        }
      },
      "AuthResult": {
        "description": "Authentication request result",
        "properties": {
          "accessToken": {
            "$ref": "#/components/schemas/JwtToken"
          },
          "expiresAt": {
            "description": "Date the access token will expire.",
            "format": "date-time",
            "type": "string"
          },
          "idToken": {
            "$ref": "#/components/schemas/JwtToken"
          },
          "refreshToken": {
            "$ref": "#/components/schemas/JwtToken"
          }
        },
        "required": [
          "accessToken",
          "idToken",
          "refreshToken",
          "expiresAt"
        ],
        "title": "Authentication Result",
        "type": "object",
        "x-examples": {},
        "x-stoplight": {
          "id": "mju80kqcany2r"
        }
      },
      "BankAccount": {
        "allOf": [
          {
            "properties": {
              "accountName": {
                "description": "Optional - Name of the account given by the bank or the PSU in online-banking not required in request.",
                "example": "ACME",
                "maxLength": 50,
                "type": "string"
              },
              "accountNumber": {
                "description": "AccountNumber given by the bank or the PSU in online-banking.",
                "example": "12345674",
                "maxLength": 35,
                "type": "string"
              },
              "accountType": {
                "description": "Account type of the bank account. e.g. Savings, Current, NRE, Loan , Overdraft, CashCredit",
                "maxLength": 40,
                "type": "string",
                "x-stoplight": {
                  "id": "343v7cp0afo8p"
                }
              },
              "bic": {
                "description": "BIC of account.",
                "example": "MIDLGB22XXX",
                "maxLength": 35,
                "type": "string"
              },
              "branchNumber": {
                "description": "Bank branch number is a code that identifies a specific branch of a bank.",
                "maxLength": 30,
                "type": "string"
              },
              "country": {
                "$ref": "#/components/schemas/Country"
              },
              "iban": {
                "description": "IBAN of account.",
                "example": "GB26MIDL40051512345674",
                "maxLength": 35,
                "minLength": 1,
                "type": "string"
              },
              "ncc": {
                "description": "National clearing code of account.",
                "maxLength": 13,
                "type": "string"
              }
            }
          }
        ],
        "description": "A bank account can be used as a payout method on a recipient, if a payout method is a bank account this object will contain the data representing an account.\n\nAdditionally a bank account is a transfer destination for settlement.\n",
        "title": "Bank Account",
        "type": "object",
        "x-examples": {
          "Current Account": {
            "accountNumber": "12345674",
            "bic": "MIDLGB22XXX",
            "country": "GB",
            "iban": "GB26MIDL40051512345674",
            "ncc": "400515"
          }
        },
        "x-stoplight": {
          "id": "r8mrsw2y4k69e"
        }
      },
      "BankAccountType": {
        "description": "The type of bank account a recipient holds",
        "properties": {
          "code": {
            "description": "Code for the bank account type.",
            "type": "string"
          },
          "name": {
            "description": "Name of the bank account type.",
            "type": "string"
          }
        },
        "title": "BankAccountType",
        "type": "object",
        "x-stoplight": {
          "id": "ghihmoff2hojy"
        }
      },
      "BankPayoutMethod": {
        "description": "An **BankPayoutMethod** object is used in setting a payout method.",
        "properties": {
          "account": {
            "$ref": "#/components/schemas/BankAccount"
          },
          "intermAccount": {
            "$ref": "#/components/schemas/IntermBankAccount"
          }
        },
        "required": [
          "account"
        ],
        "title": "Bank Payout Method",
        "type": "object",
        "x-stoplight": {
          "id": "9vgqv5nedc9fd"
        }
      },
      "ClientBankAccount": {
        "description": "Represents a client bank account.",
        "properties": {
          "accountName": {
            "description": "Bank Account name",
            "example": "James Bond",
            "maxLength": 35,
            "minLength": 1,
            "type": "string"
          },
          "accountNumber": {
            "description": "Bank Account number",
            "example": "XC98745656",
            "maxLength": 35,
            "minLength": 1,
            "type": "string"
          },
          "bankAccountId": {
            "description": "bank Account Id",
            "example": 123456,
            "type": "integer"
          },
          "country": {
            "description": "Country",
            "example": "US",
            "maxLength": 2,
            "minLength": 2,
            "type": "string"
          },
          "currency": {
            "description": "Currency",
            "example": "USD",
            "maxLength": 3,
            "minLength": 3,
            "type": "string"
          }
        },
        "required": [
          "bankAccountId",
          "accountName",
          "accountNumber",
          "currency",
          "country"
        ],
        "title": "ClientBankAccount",
        "type": "object",
        "x-examples": {},
        "x-stoplight": {
          "id": "3cw74w6pzw6mm"
        }
      },
      "Company": {
        "description": "**Company** object allow you represent a corporate company as a recipient.",
        "properties": {
          "address": {
            "$ref": "#/components/schemas/Address"
          },
          "emailAddress": {
            "description": "Email address on account.",
            "maxLength": 70,
            "type": "string"
          },
          "idNumber": {
            "description": "Number of the document provided for the ID type.",
            "maxLength": 70,
            "type": "string"
          },
          "idType": {
            "description": "Type of identity document for a particular country.",
            "maxLength": 40,
            "type": "string"
          },
          "industryTypeCode": {
            "description": "Industry type code",
            "type": "string"
          },
          "name": {
            "description": "Name of Company",
            "maxLength": 70,
            "minLength": 1,
            "type": "string"
          },
          "phoneNumber": {
            "description": "Phone number on account.",
            "maxLength": 32,
            "type": "string"
          },
          "taxNumber": {
            "description": "Tax number of the company.",
            "maxLength": 30,
            "type": "string"
          }
        },
        "required": [
          "address"
        ],
        "title": "Company",
        "type": "object",
        "x-examples": {
          "Corporate": {
            "address": [
              {
                "country": "GB",
                "lines": [
                  "Unit 14",
                  "3 Edgar Buildings",
                  "George Street",
                  "Bath",
                  "England",
                  "BA1 2FJ"
                ],
                "locality": "Bath",
                "postcode": "BA1 2FJ",
                "region": "England",
                "street": "3 Edgar Buildings, George Street"
              }
            ],
            "emailAddress": "example@email.com",
            "industryTypeCode": "CHAR_CHAR",
            "name": "ACME"
          }
        },
        "x-stoplight": {
          "id": "f3gdgr9dazrqv"
        }
      },
      "Consumer": {
        "description": "**Consumer** objects allow you to represent a consumer as a recipient.",
        "properties": {
          "address": {
            "$ref": "#/components/schemas/Address"
          },
          "emailAddress": {
            "description": "Conditional\nEmail address on account.",
            "maxLength": 70,
            "type": "string"
          },
          "familyName": {
            "description": "The single family name\nAlso known as surname or last name",
            "maxLength": 20,
            "type": "string"
          },
          "givenNames": {
            "description": "This is a space separated list of names (not including the family name).",
            "maxLength": 50,
            "type": "string"
          },
          "idNumber": {
            "description": "Number of the document provided for the ID type.",
            "maxLength": 70,
            "type": "string"
          },
          "idType": {
            "description": "Type of identity document for a particular country.",
            "maxLength": 40,
            "type": "string"
          },
          "mobileNumber": {
            "deprecated": true,
            "description": "Deprecated - use `phoneNumber` instead.",
            "type": "string"
          },
          "phoneNumber": {
            "description": "Phone number on account",
            "maxLength": 32,
            "type": "string"
          },
          "taxNumber": {
            "description": "Tax number of the recipient.",
            "maxLength": 30,
            "type": "string"
          },
          "title": {
            "description": "Title prefix of consumer's name.",
            "type": "string"
          }
        },
        "required": [
          "address"
        ],
        "title": "Consumer",
        "type": "object",
        "x-examples": {
          "Consumer": {
            "address": {
              "country": "GB",
              "lines": [
                "Unit 14",
                "Flat 3a",
                "George Street",
                "Bath",
                "England",
                "BA1 2FJ"
              ],
              "locality": "Bath",
              "postcode": "BA1 2FJ",
              "region": "England",
              "street": "3 Flat 3a, George Street"
            },
            "emailAddress": "joebloggs@Xe.com",
            "familyName": "Bloggs",
            "givenNames": "Joe Andrew",
            "title": "Mr"
          }
        },
        "x-stoplight": {
          "id": "zh0nahxis74z4"
        }
      },
      "Contract": {
        "description": "An object representing a contract with a related quote.\n",
        "properties": {
          "contractType": {
            "$ref": "#/components/schemas/FxContractType"
          },
          "createdDate": {
            "description": "This is the timestamp when the money transfer instruction was created by the system.",
            "format": "date-time",
            "type": "string"
          },
          "deliveryMethod": {
            "$ref": "#/components/schemas/DeliveryMethod"
          },
          "identifier": {
            "$ref": "#/components/schemas/ContractId"
          },
          "quote": {
            "$ref": "#/components/schemas/QuoteSummary"
          },
          "quoteStatus": {
            "$ref": "#/components/schemas/QuoteStatus"
          },
          "settlementOptions": {
            "items": {
              "$ref": "#/components/schemas/SettlementOption"
            },
            "type": "array"
          },
          "settlementStatus": {
            "$ref": "#/components/schemas/SettlementStatus"
          },
          "status": {
            "$ref": "#/components/schemas/ContractStatus"
          },
          "summary": {
            "description": "Settlement Summary of one or more settlement currencies.",
            "items": {
              "$ref": "#/components/schemas/SettlementSummary"
            },
            "type": "array"
          }
        },
        "required": [
          "identifier",
          "createdDate",
          "status",
          "settlementStatus"
        ],
        "title": "Contract",
        "type": "object",
        "x-examples": {
          "Mass Contract": {
            "acceptedDate": "2019-08-24T14:15:22Z",
            "identifier": {
              "clientTransferNumber": "ACME1345",
              "contractNumber": "2416427"
            },
            "quote": {
              "amount": {
                "amount": 112.67,
                "currency": "USD"
              },
              "expires": "2019-08-24T14:15:22Z",
              "fees": {
                "amount": 0,
                "currency": "USD"
              },
              "fxDetails": [
                {
                  "buy": {
                    "amount": 112.67,
                    "currency": "USD"
                  },
                  "rate": {
                    "baseCurrency": "GBP",
                    "buyCurrency": "USD",
                    "rate": 1.4,
                    "sellCurrency": "GBP"
                  },
                  "sell": {
                    "amount": 80,
                    "currency": "GBP"
                  }
                }
              ],
              "quoteTime": "2019-08-24T14:13:52Z"
            },
            "settlementSummary": {
              "settlementAmount": {
                "amount": 80,
                "currency": "GBP"
              },
              "settlementDate": "2019-08-24T14:15:22Z",
              "settlementFees": {
                "amount": 0,
                "currency": "GBP"
              }
            },
            "status": "ContractUnconfirmed",
            "type": "Mass"
          }
        },
        "x-stoplight": {
          "id": "7svrf46qkaqh3"
        }
      },
      "ContractCreateResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Contract"
          }
        ],
        "description": "Inherits **Contract**",
        "title": "ContractCreateResponse",
        "x-stoplight": {
          "id": "z74eniv1rk2u8"
        }
      },
      "ContractId": {
        "description": "An object representing a group of contract Identifiers",
        "properties": {
          "clientTransferNumber": {
            "description": "Associated client transfer number",
            "example": "ACME1345",
            "maxLength": 35,
            "minLength": 1,
            "type": "string"
          },
          "contractNumber": {
            "description": "The contract Number generated by Xe.",
            "example": "2416427",
            "maxLength": 20,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "contractNumber",
          "clientTransferNumber"
        ],
        "title": "Contract Identifiers",
        "type": "object",
        "x-examples": {
          "Identifier Example": {
            "clientTransferNumber": "ACME1345",
            "contractNumber": "2416427"
          }
        },
        "x-stoplight": {
          "id": "54egmdd1g8b8d"
        }
      },
      "ContractStatus": {
        "default": "QuoteRequired",
        "description": "Status of the contract.\n\n| Status | Description |\n|-|-|\n| PaymentIssues | Some payments contains issues, contract cannot be approved until these are corrected or removed |\n| QuoteRequired | Quote has expired or needs generating |\n| ContractUnconfirmed | Contract is waiting to be confirmed (Approved) |\n| ContractConfirmed | Contract has been confirmed (Approved) |\n| Completed | Contract has been settled and all payouts have been completed |\n| ExposureLimitReached | Client has reached their exposure limit set by Xe |\n| Cancelled| Contract has been cancelled |\n| AwaitingRecipientDetails| Awaiting recipient details |\n| AwaitingFunds| Awaiting funds |\n| ReadyForRelease | Ready for release |\n| Processing | Contract is being processed, refresh after few seconds |\n| SettlementMethodNotAvailable | Selected settlement method is not available |\n| HeldInCurrencyAccount | Amount added to currency account balance  |",
        "enum": [
          "PaymentIssues",
          "ContractConfirmed",
          "Completed",
          "ContractUnconfirmed",
          "ExposureLimitReached",
          "QuoteRequired",
          "Cancelled",
          "AwaitingRecipientDetails",
          "AwaitingFunds",
          "ReadyForRelease",
          "Processing",
          "SettlementMethodNotAvailable",
          "HeldInCurrencyAccount"
        ],
        "example": "QuoteRequired",
        "title": "Contract Status",
        "type": "string",
        "x-examples": {
          "Example": "QuoteRequired"
        },
        "x-stoplight": {
          "id": "jcrsdqjh95m4x"
        }
      },
      "ContractSummary": {
        "properties": {
          "accountNumber": {
            "type": "string"
          },
          "contractSource": {
            "type": "string"
          },
          "contractStatus": {
            "$ref": "#/components/schemas/ContractStatus"
          },
          "contractType": {
            "$ref": "#/components/schemas/FxContractType"
          },
          "dateCreated": {
            "format": "date-time",
            "type": "string"
          },
          "excludedPayments": {
            "description": "No. of excluded payments for MassPayments",
            "type": "integer",
            "x-stoplight": {
              "id": "q1zjqwmauoc1h"
            }
          },
          "identifier": {
            "$ref": "#/components/schemas/ContractId"
          },
          "lastModifiedAt": {
            "format": "date-time",
            "type": "string"
          },
          "settlementStatus": {
            "$ref": "#/components/schemas/SettlementStatus"
          },
          "totalPayments": {
            "description": "Total number of payments in a Contract",
            "type": "integer"
          }
        },
        "title": "ContractSummary",
        "type": "object",
        "x-stoplight": {
          "id": "qtrrlbjxt4xsh"
        }
      },
      "Country": {
        "description": "Represents a country.\n\nThis is a valid supported ISO 3166-1-alpha-2 country code.",
        "example": "GB",
        "maxLength": 2,
        "minLength": 2,
        "pattern": "(?:[a-zA-Z]){2,}",
        "title": "Country",
        "type": "string",
        "x-examples": {
          "Example": "GB"
        },
        "x-stoplight": {
          "id": "t4ec0jt32wueb"
        }
      },
      "Currency": {
        "description": "The currency code is a three letter ISO 4217 code.\n\nhttps://www.iso.org/iso-4217-currency-codes.html\n",
        "example": "GBP",
        "maxLength": 3,
        "minLength": 3,
        "pattern": "(?:[a-zA-Z]){3,}",
        "title": "Currency",
        "type": "string",
        "x-examples": {
          "Example": "GBP"
        },
        "x-stoplight": {
          "id": "7jv7afhiv8ql5"
        }
      },
      "CurrencyAccountResponse": {
        "properties": {
          "availableBalance": {
            "description": "This is the amount you can access or spend right now.",
            "format": "decimal",
            "type": "number"
          },
          "currency": {
            "description": "Currency code",
            "type": "string"
          },
          "totalBalance": {
            "description": "This is your available balance and funds cleared to be available for a payment at a future date.",
            "format": "decimal",
            "type": "number"
          }
        },
        "title": "CurrencyAccountResponse",
        "type": "object"
      },
      "CurrencyAmount": {
        "description": "Represents monetary value within a currency.\n\nIf `amount` is zero (0) this should be set as null.",
        "properties": {
          "amount": {
            "description": "Decimal amount in currency.  \nThe number of decimal places is defined by the currency.",
            "example": 80,
            "format": "decimal",
            "minimum": 0.01,
            "nullable": true,
            "type": "number"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          }
        },
        "required": [
          "currency"
        ],
        "title": "Currency Amount",
        "type": "object",
        "x-examples": {
          "Example": {
            "amount": 80,
            "currency": "GBP"
          }
        },
        "x-stoplight": {
          "id": "gxnm7cjvs8mbp"
        }
      },
      "CurrencySettlementSummary": {
        "description": "Currency Settlement Summary",
        "properties": {
          "initialMargin": {
            "$ref": "#/components/schemas/SettlementAmount"
          },
          "remainingSettlement": {
            "$ref": "#/components/schemas/SettlementAmountDetail"
          },
          "settlementAmount": {
            "$ref": "#/components/schemas/SettlementAmount"
          },
          "settlementFees": {
            "$ref": "#/components/schemas/SettlementAmount"
          }
        },
        "required": [
          "settlementFees",
          "settlementAmount"
        ],
        "title": "Currency Settlement Summary",
        "type": "object",
        "x-examples": {
          "Example": {
            "initialSettlement": {
              "amount": 10,
              "currency": "GBP"
            },
            "remainingSettlement": {
              "amount": 90,
              "currency": "GBP",
              "settlementDate": "2025-08-24"
            },
            "settlementAmount": {
              "amount": 100,
              "currency": "GBP"
            },
            "settlementFees": {
              "amount": 2,
              "currency": "GBP"
            }
          }
        },
        "x-stoplight": {
          "id": "96wvh0a4p8gl9"
        }
      },
      "DeliveryMethod": {
        "default": "NotSet",
        "description": "Funds delivery method\n| NotSet | Delivery method not being set |\n| BankAccount | Deliver to recipient's bank account |\n| CashPayout | Deliver cash to recipient |\n| MobileWallet | Deliver to recipient's mobile wallet |\n| FundsOnBalance | Deliver funds to currency balance |\n| PeerToPeer| Deliver funds to another XE customer |",
        "enum": [
          "NotSet",
          "BankAccount",
          "CashPayout",
          "MobileWallet",
          "FundsOnBalance",
          "PeerToPeer"
        ],
        "example": "BankAccount",
        "title": "DeliveryMethod",
        "type": "string",
        "x-examples": {
          "Example 1": "BankAccount"
        },
        "x-stoplight": {
          "id": "l5zwuh00b5ki2"
        }
      },
      "DirectDebitBankAccount": {
        "allOf": [
          {
            "properties": {
              "accountName": {
                "description": "Name of the account given by the bank or the PSU in online-banking",
                "example": "ACME",
                "maxLength": 70,
                "type": "string"
              },
              "accountNumber": {
                "description": "AccountNumber given by the bank or the PSU in online-banking.",
                "example": "12345674",
                "type": "string"
              }
            }
          }
        ],
        "description": "Direct Debit Bank Account is a US/Canada bank account from where the funds will be debited",
        "title": "Direct Debit Bank Account",
        "type": "object",
        "x-examples": {
          "DirectDebitBankAccount": {
            "accountName": "US Account",
            "accountNumber": 12345674
          }
        },
        "x-stoplight": {
          "id": "lty8gt7c04n64"
        }
      },
      "EnterpriseAccount": {
        "description": "Associated account details",
        "properties": {
          "accountName": {
            "type": "string"
          },
          "accountNumber": {
            "type": "string"
          },
          "parentAccountNumber": {
            "type": "string"
          }
        },
        "title": "EnterpriseAccount",
        "type": "object",
        "x-examples": {
          "Example 1": {
            "accountName": "Example Account",
            "accountNumber": "XEMT0000011111",
            "parentAccountNumber": "XEMT0000022222"
          }
        },
        "x-stoplight": {
          "id": "pfkffb1j4iay0"
        }
      },
      "ExpectedValue": {
        "description": "An expected value for a recipient field",
        "properties": {
          "id": {
            "example": "CHECKING",
            "type": "string"
          },
          "value": {
            "example": "Checking",
            "type": "string"
          }
        },
        "required": [
          "id",
          "value"
        ],
        "title": "ExpectedValue",
        "type": "object"
      },
      "FieldError": {
        "properties": {
          "code": {
            "description": "Error Code",
            "type": "string"
          },
          "message": {
            "description": "Error Message",
            "type": "string"
          }
        },
        "required": [
          "code",
          "message"
        ],
        "title": "FieldError",
        "type": "object",
        "x-stoplight": {
          "id": "ylg6g6zaffla6"
        }
      },
      "FixedAmountType": {
        "default": "NotSet",
        "description": "| NotSet | Value is not set for Amount type. |\n| Buy | Buy amount is provided. |\n| Sell | Sell amount is provided. |",
        "enum": [
          "NotSet",
          "Buy",
          "Sell"
        ],
        "title": "FixedAmountType",
        "type": "string",
        "x-examples": {
          "Example": "Buy"
        },
        "x-stoplight": {
          "id": "101ynnrrn5tcc"
        }
      },
      "FxContractType": {
        "default": "NotSpecified",
        "description": "Enum: The type of the contract\nValues: NotSpecified | Spot | Forward | RecurrringPayment | PreDelivery  | Rollover | CloseOut | MassPayments | Topup | SameCurrency | ScheduledPayment",
        "enum": [
          "NotSpecified",
          "Spot",
          "Forward",
          "RecurrringPayment",
          "PreDelivery",
          "Rollover",
          "CloseOut",
          "MassPayments",
          "Topup",
          "SameCurrency",
          "ScheduledPayment"
        ],
        "title": "FxContractType",
        "type": "string",
        "x-examples": {
          "Example ": "Forward"
        },
        "x-stoplight": {
          "id": "o2gcpj0mlaweu"
        }
      },
      "FxDetail": {
        "description": "An object representing the detail of an FX rate.",
        "properties": {
          "buy": {
            "$ref": "#/components/schemas/CurrencyAmount"
          },
          "fixedAmountType": {
            "$ref": "#/components/schemas/FixedAmountType"
          },
          "rate": {
            "$ref": "#/components/schemas/FxRate"
          },
          "remainingBuyForward": {
            "$ref": "#/components/schemas/CurrencyAmount"
          },
          "remainingSellForward": {
            "$ref": "#/components/schemas/CurrencyAmount"
          },
          "sell": {
            "$ref": "#/components/schemas/CurrencyAmount"
          }
        },
        "required": [
          "rate"
        ],
        "title": "FX Detail",
        "type": "object",
        "x-examples": {
          "Example": {
            "buy": {
              "amount": 112.67,
              "currency": "USD"
            },
            "fixedAmountType": "Buy",
            "rate": {
              "baseCurrency": "GBP",
              "buyCurrency": "USD",
              "inverseRate": 0.82,
              "rate": 1.4,
              "sellCurrency": "GBP"
            },
            "sell": {
              "amount": 80,
              "currency": "GBP"
            }
          }
        },
        "x-stoplight": {
          "id": "mgr7f2xn6ly86"
        }
      },
      "FxQuotePatchRequest": {
        "description": "Patch request for updating an existing quote",
        "properties": {
          "deliveryMethod": {
            "$ref": "#/components/schemas/DeliveryMethod",
            "description": "Optional\nDelivery method to be updated"
          },
          "initialMarginSettlementDetails": {
            "$ref": "#/components/schemas/SettlementDetails",
            "description": "Optional\nInitial margin settlement details to be updated"
          },
          "payments": {
            "description": "Optional\nPayments to be attached, it will replace existing payments if any payment is attached to the original quote",
            "items": {
              "$ref": "#/components/schemas/AttachPayment"
            },
            "type": "array",
            "x-stoplight": {
              "id": "r2ixpvfdnyp2v"
            }
          },
          "settlementDetails": {
            "$ref": "#/components/schemas/SettlementDetails",
            "description": "Optional\nSettlement details to be updated"
          }
        },
        "title": "FxQuotePatchRequest",
        "type": "object",
        "x-examples": {
          "Example 1": {
            "deliveryMethod": "BankAccount",
            "initialMarginSettlementDetails": {
              "bankAccountId": 0,
              "settlementMethod": "BankTransfer"
            },
            "payments": [
              {
                "amount": 10,
                "autoAdjustAmountToRemainingBalance": false,
                "paymentReference": "INV1234",
                "purposeOfPaymentCode": "CORP_SUPLIER_PAYMENT",
                "purposeOfPaymentText": "Supplier Payment",
                "recipientId": "85ad53e2-4077-418c-b17c-b597ed90c01d"
              }
            ],
            "settlementDetails": {
              "bankAccountId": 0,
              "settlementMethod": "BankTransfer"
            }
          },
          "Example 2": {
            "deliveryMethod": "BankAccount",
            "initialMarginSettlementDetails": {
              "bankAccountId": 0,
              "settlementMethod": "BankTransfer"
            },
            "payments": [
              {
                "amount": 50,
                "autoAdjustAmountToRemainingBalance": false,
                "paymentReference": "INV1234",
                "purposeOfPaymentCode": "CORP_SUPLIER_PAYMENT",
                "purposeOfPaymentText": "Supplier Payment",
                "recipientId": "85ad53e2-4077-418c-b17c-b597ed90c01d"
              },
              {
                "amount": 30,
                "autoAdjustAmountToRemainingBalance": true,
                "paymentReference": "INV12569",
                "purposeOfPaymentCode": "CORP_SUPLIER_PAYMENT",
                "purposeOfPaymentText": "Supplier Payment",
                "recipientId": "85ad53e2-4077-418c-b17c-b597ed90c02a"
              }
            ],
            "settlementDetails": {
              "bankAccountId": 0,
              "settlementMethod": "BankTransfer"
            }
          }
        },
        "x-stoplight": {
          "id": "jw2egnayd96iu"
        }
      },
      "FxQuoteRequest": {
        "description": "Single fx quote request",
        "properties": {
          "buy": {
            "$ref": "#/components/schemas/CurrencyAmount"
          },
          "clientTransferNumber": {
            "description": "Reference set by the client for the quote.",
            "example": "ACME984621",
            "maxLength": 35,
            "minLength": 1,
            "nullable": true,
            "type": "string"
          },
          "countryTo": {
            "$ref": "#/components/schemas/Country"
          },
          "deliveryMethod": {
            "$ref": "#/components/schemas/DeliveryMethod"
          },
          "initialMarginSettlementDetails": {
            "$ref": "#/components/schemas/SettlementDetails"
          },
          "payments": {
            "description": "Payments to be attached",
            "items": {
              "$ref": "#/components/schemas/AttachPayment"
            },
            "type": "array",
            "x-stoplight": {
              "id": "r2ixpvfdnyp2v"
            }
          },
          "sell": {
            "$ref": "#/components/schemas/CurrencyAmount"
          },
          "settlementDetails": {
            "$ref": "#/components/schemas/SettlementDetails"
          },
          "valueDate": {
            "description": "Value date of the payout, if left **BLANK** the current date will be used.",
            "format": "date",
            "nullable": true,
            "type": "string"
          }
        },
        "title": "FxQuoteRequest",
        "type": "object",
        "x-examples": {
          "Example 1": {
            "buy": {
              "amount": 80,
              "currency": "GBP"
            },
            "clientTransferNumber": "ACME984621",
            "countryTo": "GB",
            "deliveryMethod": "BankAccount",
            "sell": {
              "amount": 80,
              "currency": "GBP"
            },
            "settlementDetails": {
              "bankAccountId": 0,
              "settlementMethod": "BankTransfer"
            },
            "valueDate": "2019-08-24"
          }
        },
        "x-stoplight": {
          "id": "yu0h7tl625mtd"
        }
      },
      "FxQuoteResponse": {
        "description": "Quote response for single Fx quote request",
        "properties": {
          "clientTransferNumber": {
            "type": "string"
          },
          "deliveryMethod": {
            "$ref": "#/components/schemas/DeliveryMethod"
          },
          "expires": {
            "description": "Expiration Date of quote\nReturned by Xe platform.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "fxDetail": {
            "$ref": "#/components/schemas/QuoteFxDetail"
          },
          "initialMarginSettlementMethod": {
            "$ref": "#/components/schemas/SettlementMethod",
            "nullable": true
          },
          "messages": {
            "items": {
              "$ref": "#/components/schemas/InfoMessage"
            },
            "type": "array",
            "x-stoplight": {
              "id": "lkqhielfyw8m7"
            }
          },
          "payments": {
            "description": "The list of payments to be made as part of this quote",
            "items": {
              "$ref": "#/components/schemas/AttachPayment"
            },
            "type": "array"
          },
          "quoteId": {
            "type": "string"
          },
          "quoteTime": {
            "description": "Date of quote\nReturned by Xe platform.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "settlementMethod": {
            "$ref": "#/components/schemas/SettlementMethod"
          },
          "settlementOptions": {
            "items": {
              "$ref": "#/components/schemas/SettlementOption"
            },
            "type": "array"
          },
          "status": {
            "$ref": "#/components/schemas/QuoteStatus"
          },
          "summary": {
            "description": "Summary of settlement per currency pairs.",
            "items": {
              "$ref": "#/components/schemas/CurrencySettlementSummary"
            },
            "type": "array"
          }
        },
        "required": [
          "summary",
          "quoteId",
          "status"
        ],
        "title": "FxQuoteResponse",
        "type": "object",
        "x-examples": {
          "Example 1": {
            "clientTransferNumber": "string",
            "deliveryMethod": "BankAccount",
            "expires": "2025-08-24T14:15:22Z",
            "fxDetail": {
              "buy": {
                "amount": 100,
                "currency": "USD"
              },
              "fixedAmountType": "Buy",
              "quoteType": "Forward",
              "rate": {
                "baseCurrency": "USD",
                "buyCurrency": "USD",
                "inverseRate": 0.8,
                "rate": 1.25,
                "sellCurrency": "GBP"
              },
              "remainingBuyForward": {
                "amount": 25,
                "currency": "USD"
              },
              "remainingSellForward": {
                "amount": 20,
                "currency": "GBP"
              },
              "sell": {
                "amount": 80,
                "currency": "GBP"
              },
              "valueDate": "2025-08-24"
            },
            "messages": [
              {
                "code": "string",
                "message": "string"
              }
            ],
            "quoteId": "string",
            "quoteTime": "2025-08-24T14:15:22Z",
            "settlementMethod": "BankTransfer",
            "settlementOptions": [
              {
                "displayName": "string",
                "isAvailable": true,
                "method": "BankTransfer",
                "unAvailableReason": "string",
                "unAvailableReasonCode": "string"
              }
            ],
            "status": "NotSet",
            "summary": [
              {
                "initialSettlement": {
                  "amount": 5,
                  "currency": "GBP"
                },
                "remainingSettlement": {
                  "amount": 95,
                  "currency": "GBP",
                  "settlementDate": "2019-08-24"
                },
                "settlementAmount": {
                  "amount": 100,
                  "currency": "GBP"
                },
                "settlementFees": {
                  "amount": 0,
                  "currency": "GBP"
                }
              }
            ]
          }
        },
        "x-stoplight": {
          "id": "n2750p2r1mnqc"
        }
      },
      "FxRate": {
        "description": "A object representing a FX Rate",
        "properties": {
          "baseCurrency": {
            "$ref": "#/components/schemas/Currency"
          },
          "buyCurrency": {
            "$ref": "#/components/schemas/Currency"
          },
          "inverseRate": {
            "description": "The opposite ratio of the exchange rate of a currency pair.",
            "format": "decimal",
            "nullable": true,
            "type": "number"
          },
          "rate": {
            "description": "The exchange rate between the two currencies.",
            "format": "decimal",
            "nullable": true,
            "type": "number"
          },
          "sellCurrency": {
            "$ref": "#/components/schemas/Currency"
          }
        },
        "required": [
          "baseCurrency"
        ],
        "title": "FX Rate",
        "type": "object",
        "x-examples": {
          "Example": {
            "baseCurrency": "GBP",
            "buyCurrency": "USD",
            "inverseRate": 0.8219,
            "rate": 1.4,
            "sellCurrency": "GBP"
          }
        },
        "x-stoplight": {
          "id": "f13rmboqtx4oe"
        }
      },
      "GetContractsResponse": {
        "properties": {
          "Records": {
            "items": {
              "$ref": "#/components/schemas/ContractSummary"
            },
            "type": "array"
          },
          "TotalRecords": {
            "type": "integer"
          }
        },
        "title": "GetContractsResponse",
        "type": "object",
        "x-stoplight": {
          "id": "4x58lgca8vfk0"
        }
      },
      "IdType": {
        "description": "Represents a recipient identity document type for a given country.",
        "properties": {
          "code": {
            "description": "Code for the ID type.",
            "type": "string"
          },
          "country": {
            "description": "Country of the ID type.",
            "type": "string"
          },
          "name": {
            "description": "Full name of the ID type.",
            "type": "string"
          }
        },
        "required": [
          "code",
          "name"
        ],
        "title": "IdType",
        "type": "object",
        "x-stoplight": {
          "id": "4pnjo2xae5nn7"
        }
      },
      "IndustryType": {
        "description": "Industry type for a given industry type category",
        "properties": {
          "code": {
            "description": "Code for industry type.",
            "type": "string"
          },
          "description": {
            "description": "Full description of the industry type.",
            "type": "string"
          }
        },
        "title": "Industry Type",
        "type": "object",
        "x-stoplight": {
          "id": "ekn0nv3hi4xre"
        }
      },
      "IndustryTypeCategory": {
        "description": "Industry type category object",
        "properties": {
          "code": {
            "description": "Code for industry type category.",
            "type": "string"
          },
          "description": {
            "description": "Full description of the industry type category.",
            "type": "string"
          }
        },
        "title": "Industry Type Category",
        "type": "object",
        "x-stoplight": {
          "id": "iujzw3uv1t8rq"
        }
      },
      "InfoMessage": {
        "properties": {
          "code": {
            "description": "Information or warning message code",
            "type": "string",
            "x-stoplight": {
              "id": "0oa6kpl284bor"
            }
          },
          "message": {
            "description": "Information or warning message",
            "type": "string",
            "x-stoplight": {
              "id": "uuiqsmc82u5ii"
            }
          }
        },
        "required": [
          "code",
          "message"
        ],
        "title": "InfoMessage",
        "type": "object",
        "x-stoplight": {
          "id": "cwpstsr2tfrgv"
        }
      },
      "IntermBankAccount": {
        "allOf": [
          {
            "properties": {
              "accountName": {
                "description": "Name of the account given by the bank or the PSU in online-banking",
                "example": "ACME",
                "maxLength": 50,
                "type": "string"
              },
              "accountNumber": {
                "description": "AccountNumber given by the bank or the PSU in online-banking.",
                "example": "12345674",
                "maxLength": 35,
                "type": "string"
              },
              "bic": {
                "description": "BIC of account.",
                "example": "MIDLGB22XXX",
                "maxLength": 35,
                "type": "string"
              },
              "country": {
                "$ref": "#/components/schemas/Country"
              },
              "iban": {
                "description": "IBAN of account.",
                "example": "GB26MIDL40051512345674",
                "maxLength": 35,
                "minLength": 1,
                "type": "string"
              },
              "ncc": {
                "description": "National clearing code of account.",
                "maxLength": 13,
                "type": "string"
              }
            }
          }
        ],
        "description": "A bank account can be used as a payout method on a recipient, if a payout method is a bank account this object will contain the data representing an account.\n\nAdditionally a bank account is a transfer destination for settlement.\n",
        "title": "Interm Bank Account",
        "type": "object",
        "x-examples": {
          "Current Account": {
            "accountNumber": "12345674",
            "bic": "MIDLGB22XXX",
            "country": "GB",
            "iban": "GB26MIDL40051512345674",
            "ncc": "400515"
          }
        },
        "x-stoplight": {
          "id": "7cwt5jol7g5s9"
        }
      },
      "Issue": {
        "description": "An object used to represent an issue.\n",
        "properties": {
          "description": {
            "description": "Description of Issue.",
            "type": "string"
          },
          "issueId": {
            "description": "Issue Identifier",
            "type": "integer"
          }
        },
        "required": [
          "issueId",
          "description"
        ],
        "title": "Issue",
        "type": "object",
        "x-examples": {
          "Example": {
            "description": "INVALID CURRENCY",
            "issueId": "1001"
          }
        },
        "x-stoplight": {
          "id": "8ximxobj7teun"
        }
      },
      "JwtToken": {
        "description": "Base64 encoded [RFC-7519](https://tools.ietf.org/html/rfc7519) JWT token",
        "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$",
        "title": "JWT Token",
        "type": "string",
        "x-stoplight": {
          "id": "oh4txsced3sdh"
        }
      },
      "Payment": {
        "description": "This object is used to request a payout.\n",
        "properties": {
          "buyAmount": {
            "$ref": "#/components/schemas/CurrencyAmount"
          },
          "clientReference": {
            "description": "Reference for the payment set by client.\nThis reference must be unique, if provided previously  validation will returned an issue.",
            "maxLength": 35,
            "minLength": 1,
            "pattern": "^[a-zA-Z0-9_-]+$",
            "type": "string"
          },
          "effectiveDate": {
            "description": "Optional.\nWhen date of payment is required, if left blank payment will be done as soon as possible.",
            "format": "date",
            "nullable": true,
            "type": "string"
          },
          "paymentReference": {
            "description": "Reference shown to the recipient.",
            "maxLength": 70,
            "minLength": 1,
            "type": "string"
          },
          "purpose": {
            "description": "Optional.\nReason for the payment. Required when purposeOfPaymentCode allows free text.",
            "maxLength": 35,
            "type": "string"
          },
          "purposeOfPaymentCode": {
            "description": "Purpose of payment code. Get list of Payment purposes using \\'/payments/purposes\\' endpoint",
            "maxLength": 40,
            "type": "string"
          },
          "sellAmount": {
            "$ref": "#/components/schemas/CurrencyAmount"
          }
        },
        "required": [
          "clientReference",
          "sellAmount",
          "buyAmount"
        ],
        "title": "Payment",
        "type": "object",
        "x-examples": {
          "example-1": {
            "buyAmount": {
              "amount": 80,
              "currency": "GBP"
            },
            "clientReference": "string",
            "effectiveDate": "2019-08-24",
            "paymentReference": "string",
            "purpose": "",
            "purposeOfPaymentCode": "PRIV_INVESTMENT",
            "sellAmount": {
              "amount": 80,
              "currency": "USD"
            }
          },
          "example-2": {
            "buyAmount": {
              "amount": 80,
              "currency": "GBP"
            },
            "clientReference": "string",
            "effectiveDate": "2019-08-24",
            "paymentReference": "string",
            "purpose": "Gift",
            "purposeOfPaymentCode": "PRIV_OTHER",
            "sellAmount": {
              "amount": 100,
              "currency": "USD"
            }
          }
        },
        "x-stoplight": {
          "id": "38eaov7xaojtd"
        }
      },
      "PaymentFieldMap": {
        "description": "Field details",
        "properties": {
          "fieldName": {
            "description": "Name of the field to be included in the request",
            "example": "accountNumber",
            "type": "string"
          },
          "label": {
            "description": "Label to be shown in UI for the field",
            "example": "Account number",
            "type": "string"
          },
          "maximumLength": {
            "description": "Maximum length of the field value allowed.",
            "nullable": true,
            "type": "integer"
          },
          "minimumLength": {
            "description": "Minimum length of the field value.",
            "nullable": true,
            "type": "integer"
          },
          "pattern": {
            "description": "Return RegEx used to validate field value if not then return null.",
            "example": "[0-9]6",
            "type": "string"
          },
          "required": {
            "description": "Whether field is required or not for payment request",
            "example": true,
            "type": "boolean"
          }
        },
        "required": [
          "fieldName",
          "label",
          "required"
        ],
        "title": "PaymentFieldMap",
        "type": "object",
        "x-examples": {
          "Account number field": {
            "fieldName": "accountNumber",
            "label": "Account number",
            "maximumLength": 22,
            "minimumLength": 5,
            "pattern": null,
            "required": true
          },
          "example-1": {
            "fieldName": "ncc",
            "label": "Sort code",
            "maximumLength": 0,
            "minimumLength": 0,
            "pattern": "[0-9]6",
            "required": true
          }
        }
      },
      "PaymentIdentifier": {
        "description": "An object representing a group of payment Identifiers",
        "properties": {
          "clientReference": {
            "example": "C124863",
            "maxLength": 35,
            "minLength": 1,
            "type": "string"
          },
          "xePaymentId": {
            "description": "The Payment ID generated by Xe.",
            "example": "P124863",
            "maxLength": 35,
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "clientReference"
        ],
        "title": "PaymentIdentifier",
        "type": "object",
        "x-stoplight": {
          "id": "2wirsuc35c421"
        }
      },
      "PaymentRecipientUpdateRequest": {
        "description": "This is a composite request. It is used when you need to update a payment's recipient.\n\nTo update to a newly registered recipient you can specify their identifiers using the field **recipientId** and set the **type** field to **Registered**.\n\nTo provide a new non-registered recipient you can provide the **recipient** field and set the **type** field to **NonRegistered**, we will try and register this recipient for you.\n\n**Recipient** field is required in version 2.",
        "properties": {
          "recipient": {
            "$ref": "#/components/schemas/Recipient"
          }
        },
        "required": [
          "recipient"
        ],
        "title": "Payment Recipient Update Request",
        "type": "object",
        "x-stoplight": {
          "id": "t0kh0kax6alue"
        }
      },
      "PaymentSummary": {
        "allOf": [
          {
            "properties": {
              "fxDetail": {
                "$ref": "#/components/schemas/FxDetail"
              },
              "identifier": {
                "$ref": "#/components/schemas/PaymentIdentifier"
              },
              "isExcluded": {
                "description": "This flag will be true when a payment is deleted from the contract, else false.",
                "type": "boolean"
              },
              "issues": {
                "description": "List of issues identified against the payment.",
                "items": {
                  "$ref": "#/components/schemas/Issue"
                },
                "type": "array"
              },
              "payoutInformation": {
                "$ref": "#/components/schemas/Payout"
              },
              "recipientName": {
                "description": "Recipient name is `name` property for Company and `title + givenNames + familyName` for consumer.",
                "type": "string"
              },
              "validationStatus": {
                "$ref": "#/components/schemas/PaymentValidationStatus"
              }
            },
            "required": [
              "validationStatus"
            ],
            "type": "object"
          },
          {
            "$ref": "#/components/schemas/Payment"
          }
        ],
        "description": "Inherits from **Payment**\n\nAn object representing the summary of a payment.",
        "x-examples": {
          "Valid Payment Summary": {
            "buyAmount": {
              "currency": "USD"
            },
            "clientReference": "26bf0ffc-5fc5-495a-9a83-83ab45bd9b04",
            "effectiveDate": "2019-08-24",
            "fxDetail": {
              "buy": {
                "amount": 112.67,
                "currency": "USD"
              },
              "rate": {
                "baseCurrency": "GBP",
                "buyCurrency": "USD",
                "rate": 1.4,
                "sellCurrency": "GBP"
              },
              "sell": {
                "amount": 80,
                "currency": "GBP"
              }
            },
            "isExcluded": false,
            "issues": [],
            "paymentReference": "PAYE132",
            "payoutInformation": {
              "expectedPaymentDate": "2019-08-24",
              "feeAmount": {
                "amount": 0,
                "currency": "USD"
              },
              "payoutAmount": {
                "amount": 112.67,
                "currency": "USD"
              }
            },
            "purpose": "Invoice",
            "recipientName": "Recipient Name",
            "sellAmount": {
              "amount": 80,
              "currency": "GBP"
            },
            "validationStatus": "Approved"
          }
        },
        "x-stoplight": {
          "id": "1lfl5izscuz9b"
        }
      },
      "PaymentValidationStatus": {
        "default": "Rejected",
        "description": "Validation status of Payment.\n\n| Status | Description |\n|-|-|\n| Approved | Payment has passed validation |\n| Rejected | Payment has not passed validation and requires reviewing |\n| AwaitingApproval | Payment has is awaiting approval |\n| Cancelled | Payment has been cancelled |\n| Sent | Payment has passed validation and been paid to recipient |\n| InReview | Payment requires manual review |\n| Processing | Payment is currently being processed |",
        "enum": [
          "Approved",
          "Rejected",
          "Sent",
          "InReview",
          "Cancelled",
          "AwaitingApproval",
          "Processing"
        ],
        "title": "PaymentValidationStatus",
        "type": "string",
        "x-examples": {
          "Example": "Rejected"
        },
        "x-stoplight": {
          "id": "rdx2mt2c6vb9a"
        }
      },
      "PaymentsCreateRequest": {
        "description": "This is a composite request. It is used when you need to create one or more payment requests.\n",
        "properties": {
          "autoApprove": {
            "default": false,
            "description": "Set to **TRUE** to automatically approve and release the payouts.\nThis setting reduces the need to call the approve method.\nIf payments are **REJECTED** the contract will not be released.",
            "type": "boolean"
          },
          "payments": {
            "description": "Array of payments. \nThis object is used to supply a list of payout information.",
            "items": {
              "$ref": "#/components/schemas/RecipientPayment"
            },
            "minItems": 1,
            "type": "array"
          },
          "settlementDetails": {
            "$ref": "#/components/schemas/SettlementDetails"
          }
        },
        "required": [
          "payments"
        ],
        "title": "Payments Create Request",
        "type": "object",
        "x-examples": {
          "Company Payments": {
            "autoApprove": false,
            "payments": [
              {
                "buyAmount": {
                  "currency": "USD"
                },
                "clientReference": "26bf0ffc-5fc5-495a-9a83-83ab45bd9b04",
                "effectiveDate": "2021-04-23",
                "paymentReference": "PAYE132",
                "recipient": {
                  "address": [
                    {
                      "country": "GB",
                      "lines": [
                        "Unit 14",
                        "3 Edgar Buildings",
                        "George Street",
                        "Bath",
                        "England",
                        "BA1 2FJ"
                      ],
                      "locality": "Bath",
                      "postcode": "BA1 2FJ",
                      "region": "England",
                      "street": "3 Edgar Buildings, George Street"
                    }
                  ],
                  "bankAccount": {
                    "country": "GB",
                    "iban": "GB26MIDL40051512345674"
                  },
                  "name": "ACME",
                  "type": "CompanyBankAccount"
                },
                "sellAmount": {
                  "amount": 80,
                  "currency": "GBP"
                }
              }
            ]
          }
        },
        "x-stoplight": {
          "id": "yo9qs4z117h7k"
        }
      },
      "PaymentsCreateResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Contract"
          }
        ],
        "description": "Inherits **Contract**\n\nResponse object for Payments Create Request.\n",
        "title": "Payments Create Response",
        "x-examples": {},
        "x-stoplight": {
          "id": "3rxuj3yvkxesd"
        }
      },
      "Payout": {
        "allOf": [
          {
            "properties": {
              "dateSentToRecipient": {
                "description": "Date sent to Recipient, this will be blank until the payout is processed.",
                "format": "date-time",
                "nullable": true,
                "type": "string"
              },
              "expectedPaymentDate": {
                "description": "The date when we expected to pay the recipient.",
                "format": "date",
                "nullable": true,
                "type": "string"
              },
              "feeAmount": {
                "$ref": "#/components/schemas/CurrencyAmount"
              },
              "payoutAmount": {
                "$ref": "#/components/schemas/CurrencyAmount"
              }
            },
            "required": [
              "payoutAmount",
              "feeAmount"
            ]
          }
        ],
        "description": "An object representing payout details originating from the creation of a payment.",
        "title": "Payout",
        "type": "object",
        "x-examples": {
          "Example - Not Sent to Recipient": {
            "expectedPaymentDate": "2019-08-24",
            "feeAmount": {
              "amount": 0,
              "currency": "USD"
            },
            "payoutAmount": {
              "amount": 112.67,
              "currency": "USD"
            }
          },
          "Example - Sent to Recipient": {
            "dateSentToRecipient": "2019-08-24T14:15:22Z",
            "expectedPaymentDate": "2019-08-24",
            "feeAmount": {
              "amount": 0,
              "currency": "USD"
            },
            "payoutAmount": {
              "amount": 112.67,
              "currency": "USD"
            }
          }
        },
        "x-stoplight": {
          "id": "qq1jds23rk82k"
        }
      },
      "PayoutMethod": {
        "description": "Payout Method object represent your recipient's payout instrument. This object can be used in combination with registering recipients or as part of a collection of payments.",
        "properties": {
          "bank": {
            "$ref": "#/components/schemas/BankPayoutMethod"
          },
          "type": {
            "$ref": "#/components/schemas/PayoutMethodType"
          }
        },
        "required": [
          "type"
        ],
        "title": "Payout Method",
        "type": "object",
        "x-stoplight": {
          "id": "j3ob38hdj4nww"
        }
      },
      "PayoutMethodType": {
        "default": "BankAccount",
        "description": "Type of payout method",
        "enum": [
          "BankAccount"
        ],
        "example": "BankAccount",
        "title": "Payout Method Type",
        "type": "string",
        "x-stoplight": {
          "id": "rlqgm7icjommn"
        }
      },
      "PurposeOfPayment": {
        "description": "A Purpose of Payment used for a payment",
        "properties": {
          "allowFreeText": {
            "description": "Flag to allow free text for purpose of payment",
            "type": "boolean"
          },
          "code": {
            "description": "Code for purpose of payment.",
            "type": "string"
          },
          "name": {
            "description": "Full name for purpose of payment",
            "type": "string"
          }
        },
        "required": [
          "code",
          "name",
          "allowFreeText"
        ],
        "title": "Purpose Of Payment",
        "type": "object",
        "x-examples": {
          "DefaultOtherPurpose": {
            "allowFreeText": true,
            "code": "PRI_OTHER",
            "name": "Other"
          },
          "PurposesForPrivateINR": {
            "allowFreeText": false,
            "code": "PRI_INR_INVESTMENT",
            "name": "Investment"
          }
        },
        "x-stoplight": {
          "id": "hmwgrr4yrsgn7"
        }
      },
      "Quote": {
        "description": "An object representing an FX quote.",
        "properties": {
          "buy": {
            "$ref": "#/components/schemas/CurrencyAmount"
          },
          "countryTo": {
            "$ref": "#/components/schemas/Country"
          },
          "effectiveDate": {
            "deprecated": true,
            "description": "Deprecated - use `valueDate` instead.",
            "format": "date",
            "nullable": true,
            "type": "string"
          },
          "sell": {
            "$ref": "#/components/schemas/CurrencyAmount"
          },
          "valueDate": {
            "description": "Optional.\nValue date of the payout, if left **BLANK** the current date will be used.",
            "format": "date",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "sell",
          "buy"
        ],
        "title": "Quote",
        "type": "object",
        "x-examples": {
          "Simple": {
            "buy": {
              "currency": "USD"
            },
            "countryTo": "US",
            "sell": {
              "amount": 80,
              "currency": "GBP"
            },
            "valueDate": "2021-04-23"
          }
        },
        "x-stoplight": {
          "id": "gdevuue2fyhc5"
        }
      },
      "QuoteFxDetail": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FxDetail"
          },
          {
            "properties": {
              "effectiveDate": {
                "deprecated": true,
                "description": "Deprecated - Use `valueDate` instead.",
                "format": "date",
                "nullable": true,
                "type": "string"
              },
              "quoteType": {
                "$ref": "#/components/schemas/QuoteType"
              },
              "remainingToDisburse": {
                "$ref": "#/components/schemas/CurrencyAmount"
              },
              "valueDate": {
                "description": "Value date of the fx transaction.",
                "format": "date",
                "nullable": true,
                "type": "string"
              }
            },
            "type": "object"
          }
        ],
        "description": "Inherits from **FxDetail**\n",
        "title": "Quote Fx Detail",
        "x-examples": {
          "Example 1": {
            "buy": {
              "amount": 80,
              "currency": "GBP"
            },
            "quoteType": "Spot",
            "rate": {
              "baseCurrency": "GBP",
              "buyCurrency": "GBP",
              "inverseRate": 0,
              "rate": 0,
              "sellCurrency": "GBP"
            },
            "sell": {
              "amount": 80,
              "currency": "GBP"
            },
            "valueDate": "2019-08-24"
          }
        },
        "x-stoplight": {
          "id": "7fdvaxxwile9t"
        }
      },
      "QuoteStatus": {
        "default": "NotSet",
        "description": "Status of the contract quote.\n\n| NotSet | Indicates that quote is not available |\n| Valid | Valid quote |\n| ManualQuoteRequested | Quote requires manual pricing |\n| Timeout | Quote timed out |\n| Rejected | Quote Rejected |\n| Missing | No valid quote available |\n| UnableToQuote | Unable to provide a quote |\n| Error | Error occured while processing a quote |\n| Indicative | Quote is indicative |",
        "enum": [
          "NotSet",
          "Valid",
          "ManualQuoteRequested",
          "Timeout",
          "Rejected",
          "Missing",
          "UnableToQuote",
          "Error",
          "Indicative"
        ],
        "example": "NotSet",
        "title": "QuoteStatus",
        "type": "string",
        "x-stoplight": {
          "id": "7q6ggy7kc6qka"
        },
        "x-tags": [
          "QuoteStatus"
        ]
      },
      "QuoteSummary": {
        "description": "Summary of quote",
        "properties": {
          "expires": {
            "description": "Expiration Date of quote\nReturned by Xe platform.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "fxDetails": {
            "description": "Fx Detail(s) of one or more currency pairs.",
            "items": {
              "$ref": "#/components/schemas/QuoteFxDetail"
            },
            "type": "array"
          },
          "quoteTime": {
            "description": "Date of quote\nReturned by Xe platform.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "fxDetails"
        ],
        "title": "Quote Summary",
        "type": "object",
        "x-examples": {
          "Example": {
            "amount": {
              "amount": 112.67,
              "currency": "USD"
            },
            "expires": "2019-08-24T14:15:22Z",
            "fees": {
              "amount": 0,
              "currency": "USD"
            },
            "fxDetails": [
              {
                "buy": {
                  "amount": 112.67,
                  "currency": "USD"
                },
                "rate": {
                  "baseCurrency": "GBP",
                  "buyCurrency": "USD",
                  "rate": 1.4,
                  "sellCurrency": "GBP"
                },
                "sell": {
                  "amount": 80,
                  "currency": "GBP"
                },
                "valueDate": "2019-08-24"
              }
            ],
            "quoteTime": "2019-08-24T14:13:52Z"
          }
        },
        "x-stoplight": {
          "id": "q3pxccgs5rubw"
        }
      },
      "QuoteType": {
        "default": "NotSet",
        "description": "Type of quote provided\n| NotSet | Quote type is not set |\n| Spot | Quote to execute immediately |\n| Forward | Quote to execute in future date |\n| ScheduledPayment | Scheduled payment(s) quote |",
        "enum": [
          "NotSet",
          "Spot",
          "Forward",
          "ScheduledPayment"
        ],
        "example": "Spot",
        "title": "QuoteType",
        "type": "string",
        "x-examples": {
          "Example 1": "Spot"
        },
        "x-stoplight": {
          "id": "ka7s5i83p9ago"
        }
      },
      "QuotesRequest": {
        "description": "An object used for creating a bulk quote request.",
        "properties": {
          "clientTransferNumber": {
            "description": "Reference set by the client for the quote.",
            "example": "ACME984621",
            "maxLength": 35,
            "minLength": 1,
            "type": "string"
          },
          "quoteReference": {
            "deprecated": true,
            "description": "DEPRECATED - Use `clientTransferNumber` instead.",
            "example": "ACME984621",
            "maxLength": 35,
            "minLength": 1,
            "type": "string"
          },
          "quotes": {
            "description": "List of currency pairs to quote upon.",
            "items": {
              "$ref": "#/components/schemas/Quote"
            },
            "maxItems": 1,
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "quotes"
        ],
        "title": "Quotes Request",
        "type": "object",
        "x-examples": {
          "Example - GBP to USD": {
            "clientTransferNumber": "ACME984621",
            "quotes": [
              {
                "buy": {
                  "currency": "USD"
                },
                "countryTo": "US",
                "effectiveDate": "2019-08-24",
                "sell": {
                  "amount": 80,
                  "currency": "GBP"
                }
              }
            ]
          }
        },
        "x-stoplight": {
          "id": "tot58nfruhrbd"
        }
      },
      "QuotesResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/QuoteSummary"
          },
          {
            "properties": {
              "clientTransferNumber": {
                "type": "string"
              },
              "quoteId": {
                "type": "string"
              },
              "status": {
                "$ref": "#/components/schemas/QuoteStatus"
              },
              "summary": {
                "description": "Summary of settlement per currency pairs.",
                "items": {
                  "$ref": "#/components/schemas/CurrencySettlementSummary"
                },
                "type": "array"
              }
            },
            "required": [
              "summary",
              "quoteId"
            ],
            "type": "object"
          }
        ],
        "x-examples": {
          "Example": {
            "expires": "2019-08-24T14:15:22Z",
            "fxDetails": [
              {
                "buy": {
                  "amount": 112.67,
                  "currency": "USD"
                },
                "effectiveDate": "2019-08-24",
                "rate": {
                  "baseCurrency": "GBP",
                  "buyCurrency": "USD",
                  "rate": 1.4,
                  "sellCurrency": "GBP"
                },
                "sell": {
                  "amount": 80,
                  "currency": "GBP"
                }
              }
            ],
            "quoteId": "string",
            "quoteTime": "2019-08-24T14:13:52Z",
            "summary": [
              {
                "settlementAmount": {
                  "amount": 80,
                  "currency": "GBP"
                },
                "settlementFees": {
                  "amount": 0,
                  "currency": "GBP"
                }
              }
            ]
          }
        },
        "x-stoplight": {
          "id": "wq2458f03lkrv"
        }
      },
      "Recipient": {
        "description": "A Recipient object is used to represent an entity of either a consumer or company with an attached **PayoutMethod**.\n\nThis object can be used as a non-registered recipient in a collection of payments.",
        "properties": {
          "entity": {
            "$ref": "#/components/schemas/RecipientEntity"
          },
          "payoutMethod": {
            "$ref": "#/components/schemas/PayoutMethod"
          }
        },
        "required": [
          "payoutMethod",
          "entity"
        ],
        "title": "Recipient",
        "type": "object",
        "x-examples": {},
        "x-stoplight": {
          "id": "uuil2ibpfxerw"
        }
      },
      "RecipientCreateRequest": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Recipient"
          },
          {
            "properties": {
              "clientReference": {
                "description": "Reference for adding recipient set by client.\nThis reference must be unique, if provided previously validation will returned an issue.",
                "maxLength": 35,
                "minLength": 1,
                "pattern": "^[\\sa-zA-Z0-9,\\.:'\\+\\(\\)\\?\\-/\\x26@]{1,35}$",
                "type": "string"
              },
              "currency": {
                "type": "string"
              }
            },
            "required": [
              "clientReference"
            ],
            "type": "object"
          }
        ],
        "description": "This is a composite request. It is used when you need to create a recipient.",
        "title": "Recipient Create Request",
        "x-stoplight": {
          "id": "e4elq78xfbvj1"
        }
      },
      "RecipientCreateResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/RegisteredRecipient"
          }
        ],
        "description": "Inherits **RegisteredRecipient**\n\nResponse object for Recipient Create Request.\n",
        "title": "Recipient Create Response",
        "x-stoplight": {
          "id": "4s6ic2fo5ifhq"
        }
      },
      "RecipientEntity": {
        "description": "A recipient entity used to represent either a consumer or company",
        "properties": {
          "company": {
            "$ref": "#/components/schemas/Company"
          },
          "consumer": {
            "$ref": "#/components/schemas/Consumer"
          },
          "isDeactivated": {
            "default": false,
            "type": "boolean",
            "x-stoplight": null
          },
          "type": {
            "$ref": "#/components/schemas/RecipientType"
          }
        },
        "required": [
          "type"
        ],
        "title": "Recipient Entity",
        "type": "object",
        "x-stoplight": {
          "id": "2w8qq65z17hqw"
        }
      },
      "RecipientFieldMap": {
        "description": "Recipient field details",
        "properties": {
          "expectedValues": {
            "description": "List of expected values for the field, if applicable.",
            "items": {
              "$ref": "#/components/schemas/ExpectedValue"
            },
            "type": "array"
          },
          "fieldGroupName": {
            "description": "Name of the group the field belongs to on the Recipient request/response contracts",
            "example": "bank.account",
            "type": "string"
          },
          "fieldName": {
            "description": "Name of the field to be included in the request",
            "example": "bic",
            "type": "string"
          },
          "label": {
            "description": "Label to be shown in UI for the field",
            "example": "BIC/SWIFT Code",
            "type": "string"
          },
          "maximumLength": {
            "description": "Maximum length of the field value allowed.",
            "nullable": true,
            "type": "integer"
          },
          "minimumLength": {
            "description": "Minimum length of the field value.",
            "nullable": true,
            "type": "integer"
          },
          "pattern": {
            "description": "Return RegEx used to validate field value if not then return null.",
            "example": "[0-9]6",
            "type": "string"
          },
          "required": {
            "description": "Whether field is required or not for the recipient",
            "example": true,
            "type": "boolean"
          }
        },
        "required": [
          "fieldName",
          "fieldGroupName",
          "label",
          "required"
        ],
        "title": "RecipientFieldMap",
        "type": "object",
        "x-examples": {
          "BIC field": {
            "fieldGroupName": "bank.account",
            "fieldName": "bic",
            "label": "BIC/SWIFT Code",
            "maximumLength": 11,
            "minimumLength": 8,
            "pattern": null,
            "required": true
          }
        }
      },
      "RecipientIdentifier": {
        "description": "A group consisting of all possible recipient identifiers used to identify a registered recipient.\n\n\n**xeRecipientId** is generated by Xe for the recipient, **clientReference** is a client specified identifier for the recipient",
        "properties": {
          "clientReference": {
            "description": "Client's unique reference to identify recipient.\n\nIf not provided it will be defaulted to **XeRecipientId**",
            "example": "ACMER1284",
            "maxLength": 35,
            "nullable": true,
            "type": "string"
          },
          "xeRecipientId": {
            "description": "Unique Id generated by Xe.",
            "example": "124863",
            "maxLength": 36,
            "nullable": true,
            "type": "string"
          }
        },
        "title": "Recipient Reference",
        "type": "object",
        "x-stoplight": {
          "id": "r39p574uuuzjv"
        }
      },
      "RecipientPayment": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Payment"
          },
          {
            "properties": {
              "recipient": {
                "$ref": "#/components/schemas/AttachedRecipient"
              }
            },
            "type": "object"
          }
        ],
        "description": "Inherits from **Payment**\n\nThis object is used to request a payment with an attached recipient.\n\nIn current version if recipient is not provided an error will be returned.",
        "title": "Recipient Payment",
        "x-examples": {},
        "x-stoplight": {
          "id": "izhmgn2e7xdcz"
        }
      },
      "RecipientRegistrationType": {
        "default": "NonRegistered",
        "description": "Type of registration for recipient",
        "enum": [
          "Registered",
          "NonRegistered"
        ],
        "example": "NonRegistered",
        "title": "Recipient Registration Type",
        "type": "string",
        "x-stoplight": {
          "id": "tn1wn5oimsi8w"
        }
      },
      "RecipientType": {
        "default": "Company",
        "description": "Type of recipient",
        "enum": [
          "Consumer",
          "Company"
        ],
        "example": "Company",
        "title": "Recipient Type",
        "type": "string",
        "x-stoplight": {
          "id": "4okfe7qrqw8ri"
        }
      },
      "RecipientUpdateRequest": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Recipient"
          },
          {
            "properties": {
              "currency": {
                "type": "string"
              }
            },
            "required": [
              "currency"
            ],
            "type": "object"
          }
        ],
        "description": "Inherits **Recipient**\n\nThis is a composite request. It is used when you need to update a recipient.",
        "title": "Recipient Update Request",
        "x-stoplight": {
          "id": "g6imew5s8oixn"
        }
      },
      "RecipientUpdateResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/RegisteredRecipient"
          }
        ],
        "description": "Inherits **RegisteredRecipient**\n\nResponse object for Recipient Update Request.\n",
        "title": "Recipient Update Response",
        "x-stoplight": {
          "id": "wexieher6nsvb"
        }
      },
      "RecipientValidationResponse": {
        "description": "Recipient validation response for a single recipient validation request.\n",
        "properties": {
          "clientReference": {
            "type": "string"
          },
          "isValid": {
            "type": "boolean"
          },
          "validationErrors": {
            "items": {
              "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array"
          }
        },
        "title": "Recipient Validation Response",
        "type": "object",
        "x-stoplight": {
          "id": "ciz7e160oq0ax"
        }
      },
      "RegisteredRecipient": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Recipient"
          },
          {
            "properties": {
              "currency": {
                "type": "string"
              },
              "recipientId": {
                "$ref": "#/components/schemas/RecipientIdentifier"
              }
            },
            "required": [
              "recipientId"
            ],
            "type": "object"
          }
        ],
        "description": "Inherits from **Recipient**\n\nThe **RegisteredRecipient** object represents a recipient that has been registered. ",
        "title": "Registered Recipient",
        "x-stoplight": {
          "id": "pmny2rngfo60p"
        }
      },
      "ServiceException": {
        "allOf": [
          {
            "properties": {
              "code": {
                "description": "A Xe specific error code.",
                "type": "integer"
              }
            },
            "required": [
              "code"
            ],
            "type": "object"
          },
          {
            "$ref": "#/components/schemas/XeException"
          }
        ],
        "description": "The service exception object is used to provide custom service exception to handle system errors, data validation and connectivity issues.\n",
        "title": "Service Exception",
        "x-examples": {
          "Currency Service Exception": {
            "code": 1001,
            "failureDateTime": "2019-08-24T14:15:22Z",
            "longErrorMsg": "AEX was used as a currency within payment with reference ACME334871",
            "shortErrorMsg": "AEX IS NOT A VALID CURRENCY",
            "traceErrorId": "eca2290c-4519-4c0c-88c8-20450cd15f17",
            "typeOfFailure": "SERVICE_EXCEPTION"
          }
        },
        "x-stoplight": {
          "id": "l9tlx4sjmymeg"
        }
      },
      "SettlementAmount": {
        "description": "An object representing a settlement amount.",
        "properties": {
          "amount": {
            "description": "Settlement Amount",
            "format": "decimal",
            "type": "number"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          }
        },
        "required": [
          "currency",
          "amount"
        ],
        "title": "Settlement Amount",
        "type": "object",
        "x-examples": {
          "Example": {
            "amount": 80,
            "currency": "GBP"
          }
        },
        "x-stoplight": {
          "id": "7g9nfdsxjktu9"
        }
      },
      "SettlementAmountDetail": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SettlementAmount"
          },
          {
            "properties": {
              "valueDate": {
                "format": "date",
                "type": "string",
                "x-stoplight": {
                  "id": "kb42bg3y45xdn"
                }
              }
            },
            "type": "object"
          }
        ],
        "title": "SettlementAmountDetail",
        "x-examples": {
          "Example 1": {
            "amount": 10,
            "currency": "GBP",
            "settlementDate": "2019-08-24"
          }
        },
        "x-stoplight": {
          "id": "bxpl2fiq81u00"
        }
      },
      "SettlementDetails": {
        "description": "Settlement Details describes how funds will be settled",
        "properties": {
          "bankAccountId": {
            "description": "bankAccountId is mandatory if settlementMethod is Direct Debit ",
            "nullable": true,
            "type": "integer"
          },
          "settlementMethod": {
            "$ref": "#/components/schemas/SettlementMethod"
          }
        },
        "required": [
          "settlementMethod"
        ],
        "title": "SettlementDetails",
        "type": "object",
        "x-examples": {
          "example-1": {
            "bankAccountId": "integer",
            "settlementMethod": "BankTransfer"
          }
        },
        "x-stoplight": {
          "id": "ajnd3mf4m8n2t"
        }
      },
      "SettlementMethod": {
        "default": "BankTransfer",
        "description": "| BankTransfer |(Default Settlement Method) Selected settlement method is Bank Transfer |\n| CreditCard |Selected settlement method is Credit Card |\n| DebitCard |Selected settlement method is Debit Card |\n| DirectDebit | Selected settlement method is Direct Debit |\n| Cheque |Selected settlement method is Cheque |\n| Interac |Selected settlement method is Interac |\n| OpenBanking |Selected settlement method is Open Banking |\n| FundsOnBalance |Selected settlement method is Funds On Balance |\n",
        "enum": [
          "BankTransfer",
          "CreditCard",
          "DebitCard",
          "DirectDebit",
          "Cheque",
          "Interac",
          "OpenBanking",
          "FundsOnBalance"
        ],
        "example": "BankTransfer",
        "nullable": true,
        "title": "Settlement Method",
        "type": "string",
        "x-examples": {
          "Example": "BankTransfer"
        },
        "x-stoplight": {
          "id": "cbzsoz2nii0g3"
        }
      },
      "SettlementOption": {
        "properties": {
          "displayName": {
            "type": "string",
            "x-stoplight": {
              "id": "382xw34q3fzf3"
            }
          },
          "initialMarginSettlementMethods": {
            "items": {
              "$ref": "#/components/schemas/SettlementMethod"
            },
            "type": "array",
            "x-stoplight": {
              "id": "avjbhrx21kubc"
            }
          },
          "isAvailable": {
            "type": "boolean",
            "x-stoplight": {
              "id": "8ozn1b554m8q9"
            }
          },
          "method": {
            "$ref": "#/components/schemas/SettlementMethod"
          },
          "unAvailableReason": {
            "type": "string",
            "x-stoplight": {
              "id": "6a65ha94aiyhp"
            }
          },
          "unAvailableReasonCode": {
            "type": "string",
            "x-stoplight": {
              "id": "46ptq62l6gyie"
            }
          }
        },
        "title": "SettlementOption",
        "type": "object",
        "x-examples": {
          "Example 2": {
            "InitialMarginSettlementMethods": [
              "BankTransfer"
            ],
            "displayName": "string",
            "isAvailable": true,
            "method": "BankTransfer",
            "unAvailableReason": "string",
            "unAvailableReasonCode": "string"
          }
        },
        "x-stoplight": {
          "id": "nokjhpfwz68w0"
        }
      },
      "SettlementStatus": {
        "default": "NotSettled",
        "description": "| NotSettled | Contract has been confirmed but is still awaiting settlement |\n| PartiallySettled | Client has paritally settled the contract |\n| Settled | Contract has been settled |",
        "enum": [
          "Settled",
          "PartiallySettled",
          "NotSettled"
        ],
        "title": "Settlement Status",
        "type": "string",
        "x-examples": {
          "Example": "NotSettled"
        },
        "x-stoplight": {
          "id": "qfen8qfau9i82"
        }
      },
      "SettlementSummary": {
        "allOf": [
          {
            "properties": {
              "directDebitBankAccount": {
                "$ref": "#/components/schemas/DirectDebitBankAccount"
              },
              "settlementDate": {
                "description": "Expected Settlement Date",
                "format": "date-time",
                "type": "string"
              },
              "settlementMethod": {
                "$ref": "#/components/schemas/SettlementMethod"
              },
              "xeBankAccount": {
                "$ref": "#/components/schemas/BankAccount"
              }
            },
            "required": [
              "settlementDate"
            ],
            "type": "object"
          },
          {
            "$ref": "#/components/schemas/CurrencySettlementSummary"
          }
        ],
        "description": "Inherits from **Currency Settlement Summary**\n",
        "title": "Settlement Summary",
        "x-examples": {
          "Example": {
            "directDebitBankAccount": {
              "accountName": "ACME",
              "accountNumber": "12345674"
            },
            "settlementAmount": {
              "amount": 80,
              "currency": "GBP"
            },
            "settlementDate": "2019-08-24T14:15:22Z",
            "settlementFees": {
              "amount": 0,
              "currency": "GBP"
            },
            "settlementMethod": "DirectDebit",
            "xeBankAccount": {
              "accountName": "ACME",
              "accountNumber": "12345674",
              "bic": "MIDLGB22XXX",
              "country": "GB",
              "iban": "GB26MIDL40051512345674",
              "ncc": "string"
            }
          }
        },
        "x-stoplight": {
          "id": "t1xeichmi2kx2"
        }
      },
      "StatementFeedEntry": {
        "properties": {
          "balance": {
            "description": "Balance after this entry",
            "format": "decimal",
            "type": "number"
          },
          "creditAmount": {
            "description": "Credit amount",
            "format": "decimal",
            "type": "number"
          },
          "currency": {
            "description": "Currency code",
            "type": "string"
          },
          "dealReference": {
            "description": "Deal reference",
            "type": "string"
          },
          "debitAmount": {
            "description": "Debit amount",
            "format": "decimal",
            "type": "number"
          },
          "details": {
            "description": "Additional details",
            "type": "string"
          },
          "linkedItems": {
            "description": "References of items linked to this entry",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "type": {
            "description": "Entry type",
            "type": "string"
          },
          "valueDate": {
            "description": "Value date of the entry",
            "format": "date",
            "type": "string"
          }
        },
        "title": "StatementFeedEntry",
        "type": "object"
      },
      "StatementFeedFilter": {
        "description": "Shared date-range and search filter fields for statement feed requests.",
        "properties": {
          "fromDate": {
            "description": "Start of the date range. Defaults to toDate minus 30 days when omitted.",
            "format": "date",
            "nullable": true,
            "type": "string"
          },
          "searches": {
            "description": "Optional field/term filters.",
            "items": {
              "$ref": "#/components/schemas/StatementFeedSearch"
            },
            "nullable": true,
            "type": "array"
          },
          "toDate": {
            "description": "End of the date range. Defaults to today (UTC) when omitted.",
            "format": "date",
            "nullable": true,
            "type": "string"
          }
        },
        "title": "StatementFeedFilter",
        "type": "object"
      },
      "StatementFeedRequest": {
        "allOf": [
          {
            "$ref": "#/components/schemas/StatementFeedFilter"
          },
          {
            "properties": {
              "batchSize": {
                "default": 50,
                "description": "Size of the batch to be fetched. Default 50, max 100.",
                "format": "int32",
                "maximum": 100,
                "minimum": 1,
                "nullable": true,
                "type": "integer"
              },
              "skip": {
                "default": 0,
                "description": "Mentions how many entries to skip. Default 0.",
                "format": "int32",
                "minimum": 0,
                "nullable": true,
                "type": "integer"
              }
            },
            "type": "object"
          }
        ],
        "description": "Request body for retrieving the statement feed for a currency account.",
        "title": "StatementFeedRequest",
        "type": "object"
      },
      "StatementFeedResponse": {
        "properties": {
          "batchSize": {
            "format": "int32",
            "type": "integer"
          },
          "entries": {
            "items": {
              "$ref": "#/components/schemas/StatementFeedEntry"
            },
            "type": "array"
          },
          "skip": {
            "format": "int32",
            "type": "integer"
          },
          "total": {
            "format": "int32",
            "type": "integer"
          }
        },
        "title": "StatementFeedResponse",
        "type": "object",
        "x-stoplight": {
          "id": "vup8urre3g2uq"
        }
      },
      "StatementFeedSearch": {
        "description": "A single field/term filter applied to the statement feed.",
        "properties": {
          "fieldName": {
            "description": "Field to filter on. One of: reference, type, date.",
            "example": "reference",
            "type": "string"
          },
          "searchTerm": {
            "description": "Value to search for within fieldName.",
            "example": "C16354699",
            "type": "string"
          }
        },
        "required": [
          "fieldName",
          "searchTerm"
        ],
        "title": "StatementFeedSearch",
        "type": "object"
      },
      "TermsAndConditionsResponse": {
        "description": "",
        "properties": {
          "link": {
            "type": "string",
            "x-stoplight": {
              "id": "eahp2b43ouncu"
            }
          }
        },
        "title": "TermsAndConditionsResponse",
        "type": "object",
        "x-examples": {
          "Example ": {
            "link": "https://help.xe.com/hc/en-gb/sections/16573963247889-Terms-and-conditions"
          }
        },
        "x-stoplight": {
          "id": "3ek9x6v7pxohy"
        }
      },
      "TokenRequest": {
        "description": "Token request",
        "properties": {
          "accessKey": {
            "description": "Username associated to account.",
            "example": "xm276589",
            "type": "string",
            "x-stoplight": {
              "id": "420pk2kgt5rle"
            }
          },
          "accessSecret": {
            "description": "Password associated to account.",
            "example": "x14jhas9173$",
            "format": "password",
            "type": "string",
            "x-stoplight": {
              "id": "1qc2f3lh58tbj"
            }
          }
        },
        "required": [
          "accessKey",
          "accessSecret"
        ],
        "title": "Token Request",
        "type": "object",
        "x-examples": {
          "Acme User Authentication Request": {
            "password": "x14jhas9173$",
            "username": "xm276589"
          }
        },
        "x-stoplight": {
          "id": "ccex7696arpdv"
        }
      },
      "ValidateRecipientBatchRequest": {
        "description": "This is a composite request. It is used when you need to validate one or more recipients.\n",
        "properties": {
          "recipients": {
            "description": "Array of recipients. \nThis object is used to supply a list of recipient information.",
            "items": {
              "$ref": "#/components/schemas/RecipientCreateRequest"
            },
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "recipients"
        ],
        "title": "Validate Recipient Batch Request",
        "type": "object",
        "x-stoplight": {
          "id": "4jiqy5ia70q2k"
        }
      },
      "ValidateRecipientBatchResponse": {
        "description": "This is a composite request. It is used when you need to validate one or more recipients.\n",
        "properties": {
          "recipients": {
            "description": "Array of recipient validations. ",
            "items": {
              "$ref": "#/components/schemas/RecipientValidationResponse"
            },
            "type": "array"
          }
        },
        "required": [
          "recipients"
        ],
        "title": "Validate Recipient Batch Response",
        "type": "object",
        "x-stoplight": {
          "id": "389h1j5z69bz9"
        }
      },
      "ValidationError": {
        "description": "An object representing a field validation error.",
        "properties": {
          "errors": {
            "deprecated": true,
            "description": "List of errors(Deprecated, please use 'fieldErrors' property instead)",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "fieldErrors": {
            "items": {
              "$ref": "#/components/schemas/FieldError"
            },
            "type": "array"
          },
          "fieldName": {
            "description": "Field name within model.",
            "type": "string"
          }
        },
        "required": [
          "fieldName",
          "fieldErrors"
        ],
        "title": "Validation Error",
        "type": "object",
        "x-stoplight": {
          "id": "um61456y1v1ln"
        }
      },
      "ValidationException": {
        "allOf": [
          {
            "properties": {
              "errors": {
                "items": {
                  "$ref": "#/components/schemas/ValidationError"
                },
                "type": "array"
              }
            },
            "required": [
              "errors"
            ],
            "type": "object"
          },
          {
            "$ref": "#/components/schemas/XeException"
          }
        ],
        "description": "An object representing validation exceptions for models.",
        "title": "Validation Exception",
        "x-stoplight": {
          "id": "ia6wbychf59r8"
        }
      },
      "WebhookHeader": {
        "properties": {
          "key": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        },
        "title": "WebhookHeader",
        "type": "object",
        "x-is-disabled": true,
        "x-stoplight": {
          "id": "tv4nidrk1vk7c"
        }
      },
      "WebhookRegistration": {
        "description": "Registered webhook details",
        "properties": {
          "disabledReason": {
            "description": "Optional.\nWhy Xe disabled this registration. Only populated when `status` is `Disabled`,\nand null otherwise.",
            "maxLength": 500,
            "nullable": true,
            "type": "string"
          },
          "eventTypes": {
            "description": "List of event type names subscribed to; empty when subscribeToAll is true",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "headers": {
            "items": {
              "$ref": "#/components/schemas/WebhookHeader"
            },
            "type": "array"
          },
          "id": {
            "type": "string"
          },
          "secretKey": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/WebhookRegistrationStatus"
          },
          "subscribeToAll": {
            "description": "When true, subscribes to all event types",
            "type": "boolean"
          },
          "uri": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "uri",
          "secretKey",
          "status"
        ],
        "title": "WebhookRegistration",
        "type": "object",
        "x-is-disabled": true,
        "x-stoplight": {
          "id": "3aoyif6eyirvo"
        }
      },
      "WebhookRegistrationRequest": {
        "description": "Webhook registration request",
        "properties": {
          "eventTypes": {
            "description": "List of event type names to subscribe to; ignored when subscribeToAll is true",
            "items": {
              "enum": [
                "Payment.Created",
                "Payment.Completed",
                "Payment.Rejected",
                "Contract.Created",
                "Contract.Cancelled",
                "Contract.Completed",
                "Contract.Funded",
                "Contract.Updated",
                "Contract.StatusChanged",
                "Batch.Created",
                "Batch.Approved",
                "Batch.Completed",
                "Batch.Deleted",
                "Batch.StatusChanged"
              ],
              "type": "string"
            },
            "type": "array"
          },
          "headers": {
            "items": {
              "$ref": "#/components/schemas/WebhookHeader"
            },
            "type": "array"
          },
          "secretKey": {
            "type": "string"
          },
          "subscribeToAll": {
            "description": "When true, subscribes to all event types",
            "type": "boolean"
          },
          "uri": {
            "type": "string"
          }
        },
        "title": "WebhookRegistrationRequest",
        "type": "object",
        "x-is-disabled": true,
        "x-stoplight": {
          "id": "8ztysxbkeam36"
        }
      },
      "WebhookRegistrationStatus": {
        "default": "Pending",
        "description": "Lifecycle state of a webhook registration.\n\n| Pending  | Registration received but not yet recognised by Xe. No events are delivered. |\n| Active   | Registration is recognised by Xe and events are delivered. |\n| Disabled | Registration still exists but has been disabled by Xe. See `disabledReason`. |",
        "enum": [
          "Pending",
          "Active",
          "Disabled"
        ],
        "example": "Pending",
        "title": "WebhookRegistrationStatus",
        "type": "string",
        "x-is-disabled": true,
        "x-stoplight": {
          "id": "0vwz9bt2ao5ax"
        },
        "x-tags": [
          "WebhookRegistrationStatus"
        ]
      },
      "XeException": {
        "description": "An object representing a xe exception.",
        "properties": {
          "failureDateTime": {
            "description": "Datetime of failure.",
            "format": "date-time",
            "type": "string"
          },
          "longErrorMsg": {
            "description": "Long message describing the error.",
            "type": "string"
          },
          "shortErrorMsg": {
            "description": "Short message describing the error.",
            "type": "string"
          },
          "traceErrorId": {
            "description": "An Xe traceable error Id.",
            "type": "string"
          },
          "typeOfFailure": {
            "default": "SERVICE_EXCEPTION",
            "description": "Type of failure.\nVALIDATION\nACCOUNT_LOCKED\nMODEL_VALIDATION\n\nDefault: VALIDATION",
            "enum": [
              "MODEL_VALIDATION",
              "SERVICE_EXCEPTION"
            ],
            "type": "string"
          }
        },
        "required": [
          "failureDateTime",
          "typeOfFailure"
        ],
        "title": "Xe Exception",
        "type": "object",
        "x-stoplight": {
          "id": "tg6qt2zpt2p31"
        }
      }
    },
    "securitySchemes": {
      "bearerAuth": {
        "scheme": "bearer",
        "type": "http"
      }
    }
  },
  "info": {
    "contact": {
      "name": "Xe",
      "url": "https://www.xe.com"
    },
    "description": "Xe Payments API\n",
    "title": "Xe Pay API",
    "version": "2.0.0"
  },
  "openapi": "3.0.0",
  "paths": {
    "/v2/accounts": {
      "get": {
        "description": "Gets a list of accounts that the user has access to.",
        "operationId": "Get-Associated-Accounts",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "examples": {
                  "Example 1": {
                    "value": [
                      {
                        "accountName": "Account 1",
                        "accountNumber": "XEMT000011111",
                        "parentAccountNumber": "XEMT00009999"
                      },
                      {
                        "accountName": "Account 2",
                        "accountNumber": "XEMT000011112",
                        "parentAccountNumber": "XEMT00009999"
                      }
                    ]
                  }
                },
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/EnterpriseAccount"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ServiceException"
                    },
                    {
                      "$ref": "#/components/schemas/ValidationException"
                    }
                  ]
                }
              }
            },
            "description": "The requested operation could not be performed. Request is invalid or incorrect."
          },
          "401": {
            "description": "Unauthorized - Invalid Token or Client "
          },
          "500": {
            "description": "An internal error has occurred in Xe platform."
          }
        },
        "summary": "Get a list of accounts that the user has access to.",
        "tags": [
          "Accounts"
        ]
      },
      "parameters": []
    },
    "/v2/auth/refresh": {
      "post": {
        "description": "Obtains a new token set from a given Refresh Token",
        "operationId": "Refresh-Auth",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "description": "Refresh token request",
                "properties": {
                  "refreshToken": {
                    "type": "string"
                  }
                },
                "type": "object"
              }
            }
          },
          "description": "The Refresh Token obtained at a previous login"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthResult"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "discriminator": {
                    "propertyName": "typeOfFailure"
                  },
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ServiceException"
                    },
                    {
                      "$ref": "#/components/schemas/ValidationException"
                    }
                  ]
                }
              }
            },
            "description": "The requested operation could not be performed. Request is invalid or incorrect."
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [],
        "summary": "Refresh Authentication Token",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/v2/auth/verify": {
      "get": {
        "description": "Verifys the presented token",
        "operationId": "Verify-Auth",
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "discriminator": {
                    "propertyName": "typeOfFailure"
                  },
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ServiceException"
                    },
                    {
                      "$ref": "#/components/schemas/ValidationException"
                    }
                  ]
                }
              }
            },
            "description": "The requested operation could not be performed. Request is invalid or incorrect."
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "summary": "Verify Authentication",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/v2/bankAccounts": {
      "get": {
        "description": "This API call allows you to get verified client bank accounts",
        "operationId": "Get-Client-BankAccounts",
        "parameters": [
          {
            "$ref": "#/components/parameters/accountNumber"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ClientBankAccount"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ServiceException"
                    },
                    {
                      "$ref": "#/components/schemas/ValidationException"
                    }
                  ]
                }
              }
            },
            "description": "The requested operation could not be performed. Request is invalid or incorrect."
          },
          "401": {
            "description": "Unauthorized - Invalid Token or Client "
          },
          "500": {
            "description": "An internal error has occurred in Xe platform."
          }
        },
        "summary": "Get client bank accounts.",
        "tags": [
          "ClientBankAccounts"
        ]
      }
    },
    "/v2/contracts": {
      "get": {
        "description": "This API call allows you to get all the contracts based on the passed parameters.",
        "operationId": "Get-Contracts",
        "parameters": [
          {
            "allowEmptyValue": true,
            "description": "Created after",
            "in": "query",
            "name": "createdAfter",
            "schema": {
              "format": "date-time",
              "nullable": true,
              "type": "string"
            }
          },
          {
            "description": "Created before",
            "in": "query",
            "name": "createdBefore",
            "schema": {
              "format": "date-time",
              "nullable": true,
              "type": "string"
            }
          },
          {
            "description": "Modified after",
            "in": "query",
            "name": "modifiedAfter",
            "schema": {
              "format": "date-time",
              "nullable": true,
              "type": "string"
            }
          },
          {
            "description": "Modified before ",
            "in": "query",
            "name": "modifiedBefore",
            "schema": {
              "format": "date-time",
              "nullable": true,
              "type": "string"
            }
          },
          {
            "description": "Size of the batch to be fetched",
            "in": "query",
            "name": "batchSize",
            "schema": {
              "default": 500,
              "format": "int32",
              "maximum": 500,
              "minimum": 1,
              "nullable": true,
              "type": "integer"
            }
          },
          {
            "description": "Mentions how many contracts to skip",
            "in": "query",
            "name": "skip",
            "schema": {
              "default": 0,
              "format": "int32",
              "minimum": 0,
              "nullable": true,
              "type": "integer"
            }
          },
          {
            "$ref": "#/components/parameters/accountNumber"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "examples": {
                  "Example 1": {
                    "value": {
                      "Records": [
                        {
                          "accountNumber": "XE1234",
                          "contractSource": "string",
                          "contractStatus": "QuoteRequired",
                          "contractType": "NotSpecified",
                          "dateCreated": "2019-08-24T14:15:22Z",
                          "identifier": {
                            "clientTransferNumber": "beeee5c6-4167-46fd-b021-d894c353541",
                            "contractNumber": "C11470263"
                          },
                          "lastModifiedAt": "2019-08-24T14:15:22Z",
                          "settlementStatus": "NotSettled",
                          "totalPayments": 3
                        }
                      ],
                      "TotalRecords": 1
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/GetContractsResponse"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/javascript": {
                "schema": {
                  "properties": {},
                  "type": "object"
                }
              },
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ServiceException"
                    },
                    {
                      "$ref": "#/components/schemas/ValidationException"
                    }
                  ]
                }
              }
            },
            "description": "The requested operation could not be performed. Request is invalid or incorrect."
          },
          "401": {
            "description": "Unauthorized - Invalid Token or Client "
          },
          "500": {
            "description": "An internal error has occurred in Xe platform."
          }
        },
        "summary": "Get Contracts",
        "tags": [
          "Contracts"
        ],
        "x-internal": false
      },
      "parameters": []
    },
    "/v2/contracts/quote/{quoteId}": {
      "parameters": [
        {
          "in": "path",
          "name": "quoteId",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "post": {
        "description": "The API endpoint to create new contract using existing quote",
        "operationId": "Create-Contract-From-Quote",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContractCreateResponse"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ValidationException"
                    },
                    {
                      "$ref": "#/components/schemas/ServiceException"
                    }
                  ]
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized - Invalid Token or Client Id"
          },
          "404": {
            "description": "Quote not found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "summary": "Create new contract from quote",
        "tags": [
          "Contracts"
        ]
      }
    },
    "/v2/contracts/{contractNumber}": {
      "delete": {
        "description": "This API call allows you to cancel a contract, if successful the contract will be marked as cancelled and all payments are removed.",
        "operationId": "Cancel-Contract",
        "parameters": [
          {
            "$ref": "#/components/parameters/accountNumber"
          }
        ],
        "responses": {
          "204": {
            "description": "OK - Canceled"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "discriminator": {
                    "propertyName": "typeOfFailure"
                  },
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ServiceException"
                    },
                    {
                      "$ref": "#/components/schemas/ValidationException"
                    }
                  ]
                }
              }
            },
            "description": "The requested operation could not be performed. Request is invalid or incorrect."
          },
          "401": {
            "description": "Unauthorized - Invalid Token or Client Id"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "An internal error has occurred in Xe platform."
          }
        },
        "summary": "Cancel Contract",
        "tags": [
          "Contracts"
        ]
      },
      "get": {
        "description": "This API call retrieves a single contract.",
        "operationId": "Get-Contract",
        "parameters": [
          {
            "$ref": "#/components/parameters/accountNumber"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Contract"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "discriminator": {
                    "propertyName": "typeOfFailure"
                  },
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ServiceException"
                    },
                    {
                      "$ref": "#/components/schemas/ValidationException"
                    }
                  ]
                }
              }
            },
            "description": "The requested operation could not be performed. Request is invalid or incorrect."
          },
          "401": {
            "description": "Unauthorized - Invalid Token or Client Id"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "An internal error has occurred in Xe platform."
          }
        },
        "summary": "Get Contract",
        "tags": [
          "Contracts"
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "contractNumber",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ]
    },
    "/v2/contracts/{contractNumber}/approve": {
      "parameters": [
        {
          "in": "path",
          "name": "contractNumber",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "post": {
        "description": "This API call is the final step for Xe executing payouts, using this call will approve the contract.",
        "operationId": "Approve-Contract",
        "parameters": [
          {
            "$ref": "#/components/parameters/accountNumber"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Contract"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "discriminator": {
                    "propertyName": "typeOfFailure"
                  },
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ServiceException"
                    },
                    {
                      "$ref": "#/components/schemas/ValidationException"
                    }
                  ]
                }
              }
            },
            "description": "The requested operation could not be performed. Request is invalid or incorrect."
          },
          "401": {
            "description": "Unauthorized - Invalid Token or Client Id"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "An internal error has occurred in Xe platform."
          }
        },
        "summary": "Approve Contract",
        "tags": [
          "Contracts"
        ]
      }
    },
    "/v2/contracts/{contractNumber}/invoice": {
      "get": {
        "description": "This API call retrieves a invoice as PDF which can be downloaded. Read the response as binary stream or byte[].",
        "operationId": "Get-Contract-Invoice",
        "parameters": [
          {
            "$ref": "#/components/parameters/accountNumber"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/pdf": {
                "schema": {
                  "format": "binary",
                  "type": "string"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "discriminator": {
                    "propertyName": "typeOfFailure"
                  },
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ServiceException"
                    },
                    {
                      "$ref": "#/components/schemas/ValidationException"
                    }
                  ]
                }
              }
            },
            "description": "The requested operation could not be performed. Request is invalid or incorrect."
          },
          "401": {
            "description": "Unauthorized - Invalid Token or Client Id"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "An internal error has occurred in Xe platform."
          }
        },
        "summary": "Get Contract Invoice",
        "tags": [
          "Contracts"
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "contractNumber",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ]
    },
    "/v2/contracts/{contractNumber}/payments": {
      "get": {
        "description": "This API call retrieves all payments for a particular contract.",
        "operationId": "Get-Contract-Payments",
        "parameters": [
          {
            "description": "Filter to payments with issues only",
            "in": "query",
            "name": "issuesOnly",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "$ref": "#/components/parameters/accountNumber"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/PaymentSummary"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "discriminator": {
                    "propertyName": "typeOfFailure"
                  },
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ServiceException"
                    },
                    {
                      "$ref": "#/components/schemas/ValidationException"
                    }
                  ]
                }
              }
            },
            "description": "The requested operation could not be performed. Request is invalid or incorrect."
          },
          "401": {
            "description": "Unauthorized - Invalid Token or Client Id"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "An internal error has occurred in Xe platform."
          }
        },
        "summary": "Get Payments",
        "tags": [
          "Contracts"
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "contractNumber",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "post": {
        "description": "This API call adds new payments to an existing contract",
        "operationId": "Attach-Payments",
        "parameters": [
          {
            "$ref": "#/components/parameters/accountNumber"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "examples": {
                "WithAutoAdjustAmountToRemainingBalance": {
                  "value": [
                    {
                      "autoAdjustAmountToRemainingBalance": true,
                      "paymentReference": "INV1234",
                      "purposeOfPaymentCode": "CORP_SUPLIER_PAYMENT",
                      "purposeOfPaymentText": "Supplier Payment",
                      "recipientId": "85ad53e2-4077-418c-b17c-b597ed90c01d"
                    }
                  ]
                }
              },
              "schema": {
                "items": {
                  "$ref": "#/components/schemas/AttachPayment"
                },
                "type": "array"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/PaymentSummary"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "discriminator": {
                    "propertyName": "typeOfFailure"
                  },
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ServiceException"
                    },
                    {
                      "$ref": "#/components/schemas/ValidationException"
                    }
                  ]
                }
              }
            },
            "description": "The requested operation could not be performed. Request is invalid or incorrect."
          },
          "401": {
            "description": "Unauthorized - Invalid Token or Client Id"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "An internal error has occurred in Xe platform."
          }
        },
        "summary": "Add payments to existing contract",
        "tags": [
          "Contracts"
        ]
      }
    },
    "/v2/contracts/{contractNumber}/payments/{clientReference}": {
      "delete": {
        "description": "This API call allows for the deletion of a payment from a contract.\n\nA refresh on the contract will be required.",
        "operationId": "Delete-Payment",
        "parameters": [
          {
            "$ref": "#/components/parameters/accountNumber"
          }
        ],
        "responses": {
          "204": {
            "description": "OK - Deleted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "discriminator": {
                    "propertyName": "typeOfFailure"
                  },
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ServiceException"
                    },
                    {
                      "$ref": "#/components/schemas/ValidationException"
                    }
                  ]
                }
              }
            },
            "description": "The requested operation could not be performed. Request is invalid or incorrect."
          },
          "401": {
            "description": "Unauthorized - Invalid Token or Client Id"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "An internal error has occurred in Xe platform."
          }
        },
        "summary": "Delete Payment",
        "tags": [
          "Contracts"
        ]
      },
      "get": {
        "description": "This API call allows a client to get an original payment and review its validation status or issues.\n\nYou can pass in clientReference or XePaymentId via the clientReference path parameter.",
        "operationId": "Get-Payment",
        "parameters": [
          {
            "$ref": "#/components/parameters/accountNumber"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentSummary"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "discriminator": {
                    "propertyName": "typeOfFailure"
                  },
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ServiceException"
                    },
                    {
                      "$ref": "#/components/schemas/ValidationException"
                    }
                  ]
                }
              }
            },
            "description": "The requested operation could not be performed. Request is invalid or incorrect."
          },
          "401": {
            "description": "Unauthorized - Invalid Token or Client Id"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "An internal error has occurred in Xe platform."
          }
        },
        "summary": "Get Payment",
        "tags": [
          "Contracts"
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "contractNumber",
          "required": true,
          "schema": {
            "type": "string"
          }
        },
        {
          "in": "path",
          "name": "clientReference",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "put": {
        "description": "Update a particular payment using its payment Reference.",
        "operationId": "Update-Payment",
        "parameters": [
          {
            "$ref": "#/components/parameters/accountNumber"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Payment"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentSummary"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "discriminator": {
                    "propertyName": "typeOfFailure"
                  },
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ServiceException"
                    },
                    {
                      "$ref": "#/components/schemas/ValidationException"
                    }
                  ]
                }
              }
            },
            "description": "The requested operation could not be performed. Request is invalid or incorrect."
          },
          "401": {
            "description": "Unauthorized - Invalid Token or Client Id"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "An internal error has occurred in Xe platform."
          }
        },
        "summary": "Update Payment",
        "tags": [
          "Contracts"
        ]
      }
    },
    "/v2/contracts/{contractNumber}/payments/{clientReference}/recipient": {
      "get": {
        "description": "This API call allows a client to get a payment's recipient.\n\nYou can pass in clientReference or XePaymentId via the clientReference path parameter.",
        "operationId": "Get-Payment-Recipient",
        "parameters": [
          {
            "$ref": "#/components/parameters/accountNumber"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AttachedRecipient"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "discriminator": {
                    "propertyName": "typeOfFailure"
                  },
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ServiceException"
                    },
                    {
                      "$ref": "#/components/schemas/ValidationException"
                    }
                  ]
                }
              }
            },
            "description": "The requested operation could not be performed. Request is invalid or incorrect."
          },
          "401": {
            "description": "Unauthorized - Invalid Token or Client Id"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "An internal error has occurred in Xe platform."
          }
        },
        "summary": "Get Payment Recipient",
        "tags": [
          "Contracts"
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "contractNumber",
          "required": true,
          "schema": {
            "type": "string"
          }
        },
        {
          "in": "path",
          "name": "clientReference",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "put": {
        "description": "This API call allows a client to update a payment's recipient of an unapproved contract.",
        "operationId": "Update-Payment-Recipient",
        "parameters": [
          {
            "$ref": "#/components/parameters/accountNumber"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentRecipientUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AttachedRecipient"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "discriminator": {
                    "propertyName": "typeOfFailure"
                  },
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ServiceException"
                    },
                    {
                      "$ref": "#/components/schemas/ValidationException"
                    }
                  ]
                }
              }
            },
            "description": "The requested operation could not be performed. Request is invalid or incorrect."
          },
          "401": {
            "description": "Unauthorized - Invalid Token or Client Id"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "An internal error has occurred in Xe platform."
          }
        },
        "summary": "Update Payment Recipient",
        "tags": [
          "Contracts"
        ]
      }
    },
    "/v2/contracts/{contractNumber}/quote": {
      "parameters": [
        {
          "in": "path",
          "name": "contractNumber",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "post": {
        "description": "This API call can be used by a client to re-quote an existing contract after a change to a payment, deletion of a payment or the expiry of a previous quotation.\n",
        "operationId": "Quote-Contract",
        "parameters": [
          {
            "$ref": "#/components/parameters/accountNumber"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Contract"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceException"
                }
              }
            },
            "description": "The requested operation could not be performed. Request is invalid or incorrect."
          },
          "401": {
            "description": "Unauthorized - Invalid Token or Client Id"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "An internal error has occurred in Xe platform."
          }
        },
        "summary": "Quote Contract",
        "tags": [
          "Contracts"
        ]
      }
    },
    "/v2/contracts/{contractNumber}/settlementDetails": {
      "parameters": [
        {
          "in": "path",
          "name": "contractNumber",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "patch": {
        "description": "This API call updates Settlement Details for an existing contract.",
        "operationId": "Update-Contract-Settlement-Details",
        "parameters": [
          {
            "$ref": "#/components/parameters/accountNumber"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SettlementDetails"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Contract"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "discriminator": {
                    "propertyName": "typeOfFailure"
                  },
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ServiceException"
                    },
                    {
                      "$ref": "#/components/schemas/ValidationException"
                    }
                  ]
                }
              }
            },
            "description": "The requested operation could not be performed. Request is invalid or incorrect."
          },
          "401": {
            "description": "Unauthorized - Invalid Token or Client Id"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "An internal error has occurred in Xe platform."
          }
        },
        "summary": "Update Payment Settlement Type",
        "tags": [
          "Contracts"
        ]
      }
    },
    "/v2/currencyAccounts": {
      "get": {
        "description": "This API allows to get currency accounts, balances and transaction history of a client account",
        "operationId": "GetCurrencyAccounts",
        "parameters": [
          {
            "$ref": "#/components/parameters/accountNumber"
          },
          {
            "description": "If this flag is included, the endpoint returns balances of all the currencies that are enabled.",
            "in": "query",
            "name": "showAll",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "examples": {},
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/CurrencyAccountResponse"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Ok"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ServiceException"
                    },
                    {
                      "$ref": "#/components/schemas/ValidationException"
                    }
                  ]
                }
              }
            },
            "description": "The requested operation could not be performed. Request is invalid or incorrect"
          },
          "401": {
            "description": "Unauthorized - Invalid Token or Client "
          },
          "500": {
            "description": "An internal error has occurred in Xe platform."
          }
        },
        "summary": "Get currency accounts",
        "tags": [
          "CurrencyAccounts"
        ]
      }
    },
    "/v2/currencyAccounts/{currencyCode}": {
      "get": {
        "description": "This API call retrieves a single currency account by using ccy.",
        "operationId": "GetAvailableCurrencyAccount",
        "parameters": [
          {
            "$ref": "#/components/parameters/accountNumber"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurrencyAccountResponse"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ServiceException"
                    },
                    {
                      "$ref": "#/components/schemas/ValidationException"
                    }
                  ]
                }
              }
            },
            "description": "The requested operation could not be performed. Request is invalid or incorrect."
          },
          "401": {
            "description": "Unauthorized - Invalid Token or Client "
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "An internal error has occurred in Xe platform."
          }
        },
        "summary": "Get currency account for provided currency code",
        "tags": [
          "CurrencyAccounts"
        ]
      },
      "parameters": [
        {
          "description": "Currency code",
          "in": "path",
          "name": "currencyCode",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ]
    },
    "/v2/currencyAccounts/{currencyCode}/statement-feed": {
      "parameters": [
        {
          "description": "Currency code",
          "in": "path",
          "name": "currencyCode",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "post": {
        "description": "This API call retrieves a paginated, filterable statement feed (ledger entries) for a given currency account.",
        "operationId": "GetStatementFeed",
        "parameters": [
          {
            "$ref": "#/components/parameters/accountNumber"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StatementFeedRequest"
              }
            }
          },
          "description": "Optional date range, paging, and search filters."
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatementFeedResponse"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ServiceException"
                    },
                    {
                      "$ref": "#/components/schemas/ValidationException"
                    }
                  ]
                }
              }
            },
            "description": "The requested operation could not be performed. Request is invalid or incorrect."
          },
          "401": {
            "description": "Unauthorized - Invalid Token or Client "
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "An internal error has occurred in Xe platform."
          }
        },
        "summary": "Get statement feed for a currency account",
        "tags": [
          "CurrencyAccounts"
        ]
      }
    },
    "/v2/fxquotes": {
      "parameters": [],
      "post": {
        "description": "Create a quote for a currency pair and amount",
        "operationId": "CreateQuote",
        "parameters": [
          {
            "$ref": "#/components/parameters/accountNumber"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FxQuoteRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FxQuoteResponse"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "discriminator": {
                    "propertyName": "typeOfFailure"
                  },
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ServiceException"
                    },
                    {
                      "$ref": "#/components/schemas/ValidationException"
                    }
                  ]
                }
              }
            },
            "description": "The requested operation could not be performed. Request is invalid or incorrect."
          },
          "401": {
            "description": "Unauthorized - Invalid Token or Client Id"
          },
          "500": {
            "description": "An internal error has occurred in Xe platform."
          }
        },
        "summary": "Create Quote",
        "tags": [
          "FxQuotes"
        ]
      }
    },
    "/v2/fxquotes/{quoteId}": {
      "get": {
        "description": "Get existing quote by quoteId",
        "operationId": "Get-FxQuote",
        "parameters": [
          {
            "$ref": "#/components/parameters/accountNumber"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FxQuoteResponse"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "discriminator": {
                    "propertyName": "typeOfFailure"
                  },
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ServiceException"
                    },
                    {
                      "$ref": "#/components/schemas/ValidationException"
                    }
                  ]
                }
              }
            },
            "description": "The requested operation could not be performed. Request is invalid or incorrect."
          },
          "401": {
            "description": "Unauthorized - Invalid Token or Client Id"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "An internal error has occurred in Xe platform."
          }
        },
        "summary": "Get Quote",
        "tags": [
          "FxQuotes"
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "quoteId",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "patch": {
        "description": "This API call updates an existing quote.",
        "operationId": "Update-FxQuote",
        "parameters": [
          {
            "$ref": "#/components/parameters/accountNumber"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FxQuotePatchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FxQuoteResponse"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "discriminator": {
                    "propertyName": "typeOfFailure"
                  },
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ServiceException"
                    },
                    {
                      "$ref": "#/components/schemas/ValidationException"
                    }
                  ]
                }
              }
            },
            "description": "The requested operation could not be performed. Request is invalid or incorrect."
          },
          "401": {
            "description": "Unauthorized - Invalid Token or Client Id"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "An internal error has occurred in Xe platform."
          }
        },
        "summary": "Update Quote",
        "tags": [
          "FxQuotes"
        ]
      }
    },
    "/v2/fxquotes/{quoteId}/refresh": {
      "get": {
        "description": "This API call retrieves a refreshed quote.",
        "operationId": "Refresh-FxQuote",
        "parameters": [
          {
            "$ref": "#/components/parameters/accountNumber"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FxQuoteResponse"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "discriminator": {
                    "propertyName": "typeOfFailure"
                  },
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ServiceException"
                    },
                    {
                      "$ref": "#/components/schemas/ValidationException"
                    }
                  ]
                }
              }
            },
            "description": "The requested operation could not be performed. Request is invalid or incorrect."
          },
          "401": {
            "description": "Unauthorized - Invalid Token or Client Id"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "An internal error has occurred in Xe platform."
          }
        },
        "summary": "Refresh Quote",
        "tags": [
          "FxQuotes"
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "quoteId",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ]
    },
    "/v2/industryTypes/categories": {
      "get": {
        "description": "This API call retrieves all the industry category types.",
        "operationId": "Get-Industry-Type-Categories",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/IndustryTypeCategory"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "discriminator": {
                    "propertyName": "typeOfFailure"
                  },
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ServiceException"
                    },
                    {
                      "$ref": "#/components/schemas/ValidationException"
                    }
                  ]
                }
              }
            },
            "description": "The requested operation could not be performed. Request is invalid or incorrect."
          },
          "401": {
            "description": "Unauthorized - Invalid Token or Client Id"
          },
          "500": {
            "description": "An internal error has occurred in Xe platform."
          }
        },
        "summary": "Get Industry Type Categories",
        "tags": [
          "IndustryType"
        ]
      }
    },
    "/v2/industryTypes/{industryTypeCategoryCode}": {
      "get": {
        "description": "This API call retrieves all the industry types for a category.",
        "operationId": "Get-Industry-Types-By-Category",
        "parameters": [
          {
            "in": "path",
            "name": "industryTypeCategoryCode",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/IndustryType"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "discriminator": {
                    "propertyName": "typeOfFailure"
                  },
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ServiceException"
                    },
                    {
                      "$ref": "#/components/schemas/ValidationException"
                    }
                  ]
                }
              }
            },
            "description": "The requested operation could not be performed. Request is invalid or incorrect."
          },
          "401": {
            "description": "Unauthorized - Invalid Token or Client Id"
          },
          "500": {
            "description": "An internal error has occurred in Xe platform."
          }
        },
        "summary": "Get industry types for provided industry type category",
        "tags": [
          "IndustryType"
        ]
      }
    },
    "/v2/legalDocs/termsAndConditions": {
      "get": {
        "description": "This API call allows a client to get the Terms and Conditions link for their account.",
        "operationId": "Get-TermsAndConditions",
        "parameters": [
          {
            "$ref": "#/components/parameters/accountNumber"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TermsAndConditionsResponse"
                }
              }
            },
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "summary": "GET terms and conditions link",
        "tags": [
          "LegalDocs"
        ]
      },
      "parameters": []
    },
    "/v2/paymentFields/country/{countryCode}/currency/{ccyCode}": {
      "get": {
        "description": "This API call allows a client to get list of fields for Payment request by country and currency",
        "operationId": "Get-Payment-Fields",
        "parameters": [
          {
            "description": "Bank country code",
            "in": "path",
            "name": "countryCode",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Buy currency code of payment",
            "in": "path",
            "name": "ccyCode",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/accountNumber"
          },
          {
            "description": "Country code of recipient's address",
            "in": "query",
            "name": "addressCountryCode",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/PaymentFieldMap"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ServiceException"
                    },
                    {
                      "$ref": "#/components/schemas/ValidationException"
                    }
                  ]
                }
              }
            },
            "description": "The requested operation could not be performed. Request is invalid or incorrect."
          },
          "401": {
            "description": "Unauthorized - Invalid Token or Client "
          },
          "500": {
            "description": "An internal error has occurred in Xe platform."
          }
        },
        "summary": "Get payment fields",
        "tags": [
          "PaymentFields"
        ]
      }
    },
    "/v2/payments": {
      "parameters": [],
      "post": {
        "description": "Create payments for recipients.\n",
        "operationId": "Create-Payments",
        "parameters": [
          {
            "$ref": "#/components/parameters/accountNumber"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentsCreateRequest"
              }
            }
          },
          "description": ""
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentsCreateResponse"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "discriminator": {
                    "propertyName": "typeOfFailure"
                  },
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ServiceException"
                    },
                    {
                      "$ref": "#/components/schemas/ValidationException"
                    }
                  ]
                }
              }
            },
            "description": "The requested operation could not be performed. Request is invalid or incorrect."
          },
          "401": {
            "description": "Unauthorized - Invalid Token or Client Id"
          },
          "500": {
            "description": "An internal error has occurred in Xe platform."
          }
        },
        "summary": "Create Payments for Recipients",
        "tags": [
          "Contracts"
        ]
      }
    },
    "/v2/payments/purposes": {
      "get": {
        "description": "This API call allows you to get a list of purpose of payments usable for a currency.",
        "operationId": "Get-Payment-Purposes",
        "parameters": [
          {
            "description": "Currency Code to get purpose of payments for.",
            "in": "query",
            "name": "currency",
            "required": true,
            "schema": {
              "example": "GBP",
              "maxLength": 3,
              "minLength": 3,
              "pattern": "(?:[a-zA-Z]){3,}",
              "type": "string"
            }
          },
          {
            "description": "Recipient Type, Consumer or Company",
            "in": "query",
            "name": "recipientType",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/RecipientType"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/PurposeOfPayment"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "discriminator": {
                    "propertyName": "typeOfFailure"
                  },
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ServiceException"
                    },
                    {
                      "$ref": "#/components/schemas/ValidationException"
                    }
                  ]
                }
              }
            },
            "description": "The requested operation could not be performed. Request is invalid or incorrect."
          },
          "401": {
            "description": "Unauthorized - Invalid Token or Client Id"
          },
          "500": {
            "description": "An internal error has occurred in Xe platform."
          }
        },
        "summary": "Get Purpose of Payments",
        "tags": [
          "PurposeOfPayments"
        ]
      },
      "parameters": []
    },
    "/v2/payments/purposes/{code}": {
      "get": {
        "description": "This API call allows you to get purpose of payment details by purpose ofpayment code.",
        "operationId": "Get-Payment-Purpose-By-Code",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PurposeOfPayment"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "discriminator": {
                    "propertyName": "typeOfFailure"
                  },
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ServiceException"
                    },
                    {
                      "$ref": "#/components/schemas/ValidationException"
                    }
                  ]
                }
              }
            },
            "description": "The requested operation could not be performed. Request is invalid or incorrect."
          },
          "401": {
            "description": "Unauthorized - Invalid Token or Client Id"
          },
          "500": {
            "description": "An internal error has occurred in Xe platform."
          }
        },
        "summary": "Get Purpose of Payment details by Code",
        "tags": [
          "PurposeOfPayments"
        ]
      },
      "parameters": [
        {
          "description": "Purpose of Payment Code",
          "in": "path",
          "name": "code",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ]
    },
    "/v2/quotes": {
      "post": {
        "deprecated": true,
        "description": "Please use POST /fxquotes endpoint instead",
        "operationId": "Create-Quote",
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuotesRequest"
              }
            }
          },
          "description": ""
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuotesResponse"
                }
              },
              "application/xml": {
                "schema": {
                  "properties": {},
                  "type": "object"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "discriminator": {
                    "propertyName": "typeOfFailure"
                  },
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ServiceException"
                    },
                    {
                      "$ref": "#/components/schemas/ValidationException"
                    }
                  ]
                }
              }
            },
            "description": "The requested operation could not be performed. Request is invalid or incorrect."
          },
          "401": {
            "description": "Unauthorized - Invalid Token or Client Id"
          },
          "500": {
            "description": "An internal error has occurred in Xe platform."
          }
        },
        "summary": "Create Quote",
        "tags": [
          "Quotes"
        ]
      }
    },
    "/v2/quotes/{quoteId}": {
      "get": {
        "deprecated": true,
        "description": "Please use GET /fxquotes/{quoteId} endpoint instead",
        "operationId": "Get-Quote",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuotesResponse"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "discriminator": {
                    "propertyName": "typeOfFailure"
                  },
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ServiceException"
                    },
                    {
                      "$ref": "#/components/schemas/ValidationException"
                    }
                  ]
                }
              }
            },
            "description": "The requested operation could not be performed. Request is invalid or incorrect."
          },
          "401": {
            "description": "Unauthorized - Invalid Token or Client Id"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "An internal error has occurred in Xe platform."
          }
        },
        "summary": "Get Quote",
        "tags": [
          "Quotes"
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "quoteId",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ]
    },
    "/v2/quotes/{quoteId}/refresh": {
      "get": {
        "deprecated": true,
        "description": "Please use GET /fxquotes/{quoteId}/refresh endpoint instead",
        "operationId": "Refresh-Quote",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuotesResponse"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "discriminator": {
                    "propertyName": "typeOfFailure"
                  },
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ServiceException"
                    },
                    {
                      "$ref": "#/components/schemas/ValidationException"
                    }
                  ]
                }
              }
            },
            "description": "The requested operation could not be performed. Request is invalid or incorrect."
          },
          "401": {
            "description": "Unauthorized - Invalid Token or Client Id"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "An internal error has occurred in Xe platform."
          }
        },
        "summary": "Refresh Quote",
        "tags": [
          "Quotes"
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "quoteId",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ]
    },
    "/v2/recipients": {
      "get": {
        "description": "This API call allows a client to list their recipients.",
        "operationId": "Get-Recipients",
        "parameters": [
          {
            "$ref": "#/components/parameters/accountNumber"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/RegisteredRecipient"
                  },
                  "type": "array"
                }
              },
              "application/xml": {
                "schema": {
                  "properties": {},
                  "type": "object"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "discriminator": {
                    "propertyName": "typeOfFailure"
                  },
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ServiceException"
                    },
                    {
                      "$ref": "#/components/schemas/ValidationException"
                    }
                  ]
                }
              }
            },
            "description": "The requested operation could not be performed. Request is invalid or incorrect."
          },
          "401": {
            "description": "Unauthorized - Invalid Token or Client Id"
          },
          "500": {
            "description": "An internal error has occurred in Xe platform."
          }
        },
        "summary": "Get Recipients",
        "tags": [
          "Recipients"
        ]
      },
      "parameters": [],
      "post": {
        "description": "This API call allows a client to register a recipient.",
        "operationId": "Create-Recipients",
        "parameters": [
          {
            "$ref": "#/components/parameters/accountNumber"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RecipientCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RecipientCreateResponse"
                }
              },
              "application/xml": {
                "schema": {
                  "properties": {},
                  "type": "object"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "discriminator": {
                    "propertyName": "typeOfFailure"
                  },
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ServiceException"
                    },
                    {
                      "$ref": "#/components/schemas/ValidationException"
                    }
                  ]
                }
              }
            },
            "description": "The requested operation could not be performed. Request is invalid or incorrect."
          },
          "401": {
            "description": "Unauthorized - Invalid Token or Client Id"
          },
          "500": {
            "description": "An internal error has occurred in Xe platform."
          }
        },
        "summary": "Create Recipient",
        "tags": [
          "Recipients"
        ]
      }
    },
    "/v2/recipients/fields/country/{countryCode}/currency/{ccyCode}": {
      "get": {
        "description": "This API call allows a client to get all recipient fields (not just bank fields) for a country/currency/business-type combination.",
        "operationId": "Get-Recipient-Fields",
        "parameters": [
          {
            "description": "Country code",
            "in": "path",
            "name": "countryCode",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Currency code",
            "in": "path",
            "name": "ccyCode",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Whether the recipient is a business. Defaults to false.",
            "in": "query",
            "name": "isBusiness",
            "schema": {
              "default": false,
              "type": "boolean"
            }
          },
          {
            "description": "Country code of recipient's address",
            "in": "query",
            "name": "addressCountryCode",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/RecipientFieldMap"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ServiceException"
                    },
                    {
                      "$ref": "#/components/schemas/ValidationException"
                    }
                  ]
                }
              }
            },
            "description": "The requested operation could not be performed. Request is invalid or incorrect."
          },
          "401": {
            "description": "Unauthorized - Invalid Token or Client "
          },
          "500": {
            "description": "An internal error has occurred in Xe platform."
          }
        },
        "summary": "Get recipient fields",
        "tags": [
          "Recipients"
        ]
      }
    },
    "/v2/recipients/validate": {
      "post": {
        "description": "This API call validates recipient's details.",
        "operationId": "Validate-Recipient",
        "parameters": [
          {
            "$ref": "#/components/parameters/accountNumber"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RecipientCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ValidationException"
                    },
                    {
                      "$ref": "#/components/schemas/ServiceException"
                    }
                  ]
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized - Invalid Token or Client Id"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "An internal error has occurred in Xe platform."
          }
        },
        "summary": "Validate Recipient's Details",
        "tags": [
          "Recipients"
        ]
      }
    },
    "/v2/recipients/validate-batch": {
      "parameters": [
        {
          "$ref": "#/components/parameters/accountNumber"
        }
      ],
      "post": {
        "description": "This API call validates a batch of recipient's details.",
        "operationId": "Validate-Recipient-Batch",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ValidateRecipientBatchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/RecipientValidationResponse"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ValidationException"
                    },
                    {
                      "$ref": "#/components/schemas/ServiceException"
                    }
                  ]
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized - Invalid Token or Client Id"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "An internal error has occurred in Xe platform."
          }
        },
        "summary": "Validate Recipient's Details Batch",
        "tags": [
          "Recipients"
        ]
      }
    },
    "/v2/recipients/{recipientId}": {
      "delete": {
        "description": "This API call allows a client to delete a recipient.",
        "operationId": "Delete-Recipient",
        "parameters": [
          {
            "$ref": "#/components/parameters/accountNumber"
          }
        ],
        "responses": {
          "204": {
            "description": "Ok - Deleted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "discriminator": {
                    "propertyName": "typeOfFailure"
                  },
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ServiceException"
                    },
                    {
                      "$ref": "#/components/schemas/ValidationException"
                    }
                  ]
                }
              }
            },
            "description": "The requested operation could not be performed. Request is invalid or incorrect."
          },
          "401": {
            "description": "Unauthorized - Invalid Token or Client Id"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "An internal error has occurred in Xe platform."
          }
        },
        "summary": "Delete Recipient",
        "tags": [
          "Recipients"
        ]
      },
      "get": {
        "description": "This API call allows a client to get a recipient.",
        "operationId": "Get-Recipient",
        "parameters": [
          {
            "$ref": "#/components/parameters/accountNumber"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegisteredRecipient"
                }
              },
              "application/xml": {
                "schema": {
                  "properties": {},
                  "type": "object"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "discriminator": {
                    "propertyName": "typeOfFailure"
                  },
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ServiceException"
                    },
                    {
                      "$ref": "#/components/schemas/ValidationException"
                    }
                  ]
                }
              }
            },
            "description": "The requested operation could not be performed. Request is invalid or incorrect."
          },
          "401": {
            "description": "Unauthorized - Invalid Token or Client Id"
          },
          "500": {
            "description": "An internal error has occurred in Xe platform."
          }
        },
        "summary": "Get Recipient",
        "tags": [
          "Recipients"
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "recipientId",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "put": {
        "description": "Update the given recipient",
        "operationId": "Update-Recipient",
        "parameters": [
          {
            "$ref": "#/components/parameters/accountNumber"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RecipientUpdateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RecipientUpdateResponse"
                }
              },
              "application/xml": {
                "schema": {
                  "properties": {},
                  "type": "object"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "discriminator": {
                    "propertyName": "typeOfFailure"
                  },
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ServiceException"
                    },
                    {
                      "$ref": "#/components/schemas/ValidationException"
                    }
                  ]
                }
              }
            },
            "description": "The requested operation could not be performed. Request is invalid or incorrect."
          },
          "401": {
            "description": "Unauthorized - Invalid Token or Client Id"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "An internal error has occurred in Xe platform."
          }
        },
        "summary": "Update Recipient",
        "tags": [
          "Recipients"
        ]
      }
    },
    "/v2/resources/bankAccountTypes": {
      "get": {
        "description": "This API call retrieves a list of all bank account ID types available.",
        "operationId": "Get-All-Bank-Account-Types",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/BankAccountType"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized - Invalid Token or Client Id"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "An internal error has occurred in Xe platform."
          }
        },
        "summary": "Get all the bank account types",
        "tags": [
          "Resources"
        ]
      }
    },
    "/v2/resources/recipientIdTypes": {
      "get": {
        "description": "This API call retrieves a list of all recipient ID types available.",
        "operationId": "Get-All-Recipient-Id-Types",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/IdType"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized - Invalid Token or Client Id"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "An internal error has occurred in Xe platform."
          }
        },
        "summary": "Get All Recipient ID Types",
        "tags": [
          "Resources"
        ]
      }
    },
    "/v2/resources/recipientIdTypes/{countryCode}": {
      "get": {
        "description": "This API call retrieves a list of recipient ID types available for a given bank country code.",
        "operationId": "Get-Recipient-Id-Types",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/IdType"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "discriminator": {
                    "propertyName": "typeOfFailure"
                  },
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ServiceException"
                    },
                    {
                      "$ref": "#/components/schemas/ValidationException"
                    }
                  ]
                }
              }
            },
            "description": "The requested operation could not be performed. Request is invalid."
          },
          "401": {
            "description": "Unauthorized - Invalid Token or Client Id"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "An internal error has occurred in Xe platform."
          }
        },
        "summary": "Get Recipient ID Types",
        "tags": [
          "Resources"
        ]
      },
      "parameters": [
        {
          "description": "ISO 3166-1 alpha-2 country code",
          "in": "path",
          "name": "countryCode",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ]
    },
    "/v2/settlementOptions": {
      "get": {
        "description": "This API call allows a client to get list of allowed settlement options for their account based on sellCurrency.",
        "operationId": "Get-Settlement-Options",
        "parameters": [
          {
            "description": "Sell currency",
            "in": "query",
            "name": "sellCurrency",
            "required": true,
            "schema": {
              "maxLength": 3,
              "minLength": 3,
              "type": "string"
            }
          },
          {
            "description": "Fixed currency",
            "in": "query",
            "name": "fixedCurrency",
            "required": true,
            "schema": {
              "maxLength": 3,
              "minLength": 3,
              "type": "string"
            }
          },
          {
            "description": "sellAmount",
            "in": "query",
            "name": "amount",
            "required": true,
            "schema": {
              "format": "decimal",
              "type": "number"
            }
          },
          {
            "$ref": "#/components/parameters/accountNumber"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "examples": {
                  "example-1": {
                    "value": [
                      {
                        "Method": "BankTransfer"
                      }
                    ]
                  }
                },
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/SettlementOption"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          },
          "201": {
            "description": "Created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ServiceException"
                    },
                    {
                      "$ref": "#/components/schemas/ValidationException"
                    }
                  ]
                }
              }
            },
            "description": "The requested operation could not be performed. Request is invalid or incorrect."
          },
          "401": {
            "description": "Unauthorized - Invalid Token or Client "
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "An internal error has occurred in Xe platform."
          }
        },
        "summary": "Get Settlement Options",
        "tags": [
          "SettlementOptions"
        ]
      },
      "parameters": []
    },
    "/v2/settlementOptions/ccy/{sellCurrency}": {
      "get": {
        "deprecated": true,
        "description": "Deprecated - please use GET /settlementOptions endpoint instead",
        "operationId": "Get-Settlement-Options-Deprecated",
        "parameters": [
          {
            "$ref": "#/components/parameters/accountNumber"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "examples": {
                  "example-1": {
                    "value": [
                      {
                        "Method": "BankTransfer"
                      }
                    ]
                  }
                },
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/SettlementOption"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          },
          "201": {
            "description": "Created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ServiceException"
                    },
                    {
                      "$ref": "#/components/schemas/ValidationException"
                    }
                  ]
                }
              }
            },
            "description": "The requested operation could not be performed. Request is invalid or incorrect."
          },
          "401": {
            "description": "Unauthorized - Invalid Token or Client "
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "An internal error has occurred in Xe platform."
          }
        },
        "summary": "Get Settlement Options - Deprecated",
        "tags": [
          "SettlementOptions"
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "sellCurrency",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ]
    }
  },
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "servers": [
    {
      "url": "https://pay-api-sandbox.xe.com"
    }
  ],
  "tags": [
    {
      "name": "Authentication"
    },
    {
      "name": "Accounts"
    },
    {
      "name": "FxQuotes"
    },
    {
      "name": "Contracts"
    },
    {
      "name": "Recipients"
    },
    {
      "name": "PaymentFields"
    },
    {
      "name": "PurposeOfPayments"
    },
    {
      "name": "IndustryType"
    },
    {
      "name": "ClientBankAccounts"
    },
    {
      "name": "SettlementOptions"
    },
    {
      "name": "CurrencyAccounts"
    },
    {
      "name": "LegalDocs"
    },
    {
      "name": "Resources"
    },
    {
      "name": "Quotes"
    }
  ],
  "x-stoplight": {
    "id": "ogu9a5d0s0aoo"
  }
}
