Webhook - Outbound Payments

Outbound Payment

The PAYOUT event is triggered when a Payment request reaches any final status (We do not send webhooks for the rejected approval path, so whilst the payment will move into an ER_INVALID status no webhook will be sent) or a Settlement is processed in a card that's associated with one of your accounts

ParameterDescription
AmountAmount of the Payment.
StatusFinal status of the payment .
EventIdUnique id for the webhook event. This can change if webhook needs to be resent.
DateTimeThe Date and timestamp when the Payment was posted to Modulr - All Dates and times are UTC based.
AccountIdModulr Unique Account reference for the account that the payment was made from.
EventNameType of event: PAYOUT - Payment has reached a final status.
EventTimeDate and Timestamp for the Event - All Dates and times are UTC based.
PaymentSubmittedTimeDate and Timestamp for when the payment has been sent externally from Modulr.
PaymentIdModulr Unique Payment Reference for the payment sent.
ReferenceReference to be used for the Payment. This will appear on the Account statement/the recipient's bank account.
SchemeInfoScheme information for the sent payment in this example this is a FPID and the response code from the Scheme.
TransactionIdModulr Unique Transaction Reference for the payment sent. Transactions are only created when a payment is sent successfully in case of failed payment it is possible to receive a webhook without a TransactionId.
ExternalReferenceThis is the reference you can set on the payment request to correlate back to your system.

Duplication Check

PaymentId should be used as your main duplication check, as there are times where the EventId could change or in the event of a failed payment the TransactionId would be empty. This is important particularly if a webhook has failed and needs to be resent.

Example PAYOUT Webhook

Internal Transfer Example

{
    "Amount": "19.28",
    "Status": "PROCESSED",
    "EventId": "a13bd641-4a19-4814-b121-2d58adc15623",
    "DateTime": "2024-02-02T02:02:022+0000",
    "AccountId": "A1201HT721",
    "EventName": "PAYOUT",
    "EventTime": "2024-02-02T02:02:024+0000",
    "PaymentId": "P120DD1AB2",
    "TransactionId": "T120A3VX22"
}

Faster Payment Out Example

{
    "Amount": "40",
    "Status": "PROCESSED",
    "EventId": "46915325-a6db-46c5-a3d8-606f35bde2ef",
    "DateTime": "2020-01-01T10:53:38+0000",
    "AccountId": "A120C8D3",
    "EventName": "PAYOUT",
    "EventTime": "2020-01-01T10:53:382+0000",
    "PaymentSubmittedTime": "2021-01-01T10:54:42.715+0000",
    "PaymentId": "P12000MWFB",
    "Reference": "Sent from Tony Stark",
    "SchemeInfo": {
        "Id": "MODULO00P12000MWFB020200101826040010",
        "ResponseCode": "0000"
    },
    "TransactionId": "T12000N5TN",
    "ExternalReference": "887adb57-9960-4a3d-bfa1-f0c6cacc7c97"
}

CHAPS Payment Out Example

{
    "Amount": "266726.74",
    "Status": "PROCESSED",
    "EventId": "f747b093-40f1-4438-b3a5-6ad3ce66f2dd",
    "DateTime": "2020-01-01T10:07:03+0000",
    "AccountId": "A120E8C3",
    "EventName": "PAYOUT",
    "EventTime": "2020-01-01T10:07:03+0000",
    "PaymentId": "P12000EWFQ",
    "Reference": "Hulk Smash",
    "SchemeInfo": {
        "Id": "+H4Bu6HbDww7jdgI",
        "Name": "CHAPS"
    },
    "TransactionId": "T12000N5GQ"
}

Direct Debit Out Payment Out Example

{
    "Amount": "107.03",
    "Status": "PROCESSED",
    "EventId": "f3a48f9a-dd7a-42d2-b0de-87ed234f92ef",
    "DateTime": "2020-01-01T15:00:19+0000",
    "AccountId": "A120Q8Q3",
    "EventName": "PAYOUT",
    "EventTime": "2020-01-01T15:00:19+0000",
    "PaymentId": "D210NER0",
    "TransactionId": "T12000R5RQ"
}

SEPA Credit Transfer Payment Out Example

{
    "Amount": "100.0",
    "Status": "PROCESSED",
    "EventId": "4193b4d3-5dff-422c-be7e-66c79f69a10e",
    "DateTime": "2020-01-01T09:15:00+0000",
    "AccountId": "A120S8H3",
    "EventName": "PAYOUT",
    "EventTime": "2020-01-01T09:15:00+0000",
    "PaymentId": "P12000EWVV",
    "Reference": "JARVIS",
    "TransactionId": "T12000R5EE",
    "ExternalReference": "TYbJv7RRpDwHxmx"
}

Card Settlement Example

The PaymentId field contains the card activity BID which you can use to query additional details from the card activities API

Some of our clients will also use the Order ID to match the settlement to the authorisation record as part of their internal reconciliation

{
    "Amount": "107.03",
    "Status": "PROCESSED",
    "EventId": "f3a48f9a-dd7a-42d2-b0de-87ed234f92ef",
    "DateTime": "2020-01-01T15:00:19+0000",
    "AccountId": "A120Q8Q3",
    "EventName": "PAYOUT",
    "EventTime": "2020-01-01T15:00:19+0000",
    "PaymentId": "X11000DYTA", // Card Activity ID
    "ExternalReference": "10", // Order ID
    "TransactionId": "T12000R5RQ"
}