About Card Payments
The Paysafe Payments API enables businesses to accept credit and debit cards securely, supporting both immediate transactions and saved-card experiences.
- One-time card payments.
You can process single-use transactions by collecting card details at the time of payment. This is ideal for standard checkout flows where the consumer enters their card information during each purchase. - Saved card payments (Tokenization).
For returning consumers, the API allows you to tokenize card data and store it within a customer profile. This enables secure "card-on-file" capabilities - for recurring billing, subscriptions, or faster checkouts. By using tokens instead of raw card data, you reduce risk while improving the consumer experience.
Cards at a glance
| Payment type | Cards | |
|---|---|---|
| Countries | Global (subject to your merchant account configuration) | |
| Processing currencies | USD, CAD, AUD, EUR, GBP, NOK, ISK, PLN, CHF, NGN, CZK, PHP, NZD, KES, PKR, ZAR, RON, DKK, BRL, SEK, AED, COP, INR, MAD, RWF, BGN, ARS, CLP, HUF, THB, TRY, and many more. Please contact your Relationship/ Account manager. | |
| Settlement currencies | USD, CAD, EUR, GBP, AUD, CHF, DKK, HKD, JPY, NOK, NZD, PLN, SEK, SGD, ZAR, and many more. Please contact your Relationship/ Account manager. | |
| Supported card types |
| |
| Supported card schemes | Visa, Visa Debit, Visa Electron, Visa Prepaid, American Express, Mastercard, Mastercard Debit (Maestro), Mastercard Prepaid, Discover | |
| Transaction types |
|
|
| 3D Secure 2 | YES | |
| Reporting | You can review your transactions in the Paysafe Business Portal. | |
| Other features |
| |
Payments API: YES
Paysafe Checkout: YES
Paysafe JS: YES
Mobile SDKs: YES
| Business requirements | Recommended option |
|---|---|
| Fastest time to market with the lowest PCI burden | Paysafe Checkout |
| Branded consumer experience with the lowest PCI burden | Paysafe JS (Hosted Fields) and Mobile SDKs |
| Full control over the consumer experience/ logic with the highest PCI level (SAQ D) | Direct integration via the Payments API |
Best practice
-
Use the paymentHandleToken to process sensitive card details securely.
-
Never store raw card data on your servers unless PCI compliant.
- Always try 3DS where supported, especially in the EU.
- Support repeat billing, subscriptions, or one-click checkout using the saved card feature
- For authorize-only flows, settle later as per your business rules.
Use case 1: Payments without 3DS
This use case enables your consumer to make a payment using a credit or debit card.
Consumer experience
- You show the consumer the option to select a credit or debit card as a payment method.
- The consumer enters their card details such as card number, expiry date, CVV and clicks Pay.
- The transaction is submitted for processing. Depending on the issuer's response, the transaction will either be successful or fail.
Step 1: Call paymenthandles
URI: /paymenthub/v1/paymenthandles
-
Initialize the payment process by creating a single-use payment handle and passing the relevant details:
- transactionType: PAYMENT
- paymentType: CARD
-
Pass the required parameters in the Card object.
-
Paysafe creates a payment handle and returns the response, indicating either a positive or negative outcome.
Positive outcome: Happy path
For positive scenarios, the payment handle is created with status PAYABLE.
Outcome HTTP code Next step Can be
simulated?The request succeeds. 200
Make the payments call.
YES using magic values.
See Simulating Card Payments.Negative outcome: Unhappy path - the request fails
For negative scenarios, the payment handle is created with status FAILED.
See the Payments API Reference for a complete list of error codes.
For more information about the full payment handle request, see Create a Payment Handle.
Always check the timeToLiveSeconds field in the paymenthandles API response to determine the exact validity duration.
- Time to live: Typically 5 minutes.
- Usage: One-time use only.
- Use case: Typically used for immediate, single transactions.
Step 2: Call payments
URI: /paymenthub/v1/payments
-
Call endpoint /paymenthub/v1/payments using the paymentHandleToken.
-
Paysafe returns the response, indicating either a positive or negative outcome.
Positive outcome: Happy path
For positive scenarios, the payment is created with status COMPLETED.
Outcome HTTP code Can be
simulated?The request succeeds and the payment is completed. 200
YES using magic values.
See Simulating Card Payments.Negative outcome: Unhappy path - the request fails
For negative scenarios, the payment is created with status FAILED.
See the Payments API Reference for a complete list of error codes.
Use case 2: Payments with 3DS
This use case enables your consumer to make a payment using a credit or debit card with 3D Secure authentication.
Consumer experience
- You show the consumer the option to select a credit or debit card as a payment method.
- The consumer enters their card details such as card number, expiry date, CVV and clicks Pay.
- The consumer is shown a 3DS screen and enters an OTP (one-time password).
- The transaction is submitted for processing. Depending on the 3DS/ issuer's response, the transaction will either be successful or fail.
Step 1: Call paymenthandles
URI: /paymenthub/v1/paymenthandles
-
Initialize the payment process by creating a single-use payment handle and passing the relevant details:
- transactionType: PAYMENT
- paymentType: CARD
- threeDs object
-
Pass the required parameters in the Card object.
-
Paysafe creates a payment handle and returns the response, indicating either a positive or negative outcome.
Positive outcome: Happy path
For positive scenarios, the payment handle is created with status INITIATED.
- The action parameter is set to REDIRECT (as 3D Secure is enabled).
- A payment_redirect link points to the 3D Secure authentication URL.
Outcome HTTP code Next step Can be
simulated?The request succeeds. 200
Redirect the consumer to the payment_redirect URL.
YES, using a different card.
See Test Cards (3DS).
See 3DS for liability shift information.Negative outcome: Unhappy path - the request fails
For negative scenarios, the payment handle is created with status FAILED.
See the Payments API Reference for a complete list of error codes.
For more information about the full payment handle request, see Create a Payment Handle.
Always check the timeToLiveSeconds field in the paymenthandles API response to determine the exact validity duration.
- Time to live: Typically 5 minutes.
- Usage: One-time use only.
- Use case: Typically used for immediate, single transactions.
Step 2: Call payments
URI: /paymenthub/v1/payments
-
Call endpoint /paymenthub/v1/payments using the paymentHandleToken.
-
Paysafe returns the response, indicating either a positive or negative outcome.
Positive outcome: Happy path
For positive scenarios, the payment is created with status COMPLETED.
Outcome HTTP code Can be
simulated?The request succeeds and the payment is completed. 200
YES using magic values.
See Simulating Card Payments.Negative outcome: Unhappy path - the request fails
For negative scenarios, the payment is created with status FAILED.
See the Payments API Reference for a complete list of error codes.
Use case 3: Payouts
This use case enables you to pay money to a consumer via a selected credit or debit card.
Consumer experience
- You show the consumer the option to select a credit or debit card as a payment method.
- The consumer enters their card details such as card number, expiry date, CVV and clicks Pay.
- The transaction is submitted for processing. Depending on the issuer's response, the transaction will either be successful or fail.
Step 1: Call paymenthandles
URI: /paymenthub/v1/paymenthandles
-
Initialize the payment process by creating a single-use payment handle and passing the relevant details:
- transactionType: STANDALONE_CREDIT or ORIGINAL_CREDIT
NOTE: ORIGINAL_CREDIT is used in the iGaming sector, while STANDALONE_CREDIT is used for all other sectors. - paymentType: CARD
- transactionType: STANDALONE_CREDIT or ORIGINAL_CREDIT
-
Pass the required parameters in the Card object.
-
Paysafe creates a payment handle and returns the response, indicating either a positive or negative outcome.
NOTE: 3DS does not apply to payouts.
Positive outcome: Happy path
For positive scenarios, the payment handle is created with status PAYABLE.
Outcome HTTP code Next step Can be
simulated?The request succeeds. 200
Make the payouts call (standalonecredits or originalcredits).
NO
Negative outcome: Unhappy path - the request fails
For negative scenarios, the payment handle is created with status FAILED.
See the Payments API Reference for a complete list of error codes.
For information about the full payment handle request, see Create a Payment Handle.
Step 2: Call standalonecredits or originalcredits
URI: /paymenthub/v1/standalonecredits or /paymenthub/v1/originalcredits
-
Call endpoint /paymenthub/v1/standalonecredits or /paymenthub/v1/originalcredits using the paymentHandleToken.
-
Paysafe returns the response, indicating either a positive or negative outcome.
Positive outcome: Happy path
For positive scenarios, the payout is created with status COMPLETED.
Outcome HTTP code Can be
simulated?The request succeeds and the payout is completed. 200
NO
Negative outcome: Unhappy path - the request fails
For negative scenarios, the payout payment handle is created with status FAILED.
See the Payments API Reference for a complete list of error codes.
Use case 4: Other payment scenarios
| Scenario | Use case | Request in /payments call | Extra step |
|---|---|---|---|
Payment with settlement | Authorization and settlement of a credit card payment are completed in a single request. This scenario is typically used to provide immediate service, such as in the case of a gaming merchant where a consumer deposits money into their account. NOTE: Actual settlement is processed in batches, so “immediate settlement” does not guarantee instant receipt of funds. | Set the settleWithAuth parameter to true. | |
Payment with delayed settlement | A purchase is authorized for a specific amount, but settlement occurs only after the service has been fulfilled. For example, a merchant receives an online order and authorizes the payment on day one. Settlement doesn't occur until day three however, when the merchant ships the goods. | Set the settleWithAuth parameter to false. | Call the settlements API ( /settlements) later. |
Payment with a saved card | Card details are securely stored in Paysafe Vault on behalf of merchants, providing consumers with frictionless payments through the saved cards feature. For more information, see Save Cards. | ||
Payment using an external or 3rd party 3DS service | 3DS authentication occurs via a third-party 3DS provider instead of Paysafe’s 3DS service. In this scenario, a merchant uses their own 3DS provider and passes the "3ds authentication" details directly to Paysafe. | See Using an external 3DS service for 3DS 2.0. |
Webhooks
| Payment handle status | Payment status | Event | Next step |
|---|---|---|---|
INITIATED | - | 3DS case: The payment handle has been created. The consumer needs to be redirected to the 3DS page. Non-3DS case: Not applicable. | Redirect the consumer to the 3DS link. |
PROCESSING | - | 3DS case: The consumer has been redirected to the 3DS redirection link. Non-3DS case: Not applicable. |
|
PAYABLE | - | 3DS case: The consumer has successfully authenticated using 3DS, and the payment handle token has been successfully created. Non-3DS case: The payment handle token has been successfully created. | Make the payments call. |
COMPLETED | COMPLETED | You initiated the payments call and the transaction was successful. |
|
COMPLETED | FAILED | You initiated the payments call and the transaction failed. NOTE: Regardless of the payments call response status, the payment handle status always changes to COMPLETED when a payments call is made. | Investigate the cause of the authorization failure. |
FAILED | - | The payment handle was created, and the consumer was redirected to their bank. However, the consumer either abandoned the transaction or failed to authorize it. | Investigate the cause of the failure and possibly retry the process with a new payment handle. |
EXPIRED | - | The payment handle has expired because it was not used in the payments call within 15 minutes (TTL). | A new payment handle must be created to restart the process. |
ERRORED | - | The payment handle creation failed due to an error. | A new payment handle must be created to restart the process. |
Example webhook packets for payments
{
"attemptNumber": "1",
"type": "PAYMENT_HANDLE",
"payload": {
"amount": 50000,
"usage": "SINGLE_USE",
"executionMode": "SYNCHRONOUS",
"currencyCode": "USD",
"status": "PROCESSING",
"paymentType": "CARD",
"txnTime": "2025-04-10T17:20:41.447",
"billingDetails": {
"nickName": "Kranthi",
"street": "Queen Street West",
"city": "Toronto",
"country": "US",
"state": "NJ",
"zip": "07039"
},
"threeDsV2Details": {
"merchantUrl": "https://www.paysafe.com",
"deviceChannel": "BROWSER",
"messageCategory": "PAYMENT",
"authenticationPurpose": "PAYMENT_TRANSACTION"
},
"threeDsVersion": "THREE_D_S_TWO",
"skip3ds": false,
"customerIp": "172.0.0.1",
"action": "REDIRECT",
"timeToLiveSeconds": 299,
"transactionType": "PAYMENT",
"card": {
"cardExpiry": {
"month": "10",
"year": "2030"
},
"holderName": "kranthi",
"cardType": "VI",
"cardBin": "400000",
"lastDigits": "1091",
"cardCategory": "CREDIT",
"issuingCountry": "US"
},
"merchantDescriptor": {
"dynamicDescriptor": "OnlineStore",
"phone": "1234567891"
},
"authentication": {
"id": "75faed50-6e8b-445d-8f94-3ae848e852c6",
"eci": "0",
"status": "PENDING",
"threeDResult": "C",
"threeDSecureVersion": "2.1.0",
"directoryServerTransactionId": "baf51a40-ed12-455c-9b5c-f1566c4a2884"
},
"profile": {
"locale": "en",
"firstName": "Kranthi",
"lastName": "Kumar",
"email": "test@paysafe.com",
"phone": "1234567891",
"dateOfBirth": {
"year": 1985,
"month": 4,
"day": 10
}
},
"returnLinks": [
{
"method": "GET",
"rel": "default",
"href": "https://usgaminggamblig.com/payment/return/success"
},
{
"method": "GET",
"rel": "on_failed",
"href": "https://usgaminggamblig.com/payment/return/failed"
},
{
"method": "GET",
"rel": "on_completed",
"href": "https://usgaminggamblig.com/payment/return/completed"
}
]
},
"links": [
{
"rel": "payment_handle"
}
],
"eventName": "PAYMENT_HANDLE_PROCESSING"
}
{
"attemptNumber": "1",
"type": "PAYMENT_HANDLE",
"payload": {
"amount": 50000,
"usage": "SINGLE_USE",
"executionMode": "SYNCHRONOUS",
"currencyCode": "USD",
"status": "PAYABLE",
"paymentType": "CARD",
"txnTime": "2025-04-10T17:21:16.456",
"billingDetails": {
"nickName": "Kranthi",
"street": "Queen Street West",
"city": "Toronto",
"country": "US",
"state": "NJ",
"zip": "07039"
},
"threeDsV2Details": {
"merchantUrl": "https://www.paysafe.com",
"deviceChannel": "BROWSER",
"messageCategory": "PAYMENT",
"authenticationPurpose": "PAYMENT_TRANSACTION"
},
"threeDsVersion": "THREE_D_S_TWO",
"skip3ds": false,
"customerIp": "172.0.0.1",
"action": "REDIRECT",
"timeToLiveSeconds": 299,
"transactionType": "PAYMENT",
"card": {
"cardExpiry": {
"month": "10",
"year": "2030"
},
"holderName": "kranthi",
"cardType": "VI",
"cardBin": "400000",
"lastDigits": "1091",
"cardCategory": "CREDIT",
"issuingCountry": "US"
},
"merchantDescriptor": {
"dynamicDescriptor": "OnlineStore",
"phone": "1234567891"
},
"authentication": {
"id": "75faed50-6e8b-445d-8f94-3ae848e852c6",
"eci": "5",
"cavv": "AAIBBYNoEwAAACcKhAJkdQAAAAA=",
"status": "COMPLETED",
"threeDResult": "Y",
"threeDSecureVersion": "2.1.0",
"directoryServerTransactionId": "baf51a40-ed12-455c-9b5c-f1566c4a2884"
},
"profile": {
"locale": "en",
"firstName": "Kranthi",
"lastName": "Kumar",
"email": "test@paysafe.com",
"phone": "1234567891",
"dateOfBirth": {
"year": 1985,
"month": 4,
"day": 10
}
},
"returnLinks": [
{
"method": "GET",
"rel": "default",
"href": "https://usgaminggamblig.com/payment/return/success"
},
{
"method": "GET",
"rel": "on_failed",
"href": "https://usgaminggamblig.com/payment/return/failed"
},
{
"method": "GET",
"rel": "on_completed",
"href": "https://usgaminggamblig.com/payment/return/completed"
}
]
},
"links": [
{
"rel": "payment_handle"
}
],
"eventName": "PAYMENT_HANDLE_PAYABLE",
"eventType": "PAYMENT_HANDLE_PAYABLE",
"resourceId": "365d6e3a-844b-454b-bbcc-01c5ba055833",
"eventDate": "2021-09-29T10:25:21Z",
"mode": "live"
}
{
"attemptNumber": "1",
"type": "PAYMENT_HANDLE",
"payload": {
"id": "d68d1241-076c-4a24-b705-b5f0f7c5ab78",
"merchantRefNum": "5465477247-121c-4f3d-b015-57756f4a16bb",
"amount": 50000,
"accountId": "1024380650",
"usage": "SINGLE_USE",
"executionMode": "SYNCHRONOUS",
"currencyCode": "USD",
"status": "COMPLETED",
"paymentType": "CARD",
"txnTime": "2025-04-10T17:21:33.4",
"paymentHandleToken": "SCREhpnppPsIqkxO",
"billingDetails": {
"nickName": "Kranthi",
"street": "Queen Street West",
"city": "Toronto",
"country": "US",
"state": "NJ",
"zip": "07039"
},
"skip3ds": false,
"customerIp": "172.0.0.1",
"action": "REDIRECT",
"timeToLiveSeconds": 0,
"transactionType": "PAYMENT",
"card": {
"cardExpiry": {
"month": "10",
"year": "2030"
},
"holderName": "kranthi",
"cardType": "VI",
"cardBin": "400000",
"lastDigits": "1091",
"paymentToken": "SCREhpnppPsIqkxO",
"cardCategory": "CREDIT",
"issuingCountry": "US"
},
"merchantDescriptor": {
"dynamicDescriptor": "OnlineStore",
"phone": "1234567891"
},
"authentication": {
"id": "75faed50-6e8b-445d-8f94-3ae848e852c6",
"eci": "5",
"cavv": "AAIBBYNoEwAAACcKhAJkdQAAAAA=",
"status": "COMPLETED",
"threeDResult": "Y",
"threeDSecureVersion": "2.1.0",
"directoryServerTransactionId": "baf51a40-ed12-455c-9b5c-f1566c4a2884"
},
"profile": {
"locale": "en",
"firstName": "Kranthi",
"lastName": "Kumar",
"email": "test@paysafe.com",
"phone": "1234567891"
}
},
"resourceId": "d68d1241-076c-4a24-b705-b5f0f7c5ab78",
"links": [
{
"rel": "payment_handle"
}
],
"eventName": "PAYMENT_HANDLE_COMPLETED"
}
{
"attemptNumber": "1",
"type": "PAYMENT_HANDLE",
"payload": {
"amount": 50000,
"usage": "SINGLE_USE",
"executionMode": "SYNCHRONOUS",
"currencyCode": "USD",
"status": "FAILED",
"paymentType": "CARD",
"txnTime": "2025-04-10T17:28:48.216",
"billingDetails": {
"nickName": "Home",
"street": "13 Queen Street West",
"city": "Livingston",
"country": "US",
"state": "NJ",
"zip": "07039"
},
"threeDsV2Details": {
"merchantUrl": "https://api.qa.paysafe.com/checkout/v2/index.html#/desktop",
"deviceChannel": "BROWSER",
"messageCategory": "PAYMENT",
"transactionIntent": "GOODS_OR_SERVICE_PURCHASE",
"authenticationPurpose": "PAYMENT_TRANSACTION"
},
"threeDsVersion": "THREE_D_S_TWO",
"skip3ds": false,
"customerIp": "172.0.0.1",
"action": "REDIRECT",
"timeToLiveSeconds": 299,
"transactionType": "PAYMENT",
"error": {
"code": "5107",
"message": "Payment Hub Risk Rule Failed - threeDResult is R"
},
"card": {
"cardExpiry": {
"month": "10",
"year": "2026"
},
"holderName": "Earl Haley",
"cardType": "VI",
"cardBin": "400000",
"lastDigits": "2537",
"cardCategory": "CREDIT",
"issuingCountry": "US"
},
"merchantDescriptor": {
"dynamicDescriptor": "OnlineStoreeeeeeeee",
"phone": "1234567899"
},
"authentication": {
"id": "6a9b459f-c814-4dc1-bef0-bce78f46798a",
"eci": "7",
"status": "COMPLETED",
"threeDResult": "R",
"threeDSecureVersion": "2.2.0",
"directoryServerTransactionId": "27b803e1-7d75-4162-917a-3a9aeae95dde"
},
"profile": {
"locale": "en_US",
"firstName": "Nelda",
"lastName": "Rippin",
"email": "teamaces1744306111@ps.com",
"phone": "965-910-9384",
"dateOfBirth": {
"year": 1990,
"month": 12,
"day": 14
}
},
"returnLinks": [
{
"method": "GET",
"rel": "default",
"href": "https://usgaminggamblig.com/payment/return/"
},
{
"method": "GET",
"rel": "on_completed",
"href": "https://usgaminggamblig.com/payment/return/success"
},
{
"method": "GET",
"rel": "on_failed",
"href": "https://usgaminggamblig.com/payment/return/failed"
}
]
},
"links": [
{
"rel": "payment_handle"
}
],
"eventName": "PAYMENT_HANDLE_FAILED"
}
{
"attemptNumber": "1",
"type": "PAYMENT_HANDLE",
"payload": {
"id": "3ddbbc75-40fc-4d04-a568-89a738f95b55",
"merchantRefNum": "2912964d-f0c6-41e1-94ca-f433f31033df",
"amount": 50000,
"accountId": "1009688230",
"usage": "SINGLE_USE",
"currencyCode": "USD",
"status": "EXPIRED",
"previousStatus": "INITIATED",
"txnTime": "2025-04-10T17:55:00.084",
"paymentHandleToken": "SCbcdMpqsdE5ibMT",
"billingDetails": {
"nickName": "Home",
"street": "Queen Street West",
"city": "Livingston",
"country": "US",
"state": "NJ",
"zip": "07039"
},
"skip3ds": false,
"timeToLiveSeconds": 299,
"transactionType": "PAYMENT",
"card": {
"cardExpiry": {
"month": "10",
"year": "2026"
},
"holderName": "Jennifer Runolfsson",
"cardType": "VI",
"cardBin": "400000",
"lastDigits": "1026",
"cardCategory": "CREDIT",
"issuingCountry": "US"
},
"authentication": {},
"profile": {
"locale": "en_US",
"firstName": "Rosella",
"lastName": "Padberg",
"email": "teamaces1744306696@ps.com",
"phone": "752-820-3183",
"dateOfBirth": {
"year": 1990,
"month": 12,
"day": 14
}
},
"returnLinks": [
{
"method": "GET",
"rel": "default",
"href": "https://usgaminggamblig.com/payment/return/"
},
{
"method": "GET",
"rel": "on_completed",
"href": "https://usgaminggamblig.com/payment/return/success"
},
{
"method": "GET",
"rel": "on_failed",
"href": "https://usgaminggamblig.com/payment/return/failed"
}
]
},
"resourceId": "3ddbbc75-40fc-4d04-a568-89a738f95b55",
"links": [
{
"rel": "payment_handle"
}
],
"eventName": "PAYMENT_HANDLE_EXPIRED"
}
{
"attemptNumber": "1",
"type": "PAYMENT",
"payload": {
"id": "3cb38503-12f4-457c-b416-47c9ffd7113d",
"source": "SingleAPI",
"merchantRefNum": "5465477247-121c-4f3d-b015-57756f4a16bb",
"amount": 50000,
"currencyCode": "USD",
"status": "COMPLETED",
"txnTime": "2025-04-10T17:21:32Z",
"billingDetails": {
"street": "St Johns Rd",
"city": "Jaxonville",
"state": "FL",
"country": "US",
"zip": "32254",
"phone": "1234567891"
},
"profile": {
"firstName": "Kranthi",
"lastName": "Kumar",
"email": "test@paysafe.com"
},
"customerIp": "172.0.0.1",
"description": "Magazine subscription",
"settleWithAuth": true,
"cardType": "VI",
"cardBin": "400000",
"lastDigits": "1091",
"merchantDescriptor": {
"dynamicDescriptor": "OnlineStore",
"phone": "1234567891"
},
"preAuth": false,
"authentication": {
"eci": "5",
"cavv": "AAIBBYNoEwAAACcKhAJkdQAAAAA=",
"threeDResult": "Y",
"directoryServerTransactionId": "baf51a40-ed12-455c-9b5c-f1566c4a2884",
"threeDSecureVersion": "2.1.0"
}
},
"resourceId": "3cb38503-12f4-457c-b416-47c9ffd7113d",
"eventDate": "2025-04-10T17:21:32Z",
"settlements": [
{
"id": "3cb38503-12f4-457c-b416-47c9ffd7113d",
"merchantRefNum": "5465477247-121c-4f3d-b015-57756f4a16bb",
"status": "PENDING",
"txnTime": "2025-04-10T17:21:32Z",
"amount": 50000,
"processorCode": "VAN",
"gatewayReconciliationId": "4474467460"
}
],
"links": [
{
"rel": "payment"
}
],
"eventName": "PAYMENT_COMPLETED"
}
{
"attemptNumber": "1",
"payload": {
"id": "2502ae05-59ad-492c-aa9b-2e72404ba7af",
"status": "FAILED",
"error": {
"code": "3028",
"message": "The external processing gateway has reported a system error."
},
"txnTime": "2025-04-10T17:32:22Z",
"merchantRefNum": "1292dbbe-7c55-439c-b1b3-520998757067",
"amount": "6",
"currencyCode": "USD",
"cardBin": "400000",
"lastDigits": "2719",
"cardType": "VI"
},
"resourceId": "2502ae05-59ad-492c-aa9b-2e72404ba7af",
"type": "PAYMENT",
"eventDate": "2025-04-10T17:32:22Z",
"links": [
{
"rel": "payment"
}
],
"eventName": "PAYMENT_FAILED"
}