Cash

How to record cash payments with PCE for reporting and reconciliation.

Cash is a supported tender type in the Checkout API. It doesn’t move money through a processor, but it lets merchants record cash payments in PCE so that reports and balances reflect all the ways customers pay in-store.

Prerequisites and limitations

  • Prerequisites: Access to the PCE /payment API and a merchant account configured for Checkout.
  • Limitations: Cash transactions are for reporting and reconciliation only. PCE does not deposit cash into the merchant’s bank account — the merchant must handle the physical cash and bank deposits manually.

When to Use Cash Payments

Cash tender is useful when:

  • Merchants want to offer additional payment methods, including cash, alongside cards and ACH.
  • The business wants a single view of all tender types in reports (for example, card, ACH, cash) for end-of-day reconciliation.
  • Staff are taking in-person payments and need to log cash sales in the same POS or virtual terminal workflow as card payments.

Even if most customers pay with cards, having a Cash tender type available ensures the merchant can capture all payment types cleanly in PCE.

Things to Keep in Mind

  • Reporting-only tender: Cash payments recorded via the API don’t trigger any settlement. The merchant must physically deposit the cash to their bank.
  • Cleaner reconciliation: Using Cash tender in PCE helps keep totals aligned between drawer counts, PCE reports, and accounting records.
  • Simple payload: Cash payments don’t require card or bank details — just core fields like merchantId, tenderType, and amount.

Make a Cash Payment Request

Cash transactions are created by posting to the /payment endpoint with tenderType set to "Cash".

Endpoint

MethodPathDescription
POST/paymentRecord a new cash sale/payment.

Steps

  1. Set up the HTTP request

    • Use the POST method.
    • Call the /payment endpoint in the appropriate environment (sandbox or production).
  2. Add authentication and headers

    • Send your username and password in the Authorization header using Basic auth.

      • Encode username:password as Base-64 and prefix with Basic .
    • Set the Content-Type header to application/json.

  3. Send a cash payment payload

    Use a minimal JSON body like this:

    {
      "merchantId": "4xxx0",
      "tenderType": "Cash",
      "amount": "0.01"
    }
    • merchantId: Your merchant identifier.
    • tenderType: Set to "Cash".
    • amount: The cash amount collected from the customer.
  4. Verify the response

    • A successful cash transaction returns HTTP 201 Created.
    • The payment object’s status field should be Approved when the record is created successfully.

© 2025 Priority Technology Holdings LLC. All rights reserved.