API Reference

Payment CREATE

Creates a payment intent to collect a payment or, if enabled, initiate an unreferenced refund - see the amount param.

Log in to see full request history

Currency

Currently all payment requests are in the currency of the merchants country of business. We'll be changing this in the future since some countries do require the ability to support different currencies.

Body Params

Creates a payment intent that can be used to collect payment from terminal hardware or eCommerce web components.

number
required

The amount you intend to collect for payment.
Stripe - Minimum is 0.50 unless collecting a card on file.
Adyen - Minimum is 0.50 unless collecting a card on file using manual entry.
Adyen Unreferenced Refund - send a negative number to create an intent for an unreferenced refund. Note, the refund call expects a positive number in all cases.

string
required

Your business/merchant/store ID that maps to the account.

string
required

Your unique ID that maps to the payment (this is a unique ID for a specific payment for one card)

string

Alias to external_payment_id for backwards compatability.

string

Adyen Only:
Optional merchant facing reference. This value will override external_payment_id in the payments view.
Sometimes it's desirable to have a merchant facing reference for a payment other than the external_payment_id. In some POS systems the external_payment_id might be something like a GUID and a more customer friendly reference is nice to show, this is where you would provide this value.

string
Defaults to card

Determines what type of flow can use this intent:

  • "card" means this intent will be use as part of an online manual entry of the card (eCommerce or manual card entry at the store). [Stripe]
  • "card_not_present" means this intent will be used for eCommerce or manual card entry at the store [Adyen]
  • "card_not_present_mke" means this intent will be use the point of sale terminal, but manually entered on the terminal. [Adyen]
  • "card_not_present_moto" means this intent will be used in the POS using the eCommerce form fields to manually enter card information either over the phone or in person as a backup when the terminal hardware is not working. The clerk will be entering the data in this case.
  • "card_present" means this intent will be used with the point of sale terminal. [Adyen | Stripe]
  • "affirm,klarna,afterpay" allows the intent to be used with the BNPL services [Stripe]
  • "interac" allows interac payments for Canadian accounts. [Stripe]
  • "card_present_ebt_food,card_present_ebt_cash" allows you specify that the payment method at the terminal must be EBT food or EBT cash. To allow the customer to pick their payment method at the terminal, use "card_present" and set "ebt_amount". [EBT & Adyen & P5]
  • "card_not_present_ebt_mke" allows manual key entry at the terminal for the EBT [EBT & Adyen & P5]
  • "card_not_present_link" creates a web link that will allow a customer to make payment through the link. If you use this method type to create your intent, you cannot call AUTH, you will need to wait for the customer to complete the payment through the link.
string
Defaults to automatic

Determines if the intent will be authorized or captured automatically when confirmed. Auth and Manual are the same and will only authorized the amount and require it to be captured later. Capture and Automatic are the same and will cause the funds to be automatically captured at the time the card payment is received.

string

An existing payment ID - when doing a PUT this will update the record by payment id

string

Payment Method ID - required when paying with a card on file

string

Your customer ID to attach to the payment method.

  • [Stripe] Optional if doing a 'manual' intent and you will call POST /customer/card to attach to the card later.
    *Required if 'automatic' capture_method is used.
  • Required when paying with a card on file
boolean
Defaults to false
  • This will be ignored if paying with a customer card on file.
  • Required if you intend to save a card on file or [Stripe] you intend to attach the customer later with /customer/card.
string

Adyen Only:
A comma delimited list of known payment_ids that will be ignored when validating if the external_transaction_id has already been used. This will allow multiple payments to be processed against the same external_transaction_id without having to create your own unique external_transaction_id for each payment.
This will also allow you to get multiple payments associated with one external_transaction_id using the GET Payments by ExternalID endpoint.

number

Adyen Only: If the account processing fee model for the account is cash discounting, then it's required that you also include what portion of the amount is the card processing fee. This is required for terminal transactions and POS card-not-present transactions but should not be included for eCommerce transactions.

The "amount" on this request should be inclusive of this fee or in other words, it should be the total amount of the payment.

string
shipping_address
object
billing_address
object
customer_account
object
number

Adyen and EBT and P5 only:
The amount that is EBT Food eligible.
When doing a payment where the customer can choose at the terminal to pay with EBT Food, EBT Cash or use a credit card, the "amount" specifies the total possible payment (EBT Food qualifying amounts and non-EBT amounts) and "ebt_amount" specifies the amount that can be used for EBT Food.
If "ebt_amount" is greater than 0, then the customer will be provided the option at the terminal reader to pay with EBT Food, EBT Cash or Credit Card. If they choose EBT Food, they will only be able to pay the "ebt_amount" with that payment method and not the entire "amount". If they choose EBT Cash or credit card, they can pay the entire "amount".
If "payment_method_types" is set to "card_present_ebt_food", then this field is not required as the entire "amount" is assumed to be EBT Food eligible.

string

A string to identify which version of your software made this request.

shopper_details
object

Adyen only, CNP only

receipt_details
object

Detailed transaction data for use in Level 2 or 3 Enhanced Schema Data. All strings should be ASCII encoded. This may be passed during the creation of the payment intent or during capture. We highly recommend passing it during capture so the data matches the capture amount.

Responses

Language
Credentials
Click Try It! to start a request and see the response here! Or choose an example:
application/json