Wise · Capability

Wise Platform API — sca-otp

Wise Platform API — sca-otp. 8 operations. Lead operation: Create Phone Number. Self-contained Naftiko capability covering one Wise business surface.

Run with Naftiko Wisesca-otp

What You Can Do

POST
Usersecurityphonenumbercreate — Create Phone Number
/v1/v1/application/users/{userid}/phone-numbers
DELETE
Usersecurityphonenumberdelete — Delete Phone Number
/v1/v1/application/users/{userid}/phone-numbers/{phonenumberid}
POST
Ottsmstrigger — Trigger SMS Challenge
/v1/v1/one-time-token/sms/trigger
POST
Ottsmsverify — Verify SMS Challenge
/v1/v1/one-time-token/sms/verify
POST
Ottvoicetrigger — Trigger Voice Challenge
/v1/v1/one-time-token/voice/trigger
POST
Ottvoiceverify — Verify Voice Challenge
/v1/v1/one-time-token/voice/verify
POST
Ottwhatsapptrigger — Trigger WhatsApp Challenge
/v1/v1/one-time-token/whatsapp/trigger
POST
Ottwhatsappverify — Verify WhatsApp Challenge
/v1/v1/one-time-token/whatsapp/verify

MCP Tools

create-phone-number

Create Phone Number

delete-phone-number

Delete Phone Number

idempotent
trigger-sms-challenge

Trigger SMS Challenge

verify-sms-challenge

Verify SMS Challenge

trigger-voice-challenge

Trigger Voice Challenge

verify-voice-challenge

Verify Voice Challenge

trigger-whatsapp-challenge

Trigger WhatsApp Challenge

verify-whatsapp-challenge

Verify WhatsApp Challenge

Capability Spec

platform-sca-otp.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Wise Platform API — sca-otp
  description: 'Wise Platform API — sca-otp. 8 operations. Lead operation: Create Phone Number. Self-contained Naftiko capability
    covering one Wise business surface.'
  tags:
  - Wise
  - sca-otp
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    WISE_API_KEY: WISE_API_KEY
capability:
  consumes:
  - type: http
    namespace: platform-sca-otp
    baseUri: https://api.wise.com
    description: Wise Platform API — sca-otp business capability. Self-contained, no shared references.
    resources:
    - name: v1-application-users-userId-phone-numbers
      path: /v1/application/users/{userId}/phone-numbers
      operations:
      - name: usersecurityphonenumbercreate
        method: POST
        description: Create Phone Number
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: userId
          in: path
          type: integer
          description: User ID.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v1-application-users-userId-phone-numbers-phoneNumberId
      path: /v1/application/users/{userId}/phone-numbers/{phoneNumberId}
      operations:
      - name: usersecurityphonenumberdelete
        method: DELETE
        description: Delete Phone Number
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: userId
          in: path
          type: integer
          description: User ID.
          required: true
        - name: phoneNumberId
          in: path
          type: integer
          description: ID of a phone number.
          required: true
    - name: v1-one-time-token-sms-trigger
      path: /v1/one-time-token/sms/trigger
      operations:
      - name: ottsmstrigger
        method: POST
        description: Trigger SMS Challenge
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: One-Time-Token
          in: header
          type: string
          description: Text value of a OTT.
          required: true
    - name: v1-one-time-token-sms-verify
      path: /v1/one-time-token/sms/verify
      operations:
      - name: ottsmsverify
        method: POST
        description: Verify SMS Challenge
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: One-Time-Token
          in: header
          type: string
          description: Text value of a OTT.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v1-one-time-token-voice-trigger
      path: /v1/one-time-token/voice/trigger
      operations:
      - name: ottvoicetrigger
        method: POST
        description: Trigger Voice Challenge
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: One-Time-Token
          in: header
          type: string
          description: Text value of a OTT.
          required: true
    - name: v1-one-time-token-voice-verify
      path: /v1/one-time-token/voice/verify
      operations:
      - name: ottvoiceverify
        method: POST
        description: Verify Voice Challenge
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: One-Time-Token
          in: header
          type: string
          description: Text value of a OTT.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v1-one-time-token-whatsapp-trigger
      path: /v1/one-time-token/whatsapp/trigger
      operations:
      - name: ottwhatsapptrigger
        method: POST
        description: Trigger WhatsApp Challenge
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: One-Time-Token
          in: header
          type: string
          description: Text value of a OTT.
          required: true
    - name: v1-one-time-token-whatsapp-verify
      path: /v1/one-time-token/whatsapp/verify
      operations:
      - name: ottwhatsappverify
        method: POST
        description: Verify WhatsApp Challenge
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: One-Time-Token
          in: header
          type: string
          description: Text value of a OTT.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    authentication:
      type: bearer
      token: '{{env.WISE_API_KEY}}'
  exposes:
  - type: rest
    namespace: platform-sca-otp-rest
    port: 8080
    description: REST adapter for Wise Platform API — sca-otp. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/v1/application/users/{userid}/phone-numbers
      name: v1-application-users-userid-phone-numbers
      description: REST surface for v1-application-users-userId-phone-numbers.
      operations:
      - method: POST
        name: usersecurityphonenumbercreate
        description: Create Phone Number
        call: platform-sca-otp.usersecurityphonenumbercreate
        with:
          userId: rest.userId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/application/users/{userid}/phone-numbers/{phonenumberid}
      name: v1-application-users-userid-phone-numbers-phonenumberid
      description: REST surface for v1-application-users-userId-phone-numbers-phoneNumberId.
      operations:
      - method: DELETE
        name: usersecurityphonenumberdelete
        description: Delete Phone Number
        call: platform-sca-otp.usersecurityphonenumberdelete
        with:
          userId: rest.userId
          phoneNumberId: rest.phoneNumberId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/one-time-token/sms/trigger
      name: v1-one-time-token-sms-trigger
      description: REST surface for v1-one-time-token-sms-trigger.
      operations:
      - method: POST
        name: ottsmstrigger
        description: Trigger SMS Challenge
        call: platform-sca-otp.ottsmstrigger
        with:
          One-Time-Token: rest.One-Time-Token
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/one-time-token/sms/verify
      name: v1-one-time-token-sms-verify
      description: REST surface for v1-one-time-token-sms-verify.
      operations:
      - method: POST
        name: ottsmsverify
        description: Verify SMS Challenge
        call: platform-sca-otp.ottsmsverify
        with:
          One-Time-Token: rest.One-Time-Token
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/one-time-token/voice/trigger
      name: v1-one-time-token-voice-trigger
      description: REST surface for v1-one-time-token-voice-trigger.
      operations:
      - method: POST
        name: ottvoicetrigger
        description: Trigger Voice Challenge
        call: platform-sca-otp.ottvoicetrigger
        with:
          One-Time-Token: rest.One-Time-Token
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/one-time-token/voice/verify
      name: v1-one-time-token-voice-verify
      description: REST surface for v1-one-time-token-voice-verify.
      operations:
      - method: POST
        name: ottvoiceverify
        description: Verify Voice Challenge
        call: platform-sca-otp.ottvoiceverify
        with:
          One-Time-Token: rest.One-Time-Token
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/one-time-token/whatsapp/trigger
      name: v1-one-time-token-whatsapp-trigger
      description: REST surface for v1-one-time-token-whatsapp-trigger.
      operations:
      - method: POST
        name: ottwhatsapptrigger
        description: Trigger WhatsApp Challenge
        call: platform-sca-otp.ottwhatsapptrigger
        with:
          One-Time-Token: rest.One-Time-Token
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/one-time-token/whatsapp/verify
      name: v1-one-time-token-whatsapp-verify
      description: REST surface for v1-one-time-token-whatsapp-verify.
      operations:
      - method: POST
        name: ottwhatsappverify
        description: Verify WhatsApp Challenge
        call: platform-sca-otp.ottwhatsappverify
        with:
          One-Time-Token: rest.One-Time-Token
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: platform-sca-otp-mcp
    port: 9090
    transport: http
    description: MCP adapter for Wise Platform API — sca-otp. One tool per consumed operation, routed inline through this
      capability's consumes block.
    tools:
    - name: create-phone-number
      description: Create Phone Number
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: platform-sca-otp.usersecurityphonenumbercreate
      with:
        userId: tools.userId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-phone-number
      description: Delete Phone Number
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: platform-sca-otp.usersecurityphonenumberdelete
      with:
        userId: tools.userId
        phoneNumberId: tools.phoneNumberId
      outputParameters:
      - type: object
        mapping: $.
    - name: trigger-sms-challenge
      description: Trigger SMS Challenge
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: platform-sca-otp.ottsmstrigger
      with:
        One-Time-Token: tools.One-Time-Token
      outputParameters:
      - type: object
        mapping: $.
    - name: verify-sms-challenge
      description: Verify SMS Challenge
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: platform-sca-otp.ottsmsverify
      with:
        One-Time-Token: tools.One-Time-Token
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: trigger-voice-challenge
      description: Trigger Voice Challenge
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: platform-sca-otp.ottvoicetrigger
      with:
        One-Time-Token: tools.One-Time-Token
      outputParameters:
      - type: object
        mapping: $.
    - name: verify-voice-challenge
      description: Verify Voice Challenge
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: platform-sca-otp.ottvoiceverify
      with:
        One-Time-Token: tools.One-Time-Token
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: trigger-whatsapp-challenge
      description: Trigger WhatsApp Challenge
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: platform-sca-otp.ottwhatsapptrigger
      with:
        One-Time-Token: tools.One-Time-Token
      outputParameters:
      - type: object
        mapping: $.
    - name: verify-whatsapp-challenge
      description: Verify WhatsApp Challenge
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: platform-sca-otp.ottwhatsappverify
      with:
        One-Time-Token: tools.One-Time-Token
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.