• Documentation
  • API Reference
  • Documentation
  • API Reference
Expand All Collapse All
< BACK TO HOME
  • General
    • Introduction to APMs
    • APM Input Fields and APIs
    • APM subMethod Class
    • Account Details Capture
    • APM Countries and Currencies
  • US and Canada Guides
    • ACH
    • Interac Instant
    • Mazooma
    • PayNearMe
    • PlayPlus
      • PlayPlus (REST)
      • PlayPlus (Web SDK)
    • VIP Preferred
      • VIP Preferred (REST)
      • VIP Pref. (Web SDK/Checkout)
  • Europe Guides
    • Okto Cash
    • Open Banking
  • Global Guides
    • Apple Pay
      • Registering with Apple Pay
        • (Manually) Register in the Apple System
          • Create an Apple ID
          • Enroll in the Apple Developer Program
            • Submit an Enrollment Request
            • Complete the Enrollment Process
            • Activate your Apple Developer Program Account
          • Register a Merchant ID in the Apple System
            • Create a Merchant ID
            • Create a Payment Processing Certificate
            • Create a Merchant Identity Certificate
            • Register and Verify Your Domain
      • Nuvei Apple Pay Implementations
        • Payment Page using IFrame
        • Static Apple Pay Button
        • Static Pay Button (Web SDK)
        • Dynamic Apple Pay Button
      • Apple Pay Integration
        • Apple Pay Guide (REST API)
        • Apple Pay Guide (Web SDK)
        • Apple Pay Guide (Checkout)
        • Apple Pay Integration Testing
    • Google Pay
      • Google Pay (REST API)
      • Google Pay (Web SDK)
      • Google Pay (Checkout)
    • Neteller
    • PayPal
    • Skrill
    • Visa Checkout
  • Latin America Guides
    • PIX
    • PIX Payouts
    • STPmex
  • Asia Pacific Guides
    • Alipay HK
    • Dana
    • DragonPay
    • GCash
    • India Payouts
    • KakaoPay
    • TouchnGo
    • TrueMoney

PayNearMe

On this page:
  • Introduction
  • Supported Countries
  • Supported Currencies
  • Payment Processing
    • Online Payment Flow
    • Physical Payment Flow
  • Appendix
    • Sending a Payment Request
Attributes
  • METHOD TYPEReal-Time Bank Transfer
  • DEPOSITS
  • WITHDRAWS
  • REFUNDS

Introduction

PayNearMe is a US bill payment option, and processes payments for thousands of businesses and government agencies. Customers can settle their bills via debit, credit, bank account or cash over the counter at more than 27,000 payment locations nationwide, including 7-Eleven and CVS Pharmacy stores.

This guide provides steps to integrate the PayNearMe, into your payment flows, through Nuvei platform, in a connect mode.

Nuvei Environments

You can process PayNearMe APM deposit (payment) transactions using Nuvei’s server-to-server REST API calls.

Prerequisites and Notes

  • This document assumes that you have completed all account set up prerequisites and are ready to integrate the PayNearMe payment methods into your payment flow.
  • This method is for deposit only, there are no payouts.
  • Test credentials and testing procedures should be obtained directly from PayNearMe.
  • Current PayNearMe Transaction Limits: $500 per transaction, $3,000 in 24 hours and $10,000 over 30 days

Supported Countries

  • United States

Supported Currencies

  • USD

Payment Processing

The PayNearMe deposit (payment) process consists of an “online flow” followed by a “physical flow”.

Online Payment Flow

  1. The customer initiates a PayNearMe deposit from the payment page, where you need to collect the following customer details:
    FirstName, LastName, phone (exactly 10 digits), and dateOfBirth.
  2. Send a /payment API request (see details below) to PayNearMe, and include the customer details that you collected.
  3. Use the redirectUrl that was returned in the response to redirect the customer to the PayNearMe online deposit page, to submit an online deposit request.

    It may be useful to save the redirectUrl for use in the customer’s next deposit request  so you do not need to send a new request to Nuvei.

  4. If PayNearMe approves the customer’s online deposit request, the customer can either print the payment instructions or send them to their mobile.

Physical Payment Flow

  1. To complete the deposit of the money, the customer needs to present these payment instructions at a participating shop (7-Eleven, CVS or Family Dollar). The employee at the store uses the merchant application to process the payment instructions, which sends a “preDeposit” request” to PayNearMe.
  2. The merchant application receives a “preDeposit” DMN response from PayNearMe containing the transaction details:
    Example of a “preDeposit” DMN Received by the Merchant Application
    'PPP_TransactionID=291956098&orderTransactionId=1080350618&totalAmount=12.30¤cy=USD&total_discount=0.00&total_handling=0.00&total_shipping=0.00&total_tax=0.00&merchant_site_id=217248&message=PENDING&payment_method=apmgw_PayNearMe&merchant_id=479748173730597238&responseTimeStamp=2021-08-04.07%3A39%3A06&subMethod=https%3A%2F%2Fwww.paynearme-sandbox.com%2F89448283193&type=APM_PREDEPOSIT&TransactionID=711000000000011320&Status=PENDING&transactionType=Sale&responsechecksum=4af2b20afeb461cbcd7dda3f7cf0c4bc4dffe63d8a5f501e02dd6ed04134b1db&advanceResponseChecksum=91fbbe07c9b9da7db3ff5ce19e1199a7ded1af80cba86de1d8f0067cc378f6a8'
    1. If  you decide to accept the deposit, then:
      Send an “action approved” response to PayNearMe.
      Example of an “action approved” Response Sent to PayNearMe
      <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
       <S:Body>
        <FinalizeHDepositResponse xmlns="http://www.safecharge.com/">
         <FinalizeRedirectDepositResult>
          <Status>APPROVED</Status>
         </FinalizeRedirectDepositResult>
        </FinalizeHDepositResponse>
       </S:Body>
      </S:Envelope>

      The employee at the store informs the customer that their deposit request is approved, and accepts the money from the customer.

      If PayNearMe does not receive your acceptance response, the transaction is declined.

    2. If you decide to decline the deposit, then:
      Send an “action declined” response to PayNearMe.
      Example of an “action declined” Response Sent to PayNearMe
      <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
       <S:Body>
        <FinalizeHDepositResponse xmlns="http://www.safecharge.com/">
         <FinalizeRedirectDepositResult>
          <Status>DECLINED</Status>
          <ErrorDetails/>
         </FinalizeRedirectDepositResult>
        </FinalizeHDepositResponse>
       </S:Body>
      </S:Envelope>

      The employee at the store informs the customer that their deposit request is declined, and that they cannot pay the money at the shop.
      The process ends here!

  3. (Assuming that you “accepted“, as described above…)
    The employee at the store uses the merchant application to register that the customer paid the money.
    Send a final a /payment API request, with PayNearMe as the APM and include the transaction details.
  4. The merchant application receives a “Deposit” DMN response from PayNearMe containing an “approved/declined” response and other transaction details:
    1. If PayNearMe approved, then:
      The employee at the store informs the customer that their deposit transaction is approved.
      The process ends here!
      Example of an APPROVED DMN
      ppp_status=OK&Status=APPROVED&ExErrCode=0&ErrCode=0&errApmCode=0&errApmDescription=&errScCode=0&errScDescription=&Reason=&ReasonCode=0&PPP_TransactionID=292601448&userid=&merchant_unique_id=&customData=&productId=&first_name=Andrius&last_name=Statkevicius&email=sctest1%40gmail.com¤cy=USD&customField1=&customField2=&customField3=&customField4=&customField5=&customField6=&customField7=&customField8=&customField9=&customField10=&customField11=&customField12=&customField13=&customField14=&customField15=&invoice_id=&address1=Random&address2=&country=United+States&state=COLORADO&city=Montgomery&zip=08558&phone1=1112223333&phone2=&phone3=&client_ip=&nameOnCard=&cardNumber=&bin=&acquirerId=&expMonth=&expYear=&Token=&tokenId=&AuthCode=https%3A%2F%2Fwww.paynearme-sandbox.com%2F81648341453&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=123456&merchant_status=&action=&requestVersion=&message=APPROVED&merchantLocale=&unknownParameters=&payment_method=apmgw_PayNearMe&ID=&merchant_id=2412534535264665421&responseTimeStamp=2021-08-12.20%3A16%3A49&buyButtonProductId=&webMasterId=&appliedPromotions=&uniqueCC=&transactionType=Sale&externalEmail=&cardCompany=&eci=&user_token_id=982&userPaymentOptionId=69971568&TransactionID=711000000000256928&ExternalaccountID=81648341453&externalTransactionId=208312801523&APMReferenceID=A59FEE845CC73D3A53E3B411096B81F0&orderTransactionId=1081139198&totalAmount=20.00&dynamicDescriptor= MerchantAccount &feeAmount=&amountWithoutFee=&houseNumber=&customCurrency=&upoRegistrationDate=20210812&type=DEPOSIT&clientRequestId=&relatedTransactionId=&responsechecksum=5d211961ab7aaa561312d6e18d78cf31181edfd4bae3b0e24621924c085b1e88&advanceResponseChecksum=9049c2708b60ee80632b64bbe685b01b524015f2e3e41388c753f7bb54d5be23
    2. If PayNearMe declined, then:
      The employee at the store informs the customer that their deposit transaction is declined.
      The process ends here!
      Example of a DECLINE DMN
      ppp_status=FAIL&Status=DECLINED&ExErrCode=0&ErrCode=0&errApmCode=0&errApmDescription=&errScCode=0&errScDescription=&Reason=&ReasonCode=0&PPP_TransactionID=292180688&userid=&merchant_unique_id=&customData=&productId=&first_name=ALBERTA&last_name=BOBBETHCHARLESON&email=alberta_bobbethcharleson%40outlook.com¤cy=USD&customField1=&customField2=&customField3=&customField4=&customField5=&customField6=&customField7=&customField8=&customField9=&customField10=&customField11=&customField12=&customField13=&customField14=&customField15=&invoice_id=&address1=2992+Cameron+Road&address2=&country=United+States&state=NEW+YORK&city=New+York&zip=14236&phone1=1112223333&phone2=&phone3=&client_ip=&nameOnCard=&cardNumber=&bin=&acquirerId=&expMonth=&expYear=&Token=&tokenId=&AuthCode=https%3A%2F%2Fwww.paynearme-sandbox.com%2F88825968225&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=123456&merchant_status=&action=&requestVersion=&message=DECLINED&merchantLocale=&unknownParameters=&payment_method=apmgw_PayNearMe&ID=&merchant_id=2412534535264665421&responseTimeStamp=2021-08-08.14%3A48%3A40&buyButtonProductId=&webMasterId=&appliedPromotions=&uniqueCC=&transactionType=Sale&externalEmail=&cardCompany=&eci=&user_token_id=1303&userPaymentOptionId=69839678&TransactionID=711000000000116287&ExternalaccountID=88825968225&externalTransactionId=664636540167&APMReferenceID=29C0354B8021D48A491EE5271ABA170D&orderTransactionId=1080651688&totalAmount=10.00&dynamicDescriptor=merchantAccount&feeAmount=&amountWithoutFee=&houseNumber=&customCurrency=&upoRegistrationDate=20210808&type=DEPOSIT&clientRequestId=&relatedTransactionId=&responsechecksum=656db4b15c431653db381538b85205417816ba3cf9a4c27dde02adc046f619fb&advanceResponseChecksum=18ae975ba59a5252693b2931842579f298cfe3296516f62a169d4a769390bf52

Appendix

Sending a Payment Request

To send a REST API /payment request, follow the steps in the APM REST API Integration topic.

After including all the parameters required for the /payment request, include these additional required parameters:

Parameter Mandatory Notes
paymentOption_x000D_
.alternativePaymentMethod_x000D_
.paymentMethod
Y apmgw_PayNearMe
userDetails.FirstName Y
userDetails.LastName Y
userDetails.Phone Y Exactly 10 digits
userDetails.dateOfBirth Y
userTokenId Y Should contain the same value used for account creation.
Example /payment Request
{
 "sessionToken":"<sessionToken from getSessionToken>",
 "merchantId":"<your merchantId>",
 "merchantSiteId":"<your merchantSiteId>",
 "clientRequestId":"<unique request ID in merchant system>",
 "timeStamp":"<YYYYMMDDHHmmss>",
 "checksum":"<calculated checksum>",
 "currency":"USD",
 "amount":"50",
 "userTokenId":"<unique customer identifier in merchant system>",
 "paymentOption":{
  "alternativePaymentMethod":{
   "paymentMethod":"apmgw_PayNearMe"
  }
 },
 "billingAddress":{
  "country":"US",
  "email":"accountholder0@example.com",
  "FirstName":"ALBERTA",
  "LastName":"BOBBETHCHARLESON",
  "Address":"2992 Cameron Road",
  "City":"New York",
  "State":"NY",
  "phone":"1112223333",
  "Zip":"14236",
  "dateOfBirth":"1996-05-21"
 },
 "deviceDetails":{
  "ipAddress":"127.0.0.1"
 },
 "userDetails":{
  "FirstName":"ALBERTA",
  "LastName":"BOBBETHCHARLESON",
  "Address":"2992 Cameron Road",
  "City":"New York",
  "State":"NY",
  "phone":"1112223333",
  "Country":"US",
  "Zip":"14236",
  "dateOfBirth":"1996-05-21"
 }
}
Example /payment Response
{
 "orderId":"291955928",
 "userTokenId":"testUSPNM",
 "paymentOption":{
  "redirectUrl":"https://www.paynearme-sandbox.com/89448283193",
  "userPaymentOptionId":"69775638",
  "card":{}
 },
 "transactionStatus":"REDIRECT",
 "sessionToken":"5d204893-e618-4642-ad82-897ef96a7af8",
 "internalRequestId":297545938,
 "status":"SUCCESS",
 "errCode":0,
 "reason":"",
 "merchantId":"479748173730597238",
 "merchantSiteId":"217248",
 "version":"1.0",
 "clientRequestId":"20210804103506"
}
/payment Response – In the Case of an Error

Error responses can be received for the initial /payment request (the one that normally returns the redirectUrl).

2022 Nuvei. All rights reserved.