Summary of Changes
This section provides a high-level understanding of the migration process with detailed illustrations of the user journey.Here are the changes in the two methods of integration:
- Direct API
- Paysafe Checkout
Changes in the Direct Integration of the Paysafe Payments API
Payment Process Flow using the Paysafe Payments API
The above diagram shows the API call sequence and summarizes the Payment process flow using the Paysafe Payments API.
APIs to use: Payment Handles + Payments
NETELLER REST API Example
Endpoint
POSThttps://api.neteller.com/v1/transferIn
curl -X POST https://test.api.neteller.com/v1/transferIn
-u devcentre322:B-qa2-0-53625f86-302c021476f52bdc9deab7aea876bb28762e62f92fc6712d0214736abf501e9675e55940e83ef77f5c304edc7968 \
-H 'Content-Type: application/json' \
-d '{
{
"paymentMethod": {
"type": "neteller",
"value": "netellertest_EUR@neteller.com"
},
"transaction": {
"merchantRefId": "{{$timestamp}}",
"amount": "50000",
"currency": "EUR"
},
"verificationCode": "908379"
}
{
"customer": {
"link": {
"url": "https://test.api.neteller.com/v1/customers/CUS_18C9DE8B-F1AC-4BCE-96E2-9C760B62C18A",
"rel": "customer",
"method": "GET"
}
},
"transaction": {
"merchantRefId": "1571071571",
"amount": 50000,
"currency": "EUR",
"id": "250571071571910",
"transactionType": "Member to Merchant Transfer",
"description": "netellertest_eur@neteller.com to Product Demo APP1",
"createDate": "2019-10-14T16:46:12Z",
"updateDate": "2019-10-14T16:46:12Z",
"status": "accepted",
"fees": [
{
"feeType": "service_fee",
"feeAmount": 1750,
"feeCurrency": "EUR"
}
]
},
"links": [
{
"url": "https://test.api.neteller.com/v1/payments/1571071571?refType=merchantRefId",
"rel": "self",
"method": "GET"
}
]
}
Paysafe Payments API Example
New Endpoints
Step 1: Create Payment Handle
POSThttps://api.paysafe.com/paymenthub/v1/paymenthandles
curl -X POST https://api.test.paysafe.com/paymenthub/v1/paymenthandles \
-u devcentre322:B-qa2-0-53625f86-302c021476f52bdc9deab7aea876bb28762e62f92fc6712d0214736abf501e9675e55940e83ef77f5c304edc7968 \
-H 'Content-Type: application/json' \
-d '{
"merchantRefNum": "merchantRefNum-201",
"transactionType": "PAYMENT",
"neteller": {
"consumerId": "johndoe@email.com",
"detail1Description": "Details 1 description",
"detail1Text": "Details 1 text"
},
"paymentType": "NETELLER",
"amount": 500,
"currencyCode": "USD",
"customerIp": "172.0.0.1",
"billingDetails": {
"street": "George Street",
"street2": "3 Edgar Buildings",
"city": "Bath",
"zip": "BA1 2FJ",
"country": "GB"
},
"returnLinks": [
{
"rel": "on_completed",
"href": "https://usgaminggambling.com/payment/return/success",
},
{
"rel": "on_failed",
"href": "https://usgaminggambling.com/payment/return/failed",
},
{
"rel": "default",
"href": "https://usgaminggambling.com/payment/",
}
]
}'
Headers
{
"id": "82d57742-e2db-48ea-a726-a60e6f8265a3",
"paymentType": "NETELLER",
"paymentHandleToken": "PHQhlWpTRKzBXubN",
"merchantRefNum": "5493aaf1a1d6dd13d2b53412f0ec",
"currencyCode": "USD",
"dupCheck": true,
"status": "INITIATED",
"liveMode": true,
"usage": "SINGLE_USE",
"action": "REDIRECT",
"executionMode": "SYNCHRONOUS",
"amount": 500,
"billingDetails": {
"street": "George Street",
"street2": "3 Edgar Buildings",
"city": "Bath",
"zip": "BA1 2FJ",
"country": "GB"
},
"customerIp": "172.0.0.1",
"timeToLiveSeconds": 899,
"gatewayResponse": {
"orderId": "ORD_0d676b4b-0eb8-4d78-af25-e41ab431e325",
"totalAmount": 3599,
"currency": "EUR",
"status": "pending",
"lang": "en_US",
"processor": "NETELLER"
},
"neteller": {
"consumerId": "johndoe@email.com",
"detail1Description": "Details 1 description",
"detail1Text": "Details 1 text"
},
"returnLinks": [
{
"rel": "default",
"href": "https://usgaminggambling.com/payment/"
},
{
"rel": "on_completed",
"href": "https://usgaminggambling.com/payment/return/success"
},
{
"rel": "on_failed",
"href": "https://usgaminggambling.com/payment/return/failed"
}
],
"txnTime": "2019-01-24T10:39:50Z",
"updatedTime": "2019-01-24T10:39:50Z",
"statusTime": "2019-01-24T10:39:50Z",
"links": [
{
"rel": "redirect_payment",
"href": "https://customer.at.neteller.com/rest/payment/panel?mid=1090001806&mtid=pay_1090001806_00LwEhZ8WtIy8PmIhRCUi3JScUti6jKi_EUR&amount=0.01¤cy=EUR&customerHash=741e624cf6ae4fbca4338cb5597fe531"
}
],
}
Step 2: Verify the Payment Handle Status is PAYABLE
Once you get the control back on the success URL, please verify the status of the Payment Handle.
You can do this in two ways:
- Webhook Notification: You will receive a notification for the event type PAYMENT_HANDLE_PAYABLE. Ensure that you have configured the webhook notifications for all the events. For more information on the same, see Webhooks.
-
Call Get Payment API: In case you do not receive a Webhook notification due to network delay, call the Get Payment API. Using the API call, verify the status of the Payment Handle is PAYABLE.
GEThttps://api.paysafe.com/paymenthub/v1/payments/paymentId
Response Example{ "id": "3aeb9c63-6386-46a3-9f8e-f452e722228a", "amount": 1900, "merchantRefNum": "merchantRefNum-108", "settleWithAuth": true, "paymentHandleToken": "SCZJg09GWSv36NLB", "txnTime": "2018-12-14T15:12:18Z", "customerIp": "10.10.12.64", "dupCheck": true, "description": "Magazine subscription", "currencyCode": "GBP", "paymentType": "NETELLER", "status": "COMPLETED", "availableToSettle": 1900, "gatewayResponse": { "orderId": "ORD_0d676b4b-0eb8-4d78-af25-e41ab431e325", "totalAmount": 3599, "currency": "EUR", "status": "pending", "lang": "en_US", "processor": "NETELLER" } }
Step 3: If the Payment Handle Status is PAYABLE, confirm payment using the paymentHandleToken:
POSThttps://api.paysafe.com/paymenthub/v1/payments
curl -X POST https://api.test.paysafe.com/paymenthub/v1/payments \
-u devcentre322:B-qa2-0-53625f86-302c021476f52bdc9deab7aea876bb28762e62f92fc6712d0214736abf501e9675e55940e83ef77f5c304edc7968 \
-H 'Content-Type: application/json' \
-d '{
"merchantRefNum": "merchantRefNum-108",
"amount": 1900,
"currencyCode": "GBP",
"dupCheck": true,
"settleWithAuth": true,
"paymentHandleToken": "SCZJg09GWSv36NLB",
"customerIp": "10.10.12.64",
"description": "Magazine subscription"
}'
{
"id": "3aeb9c63-6386-46a3-9f8e-f452e722228a",
"amount": 1900,
"merchantRefNum": "merchantRefNum-108",
"settleWithAuth": true,
"paymentHandleToken": "SCZJg09GWSv36NLB",
"txnTime": "2018-12-14T15:12:18Z",
"customerIp": "10.10.12.64",
"dupCheck": true,
"description": "Magazine subscription",
"currencyCode": "GBP",
"paymentType": "NETELLER",
"status": "COMPLETED",
"availableToSettle": 0,
"gatewayResponse": {
"orderId": "ORD_0d676b4b-0eb8-4d78-af25-e41ab431e325",
"totalAmount": 3599,
"currency": "EUR",
"status": "pending",
"lang": "en_US",
"processor": "NETELLER"
}
}
Standalone Credits Process Flow using the Paysafe Payments API
The above diagram shows the API call sequence and summarizes the Standalone Credits process flow using the Paysafe Payment API.
APIs to use: Payment Handles + Standalone Credits
NETELLER REST API Example
Endpoint
POSThttps://api.neteller.com/v1/transferOut
curl -X POST https://api.neteller.com/v1/transferOut\
-u devcentre322:B-qa2-0-53625f86-302c021476f52bdc9deab7aea876bb28762e62f92fc6712d0214736abf501e9675e55940e83ef77f5c304edc7968 \
-H 'Content-Type: application/json' \
-d '{
"payeeProfile": {
"email": "netellertest_EUR@neteller.com"
},
"transaction": {
"amount": "2500",
"currency": "EUR",
"merchantRefId": "{{$timestamp}}"
},
"message": "gr sample payout"
}'
{
"customer": {
"link": {
"url": "https://test.api.neteller.com/v1/customers/CUS_18C9DE8B-F1AC-4BCE-96E2-9C760B62C18A",
"rel": "customer",
"method": "GET"
}
},
"transaction": {
"merchantRefId": "1571101415",
"amount": 2500,
"currency": "EUR",
"id": "578571101415759",
"transactionType": "Merchant to Member Transfer",
"description": "Sandbox Demo Account to netellertest_eur@neteller.com",
"createDate": "2019-10-15T01:03:36Z",
"updateDate": "2019-10-15T01:03:36Z",
"status": "accepted",
"fees": [
{
"feeType": "service_fee",
"feeAmount": 71,
"feeCurrency": "EUR"
}
]
},
"links": [
{
"url": "https://test.api.neteller.com/v1/payments/1571101415?refType=merchantRefId",
"rel": "self",
"method": "GET"
}
]
}
Paysafe Payments API Example
Endpoints
Step 1: Create Payment Handle
POSThttps://api.paysafe.com/paymenthub/v1/paymenthandles
curl -X POST https://api.test.paysafe.com/paymenthub/v1/paymenthandles \
-u devcentre322:B-qa2-0-53625f86-302c021476f52bdc9deab7aea876bb28762e62f92fc6712d0214736abf501e9675e55940e83ef77f5c304edc7968 \
-H 'Content-Type: application/json' \
-d '{
"merchantRefNum": "merchantRefNum-201",
"transactionType": "STANDALONE_CREDIT",
"neteller": {
"consumerId": "johndoe@email.com",
"detail1Description": "Details 1 description",
"detail1Text": "Details 1 text"
},
"paymentType": "NETELLER",
"amount": 500,
"currencyCode": "USD",
"customerIp": "172.0.0.1",
"billingDetails": {
"street": "George Street",
"street2": "3 Edgar Buildings",
"city": "Bath",
"zip": "BA1 2FJ",
"country": "GB"
}
}'
Headers
{
"id": "82d57742-e2db-48ea-a726-a60e6f8265a3",
"paymentType": "NETELLER",
"paymentHandleToken": "PHQhlWpTRKzBXubN",
"merchantRefNum": "5493aaf1a1d6dd13d2b53412f0ec",
"currencyCode": "USD",
"dupCheck": true,
"status": "PAYABLE",
"liveMode": true,
"usage": "SINGLE_USE",
"action": "NONE",
"executionMode": "SYNCHRONOUS",
"amount": 500,
"billingDetails": {
"street": "George Street",
"street2": "3 Edgar Buildings",
"city": "Bath",
"zip": "BA1 2FJ",
"country": "GB"
},
"customerIp": "172.0.0.1",
"timeToLiveSeconds": 899,
"gatewayResponse": {
"orderId": "ORD_0d676b4b-0eb8-4d78-af25-e41ab431e325",
"totalAmount": 3599,
"currency": "EUR",
"status": "pending",
"lang": "en_US",
"processor": "NETELLER"
},
"neteller": {
"consumerId": "johndoe@email.com",
"detail1Description": "Details 1 description",
"detail1Text": "Details 1 text"
},
"txnTime": "2019-01-24T10:39:50Z",
"updatedTime": "2019-01-24T10:39:50Z",
"statusTime": "2019-01-24T10:39:50Z"
}
Step 2: Process standalone credits using the paymentHandleToken:
POSThttps://api.paysafe.com/paymenthub/v1/standalonecredits
curl -X POST https://api.test.paysafe.com/paymenthub/v1/standalonecredits \
-u devcentre322:B-qa2-0-53625f86-302c021476f52bdc9deab7aea876bb28762e62f92fc6712d0214736abf501e9675e55940e83ef77f5c304edc7968 \
-H 'Content-Type: application/json' \
-d '{
"amount": 40,
"merchantRefNum": "merchantRefNum-151",
"currencyCode": "GBP",
"paymentHandleToken": "SC9mbfZSITB5OwDJ",
"customerIp": "204.91.0.12",
"description": "Pay surplus"
}'
{
"id": "e075f2ae-dfc4-4f6d-8d89-61158367b6a6",
"amount": 40,
"merchantRefNum": "merchantRefNum-151",
"paymentHandleToken": "SC9mbfZSITB5OwDJ",
"customerIp": "204.91.0.12",
"currencyCode": "GBP",
"paymentType": "NETELLER",
"status": "PENDING",
"description": "Pay surplus"
}
Changes in the Paysafe Checkout
Payment Process Flow using the Paysafe Checkout
The above diagram summarizes the Payment process flow using the Paysafe Checkout.
User Journey
The following image illustrates the user journey for a Payment:
Changes in the NETELLER Transaction Details
The following section describes the changes in the NETELLER Transaction Details available in your NETELLER Merchant Dashboard.
After facilitating the transactions, you can verify the source of the transaction in the NETELLER user interface, as illustrated below with before and after scenarios.
Before and After