Wise address API

Manage physical addresses associated with user profiles. Address requirements vary by country — use the address requirements endpoints to dynamically discover which fields are needed before creating an address.

OpenAPI Specification

wise-address-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Wise Platform 3ds address API
  version: ''
  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: address
  x-displayName: Addresses
  description: 'Manage physical addresses associated with user profiles.


    Address requirements vary by country — use the address requirements endpoints to dynamically discover which fields are needed before creating an address.

    '
paths:
  /v1/addresses:
    post:
      tags:
      - address
      summary: Create or Update an Address
      operationId: addressCreate
      description: 'Adds address info to user profile.


        List of required fields are different for different countries. Use the [address requirements endpoint](#operation/addressRequirementsGet) to dynamically discover required fields.


        For updating personal profiles, consider using [the personal profile update endpoint](/api-reference/profile/profilepersonalupdate) instead. It allows submitting the address information alongside other profile data.


        **State field** is required for US, CA, BR, and AU addresses.


        **Occupations** is required for CA, IN, JP, ID, IL, MX, and within the US for the state NM.

        '
      security:
      - UserToken: []
      - PersonalToken: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddressRequest'
      responses:
        '200':
          description: OK - Address successfully created or updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Address'
              example:
                id: 10000001
                profile: 12345678
                details:
                  country: US
                  state: AZ
                  city: Phoenix
                  postCode: '10025'
                  firstLine: 50 Sunflower Ave
                  occupations:
                  - code: Software Engineer
                    format: FREE_FORM
          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'
      parameters:
      - $ref: '#/components/parameters/X-External-Correlation-Id'
    get:
      tags:
      - address
      summary: List Addresses for a Profile
      operationId: addressList
      description: List of addresses belonging to user profile.
      security:
      - UserToken: []
      - PersonalToken: []
      parameters:
      - name: profile
        in: query
        example: 12345678
        schema:
          type: integer
          format: int64
        description: The profile ID to list addresses for.
      - $ref: '#/components/parameters/X-External-Correlation-Id'
      responses:
        '200':
          description: OK - Successfully retrieved addresses.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Address'
              example:
              - id: 10000001
                profile: 12345678
                details:
                  country: US
                  state: AZ
                  city: Phoenix
                  postCode: '10025'
                  firstLine: 50 Sunflower Ave
                  occupations:
                  - code: Software Engineer
                    format: FREE_FORM
          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'
  /v1/addresses/{addressId}:
    get:
      tags:
      - address
      summary: Retrieve an Address by ID
      operationId: addressGet
      description: Get address info by ID.
      security:
      - UserToken: []
      - PersonalToken: []
      parameters:
      - name: addressId
        in: path
        required: true
        schema:
          type: integer
          format: int64
        description: The unique identifier of the address.
      - $ref: '#/components/parameters/X-External-Correlation-Id'
      responses:
        '200':
          description: OK - Successfully retrieved the address.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Address'
              example:
                id: 10000001
                profile: 12345678
                details:
                  country: US
                  state: AZ
                  city: Phoenix
                  postCode: '10025'
                  firstLine: 50 Sunflower Ave
                  occupations:
                  - code: Software Engineer
                    format: FREE_FORM
          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'
  /v1/address-requirements:
    get:
      tags:
      - address
      summary: Get Address Requirements
      operationId: addressRequirementsGet
      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)

        - `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](/guides/developer/api-guides/address-requirements).

        '
      security:
      - UserToken: []
      - PersonalToken: []
      responses:
        '200':
          description: OK - Successfully retrieved address requirements.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AddressRequirementsResponse'
          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'
      parameters:
      - $ref: '#/components/parameters/X-External-Correlation-Id'
    post:
      tags:
      - address
      summary: Get Address Requirements (with context)
      operationId: addressRequirementsPost
      description: 'Returns the list of fields required to create a valid address, based on the provided context.


        Use this endpoint to dynamically discover additional required fields based on selected values. For example:

        - Posting `{"details": {"country": "US"}}` will add "state" to the list of fields.

        - Posting `{"details": {"country": "CA"}}` will add "occupations" to the list of fields.


        Continue calling this endpoint with field values until all fields with `refreshRequirementsOnChange: true` have been populated.


        For a step-by-step walkthrough, see the [Address Requirements guide](/guides/developer/api-guides/address-requirements).

        '
      security:
      - UserToken: []
      - PersonalToken: []
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddressRequirementsRequest'
            example:
              details:
                country: US
      responses:
        '200':
          description: OK - Successfully retrieved address requirements.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AddressRequirementsResponse'
          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'
      parameters:
      - $ref: '#/components/parameters/X-External-Correlation-Id'
components:
  schemas:
    AddressRequirementsResponse:
      type: array
      items:
        type: object
        properties:
          type:
            type: string
            description: Always "address".
            example: address
          fields:
            type: array
            description: List of fields required for the address.
            items:
              type: object
              properties:
                name:
                  type: string
                  description: Display name of the field.
                  example: Country
                group:
                  type: array
                  items:
                    type: object
                    properties:
                      key:
                        type: string
                        description: Key name to include in the JSON request.
                        example: country
                      type:
                        type: string
                        description: Display type of field.
                        enum:
                        - text
                        - select
                        example: select
                      refreshRequirementsOnChange:
                        type: boolean
                        description: If true, call POST address-requirements when this field value changes to discover additional required fields.
                        example: true
                      required:
                        type: boolean
                        description: Indicates if the field is mandatory.
                        example: true
                      displayFormat:
                        type:
                        - string
                        - 'null'
                        description: Display format pattern.
                        example: null
                      example:
                        type: string
                        description: Example value to help users understand what to input.
                        example: Germany
                      minLength:
                        type:
                        - integer
                        - 'null'
                        format: int32
                        description: Minimum valid length of field value.
                        example: null
                      maxLength:
                        type:
                        - integer
                        - 'null'
                        format: int32
                        description: Maximum valid length of field value.
                        example: null
                      validationRegexp:
                        type:
                        - string
                        - 'null'
                        description: Regexp validation pattern.
                        example: null
                      validationAsync:
                        type:
                        - string
                        - 'null'
                        description: Deprecated. This validation will instead be performed when submitting the request.
                        deprecated: true
                        example: null
                      valuesAllowed:
                        type: array
                        description: List of allowed values (for select fields).
                        example:
                        - key: US
                          name: United States
                        - key: GB
                          name: United Kingdom
                        items:
                          type: object
                          properties:
                            key:
                              type: string
                              description: Value key to use in the request.
                            name:
                              type: string
                              description: Display name for the value.
    AddressRequirementsRequest:
      type: object
      description: Request body for retrieving address requirements based on context.
      required:
      - details
      properties:
        profile:
          type: integer
          format: int64
          description: User profile ID.
          example: 12345678
        details:
          type: object
          description: Address details to provide context for requirements lookup. Additional fields beyond those listed are accepted.
          required:
          - country
          properties:
            country:
              type: string
              description: Country code (ISO 3166-2 Country Code).
              example: US
            state:
              type: string
              description: State code. Provide to discover state-dependent fields.
              example: AZ
          additionalProperties:
            type: string
            description: Any other properties to provide context for the requirements lookup.
    Address:
      type: object
      x-tags:
      - address
      description: Represents a physical address associated with a profile.
      properties:
        id:
          type: integer
          format: int64
          description: Address ID.
          example: 10000001
        profile:
          type: integer
          format: int64
          description: User profile ID.
          example: 12345678
        details:
          type: object
          description: Address details.
          properties:
            country:
              type: string
              description: Country code (ISO 3166-2 Country Code).
              example: US
            firstLine:
              type: string
              description: 'Address line: street, house, apartment.'
              example: 50 Sunflower Ave
            postCode:
              type: string
              description: Postal or zip code (max 30 characters).
              maxLength: 30
              example: '10025'
            city:
              type: string
              description: City name.
              example: Phoenix
            state:
              type: string
              description: State code. Required if country is US, CA, BR, or AU.
              example: AZ
            occupations:
              type: array
              description: User occupations. Required for CA, IN, JP, ID, IL, MX, and within the US for state NM.
              items:
                type: object
                properties:
                  code:
                    type: string
                    description: User occupation - any value permitted.
                    example: Software Engineer
                  format:
                    type: string
                    description: Occupation type - always `FREE_FORM`.
                    enum:
                    - FREE_FORM
                    example: FREE_FORM
    AddressRequest:
      type: object
      description: Request payload for creating or updating an address.
      required:
      - profile
      - details
      properties:
        profile:
          type: integer
          format: int64
          description: User profile ID.
          example: 12345678
        details:
          type: object
          description: Address details.
          required:
          - country
          - firstLine
          - postCode
          - city
          properties:
            country:
              type: string
              description: Country code (ISO 3166-1 alpha-2).
              example: US
            firstLine:
              type: string
              description: 'Address line: street, house, apartment.'
              example: 50 Sunflower Ave
            postCode:
              type: string
              description: Postal / zip code (max 30 characters).
              maxLength: 30
              example: '10025'
            city:
              type: string
              description: City name.
              example: Phoenix
            state:
              type: string
              description: State code. Required if country is US, CA, BR, or AU.
              example: AZ
            occupations:
              type: array
              description: User occupations. Required for CA, IN, JP, ID, IL, MX, and within the US for state NM.
              items:
                type: object
                properties:
                  code:
                    type: string
                    description: User occupation - any value permitted.
                    example: Software Engineer
                  format:
                    type: string
                    description: Occupation type - always `FREE_FORM`.
                    enum:
                    - FREE_FORM
                    example: FREE_FORM
  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