Wise · Capability

Wise Platform API — balance

Wise Platform API — balance. 12 operations. Lead operation: Get account balance (v1). Self-contained Naftiko capability covering one Wise business surface.

Run with Naftiko Wisebalance

What You Can Do

GET
Balancegetv1 — Get account balance (v1)
/v1/v1/borderless-accounts
POST
Balanceconvertv1 — Convert currencies between balances (v1)
/v1/v1/borderless-accounts/{borderlessaccountid}/conversions
GET
Balancecapacity — Retrieve Deposit Limits
/v1/v1/profiles/{profileid}/balance-capacity
POST
Holdlimitbreachlist — List hold limit breaches
/v1/v1/profiles/{profileid}/balances/hold-limit-breach
POST
Holdlimitbreachclose — Close a hold limit breach
/v1/v1/profiles/{profileid}/balances/hold-limit-breach/{holdlimitbreachid}
POST
Excessmoneyaccount — Add an Excess Money Account
/v1/v1/profiles/{profileid}/excess-money-account
GET
Totalfunds — Get Total Funds
/v1/v1/profiles/{profileid}/total-funds/{currency}
POST
Balancemovement — Convert or Move Money Between Balances
/v1/v2/profiles/{profileid}/balance-movements
POST
Balancecreate — Create a Balance Account
/v1/v4/profiles/{profileid}/balances
GET
Balancelist — List Balances for a Profile
/v1/v4/profiles/{profileid}/balances
GET
Balanceget — Retrieve a Balance by ID
/v1/v4/profiles/{profileid}/balances/{balanceid}
DELETE
Balancedelete — Remove a Balance Account
/v1/v4/profiles/{profileid}/balances/{balanceid}

MCP Tools

get-account-balance-v1

Get account balance (v1)

read-only idempotent
convert-currencies-between-balances-v1

Convert currencies between balances (v1)

retrieve-deposit-limits

Retrieve Deposit Limits

read-only idempotent
list-hold-limit-breaches

List hold limit breaches

read-only
close-hold-limit-breach

Close a hold limit breach

add-excess-money-account

Add an Excess Money Account

get-total-funds

Get Total Funds

read-only idempotent
convert-move-money-between-balances

Convert or Move Money Between Balances

create-balance-account

Create a Balance Account

list-balances-profile

List Balances for a Profile

read-only idempotent
retrieve-balance-id

Retrieve a Balance by ID

read-only idempotent
remove-balance-account

Remove a Balance Account

idempotent

Capability Spec

platform-balance.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Wise Platform API — balance
  description: 'Wise Platform API — balance. 12 operations. Lead operation: Get account balance (v1). Self-contained Naftiko
    capability covering one Wise business surface.'
  tags:
  - Wise
  - balance
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    WISE_API_KEY: WISE_API_KEY
capability:
  consumes:
  - type: http
    namespace: platform-balance
    baseUri: https://api.wise.com
    description: Wise Platform API — balance business capability. Self-contained, no shared references.
    resources:
    - name: v1-borderless-accounts
      path: /v1/borderless-accounts
      operations:
      - name: balancegetv1
        method: GET
        description: Get account balance (v1)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: profileId
          in: query
          type: integer
          description: Your profile ID.
          required: true
    - name: v1-borderless-accounts-borderlessAccountId-conversions
      path: /v1/borderless-accounts/{borderlessAccountId}/conversions
      operations:
      - name: balanceconvertv1
        method: POST
        description: Convert currencies between balances (v1)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: borderlessAccountId
          in: path
          type: integer
          description: Your borderless account ID.
          required: true
        - name: X-idempotence-uuid
          in: header
          type: string
          description: 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 ma
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v1-profiles-profileId-balance-capacity
      path: /v1/profiles/{profileId}/balance-capacity
      operations:
      - name: balancecapacity
        method: GET
        description: Retrieve Deposit Limits
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: profileId
          in: path
          type: integer
          description: The profile ID.
          required: true
        - name: currency
          in: query
          type: string
          description: Currency code (ISO 4217 Alphabetic Code). The deposit limit will be returned in this currency.
          required: true
    - name: v1-profiles-profileId-balances-hold-limit-breach
      path: /v1/profiles/{profileId}/balances/hold-limit-breach
      operations:
      - name: holdlimitbreachlist
        method: POST
        description: List hold limit breaches
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: profileId
          in: path
          type: integer
          description: The profile ID.
          required: true
        - name: state
          in: query
          type: string
          description: Filter by breach state. One of `OPEN`, `CLOSED`
        - name: closingReason
          in: query
          type: string
          description: Filter by closing reason. One of `AUTOMATICALLY_RESOLVED`, `MANUALLY_RESOLVED`
    - name: v1-profiles-profileId-balances-hold-limit-breach-holdLimitBreachId
      path: /v1/profiles/{profileId}/balances/hold-limit-breach/{holdLimitBreachId}
      operations:
      - name: holdlimitbreachclose
        method: POST
        description: Close a hold limit breach
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: profileId
          in: path
          type: integer
          description: The profile ID.
          required: true
        - name: holdLimitBreachId
          in: path
          type: integer
          description: The hold limit breach ID.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v1-profiles-profileId-excess-money-account
      path: /v1/profiles/{profileId}/excess-money-account
      operations:
      - name: excessmoneyaccount
        method: POST
        description: Add an Excess Money Account
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: profileId
          in: path
          type: integer
          description: The profile ID.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v1-profiles-profileId-total-funds-currency
      path: /v1/profiles/{profileId}/total-funds/{currency}
      operations:
      - name: totalfunds
        method: GET
        description: Get Total Funds
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: profileId
          in: path
          type: integer
          description: The profile ID.
          required: true
        - name: currency
          in: path
          type: string
          description: Currency code (ISO 4217 Alphabetic Code). All values will be converted to this currency.
          required: true
    - name: v2-profiles-profileId-balance-movements
      path: /v2/profiles/{profileId}/balance-movements
      operations:
      - name: balancemovement
        method: POST
        description: Convert or Move Money Between Balances
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: profileId
          in: path
          type: integer
          description: The profile ID.
          required: true
        - name: X-idempotence-uuid
          in: header
          type: string
          description: 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 ma
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v4-profiles-profileId-balances
      path: /v4/profiles/{profileId}/balances
      operations:
      - name: balancecreate
        method: POST
        description: Create a Balance Account
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: profileId
          in: path
          type: integer
          description: The profile ID.
          required: true
        - name: X-idempotence-uuid
          in: header
          type: string
          description: 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 ma
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: balancelist
        method: GET
        description: List Balances for a Profile
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: profileId
          in: path
          type: integer
          description: The profile ID.
          required: true
        - name: types
          in: query
          type: string
          description: Comma-separated list of balance types to return. Acceptable values are `STANDARD` and `SAVINGS`.
          required: true
    - name: v4-profiles-profileId-balances-balanceId
      path: /v4/profiles/{profileId}/balances/{balanceId}
      operations:
      - name: balanceget
        method: GET
        description: Retrieve a Balance by ID
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: profileId
          in: path
          type: integer
          description: The profile ID.
          required: true
        - name: balanceId
          in: path
          type: integer
          description: The balance ID.
          required: true
      - name: balancedelete
        method: DELETE
        description: Remove a Balance Account
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: profileId
          in: path
          type: integer
          description: The profile ID.
          required: true
        - name: balanceId
          in: path
          type: integer
          description: The balance ID.
          required: true
    authentication:
      type: bearer
      token: '{{env.WISE_API_KEY}}'
  exposes:
  - type: rest
    namespace: platform-balance-rest
    port: 8080
    description: REST adapter for Wise Platform API — balance. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/v1/borderless-accounts
      name: v1-borderless-accounts
      description: REST surface for v1-borderless-accounts.
      operations:
      - method: GET
        name: balancegetv1
        description: Get account balance (v1)
        call: platform-balance.balancegetv1
        with:
          profileId: rest.profileId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/borderless-accounts/{borderlessaccountid}/conversions
      name: v1-borderless-accounts-borderlessaccountid-conversions
      description: REST surface for v1-borderless-accounts-borderlessAccountId-conversions.
      operations:
      - method: POST
        name: balanceconvertv1
        description: Convert currencies between balances (v1)
        call: platform-balance.balanceconvertv1
        with:
          borderlessAccountId: rest.borderlessAccountId
          X-idempotence-uuid: rest.X-idempotence-uuid
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/profiles/{profileid}/balance-capacity
      name: v1-profiles-profileid-balance-capacity
      description: REST surface for v1-profiles-profileId-balance-capacity.
      operations:
      - method: GET
        name: balancecapacity
        description: Retrieve Deposit Limits
        call: platform-balance.balancecapacity
        with:
          profileId: rest.profileId
          currency: rest.currency
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/profiles/{profileid}/balances/hold-limit-breach
      name: v1-profiles-profileid-balances-hold-limit-breach
      description: REST surface for v1-profiles-profileId-balances-hold-limit-breach.
      operations:
      - method: POST
        name: holdlimitbreachlist
        description: List hold limit breaches
        call: platform-balance.holdlimitbreachlist
        with:
          profileId: rest.profileId
          state: rest.state
          closingReason: rest.closingReason
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/profiles/{profileid}/balances/hold-limit-breach/{holdlimitbreachid}
      name: v1-profiles-profileid-balances-hold-limit-breach-holdlimitbreachid
      description: REST surface for v1-profiles-profileId-balances-hold-limit-breach-holdLimitBreachId.
      operations:
      - method: POST
        name: holdlimitbreachclose
        description: Close a hold limit breach
        call: platform-balance.holdlimitbreachclose
        with:
          profileId: rest.profileId
          holdLimitBreachId: rest.holdLimitBreachId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/profiles/{profileid}/excess-money-account
      name: v1-profiles-profileid-excess-money-account
      description: REST surface for v1-profiles-profileId-excess-money-account.
      operations:
      - method: POST
        name: excessmoneyaccount
        description: Add an Excess Money Account
        call: platform-balance.excessmoneyaccount
        with:
          profileId: rest.profileId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/profiles/{profileid}/total-funds/{currency}
      name: v1-profiles-profileid-total-funds-currency
      description: REST surface for v1-profiles-profileId-total-funds-currency.
      operations:
      - method: GET
        name: totalfunds
        description: Get Total Funds
        call: platform-balance.totalfunds
        with:
          profileId: rest.profileId
          currency: rest.currency
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v2/profiles/{profileid}/balance-movements
      name: v2-profiles-profileid-balance-movements
      description: REST surface for v2-profiles-profileId-balance-movements.
      operations:
      - method: POST
        name: balancemovement
        description: Convert or Move Money Between Balances
        call: platform-balance.balancemovement
        with:
          profileId: rest.profileId
          X-idempotence-uuid: rest.X-idempotence-uuid
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v4/profiles/{profileid}/balances
      name: v4-profiles-profileid-balances
      description: REST surface for v4-profiles-profileId-balances.
      operations:
      - method: POST
        name: balancecreate
        description: Create a Balance Account
        call: platform-balance.balancecreate
        with:
          profileId: rest.profileId
          X-idempotence-uuid: rest.X-idempotence-uuid
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: GET
        name: balancelist
        description: List Balances for a Profile
        call: platform-balance.balancelist
        with:
          profileId: rest.profileId
          types: rest.types
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v4/profiles/{profileid}/balances/{balanceid}
      name: v4-profiles-profileid-balances-balanceid
      description: REST surface for v4-profiles-profileId-balances-balanceId.
      operations:
      - method: GET
        name: balanceget
        description: Retrieve a Balance by ID
        call: platform-balance.balanceget
        with:
          profileId: rest.profileId
          balanceId: rest.balanceId
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: balancedelete
        description: Remove a Balance Account
        call: platform-balance.balancedelete
        with:
          profileId: rest.profileId
          balanceId: rest.balanceId
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: platform-balance-mcp
    port: 9090
    transport: http
    description: MCP adapter for Wise Platform API — balance. One tool per consumed operation, routed inline through this
      capability's consumes block.
    tools:
    - name: get-account-balance-v1
      description: Get account balance (v1)
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: platform-balance.balancegetv1
      with:
        profileId: tools.profileId
      outputParameters:
      - type: object
        mapping: $.
    - name: convert-currencies-between-balances-v1
      description: Convert currencies between balances (v1)
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: platform-balance.balanceconvertv1
      with:
        borderlessAccountId: tools.borderlessAccountId
        X-idempotence-uuid: tools.X-idempotence-uuid
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: retrieve-deposit-limits
      description: Retrieve Deposit Limits
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: platform-balance.balancecapacity
      with:
        profileId: tools.profileId
        currency: tools.currency
      outputParameters:
      - type: object
        mapping: $.
    - name: list-hold-limit-breaches
      description: List hold limit breaches
      hints:
        readOnly: true
        destructive: false
        idempotent: false
      call: platform-balance.holdlimitbreachlist
      with:
        profileId: tools.profileId
        state: tools.state
        closingReason: tools.closingReason
      outputParameters:
      - type: object
        mapping: $.
    - name: close-hold-limit-breach
      description: Close a hold limit breach
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: platform-balance.holdlimitbreachclose
      with:
        profileId: tools.profileId
        holdLimitBreachId: tools.holdLimitBreachId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: add-excess-money-account
      description: Add an Excess Money Account
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: platform-balance.excessmoneyaccount
      with:
        profileId: tools.profileId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: get-total-funds
      description: Get Total Funds
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: platform-balance.totalfunds
      with:
        profileId: tools.profileId
        currency: tools.currency
      outputParameters:
      - type: object
        mapping: $.
    - name: convert-move-money-between-balances
      description: Convert or Move Money Between Balances
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: platform-balance.balancemovement
      with:
        profileId: tools.profileId
        X-idempotence-uuid: tools.X-idempotence-uuid
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: create-balance-account
      description: Create a Balance Account
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: platform-balance.balancecreate
      with:
        profileId: tools.profileId
        X-idempotence-uuid: tools.X-idempotence-uuid
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: list-balances-profile
      description: List Balances for a Profile
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: platform-balance.balancelist
      with:
        profileId: tools.profileId
        types: tools.types
      outputParameters:
      - type: object
        mapping: $.
    - name: retrieve-balance-id
      description: Retrieve a Balance by ID
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: platform-balance.balanceget
      with:
        profileId: tools.profileId
        balanceId: tools.balanceId
      outputParameters:
      - type: object
        mapping: $.
    - name: remove-balance-account
      description: Remove a Balance Account
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: platform-balance.balancedelete
      with:
        profileId: tools.profileId
        balanceId: tools.balanceId
      outputParameters:
      - type: object
        mapping: $.