API

DeliveryUpdate

A simulated transfer delivery update (Sandbox).

Operations

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

Method Route SDK operation Returns
POST /simulation/transfers/{transferId}/delivery-update create Observation accepted for asynchronous webhook processing

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:

created, err := client.DeliveryUpdate(nil).Create(map[string]any{"transfer_id": 1, "delivery_update": "example", "delivery_update_path": []any{}}, nil)
if err != nil {
    panic(err)
}
fmt.Println(created)

Lua

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

local created, err = client:DeliveryUpdate():create({ transfer_id = 1, delivery_update = "example", delivery_update_path = {} })

PHP

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

$created = $client->DeliveryUpdate()->create(["transfer_id" => 1, "delivery_update" => "example", "delivery_update_path" => []]);

Python

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

created = client.DeliveryUpdate().create({ "transfer_id": 1, "delivery_update": "example", "delivery_update_path": [] })

Ruby

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

created = client.DeliveryUpdate.create({ "transfer_id" => 1, "delivery_update" => "example", "delivery_update_path" => [] })

TypeScript

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

const created = await client.DeliveryUpdate().create({ transfer_id: 1, delivery_update: "example", delivery_update_path: [] })

Fields

Field Type Required Description
delivery_update string Yes The delivery signal to simulate.
delivery_update_path array Yes Delivery signals supported by the simulated route, not a history of events.
estimated_delivery_at one,string,null No Optional estimated delivery time.
observation_id string Yes Server-generated observation identifier.
occurred_at string Yes Server-generated observation time in UTC with millisecond precision.
scheme one,string,null No Payment scheme to include in the observation.

create

POST /simulation/transfers/{transferId}/delivery-update

Operation ID: simulationTransferDeliveryUpdate.

Authentication: bearer token (UserToken).

Parameters

Parameter In Type Required Description
transferId path integer (int64) Yes The ID of the transfer to simulate. The caller must have access to this transfer.
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_update enum: partner_accepted, recipient_provider_accepted, scheme_settled, account_credited, funds_available Yes The delivery signal to simulate. Must be a member of delivery_update_path, but need not be its last item.
delivery_update_path array of enum: partner_accepted, recipient_provider_accepted, scheme_settled, account_credited, funds_available Yes Delivery signals supported by the simulated route, not a history of events. Select one or more distinct values in this progression order: partner_accepted, recipient_provider_accepted, scheme_settled, account_credited, funds_available. Values may be skipped. The service validates the order and requires this array to contain delivery_update.
estimated_delivery_at string,null (date-time) No Optional estimated delivery time. May be omitted or null. Published timestamps are truncated to milliseconds.
scheme enum: sepa_instant_credit_transfer, null No Payment scheme to include in the observation. May be omitted or null.

Responses

200: Observation accepted for asynchronous webhook processing

application/json

Property Type Required Description
observation_id string (uuid) Yes Server-generated observation identifier. Matches data.observation_id in the webhook.
occurred_at string (date-time) Yes Server-generated observation time in UTC with millisecond precision. Matches data.occurred_at in the webhook.

Example response:

{
  "observation_id": "550e8400-e29b-41d4-a716-446655440000",
  "occurred_at": "2026-10-01T10:00:00.123Z"
}
400: Invalid request. Malformed input and domain validation return a single error; field validation can return an errors array

application/json

The response is object or object.

401: Authentication is missing or invalid
403: Access denied by the authentication or authorization policy
404: Transfer does not exist or is not accessible to the caller

application/json

Property Type Required Description
errors array of object Yes
errors[].arguments array of string No Arguments associated with the error.
errors[].code string Yes Error code.
errors[].message string No Description of the error, when available.
errors[].path string No Field associated with a validation error, when available.

Example response:

{
  "errors": [
    {
      "arguments": [],
      "code": "transfer_not_found",
      "message": "Transfer not found"
    }
  ]
}
429: Rate limit exceeded. Retry after the number of seconds specified in the Retry-After header

application/json

The response is object.

500: Internal error while processing the simulation

application/json

The response is object or object.

503: Simulation temporarily unavailable because a required dependency or transfer routing is unavailable

application/json

Property Type Required Description
errors array of object Yes
errors[].arguments array of string No Arguments associated with the error.
errors[].code string Yes Error code.
errors[].message string No Description of the error, when available.
errors[].path string No Field associated with a validation error, when available.

Example response:

{
  "errors": [
    {
      "arguments": [],
      "code": "service_unavailable",
      "message": "The simulation is temporarily unavailable. Please try again."
    }
  ]
}