### Backend GET API Setup for Dispute Flow Source: https://docs.wise.com/api-reference/disputes/disputedynamicflowstep.md Implement a GET API endpoint on your server to receive requests from Wise's Dynamic Flow framework. This endpoint should forward the call to the specified Wise POST endpoint. ```http GET https://{{yourApiUrl}}/v3/spend/profiles/{{profileId}}/dispute-form/flows/step/{{scheme}}/{{reason}}?transactionId={{transactionId}} ``` ```http POST https://{{wiseUrl}}/v3/spend/profiles/{{profileId}}/dispute-form/flows/step/{{scheme}}/{{reason}}?transactionId={{transactionId}} ``` -------------------------------- ### Get Address Requirements - Request Example Source: https://docs.wise.com/api-reference/address/addressrequirementspost Example request body for the address-requirements endpoint, including profile ID and address details. ```json { "profile": 12345678, "details": { "country": "US", "state": "AZ" } } ``` -------------------------------- ### Example JSON Response for Available Card Programs Source: https://docs.wise.com/api-reference/card-order/cardorder This is an example of a successful JSON response when retrieving available card programs. It lists card programs with their respective details. ```json { "cardPrograms": [ { "name": "VISA_DEBIT_BUSINESS_UK_1_CARDS_API", "scheme": "VISA", "defaultCurrency": "GBP", "cardType": "VIRTUAL_NON_UPGRADEABLE" } ] } ``` -------------------------------- ### KYC Review Object Example Source: https://docs.wise.com/api-reference/kyc-review/kyc-requirement This is an example of the return object for most KYC Review endpoints. It includes information about the review's status, trigger references, and requirements. ```json { "id": "46e1a5c4-4a9b-4563-39d3-18174d3ac0f8", "status": "WAITING_CUSTOMER_INPUT", "createdAt": "2024-09-03T16:22:02.257725", "updatedAt": "2024-09-03T16:29:41.147522", "requiredBy": "2024-09-03T16:22:02.257725", "triggerReferences": [ { "type": "QUOTE", "triggerData": { … } } ], "redirectUrl": "https://example.com", "requirements": [ [ { … } ] ] } ``` -------------------------------- ### HoldLimitBreach JSON Example Source: https://docs.wise.com/api-reference/balance/balance This is an example of the HoldLimitBreach object in JSON format. It shows all the fields and their expected data types and values. ```json { "id": 200001, "profileId": 123456, "amount": 310.86, "currency": "EUR", "state": "OPEN", "closingReason": "AUTOMATICALLY_RESOLVED", "createdAt": "2020-05-20T14:43:16.658Z", "updatedAt": "2020-05-20T14:43:16.658Z" } ``` -------------------------------- ### EventHoldLimitBreachUpdate Payload Example Source: https://docs.wise.com/api-reference/webhook-event/eventholdlimitbreachupdate This is an example of the JSON payload received for the profiles#cdd-check-state-change event. It includes details about the verification state, review outcome, and required evidences. ```json { "schema_version": "4.0.0", "subscription_id": "01234567-89ab-cdef-0123-456789abcdef", "event_type": "profiles#cdd-check-state-change", "sent_at": "2020-01-01T12:34:56.123Z", "data": { "resource": { "type": "profile", "id": 111 }, "current_state": "VERIFIED", "review_outcome": "DOCUMENT_OUT_OF_DATE", "required_evidences": [ "SOURCE_OF_INCOME" ], "occurred_at": "2020-01-01T12:34:56.789Z", "source_of_income": "INVESTMENTS", "source_of_funding": "REVENUE" } } ``` -------------------------------- ### Batch Group JSON Example Source: https://docs.wise.com/api-reference/batch-group/batchgroup An example of a completed batch group, showing transfer IDs and detailed pay-in information for bank transfers. ```json { "id": "54a6bc09-cef9-49a8-9041-f1f0c654cd88", "version": 123, "name": "My batch group", "sourceCurrency": "GBP", "status": "COMPLETED", "transferIds": [ 234, 456 ], "payInDetails": [ { "type": "bank_transfer", "reference": "B5323", "amount": 12504.54, "currency": "NOK", "name": "TransferWise Ltd", "branchName": null, "accountNumber": "9910728", "accountType": null, "bankCode": "8301", "bankAddress": { … }, "transferWiseAddress": { … }, "iban": null, "bban": "83019910728", "institutionNumber": null, "transitNumber": null, "beneficiaryBankBIC": null, "intermediaryBankBIC": null, "fpsIdentifier": null, "clearingNumber": null } ] } ``` -------------------------------- ### Account Details Order State Change Webhook Payload Source: https://docs.wise.com/api-reference/webhook-event/eventholdlimitbreachupdate This is an example of the JSON payload received for an account-details-order#order-state-change event. It includes details about the order's status, currency, and requirements. ```json { "schema_version": "4.0.0", "subscription_id": "01989c58-7171-7276-9a4c-c9b4cefc0897", "event_type": "account-details-order#order-state-change", "sent_at": "2025-08-08T07:49:31.123Z", "data": { "creation_time": "2025-08-08T07:49:27.456Z", "currency": "CAD", "is_account_details_issued": false, "modification_time": "2025-08-08T07:49:30.789Z", "order_id": "01989c58-45e4-71dd-9373-7d999e992f99", "order_status": "REQUIREMENTS_FULFILLED", "profile_id": 28835473, "requirements": [ { … } ] } } ``` -------------------------------- ### Get Payin Currencies Source: https://docs.wise.com/api-reference/webhook-event/eventholdlimitbreachupdate Retrieves a list of currencies that can be received into a Wise Multi-Currency Account. ```APIDOC ## GET /v2/borderless-accounts-configuration/profiles/{profileId}/payin-currencies ### Description Retrieves a list of currencies that are supported for receiving funds (pay-ins) into a Wise Multi-Currency Account for a specific profile. ### Method GET ### Endpoint /v2/borderless-accounts-configuration/profiles/{profileId}/payin-currencies ### Parameters #### Path Parameters - **profileId** (string) - Required - The ID of the profile. ``` -------------------------------- ### Get Bank Account Details Orders Source: https://docs.wise.com/api-reference/webhook-event/eventholdlimitbreachupdate Retrieves the status and details of bank account detail orders. ```APIDOC ## GET /v3/profiles/{profileId}/account-details-orders ### Description Retrieves a list of orders for bank account details for a given profile. ### Method GET ### Endpoint /v3/profiles/{profileId}/account-details-orders ### Parameters #### Path Parameters - **profileId** (string) - Required - The ID of the profile. ``` ```APIDOC ## GET /v1/profiles/{profileId}/account-details-orders ### Description Retrieves details about previous orders for bank account details. This endpoint is deprecated. ### Method GET ### Endpoint /v1/profiles/{profileId}/account-details-orders ### Parameters #### Path Parameters - **profileId** (string) - Required - The ID of the profile. ``` -------------------------------- ### Partner Support Case Changed Webhook Payload Source: https://docs.wise.com/api-reference/webhook-event/eventholdlimitbreachupdate This is an example of the JSON payload received when a partner support case is changed. It includes details about the event, such as schema version, subscription ID, event type, and the specific data related to the case update. ```json { "schema_version": "4.0.0", "subscription_id": "017631af-326c-4a69-93f3-bd1ce987a743", "event_type": "partner-support#case-changed", "sent_at": "2023-06-23T09:45:36.123Z", "data": { "resource": { "type": "partner-support-case", "case_id": 136, "case_type": "GENERAL_ENQUIRY", "details": { … }, "status": "PENDING" }, "type": "NEW_CASE", "occurred_at": "2023-06-23T09:45:34.789Z" } } ``` -------------------------------- ### Simulate Balance Top-up Source: https://docs.wise.com/api-reference/address/address Simulates topping up a balance in the sandbox environment. ```APIDOC ## POST /v1/simulation/balance/topup ### Description Simulates a balance top-up action within the sandbox environment. ### Method POST ### Endpoint /v1/simulation/balance/topup ``` -------------------------------- ### Get One-Time Token Status Request Example Source: https://docs.wise.com/api-reference/sca-ott/one-time-token Example cURL command to retrieve the status of a one-time token. Ensure to replace placeholders with your actual JWT and token. ```curl curl -i -X GET \ https://api.wise.com/v1/one-time-token/status \ -H 'Authorization: Bearer ' \ -H 'One-Time-Token: string' \ -H 'X-External-Correlation-Id: f47ac10b-58cc-4372-a567-0e02b2c3d479' ``` -------------------------------- ### KYC Review Response Example Source: https://docs.wise.com/api-reference/kyc-review/kyc-review-with-link This is an example of a successful response when initiating a KYC review. It includes the review ID, status, a link for user redirection, creation and update timestamps, trigger references, the redirect URL, and the nested requirements. ```APIDOC ## GET /kyc-review/kyc-review-with-link ### Description Initiates a KYC review process and provides a link for user redirection to complete the necessary verification steps. ### Method GET ### Endpoint /kyc-review/kyc-review-with-link ### Parameters #### Query Parameters - **id** (string) - Required - The unique identifier for the KYC review. - **status** (string) - Required - The current status of the KYC review. - **link.value** (string) - Required - The URL where the user will be redirected to complete the KYC process. - **link.expiresAt** (string) - Required - The expiration timestamp for the provided link. - **createdAt** (string) - Required - The timestamp when the KYC review was created. - **updatedAt** (string) - Required - The timestamp when the KYC review was last updated. - **requiredBy** (string) - Required - The timestamp by which the KYC review must be completed. - **triggerReferences** (array) - Required - An array of objects detailing the underlying product object that triggered the KYC Review. - **type** (string) - Required - The type of the trigger (e.g., QUOTE, TRANSFER, ADD_MONEY, BANK_ACCOUNT_DETAILS). - **triggerData** (object) - Required - Metadata of the underlying product object. - **id** (uuid or long) - Required - The ID of the respective object for QUOTE, TRANSFER, ADD_MONEY types. - **currencies** (list of string) - Required - A list of currencies for BANK_ACCOUNT_DETAILS type. - **redirectUrl** (string) - Required - The URL where the user will be redirected at the end of the flow. - **requirements** (array) - Required - A nested list of KYC Requirement objects. - **key** (string) - Required - The name of the KYC requirement. - **state** (string) - Required - The state of the KYC requirement (e.g., NOT_PROVIDED, IN_REVIEW, VERIFIED). - **apiCollectionSupported** (boolean) - Required - Indicates if the requirement can be provided via the KYC Requirement Submit endpoint. - **additionalRequirements** (array) - Optional - List of additional submissions needed for this requirement. - **versions** (array) - Optional - Lists the available versions and their validity (Conditional: only present when `apiCollectionSupported` is `true`). ### Response #### Success Response (200) - **id** (string) - The unique identifier for the KYC review. - **status** (string) - The current status of the KYC review. - **link** (object) - Contains the redirection link and its expiration. - **value** (string) - The URL for user redirection. - **expiresAt** (string) - The expiration timestamp for the link. - **createdAt** (string) - The timestamp when the KYC review was created. - **updatedAt** (string) - The timestamp when the KYC review was last updated. - **requiredBy** (string) - The timestamp by which the KYC review must be completed. - **triggerReferences** (array) - Details of the trigger. - **redirectUrl** (string) - The final redirect URL after the flow completion. - **requirements** (array) - Nested list of KYC requirements. #### Response Example ```json { "id": "46e1a5c4-4a9b-4563-39d3-18174d3ac0f8", "status": "WAITING_CUSTOMER_INPUT", "link": { "value": "https://wise-sandbox.com/embedded-flows/verification?token=d7332edb-25bf-41af-a4e9-09f5efe39ded&checkId=3120073", "expiresAt": "2024-09-03T16:29:41.203225146" }, "createdAt": "2024-09-03T16:22:02.257725", "updatedAt": "2024-09-03T16:29:41.147522", "requiredBy": "2024-09-03T16:22:02.257725", "triggerReferences": [ { "type": "QUOTE", "triggerData": { "id": "ba83a43a-f623-46f0-956d-196c13e2ab01" } } ], "redirectUrl": "https://example.com", "requirements": [ [ { "key": "ID_DOCUMENT", "state": "NOT_PROVIDED", "apiCollectionSupported": true } ] ] } ``` ``` -------------------------------- ### Get Total Funds - cURL Example Source: https://docs.wise.com/api-reference/balance/balance Use this cURL command to make a GET request to the /v1/profiles/{profileId}/total-funds/{currency} endpoint. Ensure you replace placeholders with your actual profile ID, currency, and JWT. ```curl curl -i -X GET \ 'https://api.wise.com/v1/profiles/{profileId}/total-funds/EUR' \ -H 'Authorization: Bearer ' \ -H 'X-External-Correlation-Id: f47ac10b-58cc-4372-a567-0e02b2c3d479' ``` -------------------------------- ### Get Address Requirements - CA Example Source: https://docs.wise.com/api-reference/address/addressrequirementspost Call this endpoint with country set to 'CA' to discover that 'occupations' is a required field. ```json { "details": { "country": "CA" } } ``` -------------------------------- ### Get Address Requirements - US Example Source: https://docs.wise.com/api-reference/address/addressrequirementspost Call this endpoint with country set to 'US' to discover that 'state' is a required field. ```json { "details": { "country": "US" } } ``` -------------------------------- ### Simulate Incoming Swift Payment Source: https://docs.wise.com/api-reference.md Simulates an incoming Swift transfer into a profile's account details. This will create a payment into the user's account details and balance for the specified amount and currency. Using sandbox, you can test the initial tech build for webhook subscriptions, balance statements, and sweeping funds. If the request is successful the transfer is logged in our back office, which triggers a swift-in#credit event and results in a balance update. ```APIDOC ## POST /v1/simulation/profiles/{profileId}/swift-in ### Description Simulates an incoming Swift transfer into a profile's account details, creating a payment and updating the balance for the specified amount and currency. Useful for testing webhook subscriptions, balance statements, and sweeping funds in a sandbox environment. ### Method POST ### Endpoint /v1/simulation/profiles/{profileId}/swift-in ### Parameters #### Path Parameters - **profileId** (string) - Required - The ID of the profile to simulate the incoming payment for. ### Request Example ```json { "currency": "USD", "amount": "100.00" } ``` ### Response #### Success Response (200) - **message** (string) - A success message indicating the simulation was processed. #### Response Example ```json { "message": "Swift payment simulation successful." } ``` ``` -------------------------------- ### Get JOSE Encrypted JSON Web Encryption (JWE) Playground Source: https://docs.wise.com/api-reference/profile/profile Retrieves an example of an encrypted JSON Web Encryption (JWE). ```APIDOC ## GET /v1/auth/jose/playground/jwe ### Description Retrieves an example of an encrypted JSON Web Encryption (JWE). ### Method GET ### Endpoint /v1/auth/jose/playground/jwe ``` -------------------------------- ### Wise Platform Sandbox Server URL Source: https://docs.wise.com/api-reference.md Use this URL for testing API calls in a sandbox environment before going live. ```text https://api.wise-sandbox.com ``` -------------------------------- ### Get KYC Review by ID (V1) - cURL Example Source: https://docs.wise.com/api-reference/kyc-review/kyc-requirement Use this cURL command to make a GET request to retrieve a specific KYC review by its profile and review IDs. Ensure you replace placeholders with actual values and include your authorization token. ```curl curl -i -X GET \ 'https://api.wise.com/v1/profiles/{profileId}/kyc-reviews/{kycReviewId}' \ -H 'Authorization: Bearer ' \ -H 'X-External-Correlation-Id: f47ac10b-58cc-4372-a567-0e02b2c3d479' ``` -------------------------------- ### GET /v1/address-requirements Source: https://docs.wise.com/api-reference/address/addressrequirementsget.md Retrieves the list of fields required to create a valid address. This endpoint provides a starting point for discovering necessary address components. ```APIDOC ## GET /v1/address-requirements ### Description Returns the list of fields required to create a valid address. Use this as a starting point to discover required fields. ### Method GET ### Endpoint /v1/address-requirements ### Parameters #### Header Parameters - **X-External-Correlation-Id** (string) - Optional - UUID for correlating requests across systems. If provided, Wise echoes it back in the response. Maximum 36 characters. ### Response #### Success Response (200) - **type** (string) - Always "address". - **fields** (array) - List of fields required for the address. - **fields.name** (string) - Display name of the field. - **fields.group** (array) - **fields.group.key** (string) - Key name to include in the JSON request. - **fields.group.type** (string) - Display type of field. Enum: "text", "select" - **fields.group.refreshRequirementsOnChange** (boolean) - If true, call POST address-requirements when this field value changes to discover additional required fields. - **fields.group.required** (boolean) - Indicates if the field is mandatory. - **fields.group.displayFormat** (string,null) - Display format pattern. - **fields.group.example** (string) - Example value to help users understand what to input. - **fields.group.minLength** (integer,null) - Minimum valid length of field value. - **fields.group.maxLength** (integer,null) - Maximum valid length of field value. - **fields.group.validationRegexp** (string,null) - Regexp validation pattern. - **fields.group.valuesAllowed** (array) - List of allowed values (for select fields). - **fields.group.valuesAllowed.key** (string) - Value key to use in the request. - **fields.group.valuesAllowed.name** (string) - Display name for the value. - **fields.group.validationAsync** (string,null) - Deprecated. This validation will instead be performed when submitting the request. #### Response Example ```json { "type": "address", "fields": [ { "name": "Country", "group": [ { "key": "country", "type": "select", "refreshRequirementsOnChange": true, "required": true, "displayFormat": null, "example": "Germany", "minLength": null, "maxLength": null, "validationRegexp": null, "valuesAllowed": [ { "key": "US", "name": "United States" }, { "key": "GB", "name": "United Kingdom" } ], "validationAsync": null } ] } ] } ``` ``` -------------------------------- ### Create Balance Source: https://docs.wise.com/api-reference/kyc-review/kyc-review-with-link Creates a new balance account for a given profile. The first balance created for a profile also establishes the multi-currency account. ```APIDOC ## POST /v4/profiles/{profileId}/balances ### Description Creates a new balance account for a given profile. The first balance created for a profile also establishes the multi-currency account. ### Method POST ### Endpoint /v4/profiles/{profileId}/balances ### Parameters #### Path Parameters - **profileId** (string) - Required - The unique identifier of the profile for which to create the balance. ### Request Example { "example": "{\"currency\": \"GBP\", \"type\": \"STANDARD\"}" } ### Response #### Success Response (201 Created) - **balanceId** (string) - The unique identifier of the newly created balance. - **currency** (string) - The currency of the balance account. - **type** (string) - The type of the balance account (e.g., STANDARD, SAVINGS). - **investmentState** (string) - The current investment state of the balance (e.g., NOT_INVESTED). #### Response Example { "example": "{\"balanceId\": \"bal_123abc\", \"currency\": \"GBP\", \"type\": \"STANDARD\", \"investmentState\": \"NOT_INVESTED\"}" } ``` -------------------------------- ### Get card PIN Source: https://docs.wise.com/api-reference Fetches the card's PIN. Requires an encrypted JWE payload for security. See the sensitive card details guide for implementation details. ```APIDOC ## POST /twcard-data/v1/sensitive-card-data/pin ### Description Fetches the card's PIN. Requires an encrypted JWE payload for security. See the sensitive card details guide for implementation details. ### Method POST ### Endpoint /twcard-data/v1/sensitive-card-data/pin ### Parameters #### Request Body - **jwePayload** (string) - Required - The encrypted JWE payload containing the card identifier and other necessary information. ### Request Example ```json { "jwePayload": "eyJhbGciOiJSU0Et..." } ``` ### Response #### Success Response (200) - **pin** (string) - The card's Personal Identification Number (PIN). #### Response Example ```json { "pin": "1234" } ``` ``` -------------------------------- ### POST /v4/profiles/{profileId}/balances Source: https://docs.wise.com/api-reference/batch-group/batchgroup Creates a new balance account for a given profile. The first balance created for a profile also establishes the multi-currency account. ```APIDOC ## POST /v4/profiles/{profileId}/balances ### Description Creates a new balance account for a given profile. The first balance created for a profile also establishes the multi-currency account. ### Method POST ### Endpoint /v4/profiles/{profileId}/balances ### Parameters #### Path Parameters - **profileId** (string) - Required - The unique identifier of the profile for which to create the balance account. ### Request Body - **currency** (string) - Required - The currency of the balance account (e.g., EUR, USD). - **type** (string) - Required - The type of balance account. Can be `STANDARD` or `SAVINGS` (Jars). ### Request Example { "currency": "EUR", "type": "STANDARD" } ### Response #### Success Response (201 Created) - **balanceId** (string) - The unique identifier of the newly created balance account. - **profileId** (string) - The identifier of the profile associated with this balance. - **currency** (string) - The currency of the balance. - **type** (string) - The type of the balance account. - **investmentState** (string) - The current investment state of the balance (e.g., `NOT_INVESTED`). #### Response Example { "balanceId": "bal_abc123", "profileId": "prof_xyz789", "currency": "EUR", "type": "STANDARD", "investmentState": "NOT_INVESTED" } ``` -------------------------------- ### POST Recipient Account Requirements Source: https://docs.wise.com/api-reference/recipient/recipientAccountRequirementsGet Use this endpoint after setting any field that has `refreshRequirementsOnChange=true` in the GET response, to discover any additional required fields. This example shows a POST request to submit recipient account details. ```curl curl -i -X POST \ 'https://api.wise.com/v1/quotes/{quoteId}/account-requirements?originatorLegalEntityType=BUSINESS' \ -H 'Accept-Minor-Version: 1' \ -H 'Authorization: Bearer ' \ -H 'Content-Type: application/json' \ -H 'X-External-Correlation-Id: f47ac10b-58cc-4372-a567-0e02b2c3d479' \ -d '{ "currency": "GBP", "type": "sort_code", "profile": 30000000, "accountHolderName": "John Doe", "ownedByCustomer": true, "details": { "legalType": "PRIVATE", "sortCode": "040075", "accountNumber": "37778842", "dateOfBirth": "1961-01-01" }, "ultimateBeneficiary": { "accountNumber": "37778842", "bankName": "Wise Payments Limited", "bankCode": "026073150", "name": { "fullName": "John Doe", "givenName": null, "familyName": null, "middleName": null, "patronymicName": null, "cannotHavePatronymicName": null }, "address": { "country": "US", "firstLine": "string", "postCode": "string", "city": "string", "state": "string" }, "bankAddress": { "country": "US", "firstLine": "string", "postCode": "string", "city": "string", "state": "string" } } }' ``` -------------------------------- ### Get Account Balance Request (v1) Source: https://docs.wise.com/api-reference/balance/balance Example cURL command to retrieve account balances. Ensure you replace placeholders with your actual JWT and profile ID. The X-External-Correlation-Id header is optional for request correlation. ```curl curl -i -X GET \ 'https://api.wise.com/v1/borderless-accounts?profileId=33333333' \ -H 'Authorization: Bearer ' \ -H 'X-External-Correlation-Id: f47ac10b-58cc-4372-a567-0e02b2c3d479' ``` -------------------------------- ### Server Environments Source: https://docs.wise.com/api-reference.md Details of the production and sandbox environments for the Wise Platform API. ```APIDOC ## Servers ### Production Environment ``` https://api.wise.com ``` ### Sandbox Environment ``` https://api.wise-sandbox.com ``` ``` -------------------------------- ### Get Total Funds - Response Body Example Source: https://docs.wise.com/api-reference/balance/balance This JSON structure represents a successful response (200 OK) from the total-funds endpoint, detailing total worth, available funds, cash balance, and overdraft information. ```json { "totalWorth": { "value": 2000, "currency": "EUR" }, "totalAvailable": { "value": 2500, "currency": "EUR" }, "totalCash": { "value": 2000, "currency": "EUR" }, "overdraft": { "limit": { "value": 500, "currency": "EUR" }, "used": { "value": 0, "currency": "EUR" }, "available": { "value": 500, "currency": "EUR" }, "availableByCurrency": [ { … } ] } } ``` -------------------------------- ### Create a Balance Account Source: https://docs.wise.com/api-reference/balance/holdlimitbreach Opens a balance within the specified profile, in the currency and type specified in the request. For `STANDARD` balances, only one can be created per currency. For `SAVINGS` balances, multiple in the same currency can be opened. When creating a `SAVINGS` type balance, a `name` is required. ```APIDOC ## POST /v4/profiles/{profileId}/balances ### Description Opens a balance within the specified profile, in the currency and type specified in the request. For `STANDARD` balances, only one can be created per currency. For `SAVINGS` balances, multiple in the same currency can be opened. When creating a `SAVINGS` type balance, a `name` is required. ### Method POST ### Endpoint /v4/profiles/{profileId}/balances ### Parameters #### Path Parameters - **profileId** (integer) - Required - The profile ID. #### Headers - **X-idempotence-uuid** (string) - Required - Unique identifier assigned by you. Used for idempotency check purposes. Should your call fail for technical reasons then you can use the same value again for making a retry call. - **X-External-Correlation-Id** (string) - Optional - Optional UUID for correlating requests across systems. If provided, Wise echoes it back in the response. Maximum 36 characters. #### Request Body - **currency** (string) - Required - Currency code (ISO 4217 Alphabetic Code). - **type** (string) - Required - Type of balance account. Enum: "STANDARD", "SAVINGS". - **name** (string) - Optional - Name of the balance. Required for SAVINGS type balances. ### Request Example ```json { "currency": "EUR", "type": "STANDARD" } ``` ### Response #### Success Response (201) - **id** (integer) - Balance ID. - **currency** (string) - Currency code (ISO 4217 Alphabetic Code). - **type** (string) - Type of balance account. Enum: "STANDARD", "SAVINGS". - **name** (string or null) - Name of the balance. Required for SAVINGS balances. - **icon** (object or null) - **investmentState** (string) - Investment state of the balance. Enum: "NOT_INVESTED", "INVESTED", "INVESTING", "DIVESTING", "UNKNOWN". - **amount** (object) - **value** (number) - Amount value. - **currency** (string) - Currency code (ISO 4217 Alphabetic Code). - **reservedAmount** (object) - **value** (number) - Amount value. - **currency** (string) - Currency code (ISO 4217 Alphabetic Code). - **cashAmount** (object) - **value** (number) - Amount value. - **currency** (string) - Currency code (ISO 4217 Alphabetic Code). - **totalWorth** (object) - **value** (number) - Amount value. - **currency** (string) - Currency code (ISO 4217 Alphabetic Code). - **creationTime** (string) - Date when the balance was created. - **modificationTime** (string) - Date when the balance was last modified. - **visible** (boolean) - Whether the balance is visible to the user. #### Response Example ```json { "id": 200001, "currency": "EUR", "type": "STANDARD", "name": null, "icon": null, "investmentState": "NOT_INVESTED", "amount": { "value": 310.86, "currency": "EUR" }, "reservedAmount": { "value": 0, "currency": "EUR" }, "cashAmount": { "value": 310.86, "currency": "EUR" }, "totalWorth": { "value": 310.86, "currency": "EUR" }, "creationTime": "2020-05-20T14:43:16.658Z", "modificationTime": "2020-05-20T14:43:16.658Z", "visible": true } ``` ``` -------------------------------- ### GET /v1/profiles/{profileId}/account-details Source: https://docs.wise.com/api-reference/bank-account-details/bankaccountdetailsget.md Retrieves a list of all available and active account details for the specified profile. This includes local and international bank details for receiving money. Example account details are provided if specific ones haven't been requested. ```APIDOC ## GET /v1/profiles/{profileId}/account-details ### Description Retrieves a list of all available and active account details for the specified profile. This includes local and international bank details for receiving money. Example account details are provided if specific ones haven't been requested. ### Method GET ### Endpoint /v1/profiles/{profileId}/account-details ### Parameters #### Path Parameters - **profileId** (integer) - Required - The ID of the profile to retrieve bank account details for. Example: 12345678 #### Header Parameters - **X-External-Correlation-Id** (string) - Optional - UUID for correlating requests across systems. If provided, Wise echoes it back in the response. Maximum 36 characters. Example: "f47ac10b-58cc-4372-a567-0e02b2c3d479" ### Response #### Success Response (200) - **id** (integer, null) - Bank account details ID. Returns null for preview account details that have not yet been issued. Example: 14000001 - **currency** (object) - Currency information for the bank account details. - **currency.code** (string) - Currency code (ISO 4217 Alphabetic Code). Example: "EUR" - **currency.name** (string) - Currency name. Example: "Euro" - **title** (string) - Account title. Example: "Your EUR account details" - **subtitle** (string) - Account subtitle. Example: "IBAN, SWIFT/BIC" - **status** (string) - Account details status: AVAILABLE, ACTIVE. Enum: "AVAILABLE", "ACTIVE" - **deprecated** (boolean) - When true, Wise has issued new account details for the same currency. - **receiveOptions** (array) - Available receive options for the given currency: LOCAL, INTERNATIONAL. - **receiveOptions.type** (string) - Receive option type. Enum: "LOCAL", "INTERNATIONAL" - **receiveOptions.title** (string) - Display title for this receive option. Example: "Local" - **receiveOptions.description** (object, null) - Description for this receive option. - **receiveOptions.description.title** (string) - Description title. Example: "Your EUR account details" - **receiveOptions.description.body** (string) - Description body text. Example: "Receive from a bank in the Eurozone" - **receiveOptions.description.cta** (object, null) - Call-to-action details. - **receiveOptions.description.cta.label** (string) - CTA label. Example: "IBAN" - **receiveOptions.description.cta.content** (string) - CTA content. Example: "BE12 3456 7890 1234" - **receiveOptions.details** (array) - Account details to display to users. This array varies by currency. - **receiveOptions.details.type** (string) - Account detail type. Example: "IBAN" - **receiveOptions.details.title** (string) - Label to display in the UI. Example: "IBAN" - **receiveOptions.details.body** (string) - Value to display in the UI. Example: "BE12 3456 7890 1234" - **receiveOptions.details.description** (object, null) - Tooltip/popup hint content when present. - **receiveOptions.details.description.title** (string) - Description title. Example: "What is an IBAN?" - **receiveOptions.details.description.body** (string) - Description body (may contain HTML). Example: "

IBAN stands for International Bank Account Number.

" - **receiveOptions.details.description.cta** (object, null) - Call-to-action details. - **receiveOptions.details.description.cta.label** (string) - CTA label. Example: "IBAN" - **receiveOptions.details.description.cta.content** (string) - CTA content. Example: "BE12 3456 7890 1234" - **receiveOptions.details.hidden** (boolean) - Whether the field should be hidden in the UI. - **bankFeatures** (array) - Features enabled on the account. - **bankFeatures.key** (string) - Feature identifier. Example: "LOCAL_RECEIVE" - **bankFeatures.title** (string) - Human-readable feature name. Example: "Receive locally" - **bankFeatures.supported** (boolean) - Whether the feature is supported. Example: true #### Response Example ```json { "id": 14000001, "currency": { "code": "EUR", "name": "Euro" }, "title": "Your EUR account details", "subtitle": "IBAN, SWIFT/BIC", "status": "ACTIVE", "deprecated": false, "receiveOptions": [ { "type": "LOCAL", "title": "Local", "description": { "title": "Your EUR account details", "body": "Receive from a bank in the Eurozone", "cta": { "label": "IBAN", "content": "BE12 3456 7890 1234" } }, "details": [ { "type": "IBAN", "title": "IBAN", "body": "BE12 3456 7890 1234", "description": { "title": "What is an IBAN?", "body": "

IBAN stands for International Bank Account Number.

", "cta": { "label": "IBAN", "content": "BE12 3456 7890 1234" } }, "hidden": false } ] } ], "bankFeatures": [ { "key": "LOCAL_RECEIVE", "title": "Receive locally", "supported": true } ] } ``` ``` -------------------------------- ### Bank Account Details Order Creation Response Source: https://docs.wise.com/api-reference/bank-account-details/bankaccountdetails This is an example of a successful response when creating a bank account details order. It includes the order status, currency, and a list of requirements with their respective statuses. ```json { "status": "PENDING_USER", "currency": "EUR", "requirements": [ { "type": "VERIFICATION", "status": "PENDING_USER" } ] } ``` -------------------------------- ### Cards manual provisioning verification webhook Source: https://docs.wise.com/api-reference Triggered when a card is manually added to a wallet provider, and the verification methods required to complete the wallet provisioning are returned. See the Webhooks guide for setup instructions, signature verification, and best practices. ```APIDOC ## POST cards#manual-provisioning-verification ### Description Triggered when a card is manually added to a wallet provider, and the verification methods required to complete the wallet provisioning are returned. ### Method POST ### Endpoint cards#manual-provisioning-verification ### Parameters #### Query Parameters - **event_type** (string) - Required - The type of the event. ### Request Example ```json { "data": { "type": "cards#manual-provisioning-verification", "id": "evt_67890", "occurred_at": "2023-10-27T10:05:00Z", "card": { "id": "card_fghij", "verification_methods": [ "CVV", "EXPIRY_DATE" ] } } } ``` ### Response #### Success Response (200) - **status** (string) - Indicates the success of the webhook delivery. #### Response Example ```json { "status": "SUCCESS" } ``` ``` -------------------------------- ### Account Balance Response (v1) Source: https://docs.wise.com/api-reference/balance/holdlimitbreach Example JSON response structure for a successful retrieval of account balances, including account details and balance information. ```json [ { "id": 64, "profileId": 33333333, "recipientId": 13828530, "creationTime": "2018-03-14T12:31:15.678Z", "modificationTime": "2018-03-19T15:19:42.111Z", "active": true, "eligible": true, "balances": [ { … } ] } ] ```