<- Payments API

Payments API

Create payment

POST

 /v2/payments

Creates a payment using the provided source.

You can use this endpoint to charge a card (credit/debit card or
Square gift card) or record a payment that the seller received outside of Square (cash payment from a buyer or a payment that an external entity processed on behalf of the seller).

The endpoint creates a Payment object and returns it in the response.

Permissions:PAYMENTS_WRITE
Try in API Explorer
Link to section

Request body

Example code

Link to section

source_id

string

Required

The ID for the source of funds for this payment. This could be a payment token generated by the Web Payments SDK for any of its supported methods, including cards, bank transfers, Afterpay or Cash App Pay. If recording a payment that the seller received outside of Square, specify either "CASH" or "EXTERNAL". For more information, see Take Payments.

Link to section

idempotency_key

string

Required

A unique string that identifies this CreatePayment request. Keys can be any valid string but must be unique for every CreatePayment request.

Note: The number of allowed characters might be less than the stated maximum, if multi-byte characters are used.

For more information, see Idempotency.

Link to section

amount_money

The amount of money to accept for this payment, not including tip_money.

The amount must be specified in the smallest denomination of the applicable currency (for example, US dollar amounts are specified in cents). For more information, see Working with Monetary Amounts.

The currency code must match the currency associated with the business that is accepting the payment.

Link to section

tip_money

The amount designated as a tip, in addition to amount_money.

The amount must be specified in the smallest denomination of the applicable currency (for example, US dollar amounts are specified in cents). For more information, see Working with Monetary Amounts.

The currency code must match the currency associated with the business that is accepting the payment.

Link to section

app_fee_money

The amount of money that the developer is taking as a fee for facilitating the payment on behalf of the seller.

The amount cannot be more than 90% of the total amount of the payment.

The amount must be specified in the smallest denomination of the applicable currency (for example, US dollar amounts are specified in cents). For more information, see Working with Monetary Amounts.

The fee currency code must match the currency associated with the seller that is accepting the payment. The application must be from a developer account in the same country and using the same currency code as the seller.

For more information about the application fee scenario, see Take Payments and Collect Fees.

To set this field, PAYMENTS_WRITE_ADDITIONAL_RECIPIENTS OAuth permission is required. For more information, see Permissions.

Link to section

delay_duration

string

The duration of time after the payment's creation when Square automatically either completes or cancels the payment depending on the delay_action field value. For more information, see Time threshold.

This parameter should be specified as a time duration, in RFC 3339 format.

Note: This feature is only supported for card payments. This parameter can only be set for a delayed capture payment (autocomplete=false).

Default:

  • Card-present payments: "PT36H" (36 hours) from the creation time.
  • Card-not-present payments: "P7D" (7 days) from the creation time.

Example for 2 days, 12 hours, 30 minutes, and 15 seconds: P2DT12H30M15S

Link to section

delay_action

string

The action to be applied to the payment when the delay_duration has elapsed. The action must be CANCEL or COMPLETE. For more information, see Time Threshold.

Default: CANCEL

Link to section

autocomplete

boolean

If set to true, this payment will be completed when possible. If set to false, this payment is held in an approved state until either explicitly completed (captured) or canceled (voided). For more information, see Delayed capture.

Default: true

Link to section

order_id

string

Associates a previously created order with this payment.

Link to section

customer_id

string

The Customer ID of the customer associated with the payment.

This is required if the source_id refers to a card on file created using the Cards API.

Link to section

location_id

string

The location ID to associate with the payment. If not specified, the main location is used.

Link to section

team_member_id

string

An optional TeamMember ID to associate with this payment.

Link to section

reference_id

string

A user-defined ID to associate with the payment.

You can use this field to associate the payment to an entity in an external system (for example, you might specify an order ID that is generated by a third-party shopping cart).

Link to section

verification_token

string

An identifying token generated by payments.verifyBuyer(). Verification tokens encapsulate customer device information and 3-D Secure challenge results to indicate that Square has verified the buyer identity.

For more information, see SCA Overview.

Link to section

accept_partial_authorization

boolean

If set to true and charging a Square Gift Card, a payment might be returned with amount_money equal to less than what was requested. For example, a request for $20 when charging a Square Gift Card with a balance of $5 results in an APPROVED payment of $5. You might choose to prompt the buyer for an additional payment to cover the remainder or cancel the Gift Card payment. This field cannot be true when autocomplete = true.

For more information, see Partial amount with Square Gift Cards.

Default: false

Link to section

buyer_email_address

string

The buyer's email address.

Link to section

billing_address

The buyer's billing address.

Link to section

shipping_address

The buyer's shipping address.

Link to section

note

string

An optional note to be entered by the developer when creating a payment.

Link to section

statement_description_identifier

string

Optional additional payment information to include on the customer's card statement as part of the statement description. This can be, for example, an invoice number, ticket number, or short description that uniquely identifies the purchase.

Note that the statement_description_identifier might get truncated on the statement description to fit the required information including the Square identifier (SQ *) and name of the seller taking the payment.

Link to section

cash_details

Additional details required when recording a cash payment (source_id is CASH).

Link to section

external_details

Additional details required when recording an external payment (source_id is EXTERNAL).

Link to section

customer_details

Details about the customer making the payment.

Link to section

offline_payment_details

An optional field for specifying the offline payment details. This is intended for internal 1st-party callers only.

Link to section

Response fields

Link to section

errors

Information about errors encountered during the request.

Link to section

payment

The newly created payment.

Error descriptions