{
  "openapi": "3.1.0",
  "info": {
    "version": "3.63.4",
    "title": "Weavr Multi Product API",
    "x-logo": {
      "url": "https://storage.googleapis.com/weavr-cdn/weavr_logo-new.png",
      "backgroundColor": "#FFFFFF",
      "altText": "Weavr"
    },
    "description": "Weavr Multi API provides a simple and flexible way to issue cards and accounts to your customers.\n\nBy integrating Weavr Multi API in your application you can embed banking capabilities within your app and provide a seamless experience for your customers.\n\n# Authentication\nEach request to the Multi API must include an `api-key` that represents your account. You can obtain an API Key by registering for a Multi account [here](https://portal.weavr.io).\n\nAlmost all endpoints require a secondary authentication token `auth_token` that represents the user for whom the request is being executed.\n",
    "contact": {
      "name": "Weavr",
      "url": "https://weavr.io"
    }
  },
  "servers": [
    {
      "description": "Weavr Sandbox Environment",
      "url": "https://sandbox.weavr.io/multi"
    }
  ],
  "tags": [
    {
      "name": "Access",
      "description": "Manage authentication for your users."
    },
    {
      "name": "Passwords",
      "description": "Manage your users' passwords."
    },
    {
      "name": "Additional Factors",
      "description": "Manage additional strong customer authentication factors for your users.  \n"
    },
    {
      "name": "Authorised Users",
      "description": "Corporate and Consumer identities can invite authorised users to access their account. Once on-boarded, authorised users can create and manage instruments and transactions on behalf of the identity they are on-boarded with.\n\nIn case of **Corporate Identities**, authorised users are typically employees who have access to company's banking products such as cards and bank accounts.\n\nIn case of **Consumer Identities**, authorised users are typically children/teens whose parents want them to have access to banking products such as cards and bank accounts.\n\nNote that the `/users` GET endpoints return all users including root users. However, modification operations (create, update, activate, deactivate) on `/users` endpoints only apply to authorised users. To modify _root_ user details, use the respective `/consumers` or `/corporates` endpoints.\n"
    },
    {
      "name": "Corporates",
      "description": "Corporates are identities representing companies. Once on-boarded, Corporates can create and manage their own instruments via your application."
    },
    {
      "name": "Consumers",
      "description": "Consumers are identities representing individuals. Once on-boarded, Consumers can create and manage their own instruments via your application."
    },
    {
      "name": "Managed Accounts",
      "description": "Managed Accounts are a type of financial instrument offered by Weavr.\n\nThey hold funds for their owner, and can be upgraded to IBANs so as to receive and send funds to instruments outside of the Weavr Platform, via Wire Transfers.\n\nManaged accounts can also be used as source and destination instruments in the `transfer` and `send` transactions.\n"
    },
    {
      "name": "Managed Cards",
      "description": "Managed Cards are a type of financial instrument offered by Weavr.\n\nYou can create virtual or physical cards that are issued to the consumer or corporate identity.\n\nA card created in prepaid mode has its own balance, whereas a card created in debit mode does not have its own balance but taps into the balance of its parent managed account.\n"
    },
    {
      "name": "Linked Accounts",
      "description": "Linked Accounts are external bank accounts that users connect to their profiles within the Weavr Platform.\n\nThese accounts allow users to link their existing bank accounts, held at external financial institutions, to the Weavr Platform, enabling secure and efficient transfer of funds between their own accounts.\n\nLinked Accounts are designed to streamline the process of moving money between a user’s various bank accounts, providing a convenient and integrated way to manage personal finances across different financial institutions.\n"
    },
    {
      "name": "Sends",
      "description": "The Send transaction is used to send funds between managed accounts and managed cards belonging to different identities. \n"
    },
    {
      "name": "Transfers",
      "description": "The Transfer transaction is used to transfer funds between managed accounts and managed cards belonging to same identity.\n"
    },
    {
      "name": "Outgoing Wire Transfers",
      "description": "The Outgoing Wire Transfer transaction is used to transfer funds from managed accounts to an external bank account.\n"
    },
    {
      "name": "Beneficiary Management",
      "description": "Manage a list of beneficiaries for Outgoing wire transfers and Sends. \n\nAside from convenience and a reduced chance of making errors when making transactions, \nthis allows for the introduction an SCA exemption, where the account holder can request \nthat transactions to `TRUSTED` beneficiaries to be exempted from the requirement to pass \nan SCA challenge every time.\n"
    }
  ],
  "paths": {
    "/login_with_password": {
      "post": {
        "tags": ["Access"],
        "description": "Authenticate a user with the `email` and `password` that they provided when registering.\n\nGiven that the user credentials are correct, this returns a `token` that can then be used to authorise\nother secured operations. In case the password is expired, a temporary `token` is returned, which can be used\nsolely for updating the password.\n\nThe token returned is valid for 5 minutes from last activity.\n",
        "summary": "Login with password",
        "operationId": "loginWithPassword",
        "requestBody": {
          "$ref": "#/components/requestBodies/LoginWithPasswordRequest"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/LoginWithPasswordResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "description": "The authentication credentials are not found or are incorrect."
          },
          "404": {
            "$ref": "#/components/responses/NotFoundToken"
          },
          "409": {
            "$ref": "#/components/responses/LoginWithPasswordConflict"
          },
          "410": {
            "$ref": "#/components/responses/TokenExpired"
          },
          "423": {
            "$ref": "#/components/responses/Locked"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "api-key": []
          }
        ]
      }
    },
    "/login_via_biometrics": {
      "post": {
        "tags": ["Access"],
        "description": "Trigger a push notification and subsequent biometric authentication of a user, by providing the email that was \nused in the enrolment process of biometrics.\n\nThis endpoint can be used in conjunction with your application to authenticate a user and receive a stepped-up \ntoken in a single action, for use in-session for any endpoints or UI components that require step-up \nauthentication.\n\nGiven that the user credentials are correct, a push notification is sent to the user requesting them to complete\nbiometric authentication. On successful completion of authentication, a token will be shared that can be used \nfor endpoints or UI components that require a stepped-up token.\n",
        "summary": "Login via biometrics",
        "operationId": "loginViaBiometrics",
        "requestBody": {
          "$ref": "#/components/requestBodies/LoginViaBiometricsRequest"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/LoginViaBiometricsResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "description": "The authentication credentials are not found or are incorrect."
          },
          "409": {
            "$ref": "#/components/responses/LoginViaBiometricsConflict"
          },
          "423": {
            "$ref": "#/components/responses/Locked"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "api-key": []
          }
        ]
      }
    },
    "/identities": {
      "get": {
        "tags": ["Access"],
        "description": "Retrieves a list of identities available to the holder of the token.",
        "summary": "Get user identities",
        "operationId": "userIdentities",
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "description": "The number of results to skip from the beginning of the dataset.",
            "schema": {
              "type": "integer",
              "minimum": 0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "The maximum number of identities to return.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/UserIdentitiesGetResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/UserIdentitiesConflict"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          },
          {
            "api-key": []
          }
        ]
      }
    },
    "/stepup/challenges/otp/{channel}": {
      "post": {
        "tags": ["Step-up Challenges"],
        "description": "Initiates the step-up token process by sending an SMS with an one-time-password to a device belonging to the logged-in user that was previously enrolled through `/authentication_factors/otp/{channel}` endpoint.\n\nThis process is required for endpoints that require a step-up token to complete the call.\n\n_Note that on the Sandbox Environment, text messages are not sent and the one-time-password is always \\\"123456\\\"._\n",
        "summary": "Issue a one-time password that can be used to step-up a token",
        "operationId": "stepupSCAChallenge",
        "parameters": [
          {
            "$ref": "#/components/parameters/idempotency-ref"
          },
          {
            "$ref": "#/components/parameters/channel"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "405": {
            "$ref": "#/components/responses/MethodNotAllowed"
          },
          "409": {
            "$ref": "#/components/responses/StepUpSCAChallengeConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/stepup/challenges/otp/{channel}/verify": {
      "post": {
        "tags": ["Step-up Challenges"],
        "description": "Completes the verification process for a step up token.\nThe challenge expires after 5 minutes and the number of incorrect OTP attempts is limited to reduce the risk of fraud, in that case challenge has to be issued again.\n\n_Note that on the Sandbox Environment, text messages are not sent and the `verificationCode` is always \\\"123456\\\"._\n",
        "summary": "Verify a step-up token using a one-time password",
        "operationId": "stepupSCAVerify",
        "parameters": [
          {
            "$ref": "#/components/parameters/idempotency-ref"
          },
          {
            "$ref": "#/components/parameters/channel"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/SCAVerifyRequest"
        },
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "409": {
            "$ref": "#/components/responses/StepUpSCAVerifyConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/stepup/challenges/push/{channel}": {
      "post": {
        "tags": ["Step-up Challenges"],
        "description": "Initiates the step-up token process by submitting a push notification to a device belonging to the logged-in user that was previously enrolled through the `/authentication_factors/push/{channel}` endpoint.\n\nYou should only start this process if the token step-up isn't already in flight.\n",
        "summary": "Issue a push notification that can be used to step-up a token",
        "operationId": "stepupSCAChallengePush",
        "parameters": [
          {
            "$ref": "#/components/parameters/idempotency-ref"
          },
          {
            "$ref": "#/components/parameters/scaPushChannel"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/StepUpSCAChallengePushResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "405": {
            "$ref": "#/components/responses/MethodNotAllowed"
          },
          "409": {
            "$ref": "#/components/responses/StepUpSCAChallengePushConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/logout": {
      "post": {
        "tags": ["Access"],
        "description": "Logs out the user and terminates the session identified by the `auth_token` in the Authorization Header.",
        "summary": "Logout",
        "operationId": "logout",
        "responses": {
          "200": {
            "$ref": "#/components/responses/LogoutResponse"
          },
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/passwords/{user_id}/create": {
      "post": {
        "tags": ["Passwords"],
        "description": "Create a new password for the user identified by the `user_id` path parameter.",
        "summary": "Create a password",
        "operationId": "passwordCreate",
        "parameters": [
          {
            "$ref": "#/components/parameters/userId"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/PasswordCreateRequest"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/PasswordResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundToken"
          },
          "409": {
            "$ref": "#/components/responses/CreatePasswordConflict"
          },
          "410": {
            "$ref": "#/components/responses/TokenExpired"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "api-key": []
          }
        ]
      }
    },
    "/passwords/update": {
      "post": {
        "tags": ["Passwords"],
        "description": "Update the password for the logged-in user.",
        "summary": "Update a password",
        "operationId": "passwordUpdate",
        "requestBody": {
          "$ref": "#/components/requestBodies/PasswordUpdateRequest"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/PasswordResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundToken"
          },
          "409": {
            "$ref": "#/components/responses/PasswordUpdateConflict"
          },
          "410": {
            "$ref": "#/components/responses/TokenExpired"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/passwords/validate": {
      "post": {
        "tags": ["Passwords"],
        "description": "Check that a password adheres to all complexity checks.",
        "summary": "Validate a password",
        "operationId": "passwordValidate",
        "requestBody": {
          "$ref": "#/components/requestBodies/PasswordValidateRequest"
        },
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundToken"
          },
          "409": {
            "$ref": "#/components/responses/PasswordValidateConflict"
          },
          "410": {
            "$ref": "#/components/responses/TokenExpired"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "api-key": []
          }
        ]
      }
    },
    "/passwords/lost_password/start": {
      "post": {
        "tags": ["Passwords"],
        "description": "Initiate the lost password process.\n\nIf the email address provided is associated with an active user, an email will be sent, containing a URL that redirects the user to change their password.\nThe URL contains request parameters for all of the parameters required to change the password for the user via the `/passwords/lost_password/resume` POST endpoint.\n",
        "summary": "Initiate lost password process",
        "operationId": "lostPasswordInitiate",
        "requestBody": {
          "$ref": "#/components/requestBodies/EmailRequest"
        },
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/LostPasswordInitiateConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "api-key": []
          }
        ]
      }
    },
    "/passwords/lost_password/resume": {
      "post": {
        "tags": ["Passwords"],
        "description": "This is the second and final step in updating the password of a user who forgot their password.",
        "summary": "Resume lost password process",
        "operationId": "lostPasswordResume",
        "requestBody": {
          "$ref": "#/components/requestBodies/LostPasswordResumeRequest"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/TokenResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundToken"
          },
          "409": {
            "$ref": "#/components/responses/LostPasswordResumeConflict"
          },
          "410": {
            "$ref": "#/components/responses/TokenExpired"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "api-key": []
          }
        ]
      }
    },
    "/authentication_factors": {
      "get": {
        "tags": ["Authentication Factors"],
        "description": "Retrieves the list of authentication factors that can be used to verify the logged-in user.",
        "summary": "Get user authentication factors",
        "operationId": "authFactorsGet",
        "responses": {
          "200": {
            "$ref": "#/components/responses/AuthFactorsGetResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/authentication_factors/otp/{channel}": {
      "post": {
        "tags": ["Authentication Factors"],
        "description": "This is the first step in enrolling the logged-in user's mobile device, where a one-time password is sent to the device.\n\n_Note that on the Sandbox Environment, text messages are not sent and the one-time-password is always \\\"123456\\\"._\n",
        "summary": "Enrol a user device for authentication using one-time passwords",
        "operationId": "enrolDeviceUsingOtpStepOne",
        "parameters": [
          {
            "$ref": "#/components/parameters/idempotency-ref"
          },
          {
            "$ref": "#/components/parameters/channel"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/EnrolDeviceUsingOtpStepOneConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "api-key": [],
            "auth_token": []
          }
        ]
      }
    },
    "/authentication_factors/otp/{channel}/verify": {
      "post": {
        "tags": ["Authentication Factors"],
        "description": "The second step in enrolling the logged-in user (root or authorised user) to use one-time-passwords to enable verification of transactions.\nThe challenge expires after 5 minutes and the number of incorrect OTP attempts is limited to reduce the risk of fraud, in that case challenge has to be issued again.\n\n_Note that on the Sandbox Environment, text messages are not sent and the `verificationCode` is always set to \\\"123456\\\"._\n",
        "summary": "Verify enrolment of a user device for authentication using one-time passwords",
        "operationId": "enrolDeviceUsingOtpStepTwo",
        "parameters": [
          {
            "$ref": "#/components/parameters/idempotency-ref"
          },
          {
            "$ref": "#/components/parameters/channel"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/SCAVerifyRequest"
        },
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/EnrolDeviceUsingOtpStepTwoConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "api-key": [],
            "auth_token": []
          }
        ]
      }
    },
    "/authentication_factors/push/{channel}": {
      "post": {
        "tags": ["Authentication Factors"],
        "description": "This is the first step in enrolling the logged-in user's mobile device, where a push notification is sent to the device.\n",
        "summary": "Enrol a user device for authentication using push notifications",
        "operationId": "enrolDeviceUsingPush",
        "parameters": [
          {
            "$ref": "#/components/parameters/idempotency-ref"
          },
          {
            "$ref": "#/components/parameters/authFactorsPushChannel"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/InstrumentForbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/EnrolDeviceUsingPushConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "api-key": [],
            "auth_token": []
          }
        ]
      },
      "delete": {
        "tags": ["Authentication Factors"],
        "description": "Unlink a user device for authentication using push notifications",
        "summary": "Unlink a user device for authentication using push notifications",
        "operationId": "unlinkDeviceUsingPush",
        "parameters": [
          {
            "$ref": "#/components/parameters/idempotency-ref"
          },
          {
            "$ref": "#/components/parameters/scaPushChannel"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/InstrumentForbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/UnlinkDeviceUsingPushConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "api-key": [],
            "auth_token": []
          }
        ]
      }
    },
    "/challenges/otp/{channel}": {
      "post": {
        "tags": ["Confirmation Challenges"],
        "description": "Starts the verification process for a list of resources in which a one-time password is sent to a device belonging to the logged-in user that was previously enrolled through the `/authentication_factors/otp/{channel}` endpoint. \n\nThis endpoint can be used to challenge _Outgoing Wire Transfers_, _Sends_, and _Linked Account Declarations_.\n\nYou should only start this process if the operation `state` is `PENDING_CHALLENGE`.\n\n_Note that on the Sandbox Environment, text messages are not sent and the one-time-password is always \\\"123456\\\"._\n",
        "summary": "Issue a one-time password that can be used to verify a list of resources",
        "operationId": "multipleSCAChallenge",
        "parameters": [
          {
            "$ref": "#/components/parameters/idempotency-ref"
          },
          {
            "$ref": "#/components/parameters/channel"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/MultipleSCAChallengeRequest"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/SCAChallengeResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "405": {
            "$ref": "#/components/responses/MethodNotAllowed"
          },
          "409": {
            "$ref": "#/components/responses/MultipleSCAChallengeConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/challenges/{scaChallengeId}/otp/{channel}/verify": {
      "post": {
        "tags": ["Confirmation Challenges"],
        "description": "Completes the verification process for a list of resources.\n\nThis endpoint can be used to challenge _Outgoing Wire Transfers_ & _Sends_.\n\nIf the outcome of the verification is successful, the resource is executed.\n\nIf not verified challenge expires after 5 minutes and the number of incorrect OTP attempts is limited to reduce the risk of fraud.\n\n_Note that on the Sandbox Environment, text messages are not sent and the `verificationCode` is always \\\"123456\\\"._\n",
        "summary": "Verify a list of resources using a one-time password",
        "operationId": "multipleSCAVerify",
        "parameters": [
          {
            "$ref": "#/components/parameters/idempotency-ref"
          },
          {
            "name": "scaChallengeId",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the SCA challenge.",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          },
          {
            "$ref": "#/components/parameters/channel"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/MultipleSCAVerifyRequest"
        },
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "409": {
            "$ref": "#/components/responses/MultipleSCAVerifyConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/challenges/push/{channel}": {
      "post": {
        "tags": ["Confirmation Challenges"],
        "description": "Starts the verification process for a list of resources in which a push notification is sent to a device belonging to the logged-in user that was previously enrolled through the `/authentication_factors/push/{channel}` endpoint.\n\nThis endpoint can be used to challenge _Outgoing Wire Transfers_ & _Sends_.\n\nYou should only start this process if the resource `state` is `PENDING_CHALLENGE`.\n",
        "summary": "Issue a push notification that can be used to verify a list of resources",
        "operationId": "multipleSCAChallengePush",
        "parameters": [
          {
            "$ref": "#/components/parameters/idempotency-ref"
          },
          {
            "$ref": "#/components/parameters/scaPushChannel"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/MultipleSCAChallengeRequest"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/SCAChallengeResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "405": {
            "$ref": "#/components/responses/MethodNotAllowed"
          },
          "409": {
            "$ref": "#/components/responses/MultipleSCAChallengePushConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/access_token": {
      "post": {
        "tags": ["Access"],
        "description": "This API endpoint accepts a POST request with an auth_token parameter and returns an access_token that grants authorized access to additional resources within the API, with a different expiration time and unique signature.\n",
        "summary": "Acquire a new access token",
        "operationId": "requestAccessToken",
        "requestBody": {
          "$ref": "#/components/requestBodies/AccessTokenRequest"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/AccessTokenResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "description": "The auth token is not specified or is incorrect."
          },
          "423": {
            "$ref": "#/components/responses/Locked"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          },
          {
            "api-key": []
          }
        ]
      }
    },
    "/users": {
      "post": {
        "x-permissions": ["i:users:create"],
        "tags": ["Authorised Users"],
        "description": "Creates a user linked to the logged-in corporate or consumer identity.\n\nOnce on-boarded, users have access to all instruments (cards and accounts) of the identity.\n\nApplication-specific permissions to limit what each user can view and do need to be implemented in your application.\n\nIn order to Create an Authorised User you would need a stepped-up token. Before calling `/multi/users` you need to step-up ( issue a challenge `multi/stepup/challenges/otp/{channel}` )\n\nMore details on how to step-up a token can be found here [Step-Up](#tag/Step-up-Challenges/operation/stepupSCAChallenge) \n",
        "summary": "Create a user",
        "operationId": "userCreate",
        "parameters": [
          {
            "$ref": "#/components/parameters/idempotency-ref"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/UserCreateRequest"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/UserResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/UserForbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/UserCreateConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      },
      "get": {
        "tags": ["Authorised Users"],
        "description": "Fetches all users associated with the corporate or consumer identity the logged-in user belongs to.",
        "summary": "Get all users",
        "operationId": "usersGet",
        "x-permissions": ["i:users:list"],
        "parameters": [
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "$ref": "#/components/parameters/limit"
          },
          {
            "$ref": "#/components/parameters/active"
          },
          {
            "$ref": "#/components/parameters/email"
          },
          {
            "$ref": "#/components/parameters/tag"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/UsersGetResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/bulks": {
      "get": {
        "description": "Filter bulk processes.",
        "summary": "Get all bulk processes",
        "operationId": "bulks",
        "x-permissions": ["i:bulks:list"],
        "tags": ["Manage"],
        "parameters": [
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "$ref": "#/components/parameters/limit"
          },
          {
            "$ref": "#/components/parameters/bulkProcessStatus"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BulkProcessesPaged"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/BulkProcessorConflictResponse"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/bulks/{bulk_id}": {
      "get": {
        "tags": ["Manage"],
        "description": "Retrieves details on the bulk process identified by the bulk_id parameter.",
        "summary": "Get bulk process",
        "operationId": "bulkId",
        "x-permissions": ["i:bulks:get"],
        "parameters": [
          {
            "$ref": "#/components/parameters/bulkId"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/BulkProcessDetails"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/bulks/{bulk_id}/operations": {
      "get": {
        "tags": ["Manage"],
        "description": "Retrieves the bulk process operations that match the query parameters.",
        "summary": "Get all operations in a bulk",
        "operationId": "bulkIdOperations",
        "x-permissions": ["i:bulks:get_operations"],
        "parameters": [
          {
            "$ref": "#/components/parameters/bulkId"
          },
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "$ref": "#/components/parameters/limit"
          },
          {
            "$ref": "#/components/parameters/sequence"
          },
          {
            "$ref": "#/components/parameters/bulkProcessOperationStatus"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/BulkProcessOperations"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/bulks/{bulk_id}/execute": {
      "post": {
        "tags": ["Manage"],
        "description": "Launches execution of operations of any bulk process identified by the bulk_id  parameter.\n\nThe status of the bulk process has to be in a ‘SUBMITTED’ state and after execution initiates, the bulk process state is set to ‘RUNNING’.\n\nThe final state of execution can be any of\n\nCOMPLETED: the execution of the bulk process is complete and all bulk operations of the bulk process were executed successfully\n\nFAILED:  none of the operations of the bulk process have executed.\n\nPARTIALLY_COMPLETED: the execution of the bulk process is complete and some of the bulk operations of the bulk process failed.\n\nThis operation is asynchronous and will return immediately. You can track the status of the execution of the bulk process through Get bulk process. You can also pause execution through _bulkIdPause_\n",
        "summary": "Execute bulk process",
        "operationId": "bulkIdExecute",
        "x-permissions": ["i:bulks:execute"],
        "parameters": [
          {
            "$ref": "#/components/parameters/bulkId"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/BulkProcessExecute"
        },
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/BulkProcessorConflictResponse"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/bulks/{bulk_id}/pause": {
      "post": {
        "tags": ["Manage"],
        "description": "Pauses the execution of operations of the bulk process that is in state ‘RUNNING’ as identified by the bulk_id  parameter.\n\nThe status of the bulk process after execution of this operation is set to ‘PAUSED’\n\nThe execution can be resumed through _bulkIdResume_\n",
        "summary": "Pause bulk process",
        "operationId": "bulkIdPause",
        "x-permissions": ["i:bulks:pause_and_resume"],
        "parameters": [
          {
            "$ref": "#/components/parameters/bulkId"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/BulkProcessorConflictResponse"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/bulks/{bulk_id}/resume": {
      "post": {
        "tags": ["Manage"],
        "description": "Resumes the execution of operations of the bulk process that is in state ' PAUSED' as identified by the bulk_id parameter.\n\nThe status of the bulk process after execution of this operation is set back to ‘RUNNING’\n",
        "summary": "Resume bulk process",
        "operationId": "bulkIdResume",
        "x-permissions": ["i:bulks:pause_and_resume"],
        "parameters": [
          {
            "$ref": "#/components/parameters/bulkId"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/BulkProcessorConflictResponse"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/bulks/{bulk_id}/cancel": {
      "post": {
        "tags": ["Manage"],
        "description": "Cancels the execution of operations of a bulk process that is in state ‘PAUSED’ or ‘RUNNING’ as identified by the bulk_id parameter.\n\nThe status of the bulk process after execution of this operation is set  to ‘CANCELLED’. This is a final state and a cancelled bulk process cannot be resumed.\n",
        "summary": "Cancel bulk process",
        "operationId": "bulkIdCancel",
        "x-permissions": ["i:bulks:cancel"],
        "parameters": [
          {
            "$ref": "#/components/parameters/bulkId"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/BulkProcessorConflictResponse"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/users/{user_id}": {
      "get": {
        "tags": ["Authorised Users"],
        "description": "Retrieves the user identified by the `user_id` path parameter.",
        "summary": "Get a user",
        "operationId": "userGetById",
        "x-permissions": ["i:users:get"],
        "parameters": [
          {
            "$ref": "#/components/parameters/userId"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/UserResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      },
      "patch": {
        "tags": ["Authorised Users"],
        "description": "Update the details of a user identified by the `user_id` in the the path parameter.\n\nOnly the fields that are specified in the request body will be updated. All other fields will remain unchanged.\n\nWhen patching a mobile number, the new mobile number should be enrolled for Additional Factors.\n",
        "summary": "Update a user",
        "operationId": "userUpdate",
        "x-permissions": ["i:users:update"],
        "parameters": [
          {
            "$ref": "#/components/parameters/userId"
          },
          {
            "$ref": "#/components/parameters/idempotency-ref"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/UserPatchRequest"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/UserResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/UserPatchConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/users/{user_id}/activate": {
      "post": {
        "tags": ["Authorised Users"],
        "description": "Activate the user identified by the `user_id` path parameter.\n\nBy default, any new users created will be automatically activated. This operation needs to be used only if the user was previously de-activated using the _userDeactivate_ operation, or if the user was de-activated automatically after multiple incorrect login attempts.\n",
        "summary": "Activate a user",
        "operationId": "userActivate",
        "x-permissions": ["i:users:activate"],
        "parameters": [
          {
            "$ref": "#/components/parameters/userId"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/users/{user_id}/deactivate": {
      "post": {
        "tags": ["Authorised Users"],
        "description": "De-activate the user identified by the `user_id` path parameter.\n\nDeactivated users cannot log in or execute any operations with their credentials.\n\nThis operations is not final and a user can be re-activated using the userActivate operation. Note that another active user would need to log in so as to re-activate the de-activated user.\n",
        "summary": "Deactivate a user",
        "operationId": "userDeactivate",
        "x-permissions": ["i:users:deactivate"],
        "parameters": [
          {
            "$ref": "#/components/parameters/userId"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/users/{user_id}/invite": {
      "post": {
        "x-permissions": ["i:users:send_invite"],
        "tags": ["Authorised Users"],
        "summary": "Send a user invite",
        "operationId": "userInviteSend",
        "description": "Once a user is created using the _userCreate_ operation, the user needs to setup his/her password.\n\nAn invitation needs to be sent to the user in order to be able to set up the password for the first time. The invitation email, which remains valid for 1 month, will contain a URL having all information required to setup the password via the _userInviteConsume_.\n",
        "parameters": [
          {
            "$ref": "#/components/parameters/idempotency-ref"
          },
          {
            "$ref": "#/components/parameters/userIdExplode"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/UserInviteSendConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/users/{user_id}/invite/validate": {
      "post": {
        "tags": ["Authorised Users"],
        "description": "Check if a user's invite is still valid. This operation is useful to avoid having the user fill in a form only to be held by a validation issue (eg. expired invite).",
        "summary": "Validate a user invite",
        "operationId": "userInviteValidate",
        "parameters": [
          {
            "$ref": "#/components/parameters/userIdExplode"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/UserInviteValidateRequest"
        },
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/UserInviteValidateConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "api-key": []
          }
        ]
      }
    },
    "/users/{user_id}/invite/consume": {
      "post": {
        "tags": ["Authorised Users"],
        "description": "Consumes an invitation perviously sent to the user via _userInviteSend_. This is needed so that the invited user sets up the password.\n\n_Note that on the Sandbox Environment, the `inviteCode` is always set to \\\"123456\\\"._\n",
        "summary": "Consume a user invite",
        "operationId": "userInviteConsume",
        "parameters": [
          {
            "$ref": "#/components/parameters/idempotency-ref"
          },
          {
            "$ref": "#/components/parameters/userIdExplode"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/UserInviteConsumeRequest"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/TokenResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundToken"
          },
          "409": {
            "$ref": "#/components/responses/UserInviteConsumeConflict"
          },
          "410": {
            "$ref": "#/components/responses/TokenExpired"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "api-key": []
          }
        ]
      }
    },
    "/users/verification/email/send": {
      "post": {
        "tags": ["Authorised Users"],
        "description": "The first step in verifying an authorised user's email. The authorised user whose email address is to be verified is sent an email containing a randomly generated code.\n\nThis code must then be provided in the _authorisedUserEmailVerify_ operation to verify the authorised user's email address.\n\n_Note that on the Sandbox Environment, the `verificationCode` is always set to \\\"123456\\\"._\n",
        "summary": "Send an email verification code to the authorised user",
        "operationId": "authorisedUserEmailVerificationCodeSend",
        "parameters": [
          {
            "$ref": "#/components/parameters/idempotency-ref"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "required": ["email"],
                "type": "object",
                "properties": {
                  "email": {
                    "$ref": "#/components/schemas/Email"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "errorCode": {
                      "type": "string",
                      "enum": ["EMAIL_NOT_FOUND"]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "api-key": []
          }
        ]
      }
    },
    "/users/verification/email/verify": {
      "post": {
        "tags": ["Authorised Users"],
        "description": "The second step in verifying the authorised user's email. The randomly generated code sent to the authorised user via\nemail, using the _authorisedUserEmailVerificationCodeSend_ operation, is submitted here to verify the authorised user's email.\n\nThis is needed as part of the verification process for basic due diligence.\n\n_Note that on the Sandbox Environment, the `verificationCode` is always set to \\\"123456\\\"._\n",
        "summary": "Verify email of the authorised user",
        "operationId": "authorisedUserEmailVerify",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "required": ["email", "verificationCode"],
                "type": "object",
                "properties": {
                  "email": {
                    "$ref": "#/components/schemas/Email"
                  },
                  "verificationCode": {
                    "$ref": "#/components/schemas/VerificationCode"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "errorCode": {
                      "type": "string",
                      "enum": ["VERIFICATION_CODE_INVALID"]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "security": [
          {
            "api-key": []
          }
        ]
      }
    },
    "/users/kyc": {
      "post": {
        "tags": ["Authorised Users"],
        "description": "Perform the kyc for a corporate user.\n",
        "summary": "Start KYC for the user",
        "operationId": "userKyc",
        "responses": {
          "200": {
            "description": "Success",
            "headers": {
              "request-ref": {
                "$ref": "#/components/headers/request-ref"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "required": ["reference"],
                  "type": "object",
                  "properties": {
                    "reference": {
                      "type": "string",
                      "pattern": "^[0-9]+$",
                      "description": "The reference required to initialise the KYB UI Component."
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "errorCode": {
                      "type": "string",
                      "enum": [
                        "EMAIL_NOT_VERIFIED",
                        "MOBILE_NOT_VERIFIED",
                        "KYC_ALREADY_APPROVED",
                        "KYC_PENDING_REVIEW",
                        "KYC_REJECTED",
                        "KYB_IDENTITY_NOT_APPROVED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "security": [
          {
            "api-key": []
          }
        ]
      }
    },
    "/corporates": {
      "post": {
        "tags": ["Corporates"],
        "description": "Create a corporate identity for a business customer.  The information provided must be accurate and will be passed on for KYB verification with our partner.",
        "summary": "Create a corporate",
        "operationId": "corporateCreate",
        "parameters": [
          {
            "$ref": "#/components/parameters/idempotency-ref"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/CorporateCreateRequest"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/CreateCorporateResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "409": {
            "$ref": "#/components/responses/CorporateCreateConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "api-key": []
          }
        ]
      },
      "get": {
        "tags": ["Corporates"],
        "description": "Retrieve the details of the logged-in corporate.",
        "summary": "Get a corporate",
        "operationId": "corporateGet",
        "x-permissions": ["i:corporates:get"],
        "responses": {
          "200": {
            "$ref": "#/components/responses/CorporateResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      },
      "patch": {
        "tags": ["Corporates"],
        "description": "Update the details of the logged-in corporate identity.\n\nThe following Corporate details are verified during due diligence (KYB) and cannot be updated via the API once the Corporate has been verified:\n  - Root User Name\n  - Root User Surname\n  - Root User Email\n  - Root User Mobile Country Code\n  - Root User Mobile Number\n  - Business Address\n  - Date of birth\n\n*If these details need to be changed after due diligence is completed, please contact Customer Support to restart the Due Diligence process.*\n",
        "summary": "Update a corporate",
        "operationId": "corporateUpdate",
        "x-permissions": ["i:corporates:update"],
        "parameters": [
          {
            "$ref": "#/components/parameters/idempotency-ref"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/CorporateUpdateRequest"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/CorporateResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/CorporateUpdateConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/corporates/verification/email/send": {
      "post": {
        "tags": ["Corporates"],
        "description": "The first step in verifying a root user's email. The root user whose email address is to be verified is sent an email containing a randomly generated code.\n\nThis code must then be provided in the _corporateRootUserEmailVerify_ operation to verify the root user's email address.\n\n_Note that on the Sandbox Environment, the `verificationCode` is always set to \\\"123456\\\"._\n",
        "summary": "Send an email verification code to the root user",
        "operationId": "corporateRootUserEmailVerificationCodeSend",
        "parameters": [
          {
            "$ref": "#/components/parameters/idempotency-ref"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/EmailRequest"
        },
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/EmailVerificationConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "api-key": []
          }
        ]
      }
    },
    "/corporates/verification/email/verify": {
      "post": {
        "tags": ["Corporates"],
        "description": "The second step in verifying the root user's email. The randomly generated code sent to the root user via\nemail, using the _corporateRootUserEmailVerificationCodeSend_ operation, is submitted here to verify the root user's email.\n\nThis is needed as part of the verification process for basic due diligence.\n\n_Note that on the Sandbox Environment, the `verificationCode` is always set to \\\"123456\\\"._\n",
        "summary": "Verify email of the root user",
        "operationId": "corporateRootUserEmailVerify",
        "requestBody": {
          "$ref": "#/components/requestBodies/EmailVerifyRequest"
        },
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "409": {
            "$ref": "#/components/responses/VerifyConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "api-key": []
          }
        ]
      }
    },
    "/corporates/kyb": {
      "post": {
        "tags": ["Corporates"],
        "description": "Corporates need to complete due diligence (KYB) before they can create instruments and perform transactions.\n\nThis operation initiates the due diligence process for the logged-in corporate.\n\nDue Diligence is handled by a KYB provider - you will need to embed the KYB UI Component in your application so that the Corporate will be able to perform the KYB process.\n\nTo initialise the KYB UI Component, you need a `reference` that is given you in the response of this operation.\n",
        "summary": "Start KYB for a corporate",
        "operationId": "corporateKybStart",
        "x-permissions": ["i:corporates:kyb_start"],
        "responses": {
          "200": {
            "description": "Success",
            "headers": {
              "request-ref": {
                "$ref": "#/components/headers/request-ref"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "required": ["reference"],
                  "type": "object",
                  "properties": {
                    "reference": {
                      "type": "string",
                      "pattern": "^[0-9]+$",
                      "description": "The reference required to initialise the KYB UI Component."
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "errorCode": {
                      "type": "string",
                      "enum": [
                        "KYB_ALREADY_APPROVED",
                        "KYB_PERMANENTLY_REJECTED",
                        "KYB_PENDING_REVIEW",
                        "EMAIL_UNVERIFIED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      },
      "get": {
        "tags": ["Corporates"],
        "description": "Returns the KYB status for the logged-in corporate.",
        "summary": "Get KYB for a corporate",
        "operationId": "corporateKybGet",
        "x-permissions": ["i:corporates:kyb_get"],
        "responses": {
          "200": {
            "$ref": "#/components/responses/CorporateKybGetResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/corporates/fees/charge": {
      "post": {
        "tags": ["Corporates"],
        "description": "Charge a fee to the corporate identified by the auth token, based on a pre-defined custom fee. Custom fees can be configured in the Multi Portal.\n\nThe fees collected will be deposited into your Revenue Account. The balance and transaction history of your revenue account can be viewed in the Multi Portal.\n",
        "summary": "Charge fee to a corporate",
        "operationId": "corporateChargeFee",
        "x-permissions": ["i:corporates:charge_fee"],
        "parameters": [
          {
            "$ref": "#/components/parameters/idempotency-ref"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/ChargeFeeRequest"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/ChargeFeeResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/ChargeFeeConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/consumers": {
      "post": {
        "tags": ["Consumers"],
        "description": "Create a Consumer Identity to represent an Individual.\n\nThe information provided must be accurate as it will be passed on for KYC verification with our partner.\n\n*Incorrect information may incur a re-processing fee.*\n",
        "summary": "Create a consumer",
        "operationId": "consumerCreate",
        "parameters": [
          {
            "$ref": "#/components/parameters/idempotency-ref"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/ConsumerCreateRequest"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/ConsumerResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "409": {
            "$ref": "#/components/responses/ConsumerCreateConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "api-key": []
          }
        ]
      },
      "get": {
        "tags": ["Consumers"],
        "description": "Retrieve the details of the logged-in Consumer.",
        "summary": "Get a consumer",
        "operationId": "consumerGet",
        "x-permissions": ["i:consumers:get"],
        "responses": {
          "200": {
            "$ref": "#/components/responses/ConsumerResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      },
      "patch": {
        "tags": ["Consumers"],
        "description": "Update the details of the logged-in consumer identity.\n\nIf the Consumer root user has already completed KYC, the following details cannot be updated:\n  - name\n  - surname\n  - email\n  - mobile Country Code\n  - mobile Number\n  - date of Birth\n  - address\n",
        "summary": "Update a consumer",
        "operationId": "consumerUpdate",
        "x-permissions": ["i:consumers:update"],
        "requestBody": {
          "$ref": "#/components/requestBodies/ConsumerUpdateRequest"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/ConsumerResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "409": {
            "$ref": "#/components/responses/ConsumerUpdateConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/consumers/verification/email/send": {
      "post": {
        "tags": ["Consumers"],
        "description": "The first step in verifying a root user's email. The root user whose email address is to be verified is sent an email containing a randomly generated code.\n\nThis code must then be provided in the _consumerRootUserEmailVerify_ operation to verify the root user's email address.\n\nNote that on the Sandbox Environment, the `verificationCode` is always set to \\\"123456\\\".\n",
        "summary": "Send an email verification code to the root user",
        "operationId": "consumerRootUserEmailVerificationCodeSend",
        "requestBody": {
          "$ref": "#/components/requestBodies/EmailRequest"
        },
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "409": {
            "$ref": "#/components/responses/EmailVerificationConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "api-key": []
          }
        ]
      }
    },
    "/consumers/verification/email/verify": {
      "post": {
        "tags": ["Consumers"],
        "description": "The second step in verifying the root user's email. The randomly generated code sent to the root user via\nemail, using the _consumerRootUserEmailVerificationCodeSend_ operation, is submitted here to verify the root user's email.\n\nThis is needed as part of the verification process for basic due diligence.\n\nNote that on the Sandbox Environment, emails are not sent and the verification code is always set to \\\"123456\\\".\n",
        "summary": "Verify email of the root user",
        "operationId": "consumerRootUserEmailVerify",
        "requestBody": {
          "$ref": "#/components/requestBodies/EmailVerifyRequest"
        },
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "409": {
            "$ref": "#/components/responses/VerifyConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "api-key": []
          }
        ]
      }
    },
    "/consumers/kyc": {
      "post": {
        "tags": ["Consumers"],
        "description": "Consumers need to complete due diligence (KYC) before they can create instruments and fund transaction.\n\nThis operation initiates the due diligence process for the logged-in consumer.  \n\nDue Diligence is handled by a KYC provider, you will need to embed the KYC UI Component in your application to show the KYC screens to your users.\n\nTo initialise the KYC UI Component, you need a `reference` that is given to you in the response of this operation.\n",
        "summary": "Start KYC for a consumer",
        "operationId": "consumerKycStart",
        "x-permissions": ["i:consumers:kyc_start"],
        "requestBody": {
          "$ref": "#/components/requestBodies/ConsumerKycLevelRequest"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/ConsumerKycStartResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "409": {
            "$ref": "#/components/responses/ConsumerKycStartConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      },
      "get": {
        "tags": ["Consumers"],
        "description": "Returns the KYC status for the logged-in consumer.",
        "summary": "Get KYC for a consumer",
        "operationId": "consumerKycGet",
        "x-permissions": ["i:consumers:kyc_get"],
        "responses": {
          "200": {
            "$ref": "#/components/responses/ConsumerKycGetResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/consumers/fees/charge": {
      "post": {
        "tags": ["Consumers"],
        "description": "Charge a fee to the logged-in consumer based on a pre-defined custom fee. Custom fees can be configured in the Multi Portal.\n\nThe fees collected will be deposited into your Revenue Account. The balance and transaction history of your revenue account can be viewed in the Multi Portal.\n",
        "summary": "Charge fee to a consumer",
        "operationId": "consumerChargeFee",
        "x-permissions": ["i:consumers:charge_fee"],
        "parameters": [
          {
            "$ref": "#/components/parameters/idempotency-ref"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/ChargeFeeRequest"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/ChargeFeeResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "409": {
            "$ref": "#/components/responses/ChargeFeeConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/linked_accounts": {
      "post": {
        "tags": ["Linked Accounts"],
        "description": "A Linked Account is an entity in the Weavr system that represents an external bank account or PSP account which the Identity has verified that they own and control. This feature enables users to perform transactions, such as outgoing and incoming wire transfers, between their Linked Accounts and their Managed Accounts in a way that can be recorded as a self-to-self transfer.\n",
        "summary": "Add a linked account",
        "operationId": "linkedAccountCreate",
        "x-permissions": ["i:linked_accounts:create"],
        "parameters": [
          {
            "$ref": "#/components/parameters/idempotency-ref"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/LinkedAccountCreationRequest"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/LinkedAccountResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/InstrumentForbidden"
          },
          "409": {
            "$ref": "#/components/responses/LinkedAccountRegisterConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      },
      "get": {
        "tags": ["Linked Accounts"],
        "description": "Retrieves all the Linked Accounts belonging to the logged-in Identity.",
        "summary": "Get all linked accounts",
        "operationId": "linkedAccountsGet",
        "x-permissions": ["i:linked_accounts:list"],
        "parameters": [
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "$ref": "#/components/parameters/limit"
          },
          {
            "$ref": "#/components/parameters/profileId"
          },
          {
            "$ref": "#/components/parameters/friendlyName"
          },
          {
            "$ref": "#/components/parameters/state"
          },
          {
            "$ref": "#/components/parameters/currency"
          },
          {
            "$ref": "#/components/parameters/createdFrom"
          },
          {
            "$ref": "#/components/parameters/createdTo"
          },
          {
            "$ref": "#/components/parameters/tag"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/LinkedAccountsGetResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/InstrumentForbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/linked_accounts/{id}": {
      "get": {
        "tags": ["Linked Accounts"],
        "description": "Fetch the Linked Account identified by the `id` in path.",
        "summary": "Get a linked account",
        "operationId": "linkedAccountGet",
        "x-permissions": ["i:linked_accounts:get"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the Linked Account.",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/LinkedAccountResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/InstrumentForbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      },
      "patch": {
        "tags": ["Linked Accounts"],
        "description": "Update the details for the linked account identified by the `id` in the path.",
        "summary": "Update a linked account",
        "operationId": "linkedAccountUpdate",
        "x-permissions": ["i:linked_accounts:update"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the linked account.",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/LinkedAccountMetadataUpdateRequest"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/LinkedAccountResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/InstrumentForbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/linked_accounts/{id}/remove": {
      "post": {
        "tags": ["Linked Accounts"],
        "description": "Removes the linked account identified by the `id` path parameter. Unlike block, this action is not reversible.\n",
        "summary": "Remove a linked account",
        "operationId": "linkedAccountRemove",
        "x-permissions": ["i:linked_accounts:remove"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the linked account.",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/LinkedAccountRemoveConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/linked_accounts/{id}/block": {
      "post": {
        "tags": ["Linked Accounts"],
        "description": "Temporarily blocks a linked account.",
        "summary": "Block a linked account",
        "operationId": "linkedAccountBlock",
        "x-permissions": ["i:linked_accounts:block"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier of the linked account.",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          },
          {
            "$ref": "#/components/parameters/idempotency-ref"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/LinkedAccountBlockConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/linked_accounts/{id}/unblock": {
      "post": {
        "tags": ["Linked Accounts"],
        "description": "Unblocks the linked account identified by the `id` path parameter.\n",
        "summary": "Unblock a linked account",
        "operationId": "linkedAccountUnblock",
        "x-permissions": ["i:linked_accounts:unblock"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier of the linked account.",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          },
          {
            "$ref": "#/components/parameters/idempotency-ref"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/LinkedAccountUnblockConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/linked_accounts/{id}/verifications": {
      "get": {
        "tags": ["Linked Accounts"],
        "description": "",
        "summary": "Get linked account verifications",
        "operationId": "linkedAccountVerificationsGet",
        "x-permissions": ["i:linked_accounts:get_verifications"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the linked account.",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          },
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "$ref": "#/components/parameters/limit"
          },
          {
            "$ref": "#/components/parameters/verificationRunState"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/LinkedAccountVerificationRunsGetResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/InstrumentForbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/managed_accounts": {
      "get": {
        "tags": ["Managed Accounts"],
        "description": "Retrieves all managed accounts belonging to the logged-in identity.",
        "summary": "Get all managed accounts",
        "operationId": "managedAccountsGet",
        "x-permissions": ["i:managed_accounts:list"],
        "parameters": [
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "$ref": "#/components/parameters/limit"
          },
          {
            "$ref": "#/components/parameters/profileId"
          },
          {
            "$ref": "#/components/parameters/friendlyName"
          },
          {
            "$ref": "#/components/parameters/state"
          },
          {
            "$ref": "#/components/parameters/state_blockedReason"
          },
          {
            "$ref": "#/components/parameters/state_destroyedReason"
          },
          {
            "$ref": "#/components/parameters/currency"
          },
          {
            "$ref": "#/components/parameters/createdFrom"
          },
          {
            "$ref": "#/components/parameters/createdTo"
          },
          {
            "$ref": "#/components/parameters/tag"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/ManagedAccountsGetResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/InstrumentForbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      },
      "post": {
        "tags": ["Managed Accounts"],
        "description": "Creates a managed account for the consumer or corporate identity.\nThe Managed Account Profile (configured in the Multi Portal) specified determines the behavior and restrictions that the managed account will have.\"\n",
        "summary": "Create a managed account",
        "operationId": "managedAccountCreate",
        "x-permissions": ["i:managed_accounts:create"],
        "parameters": [
          {
            "$ref": "#/components/parameters/idempotency-ref"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/ManagedAccountCreateRequest"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/ManagedAccountResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/InstrumentForbidden"
          },
          "409": {
            "$ref": "#/components/responses/ManagedAccountCreateConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/managed_accounts/{id}": {
      "get": {
        "tags": ["Managed Accounts"],
        "description": "Fetch the managed account identified by the `id` in path.",
        "summary": "Get a managed account",
        "operationId": "managedAccountGet",
        "x-permissions": ["i:managed_accounts:get"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the Managed Account.",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/ManagedAccountResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/InstrumentForbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      },
      "patch": {
        "tags": ["Managed Accounts"],
        "description": "Update the details for the managed account identified by the `id` in the path.",
        "summary": "Update a managed account",
        "operationId": "managedAccountUpdate",
        "x-permissions": ["i:managed_accounts:update"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the managed account.",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/ManagedAccountUpdateRequest"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/ManagedAccountResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/InstrumentForbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/managed_accounts/{id}/iban": {
      "post": {
        "tags": ["Managed Accounts"],
        "description": "Assign an IBAN to a Managed Account.\n\nIBANs enable managed accounts to receive and send funds via wire transfers.\n\nAssigning an IBAN to a Managed Account may be done asynchronously, in which case the `ManagedAccountIBAN.state` will be set to `PENDING_ALLOCATION` until bank details are ready to use.\n",
        "summary": "Upgrade a managed account with IBAN",
        "operationId": "managedAccountsIBANUpgrade",
        "x-permissions": ["i:managed_accounts:add_iban"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "style": "simple",
            "explode": false,
            "description": "The unique identifier of the Managed Account.",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          },
          {
            "$ref": "#/components/parameters/idempotency-ref"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/ManagedAccountIBANResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/ManagedAccountsIBANUpgradeConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      },
      "get": {
        "tags": ["Managed Accounts"],
        "description": "Fetch the IBAN details associated with the Managed Account identified by the `id` in the path.",
        "summary": "Get a managed account IBAN",
        "operationId": "managedAccountIBANGet",
        "x-permissions": ["i:managed_accounts:get_iban"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/ManagedAccountIBANResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/managed_accounts/{id}/block": {
      "post": {
        "tags": ["Managed Accounts"],
        "description": "Temporarily blocks a managed account.",
        "summary": "Block a managed account",
        "operationId": "managedAccountBlock",
        "x-permissions": ["i:managed_accounts:block"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier of the managed account.",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          },
          {
            "$ref": "#/components/parameters/idempotency-ref"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/ManagedAccountBlockConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/managed_accounts/{id}/unblock": {
      "post": {
        "tags": ["Managed Accounts"],
        "description": "Unblocks the managed account identified by the `id` path parameter.\nThe managed account must have `state.blockedReason` as `USER` so that it can be unblocked.\nIf the managed account was blocked by `SYSTEM`, users cannot unblock it.\n",
        "summary": "Unblock a managed account",
        "operationId": "managedAccountUnblock",
        "x-permissions": ["i:managed_accounts:unblock"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier of the managed account.",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          },
          {
            "$ref": "#/components/parameters/idempotency-ref"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/ManagedAccountUnblockConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/managed_accounts/{id}/statement": {
      "get": {
        "tags": ["Managed Accounts"],
        "description": "Returns a list of transactions against the managed account identified by the `id` path parameter, matching the criteria provided in the request.",
        "summary": "Get a managed account statement",
        "operationId": "managedAccountStatement",
        "x-permissions": ["i:managed_accounts:statement"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier of the managed account.",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          },
          {
            "$ref": "#/components/parameters/accept"
          },
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "$ref": "#/components/parameters/statementLimit"
          },
          {
            "$ref": "#/components/parameters/orderByTimestamp"
          },
          {
            "$ref": "#/components/parameters/fromTimestamp"
          },
          {
            "$ref": "#/components/parameters/toTimestamp"
          },
          {
            "$ref": "#/components/parameters/showFundMovementsOnly"
          },
          {
            "$ref": "#/components/parameters/singleEntryPerTransaction"
          },
          {
            "$ref": "#/components/parameters/transactionType"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/ManagedAccountStatementResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/InstrumentForbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/managed_accounts/{id}/remove": {
      "post": {
        "tags": ["Managed Accounts"],
        "description": "Destroys the managed account identified by the `id` path parameter. Unlike block, this action is not reversible.\n\nA managed account must be emptied from any remaining funds before it can be destroyed.\n",
        "summary": "Remove a managed account",
        "operationId": "managedAccountRemove",
        "x-permissions": ["i:managed_accounts:remove"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the managed account.",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/ManagedAccountRemoveConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/managed_cards": {
      "post": {
        "tags": ["Managed Cards"],
        "description": "Creates a managed card for the consumer or corporate identity.\nThe Managed Card Profile (configured in the Multi Portal) specified determines the behaviour and restrictions that the managed card will have.\n",
        "summary": "Create a managed card",
        "operationId": "managedCardCreate",
        "x-permissions": ["i:managed_cards:create"],
        "parameters": [
          {
            "$ref": "#/components/parameters/idempotency-ref"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/ManagedCardRequest"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/ManagedCardResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/InstrumentForbidden"
          },
          "409": {
            "$ref": "#/components/responses/ManagedCardConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      },
      "get": {
        "tags": ["Managed Cards"],
        "description": "Fetch cards matching the search criteria provided.",
        "summary": "Get all managed cards",
        "operationId": "managedCardsGet",
        "x-permissions": [
          "i:managed_cards:list",
          "i:managed_cards:list:all",
          "i:managed_cards:list:own"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "$ref": "#/components/parameters/limit"
          },
          {
            "$ref": "#/components/parameters/profileId"
          },
          {
            "$ref": "#/components/parameters/friendlyName"
          },
          {
            "$ref": "#/components/parameters/state"
          },
          {
            "$ref": "#/components/parameters/state_blockedReason"
          },
          {
            "$ref": "#/components/parameters/state_destroyedReason"
          },
          {
            "$ref": "#/components/parameters/currency"
          },
          {
            "$ref": "#/components/parameters/card_type"
          },
          {
            "$ref": "#/components/parameters/card_renewal_type"
          },
          {
            "name": "externalHandle",
            "in": "query",
            "required": false,
            "description": "Search by the card's `externalHandle`.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cardNumberFirstSix",
            "in": "query",
            "required": false,
            "description": "Filter by first six digits of the card.",
            "schema": {
              "pattern": "^[0-9]{6}$",
              "type": "string"
            }
          },
          {
            "name": "cardNumberLastFour",
            "in": "query",
            "required": false,
            "description": "Filter by last four digits of the card.",
            "schema": {
              "pattern": "^[0-9]{4}$",
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/createdFrom"
          },
          {
            "$ref": "#/components/parameters/createdTo"
          },
          {
            "name": "mode",
            "in": "query",
            "required": false,
            "description": "Filter by card mode (prepaid mode or debit mode).",
            "schema": {
              "type": "string",
              "enum": ["DEBIT_MODE", "PREPAID_MODE"]
            }
          },
          {
            "$ref": "#/components/parameters/tag"
          },
          {
            "name": "parentManagedAccountId",
            "in": "query",
            "required": false,
            "description": "Filter by the Id of the parent managed account associated with the card. This is applicable only for debit mode cards.",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          },
          {
            "name": "manufacturingState",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "uniqueItems": true,
              "items": {
                "$ref": "#/components/schemas/ManufacturingState"
              }
            }
          },
          {
            "$ref": "#/components/parameters/userIdQuery"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/ManagedCardPageResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/InstrumentForbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/managed_cards/{id}": {
      "get": {
        "tags": ["Managed Cards"],
        "description": "Returns all details of the managed card identified by the `id` path parameter.",
        "summary": "Get a managed card",
        "operationId": "managedCardGet",
        "x-permissions": [
          "i:managed_cards:list",
          "i:managed_cards:list:all",
          "i:managed_cards:list:own"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier of a card.",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/ManagedCardResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/InstrumentForbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      },
      "patch": {
        "tags": ["Managed Cards"],
        "description": "Update the details of the managed card identified by the `id` path parameter.",
        "summary": "Update a managed card",
        "operationId": "managedCardUpdate",
        "x-permissions": [
          "i:managed_cards:update",
          "i:managed_cards:update:all",
          "i:managed_cards:update:own"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of a card.",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          },
          {
            "$ref": "#/components/parameters/idempotency-ref"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/ManagedCardUpdateRequest"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/ManagedCardResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/InstrumentForbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/ManagedCardUpdateConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/managed_cards/{id}/block": {
      "post": {
        "tags": ["Managed Cards"],
        "description": "Blocks the managed card identified by the `id` path parameter. This is a reversible action and the card can be unblocked using the _managedCardUnblock_ operation.",
        "summary": "Block a managed card",
        "operationId": "managedCardBlock",
        "x-permissions": ["i:managed_cards:block"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of a managed card.",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          },
          {
            "$ref": "#/components/parameters/idempotency-ref"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/ManagedCardBlockConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/managed_cards/{id}/unblock": {
      "post": {
        "tags": ["Managed Cards"],
        "description": "Unblocks the managed card identified by the `id` path parameter.\nThe managed card must have `state.blockedReason` as `USER` so that it can be unblocked.\nIf the managed card was blocked by `SYSTEM`, users cannot unblock it.\n",
        "summary": "Unblock a managed card",
        "operationId": "managedCardUnblock",
        "x-permissions": ["i:managed_cards:unblock"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the managed card.",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          },
          {
            "$ref": "#/components/parameters/idempotency-ref"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/ManagedCardUnblockConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/managed_cards/{id}/remove": {
      "post": {
        "tags": ["Managed Cards"],
        "description": "Destroys the managed card identified by the `id` path parameter. Unlike block, this action is not reversible.\n\nA managed card must be empty before it can be destroyed using this operation.\n",
        "summary": "Remove a managed card",
        "operationId": "managedCardRemove",
        "x-permissions": ["i:managed_cards:remove"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of a managed card.",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/ManagedCardRemoveConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/managed_cards/{id}/statement": {
      "get": {
        "tags": ["Managed Cards"],
        "description": "Returns a list of transactions against the managed card identified by the `id` path parameter, matching the criteria provided in the request.",
        "summary": "Get a managed card statement",
        "operationId": "managedCardStatement",
        "x-permissions": ["i:managed_cards:statement"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of a managed card.",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          },
          {
            "$ref": "#/components/parameters/accept"
          },
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "$ref": "#/components/parameters/statementLimit"
          },
          {
            "$ref": "#/components/parameters/orderByTimestamp"
          },
          {
            "$ref": "#/components/parameters/fromTimestamp"
          },
          {
            "$ref": "#/components/parameters/toTimestamp"
          },
          {
            "$ref": "#/components/parameters/singleEntryPerTransaction"
          },
          {
            "$ref": "#/components/parameters/transactionType"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/ManagedCardStatementResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/InstrumentForbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/managed_cards/assign": {
      "post": {
        "tags": ["Managed Cards"],
        "description": "If your application requires anonymous cards, Weavr will create a pool of cards that are initially not assigned to any identity.\nThis operation assigns one such previously created managed card from the card pool to the logged-in consumer or corporate identity.\n",
        "summary": "Assign a managed card",
        "operationId": "managedCardAssign",
        "x-permissions": ["i:managed_cards:assign"],
        "parameters": [
          {
            "$ref": "#/components/parameters/idempotency-ref"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/ManagedCardAssignRequest"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/ManagedCardGetResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/InstrumentForbidden"
          },
          "409": {
            "$ref": "#/components/responses/ManagedCardAssignConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/managed_cards/{id}/spend_rules": {
      "get": {
        "tags": ["Managed Cards"],
        "summary": "Get all spend rules for a managed card",
        "operationId": "managedCardSpendRulesGet",
        "x-permissions": ["i:managed_cards:get_spendrules"],
        "description": "Fetch the list of spend rules associated with the managed card identified by the `id` path parameter.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/ManagedCardSpendRulesGetResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      },
      "post": {
        "tags": ["Managed Cards"],
        "summary": "Create spend rules for a managed card",
        "operationId": "managedCardSpendRulesCreate",
        "x-permissions": ["i:managed_cards:create_spendrules"],
        "description": "Create the spend rules associated with the managed card identified by the `id` path parameter.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          },
          {
            "$ref": "#/components/parameters/idempotency-ref"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/CardLevelSpendRulesRequest"
        },
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/ManagedCardSpendRulesCreateConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      },
      "patch": {
        "tags": ["Managed Cards"],
        "summary": "Update spend rules for a managed card",
        "operationId": "managedCardSpendRulesUpdate",
        "x-permissions": ["i:managed_cards:update_spendrules"],
        "description": "Must be user after a POST, to update individual spend rules associated with the managed card identified by the `id` path parameter.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          },
          {
            "$ref": "#/components/parameters/idempotency-ref"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/UpdateCardLevelSpendRulesRequest"
        },
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/ManagedCardSpendRulesUpdateConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      },
      "delete": {
        "tags": ["Managed Cards"],
        "summary": "Delete all spend rules for a managed card",
        "operationId": "managedCardSpendRulesDelete",
        "description": "Remove all spend rules associated with the managed card identified by the `id` path parameter.",
        "x-permissions": ["i:managed_cards:delete_spendrules"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/managed_cards/{id}/physical": {
      "post": {
        "tags": ["Managed Cards"],
        "description": "Upgrades the virtual card identified by the `id` path parameter to physical.\n\nBefore cards can be upgraded, a physical card programme must be set up and the card profile configuration updated accordingly.\n",
        "summary": "Upgrade a card to physical",
        "operationId": "managedCardPhysicalUpgrade",
        "x-permissions": ["i:managed_cards:create_physical"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          },
          {
            "$ref": "#/components/parameters/idempotency-ref"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/ManagedCardPhysicalUpgradeRequest"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/ManagedCardGetResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/InstrumentForbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/ManagedCardPhysicalUpgradeConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/managed_cards/{id}/physical/activate": {
      "post": {
        "tags": ["Managed Cards"],
        "description": "Activates the physical card identified by the `id` path paramter.",
        "summary": "Activate a physical card",
        "operationId": "managedCardPhysicalActivate",
        "x-permissions": ["i:managed_cards:activate_physical"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          },
          {
            "$ref": "#/components/parameters/idempotency-ref"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/ManagedCardPhysicalActivateRequest"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/ManagedCardGetResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/InstrumentForbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/ManagedCardPhysicalActivateConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/managed_cards/{id}/physical/pin": {
      "get": {
        "tags": ["Managed Cards"],
        "description": "Retrieves the PIN of the physical card identified by the `id` path parameter.",
        "summary": "Get PIN for a physical card",
        "operationId": "managedCardPhysicalPinGet",
        "x-permissions": ["i:managed_cards:get_physical_pin"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/ManagedCardPhysicalPinGetResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/InstrumentForbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/ManagedCardPhysicalPinGetConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/managed_cards/{id}/physical/pin/unblock": {
      "patch": {
        "tags": ["Managed Cards"],
        "description": "Physical cards can be marked as `pinBlocked` if there are too many failed PIN attempts.\n\nUse this operation to unblock a PIN so that the card can be used again.\n",
        "summary": "Unblock PIN for a physical card",
        "operationId": "managedCardPhysicalPinUnBlock",
        "x-permissions": ["i:managed_cards:unblock_physical_pin"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/ManagedCardPhysicalPinUnBlockConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/managed_cards/{id}/physical/replace_damaged": {
      "post": {
        "tags": ["Managed Cards"],
        "description": "Report as damaged, and replace the physical card identified by the `id` path parameter.",
        "summary": "Replace a damaged physical card",
        "operationId": "managedCardPhysicalReplaceDamaged",
        "x-permissions": ["i:managed_cards:replace_damaged"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          },
          {
            "$ref": "#/components/parameters/idempotency-ref"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/ManagedCardPhysicalReplaceDamagedRequest"
        },
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/InstrumentForbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/ManagedCardPhysicalReplaceDamagedConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/managed_cards/{id}/physical/report_lost": {
      "post": {
        "tags": ["Managed Cards"],
        "description": "Report the physical card identified by the `id` path parameter as lost. This will deactivate the instrument and a new card will need to be requested.",
        "summary": "Report a physical card as lost",
        "operationId": "managedCardPhysicalReportLost",
        "x-permissions": ["i:managed_cards:report_lost"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          },
          {
            "$ref": "#/components/parameters/idempotency-ref"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/ManagedCardPhysicalReportLostConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/managed_cards/{id}/physical/report_stolen": {
      "post": {
        "tags": ["Managed Cards"],
        "description": "Report the physical card identified by the `id` path parameter as stolen. This will destroy the instrument and a new replacement card will need to be requested.\n\nOnce a replacement is requested, any funds remaining on this destroyed card will be transferred to the replacement card.\"\n",
        "summary": "Report a physical card as stolen",
        "operationId": "managedCardPhysicalReportStolen",
        "x-permissions": ["i:managed_cards:report_stolen"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          },
          {
            "$ref": "#/components/parameters/idempotency-ref"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/ManagedCardPhysicalReportStolenConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/managed_cards/{id}/physical/replace_lost_stolen": {
      "post": {
        "tags": ["Managed Cards"],
        "description": "Issue a replacement for the physical card, identified by the `id` path parameter, that has already been reported as lost or stolen.\n\nAny funds (that are not blocked pending a purchase for a previous authorisation) remaining on the card will be automatically transferred to the new replacement card.\n",
        "summary": "Replace a lost or stolen physical card",
        "operationId": "managedCardPhysicalReplaceLostOrStolen",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          },
          {
            "$ref": "#/components/parameters/idempotency-ref"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/ManagedCardPhysicalReplaceLostOrStolenRequest"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/ManagedCardGetResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/InstrumentForbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/ManagedCardPhysicalReplaceLostOrStolenConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "api-key": []
          }
        ]
      }
    },
    "/managed_cards/{id}/physical/contactless_limit/reset": {
      "post": {
        "tags": ["Managed Cards"],
        "description": "For security purposes, the cardholder needs to provide the PIN after a number of contactless purchases. Use this operation to reset the physical card's contactless limit.\nThe contactless limit can only be reset for physical cards having the wearable form factor.\n",
        "summary": "Reset contactless limit for a physical card",
        "operationId": "managedCardPhysicalContactlessLimitReset",
        "x-permissions": ["i:managed_cards:reset_contactless_limit"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          },
          {
            "$ref": "#/components/parameters/idempotency-ref"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/ManagedCardPhysicalContactlessLimitResetConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/transfers": {
      "post": {
        "tags": ["Transfers"],
        "description": "Transfers funds between managed accounts and managed cards belonging to the same corporate or consumer identity.\n\nThe Transfer Profile (configured in the Multi Portal) specified determines the behaviour and restrictions of the transaction (for example, fees).\n",
        "summary": "Create a transfer transaction",
        "operationId": "transferCreate",
        "x-permissions": ["i:transfers:create"],
        "parameters": [
          {
            "$ref": "#/components/parameters/idempotency-ref"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/CreateTransferRequest"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/TransferResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "409": {
            "$ref": "#/components/responses/TransferConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      },
      "get": {
        "tags": ["Transfers"],
        "description": "Retrieves all the transfer transactions performed by the logged-in identity.",
        "summary": "Get all transfer transactions",
        "operationId": "transfersGet",
        "x-permissions": ["i:transfers:list"],
        "parameters": [
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "$ref": "#/components/parameters/limit"
          },
          {
            "$ref": "#/components/parameters/transferProfileId"
          },
          {
            "$ref": "#/components/parameters/instrumentId"
          },
          {
            "$ref": "#/components/parameters/transactionState"
          },
          {
            "$ref": "#/components/parameters/transferCreatedFrom"
          },
          {
            "$ref": "#/components/parameters/transferCreatedTo"
          },
          {
            "$ref": "#/components/parameters/transferExecutedFrom"
          },
          {
            "$ref": "#/components/parameters/transferExecutedTo"
          },
          {
            "$ref": "#/components/parameters/transferTag"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/TransfersGetResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/InstrumentForbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/transfers/bulk/cancel": {
      "post": {
        "tags": ["Transfers"],
        "description": "Cancels transfers that are scheduled to be executed in the future.",
        "summary": "Cancel transfer transactions",
        "operationId": "transferCancel",
        "x-permissions": ["i:transfers:cancel_bulk"],
        "requestBody": {
          "$ref": "#/components/requestBodies/TransactionBulkCancelRequest"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/TransactionBulkCancelResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/transfers/{id}": {
      "get": {
        "tags": ["Transfers"],
        "description": "Retrieve the transfer transaction identified by the `id` path parameter.",
        "summary": "Get a transfer transaction",
        "operationId": "transferGet",
        "x-permissions": ["i:transfers:get"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the Transfer transaction.",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/TransferResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/InstrumentForbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/sends": {
      "post": {
        "tags": ["Sends"],
        "description": "Sends funds between managed accounts and managed cards belonging to *different* corporate or consumer identities.\n\nThe Send Profile (configured in the Multi Portal) specified determines the behaviour and restrictions of the transaction (for example, fees).\n",
        "summary": "Create a send transaction",
        "operationId": "sendCreate",
        "x-permissions": ["i:sends:create"],
        "parameters": [
          {
            "$ref": "#/components/parameters/idempotency-ref"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/SendCreateRequest"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/SendResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "409": {
            "$ref": "#/components/responses/SendCreateConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      },
      "get": {
        "tags": ["Sends"],
        "description": "Retrieves all the send transactions performed by the logged-in identity.",
        "summary": "Get all send transactions",
        "operationId": "sendsGet",
        "x-permissions": ["i:sends:list"],
        "parameters": [
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "$ref": "#/components/parameters/limit"
          },
          {
            "$ref": "#/components/parameters/sendProfileId"
          },
          {
            "$ref": "#/components/parameters/instrumentId"
          },
          {
            "$ref": "#/components/parameters/sourceId"
          },
          {
            "$ref": "#/components/parameters/sourceType"
          },
          {
            "$ref": "#/components/parameters/sendState"
          },
          {
            "$ref": "#/components/parameters/sendCreatedFrom"
          },
          {
            "$ref": "#/components/parameters/sendCreatedTo"
          },
          {
            "$ref": "#/components/parameters/sendExecutedFrom"
          },
          {
            "$ref": "#/components/parameters/sendExecutedTo"
          },
          {
            "$ref": "#/components/parameters/sendTag"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/SendsGetPageResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/InstrumentForbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/sends/bulk/create": {
      "post": {
        "deprecated": true,
        "tags": ["Sends"],
        "summary": "Create a bulk of send transactions",
        "operationId": "sendCreateBulk",
        "x-permissions": ["i:sends:create_bulk"],
        "description": "Deprecated in favour of the [Operations in Bulk](#tag/Operations/operation/bulksSendCreate).\n\nSends funds between multiple managed accounts and managed cards belonging to *different* corporate or consumer identities.\n\nThe Send Profile (configured in the Multi Portal) specified determines the behaviour and restrictions of the transaction (for example, fees).\n",
        "parameters": [
          {
            "$ref": "#/components/parameters/idempotency-ref"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/SendBulkCreateRequest"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/SendBulkCreateResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "409": {
            "$ref": "#/components/responses/SendBulkCreateConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/sends/bulk/cancel": {
      "post": {
        "tags": ["Sends"],
        "description": "Cancels send transactions that are scheduled to be executed in the future.",
        "summary": "Cancel send transactions",
        "operationId": "sendCancel",
        "x-permissions": ["i:sends:cancel_bulk"],
        "requestBody": {
          "$ref": "#/components/requestBodies/TransactionBulkCancelRequest"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/TransactionBulkCancelResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/sends/{id}": {
      "get": {
        "tags": ["Sends"],
        "description": "Retrieve the send transaction identified by the `id` path parameter.",
        "summary": "Get a send transaction",
        "operationId": "sendGet",
        "x-permissions": ["i:sends:get"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the Send transaction.",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/SendResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/InstrumentForbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/sends/{id}/challenges/otp/{channel}": {
      "post": {
        "deprecated": true,
        "tags": ["Sends"],
        "description": "Deprecated in favour of [Challenges endpoints](#tag/Confirmation-Challenges/operation/multipleSCAChallenge)\n\nStarts the verification process for a send in which a one-time password is sent to a device belonging to the logged-in user that was previously enrolled through the `/authentication_factors/otp/{channel}` endpoint.\n\nYou should only start this process if the send `state` is `PENDING_CHALLENGE`.\n\n_Note that on the Sandbox Environment, text messages are not sent and the one-time-password is always \\\"123456\\\"._\n",
        "summary": "Issue a one-time password that can be used to verify a send",
        "operationId": "sendSCAChallenge",
        "x-permissions": ["i:sends:send_sca_challenge"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the send transaction.",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          },
          {
            "$ref": "#/components/parameters/channel"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "405": {
            "$ref": "#/components/responses/MethodNotAllowed"
          },
          "409": {
            "$ref": "#/components/responses/SendSCAChallengeConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/sends/{id}/challenges/otp/{channel}/verify": {
      "post": {
        "deprecated": true,
        "tags": ["Sends"],
        "description": "Deprecated in favour of [Challenges endpoints](#tag/Confirmation-Challenges/operation/multipleSCAVerify)\n\nCompletes the verification process for a Send.\n\nIf the outcome of the verification is successful, the send is executed.\n\nIf not verified challenge expires after 5 minutes and the number of incorrect OTP attempts is limited to reduce the risk of fraud.\n\n_Note that on the Sandbox Environment, text messages are not sent and the `verificationCode` is always \\\"123456\\\"._\n",
        "summary": "Verify a send using a one-time password",
        "operationId": "sendSCAVerify",
        "x-permissions": ["i:sends:send_sca_verify"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the send transaction.",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          },
          {
            "$ref": "#/components/parameters/channel"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/SCAVerifyRequest"
        },
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "409": {
            "$ref": "#/components/responses/SendSCAVerifyConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/sends/{id}/challenges/push/{channel}": {
      "post": {
        "deprecated": true,
        "tags": ["Sends"],
        "description": "Deprecated in favour of [Challenges endpoints](#tag/Confirmation-Challenges/operation/multipleSCAChallengePush)\n\nStarts the verification process for a Send in which a push notification is sent to a device belonging to the logged-in user that was previously enrolled through the `/authentication_factors/push/{channel}` endpoint.\n\nYou should only start this process if the Send transaction `state` is `PENDING_CHALLENGE`.\n",
        "summary": "Issue a push notification that can be used to verify Send transaction",
        "operationId": "sendSCAChallengePush",
        "x-permissions": ["i:sends:send_sca_challenge_push"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the send transaction.",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          },
          {
            "$ref": "#/components/parameters/scaPushChannel"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "405": {
            "$ref": "#/components/responses/MethodNotAllowed"
          },
          "409": {
            "$ref": "#/components/responses/SendSCAChallengePushConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/outgoing_wire_transfers": {
      "post": {
        "tags": ["Outgoing Wire Transfers"],
        "summary": "Create an outgoing wire transfer",
        "operationId": "outgoingWireTransferCreate",
        "x-permissions": ["i:owt:create"],
        "description": "Transfers funds from managed accounts to an external bank account.\n\nThe Outgoing Wire Transfer Profile (configured in the Multi Portal) specified determines the behaviour and restrictions of the transaction (for example, fees).\n\nNote that even if the transaction is created successfully, you still need to check its state in order to determine if it is pending completion of an authentication challenge by the user. \n",
        "parameters": [
          {
            "$ref": "#/components/parameters/idempotency-ref"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/OutgoingWireTransferCreateRequest"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OutgoingWireTransferResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "409": {
            "$ref": "#/components/responses/OutgoingWireTransferCreateConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      },
      "get": {
        "tags": ["Outgoing Wire Transfers"],
        "description": "Retrieves all the outgoing wire transfer transactions performed by the logged-in identity.",
        "summary": "Get all outgoing wire transfer transactions",
        "operationId": "outgoingWireTransfersGet",
        "x-permissions": ["i:owt:list"],
        "parameters": [
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "$ref": "#/components/parameters/limit"
          },
          {
            "$ref": "#/components/parameters/profileId"
          },
          {
            "$ref": "#/components/parameters/owtInstrument"
          },
          {
            "$ref": "#/components/parameters/sourceInstrument_id"
          },
          {
            "$ref": "#/components/parameters/sourceInstrument_type"
          },
          {
            "$ref": "#/components/parameters/owtState"
          },
          {
            "name": "createdFrom",
            "in": "query",
            "required": false,
            "description": "Filter for outgoing wire transfer transactions created after `createdFrom` timestamp, expressed in Epoch timestamp using millisecond precision. Leave out to fetch all outgoing wire transfer transactions.",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "createdTo",
            "in": "query",
            "required": false,
            "description": "Filter for Outgoing Wire Transfer transactions created before `createdTo` timestamp, expressed in Epoch timestamp using millisecond precision. Leave out to fetch all outgoing wire transfer transactions.",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "executedFrom",
            "in": "query",
            "required": false,
            "description": "Filter for outgoing wire transfer transactions executed after `executedFrom` timestamp, expressed in Epoch timestamp using millisecond precision. Leave out to fetch all outgoing wire transfer transactions.",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "executedTo",
            "in": "query",
            "required": false,
            "description": "Filter for Outgoing Wire Transfer transactions executed before `executedTo` timestamp, expressed in Epoch timestamp using millisecond precision. Leave out to fetch all outgoing wire transfer transactions.",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "tag",
            "in": "query",
            "required": false,
            "description": "Filter by the outgoing wire transfer tag. The exact tag must be provided, as wildcards are not supported. Leave out to fetch all entries.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/OutgoingWireTransfersGetPageResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/InstrumentForbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/outgoing_wire_transfers/bulk/create": {
      "post": {
        "deprecated": true,
        "tags": ["Outgoing Wire Transfers"],
        "summary": "Create a bulk of outgoing wire transfer transactions",
        "operationId": "outgoingWireTransferCreateBulk",
        "x-permissions": ["i:owt:create_bulk"],
        "description": "Deprecated in favour of the [Operations in Bulk](#tag/Operations/operation/bulksOutgoingWireTransferCreate).\n\nTransfers funds from multiple managed accounts to multiple external bank accounts.\n\nThe Outgoing Wire Transfer Profile (configured in the Multi Portal) specified determines the behaviour and restrictions of the transaction (for example, fees).\n\nNote that even if the transaction is created successfully, you still need to check its state in order to determine if it is pending completion of an authentication challenge by the user. \n",
        "parameters": [
          {
            "$ref": "#/components/parameters/idempotency-ref"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/OutgoingWireTransferBulkCreateRequest"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OutgoingWireTransferBulkCreateResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "409": {
            "$ref": "#/components/responses/OutgoingWireTransferBulkCreateConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/outgoing_wire_transfers/bulk/cancel": {
      "post": {
        "deprecated": true,
        "tags": ["Outgoing Wire Transfers"],
        "description": "Cancels outgoing wire transfers that are scheduled to be executed in the future.",
        "summary": "Cancel outgoing wire transfer transactions",
        "operationId": "outgoingWireTransferCancel",
        "x-permissions": ["i:owt:cancel_bulk"],
        "requestBody": {
          "$ref": "#/components/requestBodies/TransactionBulkCancelRequest"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/TransactionBulkCancelResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/outgoing_wire_transfers/{id}": {
      "get": {
        "tags": ["Outgoing Wire Transfers"],
        "description": "Retrieves the outgoing wire transfer identified by the `id` path parameter.",
        "summary": "Get an outgoing wire transfer transaction",
        "operationId": "outgoingWireTransferGet",
        "x-permissions": ["i:owt:get"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the Outgoing Wire Transfer transaction.",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/OutgoingWireTransferResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/InstrumentForbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/outgoing_wire_transfers/{id}/cancel": {
      "post": {
        "tags": ["Outgoing Wire Transfers"],
        "description": "Cancel the outgoing wire transfer identified by the `id` path parameter.",
        "summary": "Cancel an outgoing wire transfer transaction",
        "operationId": "outgoingWireTransferSingleCancel",
        "x-permissions": ["i:owt:cancel"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the Outgoing Wire Transfer transaction.",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/TransactionSingleCancelRequest"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OutgoingWireTransferResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/InstrumentForbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/OutgoingWireTransferCancelConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/outgoing_wire_transfers/{id}/confirm": {
      "post": {
        "tags": ["Outgoing Wire Transfers"],
        "description": "Confirm the outgoing wire transfer identified by the `id` path parameter.",
        "summary": "Confirm an outgoing wire transfer transaction",
        "operationId": "outgoingWireTransferConfirm",
        "x-permissions": ["i:owt:confirm"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the Outgoing Wire Transfer transaction.",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/OutgoingWireTransferResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/InstrumentForbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/OutgoingWireTransferConfirmConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/outgoing_wire_transfers/{id}/challenges/otp/{channel}": {
      "post": {
        "deprecated": true,
        "tags": ["Outgoing Wire Transfers"],
        "description": "Deprecated in favour of [Challenges endpoints](#tag/Confirmation-Challenges/operation/multipleSCAChallenge)\n\nStarts the verification process for an outgoing wire transfer in which a one-time password is sent to a device belonging to the logged-in user that was previously enrolled through the `/authentication_factors/otp/{channel}` endpoint.\n\nYou should only start this process if the outgoing wire transfer `state` is `PENDING_CHALLENGE`.\n\n_Note that on the Sandbox Environment, text messages are not sent and the one-time-password is always \\\"123456\\\"._\n",
        "summary": "Issue a one-time password that can be used to verify an outgoing wire transfer",
        "operationId": "outgoingWireTransferSCAChallenge",
        "x-permissions": ["i:owt:create_challenge"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the Outgoing Wire Transfer transaction.",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          },
          {
            "$ref": "#/components/parameters/channel"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "405": {
            "$ref": "#/components/responses/MethodNotAllowed"
          },
          "409": {
            "$ref": "#/components/responses/OutgoingWireTransferSCAChallengeConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/outgoing_wire_transfers/{id}/challenges/otp/{channel}/verify": {
      "post": {
        "deprecated": true,
        "tags": ["Outgoing Wire Transfers"],
        "description": "Deprecated in favour of [Challenges endpoints](#tag/Confirmation-Challenges/operation/multipleSCAVerify)\n\nCompletes the verification process for an outgoing wire transfer.\n\nIf the outcome of the verification is successful, the outgoing wire transfer transaction is executed.\n\nIf not verified challenge expires after 5 minutes and the number of incorrect OTP attempts is limited to reduce the risk of fraud.\n\n_Note that on the Sandbox Environment, text messages are not sent and the `verificationCode` is always \\\"123456\\\"._\n",
        "summary": "Verify an outgoing wire transfer using a one-time password",
        "operationId": "outgoingWireTransferSCAVerify",
        "x-permissions": ["i:owt:verify_challenge"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the Outgoing Wire Transfer transaction.",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          },
          {
            "$ref": "#/components/parameters/channel"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/SCAVerifyRequest"
        },
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "409": {
            "$ref": "#/components/responses/OutgoingWireTransferSCAVerifyConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/outgoing_wire_transfers/{id}/challenges/push/{channel}": {
      "post": {
        "deprecated": true,
        "tags": ["Outgoing Wire Transfers"],
        "description": "Deprecated in favour of [Challenges endpoints](#tag/Confirmation-Challenges/operation/multipleSCAChallengePush)\n\nStarts the verification process for an outgoing wire transfer in which a push notification is sent to a device belonging to the logged-in user that was previously enrolled through the `/authentication_factors/push/{channel}` endpoint.\n\nYou should only start this process if the outgoing wire transfer `state` is `PENDING_CHALLENGE`.\n",
        "summary": "Issue a push notification that can be used to verify an outgoing wire transfer",
        "operationId": "outgoingWireTransferSCAChallengePush",
        "x-permissions": ["i:owt:create_push_challenge"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the Outgoing Wire Transfer transaction.",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          },
          {
            "$ref": "#/components/parameters/scaPushChannel"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "405": {
            "$ref": "#/components/responses/MethodNotAllowed"
          },
          "409": {
            "$ref": "#/components/responses/OutgoingWireTransferSCAChallengePushConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/beneficiaries": {
      "post": {
        "tags": ["Beneficiaries"],
        "description": "Create one or more beneficiaries for the logged-in corporate or consumer identity.",
        "summary": "Add beneficiaries",
        "operationId": "beneficiaryBatchCreate",
        "x-permissions": ["i:beneficiaries:create"],
        "parameters": [
          {
            "$ref": "#/components/parameters/idempotency-ref"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/BeneficiaryBatchCreateRequest"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/BeneficiaryBatchResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      },
      "get": {
        "tags": ["Beneficiaries"],
        "description": "Retrieves the beneficiaries that match the query parameters.",
        "summary": "Get all beneficiaries",
        "operationId": "beneficiariesGet",
        "x-permissions": ["i:beneficiaries:list"],
        "parameters": [
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "$ref": "#/components/parameters/limit"
          },
          {
            "name": "batchId",
            "in": "query",
            "required": false,
            "description": "Search by the beneficiary batch id.",
            "schema": {
              "type": "array",
              "uniqueItems": true,
              "items": {
                "type": "string",
                "pattern": "^[0-9]+$"
              }
            }
          },
          {
            "name": "group",
            "in": "query",
            "required": false,
            "description": "Search by the beneficiary group.",
            "schema": {
              "type": "array",
              "uniqueItems": true,
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/BeneficiaryPageResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/beneficiaries/remove": {
      "post": {
        "tags": ["Beneficiaries"],
        "description": "Removes one or more beneficiaries from the beneficiaries list identified by the id path parameter used in the array.",
        "summary": "Remove beneficiaries",
        "operationId": "beneficiaryBatchRemove",
        "x-permissions": ["i:beneficiaries:remove"],
        "parameters": [
          {
            "$ref": "#/components/parameters/idempotency-ref"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/BeneficiaryBatchRemoveRequest"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/BeneficiaryBatchResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/beneficiaries/{id}": {
      "get": {
        "tags": ["Beneficiaries"],
        "description": "Retrieves a beneficiary identified by the id path parameter",
        "summary": "Get a beneficiary",
        "operationId": "beneficiaryGet",
        "x-permissions": ["i:beneficiaries:get"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier of a beneficiary.",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/BeneficiaryResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/beneficiaries/batch": {
      "get": {
        "tags": ["Beneficiaries"],
        "description": "Retrieves all beneficiary batches matching the query parameters and that belong to the logged-in identity.",
        "summary": "Get all beneficiary batches",
        "operationId": "beneficiaryBatchesGet",
        "x-permissions": ["i:beneficiaries:list_batches"],
        "parameters": [
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "$ref": "#/components/parameters/limit"
          },
          {
            "name": "state",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "uniqueItems": true,
              "items": {
                "$ref": "#/components/schemas/BeneficiaryBatchState"
              }
            }
          },
          {
            "name": "operation",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "uniqueItems": true,
              "items": {
                "$ref": "#/components/schemas/BeneficiaryBatchOperation"
              }
            }
          },
          {
            "name": "tag",
            "in": "query",
            "required": false,
            "description": "Filter by the beneficiary batch tag. The exact tag must be provided, as wildcards are not supported. Leave out to fetch all entries.",
            "schema": {
              "type": "array",
              "uniqueItems": true,
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/BeneficiaryBatchPageResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/beneficiaries/batch/{id}": {
      "get": {
        "tags": ["Beneficiaries"],
        "description": "Retrieves the details of a beneficiary batch identified by the batchId path parameter",
        "summary": "Get a beneficiary batch",
        "operationId": "beneficiaryBatchGet",
        "x-permissions": ["i:beneficiaries:get_batch"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier of a beneficiary batch.",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/BeneficiaryBatchResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/beneficiaries/batch/{id}/challenges/otp/{channel}": {
      "post": {
        "tags": ["Beneficiaries"],
        "description": "Starts the verification process for updating the beneficiaries batch in which a one-time password is sent to a device belonging to the logged-in user that was previously enrolled through the `/authentication_factors/otp/{channel}` endpoint.\n\nYou should only start this process if the beneficiary update `state` is `PENDING_CHALLENGE`.\n\n_Note that on the Sandbox Environment, text messages are not sent and the one-time-password is always \\\"123456\\\"._\n",
        "summary": "Issue a one-time password to verify a beneficiary batch",
        "operationId": "beneficiaryBatchSCAChallenge",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the Beneficiary Batch Operation.",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          },
          {
            "$ref": "#/components/parameters/channel"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "405": {
            "$ref": "#/components/responses/MethodNotAllowed"
          },
          "409": {
            "$ref": "#/components/responses/BeneficiaryBatchSCAChallengeConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/beneficiaries/batch/{id}/challenges/otp/{channel}/verify": {
      "post": {
        "tags": ["Beneficiaries"],
        "description": "Completes the verification process for updating the beneficiary batch.\n\nIf the outcome of the verification is successful, the beneficiary update batch is executed.\n\n_Note that on the Sandbox Environment, text messages are not sent and the verificationCode is always \\\"123456\\\"._\n",
        "summary": "Verify a beneficiary batch using a one-time password",
        "operationId": "beneficiaryBatchSCAVerify",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the Beneficiary Batch Operation.",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          },
          {
            "$ref": "#/components/parameters/channel"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/SCAVerifyRequest"
        },
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "409": {
            "$ref": "#/components/responses/BeneficiaryBatchSCAVerifyConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/beneficiaries/batch/{id}/challenges/push/{channel}": {
      "post": {
        "tags": ["Beneficiaries"],
        "description": "Starts the verification process for updating a beneficiary batch in which a push notification is sent to a device belonging to the logged-in user that was previously enrolled through the `/authentication_factors/push/{channel}` endpoint.\n\nYou should only start this process if the beneficiary update operation `state` is `PENDING_CHALLENGE`.\n",
        "summary": "Issue a push notification that can be used to verify a beneficiary batch",
        "operationId": "beneficiaryBatchSCAChallengePush",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The unique identifier of the Beneficiary Batch Operation.",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          },
          {
            "$ref": "#/components/parameters/scaPushChannel"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContent"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "405": {
            "$ref": "#/components/responses/MethodNotAllowed"
          },
          "409": {
            "$ref": "#/components/responses/BeneficiaryBatchSCAChallengePushConflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ]
      }
    },
    "/bulks/users": {
      "post": {
        "x-permissions": ["i:users:create"],
        "tags": ["Operations"],
        "description": "Submit the details for the creation of a batch of Authorised Users \n\nThe bulkId returned in the response can subsequently be used to launch the execution of the bulk process through [Execute Bulk Process](#tag/Manage/operation/bulkIdExecute). A submitted bulk process can be managed (executed, accessed, paused, resumed and cancelled) by any Authorised User of the same identity of the user that submits the details.\n\nThe status of the bulk process after execution of this operation is set to ‘SUBMITTED’. The execution of the bulk process is launched through the Execute bulk process operation.\n\nThe submission of data for a bulk process does not expire but it can be cancelled through [Cancel Bulk Process](#tag/Manage/operation/bulkIdCancel).\n\nThe system is configured to accept bulk requests to process up to a maximum of 10,000 bulk operations\n\nEach individual operation in this bulk will be processed via [Create a User](#tag/Authorised-Users/operation/userCreate).\n",
        "summary": "Create users in bulk",
        "operationId": "bulksUserCreate",
        "parameters": [
          {
            "$ref": "#/components/parameters/idempotency-ref"
          }
        ],
        "responses": {
          "201": {
            "description": "Success - returning bulk process",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "bulkId": {
                      "type": "string"
                    },
                    "operationCount": {
                      "type": "integer"
                    },
                    "path": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "pathParams": {
                      "type": "object",
                      "properties": {}
                    },
                    "requestBody": {
                      "required": ["email", "name", "surname"],
                      "type": "object",
                      "properties": {
                        "name": {
                          "minLength": 1,
                          "maxLength": 50,
                          "type": "string",
                          "description": "The first name of the user."
                        },
                        "surname": {
                          "minLength": 1,
                          "maxLength": 50,
                          "type": "string",
                          "description": "The last name of the user."
                        },
                        "email": {
                          "$ref": "#/components/schemas/Email"
                        },
                        "mobile": {
                          "$ref": "#/components/schemas/Mobile"
                        },
                        "dateOfBirth": {
                          "description": "Date of birth of the authorised user.",
                          "$ref": "#/components/schemas/Date"
                        },
                        "tag": {
                          "$ref": "#/components/schemas/Tag"
                        },
                        "countryOfResidence": {
                          "type": "string",
                          "maxLength": 2,
                          "minLength": 2,
                          "pattern": "^[A-Z]+$"
                        },
                        "locale": {
                          "$ref": "#/components/schemas/UserLocale"
                        },
                        "brand": {
                          "$ref": "#/components/schemas/Brand"
                        }
                      }
                    }
                  }
                },
                "maxItems": 10000,
                "minItems": 1
              }
            }
          }
        }
      }
    },
    "/bulks/users/_user_id_/invite": {
      "post": {
        "x-permissions": ["i:users:send_invite"],
        "tags": ["Operations"],
        "summary": "Send user invites in bulk",
        "operationId": "bulksUserInviteSend",
        "description": "Submit the details for the creation of a batch of Authorised User invites\n\nThe bulkId returned in the response can subsequently be used to launch the execution of the bulk process through [Execute Bulk Process](#tag/Manage/operation/bulkIdExecute). A submitted bulk process can be managed (executed, accessed, paused, resumed and cancelled) by any Authorised User of the same identity of the user that submits the details.\n\nThe status of the bulk process after execution of this operation is set to ‘SUBMITTED’. The execution of the bulk process is launched through the Execute bulk process operation.\n\nThe submission of data for a bulk process does not expire but it can be cancelled through [Cancel Bulk Process](#tag/Manage/operation/bulkIdCancel).\n\nThe system is configured to accept bulk requests to process up to a maximum of 10,000 bulk operations\n\nEach individual operation in this bulk will be processed via [Send a User Invite](#tag/Authorised-Users/operation/userInviteSend).\n",
        "parameters": [
          {
            "$ref": "#/components/parameters/idempotency-ref"
          }
        ],
        "responses": {
          "201": {
            "description": "Success - returning bulk process",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "bulkId": {
                      "type": "string"
                    },
                    "operationCount": {
                      "type": "integer"
                    },
                    "path": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "pathParams": {
                      "type": "object",
                      "properties": {
                        "_user_id_": {
                          "$ref": "#/components/schemas/UserId"
                        }
                      }
                    }
                  }
                },
                "maxItems": 10000,
                "minItems": 1
              }
            }
          }
        }
      }
    },
    "/bulks/managed_cards/_id_/block": {
      "post": {
        "tags": ["Operations"],
        "description": "Submit the details to block Managed Cards.\n\nThe bulkId returned in the response can subsequently be used to launch the execution of the bulk process through [Execute Bulk Process](#tag/Manage/operation/bulkIdExecute). A submitted bulk process can be managed (executed, accessed, paused, resumed and cancelled) by any Authorised User of the same identity of the user that submits the details.\n\nThe status of the bulk process after execution of this operation is set to ‘SUBMITTED’. The execution of the bulk process is launched through the Execute bulk process operation.\n\nThe submission of data for a bulk process does not expire but it can be cancelled through [Cancel Bulk Process](#tag/Manage/operation/bulkIdCancel).\n\nThe system is configured to accept bulk requests to process up to a maximum of 10,000 bulk operations.\n\nEach individual operation in this bulk will be processed via [Block a Managed Card](#tag/Managed-Cards/operation/managedCardBlock).\n",
        "summary": "Block cards in bulk",
        "operationId": "bulksManagedCardBlock",
        "x-permissions": ["i:managed_cards:block"],
        "parameters": [
          {
            "$ref": "#/components/parameters/idempotency-ref"
          }
        ],
        "responses": {
          "201": {
            "description": "Success - returning bulk process",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "bulkId": {
                      "type": "string"
                    },
                    "operationCount": {
                      "type": "integer"
                    },
                    "path": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "pathParams": {
                      "type": "object",
                      "properties": {
                        "_id_": {
                          "type": "string",
                          "pattern": "^[0-9]+$"
                        }
                      }
                    }
                  }
                },
                "maxItems": 10000,
                "minItems": 1
              }
            }
          }
        }
      }
    },
    "/bulks/managed_cards/_id_/unblock": {
      "post": {
        "tags": ["Operations"],
        "description": "Submit the details to unblock Managed Cards.\n\nThe bulkId returned in the response can subsequently be used to launch the execution of the bulk process through [Execute Bulk Process](#tag/Manage/operation/bulkIdExecute). A submitted bulk process can be managed (executed, accessed, paused, resumed and cancelled) by any Authorised User of the same identity of the user that submits the details.\n\nThe status of the bulk process after execution of this operation is set to ‘SUBMITTED’. The execution of the bulk process is launched through the Execute bulk process operation.\n\nThe submission of data for a bulk process does not expire but it can be cancelled through [Cancel Bulk Process](#tag/Manage/operation/bulkIdCancel).\n\nThe system is configured to accept bulk requests to process up to a maximum of 10,000 bulk operations.\n\nEach individual operation in this bulk will be processed via [Unblock a Managed Card](#tag/Managed-Cards/operation/managedCardUnblock).\n",
        "summary": "Unblock cards in bulk",
        "operationId": "bulksManagedCardUnblock",
        "x-permissions": ["i:managed_cards:unblock"],
        "parameters": [
          {
            "$ref": "#/components/parameters/idempotency-ref"
          }
        ],
        "responses": {
          "201": {
            "description": "Success - returning bulk process",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "bulkId": {
                      "type": "string"
                    },
                    "operationCount": {
                      "type": "integer"
                    },
                    "path": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "pathParams": {
                      "type": "object",
                      "properties": {
                        "_id_": {
                          "type": "string",
                          "pattern": "^[0-9]+$"
                        }
                      }
                    }
                  }
                },
                "maxItems": 10000,
                "minItems": 1
              }
            }
          }
        }
      }
    },
    "/bulks/managed_cards/_id_/remove": {
      "post": {
        "tags": ["Operations"],
        "description": "Submit the details to remove Managed Cards.\n\nThe bulkId returned in the response can subsequently be used to launch the execution of the bulk process through [Execute Bulk Process](#tag/Manage/operation/bulkIdExecute). A submitted bulk process can be managed (executed, accessed, paused, resumed and cancelled) by any Authorised User of the same identity of the user that submits the details.\n\nThe status of the bulk process after execution of this operation is set to ‘SUBMITTED’. The execution of the bulk process is launched through the Execute bulk process operation.\n\nThe submission of data for a bulk process does not expire but it can be cancelled through [Cancel Bulk Process](#tag/Manage/operation/bulkIdCancel).\n\nThe system is configured to accept bulk requests to process up to a maximum of 10,000 bulk operations.\n\nEach individual operation in this bulk will be processed via [Remove a Managed Card](#tag/Managed-Cards/operation/managedCardRemove).\n",
        "summary": "Remove cards in bulk",
        "operationId": "bulksManagedCardRemove",
        "x-permissions": ["i:managed_cards:remove"],
        "parameters": [],
        "responses": {
          "201": {
            "description": "Success - returning bulk process",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "bulkId": {
                      "type": "string"
                    },
                    "operationCount": {
                      "type": "integer"
                    },
                    "path": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "pathParams": {
                      "type": "object",
                      "properties": {
                        "_id_": {
                          "type": "string",
                          "pattern": "^[0-9]+$"
                        }
                      }
                    }
                  }
                },
                "maxItems": 10000,
                "minItems": 1
              }
            }
          }
        }
      }
    },
    "/bulks/managed_cards/_id_/spend_rules": {
      "patch": {
        "tags": ["Operations"],
        "summary": "Update spend rules for a managed card in bulk",
        "operationId": "bulksManagedCardSpendRulesUpdate",
        "x-permissions": ["i:managed_cards:update_spendrules"],
        "description": "Submit the details to update the spend rules of Managed Cards\n\nThe bulkId returned in the response can subsequently be used to launch the execution of the bulk process through [Execute Bulk Process](#tag/Manage/operation/bulkIdExecute). A submitted bulk process can be managed (executed, accessed, paused, resumed and cancelled) by any Authorised User of the same identity of the user that submits the details.\n\nThe status of the bulk process after execution of this operation is set to ‘SUBMITTED’. The execution of the bulk process is launched through the Execute bulk process operation.\n\nThe submission of data for a bulk process does not expire but it can be cancelled through [Cancel Bulk Process](#tag/Manage/operation/bulkIdCancel).\n\nThe system is configured to accept bulk requests to process up to a maximum of 10,000 bulk operations\n\nEach individual operation in this bulk will be processed via [Update Spend Rules for a Managed Card](#tag/Managed-Cards/operation/managedCardSpendRulesUpdate).\n",
        "parameters": [
          {
            "$ref": "#/components/parameters/idempotency-ref"
          }
        ],
        "responses": {
          "201": {
            "description": "Success - returning bulk process",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "bulkId": {
                      "type": "string"
                    },
                    "operationCount": {
                      "type": "integer"
                    },
                    "path": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "pathParams": {
                      "type": "object",
                      "properties": {
                        "_id_": {
                          "type": "string",
                          "pattern": "^[0-9]+$"
                        }
                      }
                    },
                    "requestBody": {
                      "$ref": "#/components/schemas/UpdateCardLevelSpendRules"
                    }
                  }
                },
                "maxItems": 10000,
                "minItems": 1
              }
            }
          }
        }
      }
    },
    "/bulks/transfers": {
      "post": {
        "tags": ["Operations"],
        "description": "Submit the details for the creation of a batch of Transfers.\n\nThe bulkId returned in the response can subsequently be used to launch the execution of the bulk process through [Execute Bulk Process](#tag/Manage/operation/bulkIdExecute). A submitted bulk process can be managed (executed, accessed, paused, resumed and cancelled) by any Authorised User of the same identity of the user that submits the details.\n\nThe status of the bulk process after execution of this operation is set to ‘SUBMITTED’. The execution of the bulk process is launched through the Execute bulk process operation.\n\nThe submission of data for a bulk process does not expire but it can be cancelled through [Cancel Bulk Process](#tag/Manage/operation/bulkIdCancel).\n\nThe system is configured to accept bulk requests to process up to a maximum of 10,000 bulk operations.\n\nEach individual operation in this bulk will be processed via [Create a Transfer Transaction](#tag/Transfers/operation/transferCreate).\n",
        "summary": "Create transfer transactions in bulk",
        "operationId": "bulksTransferCreate",
        "x-permissions": ["i:transfers:create"],
        "parameters": [
          {
            "$ref": "#/components/parameters/idempotency-ref"
          }
        ],
        "responses": {
          "201": {
            "description": "Success - returning bulk process",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "bulkId": {
                      "type": "string"
                    },
                    "operationCount": {
                      "type": "integer"
                    },
                    "path": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "pathParams": {
                      "type": "object",
                      "properties": {}
                    },
                    "requestBody": {
                      "required": [
                        "profileId",
                        "source",
                        "destination",
                        "destinationAmount"
                      ],
                      "type": "object",
                      "properties": {
                        "profileId": {
                          "$ref": "#/components/schemas/ProfileId"
                        },
                        "tag": {
                          "$ref": "#/components/schemas/Tag"
                        },
                        "source": {
                          "description": "The managed account or managed card from where the funds will be transferred.",
                          "$ref": "#/components/schemas/InstrumentId"
                        },
                        "description": {
                          "type": "string",
                          "maxLength": 255,
                          "pattern": "^[a-zA-Z0-9\\/\\-?:().$_,'+\\s#=!\"%&*<>;\\{@\\r\\n]*$",
                          "description": "The description details that are included in the transaction as reference."
                        },
                        "destination": {
                          "description": "The managed account or managed card to where the funds will be transferred.",
                          "$ref": "#/components/schemas/InstrumentId"
                        },
                        "destinationAmount": {
                          "description": "The amount, in same currency as the source and destination instruments, to be transferred to the destination (exclusive of any fee amount that may be specified in the profile).",
                          "$ref": "#/components/schemas/CurrencyAmount"
                        },
                        "scheduledTimestamp": {
                          "$ref": "#/components/schemas/ScheduledTimestamp"
                        }
                      }
                    }
                  }
                },
                "maxItems": 10000,
                "minItems": 1
              }
            }
          }
        }
      }
    },
    "/bulks/sends": {
      "post": {
        "tags": ["Operations"],
        "description": "Submit the details for the creation of a batch of Sends.\n\nThe bulkId returned in the response can subsequently be used to launch the execution of the bulk process through [Execute Bulk Process](#tag/Manage/operation/bulkIdExecute). A submitted bulk process can be managed (executed, accessed, paused, resumed and cancelled) by any Authorised User of the same identity of the user that submits the details.\n\nThe status of the bulk process after execution of this operation is set to ‘SUBMITTED’. The execution of the bulk process is launched through the Execute bulk process operation.\n\nThe submission of data for a bulk process does not expire but it can be cancelled through [Cancel Bulk Process](#tag/Manage/operation/bulkIdCancel).\n\nThe system is configured to accept bulk requests to process up to a maximum of 10,000 bulk operations.\n\nEach individual operation in this bulk will be processed via [Create a Send Transaction](#tag/Sends/operation/sendCreate).\n",
        "summary": "Create send transactions in bulk",
        "operationId": "bulksSendCreate",
        "x-permissions": ["i:sends:create"],
        "parameters": [
          {
            "$ref": "#/components/parameters/idempotency-ref"
          }
        ],
        "responses": {
          "201": {
            "description": "Success - returning bulk process",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "bulkId": {
                      "type": "string"
                    },
                    "operationCount": {
                      "type": "integer"
                    },
                    "path": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "pathParams": {
                      "type": "object",
                      "properties": {}
                    },
                    "requestBody": {
                      "$ref": "#/components/schemas/SendCreateRequest"
                    }
                  }
                },
                "maxItems": 10000,
                "minItems": 1
              }
            }
          }
        }
      }
    },
    "/bulks/outgoing_wire_transfers": {
      "post": {
        "tags": ["Operations"],
        "summary": "Create an outgoing wire transfer in bulk",
        "operationId": "bulksOutgoingWireTransferCreate",
        "x-permissions": ["i:owt:create"],
        "description": "Submit the details for the creation of a batch of Outgoing Wire Transfers.\n\nThe bulkId returned in the response can subsequently be used to launch the execution of the bulk process through [Execute Bulk Process](#tag/Manage/operation/bulkIdExecute). A submitted bulk process can be managed (executed, accessed, paused, resumed and cancelled) by any Authorised User of the same identity of the user that submits the details.\n\nThe status of the bulk process after execution of this operation is set to ‘SUBMITTED’. The execution of the bulk process is launched through the Execute bulk process operation.\n\nThe submission of data for a bulk process does not expire but it can be cancelled through [Cancel Bulk Process](#tag/Manage/operation/bulkIdCancel).\n\nThe system is configured to accept bulk requests to process up to a maximum of 10,000 bulk operations.\n\nEach individual operation in this bulk will be processed via [Create an Outgoing Wire Transaction](#tag/Outgoing-Wire-Transfers/operation/outgoingWireTransferCreate).\n",
        "parameters": [
          {
            "$ref": "#/components/parameters/idempotency-ref"
          }
        ],
        "responses": {
          "201": {
            "description": "Success - returning bulk process",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "bulkId": {
                      "type": "string"
                    },
                    "operationCount": {
                      "type": "integer"
                    },
                    "path": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "auth_token": [],
            "api-key": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "pathParams": {
                      "type": "object",
                      "properties": {}
                    },
                    "requestBody": {
                      "$ref": "#/components/schemas/OutgoingWireTransferCreateRequest"
                    }
                  }
                },
                "maxItems": 10000,
                "minItems": 1
              }
            }
          }
        }
      }
    }
  },
  "webhooks": {
    "/bank_transfers_in/authorisation_request": {
      "post": {
        "tags": ["Incoming Wire Transfers"],
        "summary": "Approve or reject incoming wire transfers",
        "description": "",
        "operationId": "bankTransferInForwarding",
        "parameters": [
          {
            "$ref": "#/components/parameters/request-ref"
          },
          {
            "$ref": "#/components/parameters/published-timestamp"
          },
          {
            "$ref": "#/components/parameters/signature"
          },
          {
            "$ref": "#/components/parameters/signature-v2"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "id",
                  "source",
                  "destination",
                  "amount",
                  "timestamp"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "pattern": "^[0-9]+$",
                    "description": "The unique identifier of the bank transfer"
                  },
                  "source": {
                    "type": "object",
                    "required": ["instrument"],
                    "properties": {
                      "instrument": {
                        "type": "object",
                        "required": ["type", "instrument"],
                        "properties": {
                          "type": {
                            "type": "string",
                            "enum": [
                              "linked_accounts",
                              "unknown_sender_accounts"
                            ]
                          },
                          "instrument": {
                            "oneOf": [
                              {
                                "$ref": "#/components/schemas/LinkedAccount"
                              },
                              {
                                "$ref": "#/components/schemas/UnknownSenderAccount"
                              }
                            ]
                          },
                          "reference": {
                            "type": "string",
                            "description": "This is an external reference (if available), input by the sender when creating the payment, and intended for the recipient."
                          }
                        }
                      }
                    }
                  },
                  "destination": {
                    "type": "object",
                    "required": ["instrument", "owner"],
                    "properties": {
                      "instrument": {
                        "type": "object",
                        "required": ["type", "instrument"],
                        "properties": {
                          "type": {
                            "type": "string",
                            "enum": ["managed_accounts"]
                          },
                          "instrument": {
                            "oneOf": [
                              {
                                "$ref": "#/components/schemas/ManagedAccount"
                              }
                            ]
                          }
                        }
                      },
                      "owner": {
                        "type": "object",
                        "required": ["type", "owner"],
                        "properties": {
                          "type": {
                            "type": "string",
                            "enum": ["consumers", "corporates"]
                          },
                          "owner": {
                            "oneOf": [
                              {
                                "$ref": "#/components/schemas/Corporate"
                              },
                              {
                                "$ref": "#/components/schemas/Consumer"
                              }
                            ]
                          }
                        }
                      }
                    }
                  },
                  "amount": {
                    "$ref": "#/components/schemas/CurrencyAmount"
                  },
                  "timestamp": {
                    "type": "integer",
                    "description": "The timestamp of the transaction, using epoch timestamp with millisecond precision.",
                    "format": "int64"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Authorisation event received with `APPROVED` or `DECLINED` decision.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "result": {
                      "type": "string",
                      "enum": ["APPROVED", "DENIED"]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "webhooks_key": []
          }
        ]
      }
    },
    "/managed_cards/authorisation_request": {
      "post": {
        "tags": ["Managed Cards"],
        "summary": "Authorisation Forwarding",
        "description": "Receive purchase authorisation events and choose if to approve or decline them by replying to the event.\n\nSwitch on Authorisation Forwarding in your Sandbox Innovator Portal and configure the Authorisation Forwarding URL to start receiving these events. Weavr will send webhook events on the following URL {Authorisation Forwarding URL}/managed_cards_authorisation_forwarding.\n\nA response is expected in 1.5s, after which the Default Timeout Response configured in the card profile or the card `authForwardingDefaultTimeoutDecision` parameter will be used.\n",
        "operationId": "managed_cards_authorisation_forwarding",
        "parameters": [
          {
            "$ref": "#/components/parameters/call-ref"
          },
          {
            "$ref": "#/components/parameters/published-timestamp"
          },
          {
            "$ref": "#/components/parameters/signature"
          },
          {
            "$ref": "#/components/parameters/signature-v2"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CardAuthorisationEvent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Authorisation event received with `APPROVED` or `DECLINED` decision.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "result": {
                      "type": "string",
                      "enum": ["APPROVED", "DENIED"]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "security": [
          {
            "webhooks_key": []
          }
        ]
      }
    }
  },
  "components": {
    "securitySchemes": {
      "api-key": {
        "type": "apiKey",
        "description": "An API key defined in your User API Client  (or Delegate API Client - this feature is available only to customers enabled with delegation functionality).  API Clients are as managed in the Embedder Portal",
        "name": "api-key",
        "in": "header"
      },
      "auth_token": {
        "type": "http",
        "description": "The authentication token representing the user. This will be included in the login response object.",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      },
      "webhooks_key": {
        "type": "apiKey",
        "description": "The Webhooks key can be found in the API Credentials tab in your Portal Page.",
        "name": "webhooks-key",
        "in": "header"
      }
    },
    "parameters": {
      "idempotency-ref": {
        "name": "idempotency-ref",
        "in": "header",
        "description": "A unique call reference generated by the caller that, taking into consideration the payload as well as the operation itself, helps avoid duplicate operations. Idempotency reference uniqueness is maintained for at least 24 hours.",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "channel": {
        "name": "channel",
        "in": "path",
        "required": true,
        "description": "The unique identifier for the channel.",
        "schema": {
          "$ref": "#/components/schemas/SCAOtpChannel"
        }
      },
      "scaPushChannel": {
        "name": "channel",
        "in": "path",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/SCAPushChannel"
        }
      },
      "userId": {
        "name": "user_id",
        "in": "path",
        "required": true,
        "description": "The unique identifier for the user.",
        "schema": {
          "$ref": "#/components/schemas/UserId"
        }
      },
      "authFactorsPushChannel": {
        "name": "channel",
        "in": "path",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/AuthSCAPushChannel"
        }
      },
      "offset": {
        "name": "offset",
        "in": "query",
        "required": false,
        "description": "The offset value for paging, indicating the initial item number to be returned from the data set satisfying the given criteria. Leave out to fetch the first page of results.",
        "schema": {
          "minimum": 0,
          "type": "integer",
          "format": "int32"
        }
      },
      "limit": {
        "name": "limit",
        "in": "query",
        "required": false,
        "description": "The limit of the results for paging, starting at the offset. Limit is always capped at 100.",
        "schema": {
          "maximum": 100,
          "minimum": 1,
          "type": "integer",
          "format": "int32"
        }
      },
      "active": {
        "name": "active",
        "in": "query",
        "required": false,
        "description": "Filter for active or deactivated users. Leave out to fetch all users.",
        "schema": {
          "type": "boolean"
        }
      },
      "email": {
        "name": "email",
        "in": "query",
        "required": false,
        "description": "Filter by the email address of the user.",
        "schema": {
          "$ref": "#/components/schemas/Email"
        }
      },
      "tag": {
        "name": "tag",
        "in": "query",
        "required": false,
        "description": "Filter by the managed account/card tag. The exact tag must be provided, as wildcards are not supported. Leave out to fetch all managed accounts/card.",
        "schema": {
          "type": "string"
        }
      },
      "bulkProcessStatus": {
        "name": "status",
        "in": "query",
        "required": false,
        "schema": {
          "$ref": "#/components/schemas/BulkProcessStatus"
        }
      },
      "bulkId": {
        "name": "bulk_id",
        "in": "path",
        "required": true,
        "description": "The bulk id of the bulk process.",
        "schema": {
          "$ref": "#/components/schemas/BulkId"
        }
      },
      "sequence": {
        "name": "sequence",
        "in": "query",
        "required": false,
        "schema": {
          "type": "integer",
          "format": "int64"
        }
      },
      "bulkProcessOperationStatus": {
        "name": "status",
        "in": "query",
        "required": false,
        "schema": {
          "$ref": "#/components/schemas/BulkProcessOperationStatus"
        }
      },
      "userIdExplode": {
        "name": "user_id",
        "in": "path",
        "required": true,
        "description": "The unique identifier for the user.",
        "style": "simple",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/UserId"
        }
      },
      "profileId": {
        "name": "profileId",
        "in": "query",
        "required": false,
        "description": "Filter by the managed account/card profile. Leave out to fetch all managed accounts/card.",
        "schema": {
          "$ref": "#/components/schemas/ProfileId"
        }
      },
      "friendlyName": {
        "name": "friendlyName",
        "in": "query",
        "required": false,
        "description": "Filter by the managed account/card friendly name. Leave out to fetch all managed accounts/card.\n\nThe exact name must be provided, as wildcards are not supported.\n",
        "schema": {
          "minLength": 1,
          "maxLength": 50,
          "type": "string"
        }
      },
      "state": {
        "name": "state",
        "in": "query",
        "required": false,
        "schema": {
          "type": "array",
          "uniqueItems": true,
          "items": {
            "$ref": "#/components/schemas/InstrumentState"
          }
        }
      },
      "currency": {
        "name": "currency",
        "in": "query",
        "required": false,
        "description": "Filter by the managed account/card currency.\n\nCurrencies are expressed as an ISO 4217 code. Leave out to fetch all managed accounts/card.\n",
        "schema": {
          "$ref": "#/components/schemas/Currency"
        }
      },
      "createdFrom": {
        "name": "createdFrom",
        "in": "query",
        "required": false,
        "description": "Filter for managed accounts/cards created after `createdFrom` timestamp. Timestamp is expressed in Epoch timestamp using millisecond precision. Leave out to fetch all managed accounts/cards.",
        "schema": {
          "type": "integer",
          "format": "int64"
        }
      },
      "createdTo": {
        "name": "createdTo",
        "in": "query",
        "required": false,
        "description": "Filter for managed accounts/cards created before `createdTo` timestamp. Timestamp is expressed in Epoch timestamp using millisecond precision. Leave out to fetch all managed accounts/cards.",
        "schema": {
          "type": "integer",
          "format": "int64"
        }
      },
      "verificationRunState": {
        "name": "state",
        "in": "query",
        "required": false,
        "schema": {
          "type": "array",
          "uniqueItems": true,
          "items": {
            "$ref": "#/components/schemas/LinkedAccountVerificationRunState"
          }
        }
      },
      "state_blockedReason": {
        "name": "state.blockedReason",
        "in": "query",
        "required": false,
        "schema": {
          "type": "array",
          "uniqueItems": true,
          "items": {
            "$ref": "#/components/schemas/BlockedReason"
          }
        }
      },
      "state_destroyedReason": {
        "name": "state.destroyedReason",
        "in": "query",
        "required": false,
        "schema": {
          "type": "array",
          "uniqueItems": true,
          "items": {
            "$ref": "#/components/schemas/DestroyedReason"
          }
        }
      },
      "accept": {
        "name": "accept",
        "in": "header",
        "description": "A request parameter specifying the type of response the client would like. Must be one of `application/json`, `application/pdf` or `text/csv`.\n\nThe default response type (`application/json`) will be returned if specified incorrectly or not specified.\n",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "statementLimit": {
        "name": "statementLimit",
        "in": "query",
        "required": false,
        "description": "The limit of the results for statements paging, starting at the offset. Limit is capped at 500.",
        "schema": {
          "maximum": 500,
          "minimum": 1,
          "type": "integer",
          "format": "int32"
        }
      },
      "orderByTimestamp": {
        "name": "orderByTimestamp",
        "in": "query",
        "required": false,
        "description": "Orders the result in ascending or descending order.\n  - ASC: Ascending order, oldest transactions first.\n  - DESC: Descending order, most recent transactions first.\n\nIf not specified, the transactions will be returned in descending order.\n",
        "schema": {
          "type": "string",
          "enum": ["ASC", "DESC"]
        }
      },
      "fromTimestamp": {
        "name": "fromTimestamp",
        "in": "query",
        "required": false,
        "description": "Filter for transactions having transaction timestamp after `fromTimestamp`. Timestamp is expressed in Epoch timestamp using millisecond precision. If omitted, all matching transactions up to the present will be included.",
        "schema": {
          "type": "integer",
          "format": "int64"
        }
      },
      "toTimestamp": {
        "name": "toTimestamp",
        "in": "query",
        "required": false,
        "description": "Filter for transactions having transaction timestamp before `toTimestamp`. Timestamp is expressed in Epoch timestamp using millisecond precision. If omitted, all matching transactions up to the present will be included. If both `fromTimestamp` and `toTimestamp` are provided, `toTimestamp` must be greater than `fromTimestamp`.",
        "schema": {
          "type": "integer",
          "format": "int64"
        }
      },
      "showFundMovementsOnly": {
        "name": "showFundMovementsOnly",
        "in": "query",
        "required": false,
        "description": "Deprecated. Use singleEntryPerTransaction instead.\n\nReturns only the entries which contain fund movements.\n",
        "schema": {
          "type": "boolean"
        }
      },
      "singleEntryPerTransaction": {
        "name": "singleEntryPerTransaction",
        "in": "query",
        "required": false,
        "description": "Returns transactions that span multiple movements as a single entry.\nOnly includes transactions that have been completed.\nDefaults to true for PDF statements, false otherwise.\nNote: due to the fact that only completed transactions are included, some\ntransactions that are in progress and have modified the balance of the instrument\nwill not be shown, which could lead to seemingly inconsistent balance being displayed.\n",
        "schema": {
          "type": "boolean"
        }
      },
      "transactionType": {
        "name": "transactionType",
        "in": "query",
        "required": false,
        "description": "Filter by the transaction type. Leave out to fetch all entries.",
        "schema": {
          "type": "array",
          "uniqueItems": true,
          "items": {
            "$ref": "#/components/schemas/TransactionType"
          }
        }
      },
      "card_type": {
        "name": "type",
        "in": "query",
        "required": false,
        "description": "Filter by the type of the card.",
        "schema": {
          "type": "string",
          "enum": ["VIRTUAL", "PHYSICAL"]
        }
      },
      "card_renewal_type": {
        "name": "renewalType",
        "in": "query",
        "required": false,
        "description": "Filter by the renewal type of the card.",
        "schema": {
          "type": "string",
          "enum": ["RENEW", "NO_RENEW"]
        }
      },
      "userIdQuery": {
        "name": "userId",
        "in": "query",
        "required": false,
        "description": "The unique identifier for the user.",
        "schema": {
          "$ref": "#/components/schemas/UserId"
        }
      },
      "transferProfileId": {
        "name": "profileId",
        "in": "query",
        "required": false,
        "description": "Filter by the transfer profile. Leave out to fetch all transfer transactions.",
        "schema": {
          "$ref": "#/components/schemas/ProfileId"
        }
      },
      "instrumentId": {
        "name": "instrumentId",
        "in": "query",
        "required": false,
        "description": "Filter by the source instrument id.",
        "schema": {
          "$ref": "#/components/schemas/InstrumentId"
        }
      },
      "transactionState": {
        "name": "state",
        "in": "query",
        "required": false,
        "description": "Filter by the transfer transaction state. Leave out to fetch all states.",
        "schema": {
          "type": "array",
          "uniqueItems": true,
          "items": {
            "$ref": "#/components/schemas/TransactionState"
          }
        }
      },
      "transferCreatedFrom": {
        "name": "createdFrom",
        "in": "query",
        "required": false,
        "description": "Filter for transfer transactions created after `createdFrom` timestamp. Timestamp is expressed in Epoch timestamp using millisecond precision. Leave out to fetch all transfers.",
        "schema": {
          "type": "integer",
          "format": "int64"
        }
      },
      "transferCreatedTo": {
        "name": "createdTo",
        "in": "query",
        "required": false,
        "description": "Filter for transfer transactions created before `createdTo` timestamp. Timestamp is expressed in Epoch timestamp using millisecond precision. Leave out to fetch all transfers.",
        "schema": {
          "type": "integer",
          "format": "int64"
        }
      },
      "transferExecutedFrom": {
        "name": "executedFrom",
        "in": "query",
        "required": false,
        "description": "Filter for transfer transactions executed after `executedFrom` timestamp. Timestamp is expressed in Epoch timestamp using millisecond precision. Leave out to fetch all transfers.",
        "schema": {
          "type": "integer",
          "format": "int64"
        }
      },
      "transferExecutedTo": {
        "name": "executedTo",
        "in": "query",
        "required": false,
        "description": "Filter for transfer transactions executed before `executedTo` timestamp. Timestamp is expressed in Epoch timestamp using millisecond precision. Leave out to fetch all transfers.",
        "schema": {
          "type": "integer",
          "format": "int64"
        }
      },
      "transferTag": {
        "name": "tag",
        "in": "query",
        "required": false,
        "description": "Filter by the transfer tag. The exact tag must be provided, as wildcards are not supported. Leave out to fetch all entries.",
        "schema": {
          "type": "string"
        }
      },
      "sendProfileId": {
        "name": "profileId",
        "in": "query",
        "required": false,
        "description": "Filter by the Send profile. Leave out to fetch all entries.",
        "schema": {
          "$ref": "#/components/schemas/ProfileId"
        }
      },
      "sourceId": {
        "name": "source.id",
        "in": "query",
        "required": false,
        "description": "Filter by the source instrument id. Must be specified when `source.type` is provided.",
        "schema": {
          "$ref": "#/components/schemas/Id"
        }
      },
      "sourceType": {
        "name": "source.type",
        "in": "query",
        "required": false,
        "description": "Filter by the source instrument type. Must be specified when `source.id` is provided.",
        "schema": {
          "$ref": "#/components/schemas/InstrumentType"
        }
      },
      "sendState": {
        "name": "state",
        "in": "query",
        "required": false,
        "description": "Filter by the Send transaction state. Leave out to fetch all states.",
        "schema": {
          "type": "array",
          "uniqueItems": true,
          "items": {
            "$ref": "#/components/schemas/SendState"
          }
        }
      },
      "sendCreatedFrom": {
        "name": "createdFrom",
        "in": "query",
        "required": false,
        "description": "Filter for send transactions created after `createdFrom` timestamp. Timestamp is expressed in Epoch timestamp using millisecond precision. Leave out to fetch all Send transactions.",
        "schema": {
          "type": "integer",
          "format": "int64"
        }
      },
      "sendCreatedTo": {
        "name": "createdTo",
        "in": "query",
        "required": false,
        "description": "Filter for send transactions created before `createdTo` timestamp. Timestamp is expressed in Epoch timestamp using millisecond precision. Leave out to fetch all Send transactions.",
        "schema": {
          "type": "integer",
          "format": "int64"
        }
      },
      "sendExecutedFrom": {
        "name": "executedFrom",
        "in": "query",
        "required": false,
        "description": "Filter for send transactions executed after `executedFrom` timestamp. Timestamp is expressed in Epoch timestamp using millisecond precision. Leave out to fetch all Send transactions.",
        "schema": {
          "type": "integer",
          "format": "int64"
        }
      },
      "sendExecutedTo": {
        "name": "executedTo",
        "in": "query",
        "required": false,
        "description": "Filter for send transactions executed before `executedTo` timestamp. Timestamp is expressed in Epoch timestamp using millisecond precision. Leave out to fetch all Send transactions.",
        "schema": {
          "type": "integer",
          "format": "int64"
        }
      },
      "sendTag": {
        "name": "tag",
        "in": "query",
        "required": false,
        "description": "Filter by the send tag. The exact tag must be provided, as wildcards are not supported. Leave out to fetch all entries.",
        "schema": {
          "type": "string"
        }
      },
      "owtInstrument": {
        "name": "instrument",
        "in": "query",
        "required": false,
        "description": "Filter by the source instrument id (which must be a managed account).",
        "schema": {
          "type": "object",
          "properties": {
            "type": {
              "$ref": "#/components/schemas/SourceInstrumentType"
            },
            "id": {
              "$ref": "#/components/schemas/Id"
            }
          }
        }
      },
      "sourceInstrument_id": {
        "name": "sourceInstrument.id",
        "in": "query",
        "required": false,
        "description": "Filter by the source instrument id. Must be specified when `source.type` is provided.",
        "schema": {
          "$ref": "#/components/schemas/Id"
        }
      },
      "sourceInstrument_type": {
        "name": "sourceInstrument.type",
        "in": "query",
        "required": false,
        "description": "Filter by the source instrument type. Must be specified when `source.id` is provided.",
        "schema": {
          "$ref": "#/components/schemas/SourceInstrumentType"
        }
      },
      "owtState": {
        "name": "state",
        "in": "query",
        "required": false,
        "description": "Filter by the outgoing wire transfer state. Leave out to fetch all states.",
        "schema": {
          "type": "array",
          "uniqueItems": true,
          "items": {
            "$ref": "#/components/schemas/OutgoingWireTransferState"
          }
        }
      },
      "identity_id": {
        "name": "identity.id",
        "in": "query",
        "required": false,
        "description": "Filter by the source instrument id. Must be specified when `source.type` is provided.",
        "schema": {
          "$ref": "#/components/schemas/Id"
        }
      },
      "identity_type": {
        "name": "identity.type",
        "in": "query",
        "required": false,
        "description": "Filter by the source instrument type. Must be specified when `source.id` is provided.",
        "schema": {
          "enum": ["CONSUMER", "CORPORATE"],
          "type": "string",
          "description": "Indicates the identity type."
        }
      },
      "request-ref": {
        "name": "request-ref",
        "in": "header",
        "description": "A unique call reference included in every call, that enables the receiver to avoid duplicate handling of a webhook request (e.g. webhook was resent).",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "published-timestamp": {
        "name": "published-timestamp",
        "in": "header",
        "description": "The timestamp, expressed in Epoch timestamp using millisecond precision, when this event was published.",
        "required": true,
        "style": "simple",
        "explode": false,
        "schema": {
          "type": "integer",
          "format": "int64"
        }
      },
      "signature": {
        "name": "signature",
        "in": "header",
        "description": "The signature to verify the authenticity of this request.  This is the base64 hash (HmacSHA256) of the `published-timestamp` using your API key.",
        "required": true,
        "style": "simple",
        "explode": false,
        "deprecated": true,
        "schema": {
          "type": "string"
        }
      },
      "signature-v2": {
        "name": "signature-v2",
        "in": "header",
        "description": "The signature to verify the authenticity of this request.  This is the base64 hash (HmacSHA256) of the `call-ref + payload + published-timestamp` using your API key.",
        "required": true,
        "style": "simple",
        "explode": false,
        "schema": {
          "type": "string"
        }
      },
      "call-ref": {
        "description": "A call reference generated by the caller and unique to the caller to provide correlation between the caller and system with a maximum length of 255",
        "in": "header",
        "name": "call-ref",
        "required": false,
        "schema": {
          "type": "string"
        }
      }
    },
    "schemas": {
      "BulkProcessesPaged": {
        "properties": {
          "count": {
            "description": "Total number of records (excluding limit)",
            "format": "int32",
            "type": "integer"
          },
          "bulkProcesses": {
            "items": {
              "$ref": "#/components/schemas/BulkProcess"
            },
            "type": "array"
          },
          "responseCount": {
            "description": "Total number of records returned in this response",
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "Email": {
        "type": "string",
        "description": "E-mail Address of the user",
        "format": "email"
      },
      "VerificationCode": {
        "type": "string",
        "description": "A randomly generated one-time use code used to verify the user's email address or mobile number.",
        "pattern": "^[0-9]{6}$"
      },
      "Error": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "message": {
            "type": "string"
          }
        }
      },
      "ManufacturingState": {
        "type": "string",
        "description": "Information on the manufacturing of the physical card, as follows:\n  - REQUESTED: The upgrade of the card to physical has been requested.\n  - SENT_FOR_FULFILLMENT - The card has been sent for printing.\n  - DISPATCHED: The card has been manufactured and dispatched. You may receive a second DISPATCHED event when the manufacturer provides a tracking code.\n  - DELIVERED: The card has been received and activated by the recipient.\n",
        "enum": ["REQUESTED", "SENT_FOR_FULFILLMENT", "DISPATCHED", "DELIVERED"]
      },
      "BeneficiaryBatchState": {
        "type": "string",
        "enum": [
          "INITIALISED",
          "FAILED",
          "PENDING_CHALLENGE",
          "CHALLENGE_FAILED",
          "CHALLENGE_COMPLETED",
          "COMPLETED"
        ]
      },
      "BeneficiaryBatchOperation": {
        "type": "string",
        "enum": ["CREATE", "REMOVE"]
      },
      "Mobile": {
        "required": ["number", "countryCode"],
        "type": "object",
        "properties": {
          "countryCode": {
            "maxLength": 4,
            "minLength": 1,
            "type": "string",
            "pattern": "^\\+[0-9]+$",
            "description": "The country code of the user mobile number (e.g. +44)."
          },
          "number": {
            "pattern": "^[0-9]{1,12}$",
            "type": "string",
            "description": "The mobile number of the user - excluding country code."
          }
        }
      },
      "Date": {
        "required": ["year", "month", "day"],
        "type": "object",
        "properties": {
          "year": {
            "type": "integer",
            "format": "int32",
            "maximum": 2100,
            "minimum": 1900
          },
          "month": {
            "type": "integer",
            "format": "int32",
            "maximum": 12,
            "minimum": 1
          },
          "day": {
            "type": "integer",
            "format": "int32",
            "maximum": 31,
            "minimum": 1
          }
        }
      },
      "Tag": {
        "type": "string",
        "description": "The tag field is a custom field that can be used to search and filter.",
        "maxLength": 50,
        "pattern": "^[a-zA-Z0-9_-]+$"
      },
      "UserLocale": {
        "type": "string",
        "pattern": "^[a-z]{2}(-[A-Z]{2})?$",
        "description": "BCP47 locale code (e.g. en, en-US). The locale determines which email and SMS user notification templates are used.\n",
        "maxLength": 5,
        "example": "en-GB"
      },
      "Brand": {
        "type": "string",
        "pattern": "^[a-zA-Z0-9]+$",
        "description": "Brand identifier used to determine the set of email and SMS user notification templates. Must be alphanumeric, up to 25 characters, and contain no spaces.\n",
        "maxLength": 25
      },
      "UserId": {
        "type": "string",
        "pattern": "^[0-9]+$"
      },
      "UpdateCardLevelSpendRules": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CardLevelSpendRules"
          },
          {
            "type": "object",
            "properties": {
              "updateSpendLimitMethod": {
                "$ref": "#/components/schemas/SpendLimitUpdateMethod"
              }
            }
          }
        ]
      },
      "ProfileId": {
        "type": "string",
        "description": "The profile Id which a specific identity, instrument or transaction type is linked to.\n\nProfiles contain configuration and determine behavioral aspects of the newly created transaction, for example, fees that may apply.\n\nYou can have one or more profiles linked to your application, and these can be used to drive different behaviors according to your product's needs.\n\nProfile Ids can be found in the Multi Portal, in the API Credentials page.\n",
        "pattern": "^[0-9]+$"
      },
      "InstrumentId": {
        "required": ["id", "type"],
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/Id"
          },
          "type": {
            "$ref": "#/components/schemas/InstrumentType"
          }
        }
      },
      "CurrencyAmount": {
        "required": ["currency", "amount"],
        "type": "object",
        "properties": {
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "amount": {
            "type": "integer",
            "format": "int64",
            "description": "The monetary amount, scaled to the lowest denomination of the currency.\n\nExample, an amount of 1000 for a EUR currency is actually 1000 Euro cents or EUR 10.00.\n"
          }
        },
        "description": "The object representing a monetary amount in a particular currency."
      },
      "ScheduledTimestamp": {
        "pattern": "^[0-9]+$",
        "type": "string",
        "description": "The epoch timestamp at which the transaction is scheduled to be executed."
      },
      "SendCreateRequest": {
        "required": ["profileId", "source", "destination", "destinationAmount"],
        "type": "object",
        "properties": {
          "profileId": {
            "$ref": "#/components/schemas/ProfileId"
          },
          "tag": {
            "$ref": "#/components/schemas/Tag"
          },
          "source": {
            "$ref": "#/components/schemas/InstrumentId"
          },
          "destination": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/InstrumentId"
              },
              {
                "$ref": "#/components/schemas/BeneficiaryId"
              }
            ]
          },
          "destinationAmount": {
            "$ref": "#/components/schemas/CurrencyAmount"
          },
          "description": {
            "type": "string",
            "maxLength": 255,
            "pattern": "^[a-zA-Z0-9\\/\\-?:().$_,'+\\s#=!\"%&*<>;\\{@\\r\\n]*$",
            "description": "The description details that are passed to the beneficiary."
          },
          "scheduledTimestamp": {
            "$ref": "#/components/schemas/ScheduledTimestamp"
          }
        }
      },
      "OutgoingWireTransferCreateRequest": {
        "required": [
          "destinationBeneficiary",
          "profileId",
          "sourceInstrument",
          "transferAmount"
        ],
        "type": "object",
        "properties": {
          "profileId": {
            "$ref": "#/components/schemas/ProfileId"
          },
          "tag": {
            "$ref": "#/components/schemas/Tag"
          },
          "sourceInstrument": {
            "description": "The managed account from which funds will be collected.",
            "required": ["type", "id"],
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": ["managed_accounts"]
              },
              "id": {
                "type": "string",
                "pattern": "^[0-9]+$"
              }
            }
          },
          "transferAmount": {
            "description": "The amount, in same currency as source and destination, that was transferred from the source.",
            "$ref": "#/components/schemas/CurrencyAmount"
          },
          "description": {
            "type": "string",
            "description": "These details are passed to the beneficiary as the `reference` . This field is mandatory for wire transfers executed over `SEPA`. The allowed length is dependent on the payment type:\n\n`SEPA` <= `35` characters. An extended character set is accepted to cater for all European languages. If `SEPA` does not support a particular character, it is automatically converted to an acceptable alternative, in line with `SEPA` scheme guidance.\n\n`Faster Payments` <= `18` characters\n"
          },
          "destinationBeneficiary": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/OutgoingWireTransferBeneficiary"
              },
              {
                "$ref": "#/components/schemas/BeneficiaryId"
              },
              {
                "$ref": "#/components/schemas/ExternalAccountId"
              }
            ]
          },
          "scheduledTimestamp": {
            "$ref": "#/components/schemas/ScheduledTimestamp"
          }
        }
      },
      "LinkedAccount": {
        "required": ["id", "profileId", "name", "country", "state"],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the linked account.",
            "pattern": "^[0-9]+$"
          },
          "profileId": {
            "$ref": "#/components/schemas/ProfileId"
          },
          "tag": {
            "$ref": "#/components/schemas/Tag"
          },
          "friendlyName": {
            "minLength": 1,
            "maxLength": 50,
            "type": "string",
            "description": "A user-friendly label assigned to the Linked Account to help end-users easily identify it within the application. This name can be updated at any time using the `PATCH` endpoint"
          },
          "name": {
            "minLength": 1,
            "maxLength": 100,
            "type": "string",
            "description": "The full name or corporate name of the account holder as registered with the external bank or payment service provider. This is the name under which the account is officially held.\n"
          },
          "type": {
            "$ref": "#/components/schemas/AccountType"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "country": {
            "description": "The country of the bank or institution at which the account is held.",
            "type": "string",
            "maxLength": 2,
            "minLength": 2,
            "pattern": "^[A-Z]+$"
          },
          "accountReference": {
            "description": "The IBAN or Account Number and Sort Code of the account held at the external bank or payment service provider.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/AccountNumberAndSortCode"
              },
              {
                "$ref": "#/components/schemas/Iban"
              },
              {
                "$ref": "#/components/schemas/AccountDescriptor"
              }
            ]
          },
          "state": {
            "$ref": "#/components/schemas/LinkedAccountState"
          },
          "creationTimestamp": {
            "description": "The timestamp when the linked account was created, expressed in Epoch timestamp using millisecond precision.",
            "type": "integer",
            "format": "int64"
          },
          "owner": {
            "$ref": "#/components/schemas/StringWrappedTypeId"
          }
        }
      },
      "UnknownSenderAccount": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "accountReference": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/Iban"
              },
              {
                "$ref": "#/components/schemas/AccountNumberAndSortCode"
              },
              {
                "$ref": "#/components/schemas/AccountDescriptor"
              }
            ]
          }
        }
      },
      "ManagedAccount": {
        "required": [
          "id",
          "profileId",
          "friendlyName",
          "currency",
          "balances",
          "creationTimestamp",
          "state"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^[0-9]+$",
            "description": "The unique identifier of a Managed Account."
          },
          "profileId": {
            "$ref": "#/components/schemas/ProfileId"
          },
          "tag": {
            "$ref": "#/components/schemas/Tag"
          },
          "friendlyName": {
            "minLength": 1,
            "maxLength": 50,
            "type": "string",
            "description": "The friendly name given to the managed account."
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "balances": {
            "$ref": "#/components/schemas/ManagedInstrumentBalance"
          },
          "state": {
            "$ref": "#/components/schemas/ManagedInstrumentState"
          },
          "creationTimestamp": {
            "type": "integer",
            "format": "int64",
            "description": "The time when the managed account was created, expressed in Epoch timestamp using millisecond precision."
          }
        }
      },
      "Corporate": {
        "required": [
          "id",
          "profileId",
          "rootUser",
          "company",
          "ipAddress",
          "baseCurrency",
          "creationTimestamp"
        ],
        "type": "object",
        "properties": {
          "id": {
            "description": "The unique identifier of the Corporate Identity.",
            "$ref": "#/components/schemas/IdentityId"
          },
          "profileId": {
            "$ref": "#/components/schemas/ProfileId"
          },
          "tag": {
            "$ref": "#/components/schemas/Tag"
          },
          "rootUser": {
            "description": "The root user of the Corporate Identity.",
            "$ref": "#/components/schemas/CorporateRootUser"
          },
          "company": {
            "required": ["name", "type", "countryOfRegistration"],
            "type": "object",
            "properties": {
              "name": {
                "maxLength": 100,
                "type": "string",
                "description": "The registered name of the company."
              },
              "type": {
                "$ref": "#/components/schemas/CompanyType"
              },
              "registrationNumber": {
                "maxLength": 20,
                "minLength": 1,
                "type": "string",
                "description": "The company registration number."
              },
              "registeredAddress": {
                "$ref": "#/components/schemas/LegalAddress"
              },
              "businessAddress": {
                "description": "The address where the business is based.",
                "$ref": "#/components/schemas/Address"
              },
              "countryOfRegistration": {
                "maxLength": 2,
                "minLength": 2,
                "pattern": "^[A-Z]+$",
                "type": "string",
                "description": "The country of company registration in ISO 3166 alpha-2."
              },
              "incorporatedOn": {
                "description": "The company's date of incorporation",
                "$ref": "#/components/schemas/Date"
              }
            }
          },
          "industry": {
            "$ref": "#/components/schemas/Industry"
          },
          "sourceOfFunds": {
            "$ref": "#/components/schemas/CorporateSourceOfFunds"
          },
          "sourceOfFundsOther": {
            "type": "string",
            "description": "Description of source of funds in case `OTHER` was chosen.",
            "deprecated": true
          },
          "acceptedTerms": {
            "type": "boolean",
            "description": "Must be set to *true* to indicate that the root user has accepted the terms and conditions."
          },
          "ipAddress": {
            "maxLength": 45,
            "minLength": 5,
            "type": "string",
            "description": "The IP address of the user doing the registration."
          },
          "baseCurrency": {
            "$ref": "#/components/schemas/Currency"
          },
          "feeGroup": {
            "type": "string",
            "description": "Fee groups allow the possibility to charge different fees to users under the same profile. If fee groups are not required, ignore this field."
          },
          "creationTimestamp": {
            "type": "integer",
            "format": "int64",
            "description": "The time when the Corporate was created, expressed in Epoch timestamp using millisecond precision."
          },
          "retailQualifier": {
            "type": "string",
            "description": "Indicates the type of corporate entity based on its retail status.",
            "enum": ["RETAIL", "NON_RETAIL", "UNKNOWN"]
          }
        }
      },
      "Consumer": {
        "required": [
          "id",
          "profileId",
          "rootUser",
          "ipAddress",
          "creationTimestamp"
        ],
        "type": "object",
        "properties": {
          "id": {
            "description": "The unique identifier of the Consumer Identity.",
            "$ref": "#/components/schemas/IdentityId"
          },
          "profileId": {
            "$ref": "#/components/schemas/ProfileId"
          },
          "tag": {
            "$ref": "#/components/schemas/Tag"
          },
          "rootUser": {
            "description": "The root user of the Consumer Identity.",
            "$ref": "#/components/schemas/ConsumerRootUser"
          },
          "creationTimestamp": {
            "type": "integer",
            "format": "int64",
            "description": "The time when this consumer was created, expressed in Epoch timestamp using millisecond precision."
          },
          "ipAddress": {
            "maxLength": 45,
            "minLength": 5,
            "type": "string",
            "description": "The IP address of the consumer user doing the registration."
          },
          "acceptedTerms": {
            "type": "boolean",
            "description": "Must be set to *true* to indicate that the consumer root user has accepted the terms and conditions."
          },
          "baseCurrency": {
            "$ref": "#/components/schemas/Currency"
          },
          "feeGroup": {
            "type": "string",
            "description": "The fee group which the consumer is bound to."
          },
          "sourceOfFunds": {
            "$ref": "#/components/schemas/ConsumerSourceOfFunds"
          },
          "sourceOfFundsOther": {
            "type": "string",
            "description": "Description of source of funds in case `OTHER` was chosen.",
            "deprecated": true
          }
        }
      },
      "CardAuthorisationEvent": {
        "required": [
          "cardId",
          "authorisationType",
          "merchantData",
          "owner",
          "sourceAmount",
          "transactionAmount",
          "totalTransactionCost",
          "transactionId",
          "transactionTimestamp"
        ],
        "type": "object",
        "properties": {
          "cardId": {
            "type": "string",
            "pattern": "^[0-9]+$",
            "description": "The unique identifier of the card on which an authorisation is being performed"
          },
          "transactionId": {
            "type": "string",
            "pattern": "^[0-9]+$",
            "description": "The id of this transaction, for reference."
          },
          "authorisationType": {
            "$ref": "#/components/schemas/CardAuthorisationDetailsAuthorisationType",
            "description": "The type of authorisation (Debit or Credit)"
          },
          "sourceAmount": {
            "description": "The amount in the currency of the merchant.",
            "$ref": "#/components/schemas/CurrencyAmount"
          },
          "transactionAmount": {
            "$ref": "#/components/schemas/CurrencyAmount",
            "description": "The amount in the currency of the card."
          },
          "totalTransactionCost": {
            "$ref": "#/components/schemas/CurrencyAmount",
            "description": "The total amount to be deducted in the currency of the card. This is the summation of the transaction amount, forex padding and forex fees."
          },
          "transactionTimestamp": {
            "type": "integer",
            "description": "The timestamp of the transaction, using epoch timestamp with millisecond precision.",
            "format": "int64"
          },
          "merchantData": {
            "$ref": "#/components/schemas/MerchantData",
            "description": "Merchant related information"
          },
          "owner": {
            "$ref": "#/components/schemas/IdentityId",
            "description": "The owner of the card"
          },
          "cardholderPresent": {
            "$ref": "#/components/schemas/CardHolderPresent",
            "description": "Optional detail indicating if the card holder was present when the authorisation occurred."
          },
          "cardPresent": {
            "type": "boolean",
            "description": "Optional detail indicating if the card was present when the authorisation occurred."
          },
          "authCode": {
            "maxLength": 6,
            "minLength": 1,
            "type": "string",
            "description": "The authorisation code associated with this authorisation."
          },
          "forexPadding": {
            "description": "The forex padding amount, if any, that has been included in the transactionAmount.  Forex padding is extra amount blocked to cater for currency fluctuation.",
            "$ref": "#/components/schemas/CurrencyAmount"
          },
          "forexFee": {
            "description": "The forex fee, if set, that is included in the transactionAmount.",
            "$ref": "#/components/schemas/CurrencyAmount"
          },
          "mode": {
            "type": "string",
            "description": "The card can be created in prepaid mode or debit mode.\n\n- A prepaid mode card has its own balance and can have funds transferred to or from it.\n- A debit mode card does not have its own balance but will be able to spend funds belonging to its parent managed account, subject to a configurable spend limit.\n"
          }
        },
        "discriminator": {
          "propertyName": "mode",
          "mapping": {
            "PREPAID_MODE": "#/components/schemas/PrepaidModeCardAuthorisationEvent",
            "DEBIT_MODE": "#/components/schemas/DebitModeCardAuthorisationEvent"
          }
        }
      },
      "SensitivePassword": {
        "type": "object",
        "description": "The user's password or passcode used to log in a user.\nPasswords must be:\n  - between 8 and 30 characters\n  - include a lowercase character\n  - include an uppercase character\n  - include a digit and a special character\n  - different from any of the 5 last such passwords used.\n\nFor non-PCI compliant integrations, the password submitted must be **tokenised**.\n",
        "required": ["value"],
        "properties": {
          "value": {
            "maxLength": 100,
            "type": "string",
            "format": "password"
          }
        }
      },
      "IdentityId": {
        "required": ["type", "id"],
        "type": "object",
        "properties": {
          "type": {
            "enum": ["CONSUMER", "CORPORATE"],
            "type": "string",
            "description": "Indicates the identity type."
          },
          "id": {
            "type": "string",
            "pattern": "^[0-9]+$",
            "description": "The identifier for the identity."
          }
        }
      },
      "Nonce": {
        "type": "string",
        "description": "A randomly generated one-time use code.",
        "pattern": "^[0-9]{6}$"
      },
      "MultipleSCAResourceType": {
        "type": "string",
        "description": "The operation type upon which an SCA Challenge is being contested.\n",
        "enum": [
          "outgoing_wire_transfers",
          "sends",
          "linked_account_declaration"
        ]
      },
      "BulkProcessExecute": {
        "type": "object",
        "properties": {
          "mode": {
            "$ref": "#/components/schemas/BulkProcessMode"
          },
          "webhookInterval": {
            "description": "The count of operations after which a Bulk Process Progress will be sent. For example, if set to 10, a webhook will be sent after every 10th operation is attempted. The minimum value fo count is 25% of all operations. If a value below this is entered, a webhook will only be sent for each 25% of operations attempted (i.e. 4 webhooks per Bulk Process).",
            "format": "int32",
            "type": "integer"
          }
        }
      },
      "CompanyPosition": {
        "type": "string",
        "description": "The company position of the Corporate Root User.",
        "enum": ["DIRECTOR", "AUTHORISED_REPRESENTATIVE"]
      },
      "CompanyType": {
        "type": "string",
        "description": "Supported company types - if company type is not listed, please contact our support team to check if the company type can be supported.",
        "enum": [
          "SOLE_TRADER",
          "LLC",
          "PUBLIC_LIMITED_COMPANY",
          "LIMITED_LIABILITY_PARTNERSHIP",
          "NON_PROFIT_ORGANISATION"
        ]
      },
      "Address": {
        "required": ["addressLine1", "city", "postCode", "country"],
        "type": "object",
        "properties": {
          "addressLine1": {
            "minLength": 1,
            "maxLength": 150,
            "type": "string",
            "description": "The first line of the address."
          },
          "addressLine2": {
            "maxLength": 150,
            "type": "string",
            "description": "The second line of the address."
          },
          "city": {
            "maxLength": 50,
            "type": "string",
            "description": "The city of the address."
          },
          "postCode": {
            "maxLength": 10,
            "pattern": "^[A-Za-z0-9 -]*$",
            "type": "string",
            "description": "The post code associated with the address."
          },
          "state": {
            "maxLength": 50,
            "type": "string",
            "description": "The state of the address."
          },
          "country": {
            "maxLength": 2,
            "minLength": 2,
            "pattern": "^[A-Z]+$",
            "type": "string",
            "description": "The country of the address expressed in ISO 3166 alpha-2 format."
          }
        }
      },
      "Industry": {
        "type": "string",
        "description": "The industry of the identity.",
        "deprecated": true,
        "enum": [
          "ACCOUNTING",
          "AUDIT",
          "FINANCE",
          "PUBLIC_SECTOR_ADMINISTRATION",
          "ART_ENTERTAINMENT",
          "AUTO_AVIATION",
          "BANKING_LENDING",
          "BUSINESS_CONSULTANCY_LEGAL",
          "CONSTRUCTION_REPAIR",
          "EDUCATION_PROFESSIONAL_SERVICES",
          "INFORMATIONAL_TECHNOLOGIES",
          "TOBACCO_ALCOHOL",
          "GAMING_GAMBLING",
          "MEDICAL_SERVICES",
          "MANUFACTURING",
          "PR_MARKETING",
          "PRECIOUS_GOODS_JEWELRY",
          "NON_GOVERNMENTAL_ORGANIZATION",
          "INSURANCE_SECURITY",
          "RETAIL_WHOLESALE",
          "TRAVEL_TOURISM",
          "FREELANCER"
        ]
      },
      "CorporateSourceOfFunds": {
        "type": "string",
        "description": "The corporate's source of funds.",
        "deprecated": true,
        "enum": [
          "LABOUR_CONTRACT",
          "CIVIL_CONTRACT",
          "RENT",
          "FUNDS_FROM_OTHER_AUXILIARY_SOURCES",
          "SALE_OF_MOVABLE_ASSETS",
          "SALE_OF_REAL_ESTATE",
          "ORDINARY_BUSINESS_ACTIVITY",
          "DIVIDENDS",
          "LOAN_FROM_FINANCIAL_INSTITUTIONS_CREDIT_UNIONS",
          "LOAN_FROM_THIRD_PARTIES",
          "SALE_OF_COMPANY_SHARES_BUSINESS",
          "OTHER",
          "DONATION",
          "INHERITANCE",
          "ORIGIN_OF_FUNDS_UNKNOWN"
        ]
      },
      "Currency": {
        "type": "string",
        "description": "The currency expressed in ISO-4217 code. Example: GBP, EUR, USD.",
        "maxLength": 3,
        "minLength": 3,
        "pattern": "^[A-Z]*$"
      },
      "Fee": {
        "required": ["feeType", "source"],
        "type": "object",
        "properties": {
          "feeType": {
            "type": "string",
            "description": "The fee type as defined in the Multi Portal."
          },
          "source": {
            "description": "The instrument from where the fee should be deducted.",
            "$ref": "#/components/schemas/InstrumentId"
          }
        }
      },
      "Occupation": {
        "type": "string",
        "description": "The industry of the identity.",
        "deprecated": true,
        "enum": [
          "ACCOUNTING",
          "AUDIT",
          "FINANCE",
          "PUBLIC_SECTOR_ADMINISTRATION",
          "ART_ENTERTAINMENT",
          "AUTO_AVIATION",
          "BANKING_LENDING",
          "BUSINESS_CONSULTANCY_LEGAL",
          "CONSTRUCTION_REPAIR",
          "EDUCATION_PROFESSIONAL_SERVICES",
          "INFORMATIONAL_TECHNOLOGIES",
          "TOBACCO_ALCOHOL",
          "GAMING_GAMBLING",
          "MEDICAL_SERVICES",
          "MANUFACTURING",
          "PR_MARKETING",
          "PRECIOUS_GOODS_JEWELRY",
          "NON_GOVERNMENTAL_ORGANIZATION",
          "INSURANCE_SECURITY",
          "RETAIL_WHOLESALE",
          "TRAVEL_TOURISM",
          "FREELANCER",
          "STUDENT",
          "UNEMPLOYED",
          "RETIRED",
          "OTHER"
        ]
      },
      "AddressWithCountryRequired": {
        "required": ["country"],
        "type": "object",
        "description": "The address, with none of the separate fields being set as required.",
        "properties": {
          "addressLine1": {
            "type": "string",
            "description": "The first line of the address."
          },
          "addressLine2": {
            "type": "string",
            "description": "The second line of the address."
          },
          "city": {
            "type": "string",
            "description": "The city of the address."
          },
          "postCode": {
            "maxLength": 10,
            "pattern": "^[A-Za-z0-9 -]*$",
            "type": "string",
            "description": "The post code associated with the address."
          },
          "state": {
            "maxLength": 50,
            "type": "string",
            "description": "The state of the address."
          },
          "country": {
            "maxLength": 2,
            "minLength": 2,
            "pattern": "^[A-Z]+$",
            "type": "string",
            "description": "The country of the address expressed in ISO 3166 alpha-2 format."
          }
        }
      },
      "Nationality": {
        "maxLength": 2,
        "minLength": 2,
        "pattern": "^[A-Z]+$",
        "type": "string",
        "description": "Nationality of the user - using ISO 3166 alpha-2."
      },
      "ConsumerSourceOfFunds": {
        "deprecated": true,
        "type": "string",
        "description": "The consumer's source of funds.",
        "enum": [
          "PERSONAL_SAVINGS",
          "FAMILY_SAVINGS",
          "LABOUR_CONTRACT",
          "CIVIL_CONTRACT",
          "RENT",
          "FUNDS_FROM_OTHER_AUXILIARY_SOURCES",
          "SALE_OF_MOVABLE_ASSETS",
          "SALE_OF_REAL_ESTATE",
          "ORDINARY_BUSINESS_ACTIVITY",
          "DIVIDENDS",
          "LOAN_FROM_FINANCIAL_INSTITUTIONS_CREDIT_UNIONS",
          "LOAN_FROM_THIRD_PARTIES",
          "INHERITANCE",
          "SALE_OF_COMPANY_SHARES_BUSINESS",
          "OTHER"
        ]
      },
      "KycLevel": {
        "deprecated": true,
        "type": "string",
        "description": "The KYC level, which determines what KYC information will be requested from the consumer:\n  - KYC_LEVEL_1: The most basic level of KYC required. \n  - KYC_LEVEL_2: Full due diligence level 2\n",
        "enum": ["KYC_LEVEL_1", "KYC_LEVEL_2"]
      },
      "CreateLinkedAccountRequest": {
        "required": ["name", "accountReference", "country", "type"],
        "type": "object",
        "properties": {
          "profileId": {
            "$ref": "#/components/schemas/LinkedAccountProfileId"
          },
          "tag": {
            "$ref": "#/components/schemas/Tag"
          },
          "name": {
            "description": "The full name or corporate name of the account holder as registered with the external bank or payment service provider. This is the name under which the account is officially held.\n",
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          },
          "type": {
            "$ref": "#/components/schemas/AccountType"
          },
          "accountReference": {
            "description": "The IBAN, or Account Number and Sort Code, or Account Descriptor of the account held at the external bank or payment service provider.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Iban"
              },
              {
                "$ref": "#/components/schemas/AccountNumberAndSortCode"
              },
              {
                "$ref": "#/components/schemas/AccountDescriptor"
              }
            ]
          },
          "country": {
            "description": "The country of the bank or institution at which the account is held.",
            "type": "string",
            "maxLength": 2,
            "minLength": 2,
            "pattern": "^[A-Z]+$"
          },
          "friendlyName": {
            "description": "A user-friendly label assigned to the Linked Account to help end-users easily identify it within the application. This name can be updated at any time using the `PATCH` endpoint.",
            "type": "string",
            "maxLength": 50
          },
          "currency": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/Currency"
              }
            ]
          }
        }
      },
      "ManagedCardRequest": {
        "required": [
          "profileId",
          "friendlyName",
          "nameOnCard",
          "billingAddress",
          "mode"
        ],
        "type": "object",
        "properties": {
          "profileId": {
            "$ref": "#/components/schemas/ProfileId"
          },
          "tag": {
            "$ref": "#/components/schemas/Tag"
          },
          "friendlyName": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "description": "The friendly name for the card."
          },
          "nameOnCard": {
            "maxLength": 27,
            "minLength": 1,
            "pattern": "^[a-zA-Z0-9ßÀÁÂÃÄÅǍÆÇÈÉÊËÌÍÎÏÒÓÔÕÖØŠÙÚÛÜŸÝĄĆČĎĘĹĽŁŃŇÑŐŔŚȘȚŤŰŹŻŽàáâãäåǎæçèéêëìíîïòóôõöøšùúûüÿýąćčďęĺľłńňñőŕśșțťűźżž\\-^. '-]*$",
            "type": "string",
            "description": "The card holder's name for the card.\n\nThis may be verified by merchants when the card is used online. For Physical cards, this field will be printed on the card.\nThe maximum characters allowed will depend on the design chosen and will be provided to you by Weavr when setting up your plastic cards.\n"
          },
          "nameOnCardLine2": {
            "maxLength": 27,
            "pattern": "^[a-zA-Z0-9ßÀÁÂÃÄÅǍÆÇÈÉÊËÌÍÎÏÒÓÔÕÖØŠÙÚÛÜŸÝĄĆČĎĘĹĽŁŃŇÑŐŔŚȘȚŤŰŹŻŽàáâãäåǎæçèéêëìíîïòóôõöøšùúûüÿýąćčďęĺľłńňñőŕśșțťűźżž\\-^. '-]*$",
            "type": "string",
            "description": "Line 2 of the 'name on card' field. For Physical cards, this field will be printed on the card. The maximum characters allowed will depend on the design chosen and will be provided to you by Weavr when setting up your plastic cards."
          },
          "cardholderMobileNumber": {
            "description": "The mobile number including country code of the card holder.\n\nFor transactions that require a 3DS challenge, an SMS with a code will be sent on this number, to be entered during an online purchase.\n",
            "maxLength": 15,
            "minLength": 5,
            "pattern": "^\\+[0-9]+$",
            "type": "string",
            "deprecated": true
          },
          "billingAddress": {
            "description": "The billing address set for the card holder. This may be verified by merchants when the card is used online.",
            "$ref": "#/components/schemas/BillingAddress"
          },
          "digitalWallets": {
            "description": "The Card Tokenisation details",
            "$ref": "#/components/schemas/DigitalWallets"
          },
          "authForwardingDefaultTimeoutDecision": {
            "type": "string",
            "description": "Default decision for auth forwarding on timeout",
            "enum": ["APPROVE", "DECLINE"]
          },
          "threeDSecureAuthConfig": {
            "description": "3DS details for card creation",
            "$ref": "#/components/schemas/ThreeDSecureAuthConfig"
          },
          "mode": {
            "type": "string",
            "description": "The card can be created in prepaid mode or debit mode.\n\n- A prepaid mode card has its own balance and can have funds transferred to or from it.\n- A debit mode card does not have its own balance but will be able to spend funds belonging to its parent managed account, subject to a configurable spend limit.\n"
          },
          "externalData": {
            "$ref": "#/components/schemas/ExternalData"
          },
          "renewalType": {
            "$ref": "#/components/schemas/CardRenewalType"
          },
          "userId": {
            "$ref": "#/components/schemas/UserId",
            "description": "The Authorised User to be linked to the card, whose authentication details will be used for actions such as 3DS authentication, or manual provisioning to a digital wallet. This field can be used instead of threeDSecureAuthConfig as it better describes the wider scope of possible uses."
          }
        },
        "discriminator": {
          "propertyName": "mode",
          "mapping": {
            "PREPAID_MODE": "#/components/schemas/PrepaidModeCardRequest",
            "DEBIT_MODE": "#/components/schemas/DebitModeCardRequest"
          }
        }
      },
      "BillingAddress": {
        "required": ["addressLine1", "city", "postCode", "country"],
        "type": "object",
        "properties": {
          "addressLine1": {
            "minLength": 1,
            "maxLength": 150,
            "type": "string",
            "description": "The first line of the address."
          },
          "addressLine2": {
            "maxLength": 150,
            "type": "string",
            "description": "The second line of the address."
          },
          "city": {
            "maxLength": 50,
            "type": "string",
            "description": "The city of the address."
          },
          "postCode": {
            "maxLength": 10,
            "pattern": "^[A-Za-z0-9 -]*$",
            "type": "string",
            "description": "The post code associated with the address."
          },
          "state": {
            "maxLength": 50,
            "type": "string",
            "description": "The state of the address."
          },
          "country": {
            "maxLength": 2,
            "minLength": 2,
            "pattern": "^[A-Z]+$",
            "type": "string",
            "description": "The country of the address expressed in ISO 3166 alpha-2 format."
          }
        }
      },
      "DeliveryAddress": {
        "required": [
          "name",
          "surname",
          "addressLine1",
          "city",
          "postCode",
          "country"
        ],
        "type": "object",
        "description": "The delivery address where the physical card is delivered.",
        "properties": {
          "name": {
            "maxLength": 100,
            "type": "string"
          },
          "surname": {
            "maxLength": 100,
            "type": "string"
          },
          "addressLine1": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string"
          },
          "addressLine2": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string"
          },
          "city": {
            "maxLength": 50,
            "type": "string"
          },
          "postCode": {
            "maxLength": 10,
            "pattern": "^[A-Za-z0-9 -]*$",
            "type": "string"
          },
          "state": {
            "maxLength": 50,
            "type": "string"
          },
          "country": {
            "maxLength": 2,
            "minLength": 2,
            "pattern": "^[A-Z]+$",
            "type": "string",
            "description": "Country of the identity in ISO 3166 alpha-2 format."
          },
          "contactNumber": {
            "$ref": "#/components/schemas/PhoneNumber",
            "description": "Mandatory when bulk delivery is selected. Will be printed on the box/packet to assist delivery."
          }
        }
      },
      "DeliveryMethod": {
        "type": "string",
        "description": "The delivery methods supported for delivering printed physical cards. If not specified, the STANDARD_DELIVERY method will be used.\n",
        "enum": [
          "STANDARD_DELIVERY",
          "REGISTERED_MAIL",
          "COURIER",
          "FIRST_CLASS_MAIL"
        ]
      },
      "DigitalWallets": {
        "type": "object",
        "properties": {
          "pushProvisioningEnabled": {
            "type": "boolean",
            "description": "Indicates whether the card is enabled for push provisioning in a digital wallet."
          },
          "walletsEnabled": {
            "type": "boolean",
            "description": "Indicates whether the card is enabled for tokenisation in a digital wallet."
          },
          "artworkReference": {
            "type": "string",
            "description": "The artwork reference that will be used if the card is enabled for tokenisation in a digital wallet."
          }
        }
      },
      "ThreeDSecureAuthConfig": {
        "deprecated": true,
        "type": "object",
        "required": ["linkedUserId", "primaryChannel"],
        "properties": {
          "linkedUserId": {
            "type": "string",
            "description": "The Authorised user whose authentication / billing details will be reflected on the card for verification purposes such as 3ds.",
            "pattern": "^[0-9]+$",
            "deprecated": true
          },
          "primaryChannel": {
            "type": "string",
            "description": "Primary Authentication Method",
            "enum": ["OTP_SMS", "BIOMETRICS", "TWILIO_AUTHY"]
          },
          "fallbackChannel": {
            "type": "string",
            "description": "Fallback Authentication Method",
            "enum": ["OTP_SMS"]
          }
        }
      },
      "ExternalData": {
        "description": "External data fields, as provided and managed by the caller that are to be stored and associated with a Managed Card instance. This information is not processed or used by Weavr but some of the values could be shown in specific reports and used as filters",
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 100
            },
            "value": {
              "type": "string",
              "minLength": 1,
              "maxLength": 100
            }
          }
        },
        "uniqueItems": true,
        "maxItems": 10
      },
      "BulkCardDelivery": {
        "type": "boolean",
        "description": "Bulk delivery is available for deliveryMethods REGISTERED_MAIL or COURIER.\nAll cards marked as bulk and ordered within the fulfilment centre’s dispatch window will be sent in bulk. Delivery address must be identical for all orders. contactNumber in the deliveryAddress object is mandatory when bulk is selected. Maximum number of cards delivered in a single box/packet is REGISTERED_MAIL = 90, COURIER = 200.\n"
      },
      "PhysicalCardActivationCode": {
        "pattern": "^[0-9]{1,6}$",
        "type": "string"
      },
      "CardRenewalType": {
        "description": "Indicates how the card will be handled once it is close to expiring.\n  - RENEW: The card will be automatically renewed, keeping the same card number but with a new expiry date and CVV.\n  - NO_RENEW: Once the expiry date is reached, the card is destroyed.\n",
        "enum": ["RENEW", "NO_RENEW"],
        "type": "string"
      },
      "CardLevelSpendRules": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseCardLevelSpendRules"
          },
          {
            "type": "object",
            "properties": {
              "minTransactionAmount": {
                "type": "integer",
                "minimum": 0,
                "format": "int64",
                "description": "The minimum transaction amount, in card currency, that is allowed. If the transaction amount is less than this value, then the transaction will be declined."
              },
              "maxTransactionAmount": {
                "type": "integer",
                "minimum": 0,
                "format": "int64",
                "description": "The maximum transaction amount, in card currency, that is allowed. If the transaction amount is greater than this value, then the transaction will be declined."
              }
            }
          }
        ]
      },
      "SensitivePin": {
        "type": "object",
        "description": "The PIN used for in-person transactions done with physical cards.\n\nUnless you are PCI-DSS compliant and have opted to switch off Weavr's security model, the card's PIN will be tokenised.\n\nTo show the PIN to your user, you need to embed the Display Card PIN UI Component in your application. This accepts the tokenised PIN and shows the plain text PIN to the user on screen.\n",
        "required": ["value"],
        "properties": {
          "value": {
            "minLength": 4,
            "maxLength": 24,
            "type": "string"
          }
        }
      },
      "TransactionBulkCancelRequest": {
        "required": ["cancellations"],
        "type": "object",
        "properties": {
          "cancellations": {
            "type": "array",
            "description": "Contains the details of the transactions to be cancelled.",
            "items": {
              "$ref": "#/components/schemas/TransactionCancelRequest"
            }
          }
        }
      },
      "SendBulkCreateRequest": {
        "required": ["sends"],
        "type": "object",
        "properties": {
          "sends": {
            "type": "array",
            "description": "The object representing the sends' details.",
            "items": {
              "$ref": "#/components/schemas/SendCreateRequest"
            }
          }
        }
      },
      "OutgoingWireTransferBulkCreateRequest": {
        "required": ["outgoingWireTransfers"],
        "type": "object",
        "properties": {
          "outgoingWireTransfers": {
            "type": "array",
            "description": "The object representing the outgoing wire transfers' details.",
            "items": {
              "$ref": "#/components/schemas/OutgoingWireTransferCreateRequest"
            }
          }
        }
      },
      "TransactionSingleCancelRequest": {
        "type": "object",
        "properties": {
          "cancellationReason": {
            "$ref": "#/components/schemas/TransactionCancellationReason"
          }
        }
      },
      "BasicBeneficiary": {
        "required": [
          "trustLevel",
          "beneficiaryInformation",
          "beneficiaryDetails"
        ],
        "type": "object",
        "properties": {
          "trustLevel": {
            "description": "The value that determines whether a Beneficiary is trusted or not.",
            "$ref": "#/components/schemas/BeneficiaryTrustLevel"
          },
          "externalRefs": {
            "description": "The id of the entity as it is represented on the caller system.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "group": {
            "description": "A custom field that can be used to categorise a beneficiary for easier searching and filtering.",
            "type": "string",
            "maxLength": 150
          },
          "beneficiaryInformation": {
            "description": "The object representing the beneficiary details.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/BusinessBeneficiaryType"
              },
              {
                "$ref": "#/components/schemas/ConsumerBeneficiaryType"
              }
            ]
          },
          "beneficiaryDetails": {
            "description": "The object representing the beneficiary instrument details.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/InstrumentDetailsBeneficiary"
              },
              {
                "$ref": "#/components/schemas/BankAccountDetailsBeneficiary"
              }
            ]
          }
        }
      },
      "TokenType": {
        "type": "string",
        "description": "The auth token received can only be used to access the following endpoints:\n  - `/identities`\n  - `/access_token`\n",
        "enum": ["NO_TYPE", "AUTH", "ACCESS"]
      },
      "CredentialId": {
        "required": ["type", "id"],
        "type": "object",
        "properties": {
          "type": {
            "maxLength": 50,
            "pattern": "^[a-zA-Z0-9_-]+$",
            "type": "string",
            "enum": ["ROOT", "USER", "API_CLIENT"],
            "description": "The type of user."
          },
          "id": {
            "type": "string",
            "pattern": "^[0-9]+$",
            "description": "The identifier of the user."
          }
        }
      },
      "SyntaxError": {
        "type": "object",
        "description": "Is returned as part of an HTTP error response whenever a syntax error is detected. A list of the fields together with their syntax error will be provided.",
        "properties": {
          "invalidFields": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "params": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "fieldName": {
                  "type": "string"
                },
                "error": {
                  "type": "string",
                  "enum": [
                    "REQUIRED",
                    "HAS_TEXT",
                    "REQUIRES",
                    "SIZE",
                    "RANGE",
                    "IN",
                    "NOT_IN",
                    "REGEX",
                    "EXACTLY",
                    "AT_LEAST",
                    "AT_MOST",
                    "ALL_OR_NONE"
                  ]
                }
              }
            }
          }
        }
      },
      "TokenError": {
        "description": "The used token is expired or not found",
        "type": "object",
        "properties": {
          "errorCode": {
            "type": "string",
            "enum": ["TOKEN_EXPIRED", "TOKEN_NOT_FOUND"]
          }
        }
      },
      "UserIdentitiesGetResponseSchema": {
        "required": ["identities", "count", "responseCount"],
        "type": "object",
        "properties": {
          "identities": {
            "type": "array",
            "description": "The list of identities available to user.",
            "items": {
              "$ref": "#/components/schemas/UserIdentity"
            }
          },
          "count": {
            "type": "integer",
            "description": "The total number of records (excluding the paging limit).",
            "format": "int32"
          },
          "responseCount": {
            "type": "integer",
            "description": "The total number of records returned in this response (always capped at 100).",
            "format": "int32"
          }
        }
      },
      "PasswordInfo": {
        "required": ["identityId"],
        "type": "object",
        "description": "Additional information related to the user's password.",
        "properties": {
          "identityId": {
            "description": "The identity to which the user's password information belongs to.",
            "$ref": "#/components/schemas/IdentityId"
          },
          "expiryDate": {
            "minimum": 0,
            "type": "integer",
            "format": "int64",
            "description": "The millisecond timestamp indicating when the password will expire. If 0, then this password will not expire."
          }
        }
      },
      "TokenResponse": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "description": "An authorisation token to be used in the Authorization header for secured operations."
          }
        }
      },
      "SCAFactor": {
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/SCAChallengeType"
          },
          "status": {
            "$ref": "#/components/schemas/SCAFactorStatus"
          },
          "channel": {
            "$ref": "#/components/schemas/SCAChannel"
          }
        }
      },
      "Id": {
        "type": "string",
        "pattern": "^[0-9]+$"
      },
      "User": {
        "required": ["id", "email", "name", "surname", "identity", "active"],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^[0-9]+$",
            "description": "The unique identifier of the user."
          },
          "identity": {
            "description": "The identity that the user belongs to.",
            "$ref": "#/components/schemas/IdentityId"
          },
          "name": {
            "maxLength": 100,
            "type": "string",
            "description": "The first name of the user."
          },
          "surname": {
            "maxLength": 100,
            "type": "string",
            "description": "The last name of the user."
          },
          "email": {
            "$ref": "#/components/schemas/Email"
          },
          "mobile": {
            "$ref": "#/components/schemas/Mobile"
          },
          "active": {
            "type": "boolean",
            "description": "The state of the user. If the `active` attribute is false, then the user will not be able to log in."
          },
          "dateOfBirth": {
            "description": "Date of birth of the authorised user.",
            "$ref": "#/components/schemas/Date"
          },
          "tag": {
            "$ref": "#/components/schemas/Tag"
          },
          "countryOfResidence": {
            "type": "string",
            "maxLength": 2,
            "minLength": 2,
            "pattern": "^[A-Z]+$"
          },
          "locale": {
            "$ref": "#/components/schemas/UserLocale"
          },
          "brand": {
            "$ref": "#/components/schemas/Brand"
          }
        }
      },
      "BulkProcessConflict": {
        "properties": {
          "errorCode": {
            "$ref": "#/components/schemas/BulkProcessConflictErrorCode"
          }
        },
        "type": "object"
      },
      "BulkProcessDetails": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BulkProcess"
          },
          {
            "type": "object",
            "properties": {
              "operationStatusCounts": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/BulkProcessOperationStatusCounts"
                }
              }
            }
          }
        ]
      },
      "BulkProcessOperationsPaged": {
        "properties": {
          "count": {
            "description": "Total number of records (excluding limit)",
            "format": "int32",
            "type": "integer"
          },
          "operations": {
            "items": {
              "$ref": "#/components/schemas/BulkProcessOperation"
            },
            "type": "array"
          },
          "responseCount": {
            "description": "Total number of records returned in this response",
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "CreatedCorporate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Corporate"
          },
          {
            "type": "object",
            "required": ["rootUser"],
            "properties": {
              "rootUser": {
                "description": "The root user of the Corporate Identity.",
                "$ref": "#/components/schemas/CreatedCorporateRootUser"
              }
            }
          }
        ]
      },
      "KyiStatus": {
        "type": "string",
        "enum": [
          "NOT_STARTED",
          "INITIATED",
          "PENDING_REVIEW",
          "APPROVED",
          "REJECTED"
        ]
      },
      "ChargeFee": {
        "required": [
          "transactionId",
          "profileId",
          "feeType",
          "source",
          "destination",
          "availableBalanceAdjustment",
          "state",
          "creationTimestamp"
        ],
        "type": "object",
        "properties": {
          "transactionId": {
            "$ref": "#/components/schemas/TransactionId",
            "description": "The unique identifier of the transaction."
          },
          "profileId": {
            "type": "string",
            "description": "The profile Id which a specific identity, instrument or transaction type is linked to."
          },
          "feeType": {
            "type": "string",
            "description": "The fee type as defined in the Multi Portal, and as sent in the request."
          },
          "source": {
            "$ref": "#/components/schemas/InstrumentId"
          },
          "availableBalanceAdjustment": {
            "$ref": "#/components/schemas/CurrencyAmount",
            "description": "The object representing a monetary amount in a particular currency."
          },
          "state": {
            "$ref": "#/components/schemas/TransactionState",
            "description": "The transaction entry state."
          },
          "creationTimestamp": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "LinkedAccountVerificationRun": {
        "type": "object",
        "required": ["state"],
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the linked account verification"
          },
          "state": {
            "description": "The state of the linked account verification",
            "$ref": "#/components/schemas/LinkedAccountVerificationRunState"
          },
          "completedTimestamp": {
            "type": "integer",
            "format": "int64",
            "description": "The timestamp when the verification was completed, expressed in Epoch timestamp using millisecond precision."
          },
          "verificationSteps": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "step": {
                  "$ref": "#/components/schemas/LinkedAccountVerificationStep"
                },
                "details": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/LinkedAccountVerificationTransferInstruction"
                    },
                    {
                      "$ref": "#/components/schemas/LinkedAccountMicroDepositVerification"
                    }
                  ]
                },
                "status": {
                  "$ref": "#/components/schemas/LinkedAccountVerificationStepStatus"
                },
                "completedTimestamp": {
                  "type": "integer",
                  "format": "int64",
                  "description": "The timestamp when the card will be renewed, expressed in Epoch timestamp using millisecond precision."
                }
              }
            }
          },
          "overriddenReason": {
            "type": "string",
            "description": "Optional field for users to provide a reason for overriding the verification steps"
          }
        }
      },
      "ManagedAccountIBAN": {
        "required": ["state", "bankAccountDetails"],
        "type": "object",
        "properties": {
          "state": {
            "type": "string",
            "description": "The state of the Managed Account's IBAN as follows:\n  - UNALLOCATED: The Managed Account has never been assigned an IBAN. Use the _managedAccountsIBANUpgrade_ operation to assign an IBAN to a Managed Account.\n  - PENDING_ALLOCATION: The IBAN is being allocated to the Managed Account.\n  - ALLOCATED: An IBAN is allocated to the Managed Account.\n",
            "enum": ["UNALLOCATED", "PENDING_ALLOCATION", "ALLOCATED"]
          },
          "bankAccountDetails": {
            "description": "A list of bank account details associated with the IBAN.\nMultiple details can be provided if multiple IBAN providers are supported by your payment model.",
            "type": "array",
            "items": {
              "required": [
                "beneficiaryNameAndSurname",
                "beneficiaryBank",
                "beneficiaryBankAddress",
                "type",
                "details"
              ],
              "type": "object",
              "properties": {
                "beneficiaryNameAndSurname": {
                  "type": "string",
                  "description": "The beneficiary name and surname details to be used when initiating a deposit onto the IBAN."
                },
                "beneficiaryBank": {
                  "type": "string",
                  "description": "The beneficiary bank name to be used when initiating a deposit onto the IBAN."
                },
                "beneficiaryBankAddress": {
                  "type": "string",
                  "description": "The beneficiary bank address to be used when initiating a deposit onto the IBAN."
                },
                "paymentReference": {
                  "type": "string",
                  "description": "A reference required by the partner bank to execute a deposit on the managed account.\n\n\nIf provided, make sure that this is included as part of the wire transfer details when initiating a deposit.\n"
                },
                "details": {
                  "description": "The bank details required to initiate a deposit on the managed account.\n\nThe details required to deposit on the IBAN vary depending on the wire transfer channel that will be used.\n",
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/IBANDetails"
                    },
                    {
                      "$ref": "#/components/schemas/FasterPaymentsBankDetailsOrBACSBankDetails"
                    },
                    {
                      "$ref": "#/components/schemas/SwiftBankDetails"
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "Statement": {
        "type": "object",
        "description": "The list of statement entries.",
        "properties": {
          "entry": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StatementEntry"
            }
          },
          "count": {
            "type": "integer",
            "description": "The total number of records (excluding the paging limit).",
            "format": "int32"
          },
          "responseCount": {
            "type": "integer",
            "description": "The total number of records returned in this response.",
            "format": "int32"
          },
          "startBalance": {
            "description": "The start balance amount in the instrument's currency. Empty for debit cards.",
            "$ref": "#/components/schemas/CurrencyAmount"
          },
          "endBalance": {
            "description": "The end balance amount in the instrument's currency. Empty for debit cards.",
            "$ref": "#/components/schemas/CurrencyAmount"
          },
          "footer": {
            "description": "The footer description for the current statement",
            "type": "string"
          }
        }
      },
      "StatementEntry": {
        "required": [
          "transactionAmount",
          "entryState",
          "transactionId",
          "processedTimestamp"
        ],
        "type": "object",
        "properties": {
          "transactionId": {
            "description": "The unique identifier of the transaction.",
            "$ref": "#/components/schemas/TransactionId"
          },
          "entryState": {
            "$ref": "#/components/schemas/StatementEntryState"
          },
          "originalAmount": {
            "description": "The transaction amount as originally requested. The original amount currency may be different from the currency of the instrument.\n\nIn case of purchases, this will indicate the original currency and amount that the merchant requested.\n",
            "$ref": "#/components/schemas/CurrencyAmount"
          },
          "forexRate": {
            "description": "If the `originalAmount` is in a different currency from the instrument's currency, the forex rate used will be provided.",
            "$ref": "#/components/schemas/ScaledAmount"
          },
          "transactionAmount": {
            "description": "The transaction amount in the instrument's currency.",
            "$ref": "#/components/schemas/CurrencyAmount"
          },
          "availableBalanceAdjustment": {
            "description": "The amount of funds credited or debited on the available balance of the instrument.",
            "$ref": "#/components/schemas/CurrencyAmount"
          },
          "actualBalanceAdjustment": {
            "description": "The amount of funds credited or debited on the actual balance of the instrument.",
            "$ref": "#/components/schemas/CurrencyAmount"
          },
          "balanceAfter": {
            "description": "The balance of the instrument after the transaction was executed.",
            "$ref": "#/components/schemas/CurrencyAmount"
          },
          "availableBalanceAfter": {
            "description": "The available balance of the instrument after the transaction was executed.",
            "$ref": "#/components/schemas/CurrencyAmount"
          },
          "actualBalanceAfter": {
            "description": "The actual balance of the instrument after the transaction was executed.",
            "$ref": "#/components/schemas/CurrencyAmount"
          },
          "transactionFee": {
            "description": "The fee amount that was captured for you (Multi account owner). You can set fees to be taken during transactions in the Multi Portal.",
            "$ref": "#/components/schemas/CurrencyAmount"
          },
          "cardholderFee": {
            "description": "The fee amount that was captured for you (Multi account owner). You can set fees to be taken during transactions in the Multi Portal. This field is deprecated - use `transactionFee` instead.",
            "$ref": "#/components/schemas/CurrencyAmount"
          },
          "processedTimestamp": {
            "type": "integer",
            "format": "int64",
            "description": "The timestamp when the transaction was processed by the system, expressed in Epoch timestamp using millisecond precision."
          },
          "sourceAmount": {
            "description": "The source amount of the transaction, if the transaction involves forex.",
            "$ref": "#/components/schemas/CurrencyAmount"
          },
          "userCurrencyTransactionDetails": {
            "description": "The object representing the user transaction's details",
            "$ref": "#/components/schemas/UserCurrencyTransactionDetails"
          },
          "additionalFields": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A Map of additional fields. Possible values include fee information. The possible entries are `merchantName`, `merchantCategoryCode`, `merchantTerminalCountry`, `sourceInstrumentType`, `sourceInstrumentId`, `destinationInstrumentType`, `destinationInstrumentId`, `forexPaddingCurrency`, `forexPaddingAmount`, `note`, `sourceInstrumentFriendlyName`, `destinationInstrumentFriendlyName`, `sourceIdentityType`, `sourceIdentityId`, `sourceIdentityName`, `destinationIdentityType`, `destinationIdentityId`, `destinationIdentityName`, `exchangeRate`, `authorisationState`, `authorisationRelatedId`, `settlementRelatedId`, `chargeFeeType`, `relatedTransactionId`, `relatedTransactionIdType`, `beneficiaryName`, `beneficiaryAccount`, `beneficiaryBankCode`, `merchantId`, `merchantTransactionType`, `systemTransactionType`, `authorisationCode`, `relatedCardId`, `sender`, `forexFeeCurrency`, `forexFeeAmount`, `senderIban`, `senderReference`, `mandateId`, `merchantReference`, `description`, `declineReason`, `spendRuleFailedReason` and `authorisationCategory`."
          }
        }
      },
      "ManagedCard": {
        "required": [
          "externalHandle",
          "cardBrand",
          "cardLevelClassification",
          "creationTimestamp",
          "currency",
          "expiryPeriodMonths",
          "friendlyName",
          "id",
          "nameOnCard",
          "profileId",
          "renewalType",
          "type",
          "mode",
          "state",
          "cardNumber",
          "cvv",
          "cardNumberFirstSix",
          "cardNumberLastFour",
          "startMmyy",
          "expiryMmyy",
          "billingAddress",
          "digitalWallets"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^[0-9]+$",
            "description": "The unique identifier of the card."
          },
          "profileId": {
            "$ref": "#/components/schemas/ProfileId"
          },
          "externalHandle": {
            "type": "string",
            "description": "A uniquely generated code used to identify a card.\n\nThis code is to be used instead of the sensitive card number in order to refer to a card when opening a support ticket.\n"
          },
          "tag": {
            "$ref": "#/components/schemas/Tag"
          },
          "friendlyName": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "description": "The friendly name given to the card."
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "state": {
            "$ref": "#/components/schemas/ManagedInstrumentState"
          },
          "type": {
            "type": "string",
            "description": "The type of card:\n  - VIRTUAL: Not a printed or embedded card. The card can be used online or added to digital wallets.\n  - PHYSICAL: A physical card that can be printed and shipped to your customers or embedded in a Wearable device. It can be used at physical terminals.\n",
            "enum": ["VIRTUAL", "PHYSICAL"]
          },
          "cardBrand": {
            "type": "string",
            "description": "The card scheme, or brand of the card.",
            "enum": ["MASTERCARD", "VISA"]
          },
          "cardNumber": {
            "$ref": "#/components/schemas/SensitiveCardNumber"
          },
          "cvv": {
            "$ref": "#/components/schemas/SensitiveCvv"
          },
          "cardNumberFirstSix": {
            "pattern": "^[0-9]{6}$",
            "type": "string",
            "description": "The first six digits of the card number."
          },
          "cardNumberLastFour": {
            "pattern": "^[0-9]{4}$",
            "type": "string",
            "description": "The last four digits of the card number."
          },
          "nameOnCard": {
            "maxLength": 27,
            "pattern": "^[a-zA-Z0-9ßÀÁÂÃÄÅǍÆÇÈÉÊËÌÍÎÏÒÓÔÕÖØŠÙÚÛÜŸÝĄĆČĎĘĹĽŁŃŇÑŐŔŚȘȚŤŰŹŻŽàáâãäåǎæçèéêëìíîïòóôõöøšùúûüÿýąćčďęĺľłńňñőŕśșțťűźżž\\-^. '-]*$",
            "type": "string",
            "description": "The card holder’s name for the card. This may be verified by merchants when the card is used online. For Physical cards, this field will be printed on the card. The maximum characters allowed will depend on the design chosen and will be provided to you by Weavr when setting up your plastic cards."
          },
          "nameOnCardLine2": {
            "maxLength": 27,
            "pattern": "^[a-zA-Z0-9ßÀÁÂÃÄÅǍÆÇÈÉÊËÌÍÎÏÒÓÔÕÖØŠÙÚÛÜŸÝĄĆČĎĘĹĽŁŃŇÑŐŔŚȘȚŤŰŹŻŽàáâãäåǎæçèéêëìíîïòóôõöøšùúûüÿýąćčďęĺľłńňñőŕśșțťűźżž\\-^. '-]*$",
            "type": "string",
            "description": "Line 2 of the 'name on card' field. For Physical cards, this field will be printed on the card. The maximum characters allowed will depend on the design chosen and will be provided to you by Weavr when setting up your plastic cards."
          },
          "startMmyy": {
            "maxLength": 4,
            "minLength": 4,
            "pattern": "^[0-9]*$",
            "type": "string",
            "description": "The start date of this card, in MMYY format."
          },
          "expiryMmyy": {
            "maxLength": 4,
            "minLength": 4,
            "type": "string",
            "description": "The end date of this card, in MMYY format."
          },
          "cardLevelClassification": {
            "type": "string",
            "enum": ["CONSUMER", "CORPORATE"],
            "description": "The card classification determines whether the card is from Consumer or Corporate BINs."
          },
          "expiryPeriodMonths": {
            "maximum": 120,
            "minimum": 1,
            "type": "integer",
            "format": "int32",
            "description": "The validity timeframe of the card, in months."
          },
          "renewalType": {
            "$ref": "#/components/schemas/CardRenewalType"
          },
          "renewalTimestamp": {
            "type": "integer",
            "format": "int64",
            "description": "The timestamp when the card will be renewed, expressed in Epoch timestamp using millisecond precision."
          },
          "creationTimestamp": {
            "type": "integer",
            "format": "int64",
            "description": "The timestamp when the card was created, expressed in Epoch timestamp using millisecond precision."
          },
          "cardholderMobileNumber": {
            "description": "The mobile number including country code of the card holder, needed for 3DS challenge.",
            "maxLength": 15,
            "minLength": 5,
            "pattern": "^\\+[0-9]+$",
            "type": "string",
            "deprecated": true
          },
          "billingAddress": {
            "description": "The billing address set for the cardholder. This can be checked by the merchant during online purchases.",
            "$ref": "#/components/schemas/BillingAddress"
          },
          "physicalCardDetails": {
            "$ref": "#/components/schemas/PhysicalCardDetails"
          },
          "digitalWallets": {
            "$ref": "#/components/schemas/DigitalWallets"
          },
          "authForwardingDefaultTimeoutDecision": {
            "type": "string",
            "description": "Default decision for auth forwarding on timeout",
            "enum": ["APPROVE", "DECLINE"]
          },
          "threeDSecureAuthConfig": {
            "$ref": "#/components/schemas/ThreeDSecureAuthConfig"
          },
          "mode": {
            "type": "string",
            "description": "The mode with which this card was created:\n\n- A prepaid mode card has its own balance and can have funds transferred to or from it.\n- A debit mode card does not have its own balance but will be able to spend funds belonging to its parent managed account, subject to a configurable spend limit.\n"
          },
          "externalData": {
            "$ref": "#/components/schemas/ExternalData"
          },
          "userId": {
            "$ref": "#/components/schemas/UserId",
            "description": "The Authorised User to be linked to the card, whose authentication details will be used for actions such as 3DS authentication, or manual provisioning to a digital wallet. This field can be used instead of threeDSecureAuthConfig as it better describes the wider scope of possible uses."
          },
          "replacement": {
            "$ref": "#/components/schemas/ManagedCardReplacement"
          }
        },
        "discriminator": {
          "propertyName": "mode",
          "mapping": {
            "PREPAID_MODE": "#/components/schemas/PrepaidModeCard",
            "DEBIT_MODE": "#/components/schemas/DebitModeCard"
          }
        }
      },
      "AllLevelSpendRules": {
        "type": "object",
        "properties": {
          "allowedMerchantCategories": {
            "deprecated": true,
            "type": "array",
            "maxItems": 200,
            "items": {
              "type": "string"
            },
            "description": "Whitelist MCC: A list of allowed merchant category codes (MCCs). If the MCC does not match, then the transaction will be declined. If an MCC is also in the blocked list, the blocked list will take precedence. This field is deprecated - use \"cardLevelSpendRules\".\"allowedMerchantCategories\" instead."
          },
          "blockedMerchantCategories": {
            "deprecated": true,
            "type": "array",
            "maxItems": 200,
            "items": {
              "type": "string"
            },
            "description": "Blacklist MCC: A list of disallowed merchant category codes (MCCs). If the MCC matches, then the transaction will be declined. If an MCC is also in the allowed list, the blocked list will take precedence. This field is deprecated - use \"cardLevelSpendRules\".\"blockedMerchantCategories\" instead."
          },
          "allowedMerchantIds": {
            "deprecated": true,
            "type": "array",
            "maxItems": 200,
            "items": {
              "type": "string"
            },
            "description": "Whitelist Merchant Id: A list of allowed merchant IDs. If the Merchant Id does not match, then the transaction will be declined. If a Merchant Id is also provided in the blocked list, the blocked list will take precedence. This field is deprecated - use \"cardLevelSpendRules\".\"allowedMerchantIds\" instead."
          },
          "blockedMerchantIds": {
            "deprecated": true,
            "type": "array",
            "maxItems": 200,
            "items": {
              "type": "string"
            },
            "description": "Blacklist Merchant Id: A list of disallowed merchant IDs. If the Merchant Id matches, then the transaction will be declined. If a Merchant Id is also in the allowed list, the blocked list will take precedence. This field is deprecated - use \"cardLevelSpendRules\".\"blockedMerchantIds\" instead."
          },
          "allowedMerchantCountries": {
            "deprecated": true,
            "type": "array",
            "maxItems": 50,
            "items": {
              "maxLength": 2,
              "minLength": 2,
              "pattern": "^[A-Z]{2}$",
              "type": "string"
            },
            "description": "Whitelist Merchant Country: A list of allowed merchant countries, in ISO 3166-1 alpha-2 format. If the Merchant country does not match, then the transaction will be declined. If a Merchant Country is also provided in the blocked list, the blocked list will take precedence. This field is deprecated - use \"cardLevelSpendRules\".\"allowedMerchantCountries\" instead."
          },
          "blockedMerchantCountries": {
            "deprecated": true,
            "type": "array",
            "maxItems": 50,
            "items": {
              "maxLength": 2,
              "minLength": 2,
              "pattern": "^[A-Z]{2}$",
              "type": "string"
            },
            "description": "Blacklist Merchant Country: A list of disallowed merchant countries, in ISO 3166-1 alpha-2 format. If the Merchant country matches, then the transaction will be declined. If a Merchant Country is also in the allowed list, the blocked list will take precedence. This field is deprecated - use \"cardLevelSpendRules\".\"blockedMerchantCountries\" instead."
          },
          "allowContactless": {
            "deprecated": true,
            "type": "boolean",
            "description": "Indicates if a contactless transaction is allowed on the card. This field is deprecated - use \"cardLevelSpendRules\".\"allowContactless\" instead."
          },
          "allowAtm": {
            "deprecated": true,
            "type": "boolean",
            "description": "Indicates if an ATM Withdrawal transaction is allowed on the card. This field is deprecated - use \"cardLevelSpendRules\".\"allowAtm\" instead."
          },
          "allowECommerce": {
            "deprecated": true,
            "type": "boolean",
            "description": "Indicates if an online transaction is allowed on the card. This field is deprecated - use \"cardLevelSpendRules\".\"allowECommerce\" instead."
          },
          "allowCashback": {
            "deprecated": true,
            "type": "boolean",
            "description": "Indicates if a cashback transaction at a physical terminal is allowed on the card. This field is deprecated - use \"cardLevelSpendRules\".\"allowCashback\" instead."
          },
          "allowCreditAuthorisations": {
            "deprecated": true,
            "type": "boolean",
            "description": "Indicates if a the card can receive a credit transaction. This field is deprecated - use \"cardLevelSpendRules\".\"allowCashback\" instead."
          },
          "minTransactionAmount": {
            "deprecated": true,
            "type": "integer",
            "minimum": 0,
            "format": "int64",
            "description": "The minimum transaction amount, in card currency, that is allowed. If the transaction amount is less than this value, then the transaction will be declined. Omit this, or set to 0 if no maximum transaction amount is to be set. This field is deprecated - use \"cardLevelSpendRules\".\"minTransactionAmount\" instead."
          },
          "maxTransactionAmount": {
            "deprecated": true,
            "type": "integer",
            "minimum": 0,
            "format": "int64",
            "description": "The maximum transaction amount, in card currency, that is allowed. If the transaction amount is greater than this value, then the transaction will be declined. Omit this, or set to 0 if no maximum transaction amount is to be set. This field is deprecated - use \"cardLevelSpendRules\".\"maxTransactionAmount\" instead."
          },
          "spendLimit": {
            "deprecated": true,
            "description": "The total amount of funds that can be spent using this card, in a given time interval. This field is deprecated - use \"cardLevelSpendRules\".\"spendLimit\" instead.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SpendLimit"
            }
          },
          "cardLevelSpendRules": {
            "$ref": "#/components/schemas/CardLevelSpendRules"
          },
          "profileLevelSpendRules": {
            "$ref": "#/components/schemas/ProfileLevelSpendRules"
          },
          "identityLevelSpendRules": {
            "$ref": "#/components/schemas/IdentityLevelSpendRules"
          }
        }
      },
      "Transfer": {
        "required": [
          "id",
          "profileId",
          "creationTimestamp",
          "destination",
          "destinationAmount",
          "source",
          "state"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^[0-9]+$",
            "description": "The unique identifier of a Transfer transaction."
          },
          "profileId": {
            "$ref": "#/components/schemas/ProfileId"
          },
          "tag": {
            "$ref": "#/components/schemas/Tag"
          },
          "source": {
            "description": "The source managed account or card from where the funds were transferred.",
            "$ref": "#/components/schemas/InstrumentId"
          },
          "destination": {
            "description": "The destination managed account or card to where the funds were transferred.",
            "$ref": "#/components/schemas/InstrumentId"
          },
          "destinationAmount": {
            "description": "The amount, in same currency as source and destination, that was transferred from the source to the destination instrument.",
            "$ref": "#/components/schemas/CurrencyAmount"
          },
          "description": {
            "type": "string",
            "maxLength": 255,
            "pattern": "^[a-zA-Z0-9\\/\\-?:().$_,'+\\s#=!\"%&*<>;\\{@\\r\\n]*$",
            "description": "The description details that are included in the transaction as reference."
          },
          "state": {
            "$ref": "#/components/schemas/TransactionState"
          },
          "creationTimestamp": {
            "type": "integer",
            "format": "int64",
            "description": "The time when the transaction was created, expressed in Epoch timestamp using millisecond precision."
          },
          "scheduledTimestamp": {
            "$ref": "#/components/schemas/ScheduledTimestamp"
          },
          "executionTimestamp": {
            "$ref": "#/components/schemas/ExecutionTimestamp"
          },
          "cancellationReason": {
            "$ref": "#/components/schemas/TransactionCancellationReason"
          }
        }
      },
      "TransactionBulkCancelResponse": {
        "required": ["cancellations"],
        "type": "object",
        "properties": {
          "cancellations": {
            "type": "array",
            "description": "Contains the cancellation details for each of the transactions.",
            "items": {
              "$ref": "#/components/schemas/TransactionCancelResponse"
            }
          }
        }
      },
      "Send": {
        "required": [
          "id",
          "profileId",
          "creationTimestamp",
          "source",
          "destinationAmount",
          "state",
          "transactionAmount"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^[0-9]+$",
            "description": "The unique identifier of a send transaction."
          },
          "profileId": {
            "$ref": "#/components/schemas/ProfileId"
          },
          "tag": {
            "$ref": "#/components/schemas/Tag"
          },
          "source": {
            "description": "The source managed account or card from where the funds were sent.",
            "$ref": "#/components/schemas/InstrumentId"
          },
          "sourceFee": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CurrencyAmount"
              },
              {
                "type": "object",
                "description": "The fee applied to the source."
              }
            ]
          },
          "destination": {
            "description": "The destination managed account or card to where the funds were sent.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/InstrumentId"
              },
              {
                "$ref": "#/components/schemas/BeneficiaryId"
              }
            ]
          },
          "destinationAmount": {
            "description": "The amount, in same currency as source and destination, that was sent from the source to the destination instrument.",
            "$ref": "#/components/schemas/CurrencyAmount"
          },
          "destinationFee": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CurrencyAmount"
              },
              {
                "type": "object",
                "description": "The fee applied to the destination."
              }
            ]
          },
          "transactionAmount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CurrencyAmount"
              },
              {
                "type": "object",
                "description": "The original transaction amount before any fees were deducted."
              }
            ]
          },
          "description": {
            "type": "string",
            "description": "The description details that are passed to the beneficiary.",
            "maxLength": 255,
            "pattern": "^[a-zA-Z0-9\\/\\-?:().$_,'+\\s#=!\"%&*<>;\\{@\\r\\n]*$"
          },
          "state": {
            "$ref": "#/components/schemas/SendState"
          },
          "challengeExemptionReason": {
            "$ref": "#/components/schemas/ChallengeExemptionReason"
          },
          "creationTimestamp": {
            "type": "integer",
            "format": "int64",
            "description": "The time when the transaction was created, expressed in Epoch timestamp using millisecond precision."
          },
          "scheduledTimestamp": {
            "$ref": "#/components/schemas/ScheduledTimestamp"
          },
          "executionTimestamp": {
            "$ref": "#/components/schemas/ExecutionTimestamp"
          },
          "cancellationReason": {
            "$ref": "#/components/schemas/TransactionCancellationReason"
          }
        }
      },
      "SendBulkCreateResponse": {
        "type": "object",
        "required": ["response"],
        "properties": {
          "response": {
            "type": "array",
            "items": {
              "allOf": [
                {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "pattern": "^[0-9]+$",
                      "description": "The unique identifier of a send transaction."
                    }
                  }
                },
                {
                  "$ref": "#/components/schemas/SendCreateRequest"
                }
              ]
            }
          }
        }
      },
      "OutgoingWireTransfer": {
        "required": [
          "id",
          "profileId",
          "creationTimestamp",
          "sourceInstrument",
          "transferAmount",
          "state"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^[0-9]+$",
            "description": "The unique identifier of an Outgoing Wire Transfer transaction."
          },
          "profileId": {
            "$ref": "#/components/schemas/ProfileId"
          },
          "tag": {
            "$ref": "#/components/schemas/Tag"
          },
          "sourceInstrument": {
            "required": ["type", "id"],
            "type": "object",
            "description": "The source managed account from where the funds were taken.",
            "properties": {
              "type": {
                "type": "string",
                "enum": ["managed_accounts"]
              },
              "id": {
                "type": "string",
                "pattern": "^[0-9]+$"
              }
            }
          },
          "transferAmount": {
            "description": "The amount, in same currency as source and destination, that was transferred from the source.",
            "$ref": "#/components/schemas/CurrencyAmount"
          },
          "description": {
            "maxLength": 50,
            "type": "string",
            "description": " Transaction description."
          },
          "type": {
            "$ref": "#/components/schemas/OutgoingWireTransferType"
          },
          "destination": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/OutgoingWireTransferBeneficiary"
              },
              {
                "$ref": "#/components/schemas/BeneficiaryId"
              },
              {
                "$ref": "#/components/schemas/ExternalAccountId"
              }
            ]
          },
          "state": {
            "$ref": "#/components/schemas/OutgoingWireTransferState"
          },
          "rejectedInfo": {
            "$ref": "#/components/schemas/OutgoingWireTransferRejectedInfo"
          },
          "challengeExemptionReason": {
            "$ref": "#/components/schemas/ChallengeExemptionReason"
          },
          "creationTimestamp": {
            "type": "integer",
            "format": "int64",
            "description": "The time when the transaction was created, expressed in Epoch timestamp using millisecond precision."
          },
          "scheduledTimestamp": {
            "$ref": "#/components/schemas/ScheduledTimestamp"
          },
          "executionTimestamp": {
            "$ref": "#/components/schemas/ExecutionTimestamp"
          },
          "cancellationReason": {
            "$ref": "#/components/schemas/TransactionCancellationReason"
          },
          "validationOutcomes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OutgoingWireTransferValidationOutcome"
            }
          }
        }
      },
      "OutgoingWireTransferBulkCreateResponse": {
        "type": "object",
        "required": ["response"],
        "properties": {
          "response": {
            "type": "array",
            "items": {
              "allOf": [
                {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "pattern": "^[0-9]+$",
                      "description": "The unique identifier of an outgoing wire transfer transaction."
                    }
                  }
                },
                {
                  "$ref": "#/components/schemas/OutgoingWireTransferCreateRequest"
                }
              ]
            }
          }
        }
      },
      "BeneficiaryBatch": {
        "type": "object",
        "required": ["operationBatchId", "state"],
        "properties": {
          "operationBatchId": {
            "$ref": "#/components/schemas/BeneficiaryOperationBatchId"
          },
          "tag": {
            "$ref": "#/components/schemas/Tag"
          },
          "state": {
            "$ref": "#/components/schemas/BeneficiaryBatchState"
          }
        }
      },
      "Beneficiary": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicBeneficiary"
          },
          {
            "type": "object",
            "required": ["id", "relatedOperationBatches", "state"],
            "properties": {
              "id": {
                "type": "string",
                "pattern": "^[0-9]+$",
                "description": "The unique identifier of a Beneficiary."
              },
              "relatedOperationBatches": {
                "description": "The object representing the list of batch IDs and the operations that occurred for each batch.",
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/BeneficiaryOperationBatchId"
                }
              },
              "state": {
                "$ref": "#/components/schemas/BeneficiaryState"
              },
              "validationFailure": {
                "$ref": "#/components/schemas/BeneficiaryValidationFailure"
              }
            }
          }
        ]
      },
      "SCAOtpChannel": {
        "type": "string",
        "enum": ["SMS"],
        "description": "- \"SMS\": The one-time-password is sent as a text message\n"
      },
      "SCAPushChannel": {
        "type": "string",
        "enum": ["AUTHY", "BIOMETRIC"],
        "description": "- \"AUTHY\": The push notification is sent on the user's device using [Twilio Authy](https://www.twilio.com/authy)\n- \"BIOMETRIC\": The push notification is sent to the user's device\n"
      },
      "AuthSCAPushChannel": {
        "type": "string",
        "enum": ["AUTHY"],
        "description": "- \"AUTHY\": The push notification is sent on the user's device using [Twilio Authy](https://www.twilio.com/authy)\n"
      },
      "BulkProcessStatus": {
        "type": "string",
        "enum": [
          "SUBMITTED",
          "RUNNING",
          "PARTIALLY_COMPLETED",
          "COMPLETED",
          "FAILED",
          "PAUSED",
          "CANCELLED"
        ]
      },
      "BulkId": {
        "type": "string",
        "pattern": "^[0-9]+$"
      },
      "BulkProcessOperationStatus": {
        "type": "string",
        "enum": ["SUBMITTED", "RUNNING", "COMPLETED", "FAILED", "CANCELLED"]
      },
      "InstrumentState": {
        "type": "string",
        "description": "The state of the instrument indicating what it can and cannot do as follows:\n  - ACTIVE: The instrument is in an active state and can be used in transactions.\n  - BLOCKED: The instrument is temporarily blocked and cannot be used. Any funds on the instrument are also frozen. The `blockedReason` provides more information as to why it was blocked.\n  - DESTROYED: The instrument has been permanently destroyed. The `destroyReason` provides more information as to why it was destroyed.\n",
        "enum": ["ACTIVE", "BLOCKED", "DESTROYED"]
      },
      "LinkedAccountVerificationRunState": {
        "type": "string",
        "enum": ["PENDING", "VERIFIED", "REJECTED"]
      },
      "BlockedReason": {
        "type": "string",
        "description": "The reason why the instrument has been blocked:\n  - USER: The root, or an authorised user, of the identity owning the instrument has temporarily blocked the instrument.\n  - SYSTEM: The platform or an administrator of the platform has temporarily blocked the instrument.\n  - LOST: The instrument has been blocked because it was marked as lost.\n",
        "enum": ["USER", "SYSTEM", "LOST"]
      },
      "DestroyedReason": {
        "type": "string",
        "description": "The reason why the instrument has been destroyed:\n  - SYSTEM: The platform or an administrator of the platform has destroyed the instrument.\n  - USER: The root, or an authorised user, of the identity owning the instrument has destroyed the instrument.\n  - LOST: The instrument was automatically destroyed as it was marked as lost.\n  - STOLEN: The instrument was automatically destroyed as it was marked as stolen.\n  - EXPIRED: The instrument was automatically destroyed as it expired.\n  - COMPROMISED: The instrument was automatically destroyed as it was marked as compromised.\n",
        "enum": ["SYSTEM", "USER", "LOST", "STOLEN", "EXPIRED", "COMPROMISED"]
      },
      "TransactionType": {
        "type": "string",
        "enum": [
          "INSTRUMENT_CREATE",
          "INSTRUMENT_BLOCK",
          "INSTRUMENT_UNBLOCK",
          "INSTRUMENT_DELETE",
          "AUTHORISATION",
          "SETTLEMENT",
          "MANUAL_TRANSACTION",
          "TRANSFER",
          "SEND",
          "DEPOSIT",
          "AUTHORISATION_REVERSAL",
          "AUTHORISATION_EXPIRY",
          "AUTHORISATION_DECLINE",
          "AUTHORISATION_MANUAL_CLOSE",
          "MERCHANT_REFUND",
          "MERCHANT_REFUND_REVERSAL",
          "ORIGINAL_CREDIT_TRANSACTION",
          "SETTLEMENT_REVERSAL",
          "ADJUSTMENT",
          "CHARGE_FEE",
          "WITHDRAWAL_RESERVE",
          "WITHDRAWAL_RELEASE",
          "FEE_REVERSAL",
          "CARD_UPGRADE_TO_PHYSICAL",
          "ACTIVATE_PHYSICAL_CARD",
          "INSTRUMENT_REPLACE",
          "OUTGOING_WIRE_TRANSFER",
          "AUTHORISATION_CANCELLATION",
          "SYSTEM_TRANSACTION",
          "OUTGOING_DIRECT_DEBIT_COLLECTION",
          "OUTGOING_DIRECT_DEBIT_REFUND"
        ]
      },
      "TransactionState": {
        "type": "string",
        "description": "Status of the transaction.",
        "enum": [
          "INITIALISED",
          "COMPLETED",
          "REJECTED",
          "FAILED",
          "PENDING",
          "SCHEDULED",
          "CANCELLED"
        ]
      },
      "InstrumentType": {
        "type": "string",
        "enum": ["managed_cards", "managed_accounts"]
      },
      "SendState": {
        "type": "string",
        "description": "The state of the send transaction, as follows:\n - INVALID: The send transaction has failed initial validation checks. \n - INITIALISED: The initial state of a send transaction when SCA is not required.\n - PENDING_CHALLENGE: The send transaction requires the completion of a transaction confirmation challenge before it can be submitted.\n - PENDING: The send transaction has exceeded the destination limit and is pending treasury approval.\n - APPROVED: The send transaction that was submitted has been approved.\n - COMPLETED: The requested funds have been sent from the source instrument.\n - REJECTED: The send transaction that was submitted was rejected.\n - FAILED: There was an issue with the send transaction, and the transaction has failed.\n - RETURNED: The send transaction has been returned to the sender.\n - SCHEDULED: The send transaction will be executed at the scheduled time.\n - CANCELLED: The scheduled send transaction has been cancelled.\n",
        "enum": [
          "INVALID",
          "INITIALISED",
          "COMPLETED",
          "REJECTED",
          "FAILED",
          "PENDING",
          "PENDING_CHALLENGE",
          "APPROVED",
          "RETURNED",
          "SCHEDULED",
          "CANCELLED"
        ]
      },
      "SourceInstrumentType": {
        "type": "string",
        "enum": ["managed_accounts"]
      },
      "OutgoingWireTransferState": {
        "description": "The state of the Outgoing wire transfer transaction, as follows:\n  - INVALID: The wire transfer has failed initial validation checks.\n  - PENDING_CHALLENGE: The wire transfer requires the completion of a transaction confirmation challenge before it can be submitted.\n  - SUBMITTED: The wire transfer has been submitted to the sending financial institution for processing.\n  - REJECTED: The wire transfer that was submitted was rejected.\n  - APPROVED: The wire transfer that was submitted has been approved and is being processed by the sending financial institution.\n  - FAILED: There was an issue with the wire transfer, and the transaction has failed.\n  - COMPLETED: The requested funds have been sent from the source instrument.\n  - RETURNED: The wire transfer has been returned to the sender.\n  - SCHEDULED: The wire transfer will be executed at the scheduled time.\n  - CANCELLED: The scheduled wire transfer has been cancelled.\n  - PENDING_CONFIRMATION: The wire transfer requires a manual confirmation by the user before proceeding.\n",
        "type": "string",
        "enum": [
          "INVALID",
          "PENDING_CHALLENGE",
          "SUBMITTED",
          "REJECTED",
          "APPROVED",
          "FAILED",
          "COMPLETED",
          "RETURNED",
          "SCHEDULED",
          "CANCELLED",
          "PENDING_CONFIRMATION"
        ]
      },
      "BulkProcess": {
        "type": "object",
        "properties": {
          "bulkId": {
            "description": "The bulk id of the bulk process",
            "type": "string"
          },
          "status": {
            "description": "\"SUBMITTED\": the data for the bulk process operations has been persisted and bulk process is ready for execution. A bulk process in this status can be executed or submitted. This is the initial state for a bulk process\n\n\"RUNNING\" :  the bulk process is currently being executed by the system\n\n\"COMPLETED\"  : the execution of the bulk process is complete and all bulk operations of the bulk process were executed successfully. This is a final state for the bulk process \n\n\"PARTIALLY_COMPLETED\"  the execution of the bulk process is complete and some of the bulk operations of the bulk process failed. This is a final state for the bulk process\n\n\"FAILED\" : none of the operations of the bulk process have executed. This is a final state for the bulk process\n\n\"PAUSED\"  : the execution of bulk process has been paused through the Pause bulk process operation  Execution can be resumed through Resume bulk operation\n\n\"CANCELLED\" : the execution of bulk process has been cancelled through Cancel bulk operation. This is a final state for the bulk process\n",
            "type": "string"
          },
          "submittedItemsCount": {
            "description": "The number of bulk operations in the bulk process",
            "type": "integer"
          },
          "executionStart": {
            "description": "Timestamp of when the execution of the Bulk Process started",
            "type": "integer",
            "format": "int64"
          },
          "executionFinish": {
            "description": "Timestamp of when the execution of the Bulk Process finished.",
            "type": "integer",
            "format": "int64"
          },
          "operation": {
            "description": "The underlying operations contained within the Bulk; shown as the endpoint for the equivalent single operation.",
            "type": "string"
          },
          "mode": {
            "description": "The mode that was instructed when execution was started",
            "$ref": "#/components/schemas/BulkProcessMode"
          }
        }
      },
      "SpendLimitUpdateMethod": {
        "type": "string",
        "description": "The spend limit update method to apply. Currently supported:\n  - OVERWRITE: (default option if nothing selected). Overwrites the previous values for the spendLimit object i.e. sets new limits\n  - INCREMENT : This will increase the existing value of the spend limit by the amount input the value field. If used in conjunction with an ALWAYS interval, this can be used to increment a spend limit on a periodic basis (controlled by you, e.g. monthly), and means that any 'unused' balance from the previous period will still available to spend. See examples in our documentation\n",
        "enum": ["OVERWRITE", "INCREMENT"]
      },
      "BeneficiaryId": {
        "required": ["beneficiaryId"],
        "type": "object",
        "properties": {
          "beneficiaryId": {
            "$ref": "#/components/schemas/Id"
          }
        }
      },
      "OutgoingWireTransferBeneficiary": {
        "required": ["name", "bankAccountDetails"],
        "type": "object",
        "description": "Details of the beneficiary of the outgoing wire transfer.",
        "properties": {
          "name": {
            "type": "string",
            "description": "The beneficiary's full name. The allowed length and pattern is dependent on the bank account details type:\n\n`IBANDetails`: >= `1` character and <= `150` characters. An extended character set is accepted to cater for all European languages. If `SEPA` does not support a particular character, it is automatically converted to an acceptable alternative, in line with `SEPA` scheme guidance.\n\n`FasterPaymentsBankDetailsOrBACSBankDetails`: >= `1` character and <= `140` characters with a pattern of `^[a-zA-Z0-9\\/\\-?:().,’+\\s#=!\"%&*<>;\\{@\\r\\n]*$`\n(please note that the `’` symbol is the unicode value U+2019 (right single quotation mark) and not the unicode value U+0027 (apostrophe))\n"
          },
          "type": {
            "type": "string",
            "description": "The type of beneficiary account. Required only when `FasterPaymentsBankDetailsOrBACSBankDetails` are specified",
            "enum": ["PERSONAL", "BUSINESS"]
          },
          "address": {
            "maxLength": 150,
            "minLength": 1,
            "type": "string",
            "description": "The beneficiary’s address. For `SEPA`, an extended character set is accepted to cater for all European languages. If `SEPA` does not support a particular character, it is automatically converted to an acceptable alternative, in line with `SEPA` scheme guidance.\n"
          },
          "bankName": {
            "type": "string",
            "description": "The beneficiary's bank name."
          },
          "bankAddress": {
            "maxLength": 150,
            "minLength": 1,
            "type": "string",
            "description": "The beneficiary's bank address."
          },
          "bankCountry": {
            "type": "string",
            "description": "The beneficiary's bank country in ISO 3166 alpha-2 format.",
            "maxLength": 2,
            "minLength": 2,
            "pattern": "^[A-Z]{2}$"
          },
          "bankAccountDetails": {
            "description": "Details of the beneficiary bank account, depending on the type of transfer chosen.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/IBANDetails"
              },
              {
                "$ref": "#/components/schemas/FasterPaymentsBankDetailsOrBACSBankDetails"
              }
            ]
          },
          "nationality": {
            "$ref": "#/components/schemas/Nationality"
          },
          "dateOfBirth": {
            "$ref": "#/components/schemas/DateOfBirth"
          }
        }
      },
      "ExternalAccountId": {
        "type": "object",
        "description": "The id of an external account, such as a Linked Account, registered with the Weavr Platform.",
        "required": ["type", "id"],
        "properties": {
          "type": {
            "$ref": "#/components/schemas/ExternalAccountType"
          },
          "id": {
            "type": "string",
            "pattern": "^[0-9]+$"
          }
        }
      },
      "AccountType": {
        "type": "string",
        "description": "An account can be of two types, Personal or Business:\n  - PERSONAL means that the account held at the external bank or PSP is registered under the ownership of a natural person or consumer identity;\n  - BUSINESS means that the account held at the external bank or PSP is registered under the ownership of a corporate entity.\n",
        "enum": ["BUSINESS", "PERSONAL"]
      },
      "AccountNumberAndSortCode": {
        "required": ["accountNumber", "sortCode"],
        "type": "object",
        "description": "Bank details",
        "properties": {
          "accountNumber": {
            "type": "string",
            "pattern": "^[0-9]{8}$",
            "description": "Account number"
          },
          "sortCode": {
            "type": "string",
            "pattern": "^[0-9]{6}$",
            "description": "Sort code"
          },
          "secondaryReference": {
            "type": "string",
            "description": "Optional secondary reference for accounts without unique sort codes."
          }
        }
      },
      "Iban": {
        "required": ["iban"],
        "type": "object",
        "description": "Bank details",
        "properties": {
          "iban": {
            "type": "string",
            "minLength": 15,
            "maxLength": 34,
            "pattern": "^[A-Z]{2}[0-9]{2}[A-Z0-9]{11,30}$",
            "description": "International Bank Account Number, required for wire transfer."
          },
          "bankIdentifierCode": {
            "type": "string",
            "minLength": 8,
            "maxLength": 11,
            "pattern": "^[a-zA-Z0-9]{4}[a-zA-Z]{2}[a-zA-Z0-9]{2}[a-zA-Z0-9]{0,3}$",
            "description": "BIC, for wire transfer over SEPA or RIX."
          }
        }
      },
      "AccountDescriptor": {
        "required": ["accountDescriptor"],
        "type": "object",
        "description": "Identifier or account number which does not follow either the IBAN or Faster Payment (sort code and account number) format, such as a US bank account identifier.",
        "properties": {
          "accountDescriptor": {
            "type": "string"
          }
        }
      },
      "LinkedAccountState": {
        "type": "string",
        "description": "The state of the linked account:\n  - **PENDING_VERIFICATION**: The Linked Account is pending the completion of the required verification steps.\n  - **ACTIVE**: The Linked Account is verified and active, ready to be used for self-to-self wire transfers.\n  - **BLOCKED**: The Linked Account is temporarily blocked, preventing any use of this external account in self-to-self wire transfers. A Linked Account can be unblocked by calling the Multi API endpoint `POST /linked_accounts/{id}/unblock`.\n  - **REMOVED**: The Linked Account has been removed from the platform and can no longer be used for self-to-self wire transfers unless a new verification is completed in future.\n  - **REJECTED**: The Linked Account failed the verification process and cannot be used for self-to-self wire transfers unless a new verification is completed in future.\nA Linked Account can transition through these different overall states, starting at the `PENDING_VERIFICATION` state until all verification steps are followed through.\n",
        "enum": [
          "PENDING_VERIFICATION",
          "BLOCKED",
          "ACTIVE",
          "REJECTED",
          "REMOVED"
        ]
      },
      "StringWrappedTypeId": {
        "required": ["type", "id"],
        "type": "object",
        "properties": {
          "type": {
            "maxLength": 50,
            "pattern": "^[a-zA-Z0-9_-]+$",
            "type": "string"
          },
          "id": {
            "type": "string",
            "pattern": "^[0-9]+$"
          }
        }
      },
      "ManagedInstrumentBalance": {
        "type": "object",
        "description": "Instruments with funds have 2 balances, the `availableBalance` indicating the funds that are available for transactions such as purchases, and the `actualBalance` indicating the funds that are actually on the instrument.",
        "properties": {
          "availableBalance": {
            "type": "integer",
            "format": "int64",
            "description": "The funds available for transactions on the instrument. Funds that are blocked or pending are not included in the available balance."
          },
          "actualBalance": {
            "type": "integer",
            "format": "int64",
            "description": "The funds that are actually on the instrument. Funds that are blocked or pending, due to for example, a purchase authorisation or a pending deposit, are included in the actual balance."
          }
        }
      },
      "ManagedInstrumentState": {
        "required": ["state"],
        "type": "object",
        "properties": {
          "state": {
            "$ref": "#/components/schemas/InstrumentState"
          },
          "blockedReason": {
            "$ref": "#/components/schemas/BlockedReason"
          },
          "destroyedReason": {
            "$ref": "#/components/schemas/DestroyedReason"
          }
        }
      },
      "CorporateRootUser": {
        "required": [
          "id",
          "email",
          "name",
          "surname",
          "mobile",
          "active",
          "emailVerified",
          "mobileNumberVerified",
          "companyPosition"
        ],
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/IdentityId"
          },
          "name": {
            "maxLength": 100,
            "type": "string",
            "description": "First name of the root user."
          },
          "surname": {
            "maxLength": 100,
            "type": "string",
            "description": "Last name of the root user."
          },
          "email": {
            "$ref": "#/components/schemas/Email"
          },
          "mobile": {
            "$ref": "#/components/schemas/Mobile"
          },
          "companyPosition": {
            "$ref": "#/components/schemas/CompanyPosition"
          },
          "active": {
            "type": "boolean",
            "description": "The state of the root user. If false, then the user will not be able to log in."
          },
          "emailVerified": {
            "type": "boolean",
            "description": "Indicates if the root user's email has been verified."
          },
          "mobileNumberVerified": {
            "type": "boolean",
            "description": "Indicates if the root user's mobile number has been verified."
          },
          "dateOfBirth": {
            "description": "Date of birth of the authorised user.",
            "$ref": "#/components/schemas/Date"
          },
          "tag": {
            "$ref": "#/components/schemas/Tag"
          },
          "locale": {
            "$ref": "#/components/schemas/UserLocale"
          },
          "brand": {
            "$ref": "#/components/schemas/Brand"
          }
        }
      },
      "LegalAddress": {
        "required": ["addressLine1", "city", "country"],
        "type": "object",
        "description": "The legal address of the company. This information is captured via the Due Diligence (KYB) process.",
        "properties": {
          "addressLine1": {
            "type": "string"
          },
          "addressLine2": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "postCode": {
            "maxLength": 10,
            "pattern": "^[A-Za-z0-9 -]*$",
            "type": "string"
          },
          "state": {
            "maxLength": 50,
            "type": "string"
          },
          "country": {
            "maxLength": 2,
            "minLength": 2,
            "pattern": "^[A-Z]+$",
            "type": "string",
            "description": "Country of the identity in ISO 3166 alpha-2 format."
          }
        }
      },
      "ConsumerRootUser": {
        "required": [
          "id",
          "email",
          "name",
          "surname",
          "active",
          "mobile",
          "emailVerified",
          "mobileNumberVerified"
        ],
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/IdentityId"
          },
          "name": {
            "maxLength": 100,
            "type": "string",
            "description": "First name of the root user."
          },
          "surname": {
            "maxLength": 100,
            "type": "string",
            "description": "Last name of the root user."
          },
          "email": {
            "$ref": "#/components/schemas/Email"
          },
          "mobile": {
            "$ref": "#/components/schemas/Mobile"
          },
          "occupation": {
            "$ref": "#/components/schemas/Occupation"
          },
          "active": {
            "type": "boolean",
            "description": "The state of the root user. If false, then the user will not be able to log in."
          },
          "emailVerified": {
            "type": "boolean",
            "description": "Indicates if the root user's email has been verified."
          },
          "mobileNumberVerified": {
            "type": "boolean",
            "description": "Indicates if the root user's mobile number has been verified."
          },
          "dateOfBirth": {
            "description": "Date of birth of the consumer root user.",
            "$ref": "#/components/schemas/Date"
          },
          "address": {
            "description": "Address of the consumer root user.",
            "$ref": "#/components/schemas/AddressWithNoRequiredFields"
          },
          "nationality": {
            "description": "Nationality of the consumer root user, in ISO 3166 alpha-2 format.",
            "$ref": "#/components/schemas/Nationality"
          },
          "placeOfBirth": {
            "type": "string",
            "description": "The place of birth of the consumer root user."
          },
          "tag": {
            "$ref": "#/components/schemas/Tag"
          },
          "locale": {
            "$ref": "#/components/schemas/UserLocale"
          },
          "brand": {
            "$ref": "#/components/schemas/Brand"
          }
        }
      },
      "CardAuthorisationDetailsAuthorisationType": {
        "type": "string",
        "enum": ["AUTHORISED", "AUTHORISED_CREDIT"]
      },
      "MerchantData": {
        "required": ["merchantName", "merchantCategoryCode", "merchantId"],
        "type": "object",
        "properties": {
          "merchantName": {
            "type": "string",
            "description": "The name of the merchant where the authorisation has been made."
          },
          "merchantCategoryCode": {
            "type": "string",
            "description": "The merchant category code."
          },
          "merchantId": {
            "type": "string",
            "description": "The merchant ID."
          },
          "merchantDescription": {
            "type": "string",
            "description": "The merchant description"
          },
          "merchantStreet": {
            "type": "string",
            "description": "The merchant street address (if available)"
          },
          "merchantCity": {
            "type": "string",
            "description": "The merchant city (if available)"
          },
          "merchantState": {
            "type": "string",
            "description": "The merchant state address (if available)"
          },
          "merchantPostalCode": {
            "type": "string",
            "description": "The merchant postal code (if available)"
          },
          "merchantCountry": {
            "type": "string",
            "description": "The merchant country address"
          },
          "merchantTelephone": {
            "type": "string",
            "description": "The merchant telephone number"
          },
          "merchantURL": {
            "type": "string",
            "description": "The merchant URL"
          },
          "merchantNameOther": {
            "type": "string",
            "description": "The alternative merchant name"
          },
          "merchantNetworkId": {
            "type": "string",
            "description": "The merchant's network id"
          },
          "merchantContact": {
            "type": "string",
            "description": "The merchant's contact (if available)"
          }
        }
      },
      "CardHolderPresent": {
        "type": "string",
        "enum": ["PRESENT", "NOT_PRESENT", "PRESENCE_UNKNOWN"]
      },
      "PrepaidModeCardAuthorisationEvent": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CardAuthorisationEvent"
          },
          {
            "type": "object",
            "required": ["currency"],
            "properties": {
              "availableBalance": {
                "description": "The card available balance before this authorisation is processed.",
                "$ref": "#/components/schemas/CurrencyAmount"
              }
            }
          }
        ]
      },
      "DebitModeCardAuthorisationEvent": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CardAuthorisationEvent"
          },
          {
            "type": "object",
            "required": ["parentManagedAccountId"],
            "properties": {
              "parentManagedAccountId": {
                "type": "string",
                "description": "Id of the managed account holding funds which the managed card can access, up to a configurable spend limit."
              },
              "availableToSpend": {
                "type": "array",
                "description": "The amount of funds from the parent managed account that are available to be spent through the card, in a given time interval, _before_ this transaction is performed.",
                "items": {
                  "$ref": "#/components/schemas/AvailableToSpend"
                }
              }
            }
          }
        ]
      },
      "BulkProcessMode": {
        "description": "ON_FAILURE_STOP : the execution of the bulk process stops after the first bulk operation that fails (operation returns a 4xx or 5xx response code).\nON_FAILURE_CONTINUE: the execution of the bulk process resumes as normal even when any of the bulk operations fail.\n",
        "type": "string",
        "enum": ["ON_FAILURE_STOP", "ON_FAILURE_CONTINUE"]
      },
      "LinkedAccountProfileId": {
        "type": "string",
        "description": "The id of the Linked Account Profile which this instrument is linked to.\n\nYou can have one or more profiles linked to your application, and these can be used to drive different behaviours according to your product's needs.\n\nThis field is necessary only if you have been provided with multiple Linked Account Profiles.\n\nProfile Ids can be found in the Multi Portal, in the API Credentials page.\n",
        "pattern": "^[0-9]+$"
      },
      "PrepaidModeCardRequest": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ManagedCardRequest"
          },
          {
            "type": "object",
            "required": ["currency"],
            "properties": {
              "currency": {
                "$ref": "#/components/schemas/Currency"
              }
            }
          }
        ]
      },
      "DebitModeCardRequest": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ManagedCardRequest"
          },
          {
            "type": "object",
            "required": ["parentManagedAccountId"],
            "properties": {
              "parentManagedAccountId": {
                "type": "string",
                "pattern": "^[0-9]+$",
                "description": "Id of the managed account holding funds which the managed card will access, up to a configurable spend limit."
              },
              "userCurrency": {
                "$ref": "#/components/schemas/SupportedUserCurrency"
              }
            }
          }
        ]
      },
      "PhoneNumber": {
        "maxLength": 20,
        "minLength": 5,
        "pattern": "^\\+[0-9]+$",
        "type": "string"
      },
      "BaseCardLevelSpendRules": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CommonLevelSpendRules"
          },
          {
            "type": "object",
            "properties": {
              "spendLimit": {
                "description": "The total amount of funds that can be spent using this card, in a given time interval.",
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/SpendLimit"
                }
              }
            }
          }
        ]
      },
      "TransactionCancelRequest": {
        "required": ["id"],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^[0-9]+$",
            "description": "The id of the transaction."
          },
          "cancellationReason": {
            "$ref": "#/components/schemas/TransactionCancellationReason"
          }
        }
      },
      "TransactionCancellationReason": {
        "type": "string",
        "pattern": "^[ a-zA-Z0-9_-]+$",
        "maxLength": 50,
        "description": "The reason the scheduled transaction was cancelled."
      },
      "BeneficiaryTrustLevel": {
        "type": "string",
        "description": "The value that determines whether a Beneficiary is trusted or not.",
        "enum": ["TRUSTED"]
      },
      "BusinessBeneficiaryType": {
        "required": ["businessName"],
        "type": "object",
        "properties": {
          "businessName": {
            "type": "string",
            "description": "The business beneficiary name. The allowed length and pattern is dependent on the beneficiary details type:\n\n`InstrumentDetailsBeneficiary` or `BankAccountDetailsBeneficiary` with `IBANDetails`: >= `1` character and <= `150` characters\n\n`BankAccountDetailsBeneficiary` with `FasterPaymentsBankDetailsOrBACSBankDetails`: >= `1` character and <= `140` characters with a pattern of `^[a-zA-Z0-9\\/\\-?:().,’+\\s#=!\"%&*<>;\\{@\\r\\n]*$`\n(please note that the `’` symbol is the unicode value U+2019 (right single quotation mark) and not the unicode value U+0027 (apostrophe))\n"
          }
        }
      },
      "ConsumerBeneficiaryType": {
        "required": ["fullName"],
        "type": "object",
        "properties": {
          "nationality": {
            "type": "string",
            "description": "The nationality of the consumer. Must be a valid ISO 3166-1 alpha-2 country code (e.g., 'GB', 'FR').",
            "pattern": "^[A-Z]{2}$"
          },
          "dateOfBirth": {
            "type": "string",
            "description": "The date of birth of the consumer. Must be a valid date in ISO 8601 format (YYYY-MM-DD) and should not be a future date.",
            "format": "date"
          },
          "fullName": {
            "type": "string",
            "description": "The person beneficiary name. The allowed length and pattern is dependent on the beneficiary details type:\n\n`InstrumentDetailsBeneficiary` or `BankAccountDetailsBeneficiary` with `IBANDetails`: >= `1` character and <= `150` characters\n\n`BankAccountDetailsBeneficiary` with `FasterPaymentsBankDetailsOrBACSBankDetails`: >= `1` character and <= `140` characters with a pattern of `^[a-zA-Z0-9\\/\\-?:().,’+\\s#=!\"%&*<>;\\{@\\r\\n]*$`\n(please note that the `’` symbol is the unicode value U+2019 (right single quotation mark) and not the unicode value U+0027 (apostrophe))\n"
          }
        }
      },
      "InstrumentDetailsBeneficiary": {
        "required": ["instrument"],
        "type": "object",
        "description": "Represents a Weavr beneficiary instrument typically used in Send transactions.",
        "properties": {
          "instrument": {
            "$ref": "#/components/schemas/InstrumentId"
          }
        }
      },
      "BankAccountDetailsBeneficiary": {
        "required": ["bankAccountDetails"],
        "type": "object",
        "description": "Represent the beneficiary bank account typically used in Outgoing Wire Transfer transactions.",
        "properties": {
          "address": {
            "maxLength": 150,
            "minLength": 1,
            "type": "string",
            "description": "The beneficiary's address."
          },
          "bankName": {
            "type": "string",
            "description": "The beneficiary's bank name."
          },
          "bankAddress": {
            "maxLength": 150,
            "minLength": 1,
            "type": "string",
            "description": "The beneficiary's bank address."
          },
          "bankCountry": {
            "type": "string",
            "description": "The beneficiary's bank country in ISO 3166 alpha-2 format.",
            "maxLength": 2,
            "minLength": 2,
            "pattern": "^[A-Z]{2}$"
          },
          "bankAccountDetails": {
            "description": "Details of the beneficiary bank account, depending on the type of transfer chosen.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/IBANDetails"
              },
              {
                "$ref": "#/components/schemas/FasterPaymentsBankDetailsOrBACSBankDetails"
              }
            ]
          }
        }
      },
      "UserIdentity": {
        "required": ["id", "name"],
        "type": "object",
        "properties": {
          "id": {
            "description": "The unique identifier of the Corporate Identity.",
            "$ref": "#/components/schemas/IdentityId"
          },
          "name": {
            "type": "string",
            "description": "The name of the company."
          }
        }
      },
      "SCAChallengeType": {
        "type": "string",
        "enum": ["OTP", "PUSH", "BIOMETRIC"],
        "description": "- \"OTP\": The OTP is sent as a text message\n- \"PUSH\": The authorisation request is sent as a push notification\n- \"BIOMETRIC\": The push notification is sent via Firebase to a mobile application\n"
      },
      "SCAFactorStatus": {
        "type": "string",
        "description": "The state of the factor type.\n- `PENDING_VERIFICATION` : The user has started the enrolment process but still hasn't completed enrolment. Challenges cannot be used before they are verified.\n- `ACTIVE` : The user has successfully completed enrolment and the challenge can be used to verify transactions.\n- `INACTIVE` : The user has rejected the enrolment.\n",
        "enum": ["PENDING_VERIFICATION", "ACTIVE", "INACTIVE"]
      },
      "SCAChannel": {
        "type": "string",
        "enum": ["SMS", "AUTHY", "BIOMETRIC"],
        "description": "- \"SMS\": The one-time-password is sent as a text message\n- \"AUTHY\": The push notification is sent to an Authy application\n- \"BIOMETRIC\": The push notification is sent to an innovator application\n"
      },
      "BulkProcessConflictErrorCode": {
        "enum": [
          "VALIDATION_FAILED",
          "USER_VALIDATION_FAILED",
          "ALREADY_SUBMITTED",
          "DUPLICATE_OPERATION_TYPE",
          "NO_CONFIG_FOUND",
          "INVALID_STATE",
          "TOO_MANY_REQUESTS"
        ],
        "type": "string"
      },
      "BulkProcessOperationStatusCounts": {
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/BulkProcessOperationStatus"
          },
          "count": {
            "type": "integer"
          }
        }
      },
      "BulkProcessOperation": {
        "type": "object",
        "properties": {
          "operationId": {
            "description": "Id of a specific bulk operation. Useful only if you need to refer to a specific operation when reporting an issue",
            "type": "string"
          },
          "sequence": {
            "description": "The operations submitted in a Bulk Processes are executed in sequence. This field indicates the position of this specific operation in the context of such sequence",
            "format": "int32",
            "type": "integer"
          },
          "method": {
            "description": "HTTP request method used for the executed operation within the Bulk process",
            "type": "string"
          },
          "path": {
            "description": "The endpoint path for the Operation",
            "type": "string"
          },
          "status": {
            "description": "The execution status of the operation within the Bulk Process. This can be one of: \"SUBMITTED\" \"RUNNING\" \"COMPLETED\" \"FAILED\" \"CANCELLED\"\n",
            "$ref": "#/components/schemas/BulkProcessOperationStatus"
          },
          "requestPayload": {
            "description": "This is the payload for the execution of an operation within the context of a Bulk Process",
            "type": "string"
          },
          "responsePayload": {
            "description": "The response for the execution of the operation",
            "type": "string"
          }
        }
      },
      "CreatedCorporateRootUser": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CorporateRootUser"
          },
          {
            "type": "object",
            "required": ["passwordAlreadySet"],
            "properties": {
              "passwordAlreadySet": {
                "type": "boolean",
                "description": "When the corporate root user is a single email multiple identities user, this field returns true, indicating that there is no need to call the `passwordCreate` operation for this user."
              }
            }
          }
        ]
      },
      "TransactionId": {
        "required": ["type", "id"],
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "AUTHORISATION",
              "SETTLEMENT",
              "MANUAL_TRANSACTION",
              "TRANSFER",
              "SEND",
              "DEPOSIT",
              "AUTHORISATION_REVERSAL",
              "AUTHORISATION_EXPIRY",
              "AUTHORISATION_DECLINE",
              "AUTHORISATION_MANUAL_CLOSE",
              "MERCHANT_REFUND",
              "MERCHANT_REFUND_REVERSAL",
              "ORIGINAL_CREDIT_TRANSACTION",
              "SETTLEMENT_REVERSAL",
              "ADJUSTMENT",
              "CHARGE_FEE",
              "WITHDRAWAL_RESERVE",
              "WITHDRAWAL_RELEASE",
              "FEE_REVERSAL",
              "OUTGOING_WIRE_TRANSFER",
              "AUTHORISATION_CANCELLATION",
              "SYSTEM_TRANSACTION",
              "OUTGOING_DIRECT_DEBIT_COLLECTION",
              "OUTGOING_DIRECT_DEBIT_REFUND",
              "LINKED_ACCOUNT_VERIFICATION_TRANSFER",
              "INCOMING_WIRE_TRANSFER",
              "FUNDING",
              "TEST_FUNDING"
            ],
            "type": "string",
            "x-enumDescriptions": {
              "AUTHORISATION": "",
              "SETTLEMENT": "",
              "MANUAL_TRANSACTION": "For a manual transaction, the `additionalFields`: `note` will contain a description with the reason for the transaction. This will start with one of the following prefixes:\n\n- Account Closure\n- Chargebacks - Represented\n- Chargebacks - Won\n- Deleted Card - Transfer from\n- Deleted Card - Transfer to\n- Duplicate Authorisation Issue\n- Duplicate Settlement Issue\n- Expired Card - Transfer from\n- Expired Card - Transfer to\n- Forex Padding Release Issue\n- Funds Redemption & Account Closure\n- Manual Auth Expiry\n- Missing Settlement Issue\n- Negative Card Balance\n- Reversal - Duplicate Transaction\n- Reversal - Manual Auth Expiry\n- Reversal - Manual Transaction\n- Amend Balance - Auth Expiry\n- Balance Adjustment\n- Completing Deposit\n- Duplicate Deposit\n",
              "TRANSFER": "",
              "SEND": "",
              "DEPOSIT": "",
              "AUTHORISATION_REVERSAL": "",
              "AUTHORISATION_EXPIRY": "",
              "AUTHORISATION_DECLINE": "",
              "AUTHORISATION_MANUAL_CLOSE": "",
              "MERCHANT_REFUND": "",
              "MERCHANT_REFUND_REVERSAL": "",
              "ORIGINAL_CREDIT_TRANSACTION": "",
              "SETTLEMENT_REVERSAL": "",
              "ADJUSTMENT": "",
              "CHARGE_FEE": "",
              "WITHDRAWAL_RESERVE": "",
              "WITHDRAWAL_RELEASE": "",
              "FEE_REVERSAL": "",
              "OUTGOING_WIRE_TRANSFER": "",
              "AUTHORISATION_CANCELLATION": "",
              "SYSTEM_TRANSACTION": "",
              "OUTGOING_DIRECT_DEBIT_COLLECTION": "",
              "OUTGOING_DIRECT_DEBIT_REFUND": ""
            }
          },
          "id": {
            "type": "string",
            "pattern": "^[0-9]+$"
          }
        }
      },
      "LinkedAccountVerificationStep": {
        "type": "string",
        "enum": [
          "TRANSFER_INSTRUCTION",
          "USER_DECLARATION_SCA_CHALLENGE",
          "INTERNAL_CHECKS",
          "MICRO_DEPOSIT"
        ]
      },
      "LinkedAccountVerificationTransferInstruction": {
        "type": "object",
        "required": ["amount", "reference"],
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/CurrencyAmount"
          },
          "reference": {
            "type": "string"
          },
          "destination": {
            "type": "object",
            "properties": {
              "accountOwnerName": {
                "type": "string"
              },
              "accountType": {
                "$ref": "#/components/schemas/AccountType"
              },
              "accountReference": {
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/Iban"
                  },
                  {
                    "$ref": "#/components/schemas/AccountNumberAndSortCode"
                  },
                  {
                    "$ref": "#/components/schemas/AccountDescriptor"
                  }
                ]
              }
            }
          }
        }
      },
      "LinkedAccountMicroDepositVerification": {
        "type": "object",
        "required": ["amount"],
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/CurrencyAmount"
          },
          "senderName": {
            "type": "string"
          }
        }
      },
      "LinkedAccountVerificationStepStatus": {
        "type": "string",
        "enum": [
          "PENDING_USER",
          "PENDING_REVIEW",
          "PENDING_EXECUTION",
          "REJECTED",
          "COMPLETED"
        ]
      },
      "IBANDetails": {
        "required": ["iban"],
        "type": "object",
        "description": "Bank details used in case the wire transfer is executed over SEPA or RIX",
        "properties": {
          "iban": {
            "type": "string",
            "minLength": 15,
            "maxLength": 34,
            "pattern": "^[A-Z]{2}[0-9]{2}[A-Z0-9]{11,30}$",
            "description": "International Bank Account Number, required for wire transfer over SEPA or RIX"
          },
          "bankIdentifierCode": {
            "type": "string",
            "minLength": 8,
            "maxLength": 11,
            "pattern": "^[a-zA-Z0-9]{4}[a-zA-Z]{2}[a-zA-Z0-9]{2}[a-zA-Z0-9]{0,3}$",
            "description": "BIC, for wire transfer over SEPA or RIX"
          }
        }
      },
      "FasterPaymentsBankDetailsOrBACSBankDetails": {
        "required": ["accountNumber", "sortCode"],
        "type": "object",
        "description": "Bank details used in case the wire transfer is executed over Faster Payments.",
        "properties": {
          "accountNumber": {
            "type": "string",
            "pattern": "^[0-9]{8}$",
            "description": "Account number, required for wire transfer over Faster Payments."
          },
          "sortCode": {
            "type": "string",
            "pattern": "^[0-9]{6}$",
            "description": "Sort code, required for wire transfer over Faster Payments."
          },
          "secondaryReference": {
            "type": "string"
          }
        }
      },
      "SwiftBankDetails": {
        "required": ["iban", "code"],
        "type": "object",
        "description": "Bank details used in case the wire transfer is executed over SWIFT.",
        "properties": {
          "iban": {
            "type": "string",
            "minLength": 15,
            "maxLength": 34,
            "pattern": "^[A-Z]{2}[0-9]{2}[A-Z0-9]{11,30}$",
            "description": "International Bank Account Number, required for wire transfer over SWIFT."
          },
          "code": {
            "type": "string",
            "minLength": 8,
            "maxLength": 11,
            "pattern": "^[a-zA-Z0-9]{4}[a-zA-Z]{2}[a-zA-Z0-9]{2}[a-zA-Z0-9]{0,3}$",
            "description": "SWIFT code, identifying a particular bank or branch, required for wire transfer over SWIFT."
          }
        }
      },
      "StatementEntryState": {
        "type": "string",
        "description": "The transaction entry state, as follows:\n  - PENDING: The transaction has started and some of the fund movements have completed, however additional fund movements are still pending to finalise the transaction.\n  - COMPLETED: All fund movements for a transaction have completed.\n",
        "enum": ["PENDING", "COMPLETED"]
      },
      "ScaledAmount": {
        "type": "object",
        "properties": {
          "value": {
            "type": "integer",
            "format": "int64"
          },
          "scale": {
            "maximum": 127,
            "minimum": -128,
            "type": "integer",
            "format": "int32"
          }
        },
        "description": "A floating point number, represented as a value and its scale. Its actual value can be obtained using the equation: value * pow(10, -scale)."
      },
      "UserCurrencyTransactionDetails": {
        "required": ["userTransactionAmount", "userExchangeRate"],
        "type": "object",
        "properties": {
          "userTransactionAmount": {
            "$ref": "#/components/schemas/CurrencyAmount"
          },
          "userExchangeRate": {
            "type": "string"
          }
        },
        "description": "The object representing the user transaction's currency, amount and rate."
      },
      "SensitiveCardNumber": {
        "type": "object",
        "description": "The full card number of the card.\n\nUnless you are PCI-DSS compliant and have opted to switch off Weavr's security model, the card number will be tokenised.\n\nTo show the full unredacted card number to your user, you need to embed the Card number UI Component in your application. This accepts the tokenised card number and shows the unredacted card number to the user on screen.\n",
        "properties": {
          "value": {
            "maxLength": 16,
            "type": "string"
          }
        }
      },
      "SensitiveCvv": {
        "type": "object",
        "description": "The CVV of the card.\n\nUnless you are PCI-DSS compliant and have opted to switch off Weavr's security model, the card's CVV will be tokenised.\n\nTo show the card's CVV to your user, you need to embed the CVV UI Component in your application. This accepts the tokenised CVV and shows the plain text CVV number to the user on screen.\n",
        "properties": {
          "value": {
            "maxLength": 3,
            "type": "string"
          }
        }
      },
      "PhysicalCardDetails": {
        "required": ["pendingActivation"],
        "type": "object",
        "properties": {
          "bulkDelivery": {
            "$ref": "#/components/schemas/BulkCardDelivery"
          },
          "productReference": {
            "type": "string",
            "description": "The unique reference indicating the configuration of the physical card. Example the card design."
          },
          "carrierType": {
            "type": "string"
          },
          "pendingActivation": {
            "type": "boolean",
            "description": "Indicates if the physical card is activated for physical usage such as with physical terminals."
          },
          "pinBlocked": {
            "type": "boolean",
            "description": "Indicates if the physical card is blocked due to providing incorrect PINs."
          },
          "manufacturingState": {
            "$ref": "#/components/schemas/ManufacturingState"
          },
          "replacement": {
            "deprecated": true,
            "type": "object",
            "description": "Indicates if the physical card is replaced by another card.",
            "properties": {
              "replacementReason": {
                "type": "string",
                "description": "The reason why the physical card was replaced.\n  - DAMAGED: The physical card was damaged and cannot be used at a physical terminal.\n  - LOST_STOLEN: The physical card was either lost or stolen and cannot be used.\n  - EXPIRED: The physical card expired.\n",
                "enum": ["DAMAGED", "LOST_STOLEN", "EXPIRED"]
              },
              "replacementId": {
                "type": "string",
                "pattern": "^[0-9]+$",
                "description": "The unique identifier of the new card that replaces this card."
              }
            }
          },
          "deliveryAddress": {
            "$ref": "#/components/schemas/DeliveryAddress"
          },
          "deliveryMethod": {
            "$ref": "#/components/schemas/DeliveryMethod"
          },
          "deliveryTrackingCode": {
            "$ref": "#/components/schemas/DeliveryTrackingCode"
          },
          "deliveryTrackingMethod": {
            "$ref": "#/components/schemas/DeliveryTrackingMethod"
          },
          "deliveryTrackingUrl": {
            "$ref": "#/components/schemas/DeliveryTrackingUrl"
          },
          "nameOnCardLine2": {
            "deprecated": true,
            "maxLength": 27,
            "pattern": "^[a-zA-Z0-9ßÀÁÂÃÄÅǍÆÇÈÉÊËÌÍÎÏÒÓÔÕÖØŠÙÚÛÜŸÝĄĆČĎĘĹĽŁŃŇÑŐŔŚȘȚŤŰŹŻŽàáâãäåǎæçèéêëìíîïòóôõöøšùúûüÿýąćčďęĺľłńňñőŕśșțťűźżž\\-^. '-]*$",
            "type": "string",
            "description": "Line 2 of the 'name on card' field. For Physical cards, this field will be printed on the card. The maximum characters allowed will depend on the design chosen and will be provided to you by Weavr when setting up your plastic cards. This field is deprecated"
          }
        }
      },
      "ManagedCardReplacement": {
        "description": "Indicates if the card is replaced by another card.",
        "type": "object",
        "required": ["id", "reason"],
        "properties": {
          "id": {
            "description": "The id of the replacement card",
            "pattern": "^[0-9]+$",
            "type": "string"
          },
          "reason": {
            "description": "The reason why the card was replaced.\n  - DAMAGED: The physical card was damaged and cannot be used at a physical terminal.\n  - LOST_STOLEN: The physical card was either lost or stolen and cannot be used.\n  - EXPIRED: The card expired.\n  - COMPROMISED: The virtual card was compromised; the virtual card details have been exposed or accessed without authorization.\n",
            "type": "string",
            "enum": ["DAMAGED", "LOST_STOLEN", "EXPIRED", "COMPROMISED"]
          }
        }
      },
      "PrepaidModeCard": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ManagedCard"
          },
          {
            "type": "object",
            "properties": {
              "balances": {
                "$ref": "#/components/schemas/ManagedInstrumentBalance"
              }
            }
          }
        ]
      },
      "DebitModeCard": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ManagedCard"
          },
          {
            "type": "object",
            "required": ["parentManagedAccountId"],
            "properties": {
              "parentManagedAccountId": {
                "type": "string",
                "pattern": "^[0-9]+$",
                "description": "Id of the managed account holding funds which the managed card will access, up to a configurable spend limit."
              },
              "userCurrency": {
                "$ref": "#/components/schemas/SupportedUserCurrency"
              },
              "availableToSpend": {
                "description": "The amount of funds from the parent managed account that are available to be spent through the card, in a given time interval.",
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/AvailableToSpend"
                }
              }
            }
          }
        ]
      },
      "SpendLimit": {
        "type": "object",
        "required": ["value", "interval"],
        "properties": {
          "startTimestamp": {
            "description": "The start timestamp of the spend limit, expressed in Epoch timestamp using millisecond precision.",
            "type": "integer",
            "format": "int64"
          },
          "value": {
            "description": "The spend limit, as amount and currency, (for the given interval).",
            "$ref": "#/components/schemas/CurrencyAmount"
          },
          "interval": {
            "$ref": "#/components/schemas/SpendLimitInterval"
          }
        }
      },
      "ProfileLevelSpendRules": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CommonLevelSpendRules"
          },
          {
            "type": "object",
            "properties": {
              "authForwardingEnabled": {
                "type": "boolean",
                "description": "Indicates if auth forwarding is enabled on profile level"
              }
            }
          }
        ]
      },
      "IdentityLevelSpendRules": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CommonLevelSpendRules"
          },
          {
            "type": "object",
            "properties": {
              "minTransactionAmount": {
                "type": "integer",
                "minimum": 0,
                "format": "int64",
                "description": "The minimum transaction amount, in card currency, that is allowed. If the transaction amount is less than this value, then the transaction will be declined. Omit this, or set to 0 if no maximum transaction amount is to be set."
              },
              "maxTransactionAmount": {
                "type": "integer",
                "minimum": 0,
                "format": "int64",
                "description": "The maximum transaction amount, in card currency, that is allowed. If the transaction amount is greater than this value, then the transaction will be declined."
              }
            }
          }
        ]
      },
      "ExecutionTimestamp": {
        "pattern": "^[0-9]+$",
        "type": "string",
        "description": "The epoch timestamp at which the transaction was executed, transitioning to a final state such as COMPLETED, REJECTED, or FAILED."
      },
      "TransactionCancelResponse": {
        "required": ["id", "state"],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^[0-9]+$",
            "description": "The id of the transaction."
          },
          "state": {
            "type": "string",
            "enum": ["SUCCESS", "ERROR"]
          },
          "errorCode": {
            "type": "string",
            "description": "Indicates the reason why the cancel operation could not be executed.\nMay be included in the response if the state is \"ERROR\".\n\n- \"GENERIC\": A generic error has occurred.\n- \"TRANSACTION_NOT_SCHEDULED\": The transaction is not in state SCHEDULED.\n- \"FORBIDDEN\": The current user is not allowed to access this transaction.\n- \"NOT_FOUND\": The transaction does not exist.\n",
            "enum": [
              "GENERIC",
              "TRANSACTION_NOT_SCHEDULED",
              "FORBIDDEN",
              "NOT_FOUND"
            ]
          }
        }
      },
      "ChallengeExemptionReason": {
        "type": "string",
        "enum": ["LOW_VALUE", "TRUSTED_BENEFICIARY"],
        "description": "The Reason the transaction was exempted from SCA verification"
      },
      "OutgoingWireTransferType": {
        "type": "string",
        "description": "The wire transfer rails used, from SEPA, Faster Payments or SWIFT.",
        "enum": ["SEPA", "FASTER_PAYMENTS", "SWIFT"]
      },
      "OutgoingWireTransferRejectedInfo": {
        "description": "Additional info when the outgoing wire transfer has been rejected, as follows:\n  - SYSTEM: The wire transfer was rejected by the system.\n  - USER: The wire transfer was rejected by the user.\n",
        "type": "string",
        "enum": ["SYSTEM", "USER"]
      },
      "OutgoingWireTransferValidationOutcome": {
        "type": "object",
        "required": ["category", "categoryResult"],
        "properties": {
          "category": {
            "type": "string",
            "enum": ["UK_CONFIRMATION_OF_PAYEE"]
          },
          "categoryResult": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/UKConfirmationOfPayeeResult"
              }
            ]
          }
        }
      },
      "BeneficiaryOperationBatchId": {
        "required": ["batchId", "operation"],
        "type": "object",
        "properties": {
          "batchId": {
            "description": "The unique identifier of a Beneficiary.",
            "type": "string",
            "pattern": "^[0-9]+$"
          },
          "operation": {
            "description": "Describes the operation that has occurred on a beneficiary batch.",
            "$ref": "#/components/schemas/BeneficiaryBatchOperation"
          }
        }
      },
      "BeneficiaryState": {
        "type": "string",
        "enum": [
          "INITIALISED",
          "INVALID",
          "PENDING_CHALLENGE",
          "CHALLENGE_FAILED",
          "ACTIVE",
          "REMOVED"
        ]
      },
      "BeneficiaryValidationFailure": {
        "type": "string",
        "enum": [
          "INSTRUMENT_DETAILS_NOT_FOUND",
          "BENEFICIARY_DETAILS_ALREADY_EXIST",
          "BENEFICIARY_BELONGS_TO_SAME_IDENTITY"
        ]
      },
      "DateOfBirth": {
        "type": "string",
        "format": "date",
        "description": "The date of birth in ISO 8601 format (YYYY-MM-DD)."
      },
      "ExternalAccountType": {
        "type": "string",
        "enum": ["linked_accounts"]
      },
      "AddressWithNoRequiredFields": {
        "type": "object",
        "description": "The address, with none of the separate fields being set as required.",
        "properties": {
          "addressLine1": {
            "type": "string",
            "description": "The first line of the address."
          },
          "addressLine2": {
            "type": "string",
            "description": "The second line of the address."
          },
          "city": {
            "type": "string",
            "description": "The city of the address."
          },
          "postCode": {
            "maxLength": 10,
            "pattern": "^[A-Za-z0-9 -]*$",
            "type": "string",
            "description": "The post code associated with the address."
          },
          "state": {
            "maxLength": 50,
            "type": "string",
            "description": "The state of the address."
          },
          "country": {
            "maxLength": 2,
            "minLength": 2,
            "pattern": "^[A-Z]+$",
            "type": "string",
            "description": "The country of the address expressed in ISO 3166 alpha-2 format."
          }
        }
      },
      "AvailableToSpend": {
        "type": "object",
        "properties": {
          "value": {
            "description": "The amount and currency that is available to spend, (for the given interval).",
            "$ref": "#/components/schemas/CurrencyAmount"
          },
          "interval": {
            "$ref": "#/components/schemas/SpendLimitInterval"
          }
        }
      },
      "SupportedUserCurrency": {
        "enum": [
          "JPY",
          "BGN",
          "CZK",
          "DKK",
          "HUF",
          "PLN",
          "RON",
          "SEK",
          "CHF",
          "ISK",
          "NOK",
          "TRY",
          "AUD",
          "BRL",
          "CAD",
          "CNY",
          "HKD",
          "IDR",
          "ILS",
          "INR",
          "KRW",
          "MXN",
          "MYR",
          "NZD",
          "PHP",
          "SGD",
          "THB",
          "ZAR",
          "EUR",
          "USD",
          "GBP"
        ],
        "type": "string"
      },
      "CommonLevelSpendRules": {
        "type": "object",
        "properties": {
          "allowedMerchantCategories": {
            "type": "array",
            "maxItems": 200,
            "items": {
              "type": "string"
            },
            "description": "Whitelist MCC: A list of allowed merchant category codes (MCCs). If the MCC does not match, then the transaction will be declined. If an MCC is also in the blocked list, the blocked list will take precedence."
          },
          "blockedMerchantCategories": {
            "type": "array",
            "maxItems": 200,
            "items": {
              "type": "string"
            },
            "description": "Blacklist MCC: A list of disallowed merchant category codes (MCCs). If the MCC matches, then the transaction will be declined. If an MCC is also in the allowed list, the blocked list will take precedence."
          },
          "allowedMerchantIds": {
            "type": "array",
            "maxItems": 200,
            "items": {
              "type": "string"
            },
            "description": "Whitelist Merchant Id: A list of allowed merchant IDs. If the Merchant Id does not match, then the transaction will be declined. If a Merchant Id is also provided in the blocked list, the blocked list will take precedence."
          },
          "blockedMerchantIds": {
            "type": "array",
            "maxItems": 200,
            "items": {
              "type": "string"
            },
            "description": "Blacklist Merchant Id: A list of disallowed merchant IDs. If the Merchant Id matches, then the transaction will be declined. If a Merchant Id is also in the allowed list, the blocked list will take precedence."
          },
          "allowedMerchantCountries": {
            "type": "array",
            "maxItems": 50,
            "items": {
              "maxLength": 2,
              "minLength": 2,
              "pattern": "^[A-Z]{2}$",
              "type": "string"
            },
            "description": "Whitelist Merchant Country: A list of allowed merchant countries, in ISO 3166-1 alpha-2 format. If the Merchant country does not match, then the transaction will be declined. If a Merchant Country is also provided in the blocked list, the blocked list will take precedence."
          },
          "blockedMerchantCountries": {
            "type": "array",
            "maxItems": 50,
            "items": {
              "maxLength": 2,
              "minLength": 2,
              "pattern": "^[A-Z]{2}$",
              "type": "string"
            },
            "description": "Blacklist Merchant Country: A list of disallowed merchant countries, in ISO 3166-1 alpha-2 format. If the Merchant country matches, then the transaction will be declined. If a Merchant Country is also in the allowed list, the blocked list will take precedence."
          },
          "allowContactless": {
            "type": "boolean",
            "description": "Indicates if a contactless transaction is allowed on the card."
          },
          "allowAtm": {
            "type": "boolean",
            "description": "Indicates if an ATM Withdrawal transaction is allowed on the card."
          },
          "allowECommerce": {
            "type": "boolean",
            "description": "Indicates if an online transaction is allowed on the card."
          },
          "allowCashback": {
            "type": "boolean",
            "description": "Indicates if a cashback transaction at a physical terminal is allowed on the card."
          },
          "allowCreditAuthorisations": {
            "type": "boolean",
            "description": "Indicates if a the card can receive a credit transaction."
          },
          "rolloverPolicy": {
            "$ref": "#/components/schemas/RolloverPolicy"
          }
        }
      },
      "DeliveryTrackingCode": {
        "type": "string",
        "description": "The delivery tracking code for tracking the physical card's delivery status. This may not always be available on the first dispatched event, and so you will receive an additional dispatched notification with the delivery tracking code populated as soon as it is available."
      },
      "DeliveryTrackingMethod": {
        "type": "string",
        "description": "The delivery tracking method for tracking the physical card's delivery status."
      },
      "DeliveryTrackingUrl": {
        "type": "string",
        "description": "The delivery tracking URL for tracking the physical card's delivery status."
      },
      "SpendLimitInterval": {
        "description": "The time period for which the `spendLimit` is valid.\n - DAILY: starting from 00:00:00 UTC of current day to 23:59:59 UTC of current day\n - WEEKLY: 00:00:00 UTC Monday of current week to following Sunday 23:59:59 UTC\n - MONTHLY: 1st of current calendar month to end of current calendar month\n - QUARTERLY: starting from beginning of current quarter where quarters are defined as follows:\n  - 1 January 00:00:00 UTC to 31 March 23:59:59 UTC\n  - 1 April 00:00:00 UTC to 30 Jun 23:59:59 UTC\n  - 1 July 00:00:00 UTC to 30 September 23:59:59 UTC\n  - 1 October 00:00:00 UTC to 31 December 23:59:59 UTC\n\n- YEARLY: 1 January 00:00:00 UTC of current calendar year to 31 December 23:59:59 UTC of current calendar year.\n- ALWAYS: This indicates that the `spendLimit` is the total amount that can be spent through the card throughout the whole lifetime of the card.\n",
        "type": "string",
        "enum": ["DAILY", "WEEKLY", "MONTHLY", "QUARTERLY", "YEARLY", "ALWAYS"]
      },
      "UKConfirmationOfPayeeResult": {
        "type": "object",
        "required": ["match"],
        "properties": {
          "match": {
            "type": "string",
            "description": "The result of matching performed by the UK Confirmation of Payee responder",
            "enum": ["EXACT_MATCH", "CLOSE_MATCH", "NO_MATCH"]
          },
          "reasonCode": {
            "type": "string",
            "description": "The reason why the matching failed at the UK Confirmation of Payee responder:\n\n  - ANNM: The CoP responder confirms that the account `name` provided does not match;\n  - MBAM: The CoP responder indicates that the account `name` provided closely matches the actual account in its records, the actual account name is returned in the `accountName` field;\n  - BANM: The account `type` that the user specified is 'PERSONAL', but the CoP responder indicates that the actual account matching the `name` provided is actually BUSINESS;\n  - PANM: The account `type` that the user specified is 'BUSINESS', but the CoP responder indicates that the actual account matching the `name` provided is actually PERSONAL;\n  - BAMM: The account `type` that the user specified is 'PERSONAL', but the CoP responder indicates that an account closely matching the `name` provided is BUSINESS;\n  - PAMM: The account `type` that the user specified is 'BUSINESS', but the CoP responder indicates that an account closely matching the `name` provided is PERSONAL;\n  - AC01: The account does not exist in the CoP responders books, the `accountNumber` specified is likely incorrect; \n  - IVCR: The CoP responder was unable to locate an account based on the `secondaryReference` field;\n  - ACNS: The account is not supported for CoP by the CoP responder;\n  - OPTO: The owner of the account has opted out of CoP service by the CoP responder;\n  - CASS: The account has been switched using the Current Account Switch Service;\n  - SCNS: The `sortCode` provided is not supported at endpoint;\n",
            "enum": [
              "ANNM",
              "MBAM",
              "BANM",
              "PANM",
              "BAMM",
              "PAMM",
              "AC01",
              "IVCR",
              "ACNS",
              "OPTO",
              "CASS",
              "SCNS"
            ]
          },
          "accountName": {
            "type": "string",
            "description": "Returned when the `match` is a `CLOSE_MATCH` and the `reasonCode` is MBAM, BAMM or PAMM"
          }
        }
      },
      "RolloverPolicy": {
        "type": "object",
        "description": "The rollover policy will dictate how Weavr handles any eventual overspending. This is possible if a merchant clears more funds than authorised, or when a merchant clears funds without authorising, resulting in the `availableToSpend` value to go into negative. Rollover is relative to a `spendLimit.interval`",
        "required": ["rolloverNegative"],
        "properties": {
          "rolloverNegative": {
            "type": "boolean",
            "description": "If set to true any overspend will keep rolling over and get deducted in the upcoming intervals until the `availableToSpend` is back to a positive value. Any overspend will be deducted from the `availableToSpend` at the beginning of the next interval."
          }
        }
      }
    },
    "headers": {
      "request-ref": {
        "description": "A request identifier. Providing this reference when contacting our support team will help us investigate your query.",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "x-ratelimit-limit": {
        "description": "Example: `20, 10;w=60, 20;w=3600, 200;w=86400`\nThe first number (20) is the limit that has been exceeded.\nThe remaining numbers are the limits that are in force, with 'w' meaning 'window in seconds'. In this example `20;w=3600` was exceeded. 20 calls in 3600secs (1hr)\n",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "x-ratelimit-reset": {
        "description": "The number of seconds until the window is reset.",
        "required": true,
        "schema": {
          "minimum": 0,
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "requestBodies": {
      "LoginWithPasswordRequest": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "required": ["email", "password"],
              "type": "object",
              "properties": {
                "email": {
                  "$ref": "#/components/schemas/Email"
                },
                "password": {
                  "$ref": "#/components/schemas/SensitivePassword"
                }
              }
            }
          }
        }
      },
      "LoginViaBiometricsRequest": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "required": ["email"],
              "type": "object",
              "properties": {
                "email": {
                  "$ref": "#/components/schemas/Email"
                },
                "identity": {
                  "$ref": "#/components/schemas/IdentityId"
                }
              }
            }
          }
        }
      },
      "SCAVerifyRequest": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "required": ["verificationCode"],
              "type": "object",
              "properties": {
                "verificationCode": {
                  "description": "The code received by the user on the device.",
                  "$ref": "#/components/schemas/Nonce"
                }
              }
            }
          }
        }
      },
      "PasswordCreateRequest": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "required": ["password"],
              "type": "object",
              "properties": {
                "password": {
                  "$ref": "#/components/schemas/SensitivePassword"
                }
              }
            }
          }
        }
      },
      "PasswordUpdateRequest": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "required": ["oldPassword", "newPassword"],
              "type": "object",
              "properties": {
                "oldPassword": {
                  "$ref": "#/components/schemas/SensitivePassword"
                },
                "newPassword": {
                  "$ref": "#/components/schemas/SensitivePassword"
                }
              }
            }
          }
        }
      },
      "PasswordValidateRequest": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "required": ["password"],
              "type": "object",
              "properties": {
                "password": {
                  "$ref": "#/components/schemas/SensitivePassword"
                }
              }
            }
          }
        }
      },
      "EmailRequest": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "required": ["email"],
              "type": "object",
              "properties": {
                "email": {
                  "$ref": "#/components/schemas/Email"
                }
              }
            }
          }
        }
      },
      "LostPasswordResumeRequest": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "required": ["email", "nonce", "newPassword"],
              "type": "object",
              "properties": {
                "nonce": {
                  "$ref": "#/components/schemas/Nonce"
                },
                "email": {
                  "$ref": "#/components/schemas/Email"
                },
                "newPassword": {
                  "$ref": "#/components/schemas/SensitivePassword"
                }
              }
            }
          }
        }
      },
      "MultipleSCAChallengeRequest": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "required": ["resourceType", "resourceIds"],
              "type": "object",
              "properties": {
                "resourceType": {
                  "description": "The resource type that the subsequent Ids pertain to. Note that the `linked_account_declaration` can only be performed by a logged in Root User.",
                  "$ref": "#/components/schemas/MultipleSCAResourceType"
                },
                "resourceIds": {
                  "type": "array",
                  "description": "Can be used with a single or a list of resource Ids. A resource Id is the unique identifier of the resource type that was provided in the response when the resource (such as a transaction) was created.",
                  "items": {
                    "type": "string",
                    "pattern": "^[0-9]{1,}$"
                  }
                }
              }
            }
          }
        }
      },
      "MultipleSCAVerifyRequest": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "required": ["verificationCode", "resourceType"],
              "type": "object",
              "properties": {
                "verificationCode": {
                  "description": "The code received by the user on the device.",
                  "$ref": "#/components/schemas/Nonce"
                },
                "resourceType": {
                  "description": "The resource type that the subsequent Ids pertain to. Note that the `linked_account_declaration` can only be performed by a logged in Root User.",
                  "$ref": "#/components/schemas/MultipleSCAResourceType"
                }
              }
            }
          }
        }
      },
      "AccessTokenRequest": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "required": ["identity"],
              "type": "object",
              "properties": {
                "identity": {
                  "$ref": "#/components/schemas/IdentityId"
                },
                "clientAssertion": {
                  "description": "Generated using the certificate linked to the Delegated API Client. This feature is available only to customers that have been enabled with delegation functionality.",
                  "type": "string"
                },
                "token": {
                  "description": "A short-lived one-time token to be exchanged for an access token. This token is used for identity verification and authorisation purposes.",
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "UserCreateRequest": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "required": ["email", "name", "surname"],
              "type": "object",
              "properties": {
                "name": {
                  "minLength": 1,
                  "maxLength": 50,
                  "type": "string",
                  "description": "The first name of the user."
                },
                "surname": {
                  "minLength": 1,
                  "maxLength": 50,
                  "type": "string",
                  "description": "The last name of the user."
                },
                "email": {
                  "$ref": "#/components/schemas/Email"
                },
                "mobile": {
                  "$ref": "#/components/schemas/Mobile"
                },
                "dateOfBirth": {
                  "description": "Date of birth of the authorised user.",
                  "$ref": "#/components/schemas/Date"
                },
                "tag": {
                  "$ref": "#/components/schemas/Tag"
                },
                "countryOfResidence": {
                  "type": "string",
                  "maxLength": 2,
                  "minLength": 2,
                  "pattern": "^[A-Z]+$"
                },
                "locale": {
                  "$ref": "#/components/schemas/UserLocale"
                },
                "brand": {
                  "$ref": "#/components/schemas/Brand"
                }
              }
            }
          }
        }
      },
      "BulkProcessExecute": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/BulkProcessExecute"
            }
          }
        }
      },
      "UserPatchRequest": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "name": {
                  "minLength": 1,
                  "maxLength": 50,
                  "type": "string",
                  "description": "The first name of the user."
                },
                "surname": {
                  "minLength": 1,
                  "maxLength": 50,
                  "type": "string",
                  "description": "The last name of the user."
                },
                "email": {
                  "$ref": "#/components/schemas/Email"
                },
                "mobile": {
                  "$ref": "#/components/schemas/Mobile"
                },
                "dateOfBirth": {
                  "description": "Date of birth of the authorised user.",
                  "$ref": "#/components/schemas/Date"
                },
                "tag": {
                  "$ref": "#/components/schemas/Tag"
                },
                "locale": {
                  "$ref": "#/components/schemas/UserLocale"
                },
                "brand": {
                  "$ref": "#/components/schemas/Brand"
                }
              }
            }
          }
        }
      },
      "UserInviteValidateRequest": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "required": ["inviteCode"],
              "type": "object",
              "properties": {
                "inviteCode": {
                  "$ref": "#/components/schemas/Nonce"
                }
              }
            }
          }
        }
      },
      "UserInviteConsumeRequest": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "required": ["inviteCode", "password"],
              "type": "object",
              "properties": {
                "inviteCode": {
                  "$ref": "#/components/schemas/Nonce"
                },
                "password": {
                  "$ref": "#/components/schemas/SensitivePassword"
                }
              }
            }
          }
        }
      },
      "CorporateCreateRequest": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "required": [
                "profileId",
                "rootUser",
                "company",
                "ipAddress",
                "baseCurrency"
              ],
              "type": "object",
              "properties": {
                "profileId": {
                  "$ref": "#/components/schemas/ProfileId"
                },
                "tag": {
                  "$ref": "#/components/schemas/Tag"
                },
                "rootUser": {
                  "required": [
                    "name",
                    "surname",
                    "email",
                    "mobile",
                    "companyPosition"
                  ],
                  "type": "object",
                  "description": "The root user needs to be a director or a legal representative of the corporate that is being onboarded - this user cannot be deactivated.\n\nRoot users need to verify their email address and mobile number, as well as complete KYC as part of the Corporate's due diligence process.\n",
                  "properties": {
                    "name": {
                      "maxLength": 50,
                      "type": "string",
                      "description": "The first name of the root user."
                    },
                    "surname": {
                      "maxLength": 50,
                      "type": "string",
                      "description": "The last name of the root user."
                    },
                    "email": {
                      "$ref": "#/components/schemas/Email"
                    },
                    "mobile": {
                      "$ref": "#/components/schemas/Mobile"
                    },
                    "companyPosition": {
                      "$ref": "#/components/schemas/CompanyPosition"
                    },
                    "dateOfBirth": {
                      "description": "Date of birth of the root user.",
                      "$ref": "#/components/schemas/Date"
                    },
                    "tag": {
                      "$ref": "#/components/schemas/Tag"
                    },
                    "locale": {
                      "$ref": "#/components/schemas/UserLocale"
                    },
                    "brand": {
                      "$ref": "#/components/schemas/Brand"
                    }
                  }
                },
                "company": {
                  "required": ["name", "type", "registrationCountry"],
                  "type": "object",
                  "description": "The details associated with the company being on-boarded. The details provided need to match exactly with the details provided during KYB. ",
                  "properties": {
                    "type": {
                      "$ref": "#/components/schemas/CompanyType"
                    },
                    "businessAddress": {
                      "$ref": "#/components/schemas/Address"
                    },
                    "name": {
                      "maxLength": 100,
                      "type": "string",
                      "description": "The registered name of the company."
                    },
                    "registrationNumber": {
                      "maxLength": 20,
                      "minLength": 1,
                      "type": "string",
                      "description": "The registration number of the company."
                    },
                    "registrationCountry": {
                      "maxLength": 2,
                      "minLength": 2,
                      "pattern": "^[A-Z]+$",
                      "type": "string",
                      "description": "The country of company registration, in ISO 3166 alpha-2 format."
                    }
                  }
                },
                "industry": {
                  "$ref": "#/components/schemas/Industry"
                },
                "sourceOfFunds": {
                  "$ref": "#/components/schemas/CorporateSourceOfFunds"
                },
                "sourceOfFundsOther": {
                  "type": "string",
                  "description": "Description of source of funds in case `OTHER` was chosen.",
                  "deprecated": true
                },
                "acceptedTerms": {
                  "type": "boolean",
                  "description": "Must be set to *true* to indicate that the corporate root user has accepted the terms and conditions.",
                  "deprecated": true
                },
                "ipAddress": {
                  "maxLength": 45,
                  "minLength": 5,
                  "type": "string",
                  "description": "The IP address of the corporate user doing the registration."
                },
                "baseCurrency": {
                  "$ref": "#/components/schemas/Currency"
                },
                "feeGroup": {
                  "type": "string",
                  "description": "Fee groups allow the possibility to charge different fees to users under the same profile. If fee groups are not required, ignore this field."
                }
              }
            }
          }
        }
      },
      "CorporateUpdateRequest": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "tag": {
                  "$ref": "#/components/schemas/Tag"
                },
                "industry": {
                  "$ref": "#/components/schemas/Industry"
                },
                "sourceOfFunds": {
                  "$ref": "#/components/schemas/CorporateSourceOfFunds"
                },
                "sourceOfFundsOther": {
                  "type": "string",
                  "deprecated": true,
                  "description": "Description of source of funds in case `OTHER` was chosen."
                },
                "companyBusinessAddress": {
                  "$ref": "#/components/schemas/Address"
                },
                "feeGroup": {
                  "type": "string",
                  "description": "The fee group which the Corporate will be bound to. Do not specify this if you are not using fee groups."
                },
                "baseCurrency": {
                  "$ref": "#/components/schemas/Currency"
                },
                "name": {
                  "maxLength": 20,
                  "pattern": "^[^0-9~!@#$%^*()_+={}\\|:;,<>/?]*$",
                  "type": "string",
                  "description": "The first name of the Corporate root user."
                },
                "surname": {
                  "maxLength": 20,
                  "pattern": "^[^0-9~!@#$%^*()_+={}\\|:;,<>/?]*$",
                  "type": "string",
                  "description": "The last name of the Corporate root user."
                },
                "email": {
                  "$ref": "#/components/schemas/Email"
                },
                "mobile": {
                  "$ref": "#/components/schemas/Mobile"
                },
                "dateOfBirth": {
                  "description": "Date of birth of the authorised user.",
                  "$ref": "#/components/schemas/Date"
                },
                "resetMobileCounter": {
                  "type": "boolean"
                },
                "userTag": {
                  "description": "The tag to be assigned to the root user.",
                  "$ref": "#/components/schemas/Tag"
                },
                "locale": {
                  "$ref": "#/components/schemas/UserLocale"
                },
                "brand": {
                  "$ref": "#/components/schemas/Brand"
                }
              }
            }
          }
        }
      },
      "EmailVerifyRequest": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "required": ["email", "verificationCode"],
              "type": "object",
              "properties": {
                "email": {
                  "$ref": "#/components/schemas/Email"
                },
                "verificationCode": {
                  "$ref": "#/components/schemas/VerificationCode"
                }
              }
            }
          }
        }
      },
      "ChargeFeeRequest": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "description": "The custom fee to be charged to the consumer/corporate.",
              "$ref": "#/components/schemas/Fee"
            }
          }
        }
      },
      "ConsumerCreateRequest": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "required": ["profileId", "rootUser", "ipAddress"],
              "type": "object",
              "properties": {
                "profileId": {
                  "$ref": "#/components/schemas/ProfileId"
                },
                "tag": {
                  "$ref": "#/components/schemas/Tag"
                },
                "rootUser": {
                  "required": [
                    "name",
                    "surname",
                    "email",
                    "mobile",
                    "dateOfBirth",
                    "address"
                  ],
                  "type": "object",
                  "description": "The root user represents the identity.\n\nRoot users need to verify their email address and mobile number, as well as complete KYC, as part of the Consumer's due diligence process.\n",
                  "properties": {
                    "name": {
                      "maxLength": 50,
                      "type": "string",
                      "description": "The first name of the root user."
                    },
                    "surname": {
                      "maxLength": 50,
                      "type": "string",
                      "description": "The last name of the root user."
                    },
                    "email": {
                      "$ref": "#/components/schemas/Email"
                    },
                    "mobile": {
                      "$ref": "#/components/schemas/Mobile"
                    },
                    "dateOfBirth": {
                      "description": "Date of birth of the consumer root user.",
                      "$ref": "#/components/schemas/Date"
                    },
                    "occupation": {
                      "$ref": "#/components/schemas/Occupation"
                    },
                    "address": {
                      "description": "Address of the consumer root user.",
                      "$ref": "#/components/schemas/AddressWithCountryRequired"
                    },
                    "placeOfBirth": {
                      "type": "string",
                      "description": "Place of birth of the consumer root user."
                    },
                    "nationality": {
                      "description": "Nationality of the root user, in ISO 3166 alpha-2 format.\"",
                      "$ref": "#/components/schemas/Nationality"
                    },
                    "tag": {
                      "description": "Tag to be assigned to the consumer root user.",
                      "$ref": "#/components/schemas/Tag"
                    },
                    "locale": {
                      "$ref": "#/components/schemas/UserLocale"
                    },
                    "brand": {
                      "$ref": "#/components/schemas/Brand"
                    }
                  }
                },
                "ipAddress": {
                  "maxLength": 45,
                  "minLength": 5,
                  "type": "string",
                  "description": "The IP address of the user doing the registration."
                },
                "acceptedTerms": {
                  "type": "boolean",
                  "description": "Must be set to *true* to indicate that the consumer has accepted the terms and conditions.",
                  "deprecated": true
                },
                "baseCurrency": {
                  "$ref": "#/components/schemas/Currency"
                },
                "feeGroup": {
                  "type": "string",
                  "description": "The fee group which the consumer is bound to. Fee groups provide the possibility of different fees to users under the same profile. If fee groups are not required, ignore this field."
                },
                "sourceOfFunds": {
                  "$ref": "#/components/schemas/ConsumerSourceOfFunds"
                },
                "sourceOfFundsOther": {
                  "deprecated": true,
                  "type": "string",
                  "description": "Description of source of funds in case `OTHER` was chosen."
                }
              }
            }
          }
        }
      },
      "ConsumerUpdateRequest": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "tag": {
                  "$ref": "#/components/schemas/Tag"
                },
                "name": {
                  "maxLength": 20,
                  "pattern": "^[^0-9~!@#$%^*()_+={}\\|:;,<>/?]*$",
                  "type": "string",
                  "description": "The first name of the Consumer root user."
                },
                "surname": {
                  "maxLength": 20,
                  "pattern": "^[^0-9~!@#$%^*()_+={}\\|:;,<>/?]*$",
                  "type": "string",
                  "description": "The last name of the Consumer root user."
                },
                "email": {
                  "$ref": "#/components/schemas/Email"
                },
                "mobile": {
                  "$ref": "#/components/schemas/Mobile"
                },
                "dateOfBirth": {
                  "description": "Date of birth of the consumer root user.",
                  "$ref": "#/components/schemas/Date"
                },
                "address": {
                  "description": "Address of the consumer root user.",
                  "$ref": "#/components/schemas/AddressWithCountryRequired"
                },
                "feeGroup": {
                  "type": "string",
                  "description": "The fee group which the consumer will be bound to. Do not specify this if you are not using fee groups."
                },
                "baseCurrency": {
                  "$ref": "#/components/schemas/Currency"
                },
                "occupation": {
                  "$ref": "#/components/schemas/Occupation"
                },
                "sourceOfFunds": {
                  "$ref": "#/components/schemas/ConsumerSourceOfFunds"
                },
                "sourceOfFundsOther": {
                  "deprecated": true,
                  "type": "string",
                  "description": "Description of source of funds in case `OTHER` was chosen."
                },
                "placeOfBirth": {
                  "type": "string",
                  "description": "The place of birth of the consumer root user."
                },
                "nationality": {
                  "description": "Nationality of the consumer root user, in ISO 3166 alpha-2 format.",
                  "$ref": "#/components/schemas/Nationality"
                },
                "resetMobileCounter": {
                  "type": "boolean"
                },
                "userTag": {
                  "description": "The tag to be assigned to the root user.",
                  "$ref": "#/components/schemas/Tag"
                },
                "locale": {
                  "$ref": "#/components/schemas/UserLocale"
                },
                "brand": {
                  "$ref": "#/components/schemas/Brand"
                }
              }
            }
          }
        }
      },
      "ConsumerKycLevelRequest": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "kycLevel": {
                  "$ref": "#/components/schemas/KycLevel",
                  "description": "The KYC level that the consumer will be assigned to, which determines the due diligence details that the user will need to provide."
                },
                "prefillDetails": {
                  "description": "List of KYC details to be prefilled for the consumer.",
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string"
                      },
                      "value": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "LinkedAccountCreationRequest": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CreateLinkedAccountRequest"
            }
          }
        }
      },
      "LinkedAccountMetadataUpdateRequest": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "tag": {
                  "$ref": "#/components/schemas/Tag"
                },
                "friendlyName": {
                  "maxLength": 50,
                  "minLength": 1,
                  "type": "string",
                  "description": "Updates the friendly name of the linked account. Leave blank if no change is needed."
                }
              }
            }
          }
        }
      },
      "ManagedAccountCreateRequest": {
        "content": {
          "application/json": {
            "schema": {
              "required": ["profileId", "friendlyName", "currency"],
              "type": "object",
              "properties": {
                "profileId": {
                  "$ref": "#/components/schemas/ProfileId"
                },
                "friendlyName": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 50,
                  "description": "The friendly name to be given to the managed account."
                },
                "currency": {
                  "$ref": "#/components/schemas/Currency"
                },
                "tag": {
                  "$ref": "#/components/schemas/Tag"
                }
              }
            }
          }
        },
        "required": true
      },
      "ManagedAccountUpdateRequest": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "tag": {
                  "$ref": "#/components/schemas/Tag"
                },
                "friendlyName": {
                  "maxLength": 50,
                  "minLength": 1,
                  "type": "string",
                  "description": "Updates the friendly name of the managed account. Leave blank if no change is needed."
                }
              }
            }
          }
        }
      },
      "ManagedCardRequest": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ManagedCardRequest"
            }
          }
        }
      },
      "ManagedCardUpdateRequest": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "tag": {
                  "$ref": "#/components/schemas/Tag"
                },
                "friendlyName": {
                  "maxLength": 50,
                  "minLength": 1,
                  "type": "string",
                  "description": "Updates the friendly name of the card. Leave blank if no change is needed."
                },
                "nameOnCard": {
                  "maxLength": 27,
                  "pattern": "^[a-zA-Z0-9ßÀÁÂÃÄÅǍÆÇÈÉÊËÌÍÎÏÒÓÔÕÖØŠÙÚÛÜŸÝĄĆČĎĘĹĽŁŃŇÑŐŔŚȘȚŤŰŹŻŽàáâãäåǎæçèéêëìíîïòóôõöøšùúûüÿýąćčďęĺľłńňñőŕśșțťűźżž\\-^. '-]*$",
                  "type": "string",
                  "description": "The card holder's name for the card.\n\nThis may be verified by merchants when the card is used online. For Physical cards, this field will be printed on the card.\nThe maximum characters allowed will depend on the design chosen and will be provided to you by Weavr when setting up your plastic cards.\n"
                },
                "nameOnCardLine2": {
                  "maxLength": 27,
                  "pattern": "^[a-zA-Z0-9ßÀÁÂÃÄÅǍÆÇÈÉÊËÌÍÎÏÒÓÔÕÖØŠÙÚÛÜŸÝĄĆČĎĘĹĽŁŃŇÑŐŔŚȘȚŤŰŹŻŽàáâãäåǎæçèéêëìíîïòóôõöøšùúûüÿýąćčďęĺľłńňñőŕśșțťűźżž\\-^. '-]*$",
                  "type": "string",
                  "description": "Line 2 of the 'name on card' field. For Physical cards, this field will be printed on the card. The maximum characters allowed will depend on the design chosen and will be provided to you by Weavr when setting up your plastic cards."
                },
                "cardholderMobileNumber": {
                  "maxLength": 15,
                  "minLength": 5,
                  "pattern": "^\\+[0-9]+$",
                  "type": "string",
                  "description": "The mobile number including country code of the card holder, needed in case a 3DS challenge is required.",
                  "deprecated": true
                },
                "billingAddress": {
                  "description": "The billing address of the card holder. Merchants may request the billing address to be checked for online purchases.",
                  "$ref": "#/components/schemas/BillingAddress"
                },
                "deliveryAddress": {
                  "description": "The delivery address set for the card holder. This is only applicable for physical cards.",
                  "$ref": "#/components/schemas/DeliveryAddress"
                },
                "deliveryMethod": {
                  "$ref": "#/components/schemas/DeliveryMethod"
                },
                "digitalWallets": {
                  "$ref": "#/components/schemas/DigitalWallets"
                },
                "authForwardingDefaultTimeoutDecision": {
                  "type": "string",
                  "description": "Default decision for auth forwarding on timeout",
                  "enum": ["APPROVE", "DECLINE"]
                },
                "threeDSecureAuthConfig": {
                  "$ref": "#/components/schemas/ThreeDSecureAuthConfig"
                },
                "externalData": {
                  "$ref": "#/components/schemas/ExternalData"
                },
                "bulkDelivery": {
                  "$ref": "#/components/schemas/BulkCardDelivery"
                },
                "activationCode": {
                  "$ref": "#/components/schemas/PhysicalCardActivationCode",
                  "description": "The unique code to be used to activate the physical card."
                },
                "productReference": {
                  "type": "string",
                  "description": "The product design reference to be used for this physical card.\n\nThis reference will be given to you once your physical card programme has been set up. If only one card programme is configured, this field can be left empty.\n"
                },
                "carrierType": {
                  "type": "string",
                  "description": "The carrier type to be used for this physical card.\n\nThis reference will be given to you once your physical card carrier has been set up. If only one carrier is configured, this field can be left empty.\n"
                },
                "renewalType": {
                  "$ref": "#/components/schemas/CardRenewalType"
                },
                "userId": {
                  "$ref": "#/components/schemas/UserId",
                  "description": "The Authorised User to be linked to the card, whose authentication details will be used for actions such as 3DS authentication, or manual provisioning to a digital wallet. This field can be used instead of threeDSecureAuthConfig as it better describes the wider scope of possible uses."
                }
              }
            }
          }
        }
      },
      "ManagedCardAssignRequest": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "required": [
                "externalReference",
                "activationCode",
                "friendlyName",
                "nameOnCard",
                "billingAddress"
              ],
              "type": "object",
              "properties": {
                "externalReference": {
                  "type": "string",
                  "description": "Unique code identifying a card."
                },
                "activationCode": {
                  "type": "string",
                  "description": "The code to be used to activate the physical card. Depending on how the cards were created, this may be a code set upon creation, or it may be the same as the `externalReference`."
                },
                "friendlyName": {
                  "minLength": 1,
                  "maxLength": 50,
                  "type": "string",
                  "description": "The friendly name given to the card."
                },
                "nameOnCard": {
                  "maxLength": 27,
                  "pattern": "^[a-zA-Z0-9ßÀÁÂÃÄÅǍÆÇÈÉÊËÌÍÎÏÒÓÔÕÖØŠÙÚÛÜŸÝĄĆČĎĘĹĽŁŃŇÑŐŔŚȘȚŤŰŹŻŽàáâãäåǎæçèéêëìíîïòóôõöøšùúûüÿýąćčďęĺľłńňñőŕśșțťűźżž\\-^. '-]*$",
                  "type": "string",
                  "description": "The card holder’s name for the card. This may be verified by merchants when the card is used online. For Physical cards, this field will be printed on the card. The maximum characters allowed will depend on the design chosen and will be provided to you by Weavr when setting up your plastic cards."
                },
                "nameOnCardLine2": {
                  "maxLength": 27,
                  "pattern": "^[a-zA-Z0-9ßÀÁÂÃÄÅǍÆÇÈÉÊËÌÍÎÏÒÓÔÕÖØŠÙÚÛÜŸÝĄĆČĎĘĹĽŁŃŇÑŐŔŚȘȚŤŰŹŻŽàáâãäåǎæçèéêëìíîïòóôõöøšùúûüÿýąćčďęĺľłńňñőŕśșțťűźżž\\-^. '-]*$",
                  "type": "string",
                  "description": "Line 2 of the 'name on card' field. For Physical cards, this field will be printed on the card. The maximum characters allowed will depend on the design chosen and will be provided to you by Weavr when setting up your plastic cards."
                },
                "billingAddress": {
                  "description": "The billing address set for the card holder, required for AVS checking.",
                  "$ref": "#/components/schemas/BillingAddress"
                },
                "cardholderMobileNumber": {
                  "maxLength": 15,
                  "minLength": 5,
                  "pattern": "^\\+[0-9]+$",
                  "type": "string",
                  "description": "The mobile number including country code of the card holder, needed for 3DS challenge."
                },
                "authForwardingDefaultTimeoutDecision": {
                  "type": "string",
                  "description": "Default decision for auth forwarding on timeout",
                  "enum": ["APPROVE", "DECLINE"]
                },
                "threeDSecureAuthConfig": {
                  "$ref": "#/components/schemas/ThreeDSecureAuthConfig"
                },
                "userId": {
                  "$ref": "#/components/schemas/UserId",
                  "description": "The Authorised User to be linked to the card, whose authentication details will be used for actions such as 3DS authentication, or manual provisioning to a digital wallet. This field can be used instead of threeDSecureAuthConfig as it better describes the wider scope of possible uses."
                }
              }
            }
          }
        }
      },
      "CardLevelSpendRulesRequest": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CardLevelSpendRules"
            }
          }
        }
      },
      "UpdateCardLevelSpendRulesRequest": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/UpdateCardLevelSpendRules"
            }
          }
        }
      },
      "ManagedCardPhysicalUpgradeRequest": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "required": ["deliveryAddress"],
              "type": "object",
              "properties": {
                "productReference": {
                  "type": "string",
                  "description": "The product design reference to be used for this physical card.\n\nThis reference will be given to you once your physical card programme has been set up. If only one card programme is configured, this field can be left empty.\n"
                },
                "carrierType": {
                  "type": "string",
                  "description": "The carrier type to be used for this physical card.\n\nThis reference will be given to you once your physical card carrier has been set up. If only one carrier is configured, this field can be left empty.\n"
                },
                "deliveryMethod": {
                  "$ref": "#/components/schemas/DeliveryMethod"
                },
                "deliveryAddress": {
                  "$ref": "#/components/schemas/DeliveryAddress"
                },
                "activationCode": {
                  "$ref": "#/components/schemas/PhysicalCardActivationCode",
                  "description": "A unique code that can be used when activating the physical card. This is an optional feature. An end-user will always need to be logged in to activate a card, but providing an activation code can give an additional layer of comfort to a user regarding security."
                },
                "pin": {
                  "$ref": "#/components/schemas/SensitivePin"
                },
                "nameOnCardLine2": {
                  "maxLength": 27,
                  "pattern": "^[a-zA-Z0-9ßÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÒÓÔÕÖØŠÙÚÛÜŸÝĄĆČĎĘĹĽŁŃŇÑŐŔŚȘȚŤŰŹŻŽàáâãäåæçèéêëìíîïòóôõöøšùúûüÿýąćčďęĺľłńňñőŕśșțťűźżž\\-^. '-]*$",
                  "type": "string",
                  "description": "Line 2 of the 'name on card' field. For Physical cards, this field will be printed on the card. The maximum characters allowed will depend on the design chosen and will be provided to you by Weavr when setting up your plastic cards. This field is deprecated.",
                  "deprecated": true
                },
                "bulkDelivery": {
                  "$ref": "#/components/schemas/BulkCardDelivery"
                }
              }
            }
          }
        }
      },
      "ManagedCardPhysicalActivateRequest": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "activationCode": {
                  "$ref": "#/components/schemas/PhysicalCardActivationCode",
                  "description": "The code that was set up when upgrading the card, that can be used to activate a physical card. If provided in the request, this will be validated against the code that was originally provided. If left blank, no validation will be carried out."
                }
              }
            }
          }
        }
      },
      "ManagedCardPhysicalReplaceDamagedRequest": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "required": ["activationCode"],
              "type": "object",
              "properties": {
                "activationCode": {
                  "$ref": "#/components/schemas/PhysicalCardActivationCode",
                  "description": "The code that will be used to activate the physical card replacement."
                }
              }
            }
          }
        }
      },
      "ManagedCardPhysicalReplaceLostOrStolenRequest": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "required": ["activationCode"],
              "type": "object",
              "properties": {
                "activationCode": {
                  "$ref": "#/components/schemas/PhysicalCardActivationCode",
                  "description": "A unique code to be used to activate the replacement physical card."
                }
              }
            }
          }
        }
      },
      "CreateTransferRequest": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "required": [
                "profileId",
                "source",
                "destination",
                "destinationAmount"
              ],
              "type": "object",
              "properties": {
                "profileId": {
                  "$ref": "#/components/schemas/ProfileId"
                },
                "tag": {
                  "$ref": "#/components/schemas/Tag"
                },
                "source": {
                  "description": "The managed account or managed card from where the funds will be transferred.",
                  "$ref": "#/components/schemas/InstrumentId"
                },
                "description": {
                  "type": "string",
                  "maxLength": 255,
                  "pattern": "^[a-zA-Z0-9\\/\\-?:().$_,'+\\s#=!\"%&*<>;\\{@\\r\\n]*$",
                  "description": "The description details that are included in the transaction as reference."
                },
                "destination": {
                  "description": "The managed account or managed card to where the funds will be transferred.",
                  "$ref": "#/components/schemas/InstrumentId"
                },
                "destinationAmount": {
                  "description": "The amount, in same currency as the source and destination instruments, to be transferred to the destination (exclusive of any fee amount that may be specified in the profile).",
                  "$ref": "#/components/schemas/CurrencyAmount"
                },
                "scheduledTimestamp": {
                  "$ref": "#/components/schemas/ScheduledTimestamp"
                }
              }
            }
          }
        }
      },
      "TransactionBulkCancelRequest": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/TransactionBulkCancelRequest"
            }
          }
        }
      },
      "SendCreateRequest": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/SendCreateRequest"
            }
          }
        }
      },
      "SendBulkCreateRequest": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/SendBulkCreateRequest"
            }
          }
        }
      },
      "OutgoingWireTransferCreateRequest": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/OutgoingWireTransferCreateRequest"
            }
          }
        }
      },
      "OutgoingWireTransferBulkCreateRequest": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/OutgoingWireTransferBulkCreateRequest"
            }
          }
        }
      },
      "TransactionSingleCancelRequest": {
        "required": false,
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/TransactionSingleCancelRequest"
            }
          }
        }
      },
      "BeneficiaryBatchCreateRequest": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "required": ["beneficiaries"],
              "type": "object",
              "properties": {
                "tag": {
                  "$ref": "#/components/schemas/Tag"
                },
                "beneficiaries": {
                  "type": "array",
                  "description": "The object representing the beneficiaries' details.",
                  "items": {
                    "$ref": "#/components/schemas/BasicBeneficiary"
                  }
                }
              }
            }
          }
        }
      },
      "BeneficiaryBatchRemoveRequest": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "required": ["beneficiaryIds"],
              "type": "object",
              "properties": {
                "beneficiaryIds": {
                  "type": "array",
                  "description": "A list of Beneficiary Ids.",
                  "minItems": 1,
                  "items": {
                    "type": "string",
                    "pattern": "^[0-9]+$"
                  }
                }
              }
            }
          }
        }
      }
    },
    "responses": {
      "LoginWithPasswordResponse": {
        "description": "Success",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "token": {
                  "type": "string",
                  "description": "An authorisation token (valid for 5 minutes from last activity) identifying the user to be used in the `auth_token` authorization header for secured operations."
                },
                "tokenType": {
                  "$ref": "#/components/schemas/TokenType"
                },
                "identity": {
                  "description": "The identity to which the logged-in user belongs to.",
                  "$ref": "#/components/schemas/IdentityId"
                },
                "credentials": {
                  "description": "The unique identifier for the logged-in user.",
                  "$ref": "#/components/schemas/CredentialId"
                }
              }
            }
          }
        }
      },
      "BadRequestError": {
        "description": "Bad Request Error - Your request is invalid.",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "message": {
                  "maxLength": 255,
                  "type": "string",
                  "description": "When present helps to identify and fix the problem."
                },
                "syntaxErrors": {
                  "$ref": "#/components/schemas/SyntaxError"
                }
              }
            }
          }
        }
      },
      "Unauthorized": {
        "description": "Unauthorized - Your credentials or access token are invalid.",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        }
      },
      "NotFoundToken": {
        "description": "Not found - The requested token couldn't be found.",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/TokenError"
            }
          }
        }
      },
      "LoginWithPasswordConflict": {
        "description": "The user's password has expired. Use the returned temporary token to update their password via the  '_/passwords/update_' endpoint.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "token": {
                  "type": "string",
                  "description": "Temporary authorisation token required to initiate the _passwordUpdate_ operation."
                }
              }
            }
          }
        }
      },
      "TokenExpired": {
        "description": "Gone - The requested token is expired.",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/TokenError"
            }
          }
        }
      },
      "Locked": {
        "description": "Locked - Account is temporarily locked due to failed consecutive login attempts. Try again in 30 minutes.",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        }
      },
      "TooManyRequests": {
        "description": "Too many requests.",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          },
          "x-ratelimit-limit": {
            "$ref": "#/components/headers/x-ratelimit-limit"
          },
          "x-ratelimit-reset": {
            "$ref": "#/components/headers/x-ratelimit-reset"
          }
        }
      },
      "InternalServerError": {
        "description": "Internal Server Error - There is a problem with the server. Please try again later.",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        }
      },
      "ServiceUnavailable": {
        "description": "Service Unavailable - The requested service is temporarily unavailable. Please try again later.",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        }
      },
      "Error": {
        "description": "Error",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "LoginViaBiometricsResponse": {
        "description": "Success",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "challengeId": {
                  "type": "string",
                  "description": "The unique identifier of a Biometric challenge."
                }
              }
            }
          }
        }
      },
      "LoginViaBiometricsConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": ["CHANNEL_NOT_REGISTERED", "CHANNEL_NOT_SUPPORTED"]
                }
              }
            }
          }
        }
      },
      "UserIdentitiesGetResponse": {
        "description": "Success",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/UserIdentitiesGetResponseSchema"
            }
          }
        }
      },
      "Forbidden": {
        "description": "Forbidden - Access to the requested resource or action is forbidden.",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        }
      },
      "NotFound": {
        "description": "Not found - The requested resource couldn't be found.",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "UserIdentitiesConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": ["IDENTITY_TYPE_NOT_SUPPORTED"]
                }
              }
            }
          }
        }
      },
      "LoginWithIamResponse": {
        "description": "Success",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "url": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "NoContent": {
        "description": "Success - No Content.",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        }
      },
      "MethodNotAllowed": {
        "description": "Method Not Allowed - The request was received but has been rejected for the requested resource.",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "StepUpSCAChallengeConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "CHANNEL_NOT_SUPPORTED",
                    "CHANNEL_NOT_REGISTERED",
                    "MOBILE_NUMBER_INVALID",
                    "MOBILE_COUNTRY_NOT_SUPPORTED",
                    "RETRY_IN_15SEC",
                    "CHALLENGE_LIMIT_EXCEEDED"
                  ]
                }
              }
            }
          }
        }
      },
      "StepUpSCAVerifyConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "STATE_INVALID",
                    "VERIFICATION_CODE_EXPIRED",
                    "VERIFICATION_CODE_INVALID",
                    "CHANNEL_NOT_SUPPORTED",
                    "CHANNEL_NOT_REGISTERED",
                    "ONE_CHALLENGE_LIMIT_REMAINING",
                    "CHALLENGE_LIMIT_EXCEEDED",
                    "ALREADY_VERIFIED"
                  ]
                }
              }
            }
          }
        }
      },
      "StepUpSCAChallengePushResponse": {
        "description": "Success",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "pattern": "^[0-9]+$",
                  "description": "The challenge id."
                }
              }
            }
          }
        }
      },
      "StepUpSCAChallengePushConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "STATE_INVALID",
                    "CHANNEL_NOT_SUPPORTED",
                    "CHANNEL_NOT_REGISTERED",
                    "CHALLENGE_LIMIT_EXCEEDED"
                  ]
                }
              }
            }
          }
        }
      },
      "LogoutResponse": {
        "description": "Success",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "url": {
                  "type": "string",
                  "description": "The logout url for third party auth providers."
                }
              }
            }
          }
        }
      },
      "PasswordResponse": {
        "description": "Success",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "passwordInfo": {
                  "$ref": "#/components/schemas/PasswordInfo"
                },
                "token": {
                  "type": "string",
                  "description": "The authorisation token to be used in the Authorization header for secured operations."
                }
              }
            }
          }
        }
      },
      "CreatePasswordConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "UNRESOLVED_IDENTITY",
                    "PASSWORD_PROFILE_NOT_CONFIGURED_FOR_CREDENTIAL_TYPE",
                    "PASSWORD_TOO_SHORT",
                    "PASSWORD_TOO_LONG",
                    "PASSWORD_TOO_SIMPLE",
                    "PASSWORD_KEY_ALREADY_IN_USE",
                    "PASSWORD_ALREADY_CREATED"
                  ]
                }
              }
            }
          }
        }
      },
      "PasswordUpdateConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "PASSWORD_ALREADY_USED",
                    "PASSWORD_TOO_SHORT",
                    "PASSWORD_TOO_LONG",
                    "PASSWORD_TOO_SIMPLE",
                    "PASSWORD_INCORRECT"
                  ]
                }
              }
            }
          }
        }
      },
      "PasswordValidateConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "UNRESOLVED_IDENTITY",
                    "PASSWORD_PROFILE_NOT_CONFIGURED_FOR_CREDENTIAL_TYPE",
                    "PASSWORD_TOO_SHORT",
                    "PASSWORD_TOO_LONG",
                    "PASSWORD_TOO_SIMPLE"
                  ]
                }
              }
            }
          }
        }
      },
      "LostPasswordInitiateConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": ["MULTIPLE_ACCOUNTS_FOUND", "ACCOUNT_NOT_FOUND"]
                }
              }
            }
          }
        }
      },
      "TokenResponse": {
        "description": "Success",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/TokenResponse"
            }
          }
        }
      },
      "LostPasswordResumeConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "INVALID_NONCE_OR_EMAIL",
                    "PASSWORD_ALREADY_USED",
                    "PASSWORD_TOO_SHORT",
                    "PASSWORD_TOO_LONG",
                    "PASSWORD_TOO_SIMPLE",
                    "PASSWORD_INCORRECT",
                    "PASSWORD_NOT_SET"
                  ]
                }
              }
            }
          }
        }
      },
      "AuthFactorsGetResponse": {
        "description": "Success",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "factors": {
                  "type": "array",
                  "description": "The list of challenge types the logged-in user is enrolled on.",
                  "items": {
                    "$ref": "#/components/schemas/SCAFactor"
                  }
                }
              }
            }
          }
        }
      },
      "EnrolDeviceUsingOtpStepOneConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "CHANNEL_NOT_SUPPORTED",
                    "CHANNEL_ALREADY_REGISTERED",
                    "MOBILE_NUMBER_NOT_AVAILABLE",
                    "MOBILE_NUMBER_INVALID",
                    "MOBILE_COUNTRY_NOT_SUPPORTED",
                    "CREDENTIALS_INACTIVE",
                    "TYPE_DOES_NOT_SUPPORT_ENROLMENT"
                  ]
                }
              }
            }
          }
        }
      },
      "EnrolDeviceUsingOtpStepTwoConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "CHANNEL_NOT_SUPPORTED",
                    "CHANNEL_ALREADY_REGISTERED",
                    "VERIFICATION_CODE_EXPIRED",
                    "VERIFICATION_CODE_INVALID",
                    "CREDENTIALS_INACTIVE",
                    "CHALLENGE_LIMIT_EXCEEDED",
                    "ONE_CHALLENGE_LIMIT_REMAINING",
                    "STATE_INVALID",
                    "TYPE_DOES_NOT_SUPPORT_ENROLMENT"
                  ]
                }
              }
            }
          }
        }
      },
      "InstrumentForbidden": {
        "description": "Forbidden - Access to the requested resource or action is forbidden.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": ["STEP_UP_REQUIRED", "ACCESS_TOKEN_REQUIRED"]
                }
              }
            }
          }
        }
      },
      "EnrolDeviceUsingPushConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "CHANNEL_NOT_SUPPORTED",
                    "CHANNEL_NOT_READY",
                    "CHANNEL_ALREADY_REGISTERED",
                    "MOBILE_NUMBER_NOT_AVAILABLE",
                    "CHALLENGE_LIMIT_EXCEEDED",
                    "PASSCODE_NOT_SET",
                    "ENROLMENT_LIMIT_EXCEEDED",
                    "MOBILE_COUNTRY_NOT_SUPPORTED",
                    "TYPE_DOES_NOT_SUPPORT_ENROLMENT"
                  ]
                }
              }
            }
          }
        }
      },
      "UnlinkDeviceUsingPushConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": ["CHANNEL_NOT_REGISTERED", "CREDENTIALS_INACTIVE"]
                }
              }
            }
          }
        }
      },
      "SCAChallengeResponse": {
        "description": "Success",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "scaChallengeId": {
                  "$ref": "#/components/schemas/Id"
                }
              }
            }
          }
        }
      },
      "MultipleSCAChallengeConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "description": "Error codes:\n  * `STATE_INVALID` - The operation no longer requires additional verification, it was either cancelled or completed.\n  * `CHANNEL_NOT_SUPPORTED` - The channel selected cannot be used to verify this type of operation.\n  * `CHANNEL_NOT_REGISTERED` - The channel selected must be enrolled to receive one-time passwords before it can be used to verify this type of operation.\n  * `RETRY_IN_15_SECS` - The endpoint can be called again in 15 seconds. Once called successfully, a new SMS will be sent (with a different OTP to the original SMS).\n  * `CHALLENGE_LIMIT_EXCEEDED` - No more SMS OTPs can be requested. If verification was not completed, the original action must be started again from the beginning.\n",
                  "type": "string",
                  "enum": [
                    "STATE_INVALID",
                    "CHANNEL_NOT_SUPPORTED",
                    "CHANNEL_NOT_REGISTERED",
                    "RETRY_IN_15SEC",
                    "CHALLENGE_LIMIT_EXCEEDED"
                  ]
                }
              }
            }
          }
        }
      },
      "MultipleSCAVerifyConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "STATE_INVALID",
                    "CHANNEL_NOT_SUPPORTED",
                    "CHANNEL_NOT_REGISTERED",
                    "VERIFICATION_CODE_EXPIRED",
                    "VERIFICATION_CODE_INVALID",
                    "CHALLENGE_LIMIT_EXCEEDED",
                    "ONE_CHALLENGE_LIMIT_REMAINING"
                  ]
                }
              }
            }
          }
        }
      },
      "MultipleSCAChallengePushConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "STATE_INVALID",
                    "CHANNEL_NOT_SUPPORTED",
                    "CHANNEL_NOT_REGISTERED",
                    "CHALLENGE_LIMIT_EXCEEDED"
                  ]
                }
              }
            }
          }
        }
      },
      "AccessTokenResponse": {
        "description": "Success",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "token": {
                  "type": "string"
                },
                "identity": {
                  "description": "The identity to which the logged-in user belongs to.",
                  "$ref": "#/components/schemas/IdentityId"
                },
                "credentials": {
                  "description": "The unique identifier for the logged-in user.",
                  "$ref": "#/components/schemas/CredentialId"
                },
                "status": {
                  "type": "string",
                  "description": "The token status, as follows:\n  - STANDARD: it is a standard token. \n  - STEPPED_UP: it is a stepped up token.\n",
                  "enum": ["STANDARD", "STEPPED_UP"]
                }
              }
            }
          }
        }
      },
      "UserResponse": {
        "description": "Success",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/User"
            }
          }
        }
      },
      "UserForbidden": {
        "description": "Forbidden - Access to the requested resource or action is forbidden.",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": ["STEP_UP_REQUIRED"]
                }
              }
            }
          }
        }
      },
      "UserCreateConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "EMAIL_NOT_UNIQUE",
                    "MOBILE_OR_COUNTRY_CODE_INVALID",
                    "EMAIL_DOMAIN_NOT_ALLOWED",
                    "COUNTRY_OF_RESIDENCE_INVALID"
                  ]
                }
              }
            }
          }
        }
      },
      "UsersGetResponse": {
        "description": "Success",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "users": {
                  "type": "array",
                  "description": "The list of users matching the criteria specified.",
                  "items": {
                    "$ref": "#/components/schemas/User"
                  }
                },
                "count": {
                  "type": "integer",
                  "description": "The total number of records (excluding the paging limit).",
                  "format": "int32"
                },
                "responseCount": {
                  "type": "integer",
                  "description": "The total number of records returned in this response (always capped at 100).",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "BulkProcessorConflictResponse": {
        "description": "BulkProcessorConflict - bulk processor conflict.",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/BulkProcessConflict"
            }
          }
        }
      },
      "BulkProcessDetails": {
        "description": "Success",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/BulkProcessDetails"
            }
          }
        }
      },
      "BulkProcessOperations": {
        "description": "Success",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/BulkProcessOperationsPaged"
            }
          }
        }
      },
      "UserPatchConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "EMAIL_NOT_UNIQUE",
                    "MOBILE_OR_COUNTRY_CODE_INVALID",
                    "MOBILE_NO_CHANGE_LIMIT_EXCEEDED",
                    "TOO_FREQUENT_EMAIL_CHANGES",
                    "EMAIL_DOMAIN_NOT_ALLOWED",
                    "MOBILE_CHANGE_NOT_ALLOWED",
                    "UNSUPPORTED_CURRENCY"
                  ]
                }
              }
            }
          }
        }
      },
      "UserInviteSendConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": ["INVITE_ALREADY_CONSUMED"]
                }
              }
            }
          }
        }
      },
      "UserInviteValidateConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": ["INVITE_OR_INVITE_CODE_INVALID"]
                }
              }
            }
          }
        }
      },
      "UserInviteConsumeConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "INVITE_OR_INVITE_CODE_INVALID",
                    "UNRESOLVED_IDENTITY",
                    "PASSWORD_ALREADY_USED",
                    "PASSWORD_PROFILE_NOT_CONFIGURED_FOR_CREDENTIAL_TYPE",
                    "PASSWORD_TOO_SHORT",
                    "PASSWORD_TOO_LONG",
                    "PASSWORD_TOO_SIMPLE",
                    "PASSWORD_KEY_ALREADY_IN_USE",
                    "PASSWORD_ALREADY_CREATED"
                  ]
                }
              }
            }
          }
        }
      },
      "CreateCorporateResponse": {
        "description": "Success",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CreatedCorporate"
            }
          }
        }
      },
      "CorporateCreateConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "PAYMENT_MODEL_CONSTRAINTS_VIOLATED",
                    "PROFILE_NOT_FOUND",
                    "PROFILE_INACTIVE",
                    "ROOT_EMAIL_NOT_UNIQUE",
                    "CURRENCY_UNSUPPORTED",
                    "FEE_GROUP_INVALID",
                    "COUNTRY_INVALID",
                    "MOBILE_OR_COUNTRY_CODE_INVALID",
                    "COUNTRY_UNSUPPORTED",
                    "ROOT_USER_INACTIVE",
                    "ROOT_EMAIL_NOT_VERIFIED",
                    "KYC_APPROVAL_MISSING",
                    "PROFILE_MISMATCH",
                    "COMPANY_TYPE_UNSUPPORTED",
                    "EMAIL_DOMAIN_NOT_ALLOWED"
                  ]
                }
              }
            }
          }
        }
      },
      "CorporateResponse": {
        "description": "Success",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Corporate"
            }
          }
        }
      },
      "CorporateUpdateConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "FEE_GROUP_INVALID",
                    "COUNTRY_INVALID",
                    "EMAIL_NOT_UNIQUE",
                    "ROOT_USER_ALREADY_VERIFIED",
                    "COUNTRY_UNSUPPORTED",
                    "MOBILE_OR_COUNTRY_CODE_INVALID",
                    "MOBILE_NO_CHANGE_LIMIT_EXCEEDED",
                    "TOO_FREQUENT_EMAIL_CHANGES",
                    "EMAIL_DOMAIN_NOT_ALLOWED",
                    "MOBILE_CHANGE_NOT_ALLOWED",
                    "UNSUPPORTED_CURRENCY",
                    "TERMINATION_DATE_IN_PAST"
                  ]
                }
              }
            }
          }
        }
      },
      "EmailVerificationConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "EMAIL_NOT_FOUND",
                    "ALREADY_VERIFIED",
                    "EMAIL_NOT_UNIQUE"
                  ]
                }
              }
            }
          }
        }
      },
      "VerifyConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": ["VERIFICATION_CODE_INVALID", "EMAIL_NOT_UNIQUE"]
                }
              }
            }
          }
        }
      },
      "CorporateKybGetResponse": {
        "description": "Success",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "kybStatus": {
                  "description": "The effective due diligence status of the logged-in corporate user.",
                  "$ref": "#/components/schemas/KyiStatus"
                },
                "ongoingKybStatus": {
                  "description": "The ongoing due diligence status of the logged-in corporate user.",
                  "$ref": "#/components/schemas/KyiStatus"
                }
              }
            }
          }
        }
      },
      "ChargeFeeResponse": {
        "description": "Success",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ChargeFee"
            }
          }
        }
      },
      "ChargeFeeConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "UNRESOLVED_FEE_TYPE",
                    "UNRESOLVED_CURRENCY",
                    "UNRESOLVED_INSTRUMENT",
                    "FUNDS_INSUFFICIENT",
                    "IDENTITY_NOT_OWNER_OF_INSTRUMENT",
                    "FEE_AMOUNT_NOT_SET"
                  ]
                }
              }
            }
          }
        }
      },
      "ConsumerResponse": {
        "description": "Success",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Consumer"
            }
          }
        }
      },
      "ConsumerCreateConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "PAYMENT_MODEL_CONSTRAINTS_VIOLATED",
                    "PROFILE_NOT_FOUND",
                    "PROFILE_INACTIVE",
                    "ROOT_EMAIL_NOT_UNIQUE",
                    "CURRENCY_UNSUPPORTED",
                    "FEE_GROUP_INVALID",
                    "COUNTRY_INVALID",
                    "MOBILE_OR_COUNTRY_CODE_INVALID",
                    "COUNTRY_UNSUPPORTED",
                    "EMAIL_DOMAIN_NOT_ALLOWED",
                    "CONSUMER_ALREADY_EXISTS"
                  ]
                }
              }
            }
          }
        }
      },
      "ConsumerUpdateConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "FEE_GROUP_INVALID",
                    "COUNTRY_INVALID",
                    "CONSUMER_VERIFIED",
                    "EMAIL_NOT_UNIQUE",
                    "MOBILE_OR_COUNTRY_CODE_INVALID",
                    "COUNTRY_UNSUPPORTED",
                    "MOBILE_NO_CHANGE_LIMIT_EXCEEDED",
                    "TOO_FREQUENT_EMAIL_CHANGES",
                    "EMAIL_DOMAIN_NOT_ALLOWED",
                    "MOBILE_CHANGE_NOT_ALLOWED",
                    "TERMINATION_DATE_IN_PAST"
                  ]
                }
              }
            }
          }
        }
      },
      "ConsumerKycStartResponse": {
        "description": "Success",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "required": ["reference", "kycLevel"],
              "type": "object",
              "properties": {
                "reference": {
                  "type": "string",
                  "pattern": "^[0-9]+$",
                  "description": "The reference used to initialise the KYC UI Component."
                },
                "kycLevel": {
                  "$ref": "#/components/schemas/KycLevel",
                  "description": "The KYC level assigned to the consumer."
                }
              }
            }
          }
        }
      },
      "ConsumerKycStartConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "KYC_ALREADY_APPROVED",
                    "KYC_PENDING_REVIEW",
                    "KYC_REJECTED",
                    "EMAIL_UNVERIFIED"
                  ]
                }
              }
            }
          }
        }
      },
      "ConsumerKycGetResponse": {
        "description": "Success",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": ["fullDueDiligence", "ongoingFullDueDiligence"],
              "properties": {
                "fullDueDiligence": {
                  "description": "The status of the Due Diligence for the consumer.",
                  "$ref": "#/components/schemas/KyiStatus"
                },
                "kycLevel": {
                  "description": "The customer's level of due diligence.",
                  "$ref": "#/components/schemas/KycLevel"
                },
                "ongoingFullDueDiligence": {
                  "description": "The status of the ongoing Due Diligence process for the consumer",
                  "$ref": "#/components/schemas/KyiStatus"
                },
                "ongoingKycLevel": {
                  "description": "The level of due diligence of the ongoing KYC process.",
                  "$ref": "#/components/schemas/KycLevel"
                }
              }
            }
          }
        }
      },
      "LinkedAccountResponse": {
        "description": "Success",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/LinkedAccount"
            }
          }
        }
      },
      "LinkedAccountRegisterConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "PROFILE_NOT_FOUND",
                    "PROFILE_INACTIVE",
                    "MODEL_CONSTRAINTS_VIOLATED",
                    "CURRENCY_NOT_SUPPORTED_BY_PROFILE",
                    "COUNTRY_NOT_SUPPORTED_BY_PROFILE",
                    "ACCOUNT_NUMBER_MISSING",
                    "SORT_CODE_MISSING",
                    "ACCOUNT_NUMBER_AND_IBAN_PROVIDED",
                    "SORT_CODE_AND_IBAN_PROVIDED",
                    "NO_ACCOUNT_DETAILS_PROVIDED",
                    "INVALID_IDENTITY_TYPE",
                    "IBAN_MISSING",
                    "LINKED_ACCOUNT_ALREADY_ADDED",
                    "MANAGED_ACCOUNT_MISSING",
                    "THIS_IS_A_MANAGED_ACCOUNT",
                    "ACCOUNT_DESCRIPTOR_MISSING"
                  ]
                }
              }
            }
          }
        }
      },
      "LinkedAccountsGetResponse": {
        "description": "Success",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "accounts": {
                  "description": "The filtered managed accounts list.",
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LinkedAccount"
                  }
                },
                "count": {
                  "type": "integer",
                  "description": "The total number of records (excluding the paging limit).",
                  "format": "int32"
                },
                "responseCount": {
                  "type": "integer",
                  "description": "The total number of records returned in this response (always capped at 100).",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "LinkedAccountRemoveConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "LINKED_ACCOUNT_ALREADY_REMOVED",
                    "LINKED_ACCOUNT_HAS_PENDING_ACTIONS",
                    "LINKED_ACCOUNT_REJECTED"
                  ]
                }
              }
            }
          }
        }
      },
      "LinkedAccountBlockConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "LINKED_ACCOUNT_INACTIVE",
                    "LINKED_ACCOUNT_ALREADY_BLOCKED",
                    "LINKED_ACCOUNT_REMOVED"
                  ]
                }
              }
            }
          }
        }
      },
      "LinkedAccountUnblockConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "LINKED_ACCOUNT_INACTIVE",
                    "LINKED_ACCOUNT_NOT_BLOCKED",
                    "LINKED_ACCOUNT_REMOVED"
                  ]
                }
              }
            }
          }
        }
      },
      "LinkedAccountVerificationRunsGetResponse": {
        "description": "Success",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "verificationRuns": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LinkedAccountVerificationRun"
                  }
                },
                "count": {
                  "type": "integer",
                  "description": "The total number of records (excluding the paging limit).",
                  "format": "int32"
                },
                "responseCount": {
                  "type": "integer",
                  "description": "The total number of records returned in this response (always capped at 100).",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "ManagedAccountsGetResponse": {
        "description": "Success",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "accounts": {
                  "description": "The filtered managed accounts list.",
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ManagedAccount"
                  }
                },
                "count": {
                  "type": "integer",
                  "description": "The total number of records (excluding the paging limit).",
                  "format": "int32"
                },
                "responseCount": {
                  "type": "integer",
                  "description": "The total number of records returned in this response (always capped at 100).",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "ManagedAccountResponse": {
        "description": "Success",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ManagedAccount"
            }
          }
        }
      },
      "ManagedAccountCreateConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "PROFILE_NOT_FOUND",
                    "PROFILE_INACTIVE",
                    "MODEL_CONSTRAINTS_VIOLATED",
                    "CURRENCY_NOT_SUPPORTED_BY_PROFILE",
                    "PROVIDER_NOT_SUPPORTED_BY_PROFILE",
                    "INSTRUMENT_NOT_FOUND",
                    "OWNER_IDENTITY_NOT_VERIFIED",
                    "IDENTITY_LIMITS_EXCEEDED",
                    "PROGRAMME_LIMITS_EXCEEDED",
                    "INNOVATOR_LIMITS_EXCEEDED",
                    "SYSTEM_LIMITS_EXCEEDED"
                  ]
                }
              }
            }
          }
        }
      },
      "ManagedAccountIBANResponse": {
        "description": "Success",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ManagedAccountIBAN"
            }
          }
        }
      },
      "ManagedAccountsIBANUpgradeConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "INSTRUMENT_ALREADY_UPGRADED_TO_IBAN",
                    "INSTRUMENT_IS_NOT_ACTIVE",
                    "IBAN_ALLOCATION_EXCEEDED",
                    "IBAN_NOT_SUPPORTED",
                    "IBAN_ALREADY_REQUESTED",
                    "OWNER_NOT_VERIFIED"
                  ]
                }
              }
            }
          }
        }
      },
      "ManagedAccountBlockConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "INSTRUMENT_INACTIVE",
                    "INSTRUMENT_ALREADY_BLOCKED",
                    "INSTRUMENT_DESTROYED"
                  ]
                }
              }
            }
          }
        }
      },
      "ManagedAccountUnblockConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "INSTRUMENT_INACTIVE",
                    "INSTRUMENT_NOT_BLOCKED",
                    "INSTRUMENT_DESTROYED"
                  ]
                }
              }
            }
          }
        }
      },
      "ManagedAccountStatementResponse": {
        "description": "Success",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Statement"
            }
          },
          "application/pdf": {
            "schema": {
              "type": "string",
              "format": "binary"
            }
          },
          "text/csv": {
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/StatementEntry"
              }
            }
          }
        }
      },
      "ManagedAccountRemoveConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "BALANCE_NOT_ZERO",
                    "INSTRUMENT_ALREADY_REMOVED",
                    "INSTRUMENT_HAS_PENDING_ACTIONS",
                    "INSTRUMENT_HAS_LINKED_CARDS"
                  ]
                }
              }
            }
          }
        }
      },
      "ManagedCardResponse": {
        "description": "Success",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ManagedCard"
            }
          }
        }
      },
      "ManagedCardConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "PAYMENT_MODEL_CONSTRAINTS_VIOLATED",
                    "PROFILE_NOT_FOUND",
                    "PROFILE_INACTIVE",
                    "CURRENCY_NOT_SUPPORTED_BY_PROFILE",
                    "PROVIDER_NOT_SUPPORTED_BY_PROFILE",
                    "INSTRUMENT_NOT_FOUND",
                    "COUNTRY_INVALID",
                    "OWNER_IDENTITY_NOT_VERIFIED",
                    "IDENTITY_LIMITS_EXCEEDED",
                    "PROGRAMME_LIMITS_EXCEEDED",
                    "INNOVATOR_LIMITS_EXCEEDED",
                    "SYSTEM_LIMITS_EXCEEDED",
                    "PARENT_MANAGED_ACCOUNT_NOT_ACTIVE",
                    "PARENT_MANAGED_ACCOUNT_NOT_FOUND",
                    "WALLETS_NOT_ENABLED",
                    "WALLET_ARTWORK_NOT_SPECIFIED",
                    "WALLET_ARTWORK_INVALID",
                    "IDENTITY_KYC_LEVEL_STEPUP_REQUIRED",
                    "PUSHPROVISIONING_NOT_ENABLED",
                    "AUTH_FORWARDING_NOT_ENABLED",
                    "USER_NOT_ENROLLED_FOR_BIOMETRICS",
                    "BIOMETRIC_AUTHENTICATION_NOT_SUPPORTED",
                    "LINKED_USER_NOT_FOUND",
                    "USER_INACTIVE",
                    "INVALID_CHANNELS_SELECTED",
                    "INVALID_PRIMARY_CHANNEL_SELECTED",
                    "USER_MOBILE_NUMBER_DOES_NOT_EXIST",
                    "MORE_THAN_ONE_MOBILE_NUMBER_PROVIDED",
                    "MOBILE_NUMBER_ALREADY_EXISTS",
                    "TWILIO_AUTHY_AUTHENTICATION_NOT_SUPPORTED",
                    "USER_NOT_ENROLLED_FOR_TWILIO_AUTHY",
                    "RENEWAL_TYPE_NOT_SUPPORTED_BY_PROFILE",
                    "USER_CURRENCY_NOT_ENABLED",
                    "USER_CURRENCY_NOT_SUPPORTED_BY_PROFILE",
                    "USER_CURRENCY_SAME_AS_BASE_CURRENCY"
                  ]
                }
              }
            }
          }
        }
      },
      "ManagedCardPageResponse": {
        "description": "Success",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "cards": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ManagedCard"
                  }
                },
                "count": {
                  "type": "integer",
                  "description": "The total number of records (excluding the paging limit).",
                  "format": "int32"
                },
                "responseCount": {
                  "type": "integer",
                  "description": "The total number of records returned in this response (always capped at 100).",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "ManagedCardUpdateConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "INSTRUMENT_DESTROYED",
                    "INSTRUMENT_NOT_PHYSICAL",
                    "COUNTRY_INVALID",
                    "WALLETS_NOT_ENABLED",
                    "WALLET_ARTWORK_NOT_SPECIFIED",
                    "WALLET_ARTWORK_INVALID",
                    "PUSHPROVISIONING_NOT_ENABLED",
                    "AUTH_FORWARDING_NOT_ENABLED",
                    "THREEDS_DETAILS_NOT_PROVIDED",
                    "USER_NOT_ENROLLED_FOR_BIOMETRICS",
                    "BIOMETRIC_AUTHENTICATION_NOT_SUPPORTED",
                    "LINKED_USER_NOT_FOUND",
                    "USER_INACTIVE",
                    "INVALID_CHANNELS_SELECTED",
                    "INVALID_PRIMARY_CHANNEL_SELECTED",
                    "USER_MOBILE_NUMBER_DOES_NOT_EXIST",
                    "MORE_THAN_ONE_MOBILE_NUMBER_PROVIDED",
                    "MOBILE_NUMBER_ALREADY_EXISTS",
                    "TWILIO_AUTHY_AUTHENTICATION_NOT_SUPPORTED",
                    "USER_NOT_ENROLLED_FOR_TWILIO_AUTHY",
                    "DELIVERY_METHOD_INVALID",
                    "CONTACT_NUMBER_NEEDED_FOR_BULK_DELIVERY",
                    "PRODUCT_REFERENCE_INVALID",
                    "CARRIER_TYPE_INVALID",
                    "CONFIG_ERROR_CARD_BUREAU",
                    "RENEWAL_TYPE_NOT_SUPPORTED_BY_PROFILE"
                  ]
                }
              }
            }
          }
        }
      },
      "ManagedCardBlockConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "INSTRUMENT_ALREADY_BLOCKED",
                    "INSTRUMENT_DESTROYED",
                    "INSTRUMENT_MARKED_LOST_STOLEN"
                  ]
                }
              }
            }
          }
        }
      },
      "ManagedCardUnblockConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "INSTRUMENT_NOT_BLOCKED",
                    "INSTRUMENT_DESTROYED",
                    "INSTRUMENT_MARKED_LOST_STOLEN"
                  ]
                }
              }
            }
          }
        }
      },
      "ManagedCardRemoveConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": ["BALANCE_NOT_ZERO", "INSTRUMENT_ALREADY_REMOVED"]
                }
              }
            }
          }
        }
      },
      "ManagedCardStatementResponse": {
        "description": "Success",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Statement"
            }
          },
          "application/pdf": {
            "schema": {
              "type": "string",
              "format": "binary"
            }
          },
          "text/csv": {
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/StatementEntry"
              }
            }
          }
        }
      },
      "ManagedCardGetResponse": {
        "description": "Success",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ManagedCard"
            }
          }
        }
      },
      "ManagedCardAssignConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "IDENTITY_NOT_VERIFIED",
                    "IDENTITY_NOT_ACTIVE",
                    "CARD_ALREADY_ASSIGNED",
                    "ACTIVATION_CODE_INVALID",
                    "INSTRUMENT_NOT_FOUND",
                    "PROFILE_NOT_FOUND",
                    "MODEL_CONSTRAINTS_VIOLATED",
                    "IDENTITY_KYC_LEVEL_STEPUP_REQUIRED",
                    "AUTH_FORWARDING_NOT_ENABLED",
                    "THREEDS_DETAILS_NOT_PROVIDED",
                    "USER_NOT_ENROLLED_FOR_BIOMETRICS",
                    "BIOMETRIC_AUTHENTICATION_NOT_SUPPORTED",
                    "LINKED_USER_NOT_FOUND",
                    "USER_INACTIVE",
                    "INVALID_CHANNELS_SELECTED",
                    "INVALID_PRIMARY_CHANNEL_SELECTED",
                    "USER_MOBILE_NUMBER_DOES_NOT_EXIST",
                    "MORE_THAN_ONE_MOBILE_NUMBER_PROVIDED",
                    "MOBILE_NUMBER_ALREADY_EXISTS",
                    "TWILIO_AUTHY_AUTHENTICATION_NOT_SUPPORTED",
                    "USER_NOT_ENROLLED_FOR_TWILIO_AUTHY"
                  ]
                }
              }
            }
          }
        }
      },
      "ManagedCardSpendRulesGetResponse": {
        "description": "Success",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/AllLevelSpendRules"
            }
          }
        }
      },
      "ManagedCardSpendRulesCreateConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "SPEND_LIMIT_CURRENCY_DIFFERENT_FROM_CARD_CURRENCY",
                    "SPEND_LIMIT_NOT_SUPPORTED_FOR_PREPAID_MODE_CARD",
                    "SPEND_LIMIT_DUPLICATE_INTERVAL",
                    "SPEND_LIMIT_AMOUNT_INVALID",
                    "SPEND_RULE_ALREADY_SET",
                    "SPEND_LIMIT_CURRENCY_DIFFERENT_FROM_USER_CURRENCY"
                  ]
                }
              }
            }
          }
        }
      },
      "ManagedCardSpendRulesUpdateConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "SPEND_LIMIT_CURRENCY_DIFFERENT_FROM_CARD_CURRENCY",
                    "SPEND_LIMIT_NOT_SUPPORTED_FOR_PREPAID_MODE_CARD",
                    "SPEND_LIMIT_DUPLICATE_INTERVAL",
                    "SPEND_LIMIT_AMOUNT_INVALID",
                    "SPEND_LIMIT_CURRENCY_DIFFERENT_FROM_USER_CURRENCY"
                  ]
                }
              }
            }
          }
        }
      },
      "ManagedCardPhysicalUpgradeConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "INSTRUMENT_ALREADY_UPGRADED_TO_PHYSICAL",
                    "CONFIG_ERROR_PRODUCT_REFERENCE",
                    "PRODUCT_REFERENCE_NOT_SPECIFIED",
                    "PRODUCT_REFERENCE_INVALID",
                    "CONFIG_ERROR_CARRIER_TYPE",
                    "CARRIER_TYPE_NOT_SPECIFIED",
                    "CARRIER_TYPE_INVALID",
                    "CONFIG_ERROR_CARD_BUREAU",
                    "INSTRUMENT_BLOCKED",
                    "INSTRUMENT_DESTROYED",
                    "PIN_INVALID_FORMAT",
                    "PARENT_MANAGED_ACCOUNT_BLOCKED",
                    "MAX_PRINT_CHARACTERS_EXCEEDED",
                    "DELIVERY_METHOD_INVALID",
                    "CONTACT_NUMBER_NEEDED_FOR_BULK_DELIVERY"
                  ]
                }
              }
            }
          }
        }
      },
      "ManagedCardPhysicalActivateConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "INSTRUMENT_NOT_PHYSICAL",
                    "INSTRUMENT_ALREADY_ACTIVATED",
                    "ACTIVATION_CODE_INVALID",
                    "INSTRUMENT_BLOCKED",
                    "INSTRUMENT_DESTROYED"
                  ]
                }
              }
            }
          }
        }
      },
      "ManagedCardPhysicalPinGetResponse": {
        "description": "Success",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "required": ["pin"],
              "type": "object",
              "properties": {
                "pin": {
                  "$ref": "#/components/schemas/SensitivePin"
                }
              }
            }
          }
        }
      },
      "ManagedCardPhysicalPinGetConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "INSTRUMENT_NOT_PHYSICAL",
                    "PHYSICAL_CARD_NOT_ACTIVATED",
                    "PIN_NOT_SET",
                    "PIN_TRIES_EXCEEDED",
                    "INSTRUMENT_BLOCKED",
                    "INSTRUMENT_DESTROYED"
                  ]
                }
              }
            }
          }
        }
      },
      "ManagedCardPhysicalPinUnBlockConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "INSTRUMENT_NOT_PHYSICAL",
                    "PHYSICAL_CARD_NOT_ACTIVATED",
                    "INSTRUMENT_BLOCKED",
                    "INSTRUMENT_DESTROYED"
                  ]
                }
              }
            }
          }
        }
      },
      "ManagedCardPhysicalReplaceDamagedConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "INSTRUMENT_NOT_PHYSICAL",
                    "PHYSICAL_CARD_NOT_ACTIVATED",
                    "INSTRUMENT_ALREADY_DESTROYED",
                    "INSTRUMENT_ALREADY_PENDING_REPLACEMENT",
                    "INSTRUMENT_MARKED_AS_LOST",
                    "MAX_PRINT_CHARACTERS_EXCEEDED"
                  ]
                }
              }
            }
          }
        }
      },
      "ManagedCardPhysicalReportLostConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "INSTRUMENT_NOT_PHYSICAL",
                    "INSTRUMENT_ALREADY_MARKED_LOST",
                    "INSTRUMENT_ALREADY_MARKED_STOLEN",
                    "INSTRUMENT_DESTROYED"
                  ]
                }
              }
            }
          }
        }
      },
      "ManagedCardPhysicalReportStolenConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "INSTRUMENT_NOT_PHYSICAL",
                    "PHYSICAL_CARD_NOT_ACTIVATED",
                    "INSTRUMENT_ALREADY_MARKED_STOLEN",
                    "INSTRUMENT_ALREADY_MARKED_LOST",
                    "INSTRUMENT_DESTROYED"
                  ]
                }
              }
            }
          }
        }
      },
      "ManagedCardPhysicalReplaceLostOrStolenConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "INSTRUMENT_NOT_PHYSICAL",
                    "INSTRUMENT_NOT_MARKED_LOST_OR_STOLEN",
                    "INSTRUMENT_DESTROYED",
                    "INSTRUMENT_ALREADY_REPLACED",
                    "PARENT_MANAGED_ACCOUNT_NOT_ACTIVE",
                    "MAX_PRINT_CHARACTERS_EXCEEDED"
                  ]
                }
              }
            }
          }
        }
      },
      "ManagedCardPhysicalContactlessLimitResetConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "INSTRUMENT_NOT_PHYSICAL",
                    "PHYSICAL_CARD_NOT_ACTIVATED",
                    "INSTRUMENT_BLOCKED",
                    "INSTRUMENT_DESTROYED",
                    "PHYSICAL_CARD_TYPE_NOT_SUPPORTED"
                  ]
                }
              }
            }
          }
        }
      },
      "TransferResponse": {
        "description": "Success",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Transfer"
            }
          }
        }
      },
      "TransferConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "PROFILE_INACTIVE",
                    "MODEL_CONSTRAINTS_VIOLATED",
                    "INTERCEPTOR_DENIED_TRANSACTION",
                    "INSTRUMENT_DENIED_TRANSACTION",
                    "SOURCE_INSTRUMENT_DESTROYED",
                    "DESTINATION_INSTRUMENT_DESTROYED",
                    "FOREX_TRADE_DENIED_TRANSACTION",
                    "CURRENCY_MISMATCH",
                    "SOURCE_INSTRUMENT_BLOCKED",
                    "DESTINATION_INSTRUMENT_BLOCKED",
                    "FUNDS_INSUFFICIENT",
                    "AMOUNT_INVALID",
                    "SOURCE_NOT_FOUND",
                    "DESTINATION_NOT_FOUND",
                    "FEE_NOT_CONFIGURED_FOR_CURRENCY",
                    "DESTINATION_LIMIT_EXCEEDED",
                    "SOURCE_CANNOT_BE_DEBIT_MODE_CARD",
                    "DESTINATION_CANNOT_BE_DEBIT_MODE_CARD",
                    "TRANSFER_BETWEEN_INSTRUMENTS_UNSUPPORTED",
                    "SOURCE_AND_DESTINATION_MUST_BE_DIFFERENT",
                    "SCHEDULED_TIMESTAMP_INVALID"
                  ]
                }
              }
            }
          }
        }
      },
      "TransfersGetResponse": {
        "description": "Success",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "transfer": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Transfer"
                  }
                },
                "count": {
                  "type": "integer",
                  "description": "Total number of records (excluding the paging limit).",
                  "format": "int32"
                },
                "responseCount": {
                  "type": "integer",
                  "description": "Total number of records returned in this response.",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "TransactionBulkCancelResponse": {
        "description": "Success",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/TransactionBulkCancelResponse"
            }
          }
        }
      },
      "SendResponse": {
        "description": "Success",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Send"
            }
          }
        }
      },
      "SendCreateConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "required": ["errorCode"],
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "PROFILE_INACTIVE",
                    "MODEL_CONSTRAINTS_VIOLATED",
                    "INTERCEPTOR_DENIED_TRANSACTION",
                    "INSTRUMENT_DENIED_TRANSACTION",
                    "FOREX_TRADE_DENIED_TRANSACTION",
                    "CURRENCY_MISMATCH",
                    "SOURCE_INSTRUMENT_BLOCKED",
                    "DESTINATION_INSTRUMENT_BLOCKED",
                    "SOURCE_NOT_FOUND",
                    "DESTINATION_NOT_FOUND",
                    "FEE_NOT_CONFIGURED_FOR_CURRENCY",
                    "DESTINATION_LIMIT_EXCEEDED",
                    "FUNDS_INSUFFICIENT",
                    "AMOUNT_INVALID",
                    "SOURCE_CANNOT_BE_DEBIT_MODE_CARD",
                    "DESTINATION_CANNOT_BE_DEBIT_MODE_CARD",
                    "SEND_TO_INSTRUMENT_UNSUPPORTED",
                    "SOURCE_INSTRUMENT_DESTROYED",
                    "DESTINATION_INSTRUMENT_DESTROYED",
                    "SOURCE_AND_DESTINATION_MUST_BE_DIFFERENT",
                    "IDENTITY_KYC_LEVEL_STEPUP_REQUIRED",
                    "DESTINATION_BELONGS_TO_SAME_IDENTITY",
                    "SOURCE_AND_DESTINATION_MUST_BE_IN_SAME_PROGRAMME",
                    "BENEFICIARY_NOT_FOUND",
                    "BENEFICIARY_TYPE_INVALID",
                    "PROFILE_NOT_FOUND",
                    "SCHEDULED_TIMESTAMP_INVALID",
                    "DESTINATION_FEE_EXCEEDS_TRANSACTION_AMOUNT"
                  ]
                }
              }
            }
          }
        }
      },
      "SendsGetPageResponse": {
        "description": "Success",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "send": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Send"
                  }
                },
                "count": {
                  "type": "integer",
                  "description": "Total number of records (excluding the paging limit).",
                  "format": "int32"
                },
                "responseCount": {
                  "type": "integer",
                  "description": "Total number of records returned in this response.",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "SendBulkCreateResponse": {
        "description": "Success",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/SendBulkCreateResponse"
            }
          }
        }
      },
      "SendBulkCreateConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "required": ["errorCode"],
              "type": "object",
              "properties": {
                "errorCode": {
                  "description": "Error codes:\n  * `TRANSACTION_LIMIT_EXCEEDED` - The number of transactions exceeds the limit of 1000.\n",
                  "type": "string",
                  "enum": ["TRANSACTION_LIMIT_EXCEEDED"]
                }
              }
            }
          }
        }
      },
      "SendSCAChallengeConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "STATE_INVALID",
                    "CHANNEL_NOT_SUPPORTED",
                    "CHANNEL_NOT_REGISTERED",
                    "SCA_EXEMPTION_APPLIED"
                  ]
                }
              }
            }
          }
        }
      },
      "SendSCAVerifyConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "STATE_INVALID",
                    "CHANNEL_NOT_SUPPORTED",
                    "CHANNEL_NOT_REGISTERED",
                    "VERIFICATION_CODE_EXPIRED",
                    "VERIFICATION_CODE_INVALID",
                    "SCA_EXEMPTION_APPLIED",
                    "CHALLENGE_NOT_PENDING",
                    "CHALLENGE_LIMIT_EXCEEDED",
                    "ONE_CHALLENGE_LIMIT_REMAINING"
                  ]
                }
              }
            }
          }
        }
      },
      "SendSCAChallengePushConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "STATE_INVALID",
                    "CHANNEL_NOT_SUPPORTED",
                    "CHANNEL_NOT_REGISTERED",
                    "CHALLENGE_LIMIT_EXCEEDED",
                    "SCA_EXEMPTION_APPLIED"
                  ]
                }
              }
            }
          }
        }
      },
      "OutgoingWireTransferResponse": {
        "description": "Success",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/OutgoingWireTransfer"
            }
          }
        }
      },
      "OutgoingWireTransferCreateConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "PROFILE_INACTIVE",
                    "MODEL_CONSTRAINTS_VIOLATED",
                    "INTERCEPTOR_DENIED_TRANSACTION",
                    "INSTRUMENT_DENIED_TRANSACTION",
                    "CURRENCY_MISMATCH",
                    "SOURCE_INSTRUMENT_BLOCKED",
                    "SOURCE_INSTRUMENT_DESTROYED",
                    "AMOUNT_INVALID",
                    "FUNDS_INSUFFICIENT",
                    "SOURCE_NOT_FOUND",
                    "FEE_NOT_CONFIGURED_FOR_CURRENCY",
                    "TYPE_NOT_SUPPORTED_BY_PROFILE",
                    "IDENTITY_KYC_LEVEL_STEPUP_REQUIRED",
                    "BENEFICIARY_NOT_FOUND",
                    "BENEFICIARY_TYPE_INVALID",
                    "PROFILE_NOT_FOUND",
                    "SCHEDULED_TIMESTAMP_INVALID",
                    "BENEFICIARY_BANK_DETAILS_INVALID",
                    "PLUGIN_FILTER_DATA_INVALID",
                    "IBAN_UPGRADE_REQUIRED",
                    "DESTINATION_ACCOUNT_TYPE_INVALID",
                    "EXTERNAL_DESTINATION_ACCOUNT_NOT_FOUND"
                  ]
                }
              }
            }
          }
        }
      },
      "OutgoingWireTransfersGetPageResponse": {
        "description": "Success",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "transfer": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OutgoingWireTransfer"
                  }
                },
                "count": {
                  "type": "integer",
                  "description": "Total number of records (excluding the paging limit)",
                  "format": "int32"
                },
                "responseCount": {
                  "type": "integer",
                  "description": "Total number of records returned in this response (always capped at 100).",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "OutgoingWireTransferBulkCreateResponse": {
        "description": "Success",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/OutgoingWireTransferBulkCreateResponse"
            }
          }
        }
      },
      "OutgoingWireTransferBulkCreateConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "required": ["errorCode"],
              "type": "object",
              "properties": {
                "errorCode": {
                  "description": "Error codes:\n  * `TRANSACTION_LIMIT_EXCEEDED` - The number of transactions exceeds the limit of 1000.\n",
                  "type": "string",
                  "enum": ["TRANSACTION_LIMIT_EXCEEDED"]
                }
              }
            }
          }
        }
      },
      "OutgoingWireTransferCancelConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": ["INVALID_STATE"]
                }
              }
            }
          }
        }
      },
      "OutgoingWireTransferConfirmConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": ["INVALID_STATE"]
                }
              }
            }
          }
        }
      },
      "OutgoingWireTransferSCAChallengeConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "description": "Error codes:\n  * `STATE_INVALID` - The transaction no longer requires additional verification, it was either cancelled or completed.\n  * `CHANNEL_NOT_SUPPORTED` - The channel selected cannot be used to verify this type of transaction.\n  * `CHANNEL_NOT_REGISTERED` - The channel selected must be enrolled to receive one-time passwords before it can be used to verify this type of transaction.\n  * `SCA_EXEMPTION_APPLIED` - The transaction no longer requires additional verification, it was proceeded via PSD2 Regulation low value SCA exemption, it is either cancelled or completed.\n",
                  "type": "string",
                  "enum": [
                    "STATE_INVALID",
                    "CHANNEL_NOT_SUPPORTED",
                    "CHANNEL_NOT_REGISTERED",
                    "SCA_EXEMPTION_APPLIED"
                  ]
                }
              }
            }
          }
        }
      },
      "OutgoingWireTransferSCAVerifyConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "STATE_INVALID",
                    "CHANNEL_NOT_SUPPORTED",
                    "CHANNEL_NOT_REGISTERED",
                    "VERIFICATION_CODE_EXPIRED",
                    "VERIFICATION_CODE_INVALID",
                    "SCA_EXEMPTION_APPLIED",
                    "CHALLENGE_LIMIT_EXCEEDED",
                    "ONE_CHALLENGE_LIMIT_REMAINING"
                  ]
                }
              }
            }
          }
        }
      },
      "OutgoingWireTransferSCAChallengePushConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "STATE_INVALID",
                    "CHANNEL_NOT_SUPPORTED",
                    "CHANNEL_NOT_REGISTERED",
                    "CHALLENGE_LIMIT_EXCEEDED",
                    "SCA_EXEMPTION_APPLIED"
                  ]
                }
              }
            }
          }
        }
      },
      "BeneficiaryBatchResponse": {
        "description": "Success",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/BeneficiaryBatch"
            }
          }
        }
      },
      "BeneficiaryPageResponse": {
        "description": "Success",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "beneficiaries": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Beneficiary"
                  }
                },
                "count": {
                  "type": "integer",
                  "description": "The total number of records (excluding the paging limit).",
                  "format": "int32"
                },
                "responseCount": {
                  "type": "integer",
                  "description": "The total number of records returned in this response (always capped at 100).",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "BeneficiaryResponse": {
        "description": "Success",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Beneficiary"
            }
          }
        }
      },
      "BeneficiaryBatchPageResponse": {
        "description": "Success",
        "headers": {
          "request-ref": {
            "$ref": "#/components/headers/request-ref"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "batches": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BeneficiaryBatch"
                  }
                },
                "count": {
                  "type": "integer",
                  "description": "The total number of records (excluding the paging limit).",
                  "format": "int32"
                },
                "responseCount": {
                  "type": "integer",
                  "description": "The total number of records returned in this response (always capped at 100).",
                  "format": "int32"
                }
              }
            }
          }
        }
      },
      "BeneficiaryBatchSCAChallengeConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "description": "Error codes:\n  * `STATE_INVALID` - The operation no longer requires additional verification, it was either cancelled or completed.\n  * `CHANNEL_NOT_SUPPORTED` - The channel selected cannot be used to verify this type of operation.\n  * `CHANNEL_NOT_REGISTERED` - The channel selected must be enrolled to receive one-time passwords before it can be used to verify this type of operation.\n",
                  "type": "string",
                  "enum": [
                    "STATE_INVALID",
                    "CHANNEL_NOT_SUPPORTED",
                    "CHANNEL_NOT_REGISTERED"
                  ]
                }
              }
            }
          }
        }
      },
      "BeneficiaryBatchSCAVerifyConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "STATE_INVALID",
                    "CHANNEL_NOT_SUPPORTED",
                    "CHANNEL_NOT_REGISTERED",
                    "VERIFICATION_CODE_EXPIRED",
                    "VERIFICATION_CODE_INVALID",
                    "ONE_CHALLENGE_LIMIT_REMAINING",
                    "CHALLENGE_LIMIT_EXCEEDED"
                  ]
                }
              }
            }
          }
        }
      },
      "BeneficiaryBatchSCAChallengePushConflict": {
        "description": "Conflict",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "enum": [
                    "STATE_INVALID",
                    "CHANNEL_NOT_SUPPORTED",
                    "CHANNEL_NOT_REGISTERED",
                    "CHALLENGE_LIMIT_EXCEEDED"
                  ]
                }
              }
            }
          }
        }
      }
    }
  },
  "x-tagGroups": [
    {
      "name": "User Authentication",
      "tags": ["Access", "Passwords"]
    },
    {
      "name": "Strong Customer Authentication",
      "tags": [
        "Authentication Factors",
        "Step-up Challenges",
        "Confirmation Challenges",
        "SCA Exemptions"
      ]
    },
    {
      "name": "Identities",
      "tags": ["Corporates", "Consumers"]
    },
    {
      "name": "User Management",
      "tags": ["Authorised Users"]
    },
    {
      "name": "Beneficiary Management",
      "tags": ["Beneficiaries"]
    },
    {
      "name": "Instruments",
      "tags": ["Managed Accounts", "Managed Cards"]
    },
    {
      "name": "External Instruments",
      "tags": ["Linked Accounts"]
    },
    {
      "name": "Transactions",
      "tags": [
        "Sends",
        "Transfers",
        "Outgoing Wire Transfers",
        "Incoming Wire Transfers"
      ]
    },
    {
      "name": "Bulk Operations",
      "tags": ["Operations", "Manage"]
    }
  ]
}
