Outgoing wire transfers

Outgoing wire transfer state change

Sent each time an outgoing wire transfer moves through its lifecycle, from submission to settlement or return.

COMPLETED means the funds have left the account, not that the beneficiary has been credited — a transfer can still come back as RETURNED afterwards. On REJECTED, FAILED, or INVALID, transfer.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}/outgoing_wire_transfers/watch.

postWebhook/outgoing_wire_transfers/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_CHALLENGE' | 'PENDING_CONFIRMATION' | 'SCHEDULED' | 'SUBMITTED' | 'APPROVED' | 'COMPLETED' | 'REJECTED' | 'FAILED' | 'RETURNED' | 'INVALID' | 'CANCELLED' required

The state the outgoing wire transfer has reached:

  • SCHEDULED: the transfer is scheduled for a future date.
  • PENDING_CHALLENGE: the transfer is awaiting Strong Customer Authentication.
  • PENDING_CONFIRMATION: the transfer is awaiting confirmation.
  • SUBMITTED: the transfer has been submitted to the payment network.
  • APPROVED: the transfer passed validation and will be sent.
  • COMPLETED: the funds have left the account. This is a final state.
  • REJECTED: the transfer was rejected before submission. conflict says why.
  • FAILED: the transfer could not be completed. conflict says why.
  • RETURNED: the funds were returned by the receiving bank.
  • INVALID: the transfer was rejected as invalid. conflict says why.
  • CANCELLED: the transfer was canceled before execution. This is a final state.
publishedTimestampinteger required

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

Example payload

{
  "owner": {
    "type": "example",
    "id": "123456789"
  },
  "transfer": {
    "id": "123456789",
    "profileId": "10001",
    "tag": "customer-123",
    "sourceInstrument": {
      "id": "123456789"
    },
    "transferAmount": {
      "currency": "GBP",
      "amount": 1250
    },
    "fee": {
      "currency": "GBP",
      "amount": 1250
    },
    "purpose": "Invoice payment",
    "description": "Invoice 1042",
    "destination": {
      "name": "Alex Smith",
      "address": "1 High Street, London W1A 1AA",
      "bankName": "National Westminster Bank PLC",
      "bankAddress": "250 Bishopsgate, London EC2M 4AA",
      "bankCountry": "GB",
      "bankAccountDetails": {
        "iban": "GB29NWBK60161331926819",
        "bankIdentifierCode": "NWBKGB2L"
      },
      "nationality": "GB",
      "dateOfBirth": "1990-01-01"
    },
    "creationTimestamp": 1786118400000,
    "scheduledTimestamp": "1786118400000",
    "executionTimestamp": "1786118401250",
    "cancellationReason": "Payment no longer required",
    "validationOutcomes": [
      {
        "categoryResult": {
          "accountName": "Alex J Smith"
        }
      }
    ],
    "beneficiaryId": "123456789",
    "externalAccountId": "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.