- METHOD TYPEE-wallet
- PAYMENTS
- PAYOUTS
- REFUNDS
- RECURRING
Introduction
Cash App is a financial services platform and mobile app. It enables customers to transfer money (peer-to-peer transactions), grow wealth (banking, boosts, investing and bitcoin, loans) and use capital (Cash App Pay).
Cash App Pay is a fast and simple payment method that lets you pay for purchases either by scanning a simple QR code or by using Cash App. Cash App Pay is available when you shop online or in person at select third-party merchants.
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.amount
currency
paymentOption.alternativePaymentMethod
class containing:paymentMethod
: “apmgw_Cash_App“
deviceDetails
class containing:ipAddress
billingAddress
class containing:firstName
,lastName
,email
,country
userDetails
class 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_Cash_App", } }, "currency": "USD", "amount": "100", "deviceDetails": {"ipAddress": "<customer's IP address>"}, "billingAddress": { "firstName": "John", "lastName": "Smith", "email": "[email protected]", "country": "PA" }, "userDetails": { "firstName": "John", "lastName": "Smith", "email": "[email protected]", "country": "PA", }, "deviceDetails": { "ipAddress":"<customer's IP address>" }, "timeStamp": "<YYYYMMDDHHmmss>", "checksum": "<calculated checksum>" }
Example /payment
Response
{ "internalRequestId": 11111111, "status": "SUCCESS", "errCode": 0, "reason": "", "merchantId": "<your merchantId>", "merchantSiteId": "<your merchantSiteId>", "version": "1.0", "clientRequestId": "11111111111111", "sessionToken": "<sessionToken from /getSessionToken>", "clientUniqueId": "{{clientUniqueId}}", "orderId": "11111111", "userTokenId": "<unique customer identifier in merchant system>", "paymentOption": { "redirectUrl": https://gw-apm-globalpayapi.nuvei.com/Home?PaymentToken=4F850E1DE9AEDA56E5EFB35C435F728B.24045590, "card": {} }, "transactionStatus": "REDIRECT" }
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.alternativePaymentMethod
class containing:paymentMethod
: “apmgw_Cash_App“
deviceDetails
class containing:ipAddress
billingAddress
class containing:firstName
,lastName
,email
,country
userDetails
class containing:firstName
,lastName
,email
,country
Example createPayment()
sfc.createPayment({ sessionToken: "<sessiontoken>", paymentOption: { alternativePaymentMethod: { paymentMethod: "apmgw_Cash_App", } }, deviceDetails: { ipAddress: "<customer's IP address>" }, billingAddress: { firstName: "John", lastName: "Smith", email: "[email protected]", country: "PA" }, userDetails: { firstName: "John", lastName: "Smith", email: "[email protected]", country: "PA" } }, 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 Cash App Pay flow begins when the customer selects the Cash App Pay payment method from the payment method gallery.
- The customer enters the phone, Amount and presses the Deposit button.
Example Payment Page Request
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.
- REST API
-
Follow these steps to perform a payment using Nuvei REST API integration:
1. Generate a
sessionToken
Press here for details.
2. Send a
/payment
RequestPerform the payment by sending a
/payment
request with its mandatory parameters including:userTokenId
– Unique customer identifier in merchant system.amount
currency
paymentOption.alternativePaymentMethod
class containing:paymentMethod
: “apmgw_Cash_App“
deviceDetails
class containing:ipAddress
billingAddress
class containing:firstName
,lastName
,email
,country
userDetails
class 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_Cash_App", } }, "currency": "USD", "amount": "100", "deviceDetails": {"ipAddress": "<customer's IP address>"}, "billingAddress": { "firstName": "John", "lastName": "Smith", "email": "[email protected]", "country": "PA" }, "userDetails": { "firstName": "John", "lastName": "Smith", "email": "[email protected]", "country": "PA", }, "deviceDetails": { "ipAddress":"<customer's IP address>" }, "timeStamp": "<YYYYMMDDHHmmss>", "checksum": "<calculated checksum>" }
Example
/payment
Response{ "internalRequestId": 11111111, "status": "SUCCESS", "errCode": 0, "reason": "", "merchantId": "<your merchantId>", "merchantSiteId": "<your merchantSiteId>", "version": "1.0", "clientRequestId": "11111111111111", "sessionToken": "<sessionToken from /getSessionToken>", "clientUniqueId": "{{clientUniqueId}}", "orderId": "11111111", "userTokenId": "<unique customer identifier in merchant system>", "paymentOption": { "redirectUrl": https://gw-apm-globalpayapi.nuvei.com/Home?PaymentToken=4F850E1DE9AEDA56E5EFB35C435F728B.24045590, "card": {} }, "transactionStatus": "REDIRECT" }
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. - 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
/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.alternativePaymentMethod
class containing:paymentMethod
: “apmgw_Cash_App“
deviceDetails
class containing:ipAddress
billingAddress
class containing:firstName
,lastName
,email
,country
userDetails
class containing:firstName
,lastName
,email
,country
Example
createPayment()
sfc.createPayment({ sessionToken: "<sessiontoken>", paymentOption: { alternativePaymentMethod: { paymentMethod: "apmgw_Cash_App", } }, deviceDetails: { ipAddress: "<customer's IP address>" }, billingAddress: { firstName: "John", lastName: "Smith", email: "[email protected]", country: "PA" }, userDetails: { firstName: "John", lastName: "Smith", email: "[email protected]", country: "PA" } }, 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. - Payment Page
-
- The Cash App Pay flow begins when the customer selects the Cash App Pay payment method from the payment method gallery.
- The customer enters the phone, Amount and presses the Deposit button.
Example Payment Page Request
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
Desktop
- The user is redirected to the payment page where a QR code is presented that must be scanned using the smartphone QR camera reader.
- The user scans the QR code displayed using their mobile device’s camera or Cash App’s QR scanner to approve the transaction.
Mobile
- The user is redirected to the Cash App payment page.
- The user is presented with an order confirmation page to approve the transaction.
Testing
You can test the Cash App Pay payment flow for desktop using the native camera app on your mobile device or Cash App’s QR code scanner.
If you send a mobile request for test purposes, the provided mobile playground only asks for approval or denial of the payment initiation without the need of using such a device.