Search Overlay

paysafecard

paysafecard is a popular alternative payment method that enables customers to make online purchases without the need for a bank account or credit card. Customers can purchase prepaid vouchers from authorized retailers and then redeem them at various online platforms, including gaming, e-commerce, and entertainment sites. With its widespread availability and ease of use, paysafecard offers a secure and convenient solution for customers seeking a flexible payment option for their online transactions.

Features

  1. Broad acceptance across industries: paysafecard is widely accepted by various online platforms, from gaming to e-commerce and entertainment.

  2. Secure and private transactions: With paysafecard, customers can make purchases online without sharing personal or financial information.

  3. No bank account or credit card is required: paysafecard eliminates the requirement for traditional banking services, making it accessible to all.

  4. Flexible payment amounts: Customers can choose the desired denomination for prepaid vouchers, allowing for customized payment options.

  5. Convenient accessibility: paysafecard vouchers can be easily obtained from authorized retailers or online channels, ensuring widespread availability.

The Payments API caters to the following needs of paysafecard:

  • Payment Instrument: paysafecard, paysafecard account, Scan to Pay. 
  • Prepaid Payment Method: Pay online without entering any personal information, bank, or credit card details. 
  • Transaction types: Payments, Withdrawals, and Refunds. 
  • Payment authentication: PIN protected (Payment Services Directive 2 (PSD2) Compliance)

Product Availability

To see the availability of products, click here.

Typical Scenarios

paysafecard Payment

To process a payment request using paysafecard: 

  1. Create a payment handle with the following parameter settings:
    transactionType: PAYMENT
    paymentTypePAYSAFECARD
    POSTpaymenthub/v1/paymenthandles
  2. Paysafe returns a response with the following details:
    • The action parameter is set to REDIRECT
    • A payment_redirect link points to paysafecard page redirect URL
    • The status of the payment handle becomes INITIATED.
  3. After the customer is redirected using payment_redirect on the paysafecard page, the customer gets different options to pay depending upon merchant configuration and the currency of transaction:
    • 16-Digit BIN
    • paysafecard Account 
    • Scan to Pay
      Note: Only payment with the paysafecard account option makes the customer eligible for the payout service.
  4. Depending on the status of the transaction, the customer is redirected to the success or failure page.
    • The status of the payment handle becomes PAYABLE after a successful transaction and becomes FAILED, if the transaction fails.
    • You get notified of the status change through a configured webhook.
  5. Use the paymentHandleToken returned in the response to process the payment request.
    POSTpaymenthub/v1/payments
  6. In the response to the Payments API call, depending on your configured account at paysafecard and the processing currency, and the customer action, the response contains these parameters

    • The Id returned in the response is the payment ID, and it's the same as the settlement ID if settleWithAuth is set to TRUE, and must be stored at your end for future use, as paymentId is used in refunds directly.

    • If the Payment API request is done and settleWithAuth is set to FALSE, the Settlement API can be called separately. 
      • POST: paymenthub/v1/settlements
      • In this case, a new and separate Id from the Payments ID is returned in the response, and this should be stored at the merchant's end for future use, as settlementId is used in refunds directly and not paymentId. 

Note:

  • Customers who have a paysafecardaccount will be eligible for the payout service. 
  • To prevent the customer from changing the email ID on the paysafecard page, you can enable the email restriction feature while getting onboarded with paysafecard. 
    • You can pass the email ID of the customer under the profile.email parameter of the payment handle. 
    • The email ID used by the customer on the paysafecard page will be returned under gatewayResponse.profile.email. 

Merchant Initiated Transactions

You can request the consumer's consent to initiate future transactions in their name. You can either facilitate recurring payments, or one-click payments without the need for the consumer to be redirected or to log into a paysafecard account.

Note: The merchant-initiated transactions feature must be enabled at a MID level while onboarding by emailing Merchant Services <merchant-services@paysafe.com>.

Consent during the first payment

While initiating a payment, you can pass the automaticPaymentConsent parameter to the payment handle request.  

  • If the parameter is set to optional, a consent checkbox will be enabled when the consumer pays for their transaction. If you send this parameter, the consumer's associationId will be returned in the payment handle response. The association ID will only be active if the consumer accepts the consent checkbox.
  • If the parameter is set to mandatory, a text appears to inform the customer about the consent given and to agree and continue. 

To process a payment request with consumer consent: 

  1. Create a payment handle with the following parameter settings:
    transactionType: PAYMENT
    paymentType: PAYSAFECARD
    POSTpaymenthub/v1/paymenthandles
  2. An additional parameter automaticPaymentConsent needs to be passed under the paysafecard object. This parameter can be set to either OPTIONAL or MANDATORY. 
  3. After the consumer is redirected using payment_redirect on the paysafecard page, a consent screen appears and the consumer needs to login and complete the transaction using their paysafecard account.
  4. Depending on the status of the transaction, the consumer is redirected to either the success or failure page. 
    • The status of the payment handle becomes PAYABLE after a successful transaction and becomes FAILED, if the transaction fails.
    • You get notified of the status change through a configured webhook with automaticPaymentConsent and associationId in payment handle webhooks.
    • In the response, you will receive associationId for the payment consent given by the customer. 
  5. Use the paymentHandleToken returned in the response to process the payment request.
    POSTpaymenthub/v1/payments
  6. In the response to the Payments API call, depending on your configured account and processing currency at paysafecard the response contains parameters as displayed in the following code examples. 
    • If settleWithAuth is set to TRUE, the Id returned in the response is the paymentId and it is the same as the settlement ID and must be stored at your end for future use, as paymentId is used in refunds directly. 

    • If the Payments API request is made and settleWithAuth is set to FALSE, the Settlement API can be called separately. 
      • POSTpaymenthub/v1/settlements
      • In this case, a new and separate Id from the paymentId is returned in the response, and this should be stored at your end for future use, as settlementId is used in refunds directly and not the paymentId
  7. After the consumer gives the consent, the consent details are required to be saved at Paysafe.
    • Call the endpoint with basic customer details like firstNamelastNameand email, along with merchantCustomerId(Customer id generated using the Customer API
    • POST: paymenthub/v1/customers
    • The consumer will be created, and id will be returned as an identifier of the consumer. 
  8. Create a consumer: save the consent details to the consumer profile at Payment Handle Customer API using the id returned in the first call and paymentHandleToken as parameter paymentHandleTokenFrom
    • POST: paymenthub/v1/customers/{id}/paymenthandles
    • The consent details are saved, and a permanent token (multi-use payment handle token) is sent as paymentHandleToken.   

Recurring Payments 

  1. The permanent tokens((multi-use payment handle) can be fetched by doing a GET call on the customer ID using the Customer Payment Handles API
    • GET: paymenthub/v1/customers/{id}?fileds=paymenthandles
  2. In the response, the consent details are sent as a permanent token ((multi-use payment handle token) in the parameter paymentHandleToken.  
  3. The paymentHandleToken is used to call the Payments API to process the recurring payment requests. 

Points to consider

  1. You should store the multi-use payment handle token in your database to initiate future customer transactions. Suppose you trigger a payment handle API call with the same consumerId. In that case, the existing multi-use payment handle token will be cancelled, and you will need to create a payment handle request again and obtain consent from the customer, followed by payment completion and the generation of a new MUPH token ID.
  2. If the customer cancels the consent, you will receive the webhook for the multi-use payment handle cancelled from Paysafe. You need to create a payment handle request again and get permission from the customer, followed by payment completion and the generation of a new MUPH token ID.
  3. The consent is valid for 365 days. After the consent has expired, Paysafe will send a webhook notification to the merchant that the multi-use payment handle has expired. You need to create a payment handle request again and get consent from the customer, followed by payment completion and the generation of a new MUPH token ID. 
  4. After the payment handle call, the generated redirect URL is valid for 15 minutes. You must create a new payment handle request if consent takes more than 15 minutes.
  5. If you send countryRestriction in the payment handle request and the customer's country is different, then the customer will be able to give consent but not be able to complete the payment. 

Payment handle request

{
"merchantRefNum": "{{guid}}",
"transactionType": "PAYMENT",
"paysafecard": {
"consumerId": "merchantclientid5",
"minAgeRestriction": 18,
"kycLevelRestriction": "SIMPLE",
"countryRestriction": "US",
"automaticPaymentConsent": "OPTIONAL", // New field added with OPTONAL and MANDATORY as values
"expirationInMinutes" : "5"
},
"paymentType": "PAYSAFECARD",
"amount": 100,
"currencyCode": "USD",
"customerIp": "172.0.0.1",
"billingDetails": {
"nickName": "Home",
"street": "100 Queen",
"street2": "Unit 201",
"city": "Toronto",
"zip": "M5H 2N2",
"country": "CA"
},
"merchantDescriptor": {
"dynamicDescriptor": "OnlineStore",
"phone": "12345678"
},
"returnLinks": [
{
"rel": "on_completed",
"href": "https://usgaminggamblig.com/payment/return/success",
"method": "GET"
},
{
"rel": "on_failed",
"href": "https://usgaminggamblig.com/payment/return/failed",
"method": "GET"
},
{
"rel": "default",
"href": "https://usgaminggamblig.com/payment/",
"method": "GET"
}
]
}

Payment handle response with association Id and paymentConsent

{
"id": "38bf9df5-0018-4520-b346-32d8ae590efd",
"paymentType": "PAYSAFECARD",
"paymentHandleToken": "PHmq2ChrFuIbZ9oC",
"merchantRefNum": "098b9995ad6821c5fa47",
"currencyCode": "USD",
"txnTime": "2023-10-05T14:19:41Z",
"billingDetails": {
"street": "100 Queen",
"street2": "Unit 201",
"city": "Toronto",
"zip": "M5H 2N2",
"country": "CA"
},
"customerIp": "172.0.0.1",
"status": "INITIATED",
"links": [
{
"rel": "redirect_payment",
"href": "http://10.195.188.154:8011/alternatepayments/v1/redirect?accountId=1020576590_USD&paymentHandleId=38bf9df5-0018-4520-b346-32d8ae590efd&token=eyJhbGciOiJIUzI1NiJ9.eyJhY2QiOiIxMDIwNTc2NTkwX1VTRCIsInB5ZCI6IjM4YmY5ZGY1LTAwMTgtNDUyMC1iMzQ2LTMyZDhhZTU5MGVmZCIsImV4cCI6MTY5NjUxNzM4OH0.OyHO2qhP2wvIAuTTupY2GVJP99_EiuHLQfg8_tGtiHc"
}
],
"liveMode": false,
"simulator": "EXTERNAL",
"usage": "SINGLE_USE",
"action": "REDIRECT",
"executionMode": "SYNCHRONOUS",
"amount": 100,
"merchantDescriptor": {
"dynamicDescriptor": "OnlineStore",
"phone": "12345678"
},
"timeToLiveSeconds": 596,
"gatewayResponse": {
"processor": "PAYSAFECARD",
"id": "pay_1020012899_tRtGLVOhAgVFRi7gaLUNYWjhh7rg8H83_USD",
"associationId": "spi_vjQd11I6AErNi3TPZlsGkG6TuB"
},
"returnLinks": [
{
"rel": "on_failed",
"href": "https://usgaminggamblig.com/payment/return/failed"
},
{
"rel": "on_completed",
"href": "https://usgaminggamblig.com/payment/return/success"
},
{
"rel": "default",
"href": "https://usgaminggamblig.com/payment/"
}
],
"transactionType": "PAYMENT",
"gatewayReconciliationId": "pay_1020012899_tRtGLVOhAgVFRi7gaLUNYWjhh7rg8H83_USD",
"updatedTime": "2023-10-05T14:19:48Z",
"statusTime": "2023-10-05T14:19:48Z",
"paysafecard": {
"consumerId": "merchantclientid5",
"minAgeRestriction": 18,
"kycLevelRestriction": "SIMPLE",
"countryRestriction": "US",
"automaticPaymentConsent": "OPTIONAL",
"expirationInMinutes": "5"
}
}

Payments Request /paymenthub/v1/payments

{
"merchantRefNum": "{{guid}}",
"amount": 100,
"currencyCode": "USD",
"dupCheck": true,
"settleWithAuth": false,
"paymentHandleToken": "PHMFMbBzAHhiQHuA",
"customerIp": "172.0.0.1",
"description": "Magazine subscription"
}

Payments Response

{
"id": "11f04f55-62b6-47b9-9b26-a887c2dd29fc",
"paymentType": "PAYSAFECARD",
"paymentHandleToken": "PHF5nGavJ6Yx47pA",
"merchantRefNum": "a90ea4bfe6e71738cb8b",
"currencyCode": "USD",
"settleWithAuth": true,
"dupCheck": true,
"txnTime": "2023-10-09T19:07:20Z",
"billingDetails": {
"street1": "100 Queen",
"street2": "Unit 201",
"city": "Toronto",
"zip": "M5H 2N2",
"country": "CA"
},
"customerIp": "172.0.0.1",
"status": "COMPLETED",
"gatewayReconciliationId": "pay_1020012899_gXdKBO8gR04SY0rtsJGiJo5GyRWWeBOg_USD",
"amount": 100,
"availableToRefund": 0,
"consumerIp": "172.0.0.1",
"liveMode": false,
"simulator": "EXTERNAL",
"updatedTime": "2023-10-09T19:09:24Z",
"statusTime": "2023-10-09T19:09:24Z",
"gatewayResponse": {
"id": "pay_1020012899_gXdKBO8gR04SY0rtsJGiJo5GyRWWeBOg_USD",
"processor": "PAYSAFECARD",
"associationId": "spi_vjQd11I6AErNi3TPZlsGkG6TuB"
},
"availableToSettle": 0,
"paysafecard": {
"consumerId": "lxpaXGs011EYvhVQtuKt",
"minAgeRestriction": 18,
"kycLevelRestriction": "SIMPLE",
"countryRestriction": "US",
"automaticPaymentConsent": "OPTIONAL",
"expirationInMinutes": "5",
"isPaymentConsentProvided": true
},
"settlements": [
{
"amount": 100,
"txnTime": "2023-10-09T19:07:20.000+0000",
"availableToRefund": 100,
"merchantRefNum": "a90ea4bfe6e71738cb8b",
"id": "11f04f55-62b6-47b9-9b26-a887c2dd29fc",
"status": "COMPLETED"
}
]
}

SUPH to MUPH Request

{
"paymentHandleTokenFrom": "PHKbeFg5NECJVcap"
}

Response for SUPH to MUPH

{
"id": "0331276e-5223-4309-8980-33d046b7920d",
"status": "PAYABLE",
"usage": "MULTI_USE",
"paymentType": "PAYSAFECARD",
"action": "NONE",
"paymentHandleToken": "MH6lcTvskw9i2UxA",
"paysafeCard": {
"consumerId": "YoTMcT0cZNWgvE8ycnBa",
"minAgeRestriction": 18,
"kycLevelRestriction": "SIMPLE",
"countryRestriction": "US"
},
"paymentHandleTokenFrom": "PHKbeFg5NECJVcap",
"gatewayResponse": {
"paymentToken": "spi_hqBoSmduMegOWSci29xgEvThNQ",
"processor": "PAYSAFECARD",
"associationId": "spi_fEAcs3M9u3hicipNnUHEXYhyx8"
},
"customerId": "c8c7cd81-65a2-4cdf-a40f-b520188ac265"
}

You can request consent from the consumer separately without initiating a transaction. For this, you need to initiate a payment handle and request consent from the consumer. Once the consumer gives consent, the associationId will be returned in the payment handle response. After this, you can initiate payments at any time using a multi-use payment handle (MUPH) token to complete the transaction. 

To get consent from the consumer before initiating payments:

  1. Create a multi-use payment handle: 
    POST: paymenthub/v1/customers/{customerId}/paymenthandleswith the following parameter settings:
    paymentType: PAYSAFECARD
    This multi-use payment handle is created without specifying the amount parameter. The payment handle is valid for 365 days until the consumer cancels the consent. 
  2. The above step returns a redirect URL and the consumer is redirected using payment_redirect on the paysafecard page, and the consumer is displayed the consent screen.
    • At this point, the multi-use payment handle token will be in an initiated state.
    • The consumer needs to provide consent, after which the multi-use payment handle token will move to payable. 
    • The redirect URL is valid for 60 minutes.  
  3. Depending upon the status of the multi-use payment handle token: 
    • After the consumer has provided consent successfully, the status of the MUPH becomes PAYABLE. 
    • If the consumer cancels the consent or consent gets expired (365 days from the date of consent), you get notified of the status change through a configured webhook in the payment handle. 
    • In the response, you will receive an associationId for the payment consent given by the consumer. 
    • The field ispaymentconsent gives the status of consent given by the consumer.

To process a payment request using paysafecard with consumer consent already provided: 

  1. Use the multi-use paymentHandleToken returned in the response. 
    POST:paymenthub/v1/payments
  2. In response to the Payments API call, depending upon your configured account at paysafecard, the processing currency, and the consumer action:

    • If settleWithAuth is set to TRUE, the Id returned in the response is the paymentId, and it is the same as the settlement ID. The paymentId must be stored at your end for future use as it is used in refunds directly. 

    • If the Payment API request is done and settleWithAuth is set to FALSE, the Settlement API can be called separately. 

      • POST: paymenthub/v1/settlements

      • In this case, a new and separate Id from the payments ID is returned in the response, and this should be stored at your end for future use, as settlementId is used in refunds directly and not the paymentId

  3. If you need to check the consent provided by a particular consumer, you need to call this API
    GET: paymenthub/v1/customers/{customerId}/paymenthandles/{paymenthandleId}

Points to consider

  1. You should store the MUPH token in your database to initiate future transactions for the consumer. If you trigger a payment handle API call with the same consumerId, then the existing MUPH token gets cancelled, and you need to create a payment handle request again and get consent from the consumer.
  2. If the consumer cancels the consent, then you get notified via a webhook. You need to create a payment handle request again and get consent from the consumer. 
  3. The consumer consent is valid for 365 days from the date of the consent. After the consent has expired, Paysafe will send a webhook notification to you that the MUPH has expired. You need to create a payment handle request again and get a new consent from the consumer. 

Multi-use Payment handle request

{
"merchantRefNum": "151b9c95ce455fe87fd6",
"paysafecard": {
"consumerId": "J2LG6vPfQwjGIhUXj4QS"
},
"paymentType": "PAYSAFECARD",
"currencyCode": "USD",
"customerIp": "172.0.0.1",
"billingDetails": {
"nickName": "Home",
"street": "100 Queen",
"street2": "Unit 201",
"city": "Toronto",
"zip": "M5H 2N2",
"country": "CA"
},
"merchantDescriptor": {
"dynamicDescriptor": "OnlineStore",
"phone": "12345678"
},
"returnLinks": [
{
"href": "http://www.amazon.ca",
"rel": "default"
},
{
"href": "http://www.google.com",
"rel": "on_completed"
},
{
"href": "http://www.facebook.com",
"rel": "on_cancelled"
},
{
"href": "http://www.facebook.com",
"rel": "on_failed"
}
]
}

Multi-use Payment Handle Response

{
"id": "0fbc2378-9f53-4259-844b-6b9cd263dc92",
"merchantRefNum": "151b9c95ce455fe87fd6",
"status": "INITIATED",
"usage": "MULTI_USE",
"paymentType": "PAYSAFECARD",
"action": "REDIRECT",
"executionMode": "SYNCHRONOUS",
"returnLinks": [
{
"rel": "on_completed",
"href": "http://www.google.com"
},
{
"rel": "default",
"href": "http://www.amazon.ca"
},
{
"rel": "on_failed",
"href": "http://www.facebook.com"
},
{
"rel": "on_cancelled",
"href": "http://www.facebook.com"
}
],
"links": [
{
"rel": "redirect_payment",
"href": "http://mtl-qa-app-18.qa.oneplatform.io:8011/alternatepayments/v1/redirect?accountId=1010929480&paymentHandleId=0fbc2378-9f53-4259-844b-6b9cd263dc92&token=eyJhbGciOiJIUzI1NiJ9.eyJhY2QiOiIxMDEwOTI5NDgwIiwicHlkIjoiMGZiYzIzNzgtOWY1My00MjU5LTg0NGItNmI5Y2QyNjNkYzkyIiwiZXhwIjoxNzA1NjMwMTUyfQ.GGiSjnSRdmy39IL2WA4gMTZJxGW_w4rnvVQhWVzWQv8"
}
],
"customerIp": "172.0.0.1",
"accountId": "1010929480",
"paymentHandleToken": "MHEj9GzXFpV3IXj5",
"billingDetails": {
"street2": "Unit 201",
"city": "Toronto",
"country": "CA",
"zip": "M5H 2N2"
},
"timeToLiveSeconds": 3599,
"paysafecard": {
"consumerId": "J2LG6vPfQwjGIhUXj4QS",
"isPaymentConsent": false
},
"gatewayResponse": {
"processor": "PAYSAFECARD",
"associationId": "spi_QB2DYdv4S1Vb39AzHolvWWmwkF"
},
"customerId": "09e9fd66-0e5c-4b5d-b3a6-259a3a3a33d7"
}

Get payment handle status

{
"id": "0fbc2378-9f53-4259-844b-6b9cd263dc92",
"paymentType": "PAYSAFECARD",
"paymentHandleToken": "MHEj9GzXFpV3IXj5",
"merchantRefNum": "151b9c95ce455fe87fd6",
"currencyCode": "USD",
"txnTime": "2024-01-19T01:39:12Z",
"billingDetails": {
"street2": "Unit 201",
"city": "Toronto",
"zip": "M5H 2N2",
"country": "CA"
},
"customerIp": "172.0.0.1",
"status": "PAYABLE",
"links": [
{
"rel": "redirect_payment",
"href": "http://mtl-qa-app-18.qa.oneplatform.io:8011/alternatepayments/v1/redirect?accountId=1010929480&paymentHandleId=0fbc2378-9f53-4259-844b-6b9cd263dc92&token=eyJhbGciOiJIUzI1NiJ9.eyJhY2QiOiIxMDEwOTI5NDgwIiwicHlkIjoiMGZiYzIzNzgtOWY1My00MjU5LTg0NGItNmI5Y2QyNjNkYzkyIiwiZXhwIjoxNzA1NjMwMTUyfQ.GGiSjnSRdmy39IL2WA4gMTZJxGW_w4rnvVQhWVzWQv8"
}
],
"liveMode": false,
"simulator": "EXTERNAL",
"usage": "MULTI_USE",
"action": "REDIRECT",
"executionMode": "SYNCHRONOUS",
"merchantDescriptor": {
"dynamicDescriptor": "OnlineStore",
"phone": "12345678"
},
"timeToLiveSeconds": 31535967,
"gatewayResponse": {
"processor": "PAYSAFECARD",
"associationId": "spi_QB2DYdv4S1Vb39AzHolvWWmwkF"
},
"returnLinks": [
{
"rel": "on_failed",
"href": "http://www.facebook.com"
},
{
"rel": "on_cancelled",
"href": "http://www.facebook.com"
},
{
"rel": "default",
"href": "http://www.amazon.ca"
},
{
"rel": "on_completed",
"href": "http://www.google.com"
}
],
"transactionType": "PAYMENT_HANDLE",
"updatedTime": "2024-01-19T01:41:49Z",
"statusTime": "2024-01-19T01:41:49Z",
"paysafecard": {
"consumerId": "J2LG6vPfQwjGIhUXj4QS",
"isPaymentConsent": true
}
}

Get call for payment handle status using customer ID

{
"id": "0fbc2378-9f53-4259-844b-6b9cd263dc92",
"merchantRefNum": "151b9c95ce455fe87fd6",
"status": "PAYABLE",
"usage": "MULTI_USE",
"paymentType": "PAYSAFECARD",
"action": "REDIRECT",
"executionMode": "SYNCHRONOUS",
"returnLinks": [
{
"rel": "on_completed",
"href": "http://www.google.com"
},
{
"rel": "on_cancelled",
"href": "http://www.facebook.com"
},
{
"rel": "default",
"href": "http://www.amazon.ca"
},
{
"rel": "on_failed",
"href": "http://www.facebook.com"
}
],
"links": [
{
"rel": "redirect_payment",
"href": "http://mtl-qa-app-18.qa.oneplatform.io:8011/alternatepayments/v1/redirect?accountId=1010929480&paymentHandleId=0fbc2378-9f53-4259-844b-6b9cd263dc92&token=eyJhbGciOiJIUzI1NiJ9.eyJhY2QiOiIxMDEwOTI5NDgwIiwicHlkIjoiMGZiYzIzNzgtOWY1My00MjU5LTg0NGItNmI5Y2QyNjNkYzkyIiwiZXhwIjoxNzA1NjMwMTUyfQ.GGiSjnSRdmy39IL2WA4gMTZJxGW_w4rnvVQhWVzWQv8"
}
],
"customerIp": "172.0.0.1",
"accountId": "1010929480",
"paymentHandleToken": "MHEj9GzXFpV3IXj5",
"billingDetails": {
"street2": "Unit 201",
"city": "Toronto",
"country": "CA",
"zip": "M5H 2N2"
},
"timeToLiveSeconds": 31535974,
"paysafecard": {
"consumerId": "J2LG6vPfQwjGIhUXj4QS",
"isPaymentConsent": true
},
"gatewayResponse": {
"processor": "PAYSAFECARD",
"associationId": "spi_QB2DYdv4S1Vb39AzHolvWWmwkF"
},
"customerId": "09e9fd66-0e5c-4b5d-b3a6-259a3a3a33d7"
}

Get call for payment handle status using merchant reference number

{
"meta": {
"numberOfRecords": 1,
"limit": 10,
"page": 1
},
"paymentHandles": [
{
"id": "a4ccd57d-d449-4410-8425-bb090ac41582",
"merchantRefNum": "bde8e55b3f2bfc098b5a71e29fad",
"paymentHandleToken": "MHLcEQw23uW1G1L0",
"status": "PAYABLE",
"paymentType": "PAYSAFECARD",
"liveMode": false,
"simulator": "EXTERNAL",
"usage": "MULTI_USE",
"action": "REDIRECT",
"executionMode": "SYNCHRONOUS",
"currencyCode": "USD",
"merchantDescriptor": {
"dynamicDescriptor": "OnlineStore",
"phone": "12345678"
},
"billingDetails": {
"street2": "Unit 201",
"zip": "M5H 2N2",
"city": "Toronto",
"country": "CA"
},
"customerIp": "172.0.0.1",
"timeToLiveSeconds": 31481988,
"gatewayResponse": {
"processor": "PAYSAFECARD",
"associationId": "spi_GxJKeRKjuksnLDapHQsfr49Tn6"
},
"returnLinks": [
{
"rel": "on_completed",
"href": "http://www.google.com"
},
{
"rel": "default",
"href": "http://www.amazon.ca"
},
{
"rel": "on_cancelled",
"href": "http://www.facebook.com"
},
{
"rel": "on_failed",
"href": "http://www.facebook.com"
}
],
"transactionType": "PAYMENT_HANDLE",
"txnTime": "2024-01-18T16:12:10Z",
"updatedTime": "2024-01-18T16:12:30Z",
"statusTime": "2024-01-18T16:12:30Z",
"links": [
{
"rel": "redirect_payment",
"href": "http://mtl-qa-app-18.qa.oneplatform.io:8011/alternatepayments/v1/redirect?accountId=1010929480&paymentHandleId=a4ccd57d-d449-4410-8425-bb090ac41582&token=eyJhbGciOiJIUzI1NiJ9.eyJhY2QiOiIxMDEwOTI5NDgwIiwicHlkIjoiYTRjY2Q1N2QtZDQ0OS00NDEwLTg0MjUtYmIwOTBhYzQxNTgyIiwiZXhwIjoxNzA1NTk2MTMxfQ.7zc_eagtRJh2T65pLk4-f6gHvp4jDkSotMBYMHmmfH0"
},
{
"rel": "self",
"href": "https://api.qa.paysafe.com/alternatepayments/v1/accounts/1010929480/paymenthandles/a4ccd57d-d449-4410-8425-bb090ac41582"
}
],
"paysafecard": {
"consumerId": "5Ny8PKfbQMVkcmUp0uEl",
"isPaymentConsent": true
}
}
]
}

Payments call using MUPH Token - Request

{
"merchantRefNum": "9c01451d5cae23e9444f2bad0628",
"amount": 100,
"currencyCode": "USD",
"dupCheck": true,
"settleWithAuth": true,
"paymentHandleToken": "MHEj9GzXFpV3IXj5",
"customerIp": "172.0.0.1",
"description": "Magazine subscription"
}

Payments call using MUPH Token - Response

{
"id": "216cb43f-0d4f-4f63-bd0c-05efe504f4f8",
"paymentType": "PAYSAFECARD",
"paymentHandleToken": "MHEj9GzXFpV3IXj5",
"merchantRefNum": "9c01451d5cae23e9444f2bad0628",
"currencyCode": "USD",
"settleWithAuth": true,
"dupCheck": true,
"txnTime": "2024-01-19T01:39:12Z",
"billingDetails": {
"street2": "Unit 201",
"city": "Toronto",
"zip": "M5H 2N2",
"country": "CA"
},
"customerIp": "172.0.0.1",
"status": "COMPLETED",
"amount": 100,
"availableToRefund": 100,
"consumerIp": "172.0.0.1",
"liveMode": false,
"simulator": "EXTERNAL",
"updatedTime": "2024-01-19T01:45:13Z",
"statusTime": "2024-01-19T01:45:13Z",
"gatewayResponse": {
"id": "pay_1020012899_E3WNaw30kKljBJg0RPAhiYwJxYAfZUbv_USD",
"processor": "PAYSAFECARD",
"associationId": "spi_QB2DYdv4S1Vb39AzHolvWWmwkF"
},
"availableToSettle": 0,
"paysafecard": {
"consumerId": "J2LG6vPfQwjGIhUXj4QS",
"isPaymentConsent": true
},
"settlements": [
{
"amount": 100,
"txnTime": "2024-01-19T01:39:12.000+0000",
"availableToRefund": 100,
"merchantRefNum": "9c01451d5cae23e9444f2bad0628",
"id": "216cb43f-0d4f-4f63-bd0c-05efe504f4f8",
"status": "COMPLETED"
}
]
}

paysafecard Withdrawal

paysafecard payouts allow the transfer of funds to the paysafecard account holders. Payout is executed by the business partner at the demand of the customer. 

Payouts are currently only available for paysafecard account holders in the following countries: 

Austria Croatia Denmark Georgia
Belgium Cyprus Finland Germany
Bulgaria Czech Rep. France Greece
Hungary Ireland Italy Latvia
Luxemburg Malta Netherlands Norway
Poland Portugal Romania Slovakia
Slovenia Spain Sweden Switzerland
United Kingdom      

Payout Prerequisites

  • For each payout request, the business partner needs to provide the customer’s personal details (first name, last name, email address, and date of birth) to paysafecard during the payout call. paysafecard automatically validates the provided data against the registered paysafecard account data. The payout will automatically be refused if the data does not match.

  • If the data does not match 100%; the automatic validation cannot proceed, and the payout will be refused automatically. The input will be normalized before the comparison starts by paysafecard.

To process a paysafecard withdrawal request:

  1. Create a payment handle with the following parameter settings:
    transactionType: STANDALONE_CREDIT
    paymentTypePAYSAFECARD
    POST:paymenthub/v1/paymenthandles
  2. The request needs two objects 

  3. In the response, a one-time token will be received with the tag paymentHandleToken and the status turns to PAYABLE, this token is then passed to the Standalone Credits API. 
    POST: paymenthub/v1/standalonecredits
  4. The final response will contain the details of the transaction with parameters like
    • id - unique identifier at Paysafe
    • gatewayReconciliationId - unique identifier at Skrill
    • Status of the transaction that can be used for future references.
  5. The status of the withdrawal will be PENDING initially and moves to COMPLETED once the refund is processed to the customer's bank account, at each step a webhook will be triggered to you. 

paysafecard Refunds

To process a refund transaction using paysafecard:

You can initiate a refund transaction only for a transaction whose settlement/payment is completed.

  1. After the payment and then settlement is done
    • The status is COMPLETED in the response of payments information
    • The refund can be initiated using the Settlement ID which is the same as Payment ID if settleWithAuth is TRUE.
  2. Create a refund request with the Refunds API. 
    POST: /paymenthub/v1/settlements/{settlementId }/refunds
  3. The response contains details of the payment and a unique identifier that could be used to refer to each individual refund, either partial or full.
  4. The status of the refund will be PENDING initially and moves to COMPLETED once the refund is processed to the customer's bank account, at each step a webhook will be triggered to you. 

Note: A refund transaction can only be initiated by you and for a transaction whose settlement/payment is completed. Partial refunds are not available. 

APIs to use

Get Balance

You can retrieve the balance in your accounts using the Get Balance API. The API call is a GET request and returns an array of account balances.

Note: While onboarding a customer to paysafecard, contact Paysafe Integration Team and get this feature enabled for your account. 

Name Mandatory/Optional Description
paymentType Mandatory Payment Type (PAYSAFECARD)
currencyCode Mandatory Filters based on currency, if provided. (3 letter ISO currency code)
accountId Optional  Only required if you have multiple accounts and maintain different balances at each level and you want to filter them in response. 

Sample Request:

GET: https://api.test.paysafe.com/paymenthub/v1/balances?paymentType={paymentType}&currencyCode={currencyCode}

Sample Response

[{
"currencyCode": "GBP",
"paymentType": "PAYSAFECARD",
"balance": "895009",
"gatewayResponse": {
"processor": "PAYSAFECARD",
"daily_payout_amount": 0,
"daily_payout_balance": 1000000,
"daily_payout_limit": 1000000,
"total_payment_amount": 13569,
"total_payout_amount": 118560,
"total_payout_balance": 895009
}
}]

Parameters

Payments API response parameters

Parameter Mandatory Description
gatewayResponse.id M - Returned for all transactions Unique identifier of the payment at paysafecard which could be used for reconciliation (common for all APMs)
gatewayResponse.profile C - returned only in specific cases and mandatory for Payouts  Profile details of the user.
gatewayResponse.profile.dateOfBirth.day C - returned only in specific cases and mandatory for Payouts 

Day of date of birth of the paysafecard account holder at paysafecard.

gatewayResponse.profile.dateOfBirth.Month C - returned only in specific cases and mandatory for Payouts 

Month of date of birth of the paysafecard account holder at paysafecard. 

gatewayResponse.profile.dateOfBirth.Year C - returned only in specific cases and mandatory for Payouts 

Year of date of birth of the paysafecard account holder at paysafecard.

gatewayResponse.profile.firstName C - returned only in specific cases and mandatory for Payouts 

First name of the paysafecard account holder at paysafecard

gatewayResponse.profile.lastName C - returned only in specific cases and mandatory for Payouts 

Last Name of the paysafecard account holder at paysafecard.

gatewayResponse.pscId

C - returned only in specific cases and mandatory for Payouts  Unique user identifier sent back from paysafecard.

gatewayResponse.associationId

M - Returned for all transactions where customer provides his consent for merchant initiated payments.  Association ID is shared by Paysafecard once customer provides the consent for merchant initiated payments. 

paysafecard.consumerId

 

M - Returned for all transactions Unique Merchant-User-processor identifier provided by Merchant in request. 

paysafecard object

Parameter Mandatory Description
consumerId M - Needed for all transactions Unique email ID of the user which is used to identify account at Skrill. 
pscId C - This is mandatory if email in profile is not provided Unique user identifier provided by paysafecard in payments call. 

profile object

Parameter Mandatory Description
firstName M - Needed for all transactions

This is the user's first name.

lastName M - Needed for all transactions

This is the user's last name.

email C - This is mandatory if pscId in paysafecard object is not provided email Id of the user registered at paysafecard.
dateOfBirth.day M - Needed for all transactions Day of Date of Birth of the paysafecard account holder at paysafecard.
dateOfBirth.Month M - Needed for all transactions Month of Date of Birth of the paysafecard account holder at paysafecard.
dateOfBirth.Year M - Needed for all transactions Year of Date of Birth of the paysafecard account holder at paysafecard.

Code Examples

Payment handle API request

{
"merchantRefNum": "6005618c-afe8-41c2-a65f-50138790d7b4",
"transactionType": "PAYMENT",
"accountId": "1001737020",
"paysafecard": {
"consumerId": "merchantclientid",
"minAgeRestriction": 18,
"kycLevelRestriction": "SIMPLE"

},
"paymentType": "PAYSAFECARD",
"amount": 500,
"currencyCode": "WUR",
"customerIp": "172.0.0.1",
"billingDetails": {
"nickName": "Home",
"street": "100 Queen",
"street2": "Unit 201",
"city": "Toronto",
"zip": "M5H 2N2",
"country": "UK"
},
"merchantDescriptor": {
"dynamicDescriptor": "OnlineStore",
"phone": "12345678"
},
"returnLinks": [{
"rel": "on_completed",
"href": "https://usgaminggamblig.com/payment/return/success",
"method": "GET"
}, {
"rel": "on_failed",
"href": "https://usgaminggamblig.com/payment/return/failed",
"method": "GET"
}, {
"rel": "default",
"href": "https://usgaminggamblig.com/payment/",
"method": "GET"
}
]
}

Payment handle API response

{
"id": "e8c217c0-f212-4007-b4ac-fd0642a75d3f",
"paymentType": "PAYSAFECARD",
"paymentHandleToken": "PHlO4bOFGsNX5X1N",
"merchantRefNum": "df9b287b-a0df-4996-87b0-3089e4b1363f",
"currencyCode": "EUR",
"txnTime": "2023-03-17T10:47:08Z",
"billingDetails": {
"street": "100 Queen",
"street2": "Unit 201",
"city": "Toronto",
"zip": "M5H 2N2",
"country": "UK"
},
"customerIp": "172.0.0.1",
"status": "INITIATED",
"links": [
{
"rel": "redirect_payment",
"href": "https://api.test.paysafe.com/alternatepayments/v1/redirect?accountId=1001737020&paymentHandleId=e8c217c0-f212-4007-b4ac-fd0642a75d3f&token=eyJhbGciOiJIUzI1Ni"
}
],
"liveMode": false,
"usage": "SINGLE_USE",
"action": "REDIRECT",
"executionMode": "SYNCHRONOUS",
"amount": 1,
"merchantDescriptor": {
"dynamicDescriptor": "OnlineStore",
"phone": "12345678"
},
"timeToLiveSeconds": 599,
"gatewayResponse": {
"processor": "PAYSAFECARD",
"id": "pay_1020009410_9QDoaAb53xJYymobWDtatr0n3KUphzAD_EUR"
},
"returnLinks": [
{
"rel": "on_completed",
"href": "https://usgaminggamblig.com/payment/return/success"
},
{
"rel": "on_failed",
"href": "https://usgaminggamblig.com/payment/return/failed"
},
{
"rel": "default",
"href": "https://usgaminggamblig.com/payment/"
}
],
"transactionType": "PAYMENT",
"gatewayReconciliationId": "pay_1020009410_9QDoaAb53xJYymobWDtatr0n3KUphzAD_EUR",
"updatedTime": "2023-03-17T10:47:08Z",
"statusTime": "2023-03-17T10:47:08Z",
"paysafecard": {
"consumerId": "merchantclientid"
}
}

Payments API request

{
"merchantRefNum": "5bb81950-bed0-4e4a-8cce-8af39a6192c7",
"amount": 1000,
"currencyCode": "EUR",
"dupCheck": true,
"settleWithAuth": true,
"paymentHandleToken": "PHtxnH0z99GXgc0Z",
"customerIp": "172.0.0.1",
"description": "Test Paysafe"
}

Payments API response

{
"id": "3946cb51-9a7d-406e-b546-17c97d94ee2d",
"paymentType": "PAYSAFECARD",
"paymentHandleToken": "PHlO4bOFGsNX5X1N",
"merchantRefNum": "123eb3cd-847b-4c2b-9d8c-7786c5dea18e",
"currencyCode": "EUR",
"settleWithAuth": false,
"dupCheck": true,
"txnTime": "2023-03-17T10:47:08Z",
"billingDetails": {
"street1": "100 Queen",
"street2": "Unit 201",
"city": "Toronto",
"zip": "M5H 2N2",
"country": "UK"
},
"customerIp": "172.0.0.1",
"status": "COMPLETED",
"gatewayReconciliationId": "pay_1020009410_9QDoaAb53xJYymobWDtatr0n3KUphzAD_EUR",
"amount": 1,
"availableToRefund": 0,
"consumerIp": "172.0.0.1",
"liveMode": false,
"simulator": "EXTERNAL",
"updatedTime": "2023-03-17T10:47:39Z",
"statusTime": "2023-03-17T10:47:39Z",
"gatewayResponse": {
"id": "pay_1020009410_9QDoaAb53xJYymobWDtatr0n3KUphzAD_EUR",
"pscId": 184746891465,
"processor": "PAYSAFECARD",
"profile": {
"firstName": "Test",
"lastName": "SquvmeUPmFYBvAvokItGtfaamD",
"dateOfBirth": {
"day": 15,
"month": 9,
"year": 1992
}
}
},
"availableToSettle": 1,
"paysafecard": {
"consumerId": "merchantclientid"
}
}

Standalone credit - payment handle API request

{
"merchantRefNum": "0599b8fc32e757e356cc",
"paysafecard": {
"consumerId": "merchantclientid",
"pscId":"184746891465"
},
"transactionType": "STANDALONE_CREDIT",
"shopperUrl": "https://google.com/",
"profile": {
"firstName": "Test",
"lastName": "SquvmeUPmFYBvAvokItGtfaamD",
"dateOfBirth": {
"day": 15,
"month": 9,
"year": 1992
}},
"paymentType": "PAYSAFECARD",
"amount": 500,
"currencyCode": "USD",
"customerIp": "172.0.0.1",
"billingDetails": {
"nickName": "Home",
"street": "100 Queen",
"street2": "Unit 201",
"city": "Toronto",
"zip": "M5H 2N2",
"country": "CA"
},
"merchantDescriptor": {
"dynamicDescriptor": "OnlineStore",
"phone": "12345678"
},
"returnLinks": [
{
"rel": "on_completed",
"href": "https://usgaminggamblig.com/payment/return/success",
"method": "GET"
},
{
"rel": "on_failed",
"href": "https://usgaminggamblig.com/payment/return/failed",
"method": "GET"
},
{
"rel": "default",
"href": "https://usgaminggamblig.com/payment/",
"method": "GET"
}
]
}

Standalone credit - payment handle API response

{
"id": "3202df97-24ba-4a39-badb-cec34a73378c",
"paymentType": "PAYSAFECARD",
"paymentHandleToken": "PHoQM3F6IZr6Q9u5",
"merchantRefNum": "28a6dfea3263458a1c3e",
"currencyCode": "USD",
"txnTime": "2022-09-15T11:17:19Z",
"billingDetails": {
"street": "100 Queen",
"street2": "Unit 201",
"city": "Toronto",
"zip": "M5H 2N2",
"country": "CA"
},
"customerIp": "172.0.0.1",
"status": "PAYABLE",
"liveMode": false,
"usage": "SINGLE_USE",
"action": "NONE",
"executionMode": "SYNCHRONOUS",
"amount": 500,
"merchantDescriptor": {
"dynamicDescriptor": "OnlineStore",
"phone": "12345678"
},
"timeToLiveSeconds": 599,
"gatewayResponse": {
"processor": "PAYSAFECARD",
"id": "out_6235070452_ayuUQc6xXnocrat7oTO7VTLrHtUPAEWv_USD",
"status": "VALIDATION_SUCCESSFUL"
},
"returnLinks": [
{
"rel": "default",
"href": "https://usgaminggamblig.com/payment/"
},
{
"rel": "on_failed",
"href": "https://usgaminggamblig.com/payment/return/failed"
},
{
"rel": "on_completed",
"href": "https://usgaminggamblig.com/payment/return/success"
}
],
"transactionType": "STANDALONE_CREDIT",
"gatewayReconciliationId": "out_6235070452_ayuUQc6xXnocrat7oTO7VTLrHtUPAEWv_USD",
"updatedTime": "2022-09-15T11:17:19Z",
"statusTime": "2022-09-15T11:17:19Z",
"profile": {
"firstName": "Test",
"lastName": "SquvmeUPmFYBvAvokItGtfaamD",
"email": "JHxDfTbXua@LAKdfisezY.svz",
"dateOfBirth": {
"day": 15,
"month": 9,
"year": 1992
}
},
"paysafecard": {
"consumerId": "merchantclientid"
}
}

Standalone credit - API request

{
"merchantRefNum": "e10abc4d4be42ba19cf0",
"amount": "3000",
"currencyCode": "EUR",
"dupCheck": true,
"settleWithAuth": true,
"paymentHandleToken": "PH9pFHcgzpdqZLQB",
"customerIp": "172.0.0.1",
"description": "Magazine subscription"
}

Standalone credit - API response

{
"id": "e5b39cb0-538c-44bf-918e-cf067de9adc0",
"paymentType": "PAYSAFECARD",
"paymentHandleToken": "PHoQM3F6IZr6Q9u5",
"merchantRefNum": "3291035a-93db-4243-a459-74da030d4fe0",
"currencyCode": "USD",
"dupCheck": true,
"txnTime": "2022-09-15T11:17:58Z",
"billingDetails": {
"street1": "100 Queen",
"street2": "Unit 201",
"city": "Toronto",
"zip": "M5H 2N2",
"country": "CA"
},
"customerIp": "204.91.0.12",
"status": "COMPLETED",
"gatewayReconciliationId": "out_6235070452_ayuUQc6xXnocrat7oTO7VTLrHtUPAEWv_USD",
"amount": 500,
"returnLinks": [
{
"rel": "default",
"href": "https://usgaminggamblig.com/payment/"
},
{
"rel": "on_failed",
"href": "https://usgaminggamblig.com/payment/return/failed"
},
{
"rel": "on_completed",
"href": "https://usgaminggamblig.com/payment/return/success"
}
],
"liveMode": false,
"updatedTime": "2022-09-15T11:17:59Z",
"statusTime": "2022-09-15T11:17:59Z",
"gatewayResponse": {
"processor": "PAYSAFECARD",
"id": "out_6235070452_ayuUQc6xXnocrat7oTO7VTLrHtUPAEWv_USD",
"status": "SUCCESS"
},
"profile": {
"firstName": "Test",
"lastName": "SquvmeUPmFYBvAvokItGtfaamD",
"email": "JHxDfTbXua@LAKdfisezY.svz",
"dateOfBirth": {
"day": 15,
"month": 9,
"year": 1992
}
},
"paysafecard": {
"consumerId": "merchantclientid"
}
}

Refunds API - request

POST:paymenthub/v1/settlements/{settlementId}/refunds
{
"merchantRefNum": "db1c255c-3081-4e04-8838-fe1ab2545445",
"amount": 2500,
"dupCheck": true
}

Refunds API - response

{
"id": "a07cc34d-49d0-4cc9-a8cc-9a92b1d564a9",
"paymentType": "PAYSAFECARD",
"merchantRefNum": "cfbb5d43-e26b-4e80-9245-5206a348c586",
"currencyCode": "USD",
"txnTime": "2023-06-27T13:19:34Z",
"status": "COMPLETED",
"gatewayReconciliationId": "bc363f96-c75d-46c0-a5a9-95a5c6415fc6",
"amount": 100,
"updatedTime": "2023-06-27T13:19:35Z",
"statusTime": "2023-06-27T13:19:35Z",
"liveMode": false,
"gatewayResponse": {
"id": "bc363f96-c75d-46c0-a5a9-95a5c6415fc6",
"processor": "PAYSAFECARD"
},
"source": "SingleAPI"
}

Testing Instructions

Test Customer Id Values

Customer ID is also known as Merchant Client ID, is an important parameter for the integration of paysafecard. The Customer ID identifies the Customer on our business partners side. The most optimal customer ID is a completely random value. A value that uniquely identifies the customer and is disconnected from any personal information. This customer ID value should be the same for all transactions of the customer. Here are Guidelines for possible Customer IDs:

Valid Values:

Value Type
2c3be0b50c7a5f1964a63d78f38a6ffc41c027e9 SHA1 - test@123.com
742f2b1a55cd5d606ea44b4fcb54646a MD5 - test@123.com
3a5b0d0777dead9df93d502df85c8180e53804eb SHA1 - UsernameValue1
3192481752123 Random Customer Identifier
CustomerID1 Customer Identifier free of personal information

Invalid Values

test@123.com
Username_1
FirstName123
LastName123
Timestamp
IP Address

Sending any form of the invalid values will not be accepted. If you intend to process paysafecard transactions on multiple brands, please inquire about the possibilities of separating multiple entities for your account.

Webhooks

Payment Handle

  1. PAYMENT_HANDLE_PAYABLE – This webhook signifies that the payment handle token created for the required purpose can now be executed, and the preliminary requirements are completed, the next API call with the payment handle can be done.
  2. PAYMENT_HANDLE_PROCESSING – This webhook is triggered when the user is successfully redirected to the payment platform page and operation has started for the payment by the user.
  3. PAYMENT_HANDLE_COMPLETED – This webhook is triggered when the process of the payment handle is token is completed after triggering the next API, Payments or Standalone Credit API.
  4. PAYMENT_HANDLE_EXPIRED – This webhook is triggered when the next step is not initiated after the payment handle is created within the given time frame, the duration can be seen in the response to /paymenthub/v1/paymenthandles API under the tag timeToLiveSeconds.

Payments

  1. PAYMENT_PROCESSING: The payment is in progress. In some cases, there might be delays due to an action pending by you or the customer. 
  2. PAYMENT_PENDING - The payment is pending because the transaction hasn't been completed from the bank account to Skrill wallet to you.
  3. PAYMENT_COMPLETED/SETTLEMENT_COMPLETED – The payment was completed successfully.
  4. PAYMENT_FAILED – This webhook is triggered when the payment fails during the process.

Settlement

  1. SETTLEMENT_FAILED - This webhook is triggered in case the transaction was initially completed and later failed due to some settlement error.
  2. SETTLEMENT_CANCELLED - This webhook is triggered when the transaction was cancelled after it was completed
  3. SETTLEMENT_ERRORED - This webhook is used when there is a technical error during the initiation of a transaction.
  4. SETTLEMENT_PENDING - This webhook is triggered when the withdrawal has been initiated but due to various bank delay reasons or time zone issues the actual money transfer has not happened.

Standalone Credits/Withdrawal

  1. SA_CREDIT_FAILED - This webhook is triggered in case the transaction was initially completed and later failed due to some settlement error.
  2. SA_CREDIT_CANCELLED - This webhook is triggered when the transaction was cancelled after it was completed
  3. SA_CREDIT_ERRORED - This webhook is used when there is a technical error during the initiation of a transaction.
  4. SA_CREDIT_PENDING - This webhook is triggered when the withdrawal has been initiated but due to various bank delay reasons or time zone issues the actual money transfer has not happened.

Refunds

  1. REFUND_FAILED - This webhook is triggered when the refund is initiated but failed due to a functional error for refund amount is more than the payment amount.
  2. REFUND_COMPLETED - This webhook is triggered when the refund has been successfully transferred from merchant account to the user's chosen bank account
  3. REFUND_PENDING - This webhook is triggered when refund has been initiated but due to various bank delay reasons or time zone issues the actual money transfer has not happened.