Skip to content

Logo

PayNearMe

Supports in this guide: Payments, Payouts

Provider website: home.paynearme.com


What you need to do for start processing transactions (brief summary)

  1. Choose account type
  2. Get your credentials (from PayNearMe)
  3. Connect in Dashboard
  4. Send an API request

Choose account type

PayNearMe can be connected in different ways (depending on your needs):

  • If you do H2H card payments (card data sent directly, no redirect) -> choose H2H Merchant account
  • If you do hosted-page payments (card, Apple Pay, Google Pay, ACH bank transfer, or Cash) and/or payouts -> choose Provider account

The two account types use different credentials and are set up separately - the Provider account covers both payments and payouts with a single connection. If you're not sure which one to use, confirm with your Corefy account manager.

Note

PayNearMe currently only supports USD on both account types.


Prerequisites: get from PayNearMe

To create an account, send a connection request at home.paynearme.com/contact-us or contact your PayNearMe manager directly. Submit the required documents to verify your account and gain access. PayNearMe's own API reference is at apidocs.paynearme.com/devdocs.

H2H Merchant account:

  • Key id -> Corefy field key_id -> identifies your PayNearMe site in every request (site_identifier) -> where to find: PayNearMe merchant back-office.
  • Secret pair -> Corefy field secret_pair -> used to compute the HMAC-SHA256 signature on every request -> where to find: PayNearMe merchant back-office. Store it securely.

Provider account:

  • Site identifier -> Corefy field site_identifier -> where to find: PayNearMe merchant back-office (PayNearMe Pro portal).
  • Secret key -> Corefy field secret_key -> used to compute the HMAC-SHA256 signature on every request -> where to find: PayNearMe merchant back-office. Store it securely.

Note

The two account types use separate, non-interchangeable credentials, even though they authenticate with the same HMAC signature scheme.


Payments processing (connect H2H Merchant account, create payment-invoice)

Connect H2H Merchant account in Corefy Dashboard

Step 1 - Open connection form

Open PayNearMe in the provider directory and press Connect at PayNearMe Provider Overview page in the New connection section. Choose H2H Merchant account.

Step 2 - Fill in fields and select settings

  • Key id
  • Secret pair
  • Test Mode -> (enable if you are using sandbox credentials)

Choose Currency and Features. You can set these according to what's available on your PayNearMe account, but it is necessary to check details of the connection with your Corefy account manager.

Connect

Success

You have connected PayNearMe H2H Merchant account!


First request to Corefy API (MIN)

What it does: creates a payment-invoice. PayNearMe requires customer name, phone, and a billing address by default - there's no placeholder fallback for this flow, so send real values.

Payment - MIN

POST /api/payment-invoices

{
  "data": {
    "type": "payment-invoice",
    "attributes": {
      "service": "payment_card_usd_hpp",
      "currency": "USD",
      "amount": 15,
      "customer": {
        "reference_id": "cus_123",
        "first_name": "John",
        "surname": "Smith",
        "phone": "1111111111",
        "address": {
          "full_address": "10 Downing Street",
          "post_code": "12345"
        }
      }
    }
  }
}

Payment - MAX

POST /api/payment-invoices

{
  "data": {
    "type": "payment-invoice",
    "attributes": {
      "service": "payment_card_usd_hpp",
      "currency": "USD",
      "amount": 15,
      "customer": {
        "reference_id": "cus_123",
        "first_name": "John",
        "surname": "Smith",
        "email": "johnsmith@gmail.com",
        "phone": "1111111111",
        "address": {
          "full_address": "10 Downing Street",
          "country": "US",
          "region": "NY",
          "city": "New York",
          "street": "10 Downing Street",
          "post_code": "12345"
        }
      }
    }
  }
}

This flow is a genuine H2H integration - card data is submitted directly to PayNearMe (no redirect), in two steps handled automatically by Corefy: an order is created first, then the card is submitted and charged. Note this connector expects customer.first_name/customer.surname separately rather than a combined customer.name.


Extended request (MAX)

Why add extra fields (typical reasons): - Provide additional customer details for compliance/reconciliation - Positively influence conversion rate - Include optional fields required by your specific flow


Constants (fallback fields)

This connector has no Dashboard-configurable Constants for the H2H Merchant account - customer name, phone, and address must be provided in the request itself.


Payments processing (connect Provider account, create payment-invoice)

Connect Provider account in Corefy Dashboard

Step 1 - Open connection form

Open PayNearMe in the provider directory and press Connect at PayNearMe Provider Overview page in the New connection section. Choose Provider account.

Step 2 - Fill in fields and select settings

  • Site identifier
  • Secret key
  • Test Mode -> (enable if you are using sandbox credentials)
  • Currency / Features -> choose the methods enabled on your PayNearMe account (Card, Google Pay, Apple Pay, Cash, ACH)

Success

You have connected PayNearMe Provider account!


First request to Corefy API (MIN)

What it does: creates a payment-invoice and returns a redirect link to PayNearMe's hosted payment page.

Payment - MIN

POST /api/payment-invoices

{
  "data": {
    "type": "payment-invoice",
    "attributes": {
      "service": "ach_usd_hpp",
      "currency": "USD",
      "amount": 15
    }
  }
}

Payment - MAX

POST /api/payment-invoices

{
  "data": {
    "type": "payment-invoice",
    "attributes": {
      "service": "ach_usd_hpp",
      "currency": "USD",
      "amount": 15,
      "customer": {
        "reference_id": "cus_123",
        "email": "johnsmith@gmail.com",
        "phone": "1111111111"
      }
    }
  }
}

This Provider account flow is a redirect (hosted payment page): Corefy creates the order server-side, then redirects the customer to PayNearMe's page to complete the payment. It covers several methods with a single account - besides ACH (ach_usd_hpp shown above), it also supports card, Google Pay, Apple Pay, and Cash deposit; the exact service codes available for your account are configured in the Dashboard connection form (Currency / Features) rather than being a fixed list, so check there or with your account manager for the codes to use for methods other than ACH.


Extended request (MAX)

Why add extra fields (typical reasons): - Provide additional customer details for compliance/reconciliation - Positively influence conversion rate - Include optional fields required by your specific flow


Options

Options are configured on the Corefy side and affect how Corefy builds provider requests or processes responses.

Currently available options (2)

  • finalize_after_minutes - finalizes a still-pending payment automatically after the given number of minutes.
  • save_ach_payment_method_after_deposit (ACH only) - keeps the customer's ACH payment method on file after a successful deposit for future reuse.
finalize_after_minutes

What it does: if a payment is still pending reconciliation after the configured number of minutes, Corefy finalizes it as expired instead of continuing to poll indefinitely.

When to use: set it if you want a hard cutoff for how long a hosted-page payment can stay pending.

Default: not set (no automatic expiry by this mechanism)

Allowed values: any positive integer (minutes)

save_ach_payment_method_after_deposit

What it does: applies to the ach_usd_hpp service specifically - after a successful ACH deposit, keeps the customer's bank account on file with PayNearMe so it can be reused (e.g. for a later payout) without the customer re-entering it.

When to use: enable it if you plan to pay the same customer out via ACH later and want to reuse the payment method they used to deposit.

Default: false

Allowed values: true / false


Constants (fallback fields)

Constants are static values that Corefy can send to the provider instead of dynamic data from your API request, when those fields are missing in the request.

Priority (predictable rule): 1. If a value is present in the request -> Corefy uses the request value 2. Else if the constant is set -> Corefy uses the constant 3. Else -> provider may reject the request or apply its defaults (depends on provider)

Currently available constants (constant -> Corefy API field)

  • FIRST_NAME -> customer.first_name
  • LAST_NAME -> customer.surname
  • YEAR_OF_BIRTH -> derived from customer.date_of_birth
  • EMAIL -> customer.email
  • PHONE -> customer.phone
  • STREET -> customer.address.street
  • CITY -> customer.address.city
  • STATE -> customer.address.region
  • POST_CODE -> customer.address.post_code

These constants are configured per service code (e.g. separately for ach_usd_hpp), not globally for the account.


Payouts processing (connect Provider account, create payout-invoice)

Connect Provider account in Corefy Dashboard

Uses the same Provider account connection as Payments above - one connection covers both directions, there's nothing extra to fill in for payouts specifically.


First request to Corefy API (MIN)

What it does: creates a payout-invoice.

Payout - MIN (ACH)

POST /api/payout-invoices

{
  "data": {
    "type": "payout-invoice",
    "attributes": {
      "service": "ach_usd",
      "currency": "USD",
      "amount": 15,
      "customer": {
        "reference_id": "cus_123",
        "name": "John Smith"
      },
      "fields": {
        "account_number": "8453846359",
        "routing_number": "021606742",
        "account_type": "checking"
      }
    }
  }
}

Payout - MAX (ACH)

POST /api/payout-invoices

{
  "data": {
    "type": "payout-invoice",
    "attributes": {
      "service": "ach_usd",
      "currency": "USD",
      "amount": 15,
      "customer": {
        "reference_id": "cus_123",
        "name": "John Smith",
        "email": "johnsmith@gmail.com",
        "phone": "4444444444",
        "date_of_birth": "1990-01-01",
        "address": {
          "full_address": "242 Greene St",
          "country": "US",
          "region": "NY",
          "city": "New York",
          "street": "242 Greene St",
          "post_code": "01965"
        }
      },
      "fields": {
        "account_number": "8453846359",
        "routing_number": "021606742",
        "account_type": "checking"
      }
    }
  }
}

This connector also supports card-token payouts (use payment_card_usd, with fields.token set to a previously-issued PayNearMe payment-method token instead of fields.account_number/routing_number/account_type) for customers who already have a card on file with PayNearMe. For a new ACH recipient, PayNearMe creates the payment method from fields.account_number/routing_number/account_type plus the customer's name/address on the fly; if the customer already has a saved PayNearMe ACH method (from a prior deposit - see save_ach_payment_method_after_deposit above), Corefy reuses it automatically instead of resending bank details.


Extended request (MAX)

Why add extra fields (typical reasons): - Provide additional customer details for compliance/reconciliation - Positively influence conversion rate - Include optional fields required by your specific flow


Options

Currently available options (1)

  • finalize_on_success_status - finalizes a payout as soon as PayNearMe reports a successful status, instead of waiting out the full return window.
finalize_on_success_status

What it does: for ACH payouts, PayNearMe payment networks allow a return for several business days after a payout looks successful; by default Corefy keeps the payout pending until that window has safely passed to avoid finalizing a payout that later gets reversed. Enabling this option finalizes the payout immediately once PayNearMe reports success instead of waiting.

When to use: enable it only if you understand and accept the risk of a payout being finalized before its ACH return window has closed.

Default: false

Allowed values: true / false


Constants (fallback fields)

This connector has no Dashboard-configurable Constants for payouts - customer.name and the ACH fields are always taken from the request (or from a previously-saved PayNearMe payment method).


Additional info

H2H Merchant account:

  1. Callback routing is handled automatically: PayNearMe calls back a notification URL Corefy generates per transaction. There's no fixed callback URL to configure in PayNearMe's back-office. Every request and callback is signed with HMAC-SHA256 over the sorted request parameters using your Secret pair; Corefy verifies this automatically.

Provider account (Payments & Payouts):

  1. After the customer completes the payment on PayNearMe's hosted page (card, wallet, ACH, or gets a barcode for Cash), the final result arrives asynchronously via callback; if it doesn't arrive in a reasonable time, Corefy reconciles the payment with PayNearMe directly.
  2. ACH payouts go through PayNearMe's return-window handling - a payout that initially looks successful can still be reversed by the bank for several business days. See finalize_on_success_status above for how Corefy handles this by default.
  3. The same HMAC-SHA256 signature scheme as the H2H Merchant account applies here too, using your Provider account's Secret key.

FAQ / Troubleshooting

  • Invalid credentials / signature error -> verify Key id/Secret pair (H2H Merchant account) or Site identifier/Secret key (Provider account) match the selected environment (sandbox vs production) and account type
  • Currency not supported -> PayNearMe only supports USD on both account types
  • Missing customer data fields (H2H Merchant account) -> customer.first_name, customer.surname, customer.phone, and a billing address must be provided in the request - there's no constants fallback for this flow
  • Payout stuck in pending (ACH) -> this is expected while PayNearMe's ACH return window is open; see the finalize_on_success_status option if you need it finalized sooner
  • Not sure which account type to use? -> ask your Corefy account manager

Question

Still looking for help connecting your PayNearMe account? Please contact our support team!