Send Terminal Payment
Access Endpoint URL: https://rest.everyware.com/api/terminals/payment [POST]
This POST method allows merchants to pass in a dollar amount and optional customer information to quickly send a payment request to a synced terminal. The customer will complete the payment on the device by inserting, tapping or swiping their payment instrument.
These transactions will be recorded as POS Payment Type, with the order item description 'Terminal Payment'. Transactions can be associated with a new customer contact, an existing one, or no customer record at all depending on the information provided in this call. Sample code for each of these three scenarios is provided in this guide.
Inbound Parameters
Parameters should be passed in a single JSON-body object.
Parameter | Description | Optional/Required |
---|---|---|
everywareTerminalId | Everyware issued unique numeric Id used to differentiate between terminals associated with a single Everyware sales site. EX: “8” | Required |
totalAmountDue | Total amount to be processed. No “$” required. EX: 1.00 | Required |
chargeType | The type of transaction you want to process: 'charge' or 'authorize'. If you process a charge it is a Sale or Purchase and, therefore, it will process the transaction right away and automatically settle. If you process an authorize, it will authorize the funds on the card and will need to be captured/completed via the /processauthorization endpoint. | Required |
individualId | If merchant passes an Individual ID associated with an existing contact in Everyware, the terminal payment will be logged with the customer's existing payment history. If left blank Everyware will assign an Individual ID for the payment method account holder record. *You cannot pass an individual Id and create a new customer at the same time. | Optional - Do not use if you do not want to tie the transaction to an existing contact record or if you want to create a new contact record. |
orderNumber | This should be a unique value your application defines which is associated with the invoice that appears on the top of the customer facing invoice as "Invoice #" and throughout the Everyware portal. | Required |
ProductService | A description of the product/service being purchased. | Optional |
CustomerInfo Parameters
FirstName | First name for the new contact's customer profile. | Required to create new contact |
LastName | Last name for the new contact's customer profile. | Required to create new contact |
Street | Street address for the new contact's customer profile. Ex: "107 Brazos St" | Optional |
StateId | State code for the new contact's customer profile. Ex: "TX" | Optional |
CountryId | Country code for the new contact's customer profile. Ex: "US" | Optional |
City | City for the new contact's customer profile. Ex: "Austin" | Optional |
Zip | Zip code for the new contact's customer profile. | Optional |
email address for the new contact's customer profile. | Optional | |
PhoneNumber | Mobile phone number, saved as Primary phone number for the new contact's customer profile. | Required to create new contact |
ExternalID | External system's Id used to identify the customer. This is 'CustomerID' in the Everyware portal. | Optional |
Sample Quick Terminal Order with No Customer
Create a quick terminal order without tying it to a new or existing customer record.
{
"everywareTerminalId": 61,
"totalAmountDue": 0.01,
"orderNumber": "20221209 145430",
"chargeType": "charge"
}
{
"TerminalTransactionId": 341,
"EverywareTerminalId": 61,
"SalesSiteId": 111111,
"ErrorMessage": null
}
Sample Quick Terminal Order for New Customer
Create a quick terminal order and new customer record together.
{
"everywareTerminalId": 61,
"totalAmountDue": 10.00,
"individualId": null,
"orderNumber": "20230602 083600",
"chargeType": "charge",
"customerInfo": {
"firstName":"CustomerFirstName",
"lastName": "CustomerLastName",
"street": "TestStreet",
"stateId": "CO",
"countryId": "US",
"city": "Denver",
"zip": "80132",
"email": "[email protected]",
"phoneNumber": "3333333333",
"externalId": "ABC123"
}
}
Sample Quick Terminal Order for Existing Customer
This sample input is used to create a quick terminal order tied to an existing customer's payment records by passing in the individualId.
{
"everywareTerminalId": 8,
"amount": 50.00,
"individualId": 8361948,
"chargeType": "charge"
}
individualId
Only provide an individualId for an existing contact in this scenario. Otherwise, leave off the individualId field.
Updated 9 months ago