- METHOD TYPECash Payment
- PAYMENTS
- PAYOUTS
- REFUNDS
- RECURRING
Introduction
Pay by Cash is a cash payment method that empowers the cash-preferred users with an easy to use, convenient and secure way to fund accounts and make real-time payments at participating retail store, with cash by leveraging the digital and physical barcode technology provided by Incomm Payments.
There are two payment methods:
- Fixed Amount – The user desposits a fixed amount between $1 to $500.
- Range Amount – The user deposits any amount between $1 to $500.
Supported Countries
- United States
Supported Currencies
- USD
Payment (Deposit) Flow
Press tab to open…
Follow these steps to perform a payment using Nuvei REST API integration:
1. Generate a sessionToken
Press here for details.
2. Send a /payment Request
Perform the payment by sending a /payment request with its mandatory parameters including:
userTokenId– Unique customer identifier in merchant system.amountcurrencypaymentOption.alternativePaymentMethodclass containing:paymentMethod: “apmgw_Paybycash” (Fixed Amount)
ORpaymentMethod: “apmgw_Paybycash_OpenAmount” (Range Amount)
deviceDetailsclass containing:ipAddressbillingAddressclass containing:firstName,lastName,email,countryuserDetailsclass containing:firstName,lastName,email,country
Example /payment Request
{
"sessionToken": "<sessionToken from /getSessionToken>",
"merchantId": "<your merchantId>",
"merchantSiteId": "<your merchantSiteId>",
"userTokenId": "<unique customer identifier in merchant system>",
"paymentOption": {
"alternativePaymentMethod": {
"paymentMethod": "apmgw_Paybycash",
},
},
"currency": "USD",
"amount": "100",
"billingAddress": {
"firstName": "John",
"lastName": "Smith",
"email": "[email protected]",
"country": "US"
},
"userDetails": {
"firstName": "John",
"lastName": "Smith",
"email": "[email protected]",
"country": "US",
},
"deviceDetails": {
"ipAddress":"<customer's IP address>"
},
"timeStamp": "<YYYYMMDDHHmmss>",
"checksum": "<calculated checksum>"
}
Example /payment Response
{
"internalRequestId": 31985141,
"status": "SUCCESS",
"errCode": 0,
"reason": "",
"merchantId": "1102398682906145682",
"merchantSiteId": "228311",
"version": "1.0",
"sessionToken": "070face7-5536-4030-abd9-25cde5e315da",
"orderId": "40574801",
"userTokenId": "paybycash12332001",
"paymentOption": {
"redirectUrl": "https://apmtest.gate2shop.com/ppp/resources/cdn/v1/payment-details-93780.html?amountType=0&amount=100.00&barcodeType=0&expiration=2023-08-29T10%3A00%3A37.254Z&accountNumber=TEST00000000006371683605333195&locale=en_US&barcode=iVBORw0KGgoAAAANSUhEUgAAAPMAAAABAQAAAAAj16WAAAAAK0lEQVR42gEgAN%2F%2FAPlvI65ci5HUQkzJmTMmZM1nsveynd2a5ycoXN6cU%2BAKTBEVBAMVGAAAAABJRU5ErkJggg%3D%3D&pm=paybycash",
"userPaymentOptionId": "2152999251",
"card": {}
}
}
After the transaction is processed, Nuvei sends a Direct Merchant Notification (DMN) that includes the result of the transaction to the URL provided in urlDetails.notificationUrl, which Nuvei recommends including in the /payment request.
Follow these steps to perform a payment using Nuvei Web SDK integration.
1. Initiate a Session
Before you can submit payment using the client-side Nuvei Web SDK, you need to send the /openOrder API call.
2. Initialize the Web SDK
Instantiate the Web SDK with the sessionToken received from the server call to /openOrder.
3. Create an APM Payment
Send a createPayment() request with its mandatory parameters including:
-
paymentOption.alternativePaymentMethodclass containing:paymentMethod: “apmgw_Paybycash” (Fixed Amount)
ORpaymentMethod: “apmgw_Paybycash_OpenAmount” (Range Amount)
deviceDetailsclass containing:ipAddressbillingAddressclass containing:firstName,lastName,email,countryuserDetailsclass containing:firstName,lastName,email,country
Example createPayment()
sfc.createPayment({
sessionToken: "<sessiontoken>",
paymentOption: {
alternativePaymentMethod: {
paymentMethod: "apmgw_Paybycash",
},
},
deviceDetails: {
ipAddress: "<customer's IP address>"
},
currency: "USD",
amount: "100",
billingAddress: {
firstName: "John",
lastName: "Smith",
email: "[email protected]",
country: "US"
},
userDetails: {
firstName: "John",
lastName: "Smith",
email: "[email protected]",
country: "US"
}
}, function(res) {
console.log(res);
})
After the transaction is processed, Nuvei sends a Direct Merchant Notification (DMN) that includes the result of the transaction to the URL provided in urlDetails.notificationUrl, which Nuvei recommends including in the /openOrder request.
- The Pay by Cash flow begins when the customer selects the Pay by Cash payment method from the payment method gallery.
- The customer enters the Amount and presses the Deposit button.
- REST API
-
Follow these steps to perform a payment using Nuvei REST API integration:
1. Generate a
sessionTokenPress here for details.
2. Send a
/paymentRequestPerform the payment by sending a
/paymentrequest with its mandatory parameters including:userTokenId– Unique customer identifier in merchant system.amountcurrencypaymentOption.alternativePaymentMethodclass containing:paymentMethod: “apmgw_Paybycash” (Fixed Amount)
ORpaymentMethod: “apmgw_Paybycash_OpenAmount” (Range Amount)
deviceDetailsclass containing:ipAddressbillingAddressclass containing:firstName,lastName,email,countryuserDetailsclass containing:firstName,lastName,email,country
Example
/paymentRequest{ "sessionToken": "<sessionToken from /getSessionToken>", "merchantId": "<your merchantId>", "merchantSiteId": "<your merchantSiteId>", "userTokenId": "<unique customer identifier in merchant system>", "paymentOption": { "alternativePaymentMethod": { "paymentMethod": "apmgw_Paybycash", }, }, "currency": "USD", "amount": "100", "billingAddress": { "firstName": "John", "lastName": "Smith", "email": "[email protected]", "country": "US" }, "userDetails": { "firstName": "John", "lastName": "Smith", "email": "[email protected]", "country": "US", }, "deviceDetails": { "ipAddress":"<customer's IP address>" }, "timeStamp": "<YYYYMMDDHHmmss>", "checksum": "<calculated checksum>" }Example
/paymentResponse{ "internalRequestId": 31985141, "status": "SUCCESS", "errCode": 0, "reason": "", "merchantId": "1102398682906145682", "merchantSiteId": "228311", "version": "1.0", "sessionToken": "070face7-5536-4030-abd9-25cde5e315da", "orderId": "40574801", "userTokenId": "paybycash12332001", "paymentOption": { "redirectUrl": "https://apmtest.gate2shop.com/ppp/resources/cdn/v1/payment-details-93780.html?amountType=0&amount=100.00&barcodeType=0&expiration=2023-08-29T10%3A00%3A37.254Z&accountNumber=TEST00000000006371683605333195&locale=en_US&barcode=iVBORw0KGgoAAAANSUhEUgAAAPMAAAABAQAAAAAj16WAAAAAK0lEQVR42gEgAN%2F%2FAPlvI65ci5HUQkzJmTMmZM1nsveynd2a5ycoXN6cU%2BAKTBEVBAMVGAAAAABJRU5ErkJggg%3D%3D&pm=paybycash", "userPaymentOptionId": "2152999251", "card": {} } }After the transaction is processed, Nuvei sends a Direct Merchant Notification (DMN) that includes the result of the transaction to the URL provided in
urlDetails.notificationUrl, which Nuvei recommends including in the/paymentrequest. - Web SDK
-
Follow these steps to perform a payment using Nuvei Web SDK integration.
1. Initiate a Session
Before you can submit payment using the client-side Nuvei Web SDK, you need to send the
/openOrderAPI call.2. Initialize the Web SDK
Instantiate the Web SDK with the
sessionTokenreceived from the server call to/openOrder.3. Create an APM Payment
Send a
createPayment()request with its mandatory parameters including:-
paymentOption.alternativePaymentMethodclass containing:paymentMethod: “apmgw_Paybycash” (Fixed Amount)
ORpaymentMethod: “apmgw_Paybycash_OpenAmount” (Range Amount)
deviceDetailsclass containing:ipAddressbillingAddressclass containing:firstName,lastName,email,countryuserDetailsclass containing:firstName,lastName,email,country
Example
createPayment()sfc.createPayment({ sessionToken: "<sessiontoken>", paymentOption: { alternativePaymentMethod: { paymentMethod: "apmgw_Paybycash", }, }, deviceDetails: { ipAddress: "<customer's IP address>" }, currency: "USD", amount: "100", billingAddress: { firstName: "John", lastName: "Smith", email: "[email protected]", country: "US" }, userDetails: { firstName: "John", lastName: "Smith", email: "[email protected]", country: "US" } }, function(res) { console.log(res); })After the transaction is processed, Nuvei sends a Direct Merchant Notification (DMN) that includes the result of the transaction to the URL provided in
urlDetails.notificationUrl, which Nuvei recommends including in the/openOrderrequest. -
- Payment Page
-
- The Pay by Cash flow begins when the customer selects the Pay by Cash payment method from the payment method gallery.
- The customer enters the Amount and presses the Deposit button.
After the transaction is processed, Nuvei sends a Direct Merchant Notification (DMN) that includes the result of the transaction to notify_url, which Nuvei recommends including in the request.
Example Payment DMN with status=APPROVED
...'ppp_status=OK&Status=APPROVED&ExErrCode=0&ErrCode=0&errApmCode=0&errApmDescription=&errScCode=0&errScDescription=&Reason=&ReasonCode=0&PPP_TransactionID=11111111&userid=TestToken&merchant_unique_id=%7B%7BclientUniqueId%7D%7D&customData=&productId=&first_name=John&last_name=Smith&email=john.smith%40email.com¤cy=USD&clientUniqueId=%7B%7BclientUniqueId%7D%7D&customField1=&customField2=&customField3=&customField4=&customField5=&customField6=&customField7=&customField8=&customField9=&customField10=&customField11=&customField12=&customField13=&customField14=&customField15=&invoice_id=&address1=340689+main+St.&address2=&country=United+States&state=&city=London&zip=&phone1=&phone2=&phone3=&client_ip=11.111.111.111&nameOnCard=&cardNumber=&bin=&noCVV=&acquirerId=&acquirerBank=Smart2Pay-PI&expMonth=&expYear=&Token=&tokenId=&AuthCode=&AvsCode=&Cvv2Reply=&shippingCountry=&shippingState=&shippingCity=&shippingAddress=&shippingZip=&shippingFirstName=&shippingLastName=&shippingPhone=&shippingCell=&shippingMail=&total_discount=0.00&total_handling=0.00&total_shipping=0.00&total_tax=0.00&buyButtonProductBundleId=&merchant_site_id=1111&merchant_status=&action=&requestVersion=&message=APPROVED&merchantLocale=&unknownParameters=&payment_method=apmgw_Cash_App&ID=&merchant_id=1111111111111111111&responseTimeStamp=2023-09-27.11%3A13%3A11&buyButtonProductId=&webMasterId=&appliedPromotions=&uniqueCC=&transactionType=Sale&externalEmail=&cardCompany=&eci=&user_token_id=TestToken&userPaymentOptionId=2153033991&TransactionID=1111111111111111111&externalTransactionId=11111111&APMReferenceID=934048C0BCB86BC131AC9638D7E556E1&orderTransactionId=11111111&totalAmount=100&dynamicDescriptor=QA+Test+site&item_name_1=NA&item_number_1=&item_amount_1=100&item_quantity_1=1&item_discount_1=0.00&item_handling_1=0.00&item_shipping_1=0.00&feeAmount=&amountWithoutFee=&houseNumber=&customCurrency=&externalToken_blockedCard=&externalToken_cardAcquirerId=&externalToken_cardAcquirerName=&externalToken_cardBin=&externalToken_cardBrandId=&externalToken_cardBrandName=&externalToken_cardExpiration=&externalToken_cardLength=&externalToken_cardMask=&externalToken_cardName=&externalToken_cardTypeId=&externalToken_cardTypeName=&externalToken_clubName=&externalToken_creditCompanyId=&externalToken_creditCompanyName=&externalToken_extendedCardType=&externalToken_Indication=&externalToken_tokenValue=&externalToken_tokenProvider=&ECIRaw=&upoRegistrationDate=20230927&type=DEPOSIT&clientRequestId=20230927141229&relatedTransactionId=&apmPayerInfo=%7B%22StatusInfo%22%3A%22%7B+StatusCode%3A+%2C+info%3A+%2C+originalAmount%3A+1.2000%2C+ProcessedAmount%3A+1.2%2C+originalCurrency%3A+USD%2C+ProcessedCurrency%3A+USD+%7D%22%2C%22AdditionalTransactionBankId%22%3A%22PWC_5f429b6q6bztfvx71bhba97gn%22%7D&sessionId=6571fe5e7718ea478786ad94f634&responsechecksum=d434c2a431148ed4cd74a9c926a4ee44&advanceResponseChecksum=471a80cdd5f440580896d46c8f424c73'...
User Experience
This flow is a two-step process:
The user first generates the barcode using Nuvei Payment Page, and then deposits the money to a participating retail store. Once the payment is approved, the user account is instantly updated.
Step 1
- After either entering an amount and pressing Deposit (Fixed Amount), or simply pressing Deposit (Range Amount), the user is redirected to the instruction page.

- The user presses SHOW BARCODE to view the generated barcode.

- The user presses FIND LOCATIONS to search for participating retail stores on the map.

- The user presses DONE to close the payment page.
Step 2
- The user takes the generated barcode in digital or physical form to a participating retail store.
- The user presents this barcode to be scanned by the cashier of the store.
- The user deposits the amount and the account is credited.
