Take Cash Payments

Applies to: Payments API | Orders API

Learn how to record cash payments using the Payments API.

Link to section


A seller can receive cash payments from a buyer (see Take Payments) and applications can record these payments using CreatePayment. In a CreatePayment request, in addition to the amount of money to accept for the payment, you provide the cash payment details including:

  • source_id. Set this field to CASH.
  • cash_details (CashPaymentDetails). Use this field to specify the buyer-supplied amount.
Link to section

CreatePayment Example

The following example CreatePayment request specifies:

  • amount_money and tip_money. A total of $1.50 to collect.
  • cash_details specifies that the buyer supplied $2 cash.

Create payment

After receiving the request, Square records the payment and returns a Payment object in the response as shown:

Note that cash_details in the response includes change_back_money. The API computes this amount based on total_money and buyer_supplied_money.


You can use a recorded cash payment to pay for an order. If you're using the PayOrder endpoint (Orders API), you must set autocomplete to false in the preceding CreatePayment request. This sets the resulting Payment status to APPROVED as required by the PayOrder endpoint. For more information about paying for orders, see Orders integration.

Link to section

See also