API

Subscription

A webhook subscription, for an application or a profile.

Operations

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

Method Route SDK operation Returns
POST /applications/{clientKey}/subscriptions create OK
POST /profiles/{profileId}/subscriptions create OK
GET /applications/{clientKey}/subscriptions list OK
GET /profiles/{profileId}/subscriptions list OK
GET /applications/{clientKey}/subscriptions/{subscriptionId} load OK
GET /profiles/{profileId}/subscriptions/{subscriptionId} load OK
DELETE /applications/{clientKey}/subscriptions/{subscriptionId} remove No Content
DELETE /profiles/{profileId}/subscriptions/{subscriptionId} remove No Content

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:

subscriptions, err := client.Subscription(nil).List(map[string]any{"client_key": "example"}, nil)
if err != nil {
    panic(err)
}
fmt.Println(subscriptions)
subscription, err := client.Subscription(nil).Load(map[string]any{"client_key": "example", "id": "example_id"}, nil)
if err != nil {
    panic(err)
}
fmt.Println(subscription)
created, err := client.Subscription(nil).Create(map[string]any{"client_key": "example", "delivery": map[string]any{}, "name": "example", "trigger_on": "example"}, nil)
if err != nil {
    panic(err)
}
fmt.Println(created)
removed, err := client.Subscription(nil).Remove(map[string]any{"client_key": "example", "id": "example_id"}, nil)
if err != nil {
    panic(err)
}
fmt.Println(removed)

Lua

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

local subscriptions, err = client:Subscription():list({ client_key = "example" })
local subscription, err = client:Subscription():load({ client_key = "example", id = "example_id" })
local created, err = client:Subscription():create({ client_key = "example", delivery = {}, name = "example", trigger_on = "example" })
local removed, err = client:Subscription():remove({ client_key = "example", id = "example_id" })

PHP

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

$subscriptions = $client->Subscription()->list(["client_key" => "example"]);
$subscription = $client->Subscription()->load(["client_key" => "example", "id" => "example_id"]);
$created = $client->Subscription()->create(["client_key" => "example", "delivery" => [], "name" => "example", "trigger_on" => "example"]);
$client->Subscription()->remove(["client_key" => "example", "id" => "example_id"]);

Python

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

subscriptions = client.Subscription().list({"client_key": "example"})
subscription = client.Subscription().load({"client_key": "example", "id": "example_id"})
created = client.Subscription().create({ "client_key": "example", "delivery": {}, "name": "example", "trigger_on": "example" })
client.Subscription().remove({"client_key": "example", "id": "example_id"})

Ruby

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

subscriptions = client.Subscription.list({ "client_key" => "example" })
subscription = client.Subscription.load({ "client_key" => "example", "id" => "example_id" })
created = client.Subscription.create({ "client_key" => "example", "delivery" => {}, "name" => "example", "trigger_on" => "example" })
client.Subscription.remove({ "client_key" => "example", "id" => "example_id" })

TypeScript

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

const subscriptions = await client.Subscription().list({ client_key: "example" })
const subscription = await client.Subscription().load({ client_key: "example", id: "example_id" })
const created = await client.Subscription().create({ client_key: "example", delivery: {}, name: "example", trigger_on: "example" })
await client.Subscription().remove({ client_key: "example", id: "example_id" })

Fields

Field Type Required Description
created_at string No Timestamp of when the subscription was created.
created_by object No Created By
delivery object No Delivery
id string No UUID that uniquely identifies the subscription.
name string No A custom name for your webhook to ease with identification.
scope object No Scope
trigger_on string No The event type this subscription is listening for.

create

POST /applications/{clientKey}/subscriptions

Operation ID: webhookApplicationSubscriptionCreate.

Authentication: bearer token (ClientCredentialsToken).

Parameters

Parameter In Type Required Description
clientKey path string Yes Your application's client key.
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
delivery object Yes
delivery.url string Yes The URL where your server will be listening for events.
delivery.version string Yes The event representation semantic version.
name string Yes A custom name for your webhook to ease with identification.
trigger_on string Yes Choose from a list of available events.

Responses

200: OK

application/json

Property Type Required Description
created_at string (date-time) No Timestamp of when the subscription was created.
created_by object No
created_by.id string No ID of the creator.
created_by.type string No Creator type (for example "application" or "user").
delivery object No
delivery.url string No The URL where your server will be listening for events.
delivery.version string No The event representation semantic version.
id string (uuid) No UUID that uniquely identifies the subscription.
name string No A custom name for your webhook to ease with identification.
scope object No
scope.domain string No Scope of this subscription (for example "application" or "profile").
scope.id string No ID associated with the scope (client key or profile ID).
trigger_on string No The event type this subscription is listening for. List of available events.
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}/subscriptions

Operation ID: webhookProfileSubscriptionCreate.

Authentication: bearer token (UserToken).

Parameters

Parameter In Type Required Description
profileId path integer (int64) Yes ID of the profile you are subscribing to.
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
delivery object Yes
delivery.url string Yes The URL where your server will be listening for events.
delivery.version string Yes The event representation semantic version.
name string Yes A custom name for your webhook to ease with identification.
trigger_on string Yes Choose from a list of available events.

Responses

200: OK

application/json

Property Type Required Description
created_at string (date-time) No Timestamp of when the subscription was created.
created_by object No
created_by.id string No ID of the creator.
created_by.type string No Creator type (for example "application" or "user").
delivery object No
delivery.url string No The URL where your server will be listening for events.
delivery.version string No The event representation semantic version.
id string (uuid) No UUID that uniquely identifies the subscription.
name string No A custom name for your webhook to ease with identification.
scope object No
scope.domain string No Scope of this subscription (for example "application" or "profile").
scope.id string No ID associated with the scope (client key or profile ID).
trigger_on string No The event type this subscription is listening for. List of available events.

Example response:

{
  "created_at": "2019-10-10T13:55:57Z",
  "created_by": {
    "id": "<your user ID>",
    "type": "user"
  },
  "delivery": {
    "url": "https://your.webhook.url/12345",
    "version": "4.0.0"
  },
  "id": "72195556-e5cb-495e-a010-b37a4f2a3043",
  "name": "Webhook Subscription #1",
  "scope": {
    "domain": "profile",
    "id": "<your profile ID>"
  },
  "trigger_on": "transfers#state-change"
}
429: Rate limit exceeded. Retry after the number of seconds specified in the Retry-After header

application/json

The response is object.

list

GET /applications/{clientKey}/subscriptions

Operation ID: webhookApplicationSubscriptionList.

Authentication: bearer token (ClientCredentialsToken).

Parameters

Parameter In Type Required Description
clientKey path string Yes Your application's client key.
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
[].created_at string (date-time) No Timestamp of when the subscription was created.
[].created_by object No
[].created_by.id string No ID of the creator.
[].created_by.type string No Creator type (for example "application" or "user").
[].delivery object No
[].delivery.url string No The URL where your server will be listening for events.
[].delivery.version string No The event representation semantic version.
[].id string (uuid) No UUID that uniquely identifies the subscription.
[].name string No A custom name for your webhook to ease with identification.
[].scope object No
[].scope.domain string No Scope of this subscription (for example "application" or "profile").
[].scope.id string No ID associated with the scope (client key or profile ID).
[].trigger_on string No The event type this subscription is listening for. List of available events.
429: Rate limit exceeded. Retry after the number of seconds specified in the Retry-After header

application/json

The response is object.

GET /profiles/{profileId}/subscriptions

Operation ID: webhookProfileSubscriptionList.

Authentication: bearer token (UserToken).

Parameters

Parameter In Type Required Description
profileId path integer (int64) Yes ID of the profile.
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
[].created_at string (date-time) No Timestamp of when the subscription was created.
[].created_by object No
[].created_by.id string No ID of the creator.
[].created_by.type string No Creator type (for example "application" or "user").
[].delivery object No
[].delivery.url string No The URL where your server will be listening for events.
[].delivery.version string No The event representation semantic version.
[].id string (uuid) No UUID that uniquely identifies the subscription.
[].name string No A custom name for your webhook to ease with identification.
[].scope object No
[].scope.domain string No Scope of this subscription (for example "application" or "profile").
[].scope.id string No ID associated with the scope (client key or profile ID).
[].trigger_on string No The event type this subscription is listening for. List of available events.

Example response:

[
  {
    "created_by": {
      "id": "<your user ID>",
      "type": "user"
    },
    "delivery": {
      "url": "https://your.webhook.url/12345",
      "version": "2.0.0"
    },
    "id": "e889e085-3677-4110-be26-3e9160ac9f25",
    "name": "#1 subscription",
    "scope": {
      "domain": "profile",
      "id": "<your profile ID>"
    },
    "trigger_on": "transfers#state-change"
  },
  {
    "created_by": {
      "id": "<your user ID>",
      "type": "user"
    },
    "delivery": {
      "url": "https://your.webhook.url/12345",
      "version": "2.0.0"
    },
    "id": "eabeb3f5-c134-4a1c-99e2-86a1163daf1b",
    "name": "#2 subscription",
    "scope": {
      "domain": "profile",
      "id": "<your profile ID>"
    },
    "trigger_on": "transfers#state-change"
  }
]
429: Rate limit exceeded. Retry after the number of seconds specified in the Retry-After header

application/json

The response is object.

load

GET /applications/{clientKey}/subscriptions/{subscriptionId}

Operation ID: webhookApplicationSubscriptionGet.

Authentication: bearer token (ClientCredentialsToken).

Parameters

Parameter In Type Required Description
clientKey path string Yes Your application's client key.
subscriptionId path string (uuid) Yes UUID of the subscription.
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
created_at string (date-time) No Timestamp of when the subscription was created.
created_by object No
created_by.id string No ID of the creator.
created_by.type string No Creator type (for example "application" or "user").
delivery object No
delivery.url string No The URL where your server will be listening for events.
delivery.version string No The event representation semantic version.
id string (uuid) No UUID that uniquely identifies the subscription.
name string No A custom name for your webhook to ease with identification.
scope object No
scope.domain string No Scope of this subscription (for example "application" or "profile").
scope.id string No ID associated with the scope (client key or profile ID).
trigger_on string No The event type this subscription is listening for. List of available events.
429: Rate limit exceeded. Retry after the number of seconds specified in the Retry-After header

application/json

The response is object.

GET /profiles/{profileId}/subscriptions/{subscriptionId}

Operation ID: webhookProfileSubscriptionGet.

Authentication: bearer token (UserToken).

Parameters

Parameter In Type Required Description
profileId path integer (int64) Yes ID of the profile.
subscriptionId path string (uuid) Yes UUID of the subscription.
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
created_at string (date-time) No Timestamp of when the subscription was created.
created_by object No
created_by.id string No ID of the creator.
created_by.type string No Creator type (for example "application" or "user").
delivery object No
delivery.url string No The URL where your server will be listening for events.
delivery.version string No The event representation semantic version.
id string (uuid) No UUID that uniquely identifies the subscription.
name string No A custom name for your webhook to ease with identification.
scope object No
scope.domain string No Scope of this subscription (for example "application" or "profile").
scope.id string No ID associated with the scope (client key or profile ID).
trigger_on string No The event type this subscription is listening for. List of available events.

Example response:

{
  "created_at": "2008-09-15T15:53:00Z",
  "created_by": {
    "id": "<your user ID>",
    "type": "user"
  },
  "delivery": {
    "url": "https://your.webhook.url/12345",
    "version": "2.0.0"
  },
  "id": "f215f353-35fd-405b-b27f-4fd603c905ed",
  "name": "Webhook Subscription #1",
  "scope": {
    "domain": "profile",
    "id": "<your profile ID>"
  },
  "trigger_on": "balances#credit"
}
429: Rate limit exceeded. Retry after the number of seconds specified in the Retry-After header

application/json

The response is object.

remove

DELETE /applications/{clientKey}/subscriptions/{subscriptionId}

Operation ID: webhookApplicationSubscriptionDelete.

Authentication: bearer token (ClientCredentialsToken).

Parameters

Parameter In Type Required Description
clientKey path string Yes Your application's client key.
subscriptionId path string (uuid) Yes UUID of the subscription.
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

204: No Content
429: Rate limit exceeded. Retry after the number of seconds specified in the Retry-After header

application/json

The response is object.

DELETE /profiles/{profileId}/subscriptions/{subscriptionId}

Operation ID: webhookProfileSubscriptionDelete.

Authentication: bearer token (UserToken).

Parameters

Parameter In Type Required Description
profileId path integer (int64) Yes ID of the profile.
subscriptionId path string (uuid) Yes UUID of the subscription.
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

204: No Content
429: Rate limit exceeded. Retry after the number of seconds specified in the Retry-After header

application/json

The response is object.