EventWebhook
Envelope posted to your webhook URL when supported events fire. Used for transaction.success.v1, transaction.failed.v1, subscription-billing.charge-created.v1, subscription-billing.charge-success.v1, subscription-billing.charge-failed.v1, subscription-billing.agreement-active.v1, subscription-billing.agreement-stopped.v1, and settlement.transfer-ready.v1.
Identifier of the event that triggered the webhook.
Possible values: [transaction.success.v1, transaction.failed.v1, subscription-billing.charge-created.v1, subscription-billing.charge-success.v1, subscription-billing.charge-failed.v1, subscription-billing.agreement-active.v1, subscription-billing.agreement-stopped.v1, settlement.transfer-ready.v1]
data objectrequired
Event-specific payload.
- TransactionEventData
- BillingAgreementChargeEventData
- BillingAgreementEventData
- SettlementTransferEventData
transaction objectrequired
The ID of the transaction
LDG7M4WW44GThe ID of the associated subscription
0197c07b-3f6d-7be2-b848-702b08958128The ID of any associated subscription billing charge. Will be null if the transaction was not an automatic charge made on a billing agreement.
019a727b-987f-7768-a59e-71af920ef81fThe current state of the transaction. See our Core Concepts page.
Possible values: [PENDING, PROCESSING, SUCCESS, FAILED]
If the transaction has failed, this contains the associated error code explaining what went wrong.
externalStatusCodes objectnullable
A nullable object containing any known external status codes, such as the status code from the acquirer or the network. This can be useful for merchants who want to be able to react to very specific rejection reasons.
The status code from the acquirer. The possible values depend on processing acquirer. The key is only present if the value is known to ePay.
The status code from the scheme network. The field is only used for card based payments but stays consistent between acquirers. The key is only present if the value is known to ePay.
A unified status code representing the result of the Strong Customer Authentication (SCA) flow, such as 3DS.
The code is built by concatenating the challenge status (transStatus) and reason code (transStatusReason) from the two steps of the 3DS protocol.
| Code | Meaning |
|---|---|
| C | Transaction was challenged |
| N | Transaction was rejected |
| Y | Transaction was approved |
| U | Technical issues |
| I | Informational Only (No authentication performed) |
The reason code (transStatusReason) is appended if present, e.g., 07.
Examples:
Y- Frictionless approvalCY- Challenged then approvedCN07- Challenged then rejected due to reason07N07- Rejected without a challenge due to reason07
The time of creation
The ID of the associated session. This will be null for any MIT transactions.
The ID of the associated payment method
The type of the payment method.
Possible values: [CARD, VIPPS_MOBILEPAY, MOBILEPAY_ONLINE, APPLE_PAY, GOOGLE_PAY, SWISH, VIABILL, ANYDAY]
CARDThe sub type of the associated payment method. For card based payments, this will contain the name of the scheme, such as Visa or Mastercard. The card scheme name formatted with a uppercase starting character. For non-card based payments the field vary depending on the requirements of the payment method.
The expiration date of the associated payment method.
Although payment cards are specified by a month and year (MM/YY), this value is returned as a full date (YYYY-MM-DD) representing the last day of the expiration month.
Example: "2030-05-31" for a card expiring in May 2030.
A cardholder friendly text to help them identify the payment method. For cards this will be a masked version of the card number.
Contains the entered cardholder name of the optional "name" field. Will be null if the field is not rendered.
The SCA mode of the transaction.
Possible values: [SKIP, NORMAL, FORCE]
The merchant customer id of the transaction. This field is required to enable advanced features such as storing a card for later reuse. Do not use any "guest" customer ids. Customer ids must be unique for each customer and must be protected by authentication.
The transaction amount in minor units (e.g., 1095 = 10.95 DKK)
The applied transaction fee in minor units. The fee is included in the amount field. To get the original amount you must subtract fee from amount. Fees are only applied if surcharge is configured in the ePay backoffice.
Fees are calculated during transaction processing and as such is always 0 when initially created during MIT transactions.
The currency of the transaction in ISO 4217 alpha-3. DKK for danish kroner.
The instant capture mode.
Possible values: [OFF, VOID, NO_VOID]
The URL to receive webhook notifications of any transaction attempts. May contain templating variables.
Possible values: <= 1024 characters
The ID of the associated point of sale
The merchant reference of the transaction, this is often used for the order id.
The text to show on the cardholder bank statement
Possible values: non-empty and <= 39 characters
The list of exemptions to apply when possible. Note that exemptions may shift liability from the issuer to the merchant.
["LVT","TRA"]attributes object
A list of pass-through parameters that will be sent back to the merchant for following any webhooks
A list of pass-through parameters that will be sent back to the merchant for following any webhooks
The ip (ipv4/ipv6) of the cardholder making the transaction. The IP is captured by ePay at the initialization of the transaction client-side. Can be empty.
52.212.176.122The detected origin country (Alpha-2) based on the clientIp property. Can be empty.
- Data derived from GeoLite2 by MaxMind.
DKThe type of transaction.
Possible values: [PAYMENT, PAYOUT, MOTO]
billingAgreementCharge objectrequired
Represents a scheduled billing event created from a billing agreement. Tracks processing state, retry schedule, and any linked transactions.
Unique identifier for the billing agreement charge.
019a72a0-4247-71c4-a4da-62b534d87af6Current processing state of the charge.
Possible values: [PROCESSING, FAILED, SUCCESS]
PROCESSINGIdentifier of the successful transaction created for this charge, when available.
LDG7M4WW44GIdentifier for the associated billing plan.
019a729e-41c2-7d16-a1e2-fdb15a8146bbIdentifier for the billing agreement that produced this charge.
019a729e-2d93-7612-9329-8f783f66f834Deadline for completing the charge before it is marked as failed.
2030-09-05T12:00:00ZTimestamp of the next scheduled retry attempt, when additional retries are pending.
2030-08-01T12:00:00ZTimestamp when the billing agreement charge was created.
2030-07-29T15:51:28.071ZbillingAgreement objectrequired
Represents an automated, recurring payment agreement between a merchant and a cardholder. Links a Subscription to a Billing Plan so ePay can manage scheduled charges and track billing status.
Unique identifier for the billing agreement.
019a729e-2d93-7612-9329-8f783f66f834ID of the associated billing plan.
019a729e-41c2-7d16-a1e2-fdb15a8146bbID of the linked subscription.
019a729e-51ed-7426-b7c9-0e212b2d77d4Optional session identifier. Is only present when the billing agreement was made using a session.
019a729e-660a-7a05-90ad-5160ad0decc5Optional customer identifier.
user-1Date and time of the next charge, if scheduled. Will be null if the agreement is not in the ACTIVE state.
2030-08-29T15:51:28.071ZDate and time of the last charge, if available.
2030-07-29T15:51:28.071ZPreferred day of the month for charging. This is the day of the month ePay will attempt to target for monthly payments. This ensures a consistent billing date across months, which might otherwise vary depending on number of days in the month or leap years. Only available for monthly intervals.
30Current state of the billing agreement.
Possible values: [PENDING, ACTIVE, STOPPED]
Timestamp when the billing agreement last changed state.
2030-07-29T15:51:28.071ZOptional reference string.
agreement-1Timestamp when the billing agreement was created.
2030-07-29T15:51:28.071ZsettlementTransfer objectrequired
The ePay ID of the settlement transfer
019b3130-5d58-716d-8881-9a3ec506017fAcquirer identifier
shift4Name or filename of the settlement report as received by ePay. This is mainly used for logging and debugging purposes.
settlement.csvList of MIDs included in the settlement report.
The posting date of the transfer as registered by the acquirer
2025-01-01Net amount (After adjustments and fees) as numeric string
99.01ISO 4217 currency
DKKReference from acquirer
acq-123adjustments object[]
The type of adjustment, this tells you reason for the adjust and who the money is paid to.
The types [RESERVE, ADJUSTMENT, FEE] is used for transfer adjustments.
- RESERVE: The amounts deducted and released from the merchant’s collateral
- FEE: Fees charged for different services provided by the acquirer (e.g., wire transfer fee).
- ADJUSTMENT: Amounts debited or credited to the merchant to adjust the merchant balance.
The types [ACQUIRER_FEE, INTERCHANGE_FEE, SCHEME_FEE] is used for transaction adjustments.
- ACQUIRER_FEE: Fees that is charged by and goes to the acquirer.
- INTERCHANGE_FEE: Fees that goes to the issuing bank of the paying card.
- SCHEME_FEE: Fees that goes to the scheme network such as Visa and Mastercard.
Possible values: [RESERVE, ADJUSTMENT, FEE, ACQUIRER_FEE, INTERCHANGE_FEE, SCHEME_FEE]
FEENumeric string, negative for fees
-1.00Human-readable description
discount_rate2025-12-18T11:20:11Z{
"event": "transaction.success.v1",
"data": {
"transaction": {
"id": "LDG7M4WW44G",
"subscriptionId": "0197c07b-3f6d-7be2-b848-702b08958128",
"billingAgreementChargeId": "019a727b-987f-7768-a59e-71af920ef81f",
"state": "PENDING",
"errorCode": "string",
"externalStatusCodes": {
"acquirer": "string",
"network": "string",
"sca": "string"
},
"createdAt": "2024-07-29T15:51:28.071Z",
"sessionId": "string",
"paymentMethodId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"paymentMethodType": "CARD",
"paymentMethodSubType": "string",
"paymentMethodExpiry": "2024-07-29",
"paymentMethodDisplayText": "string",
"paymentMethodHolderName": "string",
"scaMode": "SKIP",
"customerId": "string",
"amount": 0,
"fee": 0,
"currency": "string",
"instantCapture": "OFF",
"notificationUrl": "string",
"pointOfSaleId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"reference": "string",
"textOnStatement": "string",
"exemptions": [
"LVT",
"TRA"
],
"attributes": {},
"clientIp": "52.212.176.122",
"clientCountry": "DK",
"type": "PAYMENT"
}
}
}