Wise direct-debit-account API

Register and retrieve external bank accounts used to fund batch transfers via ACH (USD) or EFT (CAD) direct debit.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/wise-direct-debit-account-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

wise-direct-debit-account-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Wise Platform 3ds direct-debit-account API
  version: "1.0"
  description: "The Wise Platform API is a REST-based interface that enables programmatic access to Wise's payment infrastructure. All endpoints return JSON-formatted responses and use standard HTTP methods and status codes.\n{% admonition type=\"success\" name=\"New to wise?\" %}\n  We strongly recommend first reading our **[Getting Started Guide](/guides/developer/index.md)** to help you set up credentials and make your first call.\n{% /admonition %}\n\nBefore you begin {% .title-2 .m-t-5 %}\n\nTo use this API reference effectively, you should have:\n\n- Received Valid [API credentials from Wise](/guides/developer/auth-and-security/index.md) (Client ID and Client Secret)\n- Understand OAuth 2.0 authentication\n- Be familiar with RESTful API concepts\n\nCore API resources {% .title-2 .m-t-5 .m-b-0 %}\n\n| Resource | Purpose |\n|----------|---------|\n| **[Quote](/api-reference/quote)** | Exchange rate and fee calculations |\n| **[Recipient](/api-reference/recipient)** | Beneficiary account management |\n| **[Transfer](/api-reference/transfer)** | Payment creation and execution |\n| **[Balance](/api-reference/balance)** | Multi-currency account operations |\n| **[Profile](/api-reference/profile)** | Account ownership details |\n| **[Rate](/api-reference/rate)** | Current and historical exchange rates |\n\n**Not sure which workflow to build?**<br>\nStart with our [Integration Guides](/guides/product/send-money/use-cases/index.md) for step-by-step implementation examples.{% .m-t-3 .m-b-5 %}\n"
servers:
- url: https://api.wise.com
  description: Production Environment
- url: https://api.wise-sandbox.com
  description: Sandbox Environment
tags:
- name: direct-debit-account
  x-displayName: Direct Debit Account
  description: 'Register and retrieve external bank accounts used to fund batch transfers via ACH (USD) or EFT (CAD) direct debit.

    '
paths:
  /v1/profiles/{profileId}/direct-debit-accounts:
    post:
      operationId: directDebitAccountCreate
      summary: Create a direct debit account
      description: 'Register a new external bank account for funding batch transfers via direct debit.

        '
      tags:
      - direct-debit-account
      security:
      - UserToken: []
      parameters:
      - name: profileId
        in: path
        required: true
        description: Your profile ID.
        schema:
          type: integer
          format: int64
        example: 12345678
      - $ref: '#/components/parameters/X-External-Correlation-Id'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                currency:
                  type: string
                  description: Currency of the bank account. 3-character currency code — `USD` for ACH direct debits, `CAD` for EFT direct debits.
                  example: USD
                type:
                  type: string
                  description: 'Payment type for which the account is used.


                    - `ACH` — US direct debit (USD)

                    - `EFT` — CA direct debit (CAD)

                    '
                  enum:
                  - ACH
                  - EFT
                  example: ACH
                details:
                  type: object
                  description: Bank account details.
                  properties:
                    routingNumber:
                      type: string
                      description: A valid ABA routing number. For CAD direct debits, the routing number is a combination of an institution number + transit number.
                      example: '000000000'
                    accountNumber:
                      type: string
                      description: A valid bank account number.
                      example: '0000000000'
                    accountType:
                      type: string
                      description: 'Bank account type.


                        - `CHECKING` — Checking account (USD, CAD)

                        - `SAVINGS` — Savings account (USD, CAD)

                        '
                      enum:
                      - CHECKING
                      - SAVINGS
                      example: CHECKING
      responses:
        '200':
          description: Direct debit account created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DirectDebitAccount'
          headers:
            X-External-Correlation-Id:
              $ref: '#/components/headers/X-External-Correlation-Id'
            x-trace-id:
              $ref: '#/components/headers/x-trace-id'
        '429':
          $ref: '#/components/responses/429'
    get:
      operationId: directDebitAccountGet
      summary: Retrieve all direct debit accounts
      description: 'Get a list of your direct debit accounts. Use the `type` and `currency` query parameters to filter accounts.

        '
      tags:
      - direct-debit-account
      security:
      - UserToken: []
      parameters:
      - name: profileId
        in: path
        required: true
        description: Your profile ID.
        schema:
          type: integer
          format: int64
        example: 12345678
      - name: type
        in: query
        required: true
        description: 'Payment type for which the account is used.


          - `ACH` — US direct debit (USD)

          - `EFT` — CA direct debit (CAD)

          '
        schema:
          type: string
          enum:
          - ACH
          - EFT
        example: ACH
      - name: currency
        in: query
        required: true
        description: Currency of the bank account. 3-character currency code — `USD` for ACH direct debits, `CAD` for EFT direct debits.
        schema:
          type: string
        example: USD
      - $ref: '#/components/parameters/X-External-Correlation-Id'
      responses:
        '200':
          description: List of direct debit accounts matching the filters.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DirectDebitAccount'
          headers:
            X-External-Correlation-Id:
              $ref: '#/components/headers/X-External-Correlation-Id'
            x-trace-id:
              $ref: '#/components/headers/x-trace-id'
        '429':
          $ref: '#/components/responses/429'
components:
  schemas:
    DirectDebitAccount:
      title: Direct Debit Account
      type: object
      properties:
        id:
          type: integer
          format: int64
          description: Direct debit account ID
          example: 1
        currency:
          type: string
          description: Currency of the bank account. 3-character currency code — `USD` for ACH, `CAD` for EFT
          example: USD
        type:
          type: string
          description: 'Payment type for which the account is used.


            - `ACH` — US direct debit (USD)

            - `EFT` — CA direct debit (CAD)

            '
          enum:
          - ACH
          - EFT
          example: ACH
        details:
          type: object
          description: Bank account details
          properties:
            routingNumber:
              type: string
              description: A valid ABA routing number. For CAD direct debits, the routing number is a combination of an institution number + transit number
              example: '000000000'
            accountNumber:
              type: string
              description: A valid bank account number
              example: '0000000000'
            accountType:
              type: string
              description: 'Bank account type.


                - `CHECKING` — Checking account (USD, CAD)

                - `SAVINGS` — Savings account (USD, CAD)

                '
              enum:
              - CHECKING
              - SAVINGS
              example: CHECKING
  parameters:
    X-External-Correlation-Id:
      x-global: true
      name: X-External-Correlation-Id
      in: header
      required: false
      description: 'Optional UUID for correlating requests across systems. If provided, Wise echoes it back in the response. Maximum 36 characters. [Learn more](/guides/developer/headers/correlation-id).

        '
      schema:
        type: string
        format: uuid
        maxLength: 36
      example: f47ac10b-58cc-4372-a567-0e02b2c3d479
  headers:
    X-External-Correlation-Id:
      x-global: true
      description: Echoed back when `X-External-Correlation-Id` was included in the request. [Learn more](/guides/developer/headers/correlation-id).
      schema:
        type: string
        format: uuid
        maxLength: 36
      example: f47ac10b-58cc-4372-a567-0e02b2c3d479
    x-trace-id:
      x-global: true
      description: Unique trace identifier assigned by Wise. Useful when contacting support about a specific request.
      schema:
        type: string
      example: fba501b6d453b96789f52338f019341f
  responses:
    '429':
      x-global: true
      description: Rate limit exceeded. Retry after the number of seconds specified in the `Retry-After` header.
      headers:
        Retry-After:
          description: Number of seconds to wait before retrying the request.
          schema:
            type: integer
          example: 5
        X-Rate-Limited-By:
          description: Identifies the rate limiter that triggered the 429 response.
          schema:
            type: string
          example: wise-public-api
        X-External-Correlation-Id:
          $ref: '#/components/headers/X-External-Correlation-Id'
        x-trace-id:
          $ref: '#/components/headers/x-trace-id'
      content:
        application/json:
          schema:
            type: object
  securitySchemes:
    UserToken:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: 'User Access Token for making API calls on behalf of a Wise user.


        Can be obtained via two OAuth 2.0 flows:

        - **registration_code grant**: For partners creating users via API

        - **authorization_code grant**: For partners using Wise''s authorization page


        Access tokens are valid for 12 hours and can be refreshed using a refresh token.

        '
    PersonalToken:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: 'Personal API Token for individual personal or small business users.

        Generated from Wise.com > Settings > Connect and manage apps > API tokens.

        Has limited API access compared to OAuth tokens (PSD2 restrictions apply for EU/UK users).

        '
    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.


        Obtained via `POST /oauth/token` with Basic Authentication (client-id:client-secret) and `grant_type=client_credentials`.


        Valid for 12 hours. No refresh token — fetch a new token when expired.


        See [create an OAuth token](/api-reference/oauth-token/oauthtokencreate) for details.

        '
    BasicAuth:
      type: http
      scheme: basic
      description: 'Basic Authentication using your Client ID and Client Secret as the username and password.


        Client credentials are provided by Wise when your partnership begins. See [Getting Started](/guides/developer) for details.

        '
x-tagGroups:
- name: Authentication
  tags:
  - oauth-token
- name: Enhanced Security
  tags:
  - jose
- name: Users
  tags:
  - user
  - claim-account
- name: Profiles
  tags:
  - profile
  - activity
  - address
- name: Verification
  tags:
  - kyc-review
  - verification
  - facetec
- name: Strong Customer Authentication
  tags:
  - sca-ott
  - sca-sessions
  - sca-pin
  - sca-facemaps
  - sca-device-fingerprints
  - sca-otp
  - user-security
- name: Balances
  tags:
  - balance
  - balance-statement
  - bank-account-details
  - multi-currency-account
- name: Cards
  tags:
  - card
  - card-sensitive-details
  - 3ds
  - card-kiosk-collection
  - card-order
  - card-transaction
  - spend-limits
  - spend-controls
  - digital-wallet
  - disputes
- name: Quotes
  tags:
  - quote
  - rate
  - comparison
- name: Recipients
  tags:
  - recipient
  - contact
- name: Transfers
  tags:
  - transfer
  - delivery-estimate
  - currencies
  - batch-group
- name: Funding
  tags:
  - payin-deposit-detail
  - direct-debit-account
  - bulk-settlement
  - payins
- name: Webhooks
  tags:
  - webhook
  - webhook-event
- name: Simulations
  tags:
  - simulation
- name: Partner Support
  tags:
  - case