All documentation

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”
  </td><td>
    Required
  </td></tr><tr><td>
    totalAmountDue
  </td><td>
    Total amount to be processed.\
    No “$” required.  

    EX: 1.00
  </td><td>
    Required
  </td></tr><tr><td>
    chargeType
  </td><td>
    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](https://docs.everyware.com/docs/processauthorization) endpoint.
  </td><td>
    Required
  </td></tr><tr><td>
    individualId
  </td><td>
    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.
  </td><td>
    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.
  </td></tr><tr><td>
    orderNumber
  </td><td>
    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.
  </td><td>
    Required
  </td></tr><tr><td>
    ProductService
  </td><td>
    A description of the product/service being purchased.
  </td><td>
    Optional
  </td></tr></tbody></table>

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 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": "test@testdomain.com",
    "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.