Sends

Send state change

Sent each time a send to another identity within the same programme changes state.

A send that requires Strong Customer Authentication reports PENDING_CHALLENGE until the challenge is completed. On FAILED or INVALID, send.conflict carries the reason.

Enable and configure webhooks in the Embedder Portal; recent events are listed on its Webhook Logs page. Weavr sends this event to {Webhook URL}/send/watch.

postWebhook/send/watch

Headers

call-refstring

A call reference generated by the caller and unique to the caller to provide correlation between the caller and system with a maximum length of 255

published-timestampinteger required

The timestamp, expressed in Epoch timestamp using millisecond precision, when this event was published.

signaturestring required

The signature to verify the authenticity of this request. This is the base64 hash (HmacSHA256) of the published-timestamp using your API key.

signature-v2string required

The signature to verify the authenticity of this request. This is the base64 hash (HmacSHA256) of the call-ref + payload + published-timestamp using your API key.

Payload

eventType'PENDING' | 'COMPLETED' | 'FAILED' | 'PENDING_CHALLENGE' | 'INVALID' | 'SCHEDULED' | 'CANCELLED' required

The state the send has reached:

  • SCHEDULED: the send is scheduled for a future date.
  • PENDING_CHALLENGE: the send is awaiting Strong Customer Authentication.
  • PENDING: the send is being processed.
  • COMPLETED: the funds have moved. This is a final state.
  • FAILED: the send could not be completed. conflict says why. This is a final state.
  • INVALID: the send was rejected as invalid. conflict says why. This is a final state.
  • CANCELLED: the send was canceled before execution. This is a final state.
publishedTimestampinteger required

When the event was published. Epoch timestamp using millisecond precision.

Example payload

{
  "send": {
    "id": "123456789",
    "profileId": "10001",
    "tag": "customer-123",
    "source": {
      "id": "123456789",
      "type": "managed_accounts"
    },
    "sourceFee": {
      "currency": "GBP",
      "amount": 1250
    },
    "destination": {
      "id": "123456789",
      "type": "managed_accounts"
    },
    "destinationAmount": {
      "currency": "GBP",
      "amount": 1250
    },
    "destinationFee": {
      "currency": "GBP",
      "amount": 1250
    },
    "transactionAmount": {
      "currency": "GBP",
      "amount": 1250
    },
    "description": "Invoice 1042",
    "creationTimestamp": 1786118400000,
    "scheduledTimestamp": "1786118400000",
    "executionTimestamp": "1786118401250",
    "cancellationReason": "Payment no longer required",
    "beneficiaryId": "123456789"
  },
  "publishedTimestamp": 1786118400000
}

Response

Event received.

Changes

Webhooks have no change history: a webhook is keyed by its event name rather than a path and method, so no recorded change can name it.