API

PaymentInstrument

A payment instrument: create, get or confirm one, or list its payins.

Operations

Every route this entity exposes. Each route links to its own reference on this page.

Method Route SDK operation Returns
POST /profiles/{profileId}/payment-instruments/{paymentInstrumentId}/manual-confirmation create OK
POST /profiles/{profileId}/payment-instruments create OK
GET /profiles/{profileId}/payment-instruments/{paymentInstrumentId}/payins list OK
GET /profiles/{profileId}/payment-instruments/{paymentInstrumentId} load OK

Examples

One example per SDK, generated from the API model. The argument names are the parameters and fields of this entity, and the values are placeholders. The examples are not compiled or executed.

Golang

Construct client as shown in the Golang setup, then call the operations:

payment_instruments, err := client.PaymentInstrument(nil).List(map[string]any{"id": "example_id", "profile_id": 1}, nil)
if err != nil {
    panic(err)
}
fmt.Println(payment_instruments)
payment_instrument, err := client.PaymentInstrument(nil).Load(map[string]any{"id": "example_id", "profile_id": 1}, nil)
if err != nil {
    panic(err)
}
fmt.Println(payment_instrument)
created, err := client.PaymentInstrument(nil).Create(map[string]any{"profile_id": 1, "accountNumber": "example", "type": "example"}, nil)
if err != nil {
    panic(err)
}
fmt.Println(created)

Lua

Construct client as shown in the Lua setup, then call the operations:

local payment_instruments, err = client:PaymentInstrument():list({ id = "example_id", profile_id = 1 })
local payment_instrument, err = client:PaymentInstrument():load({ id = "example_id", profile_id = 1 })
local created, err = client:PaymentInstrument():create({ profile_id = 1, accountNumber = "example", type = "example" })

PHP

Construct client as shown in the PHP setup, then call the operations:

$payment_instruments = $client->PaymentInstrument()->list(["id" => "example_id", "profile_id" => 1]);
$payment_instrument = $client->PaymentInstrument()->load(["id" => "example_id", "profile_id" => 1]);
$created = $client->PaymentInstrument()->create(["profile_id" => 1, "accountNumber" => "example", "type" => "example"]);

Python

Construct client as shown in the Python setup, then call the operations:

payment_instruments = client.PaymentInstrument().list({"id": "example_id", "profile_id": 1})
payment_instrument = client.PaymentInstrument().load({"id": "example_id", "profile_id": 1})
created = client.PaymentInstrument().create({ "profile_id": 1, "accountNumber": "example", "type": "example" })

Ruby

Construct client as shown in the Ruby setup, then call the operations:

payment_instruments = client.PaymentInstrument.list({ "id" => "example_id", "profile_id" => 1 })
payment_instrument = client.PaymentInstrument.load({ "id" => "example_id", "profile_id" => 1 })
created = client.PaymentInstrument.create({ "profile_id" => 1, "accountNumber" => "example", "type" => "example" })

TypeScript

Construct client as shown in the TypeScript setup, then call the operations:

const payment_instruments = await client.PaymentInstrument().list({ id: "example_id", profile_id: 1 })
const payment_instrument = await client.PaymentInstrument().load({ id: "example_id", profile_id: 1 })
const created = await client.PaymentInstrument().create({ profile_id: 1, accountNumber: "example", type: "example" })

Fields

Field Type Required Description
accountHolderName string No Account Holder Name
accountNumber string No Account Number
accountOwnerDetails object No Account Owner Details
accountType string No Account Type
bankCode string No Bank Code
bankName string No Bank Name
branchCode string No Branch Code
disconnectReason string No Disconnect Reason
id string No Id
reference string No Reference
status string No Status
type string No Type

create

POST /profiles/{profileId}/payment-instruments/{paymentInstrumentId}/manual-confirmation

Operation ID: paymentInstrumentConfirm.

Authentication: bearer token (UserToken).

Parameters

Parameter In Type Required Description
profileId path integer (int64) Yes
paymentInstrumentId path string Yes
X-External-Correlation-Id header string (uuid) No Optional UUID for correlating requests across systems. If provided, Wise echoes it back in the response. Maximum 36 characters. Learn more.

Responses

200: OK

application/json

Property Type Required Description
accountNumber string No
accountOwnerDetails object No
accountOwnerDetails.city string No
accountOwnerDetails.companyName string No
accountOwnerDetails.country string No
accountOwnerDetails.firstLine string No
accountOwnerDetails.postCode string No
accountOwnerDetails.state string No
bankCode string No
bankName string No
branchCode string No
disconnectReason string No
id string (uuid) No
reference string No
status string No
type string No
429: Rate limit exceeded. Retry after the number of seconds specified in the Retry-After header

application/json

The response is object.

POST /profiles/{profileId}/payment-instruments

Operation ID: paymentInstrumentsCreate.

Authentication: bearer token (UserToken).

Parameters

Parameter In Type Required Description
profileId path integer (int64) Yes
X-External-Correlation-Id header string (uuid) No Optional UUID for correlating requests across systems. If provided, Wise echoes it back in the response. Maximum 36 characters. Learn more.

Request body

application/json

Property Type Required Description
accountHolderName string No
accountNumber string Yes
accountOwnerDetails object No
accountOwnerDetails.address object No
accountOwnerDetails.address.addressFirstLine string No
accountOwnerDetails.address.city string No
accountOwnerDetails.address.country string No
accountOwnerDetails.address.postCode string No
accountOwnerDetails.address.state string No
accountOwnerDetails.email string (email) No
accountType string No
bankCode string No
branchCode string No
reference string No
type string Yes

Responses

200: OK

application/json

Property Type Required Description
accountNumber string No
accountOwnerDetails object No
accountOwnerDetails.city string No
accountOwnerDetails.companyName string No
accountOwnerDetails.country string No
accountOwnerDetails.firstLine string No
accountOwnerDetails.postCode string No
accountOwnerDetails.state string No
bankCode string No
bankName string No
branchCode string No
disconnectReason string No
id string (uuid) No
reference string No
status string No
type string No
429: Rate limit exceeded. Retry after the number of seconds specified in the Retry-After header

application/json

The response is object.

list

GET /profiles/{profileId}/payment-instruments/{paymentInstrumentId}/payins

Operation ID: paymentInstrumentGetAllPayins.

Authentication: bearer token (UserToken).

Parameters

Parameter In Type Required Description
profileId path integer (int64) Yes
paymentInstrumentId path string Yes
X-External-Correlation-Id header string (uuid) No Optional UUID for correlating requests across systems. If provided, Wise echoes it back in the response. Maximum 36 characters. Learn more.

Responses

200: OK

application/json

Property Type Required Description
payins array of object No
payins[].amount number No
payins[].currency string No
payins[].failureReason string No
payins[].id string No
payins[].payinSessionId string No
payins[].paymentInstrumentId string No
payins[].reference string No
payins[].status string No
429: Rate limit exceeded. Retry after the number of seconds specified in the Retry-After header

application/json

The response is object.

load

GET /profiles/{profileId}/payment-instruments/{paymentInstrumentId}

Operation ID: paymentInstrumentsGet.

Authentication: bearer token (UserToken).

Parameters

Parameter In Type Required Description
profileId path integer (int64) Yes
paymentInstrumentId path string Yes
X-External-Correlation-Id header string (uuid) No Optional UUID for correlating requests across systems. If provided, Wise echoes it back in the response. Maximum 36 characters. Learn more.

Responses

200: OK

application/json

Property Type Required Description
accountNumber string No
accountOwnerDetails object No
accountOwnerDetails.city string No
accountOwnerDetails.companyName string No
accountOwnerDetails.country string No
accountOwnerDetails.firstLine string No
accountOwnerDetails.postCode string No
accountOwnerDetails.state string No
bankCode string No
bankName string No
branchCode string No
disconnectReason string No
id string (uuid) No
reference string No
status string No
type string No
429: Rate limit exceeded. Retry after the number of seconds specified in the Retry-After header

application/json

The response is object.