IBAN stands for International Bank Account Number.
" - }, - "cta": { - "type": [ - "object", - "null" - ], - "description": "Call-to-action details.", - "properties": { - "label": { - "type": "string", - "description": "CTA label.", - "example": "IBAN" - }, - "content": { - "type": "string", - "description": "CTA content.", - "example": "BE12 3456 7890 1234" - } - } - } - } - }, - "hidden": { - "type": "boolean", - "description": "Whether the field should be hidden in the UI.", - "example": false - } - } - } - } + "type": "string" + }, + "maxItems": 2, + "description": "Address lines. May be empty; up to two lines can be populated alongside structured fields.", + "example": [ + "1st Floor, Worship Square", + "EV2A 4JE" + ] + } + }, + "required": [ + "addressLines", + "country", + "townName" + ] + }, + "BeAccountIdentification": { + "type": "object", + "properties": { + "bic": { + "type": "string", + "maxLength": 11, + "minLength": 8, + "description": "SWIFT BIC (Business Identifier Code) of the financial institution.", + "example": "TRWIBEB1" + }, + "iban": { + "type": "string", + "maxLength": 34, + "description": "International Bank Account Number.", + "example": "BE71096123456769" + }, + "institutionName": { + "type": "string", + "maxLength": 140, + "description": "Name of the financial institution.", + "example": "Wise" + }, + "institutionAddress": { + "$ref": "#/components/schemas/Iso20022Address", + "description": "Postal address of the financial institution." + } + }, + "required": [ + "iban", + "institutionAddress" + ] + }, + "GbAccountIdentification": { + "type": "object", + "properties": { + "bic": { + "type": "string", + "maxLength": 11, + "minLength": 8, + "description": "SWIFT BIC (Business Identifier Code) of the financial institution.", + "example": "TRWIGB2L" + }, + "iban": { + "type": "string", + "maxLength": 34, + "description": "International Bank Account Number.", + "example": "GB29NWBK60161331926819" + }, + "sortCode": { + "type": "string", + "maxLength": 6, + "minLength": 6, + "description": "UK sort code identifying the bank and branch.", + "example": "230801" + }, + "accountNumber": { + "type": "string", + "maxLength": 34, + "description": "Domestic account number.", + "example": "12345678" + }, + "institutionName": { + "type": "string", + "maxLength": 140, + "description": "Name of the financial institution.", + "example": "Wise Payments Ltd" + }, + "institutionAddress": { + "$ref": "#/components/schemas/Iso20022Address", + "description": "Postal address of the financial institution." + } + }, + "required": [ + "accountNumber", + "iban", + "institutionAddress", + "sortCode" + ] + }, + "UsAccountIdentification": { + "type": "object", + "properties": { + "bic": { + "type": "string", + "maxLength": 11, + "minLength": 8, + "description": "SWIFT BIC (Business Identifier Code) of the financial institution.", + "example": "TRWIUS35XXX" + }, + "routingNumber": { + "type": "string", + "maxLength": 9, + "minLength": 9, + "description": "US ABA routing number identifying the financial institution.", + "example": "101019628" + }, + "accountNumber": { + "type": "string", + "maxLength": 34, + "description": "Domestic account number.", + "example": "9900000000" + }, + "institutionName": { + "type": "string", + "maxLength": 140, + "description": "Name of the financial institution.", + "example": "Wise" + }, + "institutionAddress": { + "$ref": "#/components/schemas/Iso20022Address", + "description": "Postal address of the financial institution." + } + }, + "required": [ + "accountNumber", + "institutionAddress", + "routingNumber" + ] + }, + "AccountIdentification": { + "description": "Country/scheme-specific account identification.", + "oneOf": [ + { + "type": "object", + "title": "beAccountIdentification", + "properties": { + "beAccountIdentification": { + "$ref": "#/components/schemas/BeAccountIdentification", + "description": "Belgian (SEPA) account details format." } - } + }, + "required": [ + "beAccountIdentification" + ] }, - "bankFeatures": { - "type": "array", - "description": "Features enabled on the account.", - "items": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Feature identifier.", - "example": "LOCAL_RECEIVE" - }, - "title": { - "type": "string", - "description": "Human-readable feature name.", - "example": "Receive locally" - }, - "supported": { - "type": "boolean", - "description": "Whether the feature is supported.", - "example": true - } + { + "type": "object", + "title": "gbAccountIdentification", + "properties": { + "gbAccountIdentification": { + "$ref": "#/components/schemas/GbAccountIdentification", + "description": "UK account details format." } - } + }, + "required": [ + "gbAccountIdentification" + ] + }, + { + "type": "object", + "title": "usAccountIdentification", + "properties": { + "usAccountIdentification": { + "$ref": "#/components/schemas/UsAccountIdentification", + "description": "US account details format." + } + }, + "required": [ + "usAccountIdentification" + ] } - } + ] + }, + "AccountDetails": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "description": "Unique identifier for the account details.", + "format": "int64", + "example": 12345678 + }, + "profileId": { + "type": "integer", + "description": "Profile ID of the account details owner.", + "format": "int64", + "example": 12345678 + }, + "state": { + "$ref": "#/components/schemas/AccountDetailsState", + "description": "Current state of the account details." + }, + "accountHolderName": { + "type": "string", + "maxLength": 140, + "description": "Name of the account holder as it appears on the account details.", + "example": "Sarah Jenkins" + }, + "country": { + "type": "string", + "maxLength": 2, + "minLength": 2, + "pattern": "^[A-Z]{2}$", + "description": "ISO 3166-1 alpha-2 country code the account details belong to.", + "example": "GB" + }, + "accountIdentification": { + "$ref": "#/components/schemas/AccountIdentification", + "description": "Country/scheme-specific account identification." + } + }, + "required": [ + "accountHolderName", + "accountIdentification", + "country", + "id", + "profileId", + "state" + ] }, "PayInDetails": { "type": "object", @@ -31362,7 +34190,56 @@ } } }, - "PaymentInitiation": { + "PaymentInitiationDirectDebitRequest": { + "title": "Direct debit", + "type": "object", + "description": "Funds all transfers in the batch group via direct debit.\n\nTo use this funding method, you must link an external bank account first. See [direct debit account creation](/api-reference/direct-debit-account/directdebitaccountcreate) for more information.\n", + "required": [ + "type", + "accountId" + ], + "properties": { + "type": { + "type": "string", + "description": "The method of payment to use.", + "enum": [ + "DIRECT_DEBIT" + ], + "example": "DIRECT_DEBIT" + }, + "accountId": { + "type": "integer", + "format": "int64", + "description": "Direct debit account ID. See [direct debit account creation](/api-reference/direct-debit-account/directdebitaccountcreate).", + "example": 1 + }, + "reference": { + "type": "string", + "description": "Optional payment initiation reference. Maximum 10 characters. If not provided, a reference will be generated automatically.", + "example": "B1234567" + } + } + }, + "PaymentInitiationPayinSessionRequest": { + "title": "Payin session", + "type": "object", + "description": "Funds all transfers in the batch group using the payin session associated with the batch group (see `payinSessionId` on the [batch group](/api-reference/batch-group)).\n", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "description": "The method of payment to use.", + "enum": [ + "PAYIN_SESSION" + ], + "example": "PAYIN_SESSION" + } + } + }, + "PaymentInitiationDirectDebit": { + "title": "Direct debit", "type": "object", "description": "Payment initiation for funding a batch group via direct debit.", "properties": { @@ -31428,7 +34305,75 @@ ], "format": "int64", "description": "Transfer ID of the direct debit payment. Present only after the direct debit is initiated.", - "example": null + "example": 2149510998 + }, + "createdTime": { + "type": "string", + "format": "date-time", + "description": "Date and time when the payment initiation was created.", + "example": "2022-01-01T19:51:41.423404Z" + } + } + }, + "PaymentInitiationPayinSession": { + "title": "Payin session", + "type": "object", + "description": "Payment initiation for funding a batch group via payin session.", + "properties": { + "id": { + "type": "integer", + "format": "int64", + "description": "Payment initiation ID.", + "example": 12345 + }, + "batchGroupId": { + "type": "string", + "format": "uuid", + "description": "Batch group ID.", + "example": "068e186d-9632-4937-b753-af3e53f4d0b0" + }, + "reference": { + "type": "string", + "description": "Payment reference that will be passed to the network. Can be used for reconciliation.", + "example": "B1234567" + }, + "userId": { + "type": "integer", + "format": "int64", + "description": "The ID of the user who initiated this payment.", + "example": 33333333 + }, + "profileId": { + "type": "integer", + "format": "int64", + "description": "The ID of the profile this payment belongs to.", + "example": 44444444 + }, + "type": { + "type": "string", + "description": "Payment type.", + "enum": [ + "PAYIN_SESSION" + ], + "example": "PAYIN_SESSION" + }, + "status": { + "type": "string", + "description": "Payment initiation status:\n- `NEW` — Payment initiation created\n- `PROCESSING` — Payment is being processed\n- `COMPLETED` — Payment completed successfully\n- `FAILED` — Payment failed\n- `CHARGED_BACK` — Payment was charged back\n", + "enum": [ + "NEW", + "PROCESSING", + "COMPLETED", + "FAILED", + "CHARGED_BACK" + ], + "example": "NEW" + }, + "payinSessionId": { + "type": "string", + "format": "uuid", + "description": "ID of the payin session used to fund the batch group.", + "example": "7c1f3a52-9d4e-4b8a-a6f2-3e5d8c9b0a17" }, "createdTime": { "type": "string", @@ -31438,6 +34383,24 @@ } } }, + "PaymentInitiation": { + "description": "Payment initiation for funding a batch group. The response shape depends on the funding method used.\n", + "discriminator": { + "propertyName": "type", + "mapping": { + "DIRECT_DEBIT": "#/components/schemas/PaymentInitiationDirectDebit", + "PAYIN_SESSION": "#/components/schemas/PaymentInitiationPayinSession" + } + }, + "oneOf": [ + { + "$ref": "#/components/schemas/PaymentInitiationDirectDebit" + }, + { + "$ref": "#/components/schemas/PaymentInitiationPayinSession" + } + ] + }, "Card": { "type": "object", "description": "The Card resource represents a Wise card linked to a profile.", @@ -33158,6 +36121,2369 @@ } } }, + "select-requirement-type": { + "title": "Select a requirement type", + "description": "The request body depends on the requirement type being submitted. Select it from the list to see the `submissionData` fields and whether `files` are needed; the request sample updates to match.", + "not": {} + }, + "version": { + "type": "string", + "description": "The submission version.", + "enum": [ + "V1" + ], + "example": "V1" + }, + "kyc-review-id": { + "type": "string", + "format": "uuid", + "description": "The ID of the KYC Review this submission belongs to.", + "example": "93a903ea-636c-4c86-a25c-cf6d2bd00e81" + }, + "account-intent": { + "title": "ACCOUNT_INTENT", + "description": "How the customer intends to use their Wise account.\n\nSee [ACCOUNT_INTENT](/guides/product/account-setup/customer-onboarding/kyc-requirement-types#account_intent) in the KYC requirement types guide for more details.\n", + "type": "object", + "required": [ + "submissionData" + ], + "properties": { + "submissionData": { + "description": "```json {% title=\"Example\" %}\n{\n \"data\": {\n \"accountIntent\": \"PAYING_FOR_GOODS_OR_SERVICES_ABROAD\"\n },\n \"version\": \"V1\",\n \"kycReviewId\": \"93a903ea-636c-4c86-a25c-cf6d2bd00e81\"\n}\n```\n", + "type": "object", + "required": [ + "data", + "version", + "kycReviewId" + ], + "properties": { + "data": { + "type": "object", + "required": [ + "accountIntent" + ], + "properties": { + "accountIntent": { + "type": "string", + "description": "How the customer intends to use their Wise account. The accepted values depend on whether the profile is personal or business.\n\nDepending on what triggered the KYC review, only some of these values may be accepted. Other values are rejected with a `400` error.\n", + "anyOf": [ + { + "title": "Personal profiles", + "type": "string", + "enum": [ + "CONTRIBUTING_TO_PERSONAL_SAVINGS", + "GENERAL_MONTHLY_LIVING_EXPENSES", + "INVESTING_IN_FUNDS_STOCKS_BONDS_OPTIONS_FUTURES_OR_OTHER", + "PAYING_FOR_GOODS_OR_SERVICES_ABROAD", + "PAYING_RENT_MORTGAGE_BANK_LOAN_INSURANCE_CREDIT", + "PAYING_RENT_UTILITIES_OR_PROPERTY_CHARGES", + "RECEIVE_SALARY_IN_DIFFERENT_CURRENCY", + "RECEIVE_PENSION_IN_DIFFERENT_CURRENCY", + "SENDING_MONEY_REGULARLY_TO_FAMILY", + "SENDING_MONEY_TO_MY_OWN_ACCOUNT_TO_BENEFIT_FROM_EXHCANGE_RATE", + "EDD_BORDERLESS_PERSONAL_RECEIVING_SALARY_IN_DIFFERENT_CURRENCY", + "EDD_BORDERLESS_PERSONAL_RECEIVING_FINANCIAL_SUPPORT_FROM_FAMILY", + "EDD_BORDERLESS_PERSONAL_RECEIVING_MONEY_FOR_FREELANCE_OR_CONTRACTOR_SERVICES", + "EDD_BORDERLESS_PERSONAL_STORING_MONEY_TO_MANAGE_RATE_FLUCTUATION_RISK", + "EDD_BORDERLESS_PERSONAL_USING_AS_LOCAL_BANK_ACCOUNT_IN_FOREIGN_COUNTRY", + "EDD_BORDERLESS_PERSONAL_PAYING_FOR_RENT_MORTGAGE_BANK_LOAN_INSURANCE_CREDIT_CARD" + ] + }, + { + "title": "Business profiles", + "type": "string", + "enum": [ + "EDD_BORDERLESS_BUSINESS_PAYING_SUPPLIERS_CONTRACTORS_EMPLOYEES", + "EDD_BORDERLESS_BUSINESS_PAYING_SUPPLIERS_CONTRACTORS_EMPLOYEES_AND_RECEIVING_MONEY_FOR_SERVICES", + "PAYING_SUPPLIERS_CONTRACTORS_EMPLOYEES_AND_RECEIVING_MONEY_FOR_SERVICES", + "INVESTING_IN_FUNDS_STOCKS_BONDS_OPTIONS_FUTURES_OR_OTHER", + "DISTRIBUTING_COMPANY_PROFITS_OR_PAYING_DIVIDENDS", + "PAYING_RENT_MORTGAGE_BANK_LOAN_INSURANCE_CREDIT", + "PAYING_FOR_GOODS_SERVICES_ABROAD", + "PAYING_RENT_UTILITIES_OR_PROPERTY_CHARGES", + "PAYING_SUPPLIERS_CONTRACTORS_EMPLOYEES", + "PAYING_TAX_ON_PROFIT_OR_PROPERTY", + "TRANSFER_WITHIN_COMPANY_OR_GROUP", + "EDD_BORDERLESS_BUSINESS_MAKING_INTRA_COMPANY_TRANSFERS" + ] + } + ], + "example": "PAYING_FOR_GOODS_OR_SERVICES_ABROAD" + } + } + }, + "version": { + "$ref": "#/components/schemas/version" + }, + "kycReviewId": { + "$ref": "#/components/schemas/kyc-review-id" + } + } + } + } + }, + "account-purpose": { + "title": "ACCOUNT_PURPOSE", + "description": "The purpose of the account.\n\nSee [ACCOUNT_PURPOSE](/guides/product/account-setup/customer-onboarding/kyc-requirement-types#account_purpose) in the KYC requirement types guide for more details.\n", + "type": "object", + "required": [ + "submissionData" + ], + "properties": { + "submissionData": { + "description": "```json {% title=\"Example\" %}\n{\n \"data\": {\n \"accountPurpose\": \"SENDING_MONEY_TO_FRIENDS_OR_FAMILY\"\n },\n \"version\": \"V1\",\n \"kycReviewId\": \"93a903ea-636c-4c86-a25c-cf6d2bd00e81\"\n}\n```\n", + "type": "object", + "required": [ + "data", + "version", + "kycReviewId" + ], + "properties": { + "data": { + "type": "object", + "required": [ + "accountPurpose" + ], + "properties": { + "accountPurpose": { + "type": "string", + "enum": [ + "SENDING_MONEY_TO_FRIENDS_OR_FAMILY", + "MOVING_SAVINGS", + "GENERAL_LIVING_EXPENSES", + "BUYING_GOODS_OR_SERVICES_ABROAD", + "PAYING_FOR_MORTGAGE_OR_LOAN", + "PAYING_BILLS", + "RECEIVING_SALARY_OR_PENSION", + "INVESTING" + ], + "example": "SENDING_MONEY_TO_FRIENDS_OR_FAMILY" + } + } + }, + "version": { + "$ref": "#/components/schemas/version" + }, + "kycReviewId": { + "$ref": "#/components/schemas/kyc-review-id" + } + } + } + } + }, + "currency": { + "type": "string", + "description": "The currency code (e.g. `USD`, `EUR`).", + "example": "USD" + }, + "annual-volume": { + "title": "ANNUAL_VOLUME", + "description": "A rough estimate of the yearly volume the customer intends to send or receive.\n\nSee [ANNUAL_VOLUME](/guides/product/account-setup/customer-onboarding/kyc-requirement-types#annual_volume) in the KYC requirement types guide for more details.\n", + "type": "object", + "required": [ + "submissionData" + ], + "properties": { + "submissionData": { + "description": "```json {% title=\"Example\" %}\n{\n \"data\": {\n \"amount\": 10000.00,\n \"currency\": \"USD\"\n },\n \"version\": \"V1\",\n \"kycReviewId\": \"93a903ea-636c-4c86-a25c-cf6d2bd00e81\"\n}\n```\n", + "type": "object", + "required": [ + "data", + "version", + "kycReviewId" + ], + "properties": { + "data": { + "type": "object", + "required": [ + "amount", + "currency" + ], + "properties": { + "amount": { + "type": "number", + "exclusiveMinimum": 0, + "description": "The estimated annual volume amount. Must be greater than zero.", + "example": 10000 + }, + "currency": { + "$ref": "#/components/schemas/currency" + } + } + }, + "version": { + "$ref": "#/components/schemas/version" + }, + "kycReviewId": { + "$ref": "#/components/schemas/kyc-review-id" + } + } + } + } + }, + "business-annual-income": { + "title": "BUSINESS_ANNUAL_INCOME", + "description": "The organisation's approximate gross yearly income.\n\nSee [BUSINESS_ANNUAL_INCOME](/guides/product/account-setup/customer-onboarding/kyc-requirement-types#business_annual_income) in the KYC requirement types guide for more details.\n", + "type": "object", + "required": [ + "submissionData" + ], + "properties": { + "submissionData": { + "description": "```json {% title=\"Example\" %}\n{\n \"data\": {\n \"amount\": 4500.00,\n \"currency\": \"USD\"\n },\n \"version\": \"V1\",\n \"kycReviewId\": \"93a903ea-636c-4c86-a25c-cf6d2bd00e81\"\n}\n```\n", + "type": "object", + "required": [ + "data", + "version", + "kycReviewId" + ], + "properties": { + "data": { + "type": "object", + "required": [ + "amount", + "currency" + ], + "properties": { + "amount": { + "type": "number", + "exclusiveMinimum": 0, + "description": "The gross yearly income amount. Must be greater than zero.", + "example": 4500 + }, + "currency": { + "$ref": "#/components/schemas/currency" + } + } + }, + "version": { + "$ref": "#/components/schemas/version" + }, + "kycReviewId": { + "$ref": "#/components/schemas/kyc-review-id" + } + } + } + } + }, + "business-authorisation-id": { + "title": "BUSINESS_AUTHORISATION_ID", + "description": "The identification document of one company Director. This document is required to verify authorisation to act on the account on behalf of the organisation. It is only asked for if the Business Representative (the account creator) is not listed as a Director of the company.\n\nNo `data` field is needed. See [BUSINESS_AUTHORISATION_ID](/guides/product/account-setup/customer-onboarding/kyc-requirement-types#business_authorisation_id) in the KYC requirement types guide for more details.\n", + "type": "object", + "required": [ + "submissionData", + "files" + ], + "properties": { + "submissionData": { + "description": "```json {% title=\"Example\" %}\n{\n \"version\": \"V1\",\n \"kycReviewId\": \"93a903ea-636c-4c86-a25c-cf6d2bd00e81\"\n}\n```\n", + "type": "object", + "required": [ + "version", + "kycReviewId" + ], + "properties": { + "version": { + "$ref": "#/components/schemas/version" + }, + "kycReviewId": { + "$ref": "#/components/schemas/kyc-review-id" + } + } + }, + "files": { + "type": "array", + "items": { + "type": "string", + "format": "binary" + }, + "examples": [ + [ + "document.pdf" + ] + ], + "description": "Upload the identification document.\n\nAccepted file types: `image/png` (`.png`), `image/jpeg` (`.jpg` or `.jpeg`) and `application/pdf` (`.pdf`). The content type must match the file extension.\n\n```json {% title=\"Example\" %}\n[\"document.pdf\"]\n```\n" + } + } + }, + "business-authorisation-letter": { + "title": "BUSINESS_AUTHORISATION_LETTER", + "description": "A document authorising the Business Representative to act on the account on behalf of the organisation. When the Business Representative is also a Director, they are automatically authorised and this document is not needed.\n\nThe document must include:\n- Business name, legal type, registration number, country of incorporation and registered address.\n- Legal Representative's (the Director) name, date of birth, function in the company (such as Director), permission to act on behalf of the organisation and signature.\n- Authorised Representative's (the Business Representative) name, date of birth, authority to act on the account and signature.\n- Date of issue.\n\nNo `data` field is needed. See [BUSINESS_AUTHORISATION_LETTER](/guides/product/account-setup/customer-onboarding/kyc-requirement-types#business_authorisation_letter) in the KYC requirement types guide for more details.\n", + "type": "object", + "required": [ + "submissionData", + "files" + ], + "properties": { + "submissionData": { + "description": "```json {% title=\"Example\" %}\n{\n \"version\": \"V1\",\n \"kycReviewId\": \"93a903ea-636c-4c86-a25c-cf6d2bd00e81\"\n}\n```\n", + "type": "object", + "required": [ + "version", + "kycReviewId" + ], + "properties": { + "version": { + "$ref": "#/components/schemas/version" + }, + "kycReviewId": { + "$ref": "#/components/schemas/kyc-review-id" + } + } + }, + "files": { + "type": "array", + "items": { + "type": "string", + "format": "binary" + }, + "examples": [ + [ + "document.pdf" + ] + ], + "description": "Upload the authorisation letter.\n\nAccepted file types: `image/png` (`.png`), `image/jpeg` (`.jpg` or `.jpeg`) and `application/pdf` (`.pdf`). The content type must match the file extension.\n\n```json {% title=\"Example\" %}\n[\"document.pdf\"]\n```\n" + } + } + }, + "business-controlling-person": { + "title": "BUSINESS_CONTROLLING_PERSON", + "description": "Declare exactly one shareholder as the person who controls the business and provide their business title.\n\nSee [BUSINESS_CONTROLLING_PERSON](/guides/product/account-setup/customer-onboarding/kyc-requirement-types#business_controlling_person) in the KYC requirement types guide for more details.\n", + "type": "object", + "required": [ + "submissionData" + ], + "properties": { + "submissionData": { + "description": "```json {% title=\"Example\" %}\n{\n \"data\": {\n \"shareholderId\": \"7ff6c4998a59d71ad9834041727017d2\",\n \"businessTitle\": \"CEO\"\n },\n \"version\": \"V1\",\n \"kycReviewId\": \"93a903ea-636c-4c86-a25c-cf6d2bd00e81\"\n}\n```\n", + "type": "object", + "required": [ + "data", + "version", + "kycReviewId" + ], + "properties": { + "data": { + "type": "object", + "required": [ + "shareholderId", + "businessTitle" + ], + "properties": { + "shareholderId": { + "type": "string", + "description": "The ID of the shareholder declared as the controlling person. Use the `id` returned by the [List UBOs](/api-reference/profile/profileubolist) endpoint.", + "example": "7ff6c4998a59d71ad9834041727017d2" + }, + "businessTitle": { + "type": "string", + "description": "The controlling person's title or role in the business.", + "enum": [ + "GENERAL_PARTNER", + "FOUNDER", + "CEO", + "PRESIDENT", + "MANAGING_DIRECTOR", + "COO", + "CFO", + "TREASURER", + "EXECUTIVE_DIRECTOR", + "VICE_PRESIDENT" + ], + "example": "CEO" + } + } + }, + "version": { + "$ref": "#/components/schemas/version" + }, + "kycReviewId": { + "$ref": "#/components/schemas/kyc-review-id" + } + } + } + } + }, + "business-directors-check": { + "title": "BUSINESS_DIRECTORS_CHECK", + "description": "Confirm the directors of the business. Directors can be members of the board of directors, general partners or part of executive management. If a director is another business, a document identifying the individuals directing that business is needed.\n\nNo `data` field is needed. See [BUSINESS_DIRECTORS_CHECK](/guides/product/account-setup/customer-onboarding/kyc-requirement-types#business_directors_check) in the KYC requirement types guide for more details.\n", + "type": "object", + "required": [ + "submissionData", + "files" + ], + "properties": { + "submissionData": { + "description": "```json {% title=\"Example\" %}\n{\n \"version\": \"V1\",\n \"kycReviewId\": \"93a903ea-636c-4c86-a25c-cf6d2bd00e81\"\n}\n```\n", + "type": "object", + "required": [ + "version", + "kycReviewId" + ], + "properties": { + "version": { + "$ref": "#/components/schemas/version" + }, + "kycReviewId": { + "$ref": "#/components/schemas/kyc-review-id" + } + } + }, + "files": { + "type": "array", + "items": { + "type": "string", + "format": "binary" + }, + "examples": [ + [ + "document.pdf" + ] + ], + "description": "Upload the relevant documents.\n\nAccepted file types: `image/png` (`.png`), `image/jpeg` (`.jpg` or `.jpeg`) and `application/pdf` (`.pdf`). The content type must match the file extension.\n\n```json {% title=\"Example\" %}\n[\"document.pdf\"]\n```\n" + } + } + }, + "business-income-classification": { + "title": "BUSINESS_INCOME_CLASSIFICATION", + "description": "Under the Common Reporting Standard (CRS), we are required to collect your business's tax classification based on how it earns income. Depending on your selection, we may need to ask for additional information (such as tax details on controlling persons).\n\nSee [BUSINESS_INCOME_CLASSIFICATION](/guides/product/account-setup/customer-onboarding/kyc-requirement-types#business_income_classification) in the KYC requirement types guide for more details.\n", + "type": "object", + "required": [ + "submissionData" + ], + "properties": { + "submissionData": { + "description": "```json {% title=\"Example\" %}\n{\n \"data\": {\n \"classificationType\": \"ACTIVE_NFE\"\n },\n \"version\": \"V1\",\n \"kycReviewId\": \"93a903ea-636c-4c86-a25c-cf6d2bd00e81\"\n}\n```\n", + "type": "object", + "required": [ + "data", + "version", + "kycReviewId" + ], + "properties": { + "data": { + "type": "object", + "required": [ + "classificationType" + ], + "properties": { + "classificationType": { + "type": "string", + "description": "The business's CRS classification.\n- `ACTIVE_NFE` - Active non-financial entity: more than 50% of the business's income comes from sales, services, donations, or grants.\n- `PASSIVE_NFE` - Passive non-financial entity: more than 50% of the business's income comes from dividends, interest, rent, or royalties.\n- `FI_INVESTMENT_ENTITY` - Financial institution (FI) that manages investment, hedge, or private equity funds, or is a foundation funded by investments.\n- `FI_NON_INVESTMENT_ENTITY` - FI such as a bank, credit union, custodial institution, or similar.\n", + "enum": [ + "ACTIVE_NFE", + "PASSIVE_NFE", + "FI_INVESTMENT_ENTITY", + "FI_NON_INVESTMENT_ENTITY" + ], + "example": "ACTIVE_NFE" + } + } + }, + "version": { + "$ref": "#/components/schemas/version" + }, + "kycReviewId": { + "$ref": "#/components/schemas/kyc-review-id" + } + } + } + } + }, + "business-monthly-volume": { + "title": "BUSINESS_MONTHLY_VOLUME", + "description": "A rough estimate of the monthly volumes the business intends to send or receive.\n\nSee [BUSINESS_MONTHLY_VOLUME](/guides/product/account-setup/customer-onboarding/kyc-requirement-types#business_monthly_volume) in the KYC requirement types guide for more details.\n", + "type": "object", + "required": [ + "submissionData" + ], + "properties": { + "submissionData": { + "description": "```json {% title=\"Example\" %}\n{\n \"data\": {\n \"amount\": 4500.00,\n \"currency\": \"USD\"\n },\n \"version\": \"V1\",\n \"kycReviewId\": \"93a903ea-636c-4c86-a25c-cf6d2bd00e81\"\n}\n```\n", + "type": "object", + "required": [ + "data", + "version", + "kycReviewId" + ], + "properties": { + "data": { + "type": "object", + "required": [ + "amount", + "currency" + ], + "properties": { + "amount": { + "type": "number", + "exclusiveMinimum": 0, + "description": "The estimated monthly volume. Must be greater than zero.", + "example": 4500 + }, + "currency": { + "$ref": "#/components/schemas/currency" + } + } + }, + "version": { + "$ref": "#/components/schemas/version" + }, + "kycReviewId": { + "$ref": "#/components/schemas/kyc-review-id" + } + } + } + } + }, + "business-registration-docs": { + "title": "BUSINESS_REGISTRATION_DOCS", + "description": "Proof of Business Registration, such as a certificate of incorporation, articles of association, or an official registry excerpt. It should be the document on record with the local business or tax authority. It must show:\n- The business name, identification number and full registered address.\n- The directors, managers, partners, trustees or members of the executive board.\n- The owners, members or shareholders and their respective holdings.\n\nIf any of the above information has changed since formation, upload a document showing the most up to date details.\n\nNo `data` field is needed. See [BUSINESS_REGISTRATION_DOCS](/guides/product/account-setup/customer-onboarding/kyc-requirement-types#business_registration_docs) in the KYC requirement types guide for more details.\n", + "type": "object", + "required": [ + "submissionData", + "files" + ], + "properties": { + "submissionData": { + "description": "```json {% title=\"Example\" %}\n{\n \"version\": \"V1\",\n \"kycReviewId\": \"93a903ea-636c-4c86-a25c-cf6d2bd00e81\"\n}\n```\n", + "type": "object", + "required": [ + "version", + "kycReviewId" + ], + "properties": { + "version": { + "$ref": "#/components/schemas/version" + }, + "kycReviewId": { + "$ref": "#/components/schemas/kyc-review-id" + } + } + }, + "files": { + "type": "array", + "items": { + "type": "string", + "format": "binary" + }, + "examples": [ + [ + "document.pdf" + ] + ], + "description": "Upload the registration documents.\n\nAccepted file types: `image/png` (`.png`), `image/jpeg` (`.jpg` or `.jpeg`) and `application/pdf` (`.pdf`). The content type must match the file extension.\n\n```json {% title=\"Example\" %}\n[\"document.pdf\"]\n```\n" + } + } + }, + "business-shareholder-contact-details": { + "title": "BUSINESS_SHAREHOLDER_CONTACT_DETAILS", + "description": "Provide contact details, including email addresses, for all current shareholders of the business. Submit all contact details in a single request; requests that omit any shareholders are rejected.\n\nSee [BUSINESS_SHAREHOLDER_CONTACT_DETAILS](/guides/product/account-setup/customer-onboarding/kyc-requirement-types#business_shareholder_contact_details) in the KYC requirement types guide for more details.\n", + "type": "object", + "required": [ + "submissionData" + ], + "properties": { + "submissionData": { + "description": "```json {% title=\"Example\" %}\n{\n \"data\": {\n \"businessShareholderContactDetails\": [\n {\n \"shareholderId\": \"7ff6c4998a59d71ad9834041727017d2\",\n \"email\": \"shareholder-one@example.com\"\n },\n {\n \"shareholderId\": \"a9578a5a0544d06fd737566c627518a4\",\n \"email\": \"shareholder-two@example.com\"\n }\n ]\n },\n \"version\": \"V1\",\n \"kycReviewId\": \"93a903ea-636c-4c86-a25c-cf6d2bd00e81\"\n}\n```\n", + "type": "object", + "required": [ + "data", + "version", + "kycReviewId" + ], + "properties": { + "data": { + "type": "object", + "required": [ + "businessShareholderContactDetails" + ], + "properties": { + "businessShareholderContactDetails": { + "type": "array", + "description": "Provide each current shareholder exactly once.", + "items": { + "type": "object", + "required": [ + "shareholderId", + "email" + ], + "properties": { + "shareholderId": { + "type": "string", + "description": "The shareholder ID. Use the `id` returned by the [List UBOs](/api-reference/profile/profileubolist) endpoint.", + "example": "7ff6c4998a59d71ad9834041727017d2" + }, + "email": { + "type": "string", + "format": "email", + "maxLength": 255, + "description": "The shareholder's email address. It must be a valid email address with no more than 255 characters.", + "example": "shareholder-one@example.com" + } + } + } + } + } + }, + "version": { + "$ref": "#/components/schemas/version" + }, + "kycReviewId": { + "$ref": "#/components/schemas/kyc-review-id" + } + } + } + } + }, + "business-shareholders-check": { + "title": "BUSINESS_SHAREHOLDERS_CHECK", + "description": "Documents showing who ultimately owns and controls the company (e.g. a recent shareholder register, operating agreement, or partnership deed). If an owner is another business, a document identifying the individuals who are the ultimate beneficial owners of that business is needed.\n\nNo `data` field is needed. See [BUSINESS_SHAREHOLDERS_CHECK](/guides/product/account-setup/customer-onboarding/kyc-requirement-types#business_shareholders_check) in the KYC requirement types guide for more details.\n", + "type": "object", + "required": [ + "submissionData", + "files" + ], + "properties": { + "submissionData": { + "description": "```json {% title=\"Example\" %}\n{\n \"version\": \"V1\",\n \"kycReviewId\": \"93a903ea-636c-4c86-a25c-cf6d2bd00e81\"\n}\n```\n", + "type": "object", + "required": [ + "version", + "kycReviewId" + ], + "properties": { + "version": { + "$ref": "#/components/schemas/version" + }, + "kycReviewId": { + "$ref": "#/components/schemas/kyc-review-id" + } + } + }, + "files": { + "type": "array", + "items": { + "type": "string", + "format": "binary" + }, + "examples": [ + [ + "document.pdf" + ] + ], + "description": "Upload the relevant documents.\n\nAccepted file types: `image/png` (`.png`), `image/jpeg` (`.jpg` or `.jpeg`) and `application/pdf` (`.pdf`). The content type must match the file extension.\n\n```json {% title=\"Example\" %}\n[\"document.pdf\"]\n```\n" + } + } + }, + "business-source-of-wealth": { + "title": "BUSINESS_SOURCE_OF_WEALTH", + "description": "The source of the business's wealth.\n\nSee [BUSINESS_SOURCE_OF_WEALTH](/guides/product/account-setup/customer-onboarding/kyc-requirement-types#business_source_of_wealth) in the KYC requirement types guide for more details.\n", + "type": "object", + "required": [ + "submissionData" + ], + "properties": { + "submissionData": { + "description": "```json {% title=\"Example\" %}\n{\n \"data\": {\n \"sourceOfWealthList\": [\n \"BUSINESS_ACTIVITIES\",\n \"OTHER\"\n ],\n \"otherSourceOfWealthDescription\": \"Loan from friends\"\n },\n \"version\": \"V1\",\n \"kycReviewId\": \"93a903ea-636c-4c86-a25c-cf6d2bd00e81\"\n}\n```\n", + "type": "object", + "required": [ + "data", + "version", + "kycReviewId" + ], + "properties": { + "data": { + "type": "object", + "required": [ + "sourceOfWealthList" + ], + "properties": { + "sourceOfWealthList": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "BUSINESS_ACTIVITIES", + "INVESTMENTS", + "LOAN_OR_OTHER_FINANCING", + "DONATION", + "GRANTS", + "OTHER" + ] + }, + "example": [ + "BUSINESS_ACTIVITIES", + "OTHER" + ] + }, + "otherSourceOfWealthDescription": { + "type": "string", + "description": "Required if `OTHER` is provided in `sourceOfWealthList`.", + "example": "Loan from friends" + } + } + }, + "version": { + "$ref": "#/components/schemas/version" + }, + "kycReviewId": { + "$ref": "#/components/schemas/kyc-review-id" + } + } + } + } + }, + "business-source-of-wealth-info": { + "title": "BUSINESS_SOURCE_OF_WEALTH_INFO", + "description": "The source of the business's wealth and whether it is used to fund the action.\n\nSee [BUSINESS_SOURCE_OF_WEALTH_INFO](/guides/product/account-setup/customer-onboarding/kyc-requirement-types#business_source_of_wealth_info) in the KYC requirement types guide for more details.\n", + "type": "object", + "required": [ + "submissionData" + ], + "properties": { + "submissionData": { + "description": "```json {% title=\"Example\" %}\n{\n \"data\": {\n \"sourceOfWealthList\": [\n {\n \"businessSourceOfWealthInfo\": \"BUSINESS_LOAN\",\n \"isSourceOfFund\": false\n },\n {\n \"businessSourceOfWealthInfo\": \"GRANTS\",\n \"isSourceOfFund\": true\n }\n ]\n },\n \"version\": \"V1\",\n \"kycReviewId\": \"93a903ea-636c-4c86-a25c-cf6d2bd00e81\"\n}\n```\n", + "type": "object", + "required": [ + "data", + "version", + "kycReviewId" + ], + "properties": { + "data": { + "type": "object", + "required": [ + "sourceOfWealthList" + ], + "properties": { + "sourceOfWealthList": { + "type": "array", + "items": { + "type": "object", + "properties": { + "businessSourceOfWealthInfo": { + "type": "string", + "enum": [ + "REVENUE", + "PERSONAL_FUNDING", + "BUSINESS_LOAN", + "FUNDING_AND_SHAREHOLDER_INVESTMENTS", + "INVESTMENT_INCOME", + "DONATIONS", + "GRANTS", + "LEGAL" + ], + "example": "BUSINESS_LOAN" + }, + "isSourceOfFund": { + "type": "boolean", + "description": "Whether this source of wealth is used to fund the action.", + "example": false + } + } + } + } + } + }, + "version": { + "$ref": "#/components/schemas/version" + }, + "kycReviewId": { + "$ref": "#/components/schemas/kyc-review-id" + } + } + } + } + }, + "business-source-of-wealth-proof": { + "title": "BUSINESS_SOURCE_OF_WEALTH_PROOF", + "description": "A high-quality photo or PDF of a document proving the source of the business's wealth. The required documentation varies depending on the selected source category. Examples include the most recent 3-6 months worth of bank statements, latest audited financials, latest tax returns, loan agreements, or investment contracts that are less than 12 months old. The document should display the business income amount (if you have more than one type of income, you will have to upload documents for each of them), the business name, the issue date and signatures, if applicable.\n\nSee [BUSINESS_SOURCE_OF_WEALTH_PROOF](/guides/product/account-setup/customer-onboarding/kyc-requirement-types#business_source_of_wealth_proof) in the KYC requirement types guide for more details.\n", + "type": "object", + "required": [ + "submissionData", + "files" + ], + "properties": { + "submissionData": { + "description": "```json {% title=\"Example\" %}\n{\n \"data\": {\n \"sourceOfWealthType\": \"REVENUE\",\n \"documentType\": \"SAVINGS_STATEMENT\"\n },\n \"version\": \"V1\",\n \"kycReviewId\": \"93a903ea-636c-4c86-a25c-cf6d2bd00e81\"\n}\n```\n", + "type": "object", + "required": [ + "data", + "version", + "kycReviewId" + ], + "properties": { + "data": { + "type": "object", + "properties": { + "sourceOfWealthType": { + "type": "string", + "enum": [ + "REVENUE", + "PERSONAL_FUNDING", + "BUSINESS_LOAN", + "FUNDING_AND_SHAREHOLDER_INVESTMENTS", + "INVESTMENT_INCOME", + "DONATIONS", + "GRANTS", + "LEGAL" + ], + "example": "REVENUE" + }, + "documentType": { + "type": "string", + "enum": [ + "PAYSLIP", + "INVOICES", + "CONTRACTS", + "TAX_DOCUMENTS", + "AUDITED_FINANCIAL_STATEMENTS", + "E_COMMERCE_STATEMENTS", + "PERSONAL_INVESTMENT", + "PERSONAL_LOAN_AGREEMENT", + "PERSONAL_TAX_DECLARATION", + "LOAN_AGREEMENT", + "EQUITY_AGREEMENT", + "SUBSCRIPTION_AGREEMENT", + "SAVINGS_STATEMENT", + "ASSET_SALE_AGREEMENT", + "SHARE_SALE_CERTIFICATE", + "DONATION_RECEIPTS", + "GRANT_APPROVAL_LETTER", + "WRITTEN_CONFIRMATION", + "BANK_STATEMENT" + ], + "example": "SAVINGS_STATEMENT" + } + } + }, + "version": { + "$ref": "#/components/schemas/version" + }, + "kycReviewId": { + "$ref": "#/components/schemas/kyc-review-id" + } + } + }, + "files": { + "type": "array", + "items": { + "type": "string", + "format": "binary" + }, + "examples": [ + [ + "document.pdf" + ] + ], + "description": "Upload the proof document.\n\nAccepted file types: `image/png` (`.png`), `image/jpeg` (`.jpg` or `.jpeg`) and `application/pdf` (`.pdf`). The content type must match the file extension.\n\n```json {% title=\"Example\" %}\n[\"document.pdf\"]\n```\n" + } + } + }, + "business-ultimate-beneficial-owner-id": { + "title": "BUSINESS_ULTIMATE_BENEFICIAL_OWNER_ID", + "description": "The Ultimate Beneficial Owner (UBO) ID document should be submitted for all UBOs that have more than 25% share. While this requirement is `NOT_PROVIDED`, its `attributes.requiredUbos` lists the shareholder IDs that still need an ID document.\n\nProvide a clear copy of the ID document. The full document needs to be in frame and all information on the document needs to be visible. If the document has information on the backside, both sides are needed. Expired documents and documents issued over 15 years ago cannot be accepted.\n\nWhen `data.documentType` is `SSN`, set `data.ssn` instead of the file names and don't upload files.\n\nSee [BUSINESS_ULTIMATE_BENEFICIAL_OWNER_ID](/guides/product/account-setup/customer-onboarding/kyc-requirement-types#business_ultimate_beneficial_owner_id) in the KYC requirement types guide for more details.\n", + "type": "object", + "anyOf": [ + { + "title": "Document upload", + "description": "Submit an ID document for the UBO. Upload the document in `files`, with file names matching `frontSideFileName` and `backSideFileName`.", + "type": "object", + "required": [ + "submissionData", + "files" + ], + "properties": { + "submissionData": { + "description": "```json {% title=\"Example\" %}\n{\n \"data\": {\n \"documentType\": \"NATIONAL_ID\",\n \"shareholderId\": \"489209\",\n \"frontSideFileName\": \"image1.jpeg\",\n \"backSideFileName\": \"image2.jpeg\"\n },\n \"version\": \"V1\",\n \"kycReviewId\": \"93a903ea-636c-4c86-a25c-cf6d2bd00e81\"\n}\n```\n", + "type": "object", + "required": [ + "data", + "version", + "kycReviewId" + ], + "properties": { + "data": { + "type": "object", + "required": [ + "documentType", + "shareholderId" + ], + "properties": { + "documentType": { + "type": "string", + "description": "Accepted document types vary by the region the business is located in.\n\n**US business address** (United States, American Samoa, Guam, North Mariana Islands, Puerto Rico, United States Virgin Islands, United States Minor Outlying Islands):\n- `NON_US_DRIVING_LICENSE`\n- `NON_US_NATIONAL_ID`\n- `NON_US_PASSPORT`\n\n**EEA business address:**\n- `NATIONAL_ID`\n- `PASSPORT`\n\n**Other regions:**\n- `DRIVING_LICENSE`\n- `NATIONAL_ID`\n- `PASSPORT`\n\nUS businesses can submit an SSN instead of a document; select **SSN** above.\n", + "enum": [ + "NON_US_DRIVING_LICENSE", + "NON_US_NATIONAL_ID", + "NON_US_PASSPORT", + "DRIVING_LICENSE", + "NATIONAL_ID", + "PASSPORT" + ], + "example": "NATIONAL_ID" + }, + "shareholderId": { + "type": "string", + "description": "The UBO's shareholder ID. Use the `id` returned by the [Create UBO](/api-reference/profile/profileubocreate) or [List UBOs](/api-reference/profile/profileubolist) endpoints.", + "example": "489209" + }, + "frontSideFileName": { + "type": "string", + "description": "Filename of the front side image. Required for document types with front and back.", + "example": "image1.jpeg" + }, + "backSideFileName": { + "type": "string", + "description": "Filename of the back side image. Required for document types with front and back.", + "example": "image2.jpeg" + } + } + }, + "version": { + "$ref": "#/components/schemas/version" + }, + "kycReviewId": { + "$ref": "#/components/schemas/kyc-review-id" + } + } + }, + "files": { + "type": "array", + "items": { + "type": "string", + "format": "binary" + }, + "examples": [ + [ + "image1.jpeg", + "image2.jpeg" + ] + ], + "description": "Upload the ID document, with file names matching `data.frontSideFileName` and `data.backSideFileName`.\n\nAccepted file types: `image/png` (`.png`), `image/jpeg` (`.jpg` or `.jpeg`) and `application/pdf` (`.pdf`). The content type must match the file extension.\n\n```json {% title=\"Example\" %}\n[\"image1.jpeg\", \"image2.jpeg\"]\n```\n" + } + } + }, + { + "title": "SSN", + "description": "For businesses with a US business address, submit the UBO's Social Security Number instead of an ID document. No files are needed.", + "type": "object", + "required": [ + "submissionData" + ], + "properties": { + "submissionData": { + "description": "```json {% title=\"Example\" %}\n{\n \"data\": {\n \"documentType\": \"SSN\",\n \"shareholderId\": \"489209\",\n \"ssn\": \"555501234\"\n },\n \"version\": \"V1\",\n \"kycReviewId\": \"93a903ea-636c-4c86-a25c-cf6d2bd00e81\"\n}\n```\n", + "type": "object", + "required": [ + "data", + "version", + "kycReviewId" + ], + "properties": { + "data": { + "type": "object", + "required": [ + "documentType", + "shareholderId", + "ssn" + ], + "properties": { + "documentType": { + "type": "string", + "enum": [ + "SSN" + ], + "example": "SSN" + }, + "shareholderId": { + "type": "string", + "description": "The UBO's shareholder ID. Use the `id` returned by the [Create UBO](/api-reference/profile/profileubocreate) or [List UBOs](/api-reference/profile/profileubolist) endpoints.", + "example": "489209" + }, + "ssn": { + "type": "string", + "description": "The UBO's Social Security Number, as 9 digits without dashes.", + "pattern": "^[0-9]{9}$", + "example": "555501234" + } + } + }, + "version": { + "$ref": "#/components/schemas/version" + }, + "kycReviewId": { + "$ref": "#/components/schemas/kyc-review-id" + } + } + } + } + } + ] + }, + "business-use-case": { + "title": "BUSINESS_USE_CASE", + "description": "How the business intends to use the Wise account.\n\nSee [BUSINESS_USE_CASE](/guides/product/account-setup/customer-onboarding/kyc-requirement-types#business_use_case) in the KYC requirement types guide for more details.\n", + "type": "object", + "required": [ + "submissionData" + ], + "properties": { + "submissionData": { + "description": "```json {% title=\"Example\" %}\n{\n \"data\": {\n \"useCases\": [\n \"DONATION\",\n \"PAYING_RENT_OR_UTILITIES\"\n ]\n },\n \"version\": \"V1\",\n \"kycReviewId\": \"93a903ea-636c-4c86-a25c-cf6d2bd00e81\"\n}\n```\n", + "type": "object", + "required": [ + "data", + "version", + "kycReviewId" + ], + "properties": { + "data": { + "type": "object", + "required": [ + "useCases" + ], + "properties": { + "useCases": { + "type": "array", + "minItems": 1, + "items": { + "type": "string", + "enum": [ + "INVESTING_IN_FUNDS_STOCKS_BONDS_OR_SIMILAR", + "DISTRIBUTING_COMPANY_PROFITS_OR_PAYING_DIVIDENDS", + "PAYING_MORTGAGE_BANK_LOAN_INSURANCE_OR_CREDIT", + "PAYING_FOR_GOODS_PROPERTIES_OR_SERVICES_ABROAD", + "PAYING_RENT_OR_UTILITIES", + "PAYING_SUPPLIERS_CONTRACTORS_OR_EMPLOYEES", + "PAYING_TAX_ON_PROFIT_OR_PROPERTY", + "TRANSFER_WITHIN_COMPANY_OR_GROUP", + "RECEIVE_INVESTMENTS_OR_FUNDS", + "RECEIVE_PAYMENTS_FROM_CLIENTS", + "DONATION", + "OTHER" + ] + }, + "example": [ + "DONATION", + "PAYING_RENT_OR_UTILITIES" + ] + } + } + }, + "version": { + "$ref": "#/components/schemas/version" + }, + "kycReviewId": { + "$ref": "#/components/schemas/kyc-review-id" + } + } + } + } + }, + "id-document": { + "title": "ID_DOCUMENT", + "description": "Provide a clear copy of the ID document. The full document needs to be in frame and all information on the document needs to be visible. If the document has information on the backside, both sides are needed. Expired documents and documents issued over 15 years ago cannot be accepted.\n\nSee [ID_DOCUMENT](/guides/product/account-setup/customer-onboarding/kyc-requirement-types#id_document) in the KYC requirement types guide for more details.\n", + "type": "object", + "required": [ + "submissionData", + "files" + ], + "properties": { + "submissionData": { + "description": "```json {% title=\"Example\" %}\n{\n \"data\": {\n \"issuingCountry\": \"GB\",\n \"documentType\": \"DRIVERS_LICENSE\",\n \"frontSideFileName\": \"front_side.jpg\",\n \"backSideFileName\": \"back_side.jpg\"\n },\n \"version\": \"V1\",\n \"kycReviewId\": \"93a903ea-636c-4c86-a25c-cf6d2bd00e81\"\n}\n```\n", + "type": "object", + "required": [ + "data", + "version", + "kycReviewId" + ], + "properties": { + "data": { + "type": "object", + "properties": { + "issuingCountry": { + "type": "string", + "description": "ISO 3166-1 alpha-2 country code.", + "example": "GB" + }, + "documentType": { + "type": "string", + "enum": [ + "PASSPORT", + "ID_CARD", + "DRIVERS_LICENSE", + "TAX_ID", + "RESIDENCE_PERMIT" + ], + "example": "DRIVERS_LICENSE" + }, + "frontSideFileName": { + "type": "string", + "description": "Filename of the front side image. Required for `ID_CARD`, `DRIVERS_LICENSE`, `TAX_ID`, `RESIDENCE_PERMIT`.", + "example": "front_side.jpg" + }, + "backSideFileName": { + "type": "string", + "description": "Filename of the back side image. Required for `ID_CARD`, `DRIVERS_LICENSE`, `TAX_ID`, `RESIDENCE_PERMIT`.", + "example": "back_side.jpg" + } + } + }, + "version": { + "$ref": "#/components/schemas/version" + }, + "kycReviewId": { + "$ref": "#/components/schemas/kyc-review-id" + } + } + }, + "files": { + "type": "array", + "items": { + "type": "string", + "format": "binary" + }, + "examples": [ + [ + "front_side.jpg", + "back_side.jpg" + ] + ], + "description": "Upload the ID document, with file names matching `frontSideFileName` and `backSideFileName`.\n\nAccepted file types: `image/png` (`.png`), `image/jpeg` (`.jpg` or `.jpeg`) and `application/pdf` (`.pdf`). The content type must match the file extension.\n\n```json {% title=\"Example\" %}\n[\"front_side.jpg\", \"back_side.jpg\"]\n```\n" + } + } + }, + "income": { + "title": "INCOME", + "description": "Approximate gross yearly income.\n\nSee [INCOME](/guides/product/account-setup/customer-onboarding/kyc-requirement-types#income) in the KYC requirement types guide for more details.\n", + "type": "object", + "required": [ + "submissionData" + ], + "properties": { + "submissionData": { + "description": "```json {% title=\"Example\" %}\n{\n \"data\": {\n \"amount\": 50000.00,\n \"currency\": \"USD\",\n \"incomeType\": \"SALARY\"\n },\n \"version\": \"V1\",\n \"kycReviewId\": \"93a903ea-636c-4c86-a25c-cf6d2bd00e81\"\n}\n```\n", + "type": "object", + "required": [ + "data", + "version", + "kycReviewId" + ], + "properties": { + "data": { + "type": "object", + "properties": { + "amount": { + "type": "number", + "exclusiveMinimum": 0, + "description": "The gross yearly income amount. Must be greater than zero.", + "example": 50000 + }, + "currency": { + "$ref": "#/components/schemas/currency" + }, + "incomeType": { + "type": "string", + "enum": [ + "SALARY", + "INVESTMENTS", + "PENSION", + "INHERITANCE", + "LOAN", + "PROPERTY_SALE", + "FREELANCER", + "FAMILY", + "STUDENT", + "GOVERNMENT_BENEFITS" + ], + "example": "SALARY" + }, + "incomeExplanation": { + "type": [ + "string", + "null" + ], + "description": "Optional. A free-text description of the income source.", + "example": "Salary from full-time employment" + } + } + }, + "version": { + "$ref": "#/components/schemas/version" + }, + "kycReviewId": { + "$ref": "#/components/schemas/kyc-review-id" + } + } + } + } + }, + "india-transfer-purpose": { + "title": "INDIA_TRANSFER_PURPOSE", + "description": "The code representing the purpose of the profile's transfer, along with supporting documents based on the code provided. This only appears for transfers from INR to one of GBP, USD, EUR, AUD, CAD, SGD.\n\nSee [INDIA_TRANSFER_PURPOSE](/guides/product/account-setup/customer-onboarding/kyc-requirement-types#india_transfer_purpose) in the KYC requirement types guide for more details.\n", + "type": "object", + "required": [ + "submissionData", + "files" + ], + "properties": { + "submissionData": { + "description": "```json {% title=\"Example\" %}\n{\n \"data\": {\n \"code\": \"OVERSEAS_EDUCATION\",\n \"tcsTaxApplies\": false,\n \"educationPaidWithLoan\": true,\n \"passportFileName\": \"file1.png\",\n \"additionalDocumentFileName\": \"file2.png\",\n \"loanDocumentFileName\": \"file3.png\"\n },\n \"version\": \"V1\",\n \"kycReviewId\": \"93a903ea-636c-4c86-a25c-cf6d2bd00e81\"\n}\n```\n", + "type": "object", + "required": [ + "data", + "version", + "kycReviewId" + ], + "properties": { + "data": { + "type": "object", + "required": [ + "code", + "tcsTaxApplies", + "educationPaidWithLoan", + "passportFileName", + "additionalDocumentFileName" + ], + "properties": { + "code": { + "type": "string", + "description": "Represents the purpose of the profile's transfer.", + "enum": [ + "OVERSEAS_EDUCATION", + "EDUCATION_EXPENSES", + "BUSINESS_TRAVEL", + "VACATION", + "MEDICAL_TREATMENT" + ], + "example": "OVERSEAS_EDUCATION" + }, + "tcsTaxApplies": { + "type": "boolean", + "description": "Must be set to `true` if the profile has remitted more than INR 10 lakhs (including the current transaction) in the current financial year.", + "example": false + }, + "educationPaidWithLoan": { + "type": "boolean", + "description": "If `code` is `OVERSEAS_EDUCATION` or `EDUCATION_EXPENSES`, set to `true` if the profile is paying for this transfer with a loan from a financial institution. For other codes set to `false`.", + "example": true + }, + "passportFileName": { + "type": "string", + "description": "Filename for the profile's passport image.", + "example": "file1.png" + }, + "additionalDocumentFileName": { + "type": "string", + "description": "Filename for the additional document provided. The type of file supplied as additional document must be based on the `code`, and must be in the profile's name.\n- For `OVERSEAS_EDUCATION` or `EDUCATION_EXPENSES` this can be a visa or university admission letter.\n- For `BUSINESS_TRAVEL` or `VACATION` this can be a visa or travel ticket.\n- For `MEDICAL_TREATMENT` this can be a hospital invoice, doctor's confirmation, or appointment letter.\n", + "example": "file2.png" + }, + "loanDocumentFileName": { + "type": "string", + "description": "Required when `educationPaidWithLoan` is `true`. Filename for the loan sanction letter including sanctioned amount and borrower details.", + "example": "file3.png" + } + } + }, + "version": { + "$ref": "#/components/schemas/version" + }, + "kycReviewId": { + "$ref": "#/components/schemas/kyc-review-id" + } + } + }, + "files": { + "type": "array", + "items": { + "type": "string", + "format": "binary" + }, + "examples": [ + [ + "file1.png", + "file2.png", + "file3.png" + ] + ], + "description": "Upload the supporting documents, with file names matching the `*FileName` fields.\n\nAccepted file types: `image/png` (`.png`), `image/jpeg` (`.jpg` or `.jpeg`) and `application/pdf` (`.pdf`). The content type must match the file extension.\n\n```json {% title=\"Example\" %}\n[\"file1.png\", \"file2.png\", \"file3.png\"]\n```\n" + } + } + }, + "jpn-business-cert": { + "title": "JPN_BUSINESS_CERT", + "description": "Certificate of Registered Matters for the business. Required for corporations only in Japan. The document verifies: business name, registered address, registration date, business activities, directors, and must be issued within 6 months.\n\nNo `data` field is needed. See [JPN_BUSINESS_CERT](/guides/product/account-setup/customer-onboarding/kyc-requirement-types#jpn_business_cert) in the KYC requirement types guide for more details.\n", + "type": "object", + "required": [ + "submissionData", + "files" + ], + "properties": { + "submissionData": { + "description": "```json {% title=\"Example\" %}\n{\n \"version\": \"V1\",\n \"kycReviewId\": \"93a903ea-636c-4c86-a25c-cf6d2bd00e81\"\n}\n```\n", + "type": "object", + "required": [ + "version", + "kycReviewId" + ], + "properties": { + "version": { + "$ref": "#/components/schemas/version" + }, + "kycReviewId": { + "$ref": "#/components/schemas/kyc-review-id" + } + } + }, + "files": { + "type": "array", + "items": { + "type": "string", + "format": "binary" + }, + "examples": [ + [ + "document.pdf" + ] + ], + "description": "Upload the business document.\n\nAccepted file types: `image/png` (`.png`), `image/jpeg` (`.jpg` or `.jpeg`) and `application/pdf` (`.pdf`). The content type must match the file extension.\n\n```json {% title=\"Example\" %}\n[\"document.pdf\"]\n```\n" + } + } + }, + "jpn-personal-mynumber": { + "title": "JPN_PERSONAL_MYNUMBER", + "description": "Proof of My Number for the customer. My Number is a 12-digit ID number issued to all Japan citizens and residents, including resident foreigners living in Japan for over 90 days. All the information (name, DOB, address) on a My Number document has to match the information on the profile and on the ID document.\n\nSee [JPN_PERSONAL_MYNUMBER](/guides/product/account-setup/customer-onboarding/kyc-requirement-types#jpn_personal_mynumber) in the KYC requirement types guide for more details.\n", + "type": "object", + "required": [ + "submissionData", + "files" + ], + "properties": { + "submissionData": { + "description": "```json {% title=\"Example\" %}\n{\n \"data\": {\n \"documentType\": \"MY_NUMBER_CARD\",\n \"frontSideFileName\": \"front.jpg\",\n \"backSideFileName\": \"back.jpg\"\n },\n \"version\": \"V1\",\n \"kycReviewId\": \"93a903ea-636c-4c86-a25c-cf6d2bd00e81\"\n}\n```\n", + "type": "object", + "required": [ + "data", + "version", + "kycReviewId" + ], + "properties": { + "data": { + "type": "object", + "properties": { + "documentType": { + "type": "string", + "description": "The type of My Number document being submitted.", + "enum": [ + "MY_NUMBER_CARD", + "MY_NUMBER_NOTIFICATION_CARD", + "RESIDENCE_CERTIFICATE" + ], + "example": "MY_NUMBER_CARD" + }, + "frontSideFileName": { + "type": "string", + "description": "The file name of the front-side image. Must match the name of one of the uploaded files. Required for `MY_NUMBER_CARD` and `MY_NUMBER_NOTIFICATION_CARD`; not required for `RESIDENCE_CERTIFICATE`.", + "example": "front.jpg" + }, + "backSideFileName": { + "type": "string", + "description": "The file name of the back-side image. Must match the name of one of the uploaded files. Required for `MY_NUMBER_CARD` and `MY_NUMBER_NOTIFICATION_CARD`; not required for `RESIDENCE_CERTIFICATE`.", + "example": "back.jpg" + } + } + }, + "version": { + "$ref": "#/components/schemas/version" + }, + "kycReviewId": { + "$ref": "#/components/schemas/kyc-review-id" + } + } + }, + "files": { + "type": "array", + "items": { + "type": "string", + "format": "binary" + }, + "examples": [ + [ + "front.jpg", + "back.jpg" + ] + ], + "description": "The required number of files depends on `documentType`:\n\n| Document type | File requirements |\n|---|---|\n| `MY_NUMBER_CARD` | 2 files (front and back) |\n| `MY_NUMBER_NOTIFICATION_CARD` | 2 files (front and back) |\n| `RESIDENCE_CERTIFICATE` | 1 or more files (all pages) |\n\nAccepted file types: `image/png` (`.png`), `image/jpeg` (`.jpg` or `.jpeg`) and `application/pdf` (`.pdf`). The content type must match the file extension.\n\n```json {% title=\"Example\" %}\n[\"front.jpg\", \"back.jpg\"]\n```\n" + } + } + }, + "legal-entity-shareholder": { + "title": "LEGAL_ENTITY_SHAREHOLDER", + "description": "A legal entity shareholder is another business or organisation that directly or indirectly owns part or all of the business being onboarded. Provide the name, registered country and ownership percentage of every legal entity shareholder that owns 25% or more, directly or indirectly. Do not include individual shareholders or the business being onboarded. If there are no qualifying legal entity shareholders, submit an empty list.\n\nSee [LEGAL_ENTITY_SHAREHOLDER](/guides/product/account-setup/customer-onboarding/kyc-requirement-types#legal_entity_shareholder) in the KYC requirement types guide for more details.\n", + "type": "object", + "required": [ + "submissionData" + ], + "properties": { + "submissionData": { + "description": "```json {% title=\"Example\" %}\n{\n \"data\": {\n \"legalEntityShareholders\": [\n {\n \"name\": \"Example Holdings Inc\",\n \"country\": \"US\",\n \"ownershipPercentage\": 40\n }\n ]\n },\n \"version\": \"V1\",\n \"kycReviewId\": \"93a903ea-636c-4c86-a25c-cf6d2bd00e81\"\n}\n```\n", + "type": "object", + "required": [ + "data", + "version", + "kycReviewId" + ], + "properties": { + "data": { + "type": "object", + "required": [ + "legalEntityShareholders" + ], + "properties": { + "legalEntityShareholders": { + "type": "array", + "description": "The legal entity shareholders of the business.", + "items": { + "type": "object", + "required": [ + "name", + "country", + "ownershipPercentage" + ], + "properties": { + "name": { + "type": "string", + "description": "The shareholder's name. Must not match the business name.", + "example": "Example Holdings Inc" + }, + "country": { + "type": "string", + "description": "The shareholder's country as an uppercase ISO 3166-1 alpha-2 country code.", + "example": "US" + }, + "ownershipPercentage": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "description": "The shareholder's ownership percentage, between 1 and 100 inclusive. The combined total may exceed 100. This is expected behaviour for multi-layered corporate structures.", + "example": 40 + } + } + } + } + } + }, + "version": { + "$ref": "#/components/schemas/version" + }, + "kycReviewId": { + "$ref": "#/components/schemas/kyc-review-id" + } + } + } + } + }, + "proof-of-trading-address": { + "title": "PROOF_OF_TRADING_ADDRESS", + "description": "High-quality image or PDF of a document verifying the physical location of the business operations. The document must clearly display the business name (or owner's name), the full trading address, an issue date, and the issuer's identity (e.g. bank or utility logo). Utility bills and bank statements must be less than 3 months old. Other documents (like tax bills, insurance policies, or licences) must be less than 12 months old.\n\nSee [PROOF_OF_TRADING_ADDRESS](/guides/product/account-setup/customer-onboarding/kyc-requirement-types#proof_of_trading_address) in the KYC requirement types guide for more details.\n", + "type": "object", + "required": [ + "submissionData", + "files" + ], + "properties": { + "submissionData": { + "description": "```json {% title=\"Example\" %}\n{\n \"data\": {\n \"documentType\": \"UTILITY_BILL\",\n \"tradingAddressId\": 4711\n },\n \"version\": \"V1\",\n \"kycReviewId\": \"93a903ea-636c-4c86-a25c-cf6d2bd00e81\"\n}\n```\n", + "type": "object", + "required": [ + "data", + "version", + "kycReviewId" + ], + "properties": { + "data": { + "type": "object", + "properties": { + "documentType": { + "type": "string", + "enum": [ + "ID_DOCUMENT", + "UTILITY_BILL", + "PHONE_BILL", + "LEASE_AGREEMENT", + "BANK_STATEMENT", + "BUSINESS_REGISTRATION", + "TAX_BILL", + "TAX_DOCUMENT", + "INSURANCE_POLICY", + "OTHER" + ], + "example": "UTILITY_BILL" + }, + "tradingAddressId": { + "type": "integer", + "format": "int64", + "description": "The trading address ID, from the addresses on the business profile.", + "example": 4711 + } + } + }, + "version": { + "$ref": "#/components/schemas/version" + }, + "kycReviewId": { + "$ref": "#/components/schemas/kyc-review-id" + } + } + }, + "files": { + "type": "array", + "items": { + "type": "string", + "format": "binary" + }, + "examples": [ + [ + "document.pdf" + ] + ], + "description": "Upload the proof document.\n\nAccepted file types: `image/png` (`.png`), `image/jpeg` (`.jpg` or `.jpeg`) and `application/pdf` (`.pdf`). The content type must match the file extension.\n\n```json {% title=\"Example\" %}\n[\"document.pdf\"]\n```\n" + } + } + }, + "source-of-funds": { + "title": "SOURCE_OF_FUNDS", + "description": "The origin category of the money used to finance a specific transaction or operation.\n\nSee [SOURCE_OF_FUNDS](/guides/product/account-setup/customer-onboarding/kyc-requirement-types#source_of_funds) in the KYC requirement types guide for more details.\n", + "type": "object", + "required": [ + "submissionData" + ], + "properties": { + "submissionData": { + "description": "```json {% title=\"Example\" %}\n{\n \"data\": {\n \"category\": \"SALARY\"\n },\n \"version\": \"V1\",\n \"kycReviewId\": \"93a903ea-636c-4c86-a25c-cf6d2bd00e81\"\n}\n```\n", + "type": "object", + "required": [ + "data", + "version", + "kycReviewId" + ], + "properties": { + "data": { + "type": "object", + "properties": { + "category": { + "type": "string", + "description": "The origin category of the money. The accepted values depend on whether the profile is personal or business.", + "anyOf": [ + { + "title": "Personal profiles", + "type": "string", + "enum": [ + "SALARY", + "INVESTMENT", + "INHERITANCE", + "LOAN", + "PROPERTY_SALE", + "FROM_FAMILY", + "OTHER" + ] + }, + { + "title": "Business profiles", + "type": "string", + "enum": [ + "BUSINESS_OPERATING", + "BUSINESS_INVESTING", + "BUSINESS_FINANCING", + "OTHER" + ] + } + ], + "example": "SALARY" + }, + "explanation": { + "type": [ + "string", + "null" + ], + "description": "Required if `category` is `OTHER`.", + "example": "Monthly salary from my employer" + } + } + }, + "version": { + "$ref": "#/components/schemas/version" + }, + "kycReviewId": { + "$ref": "#/components/schemas/kyc-review-id" + } + } + } + } + }, + "source-of-wealth": { + "title": "SOURCE_OF_WEALTH", + "description": "Source of wealth document upload.\n\nNo `data` field is needed. See [SOURCE_OF_WEALTH](/guides/product/account-setup/customer-onboarding/kyc-requirement-types#source_of_wealth) in the KYC requirement types guide for more details.\n", + "type": "object", + "required": [ + "submissionData", + "files" + ], + "properties": { + "submissionData": { + "description": "```json {% title=\"Example\" %}\n{\n \"version\": \"V1\",\n \"kycReviewId\": \"93a903ea-636c-4c86-a25c-cf6d2bd00e81\"\n}\n```\n", + "type": "object", + "required": [ + "version", + "kycReviewId" + ], + "properties": { + "version": { + "$ref": "#/components/schemas/version" + }, + "kycReviewId": { + "$ref": "#/components/schemas/kyc-review-id" + } + } + }, + "files": { + "type": "array", + "items": { + "type": "string", + "format": "binary" + }, + "examples": [ + [ + "document.pdf" + ] + ], + "description": "Upload the source of wealth document.\n\nAccepted file types: `image/png` (`.png`), `image/jpeg` (`.jpg` or `.jpeg`) and `application/pdf` (`.pdf`). The content type must match the file extension.\n\n```json {% title=\"Example\" %}\n[\"document.pdf\"]\n```\n" + } + } + }, + "source-of-wealth-info": { + "title": "SOURCE_OF_WEALTH_INFO", + "description": "Whether there is a secondary source of income, and if so its type and amount. When `hasSecondaryIncome` is `false`, no other fields are required.\n\nSee [SOURCE_OF_WEALTH_INFO](/guides/product/account-setup/customer-onboarding/kyc-requirement-types#source_of_wealth_info) in the KYC requirement types guide for more details.\n", + "type": "object", + "required": [ + "submissionData" + ], + "properties": { + "submissionData": { + "description": "```json {% title=\"Example\" %}\n{\n \"data\": {\n \"hasSecondaryIncome\": true,\n \"secondaryIncomeType\": \"SALARY\",\n \"amount\": 20000.00,\n \"currency\": \"USD\"\n },\n \"version\": \"V1\",\n \"kycReviewId\": \"93a903ea-636c-4c86-a25c-cf6d2bd00e81\"\n}\n```\n", + "type": "object", + "required": [ + "data", + "version", + "kycReviewId" + ], + "properties": { + "data": { + "type": "object", + "required": [ + "hasSecondaryIncome" + ], + "properties": { + "hasSecondaryIncome": { + "type": "boolean", + "description": "Set to `true` if there's a secondary source of income.", + "example": true + }, + "secondaryIncomeType": { + "type": "string", + "description": "Required when `hasSecondaryIncome` is `true`. Accepted values for personal profiles.", + "enum": [ + "SALARY", + "PENSION", + "INHERITANCE", + "PROPERTY_SALE", + "LOAN", + "INVESTMENTS", + "OTHER" + ], + "example": "SALARY" + }, + "secondaryIncomeDescription": { + "type": [ + "string", + "null" + ], + "description": "Optional. A free-text description of the secondary income source.", + "example": "Part-time salary from a second job" + }, + "amount": { + "type": "number", + "exclusiveMinimum": 0, + "description": "Required when `hasSecondaryIncome` is `true`. The secondary income amount. Must be greater than zero.", + "example": 20000 + }, + "currency": { + "$ref": "#/components/schemas/currency", + "description": "Required when `hasSecondaryIncome` is `true`. The currency code (e.g. `USD`, `EUR`)." + } + } + }, + "version": { + "$ref": "#/components/schemas/version" + }, + "kycReviewId": { + "$ref": "#/components/schemas/kyc-review-id" + } + } + } + } + }, + "source-of-wealth-proof": { + "title": "SOURCE_OF_WEALTH_PROOF", + "description": "A document proving the secondary source of wealth income. The accepted document types depend on the `secondaryIncomeType` provided.\n\nSee [SOURCE_OF_WEALTH_PROOF](/guides/product/account-setup/customer-onboarding/kyc-requirement-types#source_of_wealth_proof) in the KYC requirement types guide for more details.\n", + "type": "object", + "required": [ + "submissionData", + "files" + ], + "properties": { + "submissionData": { + "description": "```json {% title=\"Example\" %}\n{\n \"data\": {\n \"secondaryIncomeType\": \"SALARY\",\n \"secondaryIncomeDocumentType\": \"PAYSLIP\"\n },\n \"version\": \"V1\",\n \"kycReviewId\": \"93a903ea-636c-4c86-a25c-cf6d2bd00e81\"\n}\n```\n", + "type": "object", + "required": [ + "data", + "version", + "kycReviewId" + ], + "properties": { + "data": { + "type": "object", + "properties": { + "secondaryIncomeType": { + "type": "string", + "description": "Accepted values for personal profiles.", + "enum": [ + "SALARY", + "PENSION", + "INHERITANCE", + "PROPERTY_SALE", + "LOAN", + "INVESTMENTS", + "OTHER" + ], + "example": "SALARY" + }, + "secondaryIncomeDocumentType": { + "type": "string", + "description": "The type of document being uploaded.", + "examples": [ + "PAYSLIP" + ], + "anyOf": [ + { + "title": "Select an income type", + "description": "The accepted values depend on `secondaryIncomeType`. Select the income type from the list to see its document types.", + "not": {} + }, + { + "title": "SALARY", + "description": "Document types accepted when `secondaryIncomeType` is `SALARY`.", + "type": "string", + "enum": [ + "PAYSLIP", + "TAX_RETURN", + "EMPLOYMENT_CONTRACT", + "PROOF_OF_EMPLOYMENT", + "BANK_STATEMENT" + ] + }, + { + "title": "INVESTMENTS", + "description": "Document types accepted when `secondaryIncomeType` is `INVESTMENTS`.", + "type": "string", + "enum": [ + "TAX_RETURN", + "STOCK_PLAN_EXERCISE_CONFIRMATION", + "PORTFOLIO_STATEMENT", + "DIVIDEND_VOUCHER", + "BANK_STATEMENT" + ] + }, + { + "title": "INHERITANCE", + "description": "Document types accepted when `secondaryIncomeType` is `INHERITANCE`.", + "type": "string", + "enum": [ + "TAX_RETURN", + "GRANT_OF_PROBATE", + "WILL", + "TRUST_DEED" + ] + }, + { + "title": "PENSION", + "description": "Document types accepted when `secondaryIncomeType` is `PENSION`.", + "type": "string", + "enum": [ + "TAX_RETURN", + "PENSION_STATEMENT", + "BANK_STATEMENT" + ] + }, + { + "title": "PROPERTY_SALE", + "description": "Document types accepted when `secondaryIncomeType` is `PROPERTY_SALE`.", + "type": "string", + "enum": [ + "TAX_RETURN", + "SALE_CONTRACT", + "SETTLEMENT_STATEMENT", + "BANK_STATEMENT" + ] + }, + { + "title": "LOAN", + "description": "Document types accepted when `secondaryIncomeType` is `LOAN`.", + "type": "string", + "enum": [ + "LOAN_AGREEMENT", + "BANK_STATEMENT" + ] + }, + { + "title": "OTHER", + "description": "Document types accepted when `secondaryIncomeType` is `OTHER`.", + "type": "string", + "enum": [ + "GIFT_LETTER", + "SCHOLARSHIP", + "LEASE_AGREEMENT", + "BANK_STATEMENT", + "OTHER" + ] + } + ] + }, + "secondaryIncomeDescription": { + "type": [ + "string", + "null" + ], + "description": "Optional. A free-text description of the secondary income source.", + "example": "Payslip from a second, part-time job" + } + } + }, + "version": { + "$ref": "#/components/schemas/version" + }, + "kycReviewId": { + "$ref": "#/components/schemas/kyc-review-id" + } + } + }, + "files": { + "type": "array", + "items": { + "type": "string", + "format": "binary" + }, + "examples": [ + [ + "document.pdf" + ] + ], + "description": "Upload the proof document.\n\nAccepted file types: `image/png` (`.png`), `image/jpeg` (`.jpg` or `.jpeg`) and `application/pdf` (`.pdf`). The content type must match the file extension.\n\n```json {% title=\"Example\" %}\n[\"document.pdf\"]\n```\n" + } + } + }, + "ssn-declaration": { + "title": "SSN_DECLARATION", + "description": "Declaration of the customer's US Social Security Number (SSN). This requirement only applies to customers in the US region.\n\nCustomers either provide their SSN or, if they don't have one, a reason why it is unavailable. Exactly one of `ssnNumber` or `ssnUnavailableReason` must be provided; the other must be `null`. Files are not required for either scenario.\n\nSee [SSN_DECLARATION](/guides/product/account-setup/customer-onboarding/kyc-requirement-types#ssn_declaration) in the KYC requirement types guide for more details and sandbox test data.\n", + "type": "object", + "required": [ + "submissionData" + ], + "properties": { + "submissionData": { + "anyOf": [ + { + "title": "SSN available", + "description": "```json {% title=\"Example\" %}\n{\n \"data\": {\n \"ssnNumber\": \"123-45-6789\"\n },\n \"version\": \"V1\",\n \"kycReviewId\": \"93a903ea-636c-4c86-a25c-cf6d2bd00e81\"\n}\n```\n", + "type": "object", + "required": [ + "data", + "version", + "kycReviewId" + ], + "properties": { + "data": { + "type": "object", + "required": [ + "ssnNumber" + ], + "properties": { + "ssnNumber": { + "type": "string", + "description": "The customer's 9-digit Social Security Number (including or excluding dashes).", + "example": "123-45-6789" + } + } + }, + "version": { + "$ref": "#/components/schemas/version" + }, + "kycReviewId": { + "$ref": "#/components/schemas/kyc-review-id" + } + } + }, + { + "title": "SSN unavailable", + "description": "```json {% title=\"Example\" %}\n{\n \"data\": {\n \"ssnUnavailableReason\": \"NON_US_CITIZEN\"\n },\n \"version\": \"V1\",\n \"kycReviewId\": \"93a903ea-636c-4c86-a25c-cf6d2bd00e81\"\n}\n```\n", + "type": "object", + "required": [ + "data", + "version", + "kycReviewId" + ], + "properties": { + "data": { + "type": "object", + "required": [ + "ssnUnavailableReason" + ], + "properties": { + "ssnUnavailableReason": { + "type": "string", + "description": "The reason the customer can't provide an SSN.", + "enum": [ + "NON_US_CITIZEN" + ], + "example": "NON_US_CITIZEN" + } + } + }, + "version": { + "$ref": "#/components/schemas/version" + }, + "kycReviewId": { + "$ref": "#/components/schemas/kyc-review-id" + } + } + } + ] + } + } + }, + "tax-residency": { + "title": "TAX_RESIDENCY", + "description": "Users must declare all countries where they hold tax residency. While this is usually where a user lives and works, those with more complex setups (e.g. digital nomads) must list all applicable jurisdictions.\n\nDepending on the user's situation and the Wise entity they are onboarded to, there are three distinct submission scenarios for tax residency. Files are not required for any scenario.\n\nSee [TAX_RESIDENCY](/guides/product/account-setup/customer-onboarding/kyc-requirement-types#tax_residency) in the KYC requirement types guide for more details and the TIN types accepted per country.\n", + "type": "object", + "required": [ + "submissionData" + ], + "properties": { + "submissionData": { + "anyOf": [ + { + "title": "Local Entity TIN Exemptions", + "description": "If a customer is onboarded to a local Wise entity, providing a TIN for that specific country is not required. View the full list of Wise Group Entities [here](https://wise.com/help/articles/2974131/what-are-the-wise-group-entities). If you are unsure which entity your customers are onboarded to, please contact your Account Manager.\n\n```json {% title=\"Example\" %}\n{\n \"data\": {\n \"taxInfoList\": [\n {\n \"taxCountry\": \"SG\"\n }\n ]\n },\n \"version\": \"V1\",\n \"kycReviewId\": \"93a903ea-636c-4c86-a25c-cf6d2bd00e81\"\n}\n```\n", + "type": "object", + "required": [ + "data", + "version", + "kycReviewId" + ], + "properties": { + "data": { + "type": "object", + "required": [ + "taxInfoList" + ], + "properties": { + "taxInfoList": { + "type": "array", + "description": "A list of tax residency objects for every country where the user is a tax resident.", + "examples": [ + [ + { + "taxCountry": "SG" + } + ] + ], + "items": { + "type": "object", + "required": [ + "taxCountry" + ], + "properties": { + "taxCountry": { + "type": "string", + "description": "ISO 3166-1 alpha-2 country code of the tax residency.", + "example": "SG" + } + } + } + } + } + }, + "version": { + "$ref": "#/components/schemas/version" + }, + "kycReviewId": { + "$ref": "#/components/schemas/kyc-review-id" + } + } + }, + { + "title": "Standard CRS Collection", + "description": "For customers not onboarded to a local Wise entity, a Tax Identification Number (TIN) is mandatory for all declared tax residencies. If a TIN cannot be provided, a `skipReason` must be given instead.\n\n```json {% title=\"Example\" %}\n{\n \"data\": {\n \"taxInfoList\": [\n {\n \"taxCountry\": \"SG\",\n \"taxId\": {\n \"type\": \"SG_NRIC\",\n \"number\": \"S1234567A\"\n }\n },\n {\n \"taxCountry\": \"BR\",\n \"skipReason\": \"TAX_EXEMPT\"\n }\n ]\n },\n \"version\": \"V1\",\n \"kycReviewId\": \"93a903ea-636c-4c86-a25c-cf6d2bd00e81\"\n}\n```\n", + "type": "object", + "required": [ + "data", + "version", + "kycReviewId" + ], + "properties": { + "data": { + "type": "object", + "required": [ + "taxInfoList" + ], + "properties": { + "taxInfoList": { + "type": "array", + "description": "A list of tax residency objects for every country where the user is a tax resident.", + "examples": [ + [ + { + "taxCountry": "SG", + "taxId": { + "type": "SG_NRIC", + "number": "S1234567A" + } + }, + { + "taxCountry": "BR", + "skipReason": "NO_TAXABLE_INCOME" + } + ] + ], + "items": { + "type": "object", + "required": [ + "taxCountry" + ], + "anyOf": [ + { + "title": "With TIN", + "required": [ + "taxId" + ] + }, + { + "title": "With skip reason", + "required": [ + "skipReason" + ] + } + ], + "properties": { + "taxCountry": { + "type": "string", + "description": "ISO 3166-1 alpha-2 country code of the tax residency.", + "example": "SG" + }, + "taxId": { + "type": "object", + "description": "An object containing tax identification details. Provide either `taxId` or `skipReason`.", + "required": [ + "type", + "number" + ], + "properties": { + "type": { + "type": "string", + "description": "The specific TIN identifier type for that country. Must be one of the types listed for the `taxCountry` in the [TIN types reference](/guides/product/account-setup/customer-onboarding/kyc-requirement-types#tin-types-reference). Any other value is rejected.", + "example": "SG_NRIC" + }, + "number": { + "type": "string", + "description": "The actual tax identification number. Must match the format of the selected `type`.", + "example": "S1234567A" + } + } + }, + "skipReason": { + "type": "string", + "description": "Justification for not providing a TIN. Provide either `taxId` or `skipReason`.\n- `TAX_EXEMPT` — the customer's income is exempt from taxation.\n- `RETIRED_OR_UNEMPLOYED` — the customer is currently retired or unemployed.\n- `NO_TAXABLE_INCOME` — the customer does not have any taxable income.\n", + "enum": [ + "TAX_EXEMPT", + "RETIRED_OR_UNEMPLOYED", + "NO_TAXABLE_INCOME" + ] + } + } + } + } + } + }, + "version": { + "$ref": "#/components/schemas/version" + }, + "kycReviewId": { + "$ref": "#/components/schemas/kyc-review-id" + } + } + }, + { + "title": "Golden Visa Declarations", + "description": "For customers whose only tax residency is in a Golden Visa sponsor country, a mandatory Golden Visa Declaration must be completed. All fields within the `goldenVisaDeclaration` object must be set to `true`. Refer to the [full list of Golden Visa countries](https://wise.com/us/blog/golden-visa-countries#which-countries-have-golden-visa-programs) to identify applicable jurisdictions. If any declaration value is `false`, the customer defaults to Standard CRS Collection and must provide a TIN.\n\n```json {% title=\"Example\" %}\n{\n \"data\": {\n \"taxInfoList\": [\n {\n \"taxCountry\": \"AE\",\n \"skipReason\": \"NO_TAXABLE_INCOME\"\n },\n {\n \"taxCountry\": \"AG\",\n \"skipReason\": \"NO_TAXABLE_INCOME\"\n },\n {\n \"taxCountry\": \"BS\",\n \"skipReason\": \"TAX_EXEMPT\"\n }\n ],\n \"goldenVisaDeclaration\": {\n \"NO_OTHER_RESIDENCE\": true,\n \"WITHIN_TIME_FRAME\": true,\n \"DID_NOT_FILE_INCOME\": true\n }\n },\n \"version\": \"V1\",\n \"kycReviewId\": \"93a903ea-636c-4c86-a25c-cf6d2bd00e81\"\n}\n```\n", + "type": "object", + "required": [ + "data", + "version", + "kycReviewId" + ], + "properties": { + "data": { + "type": "object", + "required": [ + "taxInfoList", + "goldenVisaDeclaration" + ], + "properties": { + "taxInfoList": { + "type": "array", + "description": "A list of tax residency objects for every country where the user is a tax resident.", + "examples": [ + [ + { + "taxCountry": "AE", + "skipReason": "NO_TAXABLE_INCOME" + }, + { + "taxCountry": "AG", + "skipReason": "NO_TAXABLE_INCOME" + }, + { + "taxCountry": "BS", + "skipReason": "TAX_EXEMPT" + } + ] + ], + "items": { + "type": "object", + "required": [ + "taxCountry" + ], + "properties": { + "taxCountry": { + "type": "string", + "description": "ISO 3166-1 alpha-2 country code of the tax residency.", + "example": "AE" + }, + "skipReason": { + "type": "string", + "description": "Justification for not providing a TIN.\n- `TAX_EXEMPT` — the customer's income is exempt from taxation.\n- `RETIRED_OR_UNEMPLOYED` — the customer is currently retired or unemployed.\n- `NO_TAXABLE_INCOME` — the customer does not have any taxable income.\n", + "enum": [ + "TAX_EXEMPT", + "RETIRED_OR_UNEMPLOYED", + "NO_TAXABLE_INCOME" + ] + } + } + } + }, + "goldenVisaDeclaration": { + "type": "object", + "description": "A set of affirmations required for users holding specific residency-by-investment visas. All values must be set to `true`.", + "required": [ + "NO_OTHER_RESIDENCE", + "WITHIN_TIME_FRAME", + "DID_NOT_FILE_INCOME" + ], + "properties": { + "NO_OTHER_RESIDENCE": { + "type": "boolean", + "description": "Customer does not hold residency rights in any other jurisdiction.", + "example": true + }, + "WITHIN_TIME_FRAME": { + "type": "boolean", + "description": "Customer did not spend more than 90 days in any other jurisdiction in the previous year.", + "example": true + }, + "DID_NOT_FILE_INCOME": { + "type": "boolean", + "description": "Customer did not file a tax return in any other jurisdiction during the previous year.", + "example": true + } + } + } + } + }, + "version": { + "$ref": "#/components/schemas/version" + }, + "kycReviewId": { + "$ref": "#/components/schemas/kyc-review-id" + } + } + } + ] + } + } + }, + "use-case-countries": { + "title": "USE_CASE_COUNTRIES", + "description": "Country codes where the business intends to send money. If unsure, select the country codes that correspond with the target currencies.\n\nSee [USE_CASE_COUNTRIES](/guides/product/account-setup/customer-onboarding/kyc-requirement-types#use_case_countries) in the KYC requirement types guide for more details.\n", + "type": "object", + "required": [ + "submissionData" + ], + "properties": { + "submissionData": { + "description": "```json {% title=\"Example\" %}\n{\n \"data\": {\n \"useCaseCountries\": [\n \"usa\",\n \"gbr\",\n \"deu\"\n ]\n },\n \"version\": \"V1\",\n \"kycReviewId\": \"93a903ea-636c-4c86-a25c-cf6d2bd00e81\"\n}\n```\n", + "type": "object", + "required": [ + "data", + "version", + "kycReviewId" + ], + "properties": { + "data": { + "type": "object", + "required": [ + "useCaseCountries" + ], + "properties": { + "useCaseCountries": { + "type": "array", + "description": "Country codes in ISO 3166-1 alpha-3 standard.", + "items": { + "type": "string" + }, + "example": [ + "usa", + "gbr", + "deu" + ] + } + } + }, + "version": { + "$ref": "#/components/schemas/version" + }, + "kycReviewId": { + "$ref": "#/components/schemas/kyc-review-id" + } + } + } + } + }, + "request-body": { + "type": "object", + "description": "The request body depends on the `requirementKey`. Select the requirement type you are submitting to see its `submissionData` fields and whether `files` are needed.\n\nSee the [KYC requirement types](/guides/product/account-setup/customer-onboarding/kyc-requirement-types) guide for an overview of all requirement types.\n", + "anyOf": [ + { + "$ref": "#/components/schemas/select-requirement-type" + }, + { + "$ref": "#/components/schemas/account-intent" + }, + { + "$ref": "#/components/schemas/account-purpose" + }, + { + "$ref": "#/components/schemas/annual-volume" + }, + { + "$ref": "#/components/schemas/business-annual-income" + }, + { + "$ref": "#/components/schemas/business-authorisation-id" + }, + { + "$ref": "#/components/schemas/business-authorisation-letter" + }, + { + "$ref": "#/components/schemas/business-controlling-person" + }, + { + "$ref": "#/components/schemas/business-directors-check" + }, + { + "$ref": "#/components/schemas/business-income-classification" + }, + { + "$ref": "#/components/schemas/business-monthly-volume" + }, + { + "$ref": "#/components/schemas/business-registration-docs" + }, + { + "$ref": "#/components/schemas/business-shareholder-contact-details" + }, + { + "$ref": "#/components/schemas/business-shareholders-check" + }, + { + "$ref": "#/components/schemas/business-source-of-wealth" + }, + { + "$ref": "#/components/schemas/business-source-of-wealth-info" + }, + { + "$ref": "#/components/schemas/business-source-of-wealth-proof" + }, + { + "$ref": "#/components/schemas/business-ultimate-beneficial-owner-id" + }, + { + "$ref": "#/components/schemas/business-use-case" + }, + { + "$ref": "#/components/schemas/id-document" + }, + { + "$ref": "#/components/schemas/income" + }, + { + "$ref": "#/components/schemas/india-transfer-purpose" + }, + { + "$ref": "#/components/schemas/jpn-business-cert" + }, + { + "$ref": "#/components/schemas/jpn-personal-mynumber" + }, + { + "$ref": "#/components/schemas/legal-entity-shareholder" + }, + { + "$ref": "#/components/schemas/proof-of-trading-address" + }, + { + "$ref": "#/components/schemas/source-of-funds" + }, + { + "$ref": "#/components/schemas/source-of-wealth" + }, + { + "$ref": "#/components/schemas/source-of-wealth-info" + }, + { + "$ref": "#/components/schemas/source-of-wealth-proof" + }, + { + "$ref": "#/components/schemas/ssn-declaration" + }, + { + "$ref": "#/components/schemas/tax-residency" + }, + { + "$ref": "#/components/schemas/use-case-countries" + } + ] + }, "client-credentials-grant": { "type": "object", "required": [ @@ -34573,7 +39899,7 @@ "submission-data-file": { "type": "object", "title": "FILE_SUBMISSION Submission Data", - "description": "Submission data for FILE_SUBMISSION message type.\nUsed to attach previously uploaded files to a case.\n\n**Prerequisites:**\n- Files must be uploaded via `POST /cases/{caseId}/files` before submitting\n- Case must not be in RESOLVED or FAILED status\n- Files must belong to the specified profile\n- Files must have been uploaded by the same partner\n\n**Validation Rules:**\n- `profileId` is REQUIRED\n- `fileIds` is REQUIRED and must not be empty\n- `fileIds` must not contain duplicates\n- All file IDs must reference existing files\n- All files must belong to the specified `profileId`\n- All files must have been created by the submitting partner\n", + "description": "Submission data for FILE_SUBMISSION message type.\nUsed to attach previously uploaded files to a case.\n\n**Prerequisites:**\n- Files must be uploaded via `POST /cases/{caseId}/files` before submitting\n- Case must not be in RESOLVED or FAILED status\n- Files must belong to the specified profile\n\n**Validation Rules:**\n- `profileId` is REQUIRED\n- `fileIds` is REQUIRED and must not be empty\n- `fileIds` must not contain duplicates\n- All file IDs must reference existing files\n- All files must belong to the specified `profileId`\n", "properties": { "profileId": { "type": "integer", @@ -34746,6 +40072,586 @@ } ] }, + "listed-file": { + "type": "object", + "description": "Metadata for an uploaded file.", + "properties": { + "profileId": { + "type": "integer", + "format": "int64", + "description": "The ID of the profile this file belongs to.", + "example": 14556049 + }, + "fileId": { + "type": "string", + "format": "uuid", + "description": "Unique identifier of the uploaded file.", + "minLength": 36, + "maxLength": 36, + "example": "a1b2c3d4-e5f6-4789-abcd-ef1234567890" + }, + "fileName": { + "type": "string", + "description": "The name of the uploaded file.", + "maxLength": 128, + "example": "company-registration.pdf" + }, + "createdAt": { + "type": "string", + "description": "Timestamp when the file was uploaded.\nFormat: ISO 8601 datetime without timezone (server timezone is UTC).\n", + "example": "2026-09-30T10:00:00.123" + }, + "purpose": { + "type": "string", + "description": "The purpose of the file upload.", + "enum": [ + "GENERAL" + ], + "example": "GENERAL" + } + }, + "required": [ + "profileId", + "fileId", + "fileName", + "createdAt", + "purpose" + ] + }, + "file-list-response": { + "type": "object", + "description": "A page of files uploaded by your application and the total number of matching files.", + "properties": { + "files": { + "type": "array", + "description": "Collection of file metadata for the requested page. Ordered by `createdAt` descending and then `fileId` descending.\n", + "items": { + "$ref": "#/components/schemas/listed-file" + } + }, + "totalFiles": { + "type": "integer", + "format": "int64", + "minimum": 0, + "description": "Total number of files across all pages.", + "example": 3 + } + }, + "required": [ + "files", + "totalFiles" + ] + }, + "error-response-2": { + "type": "object", + "title": "Error Response", + "description": "Standard error response structure following RFC 7807 Problem Details.\n\nAll error responses include a `type` URI identifying the error category,\na human-readable `title`, and the HTTP `status` code.\n", + "properties": { + "type": { + "type": "string", + "description": "A URI reference that identifies the error type.\n\nCommon types:\n- `/errors/types/validation` - Request validation failed\n- `/errors/types/access` - Authentication or authorization error\n- `/errors/types/domain` - Domain-specific business rule violation\n", + "example": "/errors/types/validation" + }, + "title": { + "type": "string", + "description": "A short, human-readable summary of the error type.", + "example": "Validation Error" + }, + "status": { + "type": "integer", + "description": "The HTTP status code.", + "example": 400 + }, + "detail": { + "type": "string", + "description": "A human-readable explanation specific to this occurrence of the error.", + "example": "Unauthorized" + }, + "instance": { + "type": "string", + "description": "The request path that caused the error.", + "example": "/cases/files" + }, + "code": { + "type": "string", + "description": "A machine-readable error code for domain errors.", + "example": "forbidden" + } + }, + "required": [ + "type", + "title", + "status" + ] + }, + "file-list-validation-error": { + "allOf": [ + { + "$ref": "#/components/schemas/error-response-2" + }, + { + "type": "object", + "title": "File List Validation Error (400)", + "description": "Returned when the request fails validation.\n\n**Common causes:**\n- Page number is less than 1\n- Page size is less than 1 or greater than 100\n- A query parameter is not a valid integer\n- The specified profile is not associated with Partner\n", + "properties": { + "type": { + "example": "/errors/types/validation" + }, + "title": { + "example": "Validation Error" + }, + "status": { + "example": 400 + }, + "instance": { + "example": "/cases/files" + }, + "errors": { + "type": "array", + "description": "List of query parameter validation errors.", + "items": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "A machine-readable validation error code.", + "example": "parameter_invalid" + }, + "ref": { + "type": "string", + "description": "The query parameter that caused the validation error.", + "example": "pageNumber" + }, + "detail": { + "type": "string", + "description": "A human-readable description of the validation failure.", + "example": "Page number must be greater than or equal to 1" + } + }, + "required": [ + "code", + "ref", + "detail" + ] + } + } + }, + "required": [ + "errors" + ] + } + ] + }, + "error-401-unauthorized-2": { + "allOf": [ + { + "$ref": "#/components/schemas/error-response-2" + }, + { + "type": "object", + "title": "Unauthorized Error (401)", + "description": "Returned when authentication is missing or invalid.\n\n**Common causes:**\n- Missing `Authorization` header\n- Expired or invalid bearer token\n", + "properties": { + "type": { + "example": "/errors/types/access" + }, + "title": { + "example": "Unauthorized" + }, + "status": { + "example": 401 + } + }, + "example": { + "type": "/errors/types/access", + "title": "Unauthorized", + "status": 401, + "detail": "Authentication required" + } + } + ] + }, + "error-403-forbidden-2": { + "allOf": [ + { + "$ref": "#/components/schemas/error-response-2" + }, + { + "type": "object", + "title": "Forbidden Error (403)", + "description": "Returned when the client does not have sufficient permissions.\n\n**Common causes:**\n- Client credentials do not have the required permission\n", + "properties": { + "type": { + "example": "/errors/types/access" + }, + "title": { + "example": "Forbidden" + }, + "status": { + "example": 403 + }, + "code": { + "example": "forbidden" + } + }, + "example": { + "type": "/errors/types/access", + "title": "Forbidden", + "status": 403, + "detail": "Unauthorized", + "code": "forbidden" + } + } + ] + }, + "file-purpose": { + "type": "string", + "description": "The purpose of the file upload.", + "enum": [ + "GENERAL" + ], + "example": "GENERAL" + }, + "file-upload-request": { + "type": "object", + "description": "Metadata for the file upload, sent as the `submissionData` part of the multipart request.\n", + "properties": { + "profileId": { + "type": "integer", + "format": "int64", + "description": "The ID of the profile you are providing the file for. If you are set up only with your own profile and do not have them for end customers you must use your own profileId.\n", + "example": 14556049 + }, + "purpose": { + "$ref": "#/components/schemas/file-purpose" + } + }, + "required": [ + "profileId", + "purpose" + ], + "example": { + "profileId": 14556049, + "purpose": "GENERAL" + } + }, + "file-upload-response": { + "type": "object", + "description": "Response returned after successfully uploading a file.", + "properties": { + "profileId": { + "type": "integer", + "format": "int64", + "description": "The ID of the profile this file belongs to.", + "example": 14556049 + }, + "fileId": { + "type": "string", + "format": "uuid", + "description": "Unique identifier of the uploaded file (UUID v4).", + "minLength": 36, + "maxLength": 36, + "example": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" + }, + "fileName": { + "type": "string", + "description": "The original name of the uploaded file.", + "maxLength": 128, + "example": "company-registration.pdf" + }, + "createdAt": { + "type": "string", + "description": "Timestamp when the file was uploaded.\nFormat: ISO 8601 datetime without timezone (server timezone is UTC).\n", + "example": "2026-09-30T10:00:00.123" + }, + "purpose": { + "$ref": "#/components/schemas/file-purpose" + } + }, + "required": [ + "profileId", + "fileId", + "fileName", + "createdAt", + "purpose" + ] + }, + "validation-error-2": { + "type": "object", + "title": "Validation Error Detail", + "description": "Details about a specific field validation error.", + "properties": { + "code": { + "type": "string", + "description": "Machine-readable validation error code.\n\nPossible codes:\n- `parameter_missing` - A required parameter was not provided\n- `parameter_invalid` - A parameter value is invalid\n- `invalid_file_extension` - File type or extension is not allowed\n- `file_size_exceeds_max_limit` - File exceeds the maximum allowed size\n", + "example": "parameter_invalid" + }, + "ref": { + "type": "string", + "description": "The field that caused the validation error.", + "example": "purpose" + }, + "detail": { + "type": "string", + "description": "A human-readable description of the validation failure.", + "example": "Invalid purpose" + } + }, + "required": [ + "code", + "ref", + "detail" + ] + }, + "error-400-validation": { + "allOf": [ + { + "$ref": "#/components/schemas/error-response-2" + }, + { + "type": "object", + "title": "Validation Error (400)", + "description": "Returned when the request fails validation.\n\n**Common causes:**\n- Missing required fields (`profileId`, `purpose`)\n- Invalid `purpose` value\n- File is empty or missing\n- Unsupported file content type (only `application/pdf`, `image/jpeg`, `image/png` allowed)\n- File extension does not match the content type\n- File exceeds 15 MB size limit\n- File name exceeds 128 characters\n- You do not own the specified profile\n- File failed security scan (malware detected)\n", + "properties": { + "type": { + "example": "/errors/types/validation" + }, + "title": { + "example": "Validation Error" + }, + "status": { + "example": 400 + }, + "instance": { + "example": "/cases/files" + }, + "errors": { + "type": "array", + "description": "List of field-level validation errors.", + "items": { + "$ref": "#/components/schemas/validation-error-2" + } + } + }, + "example": { + "type": "/errors/types/validation", + "title": "Validation Error", + "status": 400, + "instance": "/cases/files", + "errors": [ + { + "code": "parameter_missing", + "ref": "purpose", + "detail": "purpose must be provided" + } + ] + } + } + ] + }, + "error-429-too-many-requests": { + "allOf": [ + { + "$ref": "#/components/schemas/error-response-2" + }, + { + "type": "object", + "title": "Too Many Requests Error (429)", + "description": "Returned when the rate limit for file uploads has been exceeded.\n\n**Resolution:**\n- Wait before retrying the upload\n", + "properties": { + "type": { + "example": "/errors/types/domain" + }, + "title": { + "example": "Too Many Requests" + }, + "status": { + "example": 429 + }, + "code": { + "example": "rate_limit_exceeded" + } + }, + "example": { + "type": "/errors/types/domain", + "title": "Too Many Requests", + "status": 429, + "detail": "Too many files uploaded recently. Please try again later.", + "instance": "/cases/files", + "code": "rate_limit_exceeded" + } + } + ] + }, + "Address-2": { + "type": "object", + "properties": { + "addressFirstLine": { + "type": "string" + }, + "city": { + "type": "string" + }, + "country": { + "type": "string" + }, + "postCode": { + "type": "string" + }, + "state": { + "type": "string" + } + } + }, + "AccountOwnerDetails": { + "type": "object", + "properties": { + "address": { + "$ref": "#/components/schemas/Address-2" + }, + "email": { + "type": "string", + "format": "email", + "maxLength": 254, + "minLength": 0 + } + } + }, + "InitialiseInstrumentRequest": { + "type": "object", + "properties": { + "accountHolderName": { + "type": "string" + }, + "accountNumber": { + "type": "string" + }, + "accountOwnerDetails": { + "$ref": "#/components/schemas/AccountOwnerDetails" + }, + "accountType": { + "type": "string" + }, + "bankCode": { + "type": "string" + }, + "branchCode": { + "type": "string" + }, + "reference": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "accountNumber", + "type" + ] + }, + "AccountOwnerDetailsDto": { + "type": "object", + "properties": { + "city": { + "type": "string" + }, + "companyName": { + "type": "string" + }, + "country": { + "type": "string" + }, + "firstLine": { + "type": "string" + }, + "postCode": { + "type": "string" + }, + "state": { + "type": "string" + } + } + }, + "PaymentInstrumentDetailsResource": { + "type": "object", + "properties": { + "accountNumber": { + "type": "string" + }, + "accountOwnerDetails": { + "$ref": "#/components/schemas/AccountOwnerDetailsDto" + }, + "bankCode": { + "type": "string" + }, + "bankName": { + "type": "string" + }, + "branchCode": { + "type": "string" + }, + "disconnectReason": { + "type": "string" + }, + "id": { + "type": "string", + "format": "uuid" + }, + "reference": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + } + } + }, + "PayinSessionPayinInitiationResource": { + "type": "object", + "properties": { + "amount": { + "type": "number" + }, + "currency": { + "type": "string" + }, + "failureReason": { + "type": "string" + }, + "id": { + "type": "string" + }, + "payinSessionId": { + "type": "string" + }, + "paymentInstrumentId": { + "type": "string" + }, + "reference": { + "type": "string" + }, + "status": { + "type": "string" + } + } + }, + "PayinSessionPayinInitiationRequest": { + "type": "object", + "properties": { + "payinSessionId": { + "type": "string" + }, + "reference": { + "type": "string" + } + }, + "required": [ + "payinSessionId" + ] + }, "address": { "type": "object", "description": "Address associated with a profile.", @@ -35160,6 +41066,16 @@ "description": "Address post code.", "example": "FK 12345" }, + "city": { + "type": "string", + "description": "City of residential address.", + "example": "Phoenix" + }, + "state": { + "type": "string", + "description": "State or region of residential address.", + "example": "AZ" + }, "ownershipPercentage": { "type": [ "integer", @@ -35937,7 +41853,7 @@ }, "confirmations": { "type": "object", - "description": "Contains verification results for the recipient's details. Only populated for currencies with recipient verification enabled (CNY, KRW, INR, IDR, EUR). \n\nSee the [Recipient verification guides](/guides/product/send-money/recipient-verification) for details about how to handle this verification data by currency.\n", + "description": "Contains verification results for the recipient's details. Only populated for currencies with recipient verification enabled (CNY, KRW, INR, IDR, EUR). \n\nSee the [Recipient verification guides](/guides/product/send-money/recipients/recipient-verification) for details about how to handle this verification data by currency.\n", "properties": { "acceptedOutcomes": { "type": "boolean", @@ -36474,7 +42390,7 @@ }, "confirmations": { "type": "object", - "description": "Contains verification results for the recipient's details. Only populated for currencies with recipient verification enabled (CNY, KRW, INR, IDR, EUR). \n\nSee the [Recipient verification guides](/guides/product/send-money/recipient-verification) for details about how to handle this verification data by currency.\n", + "description": "Contains verification results for the recipient's details. Only populated for currencies with recipient verification enabled (CNY, KRW, INR, IDR, EUR). \n\nSee the [Recipient verification guides](/guides/product/send-money/recipients/recipient-verification) for details about how to handle this verification data by currency.\n", "properties": { "acceptedOutcomes": { "type": "boolean", @@ -36575,7 +42491,538 @@ } } }, - "Address-2": { + "CurrencyCode": { + "type": "string", + "description": "ISO 4217 currency code", + "pattern": "^[A-Z]{3}$", + "example": "USD" + }, + "settlement-allocation-request": { + "type": "object", + "required": [ + "paymentReference", + "expectedTotalAmount", + "currency" + ], + "properties": { + "paymentReference": { + "type": "string", + "description": "Unique payment reference for the allocation request", + "example": "PAY-2024-001234" + }, + "expectedTotalAmount": { + "type": "number", + "format": "decimal", + "description": "Expected total amount for the allocation", + "example": 10000 + }, + "currency": { + "$ref": "#/components/schemas/CurrencyCode", + "description": "Currency code" + } + } + }, + "SettlementAllocationState": { + "type": "string", + "description": "State of a funding allocation.", + "enum": [ + "NEW", + "MATCHING_FUNDS", + "MATCHED", + "MISMATCHED", + "PARTIALLY_COMPLETED", + "COMPLETED", + "CANCELLED" + ] + }, + "settlement-allocation-response": { + "type": "object", + "required": [ + "id", + "expectedTotalAmount", + "currency", + "state", + "paymentReference", + "createdAt", + "updatedAt" + ], + "properties": { + "id": { + "type": "string", + "format": "uuid", + "description": "Unique identifier of the settlement allocation request" + }, + "expectedTotalAmount": { + "type": "number", + "format": "decimal", + "description": "Expected total amount", + "example": 10000 + }, + "currency": { + "$ref": "#/components/schemas/CurrencyCode", + "description": "Currency code" + }, + "state": { + "$ref": "#/components/schemas/SettlementAllocationState" + }, + "paymentReference": { + "type": "string", + "description": "Payment reference", + "example": "PAY-2024-001234" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "description": "Creation timestamp" + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "description": "Last update timestamp" + } + } + }, + "RecipientType": { + "type": "string", + "description": "Type of recipient for a payment intent.", + "enum": [ + "SELLER", + "PARTNER_FEE" + ] + }, + "AllocationType": { + "type": "string", + "description": "Type of allocation for a payment intent.", + "enum": [ + "CREDIT", + "DEBIT" + ] + }, + "PaymentIntentState": { + "type": "string", + "description": "State of a payment intent.", + "enum": [ + "NEW", + "PARTIALLY_LEDGERED", + "LEDGERED", + "PARTIALLY_SETTLED", + "SETTLED", + "CANCELLED" + ] + }, + "FundingSource": { + "type": "string", + "description": "Source of funding for a payment intent.", + "enum": [ + "WISE_COLLECTION_ACCOUNT", + "PARTNER_DEFICIT_ACCOUNT", + "SPLIT", + "UNDETERMINED" + ] + }, + "PaymentIntentResponse": { + "type": "object", + "description": "Details of a payment intent associated with a settlement allocation.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the payment intent in the UUID format.", + "example": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" + }, + "allocationId": { + "type": "string", + "description": "Unique identifier of the associated settlement allocation in the UUID format.", + "example": "f47ac10b-58cc-4372-a567-0e02b2c3d479" + }, + "partnerEntityId": { + "type": "string", + "description": "Partner entity identifier.", + "example": "PARTNER-001" + }, + "profileId": { + "type": "string", + "description": "Profile identifier.", + "example": "12345678" + }, + "recipientType": { + "$ref": "#/components/schemas/RecipientType", + "description": "Type of recipient." + }, + "sourceAmount": { + "type": "number", + "minimum": 0, + "exclusiveMinimum": 0, + "description": "Source amount of the payment.", + "format": "decimal", + "example": 100 + }, + "sourceCurrency": { + "type": "string", + "maxLength": 3, + "minLength": 3, + "pattern": "^[A-Z]{3}$", + "description": "Source currency code (ISO 4217).", + "example": "EUR" + }, + "targetAmount": { + "type": "number", + "minimum": 0, + "exclusiveMinimum": 0, + "description": "Target amount of the payment.", + "format": "decimal", + "example": 85 + }, + "targetCurrency": { + "type": "string", + "maxLength": 3, + "minLength": 3, + "pattern": "^[A-Z]{3}$", + "description": "Target currency code (ISO 4217).", + "example": "GBP" + }, + "allocationType": { + "$ref": "#/components/schemas/AllocationType", + "description": "Type of allocation." + }, + "paymentReference": { + "type": "string", + "description": "Payment reference.", + "example": "REF-001" + }, + "reason": { + "type": "string", + "description": "Reason for the payment.", + "example": "Invoice payment" + }, + "state": { + "$ref": "#/components/schemas/PaymentIntentState", + "description": "Current state of the payment intent." + }, + "fundingSource": { + "$ref": "#/components/schemas/FundingSource", + "description": "Source of funding for the payment." + }, + "createdAt": { + "type": "string", + "description": "Timestamp when the payment intent was created.", + "format": "date-time", + "example": "2026-07-10T10:35:16.000Z" + }, + "updatedAt": { + "type": "string", + "description": "Timestamp when the payment intent was last updated.", + "format": "date-time", + "example": "2026-07-10T10:45:41.000Z" + } + } + }, + "GetSettlementAllocationResponseContent": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the settlement allocation.", + "example": "f47ac10b-58cc-4372-a567-0e02b2c3d479" + }, + "expectedTotalAmount": { + "type": "number", + "minimum": 0, + "exclusiveMinimum": 0, + "description": "Expected total amount for the allocation.", + "format": "decimal", + "example": 1000.5 + }, + "currency": { + "type": "string", + "maxLength": 3, + "minLength": 3, + "pattern": "^[A-Z]{3}$", + "description": "Currency code for the allocation (ISO 4217).", + "example": "EUR" + }, + "state": { + "$ref": "#/components/schemas/SettlementAllocationState", + "description": "Current state of the settlement allocation." + }, + "paymentReference": { + "type": "string", + "description": "Unique payment reference for the settlement allocation.", + "example": "PAY-123456" + }, + "createdAt": { + "type": "string", + "description": "Timestamp when the settlement allocation was created.", + "format": "date-time", + "example": "2026-07-10T10:30:16.000Z" + }, + "updatedAt": { + "type": "string", + "description": "Timestamp when the settlement allocation was last updated.", + "format": "date-time", + "example": "2026-07-10T11:00:41.000Z" + }, + "paymentIntents": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PaymentIntentResponse" + }, + "description": "List of payment intents associated with the allocation. Only included when includePaymentIntents is true." + }, + "nextPageToken": { + "type": "string", + "description": "Token for fetching the next page of payment intents. Null if no more pages.", + "example": "def456" + } + } + }, + "GetPaymentIntentResponseContent": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the payment intent.", + "example": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" + }, + "allocationId": { + "type": "string", + "description": "Unique identifier of the associated settlement allocation.", + "example": "f47ac10b-58cc-4372-a567-0e02b2c3d479" + }, + "partnerEntityId": { + "type": "string", + "description": "Partner entity identifier.", + "example": "PARTNER-001" + }, + "profileId": { + "type": "string", + "description": "Profile identifier.", + "example": "12345678" + }, + "recipientType": { + "$ref": "#/components/schemas/RecipientType", + "description": "Type of recipient." + }, + "sourceAmount": { + "type": "number", + "minimum": 0, + "exclusiveMinimum": 0, + "description": "Source amount of the payment.", + "format": "decimal", + "example": 100 + }, + "sourceCurrency": { + "type": "string", + "maxLength": 3, + "minLength": 3, + "pattern": "^[A-Z]{3}$", + "description": "Source currency code (ISO 4217).", + "example": "EUR" + }, + "targetAmount": { + "type": "number", + "minimum": 0, + "exclusiveMinimum": 0, + "description": "Target amount of the payment.", + "format": "decimal", + "example": 85 + }, + "targetCurrency": { + "type": "string", + "maxLength": 3, + "minLength": 3, + "pattern": "^[A-Z]{3}$", + "description": "Target currency code (ISO 4217).", + "example": "GBP" + }, + "allocationType": { + "$ref": "#/components/schemas/AllocationType", + "description": "Type of allocation." + }, + "paymentReference": { + "type": "string", + "description": "Payment reference.", + "example": "REF-001" + }, + "reason": { + "type": "string", + "description": "Reason for the payment.", + "example": "Invoice payment" + }, + "state": { + "$ref": "#/components/schemas/PaymentIntentState", + "description": "Current state of the payment intent." + }, + "fundingSource": { + "$ref": "#/components/schemas/FundingSource", + "description": "Source of funding for the payment." + }, + "createdAt": { + "type": "string", + "description": "Timestamp when the payment intent was created.", + "format": "date-time", + "example": "2026-07-10T10:35:16.000Z" + }, + "updatedAt": { + "type": "string", + "description": "Timestamp when the payment intent was last updated.", + "format": "date-time", + "example": "2026-07-10T10:45:41.000Z" + } + } + }, + "delivery_update": { + "type": "string", + "enum": [ + "partner_accepted", + "recipient_provider_accepted", + "scheme_settled", + "account_credited", + "funds_available" + ], + "description": "The delivery signal to simulate. Must be a member of `delivery_update_path`, but need not be its last item." + }, + "delivery-update-request": { + "type": "object", + "required": [ + "delivery_update_path", + "delivery_update" + ], + "properties": { + "scheme": { + "type": [ + "string", + "null" + ], + "enum": [ + "sepa_instant_credit_transfer", + null + ], + "description": "Payment scheme to include in the observation. May be omitted or null." + }, + "delivery_update_path": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "$ref": "#/components/schemas/delivery_update" + }, + "description": "Delivery signals supported by the simulated route, not a history of events.\nSelect one or more distinct values in this progression order:\n`partner_accepted`, `recipient_provider_accepted`, `scheme_settled`,\n`account_credited`, `funds_available`. Values may be skipped.\nThe service validates the order and requires this array to contain `delivery_update`.\n" + }, + "delivery_update": { + "type": "string", + "enum": [ + "partner_accepted", + "recipient_provider_accepted", + "scheme_settled", + "account_credited", + "funds_available" + ], + "description": "The delivery signal to simulate. Must be a member of `delivery_update_path`, but need not be its last item." + }, + "estimated_delivery_at": { + "type": [ + "string", + "null" + ], + "format": "date-time", + "description": "Optional estimated delivery time. May be omitted or null. Published timestamps are truncated to milliseconds." + } + } + }, + "delivery-update-response": { + "type": "object", + "required": [ + "observation_id", + "occurred_at" + ], + "properties": { + "observation_id": { + "type": "string", + "format": "uuid", + "description": "Server-generated observation identifier. Matches `data.observation_id` in the webhook." + }, + "occurred_at": { + "type": "string", + "format": "date-time", + "description": "Server-generated observation time in UTC with millisecond precision. Matches `data.occurred_at` in the webhook." + } + } + }, + "simulation-error": { + "type": "object", + "required": [ + "code" + ], + "properties": { + "code": { + "type": "string", + "description": "Error code." + }, + "message": { + "type": "string", + "description": "Description of the error, when available." + }, + "path": { + "type": "string", + "description": "Field associated with a validation error, when available." + }, + "arguments": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Arguments associated with the error." + } + } + }, + "simulation-errors": { + "type": "object", + "required": [ + "errors" + ], + "properties": { + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/simulation-error" + } + } + } + }, + "SimulateSettlementAllocationsFundsRequestContent": { + "type": "object", + "properties": { + "amount": { + "type": "number", + "minimum": 0.01, + "exclusiveMinimum": 0, + "description": "The amount to be simulated as received.", + "format": "decimal", + "example": 1000.5 + }, + "currency": { + "type": "string", + "maxLength": 3, + "minLength": 3, + "pattern": "^[A-Z]{3}$", + "description": "Currency code (ISO 4217).", + "example": "JPY" + }, + "paymentReference": { + "type": "string", + "minLength": 1, + "pattern": "\\S", + "description": "Payment reference for the settlement allocation. Must start with 'BYOPSP_'.", + "example": "BYOPSP_test-client_A1B2C3" + } + }, + "required": [ + "amount", + "currency", + "paymentReference" + ] + }, + "Address-3": { "type": "object", "properties": { "addressFirstLine": { @@ -36698,15 +43145,20 @@ "senderAddress": { "maxLength": 255, "description": "Sender address.", - "$ref": "#/components/schemas/Address-2" + "$ref": "#/components/schemas/Address-3" }, "beneficiaryAddress": { "description": "Beneficiary address.", - "$ref": "#/components/schemas/Address-2" + "$ref": "#/components/schemas/Address-3" } } }, - "Address-3": { + "Bic": { + "description": "Business Identifier Code, also known as Swift Code.", + "type": "string", + "pattern": "^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$" + }, + "Address-4": { "type": "object", "properties": { "addressLine": { @@ -36807,7 +43259,7 @@ "description": "Address of the sender's bank.", "allOf": [ { - "$ref": "#/components/schemas/Address-3" + "$ref": "#/components/schemas/Address-4" }, { "type": "object", @@ -36933,7 +43385,7 @@ "description": "Address of the sender's bank.", "allOf": [ { - "$ref": "#/components/schemas/Address-3" + "$ref": "#/components/schemas/Address-4" }, { "type": "object", @@ -37012,7 +43464,7 @@ "description": "Address of the ultimate beneficiary.", "allOf": [ { - "$ref": "#/components/schemas/Address-3" + "$ref": "#/components/schemas/Address-4" }, { "type": "object", @@ -37057,7 +43509,7 @@ "description": "Address of the sender.", "allOf": [ { - "$ref": "#/components/schemas/Address-3" + "$ref": "#/components/schemas/Address-4" }, { "type": "object", @@ -37650,7 +44102,7 @@ } } }, - "validation-error-2": { + "validation-error-3": { "title": "Validation Error", "type": "object", "required": [ @@ -37834,7 +44286,7 @@ }, "status": { "type": "string", - "description": "Transfer current status. See [Tracking Transfers](/guides/product/send-money/tracking-transfers) for all possible statuses.", + "description": "Transfer current status.\nSee [Transfer statuses](/guides/product/send-money/tracking/transfer-statuses) for all possible statuses.", "example": "incoming_payment_waiting" }, "reference": { @@ -38319,7 +44771,7 @@ } } }, - "Address-4": { + "Address-5": { "type": "object", "properties": { "firstLine": { @@ -38366,9 +44818,7 @@ "properties": { "reference": { "type": "string", - "minLength": 1, - "pattern": "\\S", - "description": "Unique customer ID in your system. This allows us to uniquely identify each originator", + "description": "Unique customer ID in your system. This allows Wise to identify each originator for compliance purposes. All transfers sent by the same originator must use the same `originator.reference` value.", "example": "CST-2991992" }, "name": { @@ -38379,8 +44829,7 @@ "type": "string", "description": "Payment originator date of birth", "format": "date", - "example": "1977-07-01", - "x-temporal-constraint": "past" + "example": "1977-07-01" }, "nationality": { "type": "string", @@ -38393,7 +44842,7 @@ "example": "23456789" }, "address": { - "$ref": "#/components/schemas/Address-4", + "$ref": "#/components/schemas/Address-5", "description": "Payment originator address" } }, @@ -38431,9 +44880,7 @@ "properties": { "reference": { "type": "string", - "minLength": 1, - "pattern": "\\S", - "description": "Unique customer ID in your system. This allows us to uniquely identify each originator", + "description": "Unique customer ID in your system. This allows Wise to identify each originator for compliance purposes. All transfers sent by the same originator must use the same `originator.reference` value.", "example": "CST-2991992" }, "name": { @@ -38459,7 +44906,7 @@ "example": "23456789" }, "address": { - "$ref": "#/components/schemas/Address-4", + "$ref": "#/components/schemas/Address-5", "description": "Payment originator address" } }, @@ -39214,62 +45661,6 @@ "EUR_T2" ] }, - "Iso20022Address": { - "type": "object", - "description": "An ISO 20022 structured address with optional free-form address lines.", - "properties": { - "streetName": { - "type": "string", - "description": "Street name", - "example": "Clifton Street, London" - }, - "buildingNumber": { - "type": "string", - "description": "Building number", - "example": "65" - }, - "townName": { - "type": "string", - "description": "City or town", - "example": "London" - }, - "postCode": { - "type": "string", - "description": "Postal or ZIP code", - "example": "EC2A 4JE" - }, - "countrySubDivision": { - "type": "string", - "description": "State, province, or region", - "example": "Greater London" - }, - "country": { - "type": "string", - "maxLength": 2, - "minLength": 2, - "pattern": "^[A-Z]{2}$", - "description": "ISO 3166-1 alpha-2 country code", - "example": "GB" - }, - "addressLines": { - "type": "array", - "items": { - "type": "string" - }, - "maxItems": 2, - "description": "Address lines. May be empty; up to two lines can be populated alongside structured fields.", - "example": [ - "1st Floor, Worship Square", - "EV2A 4JE" - ] - } - }, - "required": [ - "addressLines", - "country", - "townName" - ] - }, "AccountInfo": { "type": "object", "properties": { @@ -40931,7 +47322,7 @@ }, "current_state": { "type": "string", - "description": "Current transfer status. See [Transfer Statuses](/guides/product/send-money/tracking-transfers) for possible values.\n", + "description": "Current transfer status. See [Transfer statuses](/guides/product/send-money/tracking/transfer-statuses) for possible values.\n", "example": "processing" }, "previous_state": { @@ -41014,7 +47405,7 @@ }, "current_state": { "type": "string", - "description": "Current transfer status. See [Transfer Statuses](/guides/product/send-money/tracking-transfers) for possible values.\n", + "description": "Current transfer status. See [Transfer statuses](/guides/product/send-money/tracking/transfer-statuses) for possible values.\n", "example": "processing" }, "previous_state": { @@ -41530,6 +47921,102 @@ } }, "v4.0.0-7": { + "title": "Schema version 4.0.0", + "type": "object", + "required": [ + "schema_version", + "event_type", + "subscription_id", + "data" + ], + "properties": { + "schema_version": { + "type": "string", + "description": "Version of the event schema. Determined by the `schema_version` on your [webhook subscription](/api-reference/webhook).", + "enum": [ + "4.0.0" + ], + "example": "4.0.0" + }, + "subscription_id": { + "type": "string", + "format": "uuid", + "description": "ID of the webhook subscription that triggered this event.", + "example": "01234567-89ab-cdef-0123-456789abcdef" + }, + "event_type": { + "type": "string", + "description": "Event type identifier", + "example": "allocations#state-changed" + }, + "sent_at": { + "type": "string", + "format": "date-time", + "description": "Timestamp when the event was sent.", + "example": "2020-01-01T12:34:56.123Z" + }, + "data": { + "type": "object", + "properties": { + "resource": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid", + "description": "Unique identifier of webhook notification" + }, + "event_type": { + "type": "string", + "description": "Event type identifier.", + "example": "funds-allocation-state-change" + }, + "occurred_at": { + "type": "string", + "format": "date-time", + "description": "Timestamp when the state change occurred.", + "example": "2020-01-01T12:34:56.789Z" + }, + "data": { + "type": "object", + "description": "Details of the allocation state change.", + "properties": { + "id": { + "type": "string", + "format": "uuid", + "description": "Unique identifier of the settlement allocation request" + }, + "paymentReference": { + "type": "string", + "description": "Reference identifier for the payment.", + "example": "payment-ref-12345" + }, + "previousState": { + "type": "string", + "description": "Previous state of the allocation request.", + "example": "NEW", + "$ref": "#/components/schemas/SettlementAllocationState" + }, + "newState": { + "type": "string", + "description": "New state of the allocation request.", + "$ref": "#/components/schemas/SettlementAllocationState", + "example": "MATCHING_FUNDS" + }, + "clientKey": { + "type": "string", + "description": "Client key identifying the partner application.", + "example": "test-client-key" + } + } + } + } + } + } + } + } + }, + "v4.0.0-8": { "title": "Schema version 4.0.0", "type": "object", "properties": { @@ -41685,7 +48172,7 @@ } } }, - "v4.0.0-8": { + "v4.0.0-9": { "title": "Schema version 4.0.0", "type": "object", "properties": { @@ -41879,7 +48366,7 @@ } } }, - "v4.0.0-9": { + "v4.0.0-10": { "title": "Schema version 4.0.0", "type": "object", "properties": { @@ -42161,7 +48648,7 @@ } } }, - "v4.0.0-10": { + "v4.0.0-11": { "title": "Schema version 4.0.0", "type": "object", "properties": { @@ -42367,7 +48854,7 @@ } } }, - "v4.0.0-11": { + "v4.0.0-12": { "title": "Schema version 4.0.0", "type": "object", "properties": { @@ -43705,7 +50192,7 @@ } } }, - "v4.0.0-12": { + "v4.0.0-13": { "title": "Schema version 4.0.0", "type": "object", "properties": { @@ -43814,7 +50301,7 @@ } } }, - "v4.0.0-13": { + "v4.0.0-14": { "title": "Schema version 4.0.0", "type": "object", "properties": { @@ -43990,7 +50477,7 @@ } } }, - "v4.0.0-14": { + "v4.0.0-15": { "title": "Schema version 4.0.0", "type": "object", "properties": { @@ -44150,7 +50637,7 @@ } } }, - "v4.0.0-15": { + "v4.0.0-16": { "title": "Schema version 4.0.0", "type": "object", "properties": { @@ -44286,7 +50773,7 @@ } } }, - "v4.0.0-16": { + "v4.0.0-17": { "title": "Schema version 4.0.0", "type": "object", "properties": { @@ -44463,12 +50950,12 @@ }, "state": { "type": "string", - "description": "Status of the KYC Review. See [KYC review status](/guides/product/kyc/wise-kyc/hosted-kyc/kyc-review-status.md) for possible values.\n", + "description": "Status of the KYC Review. See [KYC review statuses](/guides/product/account-setup/customer-onboarding/api-hybrid-kyc#kyc-review-statuses) for possible values.\n", "example": "WAITING_CUSTOMER_INPUT" }, "prevState": { "type": "string", - "description": "Previous status of the KYC review. See [KYC review status](/guides/product/kyc/wise-kyc/hosted-kyc/kyc-review-status.md) for possible values.\n", + "description": "Previous status of the KYC review. See [KYC review statuses](/guides/product/account-setup/customer-onboarding/api-hybrid-kyc#kyc-review-statuses) for possible values.\n", "example": "WAITING_CUSTOMER_INPUT" }, "profileId": { @@ -44591,7 +51078,7 @@ } } }, - "v4.0.0-17": { + "v4.0.0-18": { "title": "Schema version 4.0.0", "type": "object", "properties": { @@ -44634,7 +51121,7 @@ }, "state": { "type": "string", - "description": "Status of the KYC Review. See [KYC Review Status](/guides/product/kyc/wise-kyc/hosted-kyc/kyc-review-status.md) for possible values.\n", + "description": "Status of the KYC Review. See [KYC review statuses](/guides/product/account-setup/customer-onboarding/api-hybrid-kyc#kyc-review-statuses) for possible values.\n", "example": "WAITING_CUSTOMER_INPUT" }, "profileId": { @@ -44785,7 +51272,7 @@ }, "state": { "type": "string", - "description": "Status of the KYC Review. See [KYC Review Status](/guides/product/kyc/wise-kyc/hosted-kyc/kyc-review-status.md) for possible values.\n", + "description": "Status of the KYC Review. See [KYC review statuses](/guides/product/account-setup/customer-onboarding/api-hybrid-kyc#kyc-review-statuses) for possible values.\n", "example": "WAITING_CUSTOMER_INPUT" }, "profileId": { @@ -44893,9 +51380,10 @@ } } }, - "v4.0.0-18": { + "v4.0.0-19": { "title": "Schema version 4.0.0", "type": "object", + "deprecated": true, "properties": { "schema_version": { "type": "string", @@ -44987,6 +51475,7 @@ "v2.0.0-18": { "title": "Schema version 2.0.0", "type": "object", + "deprecated": true, "properties": { "schema_version": { "type": "string", @@ -45075,7 +51564,7 @@ } } }, - "v4.0.0-19": { + "v4.0.0-20": { "title": "Schema version 4.0.0", "type": "object", "properties": { @@ -45477,7 +51966,7 @@ } } }, - "v4.0.0-20": { + "v4.0.0-21": { "title": "Schema version 4.0.0", "type": "object", "properties": { @@ -45623,7 +52112,7 @@ } } }, - "v4.0.0-21": { + "v4.0.0-22": { "title": "Schema version 4.0.0", "type": "object", "properties": { @@ -45924,7 +52413,7 @@ } } }, - "v4.0.0-22": { + "v4.0.0-23": { "title": "Schema version 4.0.0", "type": "object", "deprecated": true, @@ -46146,7 +52635,92 @@ } } }, - "Address-5": { + "v4.0.0-24": { + "title": "Schema version 4.0.0", + "type": "object", + "required": [ + "schema_version", + "event_type", + "subscription_id", + "data" + ], + "properties": { + "schema_version": { + "type": "string", + "description": "Version of the event schema. Determined by the `schema_version` on your [webhook subscription](/api-reference/webhook).", + "enum": [ + "4.0.0" + ], + "example": "4.0.0" + }, + "subscription_id": { + "type": "string", + "format": "uuid", + "description": "ID of the webhook subscription that triggered this event.", + "example": "01234567-89ab-cdef-0123-456789abcdef" + }, + "event_type": { + "type": "string", + "description": "Event type identifier", + "example": "settlement#funds-received" + }, + "sent_at": { + "type": "string", + "format": "date-time", + "description": "Timestamp when the event was sent.", + "example": "2020-01-01T12:34:56.123Z" + }, + "data": { + "type": "object", + "properties": { + "resource": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid", + "description": "Unique identifier for this funds received event.", + "example": "a0a727a4-3c77-46b2-91be-1089195d16c3" + }, + "occurred_at": { + "type": "string", + "format": "date-time", + "description": "Timestamp when the funds were received.", + "example": "2020-01-01T12:34:56.789Z" + }, + "data": { + "type": "object", + "description": "Details of the received funds.", + "properties": { + "amount": { + "type": "number", + "description": "Amount of funds received.", + "example": 10000 + }, + "currency": { + "$ref": "#/components/schemas/CurrencyCode", + "description": "Currency code of the received funds (ISO 4217).", + "example": "USD" + }, + "clientKey": { + "type": "string", + "description": "Client key identifying the partner application.", + "example": "test-client-key" + }, + "paymentReference": { + "type": "string", + "description": "Reference identifier for the payment.", + "example": "payment-ref-12345" + } + } + } + } + } + } + } + } + }, + "Address-6": { "type": "object", "description": "Structured address details.", "properties": { @@ -46231,7 +52805,7 @@ "description": "Identifier within the clearing system specified by `clearing_system_code`." }, "address": { - "$ref": "#/components/schemas/Address-5", + "$ref": "#/components/schemas/Address-6", "description": "Bank or financial institution address." } } @@ -46246,7 +52820,7 @@ "maxLength": 140 }, "address": { - "$ref": "#/components/schemas/Address-5", + "$ref": "#/components/schemas/Address-6", "description": "Party address." }, "account": { @@ -46368,7 +52942,7 @@ "description": "Identifier within the clearing system specified by `clearing_system_code`." }, "address": { - "$ref": "#/components/schemas/Address-5", + "$ref": "#/components/schemas/Address-6", "description": "Bank or financial institution address." } } @@ -46383,7 +52957,7 @@ "maxLength": 140 }, "address": { - "$ref": "#/components/schemas/Address-5", + "$ref": "#/components/schemas/Address-6", "description": "Party address." }, "account": { @@ -47835,7 +54409,7 @@ } } }, - "v4.0.0-23": { + "v4.0.0-25": { "title": "Schema version 4.0.0", "type": "object", "properties": { @@ -48677,7 +55251,7 @@ } } }, - "v4.0.0-24": { + "v4.0.0-26": { "title": "Schema version 4.0.0", "type": "object", "properties": { @@ -48767,7 +55341,7 @@ } } }, - "v4.0.0-25": { + "v4.0.0-27": { "title": "Schema version 4.0.0", "type": "object", "properties": { @@ -48985,7 +55559,7 @@ } } }, - "v4.0.0-26": { + "v4.0.0-28": { "title": "Schema version 4.0.0", "type": "object", "properties": { @@ -49214,7 +55788,7 @@ } } }, - "v4.0.0-27": { + "v4.0.0-29": { "title": "Schema version 4.0.0", "type": "object", "properties": { @@ -49266,7 +55840,7 @@ } } }, - "v4.0.0-28": { + "v4.0.0-30": { "title": "Schema version 4.0.0", "type": "object", "required": [ @@ -49382,33 +55956,6 @@ } } } - }, - "securitySchemes": { - "UserToken": { - "type": "http", - "scheme": "bearer", - "bearerFormat": "JWT", - "description": "User Access Token for making API calls on behalf of a Wise user.\n\nCan be obtained via two OAuth 2.0 flows:\n- **registration_code grant**: For partners creating users via API\n- **authorization_code grant**: For partners using Wise's authorization page\n\nAccess tokens are valid for 12 hours and can be refreshed using a refresh token.\n" - }, - "PersonalToken": { - "type": "http", - "scheme": "bearer", - "bearerFormat": "JWT", - "description": "Personal API Token for individual personal or small business users.\nGenerated from Wise.com > Settings > Connect and manage apps > API tokens.\nHas limited API access compared to OAuth tokens (PSD2 restrictions apply for EU/UK users).\n" - }, - "ClientCredentialsToken": { - "type": "http", - "scheme": "bearer", - "bearerFormat": "JWT", - "description": "Application-level token for partner operations that don't require a specific user context, such as bulk settlement and card spend controls.\n\nObtained via `POST /oauth/token` with Basic Authentication (client-id:client-secret) and `grant_type=client_credentials`.\n\nValid for 12 hours. No refresh token — fetch a new token when expired.\n\nSee [create an OAuth token](/api-reference/oauth-token/oauthtokencreate) for details.\n" - }, - "BasicAuth": { - "type": "http", - "scheme": "basic", - "x-defaultUsername": "