### Get Address Requirements Response Example Source: https://docs.wise.com/api-reference/address/address Example JSON response detailing the fields required to create a valid address. Includes field names and types. ```json [ { "type": "address", "fields": [ { … } ] } ] ``` -------------------------------- ### Example Profile Response (JSON) Source: https://docs.wise.com/api-reference/profile/profileupdatev1 This example demonstrates the structure of a successful response when retrieving profile data. It includes both personal and business profile examples. ```json [ { "type": "PERSONAL", "id": 14575282, "publicId": "a1b2c3d4-e5f6-7890-1234-567890abcdef", "userId": 9889627, "address": { "id": 36086782, "addressFirstLine": "24 Willow Creek Lane", "city": "Bristol", "countryIso2Code": "GB", "countryIso3Code": "gbr", "postCode": "BS1 6AE", "stateCode": null }, "email": "sarah.jenkins@example.com", "createdAt": "2023-01-15T10:30:00", "updatedAt": "2025-06-18T14:20:00", "avatar": "https://example.com/avatars/sarah_jenkins.png", "currentState": "VISIBLE", "contactDetails": { "email": "sarah.contact@example.com", "phoneNumber": "+447700900123" }, "firstName": "Sarah", "lastName": "Jenkins", "preferredName": "Sal", "dateOfBirth": "1985-05-20", "phoneNumber": "+447700900456", "secondaryAddresses": [], "fullName": "Sarah Jenkins" }, { "type": "BUSINESS", "id": 14599371, "publicId": "f0e9d8c7-b6a5-4321-fedc-ba9876543210", "userId": 9889627, "address": { "id": 36152772, "addressFirstLine": "15 Tech Hub Studios", "city": "Manchester", "countryIso2Code": "GB", "countryIso3Code": "gbr", "postCode": "M1 7JA", "stateCode": null }, "email": "info@innovate-solutions.co.uk", "createdAt": "2024-03-10T09:00:00", "updatedAt": "2025-06-18T14:22:00" } ] ``` -------------------------------- ### Example Balance Response Source: https://docs.wise.com/api-reference/balance/balance An example of a successful response (200 OK) containing user balance details. ```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 } ] ``` -------------------------------- ### Example Bank Account Orders Response Source: https://docs.wise.com/api-reference/bank-account-details/bankaccountdetails Example JSON response for a list of bank account detail orders. ```json [ { "status": "DONE", "currency": "EUR", "requirements": [ { ... } ] } ] ``` -------------------------------- ### Create a quote (unauthenticated) Source: https://docs.wise.com/api-reference/quote/quote Use this endpoint to get example quotes for people to see the exchange rate and fees Wise offers before a user has created or linked an account. This can drive a version of the quote screen that shows the user what Wise offers before they sign up. Note that this endpoint does not require a token to create the resource, however, since it is just an example, the returned quote has no ID so can't be used later to create a transfer. ```APIDOC ## Create a quote (unauthenticated) ### Description Use this endpoint to get example quotes for people to see the exchange rate and fees Wise offers before a user has created or linked an account. This can drive a version of the quote screen that shows the user what Wise offers before they sign up. Note that this endpoint does not require a token to create the resource, however, since it is just an example, the returned quote has no ID so can't be used later to create a transfer. In order to get an accurate partner fee, we require a client credentials token to be provided. If you are a partner and would like your fee to be included in the quote returned, you must provide your auth token. If not, you do not require the Authorization header. Unauthenticated quotes cannot be used to create transfers, they are meant for illustration purposes in partner interfaces only. Make sure to create an authenticated quote during the transfer creation flow. ### Method POST ### Endpoint /v3/quotes ### Headers - **Authorization** (string) - Optional - Client credentials token for accurate partner fee calculation. - **X-External-Correlation-Id** (string) - Optional - UUID for correlating requests across systems. Maximum 36 characters. ### Request Body - **sourceCurrency** (string) - Required - Source (sending) currency code. - **targetCurrency** (string) - Required - Target (receiving) currency code. - **sourceAmount** (number or null) - Optional - Amount in source currency. Either sourceAmount or targetAmount is required, never both. - **targetAmount** (number or null) - Optional - Amount in target currency. Either sourceAmount or targetAmount is required, never both. - **pricingConfiguration** (object) - Optional - Required when configured for your client ID. Includes a pricingConfiguration to be used for pricing calculations with the quote. - **pricingConfiguration.fee** (object) - Required if pricingConfiguration is provided. - **pricingConfiguration.fee.type** (string) - Required - The type of fee override. Example: "OVERRIDE" - **pricingConfiguration.fee.variable** (number) - Required - The variable fee component. - **pricingConfiguration.fee.fixed** (number) - Required - The fixed fee component. ### Request Example ```json { "sourceCurrency": "GBP", "targetCurrency": "USD", "sourceAmount": null, "targetAmount": 110, "pricingConfiguration": { "fee": { "type": "OVERRIDE", "variable": 0.011, "fixed": 15.42 } } } ``` ### Response #### Success Response (200) - **id** (string) - The ID of the quote. Note: For unauthenticated quotes, this ID is not usable for creating transfers. - **sourceCurrency** (string) - Source currency code. - **targetCurrency** (string) - Target currency code. - **sourceAmount** (string) - Amount in source currency. - **targetAmount** (string) - Amount in target currency. - **rate** (string) - The exchange rate. - **fee** (string) - The total fee for the quote. - **disclaimer** (string) - A disclaimer related to the quote. - **type** (string) - The type of quote (e.g., "INDIRECT", "DIRECT"). - **createdAt** (string) - The timestamp when the quote was created. - **expiresAt** (string) - The timestamp when the quote expires. - **paymentOptions** (array) - Details about payment options. - **guaranteedExecutionTime** (string) - The guaranteed execution time for the transfer. - **price** (object) - Pricing details. - **price.sourceAmount** (string) - The amount in the source currency after fees. - **price.targetAmount** (string) - The amount in the target currency after fees. - **price.fee** (string) - The total fee. - **price.effectiveRate** (string) - The effective exchange rate. - **price.limit** (object) - Details about limits. - **price.limit.min** (string) - Minimum transfer amount. - **price.limit.max** (string) - Maximum transfer amount. - **price.currency** (string) - The currency for the price details. - **currencyDetails** (object) - Details about currencies. - **currencyDetails.source** (object) - Details about the source currency. - **currencyDetails.source.currency** (string) - The source currency code. - **currencyDetails.source.logo** (string) - The logo URL for the source currency. - **currencyDetails.source.name** (string) - The name of the source currency. - **currencyDetails.target** (object) - Details about the target currency. - **currencyDetails.target.currency** (string) - The target currency code. - **currencyDetails.target.logo** (string) - The logo URL for the target currency. - **currencyDetails.target.name** (string) - The name of the target currency. ### Response Example ```json { "id": "a1b2c3d4-e5f6-7890-1234-567890abcdef", "sourceCurrency": "GBP", "targetCurrency": "USD", "sourceAmount": "100.00", "targetAmount": "118.50", "rate": "1.18500000", "fee": "1.50", "disclaimer": "This is an indicative quote.", "type": "INDIRECT", "createdAt": "2023-10-27T10:00:00Z", "expiresAt": "2023-10-27T10:05:00Z", "paymentOptions": [ { "type": "BANK_TRANSFER", "fee": "1.50", "currency": "GBP" } ], "guaranteedExecutionTime": "24 hours", "price": { "sourceAmount": "98.50", "targetAmount": "118.50", "fee": "1.50", "effectiveRate": "1.203045", "limit": { "min": "1.00", "max": "10000.00" }, "currency": "GBP" }, "currencyDetails": { "source": { "currency": "GBP", "logo": "https://example.com/logos/gbp.png", "name": "British Pound" }, "target": { "currency": "USD", "logo": "https://example.com/logos/usd.png", "name": "US Dollar" } } } ``` ``` -------------------------------- ### Example Payment Return Response Source: https://docs.wise.com/api-reference/bank-account-details/bankaccountdetails Example JSON response for a created payment return. ```json { "id": "4cc39f2b-3513-453d-8792-9ccc22e513c3" } ``` -------------------------------- ### Example Authorization Request URL Source: https://docs.wise.com/guides/developer/open-banking.md This is an example of the GET request URL used to initiate the authorization flow. Ensure all parameters match those in the signed JWT. ```shell https://sandbox.transferwise.tech/openbanking/authorize? response_type=code%20id_token& redirect_uri=https://ob-dummy-tpp/redirect& scope=openid%20accounts& client_id=ob-dummy-tpp& state=state123& nonce=nonce123& request=eyJ0...sYjmjJg ``` -------------------------------- ### Example profiles#cdd-check-state-change Event (VERIFIED) Source: https://docs.wise.com/guides/developer/webhooks/event-types This example shows a `profiles#cdd-check-state-change` event where the profile has been successfully VERIFIED. Note the empty `required_evidences` array. ```json { "data": { "resource": { "type": "profile", "id": 111 }, "current_state": "VERIFIED", "required_evidences": [], "occurred_at": "2020-01-01T12:34:56Z" }, "subscription_id": "01234567-89ab-cdef-0123-456789abcdef", "event_type": "profiles#cdd-check-state-change", "schema_version": "2.0.0", "sent_at": "2020-01-01T12:34:56Z" } ``` -------------------------------- ### Example profiles#state-change Event (Schema v2.0.0) Source: https://docs.wise.com/guides/developer/webhooks/event-types This example demonstrates the structure of a `profiles#state-change` event payload for schema version 2.0.0. It includes details about the profile resource, its current state, and the time of the occurrence. ```json { "data": { "resource": { "id": 1234, "type": "profile" }, "current_state": "WITHDRAW_ONLY", "occurred_at": "2020-01-01T12:34:567890Z" }, "event_type": "profiles#state-change", "schema_version": "2.0.0", "sent_at": "2020-01-01T12:34:56Z", "subscription_id": "f5b51f77-e14a-433b-9f7c-fc2834ffcff5" } ``` -------------------------------- ### Submit Authenticated API Request (GET) Source: https://docs.wise.com/guides/developer/auth-and-security/jose-jwe.md This example shows how to make a GET request to the Wise API using JWE. Even though GET requests typically do not have a body, JWE can still be used for response payload encryption. ```APIDOC ## GET /v1/cases/{id} ### Description Retrieves a specific case using JWE for response payload encryption. This method is used for GET requests where the response will be encrypted. ### Method GET ### Endpoint https://api.transferwise.com/v1/cases/123456789 ### Headers - `Content-Type`: `application/jose+json` - `Accept`: `application/jose+json` - `X-TW-JOSE-Method`: `jwe` - `Authorization`: `Bearer XXXXXXX` - `Accept-Encoding`: `identity` ### Request Example ```bash curl -X GET 'https://api.transferwise.com/v1/cases/123456789' \ -H 'Authorization: Bearer XXXXXXX' \ -H 'Content-Type: application/jose+json' \ -H 'Accept: application/jose+json' \ -H 'X-TW-JOSE-Method: jwe' \ -H 'Accept-Encoding: identity' ``` ``` -------------------------------- ### Get Address Requirements Request Example (curl) Source: https://docs.wise.com/api-reference/address/address Example cURL command to fetch the required fields for creating a valid address. Requires authentication and an optional correlation ID. ```curl curl -i -X GET \ https://api.wise.com/v1/address-requirements \ -H 'Authorization: Bearer ' \ -H 'X-External-Correlation-Id: f47ac10b-58cc-4372-a567-0e02b2c3d479' ``` -------------------------------- ### Example profiles#cdd-check-state-change Event (EVIDENCE_REQUIRED) Source: https://docs.wise.com/guides/developer/webhooks/event-types This example illustrates a `profiles#cdd-check-state-change` event where additional evidence is required. It includes a `review_outcome` and specifies the `required_evidences`. ```json { "data": { "resource": { "type": "profile", "id": 111 }, "current_state": "EVIDENCE_REQUIRED", "review_outcome": "Document is not acceptable", "required_evidences": [ "SOURCE_OF_INCOME" ], "source_of_income": "INVESTMENTS", "occurred_at": "2020-01-01T12:34:56Z" }, "subscription_id": "01234567-89ab-cdef-0123-456789abcdef", "event_type": "profiles#cdd-check-state-change", "schema_version": "2.0.0", "sent_at": "2020-01-01T12:34:56Z" } ``` -------------------------------- ### Get Transfer by ID Request Example (cURL) Source: https://docs.wise.com/api-reference/transfer/originator-transfer Example cURL command to retrieve a specific transfer's information using its ID. Ensure to replace placeholders with your actual credentials and transfer ID. ```curl curl -i -X GET \ 'https://api.wise.com/v1/transfers/{transferId}' \ -H 'Authorization: Bearer ' \ -H 'X-External-Correlation-Id: f47ac10b-58cc-4372-a567-0e02b2c3d479' ``` -------------------------------- ### List Webhook Subscriptions Source: https://docs.wise.com/api-reference/webhook/webhookapplicationsubscriptionlist This example demonstrates how to list all webhook subscriptions for your application using the GET /v3/applications/{clientKey}/subscriptions endpoint. ```APIDOC ## GET /v3/applications/{clientKey}/subscriptions ### Description Lists all webhook subscriptions for your application. ### Method GET ### Endpoint /v3/applications/{clientKey}/subscriptions ### Parameters #### Path Parameters - **clientKey** (string, required) - Your application's client key. #### Header Parameters - **X-External-Correlation-Id** (string) - Optional UUID for correlating requests across systems. Maximum 36 characters. ### Response #### Success Response (200) - **id** (string) - UUID that uniquely identifies the subscription. - **name** (string) - A custom name for your webhook to ease with identification. - **trigger_on** (string) - The event type this subscription is listening for. - **delivery** (object) - **url** (string) - The URL where your server will be listening for events. - **version** (string) - The event representation semantic version. - **scope** (object) - **domain** (string) - Scope of this subscription (e.g. "application" or "profile"). - **id** (string) - ID associated with the scope (client key or profile ID). - **created_by** (object) - **type** (string) - Creator type (e.g. "application" or "user"). - **id** (string) - ID of the creator. - **created_at** (string) - Timestamp of when the subscription was created. #### Response Example ```json { "id": "72195556-e5cb-495e-a010-b37a4f2a3043", "name": "Webhook Subscription #1", "trigger_on": "transfers#state-change", "delivery": { "version": "4.0.0", "url": "https://your.webhook.url/12345" }, "scope": { "domain": "application", "id": "" }, "created_by": { "type": "application", "id": "" }, "created_at": "2019-10-10T13:55:57Z" } ``` ``` -------------------------------- ### Fetch Hosted Onboarding Link Source: https://docs.wise.com/guides/product/kyc/wise-kyc/hosted-kyc.md Use this endpoint to obtain a single-use, short-lived link for the hosted KYC onboarding flow. The link expires after 5 minutes and can only be used once. Ensure you use the `data.resource.id` from the state change event as `{kycReviewId}`. ```bash curl -L -X PATCH \ 'https://api.wise.com/v1/profiles/{profileId}/kyc-reviews/{kycReviewId}' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer ' \ -d '{ "redirectUrl": "https://example.com" }' ``` -------------------------------- ### Card Programs Response Example Source: https://docs.wise.com/api-reference/card-order/cardorder Example JSON response when successfully retrieving available card programs. This details the name, scheme, default currency, and card type for each program. ```json { "cardPrograms": [ { "name": "VISA_DEBIT_BUSINESS_UK_1_CARDS_API", "scheme": "VISA", "defaultCurrency": "GBP", "cardType": "VIRTUAL_NON_UPGRADEABLE" } ] } ``` -------------------------------- ### Get Address Requirements Source: https://docs.wise.com/api-reference.md Returns a list of fields required to create a valid address. This is a starting point for discovering necessary fields. ```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. The response contains 4 required top-level fields: country (select field with list of values), city (text field), postCode (text field), and firstLine (text field). If a field has refreshRequirementsOnChange: true, call the POST endpoint with that field's value to discover additional required fields. For a step-by-step walkthrough, see the Address Requirements guide. ### Method GET ### Endpoint /v1/address-requirements ### Response #### Success Response (200) - (object) - An object detailing the required address fields. ``` -------------------------------- ### Example profiles#verification-state-change Event (Schema v4.0.0) Source: https://docs.wise.com/guides/developer/webhooks/event-types This example demonstrates a `profiles#verification-state-change` event using schema version 4.0.0. It includes a more granular timestamp for the `occurred_at` and `sent_at` fields. ```json { "data": { "resource": { "type": "profile", "id": 111 }, "current_state": "verified", "occurred_at": "2020-01-01T12:34:56.789Z" }, "subscription_id": "01234567-89ab-cdef-0123-456789abcdef", "event_type": "profiles#verification-state-change", "schema_version": "4.0.0", "sent_at": "2020-01-01T12:34:56.123Z" } ``` -------------------------------- ### Response - Get status of one time token Source: https://docs.wise.com/guides/developer/auth-and-security/sca-over-api.md The response details the required challenges for the one-time token. In this example, a PIN challenge is required. ```json { "oneTimeTokenProperties": { "oneTimeToken": "bb676aeb-7c4d-4930-bb55-ab949fd3fd87", "challenges": [ { "primaryChallenge": { "type": "PIN", "viewData": { "attributes": { "userId": 6146956 } } }, "alternatives": [], "required": true, "passed": false } ], "validity": 3600, "actionType": "BALANCE__GET_STATEMENT", "userId": 6146956 } } ``` -------------------------------- ### Get Recipient Account by ID Request (cURL) Source: https://docs.wise.com/api-reference/recipient/recipient Example cURL command to retrieve recipient account information by its ID. Includes necessary headers for authentication and correlation. ```curl curl -i -X GET \ 'https://api.wise.com/v2/accounts/{accountId}' \ -H 'Authorization: Bearer ' \ -H 'X-External-Correlation-Id: f47ac10b-58cc-4372-a567-0e02b2c3d479' ``` -------------------------------- ### User Creation Response (200 OK) Source: https://docs.wise.com/api-reference/user/user This is an example of a successful user creation response. It includes the user's ID, name, email, active status, and details. ```json { "id": 12345, "name": null, "email": "new.user@domain.com", "active": true, "details": null } ``` -------------------------------- ### Profile Update V1 Response Example Source: https://docs.wise.com/api-reference/profile/profileupdatev1 Example of a successful response when updating a profile. This shows the structure of the returned business details. ```json { "contactDetails": { "email": "contact@innovate-solutions.co.uk", "phoneNumber": "+441617891234" }, "businessName": "Innovate Solutions Ltd", "registrationNumber": "SC1234567890ABCD", "descriptionOfBusiness": "SOFTWARE_DEVELOPMENT", "webpage": "https://www.innovate-solutions.co.uk", "companyType": "LIMITED_COMPANY", "businessFreeFormDescription": "We create cutting-edge software for businesses.", "firstLevelCategory": "TECHNOLOGY", "secondLevelCategory": "SOFTWARE_SERVICES", "operationalAddresses": [ { ... } ], "fullName": "Innovate Solutions Ltd" } ] ``` -------------------------------- ### Get Card Order Requirements Response Source: https://docs.wise.com/api-reference/card-order/cardorder Example JSON response when successfully retrieving card order requirements. It details the types and statuses of requirements needed for the card order. ```json { "requirements": [ { "type": "PIN", "status": "NOT_INITIATED" }, { "type": "VERIFICATION", "status": "PENDING" }, { "type": "ADDRESS", "status": "COMPLETED" } ] } ``` -------------------------------- ### Get Bank Account Details Source: https://docs.wise.com/api-reference/bank-account-details/bankaccountdetailsget Fetches available and active bank account details for a specified profile. It can also return example details for currencies where accounts haven't been issued. ```APIDOC ## GET /v1/profiles/{profileId}/account-details ### Description Returns a list with all the AVAILABLE and ACTIVE account details for the given profile, including examples. Account receive options can also include local and international details to receive money on the currency balance. Example bank account details are returned for any currency where bank account details have not been requested and issued. Examples will always include an id of null. ### 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) - 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. Users should not use the deprecated account but may still have external references to it. - **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 ### Security UserToken, PersonalToken ``` -------------------------------- ### Response - Get balance account statement (403 Forbidden) Source: https://docs.wise.com/guides/developer/auth-and-security/sca-over-api.md Example of a 403 Forbidden response indicating SCA is required. The `x-2fa-approval` header contains the token needed for the next step. ```text HTTP/1.1 403 Forbidden Date: Wed, 06 Dec 2023 08:57:34 GMT x-2fa-approval: bb676aeb-7c4d-4930-bb55-ab949fd3fd87 x-2fa-approval-result: REJECTED ...other headers ``` -------------------------------- ### Example profiles#state-change Event (Schema v4.0.0) Source: https://docs.wise.com/guides/developer/webhooks/event-types This example shows the `profiles#state-change` event payload for schema version 4.0.0. It highlights the `current_state` and `occurred_at` fields, which are crucial for understanding profile status changes. ```json { "data": { "resource": { "id": 1234, "type": "profile" }, "current_state": "WITHDRAW_ONLY", "occurred_at": "2020-01-01T12:34:56.789Z" }, "event_type": "profiles#state-change", "schema_version": "4.0.0", "sent_at": "2020-01-01T12:34:56.123Z", "subscription_id": "f5b51f77-e14a-433b-9f7c-fc2834ffcff5" } ``` -------------------------------- ### Create Bank Account Details Response (200 OK) Source: https://docs.wise.com/api-reference/bank-account-details/bankaccountdetails This is an example of a successful response after creating bank account details. It includes the account ID, currency, active status, and local/international bank details. ```json { "id": "2", "currency": "GBP", "active": true, "localDetails": { "bankName": "Wise", "bankAddress": "TEA BUILDING, FLOOR 6, SHOREDITCH HIGH STREET", "sortCode": "231370", "accountNumber": "00000001", "type": "UK_ACCOUNT" }, "internationalDetails": { "bankName": "Wise", "bankAddress": "TEA BUILDING, FLOOR 6, SHOREDITCH HIGH STREET", "swiftCode": "TRWIGB22XXX", "iban": "GB123450000000001", "type": "IBAN" } } ``` -------------------------------- ### Get Wise JWT Public Key Source: https://docs.wise.com/guides/developer/auth-and-security/jose-jws.md Example cURL command to fetch the Wise JWT public key. This key is used to verify the signature of responses received from the Wise API. ```bash $ curl -i -X GET 'https://api.wise-sandbox.com/v1/auth/jwt-public-key?algorithm=ES512&scope=PAYLOAD_SIGNING' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer ' ``` -------------------------------- ### Get Deposit Limits - Response Example Source: https://docs.wise.com/api-reference/balance/balance This JSON object represents a successful response when retrieving deposit limits. It indicates whether a regulatory hold limit is in place and specifies the deposit limit amount and currency. ```json { "hasLimit": true, "depositLimit": { "amount": 2000, "currency": "SGD" } } ``` -------------------------------- ### Example partner-support#case-changed Event (Schema v4.0.0) Source: https://docs.wise.com/guides/developer/webhooks/event-types This example demonstrates the partner-support#case-changed event payload for a new case, utilizing schema version 4.0.0. It highlights the structure for case details and event information, including a more precise timestamp for occurred_at. ```json { "data": { "resource": { "case_id": 136, "case_type": "GENERAL_ENQUIRY", "details": { "transfer_id": 12345678, "user_id": 12345678, "profile_id": 12345678 }, "status": "PENDING", "type": "partner-support-case" }, "type": "NEW_CASE", "occurred_at": "2023-06-23T09:45:34.789Z" }, "subscription_id": "017631af-326c-4a69-93f3-bd1ce987a743", "event_type": "partner-support#case-changed", "schema_version": "4.0.0", "sent_at": "2023-06-23T09:45:36.123Z" } ``` -------------------------------- ### Create Unauthenticated Quote Source: https://docs.wise.com/api-reference/quote/quote Use this cURL command to get an example quote. Provide currency details and optionally a source or target amount. An Authorization header is not required unless you are a partner needing to include your specific fee. ```curl curl -i -X POST \ https://api.wise.com/v3/quotes \ -H 'Authorization: Bearer ' -H 'Content-Type: application/json' \ -H 'X-External-Correlation-Id: f47ac10b-58cc-4372-a567-0e02b2c3d479' \ -d '{ "sourceCurrency": "GBP", "targetCurrency": "USD", "sourceAmount": null, "targetAmount": 110, "pricingConfiguration": { "fee": { "type": "OVERRIDE", "variable": 0.011, "fixed": 15.42 } } }' ``` -------------------------------- ### Example profiles#cdd-check-state-change Event (EVIDENCE_REQUIRED, schema v4.0.0) Source: https://docs.wise.com/guides/developer/webhooks/event-types This example demonstrates a `profiles#cdd-check-state-change` event using schema version 4.0.0, where EVIDENCE_REQUIRED is the current state. It includes `review_outcome`, `required_evidences`, and `source_of_income`. ```json { "data": { "resource": { "type": "profile", "id": 111 }, "current_state": "EVIDENCE_REQUIRED", "review_outcome": "Document is not acceptable", "required_evidences": [ "SOURCE_OF_INCOME" ], "source_of_income": "INVESTMENTS", "occurred_at": "2020-01-01T12:34:56.789Z" }, "subscription_id": "01234567-89ab-cdef-0123-456789abcdef", "event_type": "profiles#cdd-check-state-change", "schema_version": "4.0.0", "sent_at": "2020-01-01T12:34:56.123Z" } ``` -------------------------------- ### Create a quote (unauthenticated) Source: https://docs.wise.com/api-reference.md Use this endpoint to get example quotes for users to see the exchange rate and fees Wise offers before they create or link an account. This endpoint does not require a token, but the returned quote has no ID and cannot be used to create a transfer. ```APIDOC ## POST /v3/quotes ### Description Use this endpoint to get example quotes for people to see the exchange rate and fees Wise offers before a user has created or linked an account. This can drive a version of the quote screen that shows the user what Wise offers before they sign up. Note that this endpoint does not require a token to create the resource, however, since it is just an example, the returned quote has no ID so can't be used later to create a transfer. In order to get an accurate partner fee, we require a client credentials token to be provided. If you are a partner and would like your fee to be included in the quote returned, you must provide your auth token. If not, you do not require the Authorization header. Unauthenticated quotes cannot be used to create transfers, they are meant for illustration purposes in partner interfaces only. Make sure to create an authenticated quote during the transfer creation flow. ### Method POST ### Endpoint /v3/quotes ### Parameters #### Query Parameters - **Authorization** (string) - Optional - Bearer token for partner fee calculation. ``` -------------------------------- ### Example partner-support#case-changed Event (Schema v2.0.0) Source: https://docs.wise.com/guides/developer/webhooks/event-types This example shows the structure of a partner-support#case-changed event payload when a new case is created, using schema version 2.0.0. It includes details about the case, the event type, and timestamps. ```json { "data": { "resource": { "case_id": 136, "case_type": "GENERAL_ENQUIRY", "details": { "transfer_id": 12345678, "user_id": 12345678, "profile_id": 12345678 }, "status": "PENDING", "type": "partner-support-case" }, "type": "NEW_CASE", "occurred_at": "2023-06-23T09:45:34Z" }, "subscription_id": "017631af-326c-4a69-93f3-bd1ce987a743", "event_type": "partner-support#case-changed", "schema_version": "2.0.0", "sent_at": "2023-06-23T09:45:36Z" } ``` -------------------------------- ### Get Recipient Account by ID Request Example (cURL) Source: https://docs.wise.com/api-reference/recipient/recipientAccountRequirementsGet Use this cURL command to retrieve a specific recipient account's information by its ID. Ensure you replace `{accountId}` with the actual recipient account ID and `` with your valid JWT. ```curl curl -i -X GET \ 'https://api.wise.com/v2/accounts/{accountId}' \ -H 'Authorization: Bearer ' -H 'X-External-Correlation-Id: f47ac10b-58cc-4372-a567-0e02b2c3d479' ```