# Receipts API

Receipt API v1

> Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu. Our Receipts API can be used to power receipt notifications and dynamic printed offers for In-Store transactions. The full integration guide that accompanies this RAML can be found in PDF form at: https://fr-public.s3.amazonaws.com/current-documents/flexEngage+Receipt+API+(REST+v1.x).pdf Base URLs: * https://api.flexreceipts.com/ws/rest/v1 # Authentication - HTTP Authentication, scheme: basic All requests are secured with basic authentication. Credentials are provided with your account information.

Default

## POST_merchants-merchantId-receipts-receiptId-email > Code samples ```shell # You can also use wget curl -X POST https://api.flexreceipts.com/ws/rest/v1/merchants/{merchantId}/receipts/{receiptId}/email \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' ``` ```java URL obj = new URL("https://api.flexreceipts.com/ws/rest/v1/merchants/{merchantId}/receipts/{receiptId}/email"); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); con.setRequestMethod("POST"); int responseCode = con.getResponseCode(); BufferedReader in = new BufferedReader( new InputStreamReader(con.getInputStream())); String inputLine; StringBuffer response = new StringBuffer(); while ((inputLine = in.readLine()) != null) { response.append(inputLine); } in.close(); System.out.println(response.toString()); ``` ```csharp using System; using System.Collections.Generic; using System.Net.Http; using System.Net.Http.Headers; using System.Text; using System.Threading.Tasks; using Newtonsoft.Json; /// <> /// Example of Http Client /// <> public class HttpExample { private HttpClient Client { get; set; } /// <> /// Setup http client /// <> public HttpExample() { Client = new HttpClient(); } /// Make a dummy request public async Task MakePostRequest() { string url = "https://api.flexreceipts.com/ws/rest/v1/merchants/{merchantId}/receipts/{receiptId}/email"; string json = @"{ ""customerEmailAddress"": ""jane.doe@email.com"" }"; ResendEmailData content = JsonConvert.DeserializeObject(json); await PostAsync(content, url); } /// Performs a POST Request public async Task PostAsync(ResendEmailData content, string url) { //Serialize Object StringContent jsonContent = SerializeObject(content); //Execute POST request HttpResponseMessage response = await Client.PostAsync(url, jsonContent); } /// Serialize an object to Json private StringContent SerializeObject(ResendEmailData content) { //Serialize Object string jsonObject = JsonConvert.SerializeObject(content); //Create Json UTF8 String Content return new StringContent(jsonObject, Encoding.UTF8, "application/json"); } /// Deserialize object from request response private async Task DeserializeObject(HttpResponseMessage response) { //Read body string responseBody = await response.Content.ReadAsStringAsync(); //Deserialize Body to object var result = JsonConvert.DeserializeObject(responseBody); } } ``` ```python import requests headers = { 'Content-Type': 'application/json', 'Accept': 'application/json' } r = requests.post('https://api.flexreceipts.com/ws/rest/v1/merchants/{merchantId}/receipts/{receiptId}/email', headers = headers) print(r.json()) ``` `POST /merchants/{merchantId}/receipts/{receiptId}/email` Resends an email with the receipt. > Body parameter ```json { "customerEmailAddress": "jane.doe@email.com" } ```

Parameters

|Name|In|Type|Required|Description| |---|---|---|---|---| |body|body|[ResendEmailData](#schemaresendemaildata)|true|none| |merchantId|path|string|true|Unique flexReceipts merchant Id| |receiptId|path|string|true|Unique receipt id. This is the receipt that was previously created and you want to email again.| > Example responses > 422 Response ```json { "message": "Validation failed", "code": "422", "referenceId": "123e4567-e89b-12d3-a456-426655440000", "errors": { "emailAddress": [ { "code": "required", "message": "Email Address is required" } ] } } ``` > 500 Response ```json { "message": "Internal Server Error", "code": "500", "referenceId": "123e4567-e89b-12d3-a456-426655440000" } ```

Responses

|Status|Meaning|Description|Schema| |---|---|---|---| |202|[Accepted](https://tools.ietf.org/html/rfc7231#section-6.3.3)|Request was accepted and it will be processed. The receipt will be queued for delivery via email.|None| |422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The request failed validation; review the response for details.|[ErrorResponse](#schemaerrorresponse)| |500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|An unexpected error occurred. Retry the request after some delay. Contact support@flexreceipts.com if the problem persists.|[ErrorResponse](#schemaerrorresponse)| ## GET_merchants-merchantId-receipts > Code samples ```shell # You can also use wget curl -X GET https://api.flexreceipts.com/ws/rest/v1/merchants/{merchantId}/receipts?fromDate=2020-11-10&toDate=2020-12-10 \ -H 'Accept: application/json' ``` ```java URL obj = new URL("https://api.flexreceipts.com/ws/rest/v1/merchants/{merchantId}/receipts?fromDate=2020-11-10&toDate=2020-12-10"); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); con.setRequestMethod("GET"); int responseCode = con.getResponseCode(); BufferedReader in = new BufferedReader( new InputStreamReader(con.getInputStream())); String inputLine; StringBuffer response = new StringBuffer(); while ((inputLine = in.readLine()) != null) { response.append(inputLine); } in.close(); System.out.println(response.toString()); ``` ```csharp using System; using System.Collections.Generic; using System.Net.Http; using System.Net.Http.Headers; using System.Text; using System.Threading.Tasks; using Newtonsoft.Json; /// <> /// Example of Http Client /// <> public class HttpExample { private HttpClient Client { get; set; } /// <> /// Setup http client /// <> public HttpExample() { Client = new HttpClient(); } /// Make a dummy request public async Task MakeGetRequest() { string url = "https://api.flexreceipts.com/ws/rest/v1/merchants/{merchantId}/receipts"; var result = await GetAsync(url); } /// Performs a GET Request public async Task GetAsync(string url) { //Start the request HttpResponseMessage response = await Client.GetAsync(url); //Validate result response.EnsureSuccessStatusCode(); } /// Deserialize object from request response private async Task DeserializeObject(HttpResponseMessage response) { //Read body string responseBody = await response.Content.ReadAsStringAsync(); //Deserialize Body to object var result = JsonConvert.DeserializeObject(responseBody); } } ``` ```python import requests headers = { 'Accept': 'application/json' } r = requests.get('https://api.flexreceipts.com/ws/rest/v1/merchants/{merchantId}/receipts', params={ 'fromDate': '2020-11-10', 'toDate': '2020-12-10' }, headers = headers) print(r.json()) ``` `GET /merchants/{merchantId}/receipts` Provides the ability to query for receipts based on a number of fields.

Parameters

|Name|In|Type|Required|Description| |---|---|---|---|---| |fromDate|query|string(date-time)|true|The minimum Receipt Date for all receipts queried.| |toDate|query|string(date-time)|true|The maximum Receipt Date for all receipts queried.| |storeId|query|string|false|Filters results by Store Id.| |storeName|query|string|false|Filters results by Store Name.| |transactionNumber|query|string|false|Filters results by Transaction Number. This is the same as the receipt number.| |receiptNumber|query|string|false|Filters results by Receipt Number. This is the same as the transaction number.| |pageSize|query|number|false|The maximium number of results that can be returned in the query| |pageNumber|query|number|false|Requests a specific page number from the query results based on page| |merchantId|path|string|true|Unique flexReceipts merchant Id| #### Detailed descriptions **pageSize**: The maximium number of results that can be returned in the query response. Pagination is required when the number of results returned by the query results is larger than the page size. **pageNumber**: Requests a specific page number from the query results based on page size. > Example responses > 200 Response ```json [ { "id": "12345678-1234-1234-1234-123456789012", "customerEmailAddress": "jane.doe@email.com", "storeId": 123, "storeName": "Store 123", "storeCity": "Orlando", "storeZipCode": 12345, "storeTerritory": "FL", "receiptDate": "2013-11-10T15:15:17-05:00", "receiptNumber": 123456, "transactionNumber": 123456, "transactionAmount": 100, "transactionType": "SaleTransaction", "paymentType": "Cash", "items": [ { "itemName": "Item 1", "itemPrice": 100, "itemSKUNumber": 123456 } ] } ] ``` > 422 Response ```json { "message": "Validation failed", "code": "422", "referenceId": "123e4567-e89b-12d3-a456-426655440000", "errors": { "fromDate": [ { "code": "required", "message": "From Date is required" } ], "toDate": [ { "code": "required", "message": "To Date is required" } ] } } ``` > 500 Response ```json { "message": "Internal Server Error", "code": "500", "referenceId": "123e4567-e89b-12d3-a456-426655440000" } ```

Responses

|Status|Meaning|Description|Schema| |---|---|---|---| |200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline| |422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The request was syntatically correct but, the request input failed validation (e.g. required field not provided). Inspect the response to determine which fields are missing.|[ErrorResponse](#schemaerrorresponse)| |500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error. Retry the request later.|[ErrorResponse](#schemaerrorresponse)|

Response Schema

Status Code **200** |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |» id|string|true|none|The unique id for the receipt. Use this id to retrieve
the receipt via the endpoint /merchants/{merchantId}/receipts/{receiptId}.| |» customerEmailAddress|string|true|none|The Customer Email Address.| |» storeId|string|true|none|The Store Id for the receipt.| |» storeName|string|true|none|The Store Name for the receipt.| |» storeCity|string|false|none|The Store City for the receipt.| |» storeZipCode|string|false|none|The Store Zip Code for the receipt.| |» storeTerritory|string|false|none|The Store Territory for the receipt.| |» receiptDate|string(date-time)|true|none|The Receipt Date.| |» receiptNumber|string|true|none|The Receipt Number.| |» transactionNumber|string|true|none|The Transaction Number.| |» transactionAmount|number|true|none|The Transaction Amount.| |» transactionType|string|true|none|The Transaction Type.| |» paymentType|string|true|none|The Payment Type.| |» items|[object]|false|none|The Items in the receipt.| |»» itemName|string|false|none|The Item Name.| |»» itemPrice|number|false|none|The Item Price.| |»» itemSKUNumber|string|false|none|The SKU for the item.| ### Response Headers |Status|Header|Type|Format|Description| |---|---|---|---|---| |200|link|string||The link header provides links for pagination. The header will contain links to the previous page and next page only if there is data on the previous or next pages. This makes it easy to traverse pages by repeatedly navigating to the next page until no next page is found. The value for this header follows the specification for the Link header (https://tools.ietf.org/html/rfc5988). Each header value has a property "rel" which defines whether the link is for the previous page (i.e. "prev") or next page (i.e. "next"). | ## POST_merchants-merchantId-receipts > Code samples ```shell # You can also use wget curl -X POST https://api.flexreceipts.com/ws/rest/v1/merchants/{merchantId}/receipts \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' ``` ```java URL obj = new URL("https://api.flexreceipts.com/ws/rest/v1/merchants/{merchantId}/receipts"); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); con.setRequestMethod("POST"); int responseCode = con.getResponseCode(); BufferedReader in = new BufferedReader( new InputStreamReader(con.getInputStream())); String inputLine; StringBuffer response = new StringBuffer(); while ((inputLine = in.readLine()) != null) { response.append(inputLine); } in.close(); System.out.println(response.toString()); ``` ```csharp using System; using System.Collections.Generic; using System.Net.Http; using System.Net.Http.Headers; using System.Text; using System.Threading.Tasks; using Newtonsoft.Json; /// <> /// Example of Http Client /// <> public class HttpExample { private HttpClient Client { get; set; } /// <> /// Setup http client /// <> public HttpExample() { Client = new HttpClient(); } /// Make a dummy request public async Task MakePostRequest() { string url = "https://api.flexreceipts.com/ws/rest/v1/merchants/{merchantId}/receipts"; string json = @"{ ""requestId"": ""123e4567-e89b-12d3-a456-426655440000"", ""customer"": { ""emailAddress"": ""jane.doe@email.com"", ""telephone"": { ""areaCode"": ""123"", ""localNumber"": ""4567890"" } }, ""workstation"": { ""id"": ""90"", ""operator"": ""John"", ""associate"": ""Sam"", ""store"": { ""id"": ""123"", ""name"": ""Store 123"", ""address"": { ""typeCode"": ""RetailStore"", ""addressLine1"": ""123 Main St"", ""addressLine2"": ""Suite 100"", ""city"": ""Orlando"", ""territory"": ""FL"", ""postalCode"": ""12345"", ""country"": { ""value"": ""US"", ""code"": ""US"" }, ""postalCodeExtension"": ""6789"" }, ""telephone"": { ""areaCode"": ""123"", ""localNumber"": ""4567890"" } } }, ""mode"": ""Production"", ""receiptType"": ""DigitalOnly"", ""barcodeType"": ""Code128"", ""barcodeNumber"": ""1234567890"", ""receiptDateTime"": ""2013-11-10T15:15:17-05:00"", ""loyalty"": { ""number"": ""1234567890"", ""customerName"": ""Jane Doe"", ""expirationDateTime"": ""2013-11-10T15:15:17-05:00"", ""balance"": 100, ""misc"": ""100 points until next level"" }, ""transactionType"": ""SaleTransaction"", ""transactionNumber"": ""123456"", ""items"": [ { ""name"": ""LIVING ROOM SET"", ""description"": ""3 piece set"", ""sku"": ""20170112029"", ""upc"": ""041789123456"", ""brand"": ""MyBrand"", ""category"": ""Furniture"", ""industry"": ""Furniture"", ""manufacturer"": ""MyManufacturer"", ""price"": 100, ""total"": 190, ""quantity"": { ""value"": 2, ""unitOfMeasureCode"": ""Each"" }, ""discounts"": [ { ""amount"": -10, ""name"": ""Member Discount"" } ], ""miscInfo"": ""In-home delivery\n(Assembly required)\nUsually ships in 2-3 weeks"", ""supportingDocuments"": { ""warranty"": { ""name"": ""Click for Warranty Information"", ""url"": ""http://www.example.com/warranty.pdf"" } } } ], ""grossAmount"": 200, ""discounts"": [ { ""amount"": -10, ""name"": ""Member Discount"" } ], ""netAmount"": 190, ""taxes"": [ { ""description"": ""Sales Tax"", ""percent"": 0.06, ""taxableAmount"": 190, ""amount"": 11.4, ""taxTypeCode"": ""Sales"" } ], ""grandAmount"": 201.4, ""tenderApplied"": 202, ""balanceDue"": 0, ""changeDue"": 0.6, ""tenders"": [ { ""tenderTypeCode"": ""CreditCard"", ""dateTime"": ""2013-11-10T15:15:17-05:00"", ""amount"": 202, ""creditDebit"": { ""first6Digits"": ""123456"", ""last4Digits"": ""7890"", ""typeCode"": ""Visa"", ""name"": { ""firstName"": ""Jane"", ""lastName"": ""Doe"" }, ""expirationDate"": ""0125"" }, ""authorizationCode"": ""123456"", ""signature"": { ""base64Image"": ""iVBORw0KGgoAAAANSUhEUgAAAQ4AAABACAIAAABk9g5aAAAAA3NCSVQICAjb4U/gAAAFGklEQVR4nO2dW3akOgxFIevOf8r0Bze028ZCbwSc/ZWslGUjW08osm7btoDns67rsizYzTh+7l4AcGC3k/YH4A5MBQAWMJX3gOwrFJjK2/hUDraua9r1wlQAYPGfcTxt00gJgAJmNy85fiKqvIH9VKFfHIopqtB7s+eRXjuHc/ARytZaiCovAU4kGpjK2yjrlZ+O3lSQEZXludZSeeWBUQVWlAk8VzThCVhlP/FK2m4YcMRkKvBhRehCykOtRRQY869OaSqP24av8VBrOSjohWMTMN+bKk/nlqvIn3T9ZVE9o1V2r9EsTiXzHNzimPMPetplZphKWT/xDogU/8Y0bJ962zZR7VEw7zpAVAGAxQNM5XCKlV1OWZIDy/aLaNQRUirHlgeYCgAVgKmk4u4vOW746Y3jIlQ3FWzwRyiefS31TeU13GvzlQOLZVWZdlXaVIq7mSJAPzlYv1vPQbeX3WvgcCB8qdZXrL/LsVHFHvEr645P0DkQqbedvVom9ohdzk7AmA8F1fcxz6WgbgsuaURpKi45Ff2x4orjU+pySi3mWQTWKt2udOYxe5kL9lKEQlGldNuVTKMPrbNaUwLmnvK+z07ed0VxVKugOjI6YMugheN+0+mfcpb0dHTfAymrXlFHTmdUxqZflKm0G9Musb1IfrQtu8E00aeTL7mmw870knYNhEeV0U46jdAKumwAKPRb3L9y4PRFOjo/JZoius0tkq849J3j1h2be+6ruDi5mp7yoJRB6p6Kn/1qpEuEiqjoEn1U2b1UZ6AznRLFiQ61kHHgzAfr5CfA0aQ62I4SvOyEqFelQkRjT2sBBZ4JGH8d7tughoh7FmuJCCkK9aqFR3uKyp5ohpupzL7Idry54/iktBgdP28MKUc8nC3pdgNuSQh6ObniqZIVVYqimdG+IW08kDO6iXxqFWYmoPgqKUesUc4oyhisHU9eaG3dTvFEN09D1AI6CQ5RZcwFx+rFcSccqxR3ItL6mSVbZF5OQUsgPm9MXC9nd3z/y6WorhS3vgl/aRyzOj5KsWxGF+XUcka8IsBMjt3pnI7lCGSW0fzcJtRteXnnLrkQRBVOL989enhVEdLlnfb3LuWLpqBntwtpMeqN03fia8B4Y8QuXNd800eV7Re1hDSi03FfO1nO9ttyCb49ZXqKCCMnrt1ekNC0geUiqjB7iPRGEusObYC0o+IIOiVtQHOxE87tr9lYenaRhkVpKqFbopfFTwT4yee6rlRUCe21JzdkFUk/pw8WYScRLRB1lcKcQiqKWVIvZNeU6F5GcB5VFBVqdCZWsKcZl3Vc3vmRSmt/FTmpfSXMbEIR8LvIOc7OWaFo0mOUKLRu23YSVaQ7dDmlOvPmNPsU95L4HFPMLsEinDO1BRfnclnHK/K6UY7aTjLpo0oR5316E0BRKdnTPCInJpbkwvbvg3NedZ2o88uH0zOcWddd5415jfvy/okqinVfDhl9v6N2dC5N2rib5cQJG6yrxV00TKdVdve0j72xiSpOF41tFs4onT8+/BNzYdF9w9sRqZrzMYVmLpPz0Hz4Xv6PKqF9WHWbYpbFMmd5GZe1mah8UlfD9HBj/VkZmefuB0cmml79nzfxYp9dn3XTvoE8oSAr0mMoRcKtd3BK0htbdGDvR6CTu1DeHIC/B1+j9D+NAKAORasUAKqBqAIAC3GtgpACvoksqsBOwGf54T+fm/wNEwBK8fe+ivopFQC+wM8iOf2wE/BZ/gCTtsbwwukPxQAAAABJRU5ErkJggg=="", ""imageMimeType"": ""image/png"", ""dateTime"": ""2013-11-10T15:15:17-05:00"", ""text"": ""I have read and accept the terms and conditions"" }, ""currency"": ""USD"" } ], ""soldTo"": { ""address"": { ""typeCode"": ""Home"", ""addressLine1"": ""123 Main St"", ""addressLine2"": ""Suite 100"", ""addressLine3"": ""Building 2"", ""city"": ""Orlando"", ""territory"": ""FL"", ""postalCode"": ""12345"", ""country"": { ""value"": ""US"", ""code"": ""US"" }, ""postalCodeExtension"": ""6789"" }, ""customerName"": ""Jane Doe"", ""customerNumber"": ""123456"", ""telephone1"": { ""areaCode"": ""123"", ""localNumber"": ""4567890"" }, ""telephone2"": { ""areaCode"": ""123"", ""localNumber"": ""4567890"" } }, ""terms"": [ { ""signature"": { ""base64Image"": ""iVBORw0KGgoAAAANSUhEUgAAAQ4AAABACAIAAABk9g5aAAAAA3NCSVQICAjb4U/gAAAFGklEQVR4nO2dW3akOgxFIevOf8r0Bze028ZCbwSc/ZWslGUjW08osm7btoDns67rsizYzTh+7l4AcGC3k/YH4A5MBQAWMJX3gOwrFJjK2/hUDraua9r1wlQAYPGfcTxt00gJgAJmNy85fiKqvIH9VKFfHIopqtB7s+eRXjuHc/ARytZaiCovAU4kGpjK2yjrlZ+O3lSQEZXludZSeeWBUQVWlAk8VzThCVhlP/FK2m4YcMRkKvBhRehCykOtRRQY869OaSqP24av8VBrOSjohWMTMN+bKk/nlqvIn3T9ZVE9o1V2r9EsTiXzHNzimPMPetplZphKWT/xDogU/8Y0bJ962zZR7VEw7zpAVAGAxQNM5XCKlV1OWZIDy/aLaNQRUirHlgeYCgAVgKmk4u4vOW746Y3jIlQ3FWzwRyiefS31TeU13GvzlQOLZVWZdlXaVIq7mSJAPzlYv1vPQbeX3WvgcCB8qdZXrL/LsVHFHvEr645P0DkQqbedvVom9ohdzk7AmA8F1fcxz6WgbgsuaURpKi45Ff2x4orjU+pySi3mWQTWKt2udOYxe5kL9lKEQlGldNuVTKMPrbNaUwLmnvK+z07ed0VxVKugOjI6YMugheN+0+mfcpb0dHTfAymrXlFHTmdUxqZflKm0G9Musb1IfrQtu8E00aeTL7mmw870knYNhEeV0U46jdAKumwAKPRb3L9y4PRFOjo/JZoius0tkq849J3j1h2be+6ruDi5mp7yoJRB6p6Kn/1qpEuEiqjoEn1U2b1UZ6AznRLFiQ61kHHgzAfr5CfA0aQ62I4SvOyEqFelQkRjT2sBBZ4JGH8d7tughoh7FmuJCCkK9aqFR3uKyp5ohpupzL7Idry54/iktBgdP28MKUc8nC3pdgNuSQh6ObniqZIVVYqimdG+IW08kDO6iXxqFWYmoPgqKUesUc4oyhisHU9eaG3dTvFEN09D1AI6CQ5RZcwFx+rFcSccqxR3ItL6mSVbZF5OQUsgPm9MXC9nd3z/y6WorhS3vgl/aRyzOj5KsWxGF+XUcka8IsBMjt3pnI7lCGSW0fzcJtRteXnnLrkQRBVOL989enhVEdLlnfb3LuWLpqBntwtpMeqN03fia8B4Y8QuXNd800eV7Re1hDSi03FfO1nO9ttyCb49ZXqKCCMnrt1ekNC0geUiqjB7iPRGEusObYC0o+IIOiVtQHOxE87tr9lYenaRhkVpKqFbopfFTwT4yee6rlRUCe21JzdkFUk/pw8WYScRLRB1lcKcQiqKWVIvZNeU6F5GcB5VFBVqdCZWsKcZl3Vc3vmRSmt/FTmpfSXMbEIR8LvIOc7OWaFo0mOUKLRu23YSVaQ7dDmlOvPmNPsU95L4HFPMLsEinDO1BRfnclnHK/K6UY7aTjLpo0oR5316E0BRKdnTPCInJpbkwvbvg3NedZ2o88uH0zOcWddd5415jfvy/okqinVfDhl9v6N2dC5N2rib5cQJG6yrxV00TKdVdve0j72xiSpOF41tFs4onT8+/BNzYdF9w9sRqZrzMYVmLpPz0Hz4Xv6PKqF9WHWbYpbFMmd5GZe1mah8UlfD9HBj/VkZmefuB0cmml79nzfxYp9dn3XTvoE8oSAr0mMoRcKtd3BK0htbdGDvR6CTu1DeHIC/B1+j9D+NAKAORasUAKqBqAIAC3GtgpACvoksqsBOwGf54T+fm/wNEwBK8fe+ivopFQC+wM8iOf2wE/BZ/gCTtsbwwukPxQAAAABJRU5ErkJggg=="", ""imageMimeType"": ""image/png"", ""dateTime"": ""2013-11-10T15:15:17-05:00"", ""text"": ""I have read and accept the terms and conditions"" }, ""description"": ""I acknowledge that I am entering into a lease agreement described in the terms and conditions in the link below."", ""supportingDocuments"": { ""warranty"": { ""name"": ""Terms and Conditions"", ""url"": ""http://www.example.com/terms.pdf"" } } } ], ""additionalInfo1"": ""We Appreciate Your Business!"", ""additionalInfo2"": ""*** You Saved $10.00 ***"", ""additionalInfo3"": ""Customer loyalty member since 2020"", ""additionalInfo4"": ""Next purchase earns double points!"", ""additionalInfo5"": ""Return policy: 30 days with receipt"", ""rawPosReceipt"": "" \n Store 123 \n 123 Main St, Suite 100 \n Orlando, FL 12345-6789 \n (123) 456-7890 \n\n SALE \n\n\nOperator: John Associate: Sam \n\n20170112029 LIVING ROOM SET $100.00 \n 3 piece set\n Quantity: 2 Each\n Member Discount ($10.00)\n Item Total: $190.00\n\nSubtotal $200.00\nMember Discount ($10.00)\nNet Amount $190.00\nSales Tax 6% $11.40\nTotal $201.40\n------------------------------------------------\n You Saved $10.00 \n------------------------------------------------\nVisa ****7890 $202.00\nChange Due $0.60\n\nLoyalty #: 1234567890 Points: 100\nCustomer: Jane Doe\n100 points until next level\n\nStore: 123 Reg: 90 Tran: 123456\nDate: 11/10/2013 03:15:17 PM \n\n Item(s) Sold: 2 \n Item(s) Returned: 0 \n\nIn-home delivery\n(Assembly required)\nUsually ships in 2-3 weeks\n\n Last Day for Return is: 12/10/2013 \n\n We Appreciate Your Business! \n *** You Saved $10.00 *** \n Customer loyalty member since 2020 \n Next purchase earns double points! \n Return policy: 30 days with receipt \n\n Tax ID 12345 6789 \n\n\n\n\n\n "", ""currency"": ""USD"", ""referenceId"": ""123e4567-e89b-12d3-a456-426655440000"" }"; ReceiptData content = JsonConvert.DeserializeObject(json); await PostAsync(content, url); } /// Performs a POST Request public async Task PostAsync(ReceiptData content, string url) { //Serialize Object StringContent jsonContent = SerializeObject(content); //Execute POST request HttpResponseMessage response = await Client.PostAsync(url, jsonContent); } /// Serialize an object to Json private StringContent SerializeObject(ReceiptData content) { //Serialize Object string jsonObject = JsonConvert.SerializeObject(content); //Create Json UTF8 String Content return new StringContent(jsonObject, Encoding.UTF8, "application/json"); } /// Deserialize object from request response private async Task DeserializeObject(HttpResponseMessage response) { //Read body string responseBody = await response.Content.ReadAsStringAsync(); //Deserialize Body to object var result = JsonConvert.DeserializeObject(responseBody); } } ``` ```python import requests headers = { 'Content-Type': 'application/json', 'Accept': 'application/json' } r = requests.post('https://api.flexreceipts.com/ws/rest/v1/merchants/{merchantId}/receipts', headers = headers) print(r.json()) ``` `POST /merchants/{merchantId}/receipts` Creates and emails a receipt. > Body parameter > Example of a standard sale transaction ```json { "requestId": "123e4567-e89b-12d3-a456-426655440000", "customer": { "emailAddress": "jane.doe@email.com", "telephone": { "areaCode": "123", "localNumber": "4567890" } }, "workstation": { "id": "90", "operator": "John", "associate": "Sam", "store": { "id": "123", "name": "Store 123", "address": { "typeCode": "RetailStore", "addressLine1": "123 Main St", "addressLine2": "Suite 100", "city": "Orlando", "territory": "FL", "postalCode": "12345", "country": { "value": "US", "code": "US" }, "postalCodeExtension": "6789" }, "telephone": { "areaCode": "123", "localNumber": "4567890" } } }, "mode": "Production", "receiptType": "DigitalOnly", "barcodeType": "Code128", "barcodeNumber": "1234567890", "receiptDateTime": "2013-11-10T15:15:17-05:00", "loyalty": { "number": "1234567890", "customerName": "Jane Doe", "expirationDateTime": "2013-11-10T15:15:17-05:00", "balance": 100, "misc": "100 points until next level" }, "transactionType": "SaleTransaction", "transactionNumber": "123456", "items": [ { "name": "LIVING ROOM SET", "description": "3 piece set", "sku": "20170112029", "upc": "041789123456", "brand": "MyBrand", "category": "Furniture", "industry": "Furniture", "manufacturer": "MyManufacturer", "price": 100, "total": 190, "quantity": { "value": 2, "unitOfMeasureCode": "Each" }, "discounts": [ { "amount": -10, "name": "Member Discount" } ], "miscInfo": "In-home delivery\n(Assembly required)\nUsually ships in 2-3 weeks", "supportingDocuments": { "warranty": { "name": "Click for Warranty Information", "url": "http://www.example.com/warranty.pdf" } } } ], "grossAmount": 200, "discounts": [ { "amount": -10, "name": "Member Discount" } ], "netAmount": 190, "taxes": [ { "description": "Sales Tax", "percent": 0.06, "taxableAmount": 190, "amount": 11.4, "taxTypeCode": "Sales" } ], "grandAmount": 201.4, "tenderApplied": 202, "balanceDue": 0, "changeDue": 0.6, "tenders": [ { "tenderTypeCode": "CreditCard", "dateTime": "2013-11-10T15:15:17-05:00", "amount": 202, "creditDebit": { "first6Digits": "123456", "last4Digits": "7890", "typeCode": "Visa", "name": { "firstName": "Jane", "lastName": "Doe" }, "expirationDate": "0125" }, "authorizationCode": "123456", "signature": { "base64Image": "iVBORw0KGgoAAAANSUhEUgAAAQ4AAABACAIAAABk9g5aAAAAA3NCSVQICAjb4U/gAAAFGklEQVR4nO2dW3akOgxFIevOf8r0Bze028ZCbwSc/ZWslGUjW08osm7btoDns67rsizYzTh+7l4AcGC3k/YH4A5MBQAWMJX3gOwrFJjK2/hUDraua9r1wlQAYPGfcTxt00gJgAJmNy85fiKqvIH9VKFfHIopqtB7s+eRXjuHc/ARytZaiCovAU4kGpjK2yjrlZ+O3lSQEZXludZSeeWBUQVWlAk8VzThCVhlP/FK2m4YcMRkKvBhRehCykOtRRQY869OaSqP24av8VBrOSjohWMTMN+bKk/nlqvIn3T9ZVE9o1V2r9EsTiXzHNzimPMPetplZphKWT/xDogU/8Y0bJ962zZR7VEw7zpAVAGAxQNM5XCKlV1OWZIDy/aLaNQRUirHlgeYCgAVgKmk4u4vOW746Y3jIlQ3FWzwRyiefS31TeU13GvzlQOLZVWZdlXaVIq7mSJAPzlYv1vPQbeX3WvgcCB8qdZXrL/LsVHFHvEr645P0DkQqbedvVom9ohdzk7AmA8F1fcxz6WgbgsuaURpKi45Ff2x4orjU+pySi3mWQTWKt2udOYxe5kL9lKEQlGldNuVTKMPrbNaUwLmnvK+z07ed0VxVKugOjI6YMugheN+0+mfcpb0dHTfAymrXlFHTmdUxqZflKm0G9Musb1IfrQtu8E00aeTL7mmw870knYNhEeV0U46jdAKumwAKPRb3L9y4PRFOjo/JZoius0tkq849J3j1h2be+6ruDi5mp7yoJRB6p6Kn/1qpEuEiqjoEn1U2b1UZ6AznRLFiQ61kHHgzAfr5CfA0aQ62I4SvOyEqFelQkRjT2sBBZ4JGH8d7tughoh7FmuJCCkK9aqFR3uKyp5ohpupzL7Idry54/iktBgdP28MKUc8nC3pdgNuSQh6ObniqZIVVYqimdG+IW08kDO6iXxqFWYmoPgqKUesUc4oyhisHU9eaG3dTvFEN09D1AI6CQ5RZcwFx+rFcSccqxR3ItL6mSVbZF5OQUsgPm9MXC9nd3z/y6WorhS3vgl/aRyzOj5KsWxGF+XUcka8IsBMjt3pnI7lCGSW0fzcJtRteXnnLrkQRBVOL989enhVEdLlnfb3LuWLpqBntwtpMeqN03fia8B4Y8QuXNd800eV7Re1hDSi03FfO1nO9ttyCb49ZXqKCCMnrt1ekNC0geUiqjB7iPRGEusObYC0o+IIOiVtQHOxE87tr9lYenaRhkVpKqFbopfFTwT4yee6rlRUCe21JzdkFUk/pw8WYScRLRB1lcKcQiqKWVIvZNeU6F5GcB5VFBVqdCZWsKcZl3Vc3vmRSmt/FTmpfSXMbEIR8LvIOc7OWaFo0mOUKLRu23YSVaQ7dDmlOvPmNPsU95L4HFPMLsEinDO1BRfnclnHK/K6UY7aTjLpo0oR5316E0BRKdnTPCInJpbkwvbvg3NedZ2o88uH0zOcWddd5415jfvy/okqinVfDhl9v6N2dC5N2rib5cQJG6yrxV00TKdVdve0j72xiSpOF41tFs4onT8+/BNzYdF9w9sRqZrzMYVmLpPz0Hz4Xv6PKqF9WHWbYpbFMmd5GZe1mah8UlfD9HBj/VkZmefuB0cmml79nzfxYp9dn3XTvoE8oSAr0mMoRcKtd3BK0htbdGDvR6CTu1DeHIC/B1+j9D+NAKAORasUAKqBqAIAC3GtgpACvoksqsBOwGf54T+fm/wNEwBK8fe+ivopFQC+wM8iOf2wE/BZ/gCTtsbwwukPxQAAAABJRU5ErkJggg==", "imageMimeType": "image/png", "dateTime": "2013-11-10T15:15:17-05:00", "text": "I have read and accept the terms and conditions" }, "currency": "USD" } ], "soldTo": { "address": { "typeCode": "Home", "addressLine1": "123 Main St", "addressLine2": "Suite 100", "addressLine3": "Building 2", "city": "Orlando", "territory": "FL", "postalCode": "12345", "country": { "value": "US", "code": "US" }, "postalCodeExtension": "6789" }, "customerName": "Jane Doe", "customerNumber": "123456", "telephone1": { "areaCode": "123", "localNumber": "4567890" }, "telephone2": { "areaCode": "123", "localNumber": "4567890" } }, "terms": [ { "signature": { "base64Image": "iVBORw0KGgoAAAANSUhEUgAAAQ4AAABACAIAAABk9g5aAAAAA3NCSVQICAjb4U/gAAAFGklEQVR4nO2dW3akOgxFIevOf8r0Bze028ZCbwSc/ZWslGUjW08osm7btoDns67rsizYzTh+7l4AcGC3k/YH4A5MBQAWMJX3gOwrFJjK2/hUDraua9r1wlQAYPGfcTxt00gJgAJmNy85fiKqvIH9VKFfHIopqtB7s+eRXjuHc/ARytZaiCovAU4kGpjK2yjrlZ+O3lSQEZXludZSeeWBUQVWlAk8VzThCVhlP/FK2m4YcMRkKvBhRehCykOtRRQY869OaSqP24av8VBrOSjohWMTMN+bKk/nlqvIn3T9ZVE9o1V2r9EsTiXzHNzimPMPetplZphKWT/xDogU/8Y0bJ962zZR7VEw7zpAVAGAxQNM5XCKlV1OWZIDy/aLaNQRUirHlgeYCgAVgKmk4u4vOW746Y3jIlQ3FWzwRyiefS31TeU13GvzlQOLZVWZdlXaVIq7mSJAPzlYv1vPQbeX3WvgcCB8qdZXrL/LsVHFHvEr645P0DkQqbedvVom9ohdzk7AmA8F1fcxz6WgbgsuaURpKi45Ff2x4orjU+pySi3mWQTWKt2udOYxe5kL9lKEQlGldNuVTKMPrbNaUwLmnvK+z07ed0VxVKugOjI6YMugheN+0+mfcpb0dHTfAymrXlFHTmdUxqZflKm0G9Musb1IfrQtu8E00aeTL7mmw870knYNhEeV0U46jdAKumwAKPRb3L9y4PRFOjo/JZoius0tkq849J3j1h2be+6ruDi5mp7yoJRB6p6Kn/1qpEuEiqjoEn1U2b1UZ6AznRLFiQ61kHHgzAfr5CfA0aQ62I4SvOyEqFelQkRjT2sBBZ4JGH8d7tughoh7FmuJCCkK9aqFR3uKyp5ohpupzL7Idry54/iktBgdP28MKUc8nC3pdgNuSQh6ObniqZIVVYqimdG+IW08kDO6iXxqFWYmoPgqKUesUc4oyhisHU9eaG3dTvFEN09D1AI6CQ5RZcwFx+rFcSccqxR3ItL6mSVbZF5OQUsgPm9MXC9nd3z/y6WorhS3vgl/aRyzOj5KsWxGF+XUcka8IsBMjt3pnI7lCGSW0fzcJtRteXnnLrkQRBVOL989enhVEdLlnfb3LuWLpqBntwtpMeqN03fia8B4Y8QuXNd800eV7Re1hDSi03FfO1nO9ttyCb49ZXqKCCMnrt1ekNC0geUiqjB7iPRGEusObYC0o+IIOiVtQHOxE87tr9lYenaRhkVpKqFbopfFTwT4yee6rlRUCe21JzdkFUk/pw8WYScRLRB1lcKcQiqKWVIvZNeU6F5GcB5VFBVqdCZWsKcZl3Vc3vmRSmt/FTmpfSXMbEIR8LvIOc7OWaFo0mOUKLRu23YSVaQ7dDmlOvPmNPsU95L4HFPMLsEinDO1BRfnclnHK/K6UY7aTjLpo0oR5316E0BRKdnTPCInJpbkwvbvg3NedZ2o88uH0zOcWddd5415jfvy/okqinVfDhl9v6N2dC5N2rib5cQJG6yrxV00TKdVdve0j72xiSpOF41tFs4onT8+/BNzYdF9w9sRqZrzMYVmLpPz0Hz4Xv6PKqF9WHWbYpbFMmd5GZe1mah8UlfD9HBj/VkZmefuB0cmml79nzfxYp9dn3XTvoE8oSAr0mMoRcKtd3BK0htbdGDvR6CTu1DeHIC/B1+j9D+NAKAORasUAKqBqAIAC3GtgpACvoksqsBOwGf54T+fm/wNEwBK8fe+ivopFQC+wM8iOf2wE/BZ/gCTtsbwwukPxQAAAABJRU5ErkJggg==", "imageMimeType": "image/png", "dateTime": "2013-11-10T15:15:17-05:00", "text": "I have read and accept the terms and conditions" }, "description": "I acknowledge that I am entering into a lease agreement described in the terms and conditions in the link below.", "supportingDocuments": { "warranty": { "name": "Terms and Conditions", "url": "http://www.example.com/terms.pdf" } } } ], "additionalInfo1": "We Appreciate Your Business!", "additionalInfo2": "*** You Saved $10.00 ***", "additionalInfo3": "Customer loyalty member since 2020", "additionalInfo4": "Next purchase earns double points!", "additionalInfo5": "Return policy: 30 days with receipt", "rawPosReceipt": " \n Store 123 \n 123 Main St, Suite 100 \n Orlando, FL 12345-6789 \n (123) 456-7890 \n\n SALE \n\n\nOperator: John Associate: Sam \n\n20170112029 LIVING ROOM SET $100.00 \n 3 piece set\n Quantity: 2 Each\n Member Discount ($10.00)\n Item Total: $190.00\n\nSubtotal $200.00\nMember Discount ($10.00)\nNet Amount $190.00\nSales Tax 6% $11.40\nTotal $201.40\n------------------------------------------------\n You Saved $10.00 \n------------------------------------------------\nVisa ****7890 $202.00\nChange Due $0.60\n\nLoyalty #: 1234567890 Points: 100\nCustomer: Jane Doe\n100 points until next level\n\nStore: 123 Reg: 90 Tran: 123456\nDate: 11/10/2013 03:15:17 PM \n\n Item(s) Sold: 2 \n Item(s) Returned: 0 \n\nIn-home delivery\n(Assembly required)\nUsually ships in 2-3 weeks\n\n Last Day for Return is: 12/10/2013 \n\n We Appreciate Your Business! \n *** You Saved $10.00 *** \n Customer loyalty member since 2020 \n Next purchase earns double points! \n Return policy: 30 days with receipt \n\n Tax ID 12345 6789 \n\n\n\n\n\n ", "currency": "USD", "referenceId": "123e4567-e89b-12d3-a456-426655440000" } ```

Parameters

|Name|In|Type|Required|Description| |---|---|---|---|---| |body|body|[ReceiptData](#schemareceiptdata)|true|none| |merchantId|path|string|true|Unique flexReceipts merchant Id| > Example responses > 200 Response ```json { "customerEmailAddress": "jane.doe@email.com", "receiptId": "12345678-1234-1234-1234-123456789012", "offers": [ { "offerContentType": "image/png", "content": "http://www.example.com/offer.pdf", "imageWidth": 100 } ] } ``` > 409 Response ```json { "message": "Duplicate Request", "code": "409", "referenceId": "123e4567-e89b-12d3-a456-426655440000", "errors": { "requestId": [ { "code": "duplicate", "message": "Request already processed" } ] } } ``` > 422 Response ```json { "message": "Validation failed", "code": "422", "referenceId": "123e4567-e89b-12d3-a456-426655440000", "errors": { "emailAddress": [ { "code": "required", "message": "Email Address is required" } ] } } ``` > 500 Response ```json { "message": "Internal Server Error", "code": "500", "referenceId": "123e4567-e89b-12d3-a456-426655440000" } ```

Responses

|Status|Meaning|Description|Schema| |---|---|---|---| |200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Request was processed successfully. The receipt will be queued for delivery via email.|[ReceiptResponse](#schemareceiptresponse)| |409|[Conflict](https://tools.ietf.org/html/rfc7231#section-6.5.8)|The request was rejected because it duplicates a request which was already processed|[ErrorResponse](#schemaerrorresponse)| |422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The request failed validation; review the response for details.|[ErrorResponse](#schemaerrorresponse)| |500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|An unexpected error occurred. Retry the request after some delay. Contact support@flexreceipts.com if the problem persists.|[ErrorResponse](#schemaerrorresponse)| ## GET_merchants-merchantId-receipts-id > Code samples ```shell # You can also use wget curl -X GET https://api.flexreceipts.com/ws/rest/v1/merchants/{merchantId}/receipts/{receiptId} \ -H 'Accept: application/json' ``` ```java URL obj = new URL("https://api.flexreceipts.com/ws/rest/v1/merchants/{merchantId}/receipts/{receiptId}"); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); con.setRequestMethod("GET"); int responseCode = con.getResponseCode(); BufferedReader in = new BufferedReader( new InputStreamReader(con.getInputStream())); String inputLine; StringBuffer response = new StringBuffer(); while ((inputLine = in.readLine()) != null) { response.append(inputLine); } in.close(); System.out.println(response.toString()); ``` ```csharp using System; using System.Collections.Generic; using System.Net.Http; using System.Net.Http.Headers; using System.Text; using System.Threading.Tasks; using Newtonsoft.Json; /// <> /// Example of Http Client /// <> public class HttpExample { private HttpClient Client { get; set; } /// <> /// Setup http client /// <> public HttpExample() { Client = new HttpClient(); } /// Make a dummy request public async Task MakeGetRequest() { string url = "https://api.flexreceipts.com/ws/rest/v1/merchants/{merchantId}/receipts/{receiptId}"; var result = await GetAsync(url); } /// Performs a GET Request public async Task GetAsync(string url) { //Start the request HttpResponseMessage response = await Client.GetAsync(url); //Validate result response.EnsureSuccessStatusCode(); } /// Deserialize object from request response private async Task DeserializeObject(HttpResponseMessage response) { //Read body string responseBody = await response.Content.ReadAsStringAsync(); //Deserialize Body to object var result = JsonConvert.DeserializeObject(responseBody); } } ``` ```python import requests headers = { 'Accept': 'application/json' } r = requests.get('https://api.flexreceipts.com/ws/rest/v1/merchants/{merchantId}/receipts/{receiptId}', headers = headers) print(r.json()) ``` `GET /merchants/{merchantId}/receipts/{receiptId}` Provides the ability to retrieve an individual receipt by its unique id.

Parameters

|Name|In|Type|Required|Description| |---|---|---|---|---| |receiptId|path|string|true|The unique id for the receipt.| |merchantId|path|string|true|Unique flexReceipts merchant Id| > Example responses > 200 Response ```json { "apiRequest": { "apiVersion": 1, "data": null }, "associates": { "property1": { "name": "string", "idNumber": "string", "operatorType": "Cashier" }, "property2": { "name": "string", "idNumber": "string", "operatorType": "Cashier" } }, "barcode": { "type": "Code128", "number": 1234567890 }, "buyer": { "name": "Jane Doe", "customerNumber": 123456, "telephoneNumbers": { "property1": { "countryCode": "string", "areaCode": 123, "localNumber": 4567890 }, "property2": { "countryCode": "string", "areaCode": 123, "localNumber": 4567890 } }, "address": { "address1": "123 Main St", "address2": "Suite 100", "address3": "Building 2", "city": "Orlando", "state": "FL", "country": "USA", "countryCode": "US", "postalCode": 32801, "postalCodeExtension": 1234 } }, "changeDue": { "amount": 100, "currencyCode": "USD" }, "createDate": 1234567890123, "customerRefId": 123456, "deliveryPickupInfo": { "instructions": { "format": "TABS_NEWLINE", "text": "Example text" }, "deliveryPickupDate": 1384104000000, "telephoneNumbers": { "property1": { "countryCode": "string", "areaCode": 123, "localNumber": 4567890 }, "property2": { "countryCode": "string", "areaCode": 123, "localNumber": 4567890 } }, "address": { "address1": "123 Main St", "address2": "Suite 100", "address3": "Building 2", "city": "Orlando", "state": "FL", "country": "USA", "countryCode": "US", "postalCode": 32801, "postalCodeExtension": 1234 } }, "deposit": { "accountNumber": 1234567890, "amount": { "amount": 100, "currencyCode": "USD" }, "balanceDue": { "amount": 100, "currencyCode": "USD" } }, "discounts": [ { "description": { "format": "TABS_NEWLINE", "text": "Example text" }, "amount": { "amount": 100, "currencyCode": "USD" } } ], "fees": [ { "amount": { "amount": 100, "currencyCode": "USD" }, "description": { "format": "TABS_NEWLINE", "text": "Example text" } } ], "formattedTextAreas": { "property1": { "format": "TABS_NEWLINE", "text": "Example text" }, "property2": { "format": "TABS_NEWLINE", "text": "Example text" } }, "id": "12345678-1234-1234-1234-123456789012", "items": [ { "amount": { "amount": 100, "currencyCode": "USD" }, "brand": "MyBrand", "category": "Category", "customCategory1": "Custom Category 1", "customCategory2": "Custom Category 2", "description": { "format": "TABS_NEWLINE", "text": "Example text" }, "discounts": [ { "description": { "format": "TABS_NEWLINE", "text": "Example text" }, "amount": { "amount": 100, "currencyCode": "USD" } } ], "giftcard": { "accountNumber": 1234567890, "authNumber": 123456, "balance": { "amount": 100, "currencyCode": "USD" } }, "industry": "Retail", "itemTotal": { "amount": 100, "currencyCode": "USD" }, "manufacturer": "MyManufacturer", "miscInfo": { "format": "TABS_NEWLINE", "text": "Example text" }, "modelNumber": 123456, "name": "MyItem", "price": { "amount": 100, "currencyCode": "USD" }, "priceNotation": "N", "quantity": { "value": 1, "units": 1, "unitOfMeasureCode": "Each" }, "serialNumber": 1234567890, "sku": 123456, "supportingDocuments": { "property1": { "name": "Click for Warranty Information", "url": "http://www.example.com/warranty.pdf" }, "property2": { "name": "Click for Warranty Information", "url": "http://www.example.com/warranty.pdf" } }, "upc": 1234567890, "classCode": "classCode" } ], "language": "aa", "merchantRefId": "123456-1234-1234-1234-123456789012", "merchantTrackingPixelUrl": "http://www.example.com/pixel.gif", "mode": "Production", "orders": [ { "orderNumber": 123456, "orderAction": "Return", "barcode": { "type": "Code128", "number": 1234567890 }, "totalAmount": { "amount": 100, "currencyCode": "USD" }, "description": { "format": "TABS_NEWLINE", "text": "Example text" }, "buyer": { "name": "Jane Doe", "customerNumber": 123456, "telephoneNumbers": { "property1": { "countryCode": "string", "areaCode": 123, "localNumber": 4567890 }, "property2": { "countryCode": "string", "areaCode": 123, "localNumber": 4567890 } }, "address": { "address1": "123 Main St", "address2": "Suite 100", "address3": "Building 2", "city": "Orlando", "state": "FL", "country": "USA", "countryCode": "US", "postalCode": 32801, "postalCodeExtension": 1234 } }, "deliveryPickup": { "instructions": { "format": "TABS_NEWLINE", "text": "Example text" }, "deliveryPickupDate": 1384104000000, "telephoneNumbers": { "property1": { "countryCode": "string", "areaCode": 123, "localNumber": 4567890 }, "property2": { "countryCode": "string", "areaCode": 123, "localNumber": 4567890 } }, "address": { "address1": "123 Main St", "address2": "Suite 100", "address3": "Building 2", "city": "Orlando", "state": "FL", "country": "USA", "countryCode": "US", "postalCode": 32801, "postalCodeExtension": 1234 } }, "miscText": { "format": "TABS_NEWLINE", "text": "Example text" }, "taxes": [ { "description": { "format": "TABS_NEWLINE", "text": "Example text" }, "percent": 0.06, "taxableAmount": { "amount": 100, "currencyCode": "USD" }, "amount": { "amount": 100, "currencyCode": "USD" }, "taxTypeCode": "SALES" } ], "fees": [ { "amount": { "amount": 100, "currencyCode": "USD" }, "description": { "format": "TABS_NEWLINE", "text": "Example text" } } ], "deposits": [ { "accountNumber": 1234567890, "amount": { "amount": 100, "currencyCode": "USD" }, "balanceDue": { "amount": 100, "currencyCode": "USD" } } ], "tenderHistory": [ { "tenderType": "Cash", "tenderDate": 1384104000000, "amount": { "amount": 100, "currencyCode": "USD" }, "creditDebit": { "Name": "Jane Doe", "expirationDate": 1212, "typeCode": "Visa", "first6Digits": "XXXXXX", "last4Digits": 1234, "emvData": { "aid": "A0000000031010", "appLabel": "VI", "appPreferredName": "appPreferredName", "additionalAttributes": { "property1": "string", "property2": "string" } } } } ], "paymentSchedule": [ { "description": { "format": "TABS_NEWLINE", "text": "Example text" }, "amountDue": { "amount": 100, "currencyCode": "USD" }, "dueDate": 1384104000000 } ], "items": [ { "amount": { "amount": 100, "currencyCode": "USD" }, "brand": "MyBrand", "category": "Category", "customCategory1": "Custom Category 1", "customCategory2": "Custom Category 2", "description": { "format": "TABS_NEWLINE", "text": "Example text" }, "discounts": [ { "description": { "format": "TABS_NEWLINE", "text": "Example text" }, "amount": { "amount": 100, "currencyCode": "USD" } } ], "giftcard": { "accountNumber": 1234567890, "authNumber": 123456, "balance": { "amount": 100, "currencyCode": "USD" } }, "industry": "Retail", "itemTotal": { "amount": 100, "currencyCode": "USD" }, "manufacturer": "MyManufacturer", "miscInfo": { "format": "TABS_NEWLINE", "text": "Example text" }, "modelNumber": 123456, "name": "MyItem", "price": { "amount": 100, "currencyCode": "USD" }, "priceNotation": "N", "quantity": { "value": 1, "units": 1, "unitOfMeasureCode": "Each" }, "serialNumber": 1234567890, "sku": 123456, "supportingDocuments": { "property1": { "name": "Click for Warranty Information", "url": "http://www.example.com/warranty.pdf" }, "property2": { "name": "Click for Warranty Information", "url": "http://www.example.com/warranty.pdf" } }, "upc": 1234567890, "classCode": "classCode" } ] } ], "posRefId": 123456, "rawReceipt": "string", "receiptDate": 1234567890123, "receiptType": "DIGITAL", "referenceId": "12345678-1234-1234-1234-123456789012", "registerNumber": 20, "relatedTransaction": { "store": 123456, "register": 20, "transactionNumber": 123456, "reasonCode": "R555", "reason": "Detailed Reason Here" }, "returns": [ { "originalStoreNumber": 123456, "originalRegister": 20, "originalTransactionNumber": 123456, "miscText": { "format": "TABS_NEWLINE", "text": "Example text" }, "items": [ { "amount": { "amount": 100, "currencyCode": "USD" }, "brand": "MyBrand", "category": "Category", "customCategory1": "Custom Category 1", "customCategory2": "Custom Category 2", "description": { "format": "TABS_NEWLINE", "text": "Example text" }, "discounts": [ { "description": { "format": "TABS_NEWLINE", "text": "Example text" }, "amount": { "amount": 100, "currencyCode": "USD" } } ], "giftcard": { "accountNumber": 1234567890, "authNumber": 123456, "balance": { "amount": 100, "currencyCode": "USD" } }, "industry": "Retail", "itemTotal": { "amount": 100, "currencyCode": "USD" }, "manufacturer": "MyManufacturer", "miscInfo": { "format": "TABS_NEWLINE", "text": "Example text" }, "modelNumber": 123456, "name": "MyItem", "price": { "amount": 100, "currencyCode": "USD" }, "priceNotation": "N", "quantity": { "value": 1, "units": 1, "unitOfMeasureCode": "Each" }, "serialNumber": 1234567890, "sku": 123456, "supportingDocuments": { "property1": { "name": "Click for Warranty Information", "url": "http://www.example.com/warranty.pdf" }, "property2": { "name": "Click for Warranty Information", "url": "http://www.example.com/warranty.pdf" } }, "upc": 1234567890, "classCode": "classCode" } ] } ], "revision": { "date": 1384104000000, "number": 999 }, "serviceCharge": { "amount": 100, "currencyCode": "USD" }, "storeRefId": 123456, "supportingDocuments": { "property1": { "name": "Click for Warranty Information", "url": "http://www.example.com/warranty.pdf" }, "property2": { "name": "Click for Warranty Information", "url": "http://www.example.com/warranty.pdf" } }, "taxes": [ { "description": { "format": "TABS_NEWLINE", "text": "Example text" }, "percent": 0.06, "taxableAmount": { "amount": 100, "currencyCode": "USD" }, "amount": { "amount": 100, "currencyCode": "USD" }, "taxTypeCode": "SALES" } ], "tender": [ { "tenderType": "CreditCard", "amount": { "amount": 100, "currencyCode": "USD" }, "miscInfo": { "format": "TABS_NEWLINE", "text": "Example text" }, "authCode": 123456, "signature": { "imageUrl": "http://www.example.com/signature.png", "base64Image": "...base64binary...", "imageMimeType": "image/png", "text": { "format": "TABS_NEWLINE", "text": "Example text" }, "signedDate": 1384104000000 }, "creditDebit": { "Name": "Jane Doe", "expirationDate": 1212, "typeCode": "Visa", "first6Digits": "XXXXXX", "last4Digits": 1234, "emvData": { "aid": "A0000000031010", "appLabel": "VI", "appPreferredName": "appPreferredName", "additionalAttributes": { "property1": "string", "property2": "string" } } }, "giftcard": { "accountNumber": 1234567890, "authNumber": 123456, "balance": { "amount": 100, "currencyCode": "USD" } }, "supportingDocuments": { "property1": { "name": "Click for Warranty Information", "url": "http://www.example.com/warranty.pdf" }, "property2": { "name": "Click for Warranty Information", "url": "http://www.example.com/warranty.pdf" } }, "tenderDate": 1384104000000, "currency": "USD" } ], "tenderHistory": [ { "tenderType": "Cash", "tenderDate": 1384104000000, "amount": { "amount": 100, "currencyCode": "USD" }, "creditDebit": { "Name": "Jane Doe", "expirationDate": 1212, "typeCode": "Visa", "first6Digits": "XXXXXX", "last4Digits": 1234, "emvData": { "aid": "A0000000031010", "appLabel": "VI", "appPreferredName": "appPreferredName", "additionalAttributes": { "property1": "string", "property2": "string" } } } } ], "terms": [ { "description": { "format": "TABS_NEWLINE", "text": "Example text" }, "signature": { "imageUrl": "http://www.example.com/signature.png", "base64Image": "...base64binary...", "imageMimeType": "image/png", "text": { "format": "TABS_NEWLINE", "text": "Example text" }, "signedDate": 1384104000000 }, "supportingDocuments": { "property1": { "name": "Click for Warranty Information", "url": "http://www.example.com/warranty.pdf" }, "property2": { "name": "Click for Warranty Information", "url": "http://www.example.com/warranty.pdf" } } } ], "utcOffset": -5, "tip": { "amount": 100, "currencyCode": "USD" }, "totalSalesAmount": { "amount": 100, "currencyCode": "USD" }, "transactionCurrency": "USD", "transactionBalanceDue": { "amount": 100, "currencyCode": "USD" }, "transactionGrandAmount": { "amount": 100, "currencyCode": "USD" }, "transactionGrossAmount": { "amount": 100, "currencyCode": "USD" }, "loyaltyInformation": { "loyaltyNumber": 123456, "customerName": "Jane Doe", "expDate": 1384104000000, "misc": { "format": "TABS_NEWLINE", "text": "Example text" }, "balance": 100 }, "transactionNetAmount": { "amount": 100, "currencyCode": "USD" }, "transactionNumber": 123456, "transactionSignature": { "imageUrl": "http://www.example.com/signature.png", "base64Image": "...base64binary...", "imageMimeType": "image/png", "text": { "format": "TABS_NEWLINE", "text": "Example text" }, "signedDate": 1384104000000 }, "transactionTenderApplied": { "amount": 100, "currencyCode": "USD" }, "transactionType": "SaleTransaction", "paymentLink": "https://pay.example.com/link/abc123" } ``` > 404 Response ```json { "message": "Receipt not found", "code": "404", "referenceId": "123e4567-e89b-12d3-a456-426655440000" } ``` > 500 Response ```json { "message": "Internal Server Error", "code": "500", "referenceId": "123e4567-e89b-12d3-a456-426655440000" } ```

Responses

|Status|Meaning|Description|Schema| |---|---|---|---| |200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Receipt as stored in our data. JSON representation of the original API request is available in the apiRequest property.|[ReceiptDataResponse](#schemareceiptdataresponse)| |404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Receipt with requested id does not exist.|[ErrorResponse](#schemaerrorresponse)| |500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Internal Server Error. Retry the request later.|[ErrorResponse](#schemaerrorresponse)| # Schemas

ErrorResponse

```json { "message": "string", "code": "string", "referenceId": "string", "errors": { "property1": [ { "code": "string", "message": "string" } ], "property2": [ { "code": "string", "message": "string" } ] } } ``` Error Response ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |message|string|false|none|none| |code|string|false|none|none| |referenceId|string|false|none|none| |errors|object|false|none|none| |» **additionalProperties**|[[ErrorEntry](#schemaerrorentry)]|false|none|none|

ErrorEntry

```json { "code": "string", "message": "string" } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |code|string|false|none|none| |message|string|false|none|none|

ReceiptData

```json { "requestId": "123e4567-e89b-12d3-a456-426655440000", "customer": { "emailAddress": "jane.doe@email.com", "telephone": { "areaCode": 123, "localNumber": 4567890 } }, "workstation": { "id": 90, "operator": "John", "associate": "Sam", "store": { "id": 123, "name": "Store 123", "address": { "typeCode": "Home", "addressLine1": "123 Main St", "addressLine2": "Suite 100", "addressLine3": "Building 2", "city": "Orlando", "territory": "FL", "postalCode": 12345, "country": { "value": "US", "code": "US" }, "postalCodeExtension": 6789 }, "telephone": { "areaCode": 123, "localNumber": 4567890 } } }, "mode": "Production", "header": "Customer Receipt Copy\nEmployee Discount", "revision": { "number": 999, "dateTime": "2016-05-13T11:40:16-07:00" }, "receiptType": "DigitalOnly", "barcodeType": "Code128", "barcodeNumber": 1234567890, "receiptDateTime": "2013-11-10T15:15:17-05:00", "loyalty": { "number": 1234567890, "customerName": "Jane Doe", "expirationDateTime": "2013-11-10T15:15:17-05:00", "balance": 100, "misc": "100 points until next level" }, "transactionType": "SaleTransaction", "relatedTransactionReference": { "store": 111, "register": 20, "transactionNumber": 98765, "reasonCode": "R555", "reason": "Detailed Reason Here" }, "transactionNumber": 123456, "items": [ { "name": "LIVING ROOM SET", "description": "3 piece set", "classCode": 12345, "sku": 20170112029, "upc": 20170112029, "serialNumber": 1234567890, "modelNumber": 1241, "brand": "MyBrand", "industry": "Furniture", "manufacturer": "MyManufacturer", "price": 100, "total": 190, "priceNotation": "N", "quantity": { "value": 2, "units": 2, "unitOfMeasureCode": "Each" }, "discounts": [ { "amount": -10, "name": "Member Discount" } ], "miscInfo": "In-home delivery\n(Assembly required)\nUsually ships in 2-3 weeks", "category": "Furniture", "customCategory1": "CustomCategory1", "customCategory2": "CustomCategory2", "giftCard": { "accountNumber": 1234567890, "authNumber": 123456, "balance": 100 }, "supportingDocuments": { "warranty": { "name": "Click for Warranty Information", "url": "http://www.example.com/warranty.pdf" } }, "taxes": [ { "description": "Sales Tax", "percent": 0.06, "taxableAmount": 100, "amount": 6, "taxTypeCode": "Sales" } ] } ], "returns": [ { "originalStoreNumber": 123, "originalRegister": 20, "originalTransactionNumber": 98765, "items": [ { "name": "LIVING ROOM SET", "description": "3 piece set", "classCode": 12345, "sku": 20170112029, "upc": 20170112029, "serialNumber": 1234567890, "modelNumber": 1241, "brand": "MyBrand", "industry": "Furniture", "manufacturer": "MyManufacturer", "price": 100, "total": 190, "priceNotation": "N", "quantity": { "value": 2, "units": 2, "unitOfMeasureCode": "Each" }, "discounts": [ { "amount": -10, "name": "Member Discount" } ], "miscInfo": "In-home delivery\n(Assembly required)\nUsually ships in 2-3 weeks", "category": "Furniture", "customCategory1": "CustomCategory1", "customCategory2": "CustomCategory2", "giftCard": { "accountNumber": 1234567890, "authNumber": 123456, "balance": 100 }, "supportingDocuments": { "warranty": { "name": "Click for Warranty Information", "url": "http://www.example.com/warranty.pdf" } }, "taxes": [ { "description": "Sales Tax", "percent": 0.06, "taxableAmount": 100, "amount": 6, "taxTypeCode": "Sales" } ] } ], "miscText": "Return for store credit" } ], "orders": [ { "number": 123456, "action": "Create", "barcodeNumber": 1234567890, "barcodeType": "Code128", "grossAmount": 200, "netAmount": 190, "totalAmount": 100, "description": "Description of order", "soldTo": { "address": { "typeCode": "Home", "addressLine1": "123 Main St", "addressLine2": "Suite 100", "addressLine3": "Building 2", "city": "Orlando", "territory": "FL", "postalCode": 12345, "country": { "value": "US", "code": "US" }, "postalCodeExtension": 6789 }, "customerName": "Jane Doe", "customerNumber": 123456, "telephone1": { "areaCode": 123, "localNumber": 4567890 }, "telephone2": { "areaCode": 123, "localNumber": 4567890 } }, "deliveryPickup": { "address": { "typeCode": "Home", "addressLine1": "123 Main St", "addressLine2": "Suite 100", "addressLine3": "Building 2", "city": "Orlando", "territory": "FL", "postalCode": 12345, "country": { "value": "US", "code": "US" }, "postalCodeExtension": 6789 }, "instructions": "Leave at front door", "dateTime": "2013-11-10", "phoneNumber1": { "areaCode": 123, "localNumber": 4567890 }, "phoneNumber2": { "areaCode": 123, "localNumber": 4567890 } }, "taxes": [ { "description": "Sales Tax", "percent": 0.06, "taxableAmount": 100, "amount": 6, "taxTypeCode": "Sales" } ], "fees": [ { "amount": 10, "description": "Installation Fee" } ], "deposits": [ { "accountNumber": 1234567890, "amount": 36, "balanceDue": 40 } ], "tenderHistory": [ { "tenderTypeCode": "GiftCard", "dateTime": "2013-11-10T15:15:17-05:00", "amount": 100, "creditDebit": { "first6Digits": 123456, "last4Digits": 7890, "typeCode": "Visa", "name": { "firstName": "Jane", "lastName": "Doe" }, "expirationDate": "0101" } } ], "paymentSchedules": [ { "description": "First Payment", "amountDue": 50, "dueDate": "2013-11-10" } ], "items": [ { "name": "LIVING ROOM SET", "description": "3 piece set", "classCode": 12345, "sku": 20170112029, "upc": 20170112029, "serialNumber": 1234567890, "modelNumber": 1241, "brand": "MyBrand", "industry": "Furniture", "manufacturer": "MyManufacturer", "price": 100, "total": 190, "priceNotation": "N", "quantity": { "value": 2, "units": 2, "unitOfMeasureCode": "Each" }, "discounts": [ { "amount": -10, "name": "Member Discount" } ], "miscInfo": "In-home delivery\n(Assembly required)\nUsually ships in 2-3 weeks", "category": "Furniture", "customCategory1": "CustomCategory1", "customCategory2": "CustomCategory2", "giftCard": { "accountNumber": 1234567890, "authNumber": 123456, "balance": 100 }, "supportingDocuments": { "warranty": { "name": "Click for Warranty Information", "url": "http://www.example.com/warranty.pdf" } }, "taxes": [ { "description": "Sales Tax", "percent": 0.06, "taxableAmount": 100, "amount": 6, "taxTypeCode": "Sales" } ] } ], "miscText": "string" } ], "grossAmount": 100, "discounts": [ { "amount": -10, "name": "Member Discount" } ], "netAmount": 90, "taxes": [ { "description": "Sales Tax", "percent": 0.06, "taxableAmount": 100, "amount": 6, "taxTypeCode": "Sales" } ], "grandAmount": 96, "tenderApplied": 100, "balanceDue": 0, "changeDue": 4, "tip": 0, "serviceCharge": 0, "tenders": [ { "tenderTypeCode": "CreditCard", "dateTime": "2013-11-10T15:15:17-05:00", "amount": 100, "creditDebit": { "first6Digits": 123456, "last4Digits": 7890, "typeCode": "Visa", "name": { "firstName": "Jane", "lastName": "Doe" }, "expirationDate": "0101" }, "giftCard": { "accountNumber": 1234567890, "authNumber": 123456, "balance": 100 }, "authorizationCode": 123456, "miscInfo": "string", "signature": { "base64Image": "iVBORw0KGgoAAAANSUhEUgAAAQ4AAABACAIAAABk9g5aAAAAA3NCSVQICAjb4U/gAAAFGklEQVR4nO2dW3akOgxFIevOf8r0Bze028ZCbwSc/ZWslGUjW08osm7btoDns67rsizYzTh+7l4AcGC3k/YH4A5MBQAWMJX3gOwrFJjK2/hUDraua9r1wlQAYPGfcTxt00gJgAJmNy85fiKqvIH9VKFfHIopqtB7s+eRXjuHc/ARytZaiCovAU4kGpjK2yjrlZ+O3lSQEZXludZSeeWBUQVWlAk8VzThCVhlP/FK2m4YcMRkKvBhRehCykOtRRQY869OaSqP24av8VBrOSjohWMTMN+bKk/nlqvIn3T9ZVE9o1V2r9EsTiXzHNzimPMPetplZphKWT/xDogU/8Y0bJ962zZR7VEw7zpAVAGAxQNM5XCKlV1OWZIDy/aLaNQRUirHlgeYCgAVgKmk4u4vOW746Y3jIlQ3FWzwRyiefS31TeU13GvzlQOLZVWZdlXaVIq7mSJAPzlYv1vPQbeX3WvgcCB8qdZXrL/LsVHFHvEr645P0DkQqbedvVom9ohdzk7AmA8F1fcxz6WgbgsuaURpKi45Ff2x4orjU+pySi3mWQTWKt2udOYxe5kL9lKEQlGldNuVTKMPrbNaUwLmnvK+z07ed0VxVKugOjI6YMugheN+0+mfcpb0dHTfAymrXlFHTmdUxqZflKm0G9Musb1IfrQtu8E00aeTL7mmw870knYNhEeV0U46jdAKumwAKPRb3L9y4PRFOjo/JZoius0tkq849J3j1h2be+6ruDi5mp7yoJRB6p6Kn/1qpEuEiqjoEn1U2b1UZ6AznRLFiQ61kHHgzAfr5CfA0aQ62I4SvOyEqFelQkRjT2sBBZ4JGH8d7tughoh7FmuJCCkK9aqFR3uKyp5ohpupzL7Idry54/iktBgdP28MKUc8nC3pdgNuSQh6ObniqZIVVYqimdG+IW08kDO6iXxqFWYmoPgqKUesUc4oyhisHU9eaG3dTvFEN09D1AI6CQ5RZcwFx+rFcSccqxR3ItL6mSVbZF5OQUsgPm9MXC9nd3z/y6WorhS3vgl/aRyzOj5KsWxGF+XUcka8IsBMjt3pnI7lCGSW0fzcJtRteXnnLrkQRBVOL989enhVEdLlnfb3LuWLpqBntwtpMeqN03fia8B4Y8QuXNd800eV7Re1hDSi03FfO1nO9ttyCb49ZXqKCCMnrt1ekNC0geUiqjB7iPRGEusObYC0o+IIOiVtQHOxE87tr9lYenaRhkVpKqFbopfFTwT4yee6rlRUCe21JzdkFUk/pw8WYScRLRB1lcKcQiqKWVIvZNeU6F5GcB5VFBVqdCZWsKcZl3Vc3vmRSmt/FTmpfSXMbEIR8LvIOc7OWaFo0mOUKLRu23YSVaQ7dDmlOvPmNPsU95L4HFPMLsEinDO1BRfnclnHK/K6UY7aTjLpo0oR5316E0BRKdnTPCInJpbkwvbvg3NedZ2o88uH0zOcWddd5415jfvy/okqinVfDhl9v6N2dC5N2rib5cQJG6yrxV00TKdVdve0j72xiSpOF41tFs4onT8+/BNzYdF9w9sRqZrzMYVmLpPz0Hz4Xv6PKqF9WHWbYpbFMmd5GZe1mah8UlfD9HBj/VkZmefuB0cmml79nzfxYp9dn3XTvoE8oSAr0mMoRcKtd3BK0htbdGDvR6CTu1DeHIC/B1+j9D+NAKAORasUAKqBqAIAC3GtgpACvoksqsBOwGf54T+fm/wNEwBK8fe+ivopFQC+wM8iOf2wE/BZ/gCTtsbwwukPxQAAAABJRU5ErkJggg==", "imageMimeType": "image/png", "dateTime": "2013-11-10T15:15:17-05:00", "text": "I have read and accept the terms and conditions" }, "emv": { "aid": "string", "appLabel": "string", "appPreferredName": "string", "additionalAttributes": { "property1": "string", "property2": "string" } }, "currency": "USD", "supportingDocuments": { "warranty": { "name": "Click for Warranty Information", "url": "http://www.example.com/warranty.pdf" } } } ], "tenderHistory": [ { "tenderTypeCode": "GiftCard", "dateTime": "2013-11-10T15:15:17-05:00", "amount": 100, "creditDebit": { "first6Digits": 123456, "last4Digits": 7890, "typeCode": "Visa", "name": { "firstName": "Jane", "lastName": "Doe" }, "expirationDate": "0101" } } ], "paymentLink": "https://pay.example.com/link/abc123", "deposit": { "accountNumber": 1234567890, "amount": 36, "balanceDue": 40 }, "soldTo": { "address": { "typeCode": "Home", "addressLine1": "123 Main St", "addressLine2": "Suite 100", "addressLine3": "Building 2", "city": "Orlando", "territory": "FL", "postalCode": 12345, "country": { "value": "US", "code": "US" }, "postalCodeExtension": 6789 }, "customerName": "Jane Doe", "customerNumber": 123456, "telephone1": { "areaCode": 123, "localNumber": 4567890 }, "telephone2": { "areaCode": 123, "localNumber": 4567890 } }, "fees": [ { "amount": 10, "description": "Installation Fee" } ], "roundingAdjustment": { "value": 0.02 }, "deliveryPickup": { "address": { "typeCode": "Home", "addressLine1": "123 Main St", "addressLine2": "Suite 100", "addressLine3": "Building 2", "city": "Orlando", "territory": "FL", "postalCode": 12345, "country": { "value": "US", "code": "US" }, "postalCodeExtension": 6789 }, "instructions": "Leave at front door", "dateTime": "2013-11-10", "phoneNumber1": { "areaCode": 123, "localNumber": 4567890 }, "phoneNumber2": { "areaCode": 123, "localNumber": 4567890 } }, "signature": { "base64Image": "iVBORw0KGgoAAAANSUhEUgAAAQ4AAABACAIAAABk9g5aAAAAA3NCSVQICAjb4U/gAAAFGklEQVR4nO2dW3akOgxFIevOf8r0Bze028ZCbwSc/ZWslGUjW08osm7btoDns67rsizYzTh+7l4AcGC3k/YH4A5MBQAWMJX3gOwrFJjK2/hUDraua9r1wlQAYPGfcTxt00gJgAJmNy85fiKqvIH9VKFfHIopqtB7s+eRXjuHc/ARytZaiCovAU4kGpjK2yjrlZ+O3lSQEZXludZSeeWBUQVWlAk8VzThCVhlP/FK2m4YcMRkKvBhRehCykOtRRQY869OaSqP24av8VBrOSjohWMTMN+bKk/nlqvIn3T9ZVE9o1V2r9EsTiXzHNzimPMPetplZphKWT/xDogU/8Y0bJ962zZR7VEw7zpAVAGAxQNM5XCKlV1OWZIDy/aLaNQRUirHlgeYCgAVgKmk4u4vOW746Y3jIlQ3FWzwRyiefS31TeU13GvzlQOLZVWZdlXaVIq7mSJAPzlYv1vPQbeX3WvgcCB8qdZXrL/LsVHFHvEr645P0DkQqbedvVom9ohdzk7AmA8F1fcxz6WgbgsuaURpKi45Ff2x4orjU+pySi3mWQTWKt2udOYxe5kL9lKEQlGldNuVTKMPrbNaUwLmnvK+z07ed0VxVKugOjI6YMugheN+0+mfcpb0dHTfAymrXlFHTmdUxqZflKm0G9Musb1IfrQtu8E00aeTL7mmw870knYNhEeV0U46jdAKumwAKPRb3L9y4PRFOjo/JZoius0tkq849J3j1h2be+6ruDi5mp7yoJRB6p6Kn/1qpEuEiqjoEn1U2b1UZ6AznRLFiQ61kHHgzAfr5CfA0aQ62I4SvOyEqFelQkRjT2sBBZ4JGH8d7tughoh7FmuJCCkK9aqFR3uKyp5ohpupzL7Idry54/iktBgdP28MKUc8nC3pdgNuSQh6ObniqZIVVYqimdG+IW08kDO6iXxqFWYmoPgqKUesUc4oyhisHU9eaG3dTvFEN09D1AI6CQ5RZcwFx+rFcSccqxR3ItL6mSVbZF5OQUsgPm9MXC9nd3z/y6WorhS3vgl/aRyzOj5KsWxGF+XUcka8IsBMjt3pnI7lCGSW0fzcJtRteXnnLrkQRBVOL989enhVEdLlnfb3LuWLpqBntwtpMeqN03fia8B4Y8QuXNd800eV7Re1hDSi03FfO1nO9ttyCb49ZXqKCCMnrt1ekNC0geUiqjB7iPRGEusObYC0o+IIOiVtQHOxE87tr9lYenaRhkVpKqFbopfFTwT4yee6rlRUCe21JzdkFUk/pw8WYScRLRB1lcKcQiqKWVIvZNeU6F5GcB5VFBVqdCZWsKcZl3Vc3vmRSmt/FTmpfSXMbEIR8LvIOc7OWaFo0mOUKLRu23YSVaQ7dDmlOvPmNPsU95L4HFPMLsEinDO1BRfnclnHK/K6UY7aTjLpo0oR5316E0BRKdnTPCInJpbkwvbvg3NedZ2o88uH0zOcWddd5415jfvy/okqinVfDhl9v6N2dC5N2rib5cQJG6yrxV00TKdVdve0j72xiSpOF41tFs4onT8+/BNzYdF9w9sRqZrzMYVmLpPz0Hz4Xv6PKqF9WHWbYpbFMmd5GZe1mah8UlfD9HBj/VkZmefuB0cmml79nzfxYp9dn3XTvoE8oSAr0mMoRcKtd3BK0htbdGDvR6CTu1DeHIC/B1+j9D+NAKAORasUAKqBqAIAC3GtgpACvoksqsBOwGf54T+fm/wNEwBK8fe+ivopFQC+wM8iOf2wE/BZ/gCTtsbwwukPxQAAAABJRU5ErkJggg==", "imageMimeType": "image/png", "dateTime": "2013-11-10T15:15:17-05:00", "text": "I have read and accept the terms and conditions" }, "terms": [ { "signature": { "base64Image": "iVBORw0KGgoAAAANSUhEUgAAAQ4AAABACAIAAABk9g5aAAAAA3NCSVQICAjb4U/gAAAFGklEQVR4nO2dW3akOgxFIevOf8r0Bze028ZCbwSc/ZWslGUjW08osm7btoDns67rsizYzTh+7l4AcGC3k/YH4A5MBQAWMJX3gOwrFJjK2/hUDraua9r1wlQAYPGfcTxt00gJgAJmNy85fiKqvIH9VKFfHIopqtB7s+eRXjuHc/ARytZaiCovAU4kGpjK2yjrlZ+O3lSQEZXludZSeeWBUQVWlAk8VzThCVhlP/FK2m4YcMRkKvBhRehCykOtRRQY869OaSqP24av8VBrOSjohWMTMN+bKk/nlqvIn3T9ZVE9o1V2r9EsTiXzHNzimPMPetplZphKWT/xDogU/8Y0bJ962zZR7VEw7zpAVAGAxQNM5XCKlV1OWZIDy/aLaNQRUirHlgeYCgAVgKmk4u4vOW746Y3jIlQ3FWzwRyiefS31TeU13GvzlQOLZVWZdlXaVIq7mSJAPzlYv1vPQbeX3WvgcCB8qdZXrL/LsVHFHvEr645P0DkQqbedvVom9ohdzk7AmA8F1fcxz6WgbgsuaURpKi45Ff2x4orjU+pySi3mWQTWKt2udOYxe5kL9lKEQlGldNuVTKMPrbNaUwLmnvK+z07ed0VxVKugOjI6YMugheN+0+mfcpb0dHTfAymrXlFHTmdUxqZflKm0G9Musb1IfrQtu8E00aeTL7mmw870knYNhEeV0U46jdAKumwAKPRb3L9y4PRFOjo/JZoius0tkq849J3j1h2be+6ruDi5mp7yoJRB6p6Kn/1qpEuEiqjoEn1U2b1UZ6AznRLFiQ61kHHgzAfr5CfA0aQ62I4SvOyEqFelQkRjT2sBBZ4JGH8d7tughoh7FmuJCCkK9aqFR3uKyp5ohpupzL7Idry54/iktBgdP28MKUc8nC3pdgNuSQh6ObniqZIVVYqimdG+IW08kDO6iXxqFWYmoPgqKUesUc4oyhisHU9eaG3dTvFEN09D1AI6CQ5RZcwFx+rFcSccqxR3ItL6mSVbZF5OQUsgPm9MXC9nd3z/y6WorhS3vgl/aRyzOj5KsWxGF+XUcka8IsBMjt3pnI7lCGSW0fzcJtRteXnnLrkQRBVOL989enhVEdLlnfb3LuWLpqBntwtpMeqN03fia8B4Y8QuXNd800eV7Re1hDSi03FfO1nO9ttyCb49ZXqKCCMnrt1ekNC0geUiqjB7iPRGEusObYC0o+IIOiVtQHOxE87tr9lYenaRhkVpKqFbopfFTwT4yee6rlRUCe21JzdkFUk/pw8WYScRLRB1lcKcQiqKWVIvZNeU6F5GcB5VFBVqdCZWsKcZl3Vc3vmRSmt/FTmpfSXMbEIR8LvIOc7OWaFo0mOUKLRu23YSVaQ7dDmlOvPmNPsU95L4HFPMLsEinDO1BRfnclnHK/K6UY7aTjLpo0oR5316E0BRKdnTPCInJpbkwvbvg3NedZ2o88uH0zOcWddd5415jfvy/okqinVfDhl9v6N2dC5N2rib5cQJG6yrxV00TKdVdve0j72xiSpOF41tFs4onT8+/BNzYdF9w9sRqZrzMYVmLpPz0Hz4Xv6PKqF9WHWbYpbFMmd5GZe1mah8UlfD9HBj/VkZmefuB0cmml79nzfxYp9dn3XTvoE8oSAr0mMoRcKtd3BK0htbdGDvR6CTu1DeHIC/B1+j9D+NAKAORasUAKqBqAIAC3GtgpACvoksqsBOwGf54T+fm/wNEwBK8fe+ivopFQC+wM8iOf2wE/BZ/gCTtsbwwukPxQAAAABJRU5ErkJggg==", "imageMimeType": "image/png", "dateTime": "2013-11-10T15:15:17-05:00", "text": "I have read and accept the terms and conditions" }, "description": "I acknowledge that I am entering into a lease agreement described in the terms and conditions in the link below.", "supportingDocuments": { "warranty": { "name": "Terms and Conditions", "url": "http://www.example.com/terms.pdf" } } } ], "trackingPixel": "http://www.example.com/tracking", "additionalInfo1": "We Appreciate Your Business!", "additionalInfo2": "*** You Saved $10.00 ***", "additionalInfo3": "string", "additionalInfo4": "string", "additionalInfo5": "string", "rawPosReceipt": " \n Generic Store \n 1234 Elm Street \n Springfield, USA 12345 \n (555) 123-4567 \n\n SALE \n\n\n\nSalesperson: John Doe \n\n00657603069684 Generic Item $132.00T\n Style: Generic Style, Size 6, Medium\n Size: 08500M Color: BROWN\n 10% off without coupon ($13.20)\n New Price: $118.80\n\nSubtotal $118.80\nTax 13 % $15.44\nTotal $134.24\n------------------------------------------------\n You Saved $13.20 \n------------------------------------------------\nCash $134.25\n\nStore: 12345 Reg: 41 Tran: 989\nDate: 04/22/2024 04:59:13 AM Assoc: 100400\n\n Item(s) Sold: 1 \n Item(s) Returned: 0 \n\n Last Day for Return is: 05/22/2024 \n\n Thank you for shopping at \n Generic Store \n\n ALL CLEARANCE ITEMS ARE FINAL SALE! \n\n Thank you for your purchase! \n To shop more visit genericstore.com \n\n Tax ID 12345 6789 \n\n\n\n\n\n ", "currency": "USD", "referenceId": "123e4567-e89b-12d3-a456-426655440000", "supportingDocuments": { "warranty": { "name": "Click for Warranty Information", "url": "http://www.example.com/warranty.pdf" } } } ``` Receipt Data ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |requestId|string|false|none|The requestId is an optional field that can be used to prevent duplicate requests.
If multiple requests are sent with the same requestId, only the first request is accepted.
Subsequent requests are considered to be duplicates and the API will return a 409 response code.
Use this field if you cannot guarantee the same receipt won't be sent more than once.| |customer|[Customer](#schemacustomer)|false|none|none| |workstation|[WorkstationData](#schemaworkstationdata)|true|none|none| |mode|string|false|none|none| |header|string|false|none|The header field allows multi-line text at the top of the receipt in a location determined by the receipt template.
This is typically used for dynamic text that needs to appear for special cases, such as employee purchase information or “Customer Receipt Copy”.
This field supports “\n” for a line break and “\t” for a tab.| |revision|[RevisionData](#schemarevisiondata)|false|none|This is for providing a revision number and date for the receipt| |receiptType|string|true|none|none| |barcodeType|[BarcodeType](#schemabarcodetype)|false|none|The type of barcode to print on the bottom of the receipt. This is not for the item SKU| |barcodeNumber|string|false|none|The number used to generate the receipt barcode. This is not the transaction number. This must be compatible with the barcodeType.| |receiptDateTime|string|false|none|none| |loyalty|[LoyaltyData](#schemaloyaltydata)|false|none|none| |transactionType|string|true|none|The type of transaction such as SaleTransaction, ReturnTransaction, OrderTransaction, or PaymentLinkTransaction| |relatedTransactionReference|[RelatedTransactionReferenceData](#schemarelatedtransactionreferencedata)|false|none|This section is used for transactions such as layaway payments.
This section typically contains information about the original sales transaction.
For example, the receipt information from the original layaway sale.| |transactionNumber|string|true|none|The unique number of the transaction| |items|[[ItemData](#schemaitemdata)]|false|none|The most common section to use to list the line items in the sales transaction. Send as much of this information as possible.| |returns|[[ReturnData](#schemareturndata)]|false|none|[This section is for items that were returned to the store]| |orders|[[OrderData](#schemaorderdata)]|false|none|[Use this section for orders that are placed in the store, but they're either going to be delivered to the store for pickup,
or they will be delivered to the person's home.
For example, furniture is often a product where the person pays for it in advance, and the product is delivered to the person's home.
This is also used for layaway transactions.
]| |grossAmount|number|false|none|The total amount of the transaction before any discounts, fees or taxes| |discounts|[[DiscountData](#schemadiscountdata)]|false|none|none| |netAmount|number|false|none|The total amount of the transaction after any discounts and fees but before taxes| |taxes|[[TaxData](#schemataxdata)]|false|none|[This section is for tax data. Multiple taxes are supported]| |grandAmount|number|true|none|The total amount of the transaction after all discounts, fees and taxes| |tenderApplied|number|false|none|The total amount of the tender applied to the transaction| |balanceDue|number|false|none|The total amount due after the tender is applied| |changeDue|number|false|none|The total amount of change due to the customer| |tip|number|false|none|The total amount of the tip if any| |serviceCharge|number|false|none|The total amount of the service charge if any| |tenders|[[TenderData](#schematenderdata)]|false|none|[This section is for tender information]| |tenderHistory|[[TenderHistoryData](#schematenderhistorydata)]|false|none|[This section is for payment history information. Multiple tenders are supported]| |paymentLink|string|false|none|The payment link URL. Required when transactionType is "PaymentLinkTransaction"| |deposit|[DepositData](#schemadepositdata)|false|none|This section is for deposit information| |soldTo|[SoldToData](#schemasoldtodata)|false|none|Information about the person who made the purchase| |fees|[[FeeData](#schemafeedata)]|false|none|[This section is for fees. Multiple fees are supported]| |roundingAdjustment|object|false|none|The rounding adjustment applied to the transaction total (for instance when cash transactions are rounded to the nearest nickel)| |» value|number|false|none|The amount of the rounding adjustment| |deliveryPickup|[DeliveryPickupData](#schemadeliverypickupdata)|false|none|This section is used for delivery or pickup information| |signature|[SignatureData](#schemasignaturedata)|false|none|Sending a base64binary signature image to display on the receipt is supported in this section. This can contain multi-line terms that are being signed| |terms|[[TermData](#schematermdata)]|false|none|[This section is for terms and conditions. The terms can be sent with or without a base64binary signature image. A link can also be added.]| |trackingPixel|string|false|none|The URL of the tracking pixel| |additionalInfo1|string|false|none|The additional info fields are multi-line text fields to display at locations determined in the receipt template| |additionalInfo2|string|false|none|none| |additionalInfo3|string|false|none|none| |additionalInfo4|string|false|none|none| |additionalInfo5|string|false|none|none| |rawPosReceipt|string|false|none|The raw POS receipt data| |currency|string|false|none|The currency code for the transaction| |referenceId|string|false|none|none| |supportingDocuments|object|false|none|none| |» **additionalProperties**|[SupportingDocumentData](#schemasupportingdocumentdata)|false|none|This section is used for any supporting documents that need to be attached to the receipt.
This could be a warranty, return policy, or any other document that needs to be attached to the receipt.| #### Enumerated Values |Property|Value| |---|---| |receiptType|DigitalOnly| |receiptType|PaperOnly| |receiptType|DigitalAndPaper| |receiptType|NoReceipt| |currency|ADP| |currency|AED| |currency|AFA| |currency|ALL| |currency|AMD| |currency|ANG| |currency|AOA| |currency|ARS| |currency|ATS| |currency|AUD| |currency|AWG| |currency|AZM| |currency|BAM| |currency|BBD| |currency|BDT| |currency|BEF| |currency|BGL| |currency|BGN| |currency|BHD| |currency|BIF| |currency|BMD| |currency|BND| |currency|BOB| |currency|BOV| |currency|BRL| |currency|BSD| |currency|BTN| |currency|BWP| |currency|BYR| |currency|BZD| |currency|CAD| |currency|CDF| |currency|CHF| |currency|CLF| |currency|CLP| |currency|CNY| |currency|COP| |currency|CRC| |currency|CUP| |currency|CVE| |currency|CYP| |currency|CZK| |currency|DEM| |currency|DJF| |currency|DKK| |currency|DOP| |currency|DZD| |currency|ECS| |currency|ECV| |currency|EEK| |currency|EGP| |currency|ERN| |currency|ESP| |currency|ETB| |currency|EUR| |currency|FIM| |currency|FJD| |currency|FKP| |currency|FRF| |currency|GBP| |currency|GEL| |currency|GHC| |currency|GIP| |currency|GMD| |currency|GNF| |currency|GRD| |currency|GTQ| |currency|GWP| |currency|GYD| |currency|HKD| |currency|HNL| |currency|HRK| |currency|HTG| |currency|HUF| |currency|IDR| |currency|IEP| |currency|ILS| |currency|INR| |currency|IQD| |currency|IRR| |currency|ISK| |currency|ITL| |currency|JMD| |currency|JOD| |currency|JPY| |currency|KES| |currency|KGS| |currency|KHR| |currency|KMF| |currency|KPW| |currency|KRW| |currency|KWD| |currency|KYD| |currency|KZT| |currency|LAK| |currency|LBP| |currency|LKR| |currency|LRD| |currency|LSL| |currency|LTL| |currency|LUF| |currency|LVL| |currency|LYD| |currency|MAD| |currency|MDL| |currency|MGF| |currency|MKD| |currency|MMK| |currency|MNT| |currency|MOP| |currency|MRO| |currency|MTL| |currency|MUR| |currency|MVR| |currency|MWK| |currency|MXN| |currency|MXV| |currency|MYR| |currency|MZM| |currency|NAD| |currency|NGN| |currency|NIO| |currency|NLG| |currency|NOK| |currency|NPR| |currency|NZD| |currency|OMR| |currency|PAB| |currency|PEN| |currency|PGK| |currency|PHP| |currency|PKR| |currency|PLN| |currency|PTE| |currency|PYG| |currency|QAR| |currency|ROL| |currency|RUB| |currency|RUR| |currency|RWF| |currency|SAR| |currency|SBD| |currency|SCR| |currency|SDD| |currency|SEK| |currency|SGD| |currency|SHP| |currency|SIT| |currency|SKK| |currency|SLL| |currency|SOS| |currency|SRG| |currency|STD| |currency|SVC| |currency|SYP| |currency|SZL| |currency|THB| |currency|TJS| |currency|TMM| |currency|TND| |currency|TOP| |currency|TPE| |currency|TRL| |currency|TTD| |currency|TWD| |currency|TZS| |currency|UAH| |currency|UGX| |currency|USD| |currency|USN| |currency|USS| |currency|UYU| |currency|UZS| |currency|VEB| |currency|VND| |currency|VUV| |currency|WST| |currency|XAF| |currency|XAG| |currency|XAU| |currency|XBA| |currency|XBB| |currency|XBC| |currency|XCD| |currency|XDR| |currency|XFO| |currency|XFU| |currency|XOF| |currency|XPD| |currency|XPF| |currency|XPT| |currency|XTS| |currency|YER| |currency|YUM| |currency|ZAR| |currency|ZMK| |currency|ZWD|

Customer

```json { "emailAddress": "jane.doe@email.com", "telephone": { "areaCode": 123, "localNumber": 4567890 } } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |emailAddress|string|false|none|Only required if receiptType = DigitalOnly or receiptType = DigitalAndPaper| |telephone|[TelephoneCommonData](#schematelephonecommondata)|false|none|If a telephone number is available, it should be sent. US phone numbers should use both areaCode and localNumber and send only numeric values.|

TelephoneCommonData

```json { "areaCode": 123, "localNumber": 4567890 } ``` If a telephone number is available, it should be sent. US phone numbers should use both areaCode and localNumber and send only numeric values. ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |areaCode|string|false|none|none| |localNumber|string|true|none|none|

WorkstationData

```json { "id": 90, "operator": "John", "associate": "Sam", "store": { "id": 123, "name": "Store 123", "address": { "typeCode": "Home", "addressLine1": "123 Main St", "addressLine2": "Suite 100", "addressLine3": "Building 2", "city": "Orlando", "territory": "FL", "postalCode": 12345, "country": { "value": "US", "code": "US" }, "postalCodeExtension": 6789 }, "telephone": { "areaCode": 123, "localNumber": 4567890 } } } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |id|string|true|none|This is the ID assigned to the register used for the transaction.| |operator|string|false|none|This can be either an associate ID or associate name. This field contains the ID or name of the associate who rang up the transaction.| |associate|string|false|none|This can be either an associate ID or associate name. This field contains the ID or name of the associate who made the sale.
The operator and associate can be the same person if the person who made the sale is also ringing up the transaction on the register.
However, if the salesperson is different than the person ringing the transaction, the operator and associate should be different values.| |store|[StoreData](#schemastoredata)|true|none|none|

StoreData

```json { "id": 123, "name": "Store 123", "address": { "typeCode": "Home", "addressLine1": "123 Main St", "addressLine2": "Suite 100", "addressLine3": "Building 2", "city": "Orlando", "territory": "FL", "postalCode": 12345, "country": { "value": "US", "code": "US" }, "postalCodeExtension": 6789 }, "telephone": { "areaCode": 123, "localNumber": 4567890 } } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |id|string|true|none|The ID assigned to the store| |name|string|true|none|The name of the store| |address|[AddressCommonData](#schemaaddresscommondata)|true|none|none| |telephone|[TelephoneCommonData](#schematelephonecommondata)|false|none|If a telephone number is available, it should be sent. US phone numbers should use both areaCode and localNumber and send only numeric values.|

AddressCommonData

```json { "typeCode": "Home", "addressLine1": "123 Main St", "addressLine2": "Suite 100", "addressLine3": "Building 2", "city": "Orlando", "territory": "FL", "postalCode": 12345, "country": { "value": "US", "code": "US" }, "postalCodeExtension": 6789 } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |typeCode|string|false|none|none| |addressLine1|string|false|none|none| |addressLine2|string|false|none|none| |addressLine3|string|false|none|none| |city|string|false|none|none| |territory|string|false|none|none| |postalCode|string|false|none|none| |country|[Country](#schemacountry)|false|none|none| |postalCodeExtension|string|false|none|none| #### Enumerated Values |Property|Value| |---|---| |typeCode|Home| |typeCode|Work| |typeCode|Delivery| |typeCode|Pickup| |typeCode|Billing| |typeCode|RetailStore| |typeCode|Warehouse| |typeCode|Administration| |typeCode|ExportSale|

Country

```json { "value": "US", "code": "US" } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |value|string|false|none|none| |code|string|false|none|none| #### Enumerated Values |Property|Value| |---|---| |code|AF| |code|AL| |code|DZ| |code|AS| |code|AD| |code|AO| |code|AI| |code|AQ| |code|AG| |code|AR| |code|AM| |code|AW| |code|AU| |code|AT| |code|AZ| |code|BS| |code|BH| |code|BD| |code|BB| |code|BY| |code|BE| |code|BZ| |code|BJ| |code|BM| |code|BT| |code|BO| |code|BA| |code|BW| |code|BV| |code|BR| |code|IO| |code|BN| |code|BG| |code|BF| |code|BI| |code|KH| |code|CM| |code|CA| |code|CV| |code|KY| |code|CF| |code|TD| |code|CL| |code|CN| |code|CX| |code|CC| |code|CO| |code|KM| |code|CG| |code|CD| |code|CK| |code|CR| |code|CI| |code|HR| |code|CU| |code|CY| |code|CZ| |code|DK| |code|DJ| |code|DM| |code|DO| |code|TP| |code|EC| |code|EG| |code|SV| |code|GQ| |code|ER| |code|EE| |code|ET| |code|FK| |code|FO| |code|FJ| |code|FI| |code|FR| |code|GF| |code|PF| |code|TF| |code|GA| |code|GM| |code|GE| |code|DE| |code|GH| |code|GI| |code|GR| |code|GL| |code|GD| |code|GG| |code|GP| |code|GU| |code|GT| |code|GN| |code|GW| |code|GY| |code|HT| |code|HM| |code|VA| |code|HN| |code|HK| |code|HU| |code|IS| |code|IN| |code|ID| |code|IR| |code|IQ| |code|IE| |code|IL| |code|IM| |code|IT| |code|JE| |code|JM| |code|JP| |code|JO| |code|KZ| |code|KE| |code|KI| |code|KP| |code|KR| |code|KW| |code|KG| |code|LA| |code|LV| |code|LB| |code|LS| |code|LR| |code|LY| |code|LI| |code|LT| |code|LU| |code|MO| |code|MK| |code|MG| |code|MW| |code|MY| |code|MV| |code|ML| |code|MT| |code|MH| |code|MQ| |code|MR| |code|MU| |code|YT| |code|MX| |code|FM| |code|MD| |code|MC| |code|MN| |code|MS| |code|MA| |code|MZ| |code|MM| |code|NA| |code|NR| |code|NP| |code|NL| |code|AN| |code|NC| |code|NZ| |code|NI| |code|NE| |code|NG| |code|NU| |code|NF| |code|MP| |code|NO| |code|OM| |code|PK| |code|PW| |code|PS| |code|PA| |code|PG| |code|PY| |code|PE| |code|PH| |code|PN| |code|PL| |code|PT| |code|PR| |code|QA| |code|RE| |code|RO| |code|RU| |code|RW| |code|SH| |code|KN| |code|LC| |code|PM| |code|VC| |code|WS| |code|SM| |code|ST| |code|SA| |code|SN| |code|SC| |code|SL| |code|SG| |code|SK| |code|SI| |code|SB| |code|SO| |code|ZA| |code|GS| |code|ES| |code|LK| |code|SD| |code|SR| |code|SJ| |code|SZ| |code|SE| |code|CH| |code|SY| |code|TW| |code|TJ| |code|TZ| |code|TH| |code|TG| |code|TK| |code|TO| |code|TT| |code|TN| |code|TR| |code|TM| |code|TC| |code|TV| |code|UG| |code|UA| |code|AE| |code|GB| |code|US| |code|UM| |code|UY| |code|UZ| |code|VU| |code|VE| |code|VN| |code|VG| |code|VI| |code|WF| |code|EH| |code|YE| |code|YU| |code|ZM| |code|ZW|

RevisionData

```json { "number": 999, "dateTime": "2016-05-13T11:40:16-07:00" } ``` This is for providing a revision number and date for the receipt ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |number|string|false|none|The revision number| |dateTime|string|false|none|The date and time of the revision|

LoyaltyData

```json { "number": 1234567890, "customerName": "Jane Doe", "expirationDateTime": "2013-11-10T15:15:17-05:00", "balance": 100, "misc": "100 points until next level" } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |number|string|true|none|This field is only required if adding loyalty information| |customerName|string|false|none|The loyalty customer name| |expirationDateTime|string|false|none|If there is an expiration date/time for the loyalty membership, this field would contain the expiration date| |balance|number|false|none|The loyalty customer's point balance| |misc|string|false|none|This field is used for anything else that pertains to loyalty such as points used, special messages, and how many points until the next membership level|

RelatedTransactionReferenceData

```json { "store": 111, "register": 20, "transactionNumber": 98765, "reasonCode": "R555", "reason": "Detailed Reason Here" } ``` This section is used for transactions such as layaway payments. This section typically contains information about the original sales transaction. For example, the receipt information from the original layaway sale. ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |store|string|false|none|none| |register|string|false|none|none| |transactionNumber|string|false|none|none| |reasonCode|string|false|none|none| |reason|string|false|none|none|

ItemData

```json { "name": "LIVING ROOM SET", "description": "3 piece set", "classCode": 12345, "sku": 20170112029, "upc": 20170112029, "serialNumber": 1234567890, "modelNumber": 1241, "brand": "MyBrand", "industry": "Furniture", "manufacturer": "MyManufacturer", "price": 100, "total": 190, "priceNotation": "N", "quantity": { "value": 2, "units": 2, "unitOfMeasureCode": "Each" }, "discounts": [ { "amount": -10, "name": "Member Discount" } ], "miscInfo": "In-home delivery\n(Assembly required)\nUsually ships in 2-3 weeks", "category": "Furniture", "customCategory1": "CustomCategory1", "customCategory2": "CustomCategory2", "giftCard": { "accountNumber": 1234567890, "authNumber": 123456, "balance": 100 }, "supportingDocuments": { "warranty": { "name": "Click for Warranty Information", "url": "http://www.example.com/warranty.pdf" } }, "taxes": [ { "description": "Sales Tax", "percent": 0.06, "taxableAmount": 100, "amount": 6, "taxTypeCode": "Sales" } ] } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |name|string|true|none|The name of the item| |description|string|false|none|A description of the item| |classCode|string|false|none|The class code of the item| |sku|string|false|none|The SKU of the item| |upc|string|false|none|The UPC of the item| |serialNumber|string|false|none|The serial number of the item| |modelNumber|string|false|none|The model number of the item| |brand|string|false|none|The brand of the item| |industry|string|false|none|The industry of the item| |manufacturer|string|false|none|The manufacturer of the item| |price|number|false|none|The unit price of the item| |total|number|false|none|The total price of the item which should be the (Unit Price * Quantity) - Discount.
Calculations need to happen before sending the value through the payload| |priceNotation|string|false|none|Use the priceNotation element for any codes added to the final price on the printed receipt (e.g., “N” for non-taxable)| |quantity|[QuantityCommonData](#schemaquantitycommondata)|false|none|none| |discounts|[[DiscountData](#schemadiscountdata)]|false|none|Multiple item level discounts are allowed and custom labels can be used for each discount| |miscInfo|string|false|none|This field is used for any additional information about the item| |category|string|false|none|The category of the item. This field is used if grouping line items to be displayed on the digital receipt by a specific category.
For example - grouping the items by grocery product types (“HBA”, “Dairy”, “Meat”, “Grocery”, etc) or by apparel types for department
stores (“Womens”, “Mens”, “Kids”). Since the value in this field is literally displayed on the digital receipt, send the specific,
literal category name (ex: “Dairy”) rather than a code or number (ex: “1”).| |customCategory1|string|false|none|This field can be used to provide a custom category for the item| |customCategory2|string|false|none|This field can be used to provide a second custom category for the item| |giftCard|[GiftCardData](#schemagiftcarddata)|false|none|none| |supportingDocuments|object|false|none|none| |» **additionalProperties**|[SupportingDocumentData](#schemasupportingdocumentdata)|false|none|This section is used for any supporting documents that need to be attached to the receipt.
This could be a warranty, return policy, or any other document that needs to be attached to the receipt.| |taxes|[[TaxData](#schemataxdata)]|false|none|The item-level taxes applied to this item|

QuantityCommonData

```json { "value": 2, "units": 2, "unitOfMeasureCode": "Each" } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |value|number|false|none|The quantity of the item| |units|number|false|none|The number of units for the item. This field is deprecated and should not be used.| |unitOfMeasureCode|string|false|none|The unit of measure code for the item. e.g. Each, GAL, LB, etc.|

DiscountData

```json { "amount": -10, "name": "Member Discount" } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |amount|number|false|none|The amount of the discount| |name|string|false|none|The custom label for the discount|

GiftCardData

```json { "accountNumber": 1234567890, "authNumber": 123456, "balance": 100 } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |accountNumber|string|false|none|The account number of the gift card| |authNumber|string|false|none|The authorization number of the gift card| |balance|number|false|none|The balance of the gift card|

SupportingDocumentData

```json { "name": "Click for Warranty Information", "url": "http://www.example.com/warranty.pdf" } ``` This section is used for any supporting documents that need to be attached to the receipt. This could be a warranty, return policy, or any other document that needs to be attached to the receipt. ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |name|string|false|none|The text to display for the document| |url|string|false|none|The URL of the document|

ReturnData

```json { "originalStoreNumber": 123, "originalRegister": 20, "originalTransactionNumber": 98765, "items": [ { "name": "LIVING ROOM SET", "description": "3 piece set", "classCode": 12345, "sku": 20170112029, "upc": 20170112029, "serialNumber": 1234567890, "modelNumber": 1241, "brand": "MyBrand", "industry": "Furniture", "manufacturer": "MyManufacturer", "price": 100, "total": 190, "priceNotation": "N", "quantity": { "value": 2, "units": 2, "unitOfMeasureCode": "Each" }, "discounts": [ { "amount": -10, "name": "Member Discount" } ], "miscInfo": "In-home delivery\n(Assembly required)\nUsually ships in 2-3 weeks", "category": "Furniture", "customCategory1": "CustomCategory1", "customCategory2": "CustomCategory2", "giftCard": { "accountNumber": 1234567890, "authNumber": 123456, "balance": 100 }, "supportingDocuments": { "warranty": { "name": "Click for Warranty Information", "url": "http://www.example.com/warranty.pdf" } }, "taxes": [ { "description": "Sales Tax", "percent": 0.06, "taxableAmount": 100, "amount": 6, "taxTypeCode": "Sales" } ] } ], "miscText": "Return for store credit" } ``` This section is for items that were returned to the store ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |originalStoreNumber|string|false|none|The store number where the item was originally purchased| |originalRegister|string|false|none|The register where the item was originally purchased| |originalTransactionNumber|string|false|none|The transaction number for the original purchase| |items|[[ItemData](#schemaitemdata)]|false|none|none| |miscText|string|false|none|This field is used for any additional information about the return|

OrderData

```json { "number": 123456, "action": "Create", "barcodeNumber": 1234567890, "barcodeType": "Code128", "grossAmount": 200, "netAmount": 190, "totalAmount": 100, "description": "Description of order", "soldTo": { "address": { "typeCode": "Home", "addressLine1": "123 Main St", "addressLine2": "Suite 100", "addressLine3": "Building 2", "city": "Orlando", "territory": "FL", "postalCode": 12345, "country": { "value": "US", "code": "US" }, "postalCodeExtension": 6789 }, "customerName": "Jane Doe", "customerNumber": 123456, "telephone1": { "areaCode": 123, "localNumber": 4567890 }, "telephone2": { "areaCode": 123, "localNumber": 4567890 } }, "deliveryPickup": { "address": { "typeCode": "Home", "addressLine1": "123 Main St", "addressLine2": "Suite 100", "addressLine3": "Building 2", "city": "Orlando", "territory": "FL", "postalCode": 12345, "country": { "value": "US", "code": "US" }, "postalCodeExtension": 6789 }, "instructions": "Leave at front door", "dateTime": "2013-11-10", "phoneNumber1": { "areaCode": 123, "localNumber": 4567890 }, "phoneNumber2": { "areaCode": 123, "localNumber": 4567890 } }, "taxes": [ { "description": "Sales Tax", "percent": 0.06, "taxableAmount": 100, "amount": 6, "taxTypeCode": "Sales" } ], "fees": [ { "amount": 10, "description": "Installation Fee" } ], "deposits": [ { "accountNumber": 1234567890, "amount": 36, "balanceDue": 40 } ], "tenderHistory": [ { "tenderTypeCode": "GiftCard", "dateTime": "2013-11-10T15:15:17-05:00", "amount": 100, "creditDebit": { "first6Digits": 123456, "last4Digits": 7890, "typeCode": "Visa", "name": { "firstName": "Jane", "lastName": "Doe" }, "expirationDate": "0101" } } ], "paymentSchedules": [ { "description": "First Payment", "amountDue": 50, "dueDate": "2013-11-10" } ], "items": [ { "name": "LIVING ROOM SET", "description": "3 piece set", "classCode": 12345, "sku": 20170112029, "upc": 20170112029, "serialNumber": 1234567890, "modelNumber": 1241, "brand": "MyBrand", "industry": "Furniture", "manufacturer": "MyManufacturer", "price": 100, "total": 190, "priceNotation": "N", "quantity": { "value": 2, "units": 2, "unitOfMeasureCode": "Each" }, "discounts": [ { "amount": -10, "name": "Member Discount" } ], "miscInfo": "In-home delivery\n(Assembly required)\nUsually ships in 2-3 weeks", "category": "Furniture", "customCategory1": "CustomCategory1", "customCategory2": "CustomCategory2", "giftCard": { "accountNumber": 1234567890, "authNumber": 123456, "balance": 100 }, "supportingDocuments": { "warranty": { "name": "Click for Warranty Information", "url": "http://www.example.com/warranty.pdf" } }, "taxes": [ { "description": "Sales Tax", "percent": 0.06, "taxableAmount": 100, "amount": 6, "taxTypeCode": "Sales" } ] } ], "miscText": "string" } ``` Use this section for orders that are placed in the store, but they're either going to be delivered to the store for pickup, or they will be delivered to the person's home. For example, furniture is often a product where the person pays for it in advance, and the product is delivered to the person's home. This is also used for layaway transactions. ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |number|string|false|none|The order number| |action|string|false|none|none| |barcodeNumber|string|false|none|The barcode number for the order. This must be compatible with the barcodeType.| |barcodeType|[BarcodeType](#schemabarcodetype)|false|none|The type of barcode to use for the order| |grossAmount|number|false|none|The total amount of the order before any discounts, fees or taxes| |netAmount|number|false|none|The total amount of the order after any discounts and fees but before taxes| |totalAmount|number|false|none|The total amount of the order| |description|string|false|none|The description of the order| |soldTo|[SoldToData](#schemasoldtodata)|false|none|Information about the person who made the purchase| |deliveryPickup|[DeliveryPickupData](#schemadeliverypickupdata)|false|none|This section is used for delivery or pickup information| |taxes|[[TaxData](#schemataxdata)]|false|none|[This section is for tax data. Multiple taxes are supported]| |fees|[[FeeData](#schemafeedata)]|false|none|[This section is for fees. Multiple fees are supported]| |deposits|[[DepositData](#schemadepositdata)]|false|none|[This section is for deposit information]| |tenderHistory|[[TenderHistoryData](#schematenderhistorydata)]|false|none|[This section is for payment history information. Multiple tenders are supported]| |paymentSchedules|[[PaymentScheduleData](#schemapaymentscheduledata)]|false|none|[This section is used when multiple payments are made on an order]| |items|[[ItemData](#schemaitemdata)]|false|none|none| |miscText|string|false|none|none|

SoldToData

```json { "address": { "typeCode": "Home", "addressLine1": "123 Main St", "addressLine2": "Suite 100", "addressLine3": "Building 2", "city": "Orlando", "territory": "FL", "postalCode": 12345, "country": { "value": "US", "code": "US" }, "postalCodeExtension": 6789 }, "customerName": "Jane Doe", "customerNumber": 123456, "telephone1": { "areaCode": 123, "localNumber": 4567890 }, "telephone2": { "areaCode": 123, "localNumber": 4567890 } } ``` Information about the person who made the purchase ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |address|[AddressCommonData](#schemaaddresscommondata)|false|none|none| |customerName|string|true|none|The name of the customer| |customerNumber|string|false|none|The customer number| |telephone1|[TelephoneCommonData](#schematelephonecommondata)|false|none|If a telephone number is available, it should be sent. US phone numbers should use both areaCode and localNumber and send only numeric values.| |telephone2|[TelephoneCommonData](#schematelephonecommondata)|false|none|If a telephone number is available, it should be sent. US phone numbers should use both areaCode and localNumber and send only numeric values.|

DeliveryPickupData

```json { "address": { "typeCode": "Home", "addressLine1": "123 Main St", "addressLine2": "Suite 100", "addressLine3": "Building 2", "city": "Orlando", "territory": "FL", "postalCode": 12345, "country": { "value": "US", "code": "US" }, "postalCodeExtension": 6789 }, "instructions": "Leave at front door", "dateTime": "2013-11-10", "phoneNumber1": { "areaCode": 123, "localNumber": 4567890 }, "phoneNumber2": { "areaCode": 123, "localNumber": 4567890 } } ``` This section is used for delivery or pickup information ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |address|[AddressCommonData](#schemaaddresscommondata)|false|none|none| |instructions|string|false|none|Any special instructions for delivery or pickup| |dateTime|string|false|none|The date for delivery or pickup| |phoneNumber1|[TelephoneCommonData](#schematelephonecommondata)|false|none|If a telephone number is available, it should be sent. US phone numbers should use both areaCode and localNumber and send only numeric values.| |phoneNumber2|[TelephoneCommonData](#schematelephonecommondata)|false|none|If a telephone number is available, it should be sent. US phone numbers should use both areaCode and localNumber and send only numeric values.|

TaxData

```json { "description": "Sales Tax", "percent": 0.06, "taxableAmount": 100, "amount": 6, "taxTypeCode": "Sales" } ``` This section is for tax data. Multiple taxes are supported ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |description|string|false|none|The description of the tax. If this is not sent "Tax:" is printed on the receipt| |percent|number|false|none|The percentage of the tax. This should be a decimal so 6% would be 0.06| |taxableAmount|number|false|none|The amount that the tax is applied to| |amount|number|false|none|The amount of the tax| |taxTypeCode|string|false|none|The type of tax| #### Enumerated Values |Property|Value| |---|---| |taxTypeCode|Sales| |taxTypeCode|VAT| |taxTypeCode|GST| |taxTypeCode|PST| |taxTypeCode|HST| |taxTypeCode|Excise| |taxTypeCode|UseTax|

FeeData

```json { "amount": 10, "description": "Installation Fee" } ``` This section is for fees. Multiple fees are supported ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |amount|number|false|none|The amount of the fee| |description|string|false|none|The description of the fee|

DepositData

```json { "accountNumber": 1234567890, "amount": 36, "balanceDue": 40 } ``` This section is for deposit information ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |accountNumber|string|false|none|The account number for the deposit| |amount|number|false|none|The amount of the deposit| |balanceDue|number|false|none|The balance due|

TenderHistoryData

```json { "tenderTypeCode": "GiftCard", "dateTime": "2013-11-10T15:15:17-05:00", "amount": 100, "creditDebit": { "first6Digits": 123456, "last4Digits": 7890, "typeCode": "Visa", "name": { "firstName": "Jane", "lastName": "Doe" }, "expirationDate": "0101" } } ``` This section is for payment history information. Multiple tenders are supported ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |tenderTypeCode|string|false|none|The type of tender| |dateTime|string|false|none|The date and time of the tender| |amount|number|false|none|The amount of the tender| |creditDebit|[CreditDebitData](#schemacreditdebitdata)|false|none|This section is used when the tender is a credit or debit card|

CreditDebitData

```json { "first6Digits": 123456, "last4Digits": 7890, "typeCode": "Visa", "name": { "firstName": "Jane", "lastName": "Doe" }, "expirationDate": "0101" } ``` This section is used when the tender is a credit or debit card ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |first6Digits|string|false|none|The first 6 digits of the card number| |last4Digits|string|true|none|The last 4 digits of the card number| |typeCode|string|false|none|The type of card| |name|[NameData](#schemanamedata)|false|none|First Name and Last Name should be sent from the card's track data| |expirationDate|string|false|none|The expiration date of the card. This should be in the format YYMM|

NameData

```json { "firstName": "Jane", "lastName": "Doe" } ``` First Name and Last Name should be sent from the card's track data ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |firstName|string|false|none|none| |lastName|string|false|none|none|

PaymentScheduleData

```json { "description": "First Payment", "amountDue": 50, "dueDate": "2013-11-10" } ``` This section is used when multiple payments are made on an order ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |description|string|false|none|The description of the payment| |amountDue|number|false|none|The amount due for the payment| |dueDate|string|false|none|The due date for the payment|

TenderData

```json { "tenderTypeCode": "CreditCard", "dateTime": "2013-11-10T15:15:17-05:00", "amount": 100, "creditDebit": { "first6Digits": 123456, "last4Digits": 7890, "typeCode": "Visa", "name": { "firstName": "Jane", "lastName": "Doe" }, "expirationDate": "0101" }, "giftCard": { "accountNumber": 1234567890, "authNumber": 123456, "balance": 100 }, "authorizationCode": 123456, "miscInfo": "string", "signature": { "base64Image": "iVBORw0KGgoAAAANSUhEUgAAAQ4AAABACAIAAABk9g5aAAAAA3NCSVQICAjb4U/gAAAFGklEQVR4nO2dW3akOgxFIevOf8r0Bze028ZCbwSc/ZWslGUjW08osm7btoDns67rsizYzTh+7l4AcGC3k/YH4A5MBQAWMJX3gOwrFJjK2/hUDraua9r1wlQAYPGfcTxt00gJgAJmNy85fiKqvIH9VKFfHIopqtB7s+eRXjuHc/ARytZaiCovAU4kGpjK2yjrlZ+O3lSQEZXludZSeeWBUQVWlAk8VzThCVhlP/FK2m4YcMRkKvBhRehCykOtRRQY869OaSqP24av8VBrOSjohWMTMN+bKk/nlqvIn3T9ZVE9o1V2r9EsTiXzHNzimPMPetplZphKWT/xDogU/8Y0bJ962zZR7VEw7zpAVAGAxQNM5XCKlV1OWZIDy/aLaNQRUirHlgeYCgAVgKmk4u4vOW746Y3jIlQ3FWzwRyiefS31TeU13GvzlQOLZVWZdlXaVIq7mSJAPzlYv1vPQbeX3WvgcCB8qdZXrL/LsVHFHvEr645P0DkQqbedvVom9ohdzk7AmA8F1fcxz6WgbgsuaURpKi45Ff2x4orjU+pySi3mWQTWKt2udOYxe5kL9lKEQlGldNuVTKMPrbNaUwLmnvK+z07ed0VxVKugOjI6YMugheN+0+mfcpb0dHTfAymrXlFHTmdUxqZflKm0G9Musb1IfrQtu8E00aeTL7mmw870knYNhEeV0U46jdAKumwAKPRb3L9y4PRFOjo/JZoius0tkq849J3j1h2be+6ruDi5mp7yoJRB6p6Kn/1qpEuEiqjoEn1U2b1UZ6AznRLFiQ61kHHgzAfr5CfA0aQ62I4SvOyEqFelQkRjT2sBBZ4JGH8d7tughoh7FmuJCCkK9aqFR3uKyp5ohpupzL7Idry54/iktBgdP28MKUc8nC3pdgNuSQh6ObniqZIVVYqimdG+IW08kDO6iXxqFWYmoPgqKUesUc4oyhisHU9eaG3dTvFEN09D1AI6CQ5RZcwFx+rFcSccqxR3ItL6mSVbZF5OQUsgPm9MXC9nd3z/y6WorhS3vgl/aRyzOj5KsWxGF+XUcka8IsBMjt3pnI7lCGSW0fzcJtRteXnnLrkQRBVOL989enhVEdLlnfb3LuWLpqBntwtpMeqN03fia8B4Y8QuXNd800eV7Re1hDSi03FfO1nO9ttyCb49ZXqKCCMnrt1ekNC0geUiqjB7iPRGEusObYC0o+IIOiVtQHOxE87tr9lYenaRhkVpKqFbopfFTwT4yee6rlRUCe21JzdkFUk/pw8WYScRLRB1lcKcQiqKWVIvZNeU6F5GcB5VFBVqdCZWsKcZl3Vc3vmRSmt/FTmpfSXMbEIR8LvIOc7OWaFo0mOUKLRu23YSVaQ7dDmlOvPmNPsU95L4HFPMLsEinDO1BRfnclnHK/K6UY7aTjLpo0oR5316E0BRKdnTPCInJpbkwvbvg3NedZ2o88uH0zOcWddd5415jfvy/okqinVfDhl9v6N2dC5N2rib5cQJG6yrxV00TKdVdve0j72xiSpOF41tFs4onT8+/BNzYdF9w9sRqZrzMYVmLpPz0Hz4Xv6PKqF9WHWbYpbFMmd5GZe1mah8UlfD9HBj/VkZmefuB0cmml79nzfxYp9dn3XTvoE8oSAr0mMoRcKtd3BK0htbdGDvR6CTu1DeHIC/B1+j9D+NAKAORasUAKqBqAIAC3GtgpACvoksqsBOwGf54T+fm/wNEwBK8fe+ivopFQC+wM8iOf2wE/BZ/gCTtsbwwukPxQAAAABJRU5ErkJggg==", "imageMimeType": "image/png", "dateTime": "2013-11-10T15:15:17-05:00", "text": "I have read and accept the terms and conditions" }, "emv": { "aid": "string", "appLabel": "string", "appPreferredName": "string", "additionalAttributes": { "property1": "string", "property2": "string" } }, "currency": "USD", "supportingDocuments": { "warranty": { "name": "Click for Warranty Information", "url": "http://www.example.com/warranty.pdf" } } } ``` This section is for tender information ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |tenderTypeCode|string|true|none|The type of tender| |dateTime|string|false|none|The date and time of the tender| |amount|number|false|none|The amount of the tender| |creditDebit|[CreditDebitData](#schemacreditdebitdata)|false|none|This section is used when the tender is a credit or debit card| |giftCard|[GiftCardData](#schemagiftcarddata)|false|none|none| |authorizationCode|string|false|none|The authorization code for the tender| |miscInfo|string|false|none|none| |signature|[SignatureData](#schemasignaturedata)|false|none|Sending a base64binary signature image to display on the receipt is supported in this section. This can contain multi-line terms that are being signed| |emv|[TenderEmvData](#schematenderemvdata)|false|none|none| |currency|string|false|none|The currency code for the tender| |supportingDocuments|object|false|none|none| |» **additionalProperties**|[SupportingDocumentData](#schemasupportingdocumentdata)|false|none|This section is used for any supporting documents that need to be attached to the receipt.
This could be a warranty, return policy, or any other document that needs to be attached to the receipt.| #### Enumerated Values |Property|Value| |---|---| |currency|ADP| |currency|AED| |currency|AFA| |currency|ALL| |currency|AMD| |currency|ANG| |currency|AOA| |currency|ARS| |currency|ATS| |currency|AUD| |currency|AWG| |currency|AZM| |currency|BAM| |currency|BBD| |currency|BDT| |currency|BEF| |currency|BGL| |currency|BGN| |currency|BHD| |currency|BIF| |currency|BMD| |currency|BND| |currency|BOB| |currency|BOV| |currency|BRL| |currency|BSD| |currency|BTN| |currency|BWP| |currency|BYR| |currency|BZD| |currency|CAD| |currency|CDF| |currency|CHF| |currency|CLF| |currency|CLP| |currency|CNY| |currency|COP| |currency|CRC| |currency|CUP| |currency|CVE| |currency|CYP| |currency|CZK| |currency|DEM| |currency|DJF| |currency|DKK| |currency|DOP| |currency|DZD| |currency|ECS| |currency|ECV| |currency|EEK| |currency|EGP| |currency|ERN| |currency|ESP| |currency|ETB| |currency|EUR| |currency|FIM| |currency|FJD| |currency|FKP| |currency|FRF| |currency|GBP| |currency|GEL| |currency|GHC| |currency|GIP| |currency|GMD| |currency|GNF| |currency|GRD| |currency|GTQ| |currency|GWP| |currency|GYD| |currency|HKD| |currency|HNL| |currency|HRK| |currency|HTG| |currency|HUF| |currency|IDR| |currency|IEP| |currency|ILS| |currency|INR| |currency|IQD| |currency|IRR| |currency|ISK| |currency|ITL| |currency|JMD| |currency|JOD| |currency|JPY| |currency|KES| |currency|KGS| |currency|KHR| |currency|KMF| |currency|KPW| |currency|KRW| |currency|KWD| |currency|KYD| |currency|KZT| |currency|LAK| |currency|LBP| |currency|LKR| |currency|LRD| |currency|LSL| |currency|LTL| |currency|LUF| |currency|LVL| |currency|LYD| |currency|MAD| |currency|MDL| |currency|MGF| |currency|MKD| |currency|MMK| |currency|MNT| |currency|MOP| |currency|MRO| |currency|MTL| |currency|MUR| |currency|MVR| |currency|MWK| |currency|MXN| |currency|MXV| |currency|MYR| |currency|MZM| |currency|NAD| |currency|NGN| |currency|NIO| |currency|NLG| |currency|NOK| |currency|NPR| |currency|NZD| |currency|OMR| |currency|PAB| |currency|PEN| |currency|PGK| |currency|PHP| |currency|PKR| |currency|PLN| |currency|PTE| |currency|PYG| |currency|QAR| |currency|ROL| |currency|RUB| |currency|RUR| |currency|RWF| |currency|SAR| |currency|SBD| |currency|SCR| |currency|SDD| |currency|SEK| |currency|SGD| |currency|SHP| |currency|SIT| |currency|SKK| |currency|SLL| |currency|SOS| |currency|SRG| |currency|STD| |currency|SVC| |currency|SYP| |currency|SZL| |currency|THB| |currency|TJS| |currency|TMM| |currency|TND| |currency|TOP| |currency|TPE| |currency|TRL| |currency|TTD| |currency|TWD| |currency|TZS| |currency|UAH| |currency|UGX| |currency|USD| |currency|USN| |currency|USS| |currency|UYU| |currency|UZS| |currency|VEB| |currency|VND| |currency|VUV| |currency|WST| |currency|XAF| |currency|XAG| |currency|XAU| |currency|XBA| |currency|XBB| |currency|XBC| |currency|XCD| |currency|XDR| |currency|XFO| |currency|XFU| |currency|XOF| |currency|XPD| |currency|XPF| |currency|XPT| |currency|XTS| |currency|YER| |currency|YUM| |currency|ZAR| |currency|ZMK| |currency|ZWD|

SignatureData

```json { "base64Image": "iVBORw0KGgoAAAANSUhEUgAAAQ4AAABACAIAAABk9g5aAAAAA3NCSVQICAjb4U/gAAAFGklEQVR4nO2dW3akOgxFIevOf8r0Bze028ZCbwSc/ZWslGUjW08osm7btoDns67rsizYzTh+7l4AcGC3k/YH4A5MBQAWMJX3gOwrFJjK2/hUDraua9r1wlQAYPGfcTxt00gJgAJmNy85fiKqvIH9VKFfHIopqtB7s+eRXjuHc/ARytZaiCovAU4kGpjK2yjrlZ+O3lSQEZXludZSeeWBUQVWlAk8VzThCVhlP/FK2m4YcMRkKvBhRehCykOtRRQY869OaSqP24av8VBrOSjohWMTMN+bKk/nlqvIn3T9ZVE9o1V2r9EsTiXzHNzimPMPetplZphKWT/xDogU/8Y0bJ962zZR7VEw7zpAVAGAxQNM5XCKlV1OWZIDy/aLaNQRUirHlgeYCgAVgKmk4u4vOW746Y3jIlQ3FWzwRyiefS31TeU13GvzlQOLZVWZdlXaVIq7mSJAPzlYv1vPQbeX3WvgcCB8qdZXrL/LsVHFHvEr645P0DkQqbedvVom9ohdzk7AmA8F1fcxz6WgbgsuaURpKi45Ff2x4orjU+pySi3mWQTWKt2udOYxe5kL9lKEQlGldNuVTKMPrbNaUwLmnvK+z07ed0VxVKugOjI6YMugheN+0+mfcpb0dHTfAymrXlFHTmdUxqZflKm0G9Musb1IfrQtu8E00aeTL7mmw870knYNhEeV0U46jdAKumwAKPRb3L9y4PRFOjo/JZoius0tkq849J3j1h2be+6ruDi5mp7yoJRB6p6Kn/1qpEuEiqjoEn1U2b1UZ6AznRLFiQ61kHHgzAfr5CfA0aQ62I4SvOyEqFelQkRjT2sBBZ4JGH8d7tughoh7FmuJCCkK9aqFR3uKyp5ohpupzL7Idry54/iktBgdP28MKUc8nC3pdgNuSQh6ObniqZIVVYqimdG+IW08kDO6iXxqFWYmoPgqKUesUc4oyhisHU9eaG3dTvFEN09D1AI6CQ5RZcwFx+rFcSccqxR3ItL6mSVbZF5OQUsgPm9MXC9nd3z/y6WorhS3vgl/aRyzOj5KsWxGF+XUcka8IsBMjt3pnI7lCGSW0fzcJtRteXnnLrkQRBVOL989enhVEdLlnfb3LuWLpqBntwtpMeqN03fia8B4Y8QuXNd800eV7Re1hDSi03FfO1nO9ttyCb49ZXqKCCMnrt1ekNC0geUiqjB7iPRGEusObYC0o+IIOiVtQHOxE87tr9lYenaRhkVpKqFbopfFTwT4yee6rlRUCe21JzdkFUk/pw8WYScRLRB1lcKcQiqKWVIvZNeU6F5GcB5VFBVqdCZWsKcZl3Vc3vmRSmt/FTmpfSXMbEIR8LvIOc7OWaFo0mOUKLRu23YSVaQ7dDmlOvPmNPsU95L4HFPMLsEinDO1BRfnclnHK/K6UY7aTjLpo0oR5316E0BRKdnTPCInJpbkwvbvg3NedZ2o88uH0zOcWddd5415jfvy/okqinVfDhl9v6N2dC5N2rib5cQJG6yrxV00TKdVdve0j72xiSpOF41tFs4onT8+/BNzYdF9w9sRqZrzMYVmLpPz0Hz4Xv6PKqF9WHWbYpbFMmd5GZe1mah8UlfD9HBj/VkZmefuB0cmml79nzfxYp9dn3XTvoE8oSAr0mMoRcKtd3BK0htbdGDvR6CTu1DeHIC/B1+j9D+NAKAORasUAKqBqAIAC3GtgpACvoksqsBOwGf54T+fm/wNEwBK8fe+ivopFQC+wM8iOf2wE/BZ/gCTtsbwwukPxQAAAABJRU5ErkJggg==", "imageMimeType": "image/png", "dateTime": "2013-11-10T15:15:17-05:00", "text": "I have read and accept the terms and conditions" } ``` Sending a base64binary signature image to display on the receipt is supported in this section. This can contain multi-line terms that are being signed ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |base64Image|string|false|none|The base64binary code for the image file| |imageMimeType|string|true|none|The mime type of the image. Required only if sending this information| |dateTime|string|false|none|The date and time of the signature| |text|string|false|none|This can be used for terms being signed if a signature is required|

TenderEmvData

```json { "aid": "string", "appLabel": "string", "appPreferredName": "string", "additionalAttributes": { "property1": "string", "property2": "string" } } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |aid|string|false|none|none| |appLabel|string|false|none|none| |appPreferredName|string|false|none|none| |additionalAttributes|object|false|none|none| |» **additionalProperties**|string|false|none|none|

TermData

```json { "signature": { "base64Image": "iVBORw0KGgoAAAANSUhEUgAAAQ4AAABACAIAAABk9g5aAAAAA3NCSVQICAjb4U/gAAAFGklEQVR4nO2dW3akOgxFIevOf8r0Bze028ZCbwSc/ZWslGUjW08osm7btoDns67rsizYzTh+7l4AcGC3k/YH4A5MBQAWMJX3gOwrFJjK2/hUDraua9r1wlQAYPGfcTxt00gJgAJmNy85fiKqvIH9VKFfHIopqtB7s+eRXjuHc/ARytZaiCovAU4kGpjK2yjrlZ+O3lSQEZXludZSeeWBUQVWlAk8VzThCVhlP/FK2m4YcMRkKvBhRehCykOtRRQY869OaSqP24av8VBrOSjohWMTMN+bKk/nlqvIn3T9ZVE9o1V2r9EsTiXzHNzimPMPetplZphKWT/xDogU/8Y0bJ962zZR7VEw7zpAVAGAxQNM5XCKlV1OWZIDy/aLaNQRUirHlgeYCgAVgKmk4u4vOW746Y3jIlQ3FWzwRyiefS31TeU13GvzlQOLZVWZdlXaVIq7mSJAPzlYv1vPQbeX3WvgcCB8qdZXrL/LsVHFHvEr645P0DkQqbedvVom9ohdzk7AmA8F1fcxz6WgbgsuaURpKi45Ff2x4orjU+pySi3mWQTWKt2udOYxe5kL9lKEQlGldNuVTKMPrbNaUwLmnvK+z07ed0VxVKugOjI6YMugheN+0+mfcpb0dHTfAymrXlFHTmdUxqZflKm0G9Musb1IfrQtu8E00aeTL7mmw870knYNhEeV0U46jdAKumwAKPRb3L9y4PRFOjo/JZoius0tkq849J3j1h2be+6ruDi5mp7yoJRB6p6Kn/1qpEuEiqjoEn1U2b1UZ6AznRLFiQ61kHHgzAfr5CfA0aQ62I4SvOyEqFelQkRjT2sBBZ4JGH8d7tughoh7FmuJCCkK9aqFR3uKyp5ohpupzL7Idry54/iktBgdP28MKUc8nC3pdgNuSQh6ObniqZIVVYqimdG+IW08kDO6iXxqFWYmoPgqKUesUc4oyhisHU9eaG3dTvFEN09D1AI6CQ5RZcwFx+rFcSccqxR3ItL6mSVbZF5OQUsgPm9MXC9nd3z/y6WorhS3vgl/aRyzOj5KsWxGF+XUcka8IsBMjt3pnI7lCGSW0fzcJtRteXnnLrkQRBVOL989enhVEdLlnfb3LuWLpqBntwtpMeqN03fia8B4Y8QuXNd800eV7Re1hDSi03FfO1nO9ttyCb49ZXqKCCMnrt1ekNC0geUiqjB7iPRGEusObYC0o+IIOiVtQHOxE87tr9lYenaRhkVpKqFbopfFTwT4yee6rlRUCe21JzdkFUk/pw8WYScRLRB1lcKcQiqKWVIvZNeU6F5GcB5VFBVqdCZWsKcZl3Vc3vmRSmt/FTmpfSXMbEIR8LvIOc7OWaFo0mOUKLRu23YSVaQ7dDmlOvPmNPsU95L4HFPMLsEinDO1BRfnclnHK/K6UY7aTjLpo0oR5316E0BRKdnTPCInJpbkwvbvg3NedZ2o88uH0zOcWddd5415jfvy/okqinVfDhl9v6N2dC5N2rib5cQJG6yrxV00TKdVdve0j72xiSpOF41tFs4onT8+/BNzYdF9w9sRqZrzMYVmLpPz0Hz4Xv6PKqF9WHWbYpbFMmd5GZe1mah8UlfD9HBj/VkZmefuB0cmml79nzfxYp9dn3XTvoE8oSAr0mMoRcKtd3BK0htbdGDvR6CTu1DeHIC/B1+j9D+NAKAORasUAKqBqAIAC3GtgpACvoksqsBOwGf54T+fm/wNEwBK8fe+ivopFQC+wM8iOf2wE/BZ/gCTtsbwwukPxQAAAABJRU5ErkJggg==", "imageMimeType": "image/png", "dateTime": "2013-11-10T15:15:17-05:00", "text": "I have read and accept the terms and conditions" }, "description": "I acknowledge that I am entering into a lease agreement described in the terms and conditions in the link below.", "supportingDocuments": { "warranty": { "name": "Terms and Conditions", "url": "http://www.example.com/terms.pdf" } } } ``` This section is for terms and conditions. The terms can be sent with or without a base64binary signature image. A link can also be added. ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |signature|[SignatureData](#schemasignaturedata)|false|none|Sending a base64binary signature image to display on the receipt is supported in this section. This can contain multi-line terms that are being signed| |description|string|false|none|This can be used for terms if no signature is required| |supportingDocuments|object|false|none|none| |» **additionalProperties**|[SupportingDocumentData](#schemasupportingdocumentdata)|false|none|This section is used for any supporting documents that need to be attached to the receipt.
This could be a warranty, return policy, or any other document that needs to be attached to the receipt.|

ReceiptResponse

```json { "customerEmailAddress": "jane.doe@email.com", "receiptId": "12345678-1234-1234-1234-123456789012", "offers": [ { "offerContentType": "image/png", "content": "http://www.example.com/offer.pdf", "imageWidth": 100 } ] } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |customerEmailAddress|string|false|none|The email address to which the receipt will be emailed.| |receiptId|string|true|none|The unique id for the receipt.
This id can be used to fetch the receipt via the GET /merchants/{merchantId}/receipts/{receiptId} method.
NOTE: this is not the same as the requestId.| |offers|[object]|false|none|none| |» offerContentType|string|false|none|none| |» content|string|true|none|The offer content; serialization will depend on on the
contentType. If the contentType matches image/\*, then this will
be a base64-encoded string representing the image. If the
contentType matches text/\*, then this will simply be text.| |» imageWidth|number|false|none|Provided only if contentType matches image/\*.| #### Enumerated Values |Property|Value| |---|---| |offerContentType|image/png| |offerContentType|image/bmp| |offerContentType|image/jpg| |offerContentType|image/gif| |offerContentType|text/html| |offerContentType|text/plain|

ReceiptDataResponse

```json { "apiRequest": { "apiVersion": 1, "data": null }, "associates": { "property1": { "name": "string", "idNumber": "string", "operatorType": "Cashier" }, "property2": { "name": "string", "idNumber": "string", "operatorType": "Cashier" } }, "barcode": { "type": "Code128", "number": 1234567890 }, "buyer": { "name": "Jane Doe", "customerNumber": 123456, "telephoneNumbers": { "property1": { "countryCode": "string", "areaCode": 123, "localNumber": 4567890 }, "property2": { "countryCode": "string", "areaCode": 123, "localNumber": 4567890 } }, "address": { "address1": "123 Main St", "address2": "Suite 100", "address3": "Building 2", "city": "Orlando", "state": "FL", "country": "USA", "countryCode": "US", "postalCode": 32801, "postalCodeExtension": 1234 } }, "changeDue": { "amount": 100, "currencyCode": "USD" }, "createDate": 1234567890123, "customerRefId": 123456, "deliveryPickupInfo": { "instructions": { "format": "TABS_NEWLINE", "text": "Example text" }, "deliveryPickupDate": 1384104000000, "telephoneNumbers": { "property1": { "countryCode": "string", "areaCode": 123, "localNumber": 4567890 }, "property2": { "countryCode": "string", "areaCode": 123, "localNumber": 4567890 } }, "address": { "address1": "123 Main St", "address2": "Suite 100", "address3": "Building 2", "city": "Orlando", "state": "FL", "country": "USA", "countryCode": "US", "postalCode": 32801, "postalCodeExtension": 1234 } }, "deposit": { "accountNumber": 1234567890, "amount": { "amount": 100, "currencyCode": "USD" }, "balanceDue": { "amount": 100, "currencyCode": "USD" } }, "discounts": [ { "description": { "format": "TABS_NEWLINE", "text": "Example text" }, "amount": { "amount": 100, "currencyCode": "USD" } } ], "fees": [ { "amount": { "amount": 100, "currencyCode": "USD" }, "description": { "format": "TABS_NEWLINE", "text": "Example text" } } ], "formattedTextAreas": { "property1": { "format": "TABS_NEWLINE", "text": "Example text" }, "property2": { "format": "TABS_NEWLINE", "text": "Example text" } }, "id": "12345678-1234-1234-1234-123456789012", "items": [ { "amount": { "amount": 100, "currencyCode": "USD" }, "brand": "MyBrand", "category": "Category", "customCategory1": "Custom Category 1", "customCategory2": "Custom Category 2", "description": { "format": "TABS_NEWLINE", "text": "Example text" }, "discounts": [ { "description": { "format": "TABS_NEWLINE", "text": "Example text" }, "amount": { "amount": 100, "currencyCode": "USD" } } ], "giftcard": { "accountNumber": 1234567890, "authNumber": 123456, "balance": { "amount": 100, "currencyCode": "USD" } }, "industry": "Retail", "itemTotal": { "amount": 100, "currencyCode": "USD" }, "manufacturer": "MyManufacturer", "miscInfo": { "format": "TABS_NEWLINE", "text": "Example text" }, "modelNumber": 123456, "name": "MyItem", "price": { "amount": 100, "currencyCode": "USD" }, "priceNotation": "N", "quantity": { "value": 1, "units": 1, "unitOfMeasureCode": "Each" }, "serialNumber": 1234567890, "sku": 123456, "supportingDocuments": { "property1": { "name": "Click for Warranty Information", "url": "http://www.example.com/warranty.pdf" }, "property2": { "name": "Click for Warranty Information", "url": "http://www.example.com/warranty.pdf" } }, "upc": 1234567890, "classCode": "classCode" } ], "language": "aa", "merchantRefId": "123456-1234-1234-1234-123456789012", "merchantTrackingPixelUrl": "http://www.example.com/pixel.gif", "mode": "Production", "orders": [ { "orderNumber": 123456, "orderAction": "Return", "barcode": { "type": "Code128", "number": 1234567890 }, "totalAmount": { "amount": 100, "currencyCode": "USD" }, "description": { "format": "TABS_NEWLINE", "text": "Example text" }, "buyer": { "name": "Jane Doe", "customerNumber": 123456, "telephoneNumbers": { "property1": { "countryCode": "string", "areaCode": 123, "localNumber": 4567890 }, "property2": { "countryCode": "string", "areaCode": 123, "localNumber": 4567890 } }, "address": { "address1": "123 Main St", "address2": "Suite 100", "address3": "Building 2", "city": "Orlando", "state": "FL", "country": "USA", "countryCode": "US", "postalCode": 32801, "postalCodeExtension": 1234 } }, "deliveryPickup": { "instructions": { "format": "TABS_NEWLINE", "text": "Example text" }, "deliveryPickupDate": 1384104000000, "telephoneNumbers": { "property1": { "countryCode": "string", "areaCode": 123, "localNumber": 4567890 }, "property2": { "countryCode": "string", "areaCode": 123, "localNumber": 4567890 } }, "address": { "address1": "123 Main St", "address2": "Suite 100", "address3": "Building 2", "city": "Orlando", "state": "FL", "country": "USA", "countryCode": "US", "postalCode": 32801, "postalCodeExtension": 1234 } }, "miscText": { "format": "TABS_NEWLINE", "text": "Example text" }, "taxes": [ { "description": { "format": "TABS_NEWLINE", "text": "Example text" }, "percent": 0.06, "taxableAmount": { "amount": 100, "currencyCode": "USD" }, "amount": { "amount": 100, "currencyCode": "USD" }, "taxTypeCode": "SALES" } ], "fees": [ { "amount": { "amount": 100, "currencyCode": "USD" }, "description": { "format": "TABS_NEWLINE", "text": "Example text" } } ], "deposits": [ { "accountNumber": 1234567890, "amount": { "amount": 100, "currencyCode": "USD" }, "balanceDue": { "amount": 100, "currencyCode": "USD" } } ], "tenderHistory": [ { "tenderType": "Cash", "tenderDate": 1384104000000, "amount": { "amount": 100, "currencyCode": "USD" }, "creditDebit": { "Name": "Jane Doe", "expirationDate": 1212, "typeCode": "Visa", "first6Digits": "XXXXXX", "last4Digits": 1234, "emvData": { "aid": "A0000000031010", "appLabel": "VI", "appPreferredName": "appPreferredName", "additionalAttributes": { "property1": "string", "property2": "string" } } } } ], "paymentSchedule": [ { "description": { "format": "TABS_NEWLINE", "text": "Example text" }, "amountDue": { "amount": 100, "currencyCode": "USD" }, "dueDate": 1384104000000 } ], "items": [ { "amount": { "amount": 100, "currencyCode": "USD" }, "brand": "MyBrand", "category": "Category", "customCategory1": "Custom Category 1", "customCategory2": "Custom Category 2", "description": { "format": "TABS_NEWLINE", "text": "Example text" }, "discounts": [ { "description": { "format": "TABS_NEWLINE", "text": "Example text" }, "amount": { "amount": 100, "currencyCode": "USD" } } ], "giftcard": { "accountNumber": 1234567890, "authNumber": 123456, "balance": { "amount": 100, "currencyCode": "USD" } }, "industry": "Retail", "itemTotal": { "amount": 100, "currencyCode": "USD" }, "manufacturer": "MyManufacturer", "miscInfo": { "format": "TABS_NEWLINE", "text": "Example text" }, "modelNumber": 123456, "name": "MyItem", "price": { "amount": 100, "currencyCode": "USD" }, "priceNotation": "N", "quantity": { "value": 1, "units": 1, "unitOfMeasureCode": "Each" }, "serialNumber": 1234567890, "sku": 123456, "supportingDocuments": { "property1": { "name": "Click for Warranty Information", "url": "http://www.example.com/warranty.pdf" }, "property2": { "name": "Click for Warranty Information", "url": "http://www.example.com/warranty.pdf" } }, "upc": 1234567890, "classCode": "classCode" } ] } ], "posRefId": 123456, "rawReceipt": "string", "receiptDate": 1234567890123, "receiptType": "DIGITAL", "referenceId": "12345678-1234-1234-1234-123456789012", "registerNumber": 20, "relatedTransaction": { "store": 123456, "register": 20, "transactionNumber": 123456, "reasonCode": "R555", "reason": "Detailed Reason Here" }, "returns": [ { "originalStoreNumber": 123456, "originalRegister": 20, "originalTransactionNumber": 123456, "miscText": { "format": "TABS_NEWLINE", "text": "Example text" }, "items": [ { "amount": { "amount": 100, "currencyCode": "USD" }, "brand": "MyBrand", "category": "Category", "customCategory1": "Custom Category 1", "customCategory2": "Custom Category 2", "description": { "format": "TABS_NEWLINE", "text": "Example text" }, "discounts": [ { "description": { "format": "TABS_NEWLINE", "text": "Example text" }, "amount": { "amount": 100, "currencyCode": "USD" } } ], "giftcard": { "accountNumber": 1234567890, "authNumber": 123456, "balance": { "amount": 100, "currencyCode": "USD" } }, "industry": "Retail", "itemTotal": { "amount": 100, "currencyCode": "USD" }, "manufacturer": "MyManufacturer", "miscInfo": { "format": "TABS_NEWLINE", "text": "Example text" }, "modelNumber": 123456, "name": "MyItem", "price": { "amount": 100, "currencyCode": "USD" }, "priceNotation": "N", "quantity": { "value": 1, "units": 1, "unitOfMeasureCode": "Each" }, "serialNumber": 1234567890, "sku": 123456, "supportingDocuments": { "property1": { "name": "Click for Warranty Information", "url": "http://www.example.com/warranty.pdf" }, "property2": { "name": "Click for Warranty Information", "url": "http://www.example.com/warranty.pdf" } }, "upc": 1234567890, "classCode": "classCode" } ] } ], "revision": { "date": 1384104000000, "number": 999 }, "serviceCharge": { "amount": 100, "currencyCode": "USD" }, "storeRefId": 123456, "supportingDocuments": { "property1": { "name": "Click for Warranty Information", "url": "http://www.example.com/warranty.pdf" }, "property2": { "name": "Click for Warranty Information", "url": "http://www.example.com/warranty.pdf" } }, "taxes": [ { "description": { "format": "TABS_NEWLINE", "text": "Example text" }, "percent": 0.06, "taxableAmount": { "amount": 100, "currencyCode": "USD" }, "amount": { "amount": 100, "currencyCode": "USD" }, "taxTypeCode": "SALES" } ], "tender": [ { "tenderType": "CreditCard", "amount": { "amount": 100, "currencyCode": "USD" }, "miscInfo": { "format": "TABS_NEWLINE", "text": "Example text" }, "authCode": 123456, "signature": { "imageUrl": "http://www.example.com/signature.png", "base64Image": "...base64binary...", "imageMimeType": "image/png", "text": { "format": "TABS_NEWLINE", "text": "Example text" }, "signedDate": 1384104000000 }, "creditDebit": { "Name": "Jane Doe", "expirationDate": 1212, "typeCode": "Visa", "first6Digits": "XXXXXX", "last4Digits": 1234, "emvData": { "aid": "A0000000031010", "appLabel": "VI", "appPreferredName": "appPreferredName", "additionalAttributes": { "property1": "string", "property2": "string" } } }, "giftcard": { "accountNumber": 1234567890, "authNumber": 123456, "balance": { "amount": 100, "currencyCode": "USD" } }, "supportingDocuments": { "property1": { "name": "Click for Warranty Information", "url": "http://www.example.com/warranty.pdf" }, "property2": { "name": "Click for Warranty Information", "url": "http://www.example.com/warranty.pdf" } }, "tenderDate": 1384104000000, "currency": "USD" } ], "tenderHistory": [ { "tenderType": "Cash", "tenderDate": 1384104000000, "amount": { "amount": 100, "currencyCode": "USD" }, "creditDebit": { "Name": "Jane Doe", "expirationDate": 1212, "typeCode": "Visa", "first6Digits": "XXXXXX", "last4Digits": 1234, "emvData": { "aid": "A0000000031010", "appLabel": "VI", "appPreferredName": "appPreferredName", "additionalAttributes": { "property1": "string", "property2": "string" } } } } ], "terms": [ { "description": { "format": "TABS_NEWLINE", "text": "Example text" }, "signature": { "imageUrl": "http://www.example.com/signature.png", "base64Image": "...base64binary...", "imageMimeType": "image/png", "text": { "format": "TABS_NEWLINE", "text": "Example text" }, "signedDate": 1384104000000 }, "supportingDocuments": { "property1": { "name": "Click for Warranty Information", "url": "http://www.example.com/warranty.pdf" }, "property2": { "name": "Click for Warranty Information", "url": "http://www.example.com/warranty.pdf" } } } ], "utcOffset": -5, "tip": { "amount": 100, "currencyCode": "USD" }, "totalSalesAmount": { "amount": 100, "currencyCode": "USD" }, "transactionCurrency": "USD", "transactionBalanceDue": { "amount": 100, "currencyCode": "USD" }, "transactionGrandAmount": { "amount": 100, "currencyCode": "USD" }, "transactionGrossAmount": { "amount": 100, "currencyCode": "USD" }, "loyaltyInformation": { "loyaltyNumber": 123456, "customerName": "Jane Doe", "expDate": 1384104000000, "misc": { "format": "TABS_NEWLINE", "text": "Example text" }, "balance": 100 }, "transactionNetAmount": { "amount": 100, "currencyCode": "USD" }, "transactionNumber": 123456, "transactionSignature": { "imageUrl": "http://www.example.com/signature.png", "base64Image": "...base64binary...", "imageMimeType": "image/png", "text": { "format": "TABS_NEWLINE", "text": "Example text" }, "signedDate": 1384104000000 }, "transactionTenderApplied": { "amount": 100, "currencyCode": "USD" }, "transactionType": "SaleTransaction", "paymentLink": "https://pay.example.com/link/abc123" } ``` Receipt V 1 ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |apiRequest|[ApiRequest](#schemaapirequest)|false|none|none| |associates|object|false|none|none| |» **additionalProperties**|[Operator](#schemaoperator)|false|none|none| |barcode|[Barcode](#schemabarcode)|false|none|none| |buyer|[Buyer](#schemabuyer)|false|none|none| |changeDue|[MonetaryAmount](#schemamonetaryamount)|false|none|none| |createDate|integer(utc-millisec)|false|none|none| |customerRefId|string|false|none|none| |deliveryPickupInfo|[DeliveryPickupInfo](#schemadeliverypickupinfo)|false|none|none| |deposit|[Deposit](#schemadeposit)|false|none|none| |discounts|[[Discount](#schemadiscount)]|false|none|none| |fees|[[Fee](#schemafee)]|false|none|none| |formattedTextAreas|object|false|none|none| |» **additionalProperties**|[FormattedText](#schemaformattedtext)|false|none|none| |id|string|false|none|none| |items|[[Item](#schemaitem)]|false|none|none| |language|string|false|none|none| |merchantRefId|string|false|none|none| |merchantTrackingPixelUrl|string|false|none|none| |mode|string|false|none|none| |orders|[[Order](#schemaorder)]|false|none|none| |posRefId|string|false|none|none| |rawReceipt|string|false|none|none| |receiptDate|integer(utc-millisec)|false|none|none| |receiptType|string|false|none|none| |referenceId|string|false|none|none| |registerNumber|string|false|none|none| |relatedTransaction|[TransactionReference](#schematransactionreference)|false|none|none| |returns|[[Return](#schemareturn)]|false|none|none| |revision|[Revision](#schemarevision)|false|none|none| |serviceCharge|[MonetaryAmount](#schemamonetaryamount)|false|none|none| |storeRefId|string|false|none|none| |supportingDocuments|object|false|none|none| |» **additionalProperties**|[SupportingDocument](#schemasupportingdocument)|false|none|none| |taxes|[[Tax](#schematax)]|false|none|none| |tender|[[Tender](#schematender)]|false|none|none| |tenderHistory|[[TenderHistory](#schematenderhistory)]|false|none|none| |terms|[[Term](#schematerm)]|false|none|none| |utcOffset|integer|false|none|none| |tip|[MonetaryAmount](#schemamonetaryamount)|false|none|none| |totalSalesAmount|[MonetaryAmount](#schemamonetaryamount)|false|none|none| |transactionCurrency|string|false|none|The currency code for the transaction| |transactionBalanceDue|[MonetaryAmount](#schemamonetaryamount)|false|none|none| |transactionGrandAmount|[MonetaryAmount](#schemamonetaryamount)|false|none|none| |transactionGrossAmount|[MonetaryAmount](#schemamonetaryamount)|false|none|none| |loyaltyInformation|[LoyaltyInformation](#schemaloyaltyinformation)|false|none|none| |transactionNetAmount|[MonetaryAmount](#schemamonetaryamount)|false|none|none| |transactionNumber|string|false|none|none| |transactionSignature|[Signature](#schemasignature)|false|none|none| |transactionTenderApplied|[MonetaryAmount](#schemamonetaryamount)|false|none|none| |transactionType|string|false|none|none| |paymentLink|string|false|none|The payment link URL. Present when transactionType is "PaymentLinkTransaction"| #### Enumerated Values |Property|Value| |---|---| |language|aa| |language|ab| |language|ae| |language|af| |language|ak| |language|am| |language|an| |language|ar| |language|as| |language|av| |language|ay| |language|az| |language|ba| |language|be| |language|bg| |language|bh| |language|bi| |language|bm| |language|bn| |language|bo| |language|br| |language|bs| |language|ca| |language|ce| |language|ch| |language|co| |language|cr| |language|cs| |language|cu| |language|cv| |language|cy| |language|da| |language|de| |language|dv| |language|dz| |language|ee| |language|el| |language|en| |language|eo| |language|es| |language|et| |language|eu| |language|fa| |language|ff| |language|fi| |language|fj| |language|fo| |language|fr| |language|fy| |language|ga| |language|gd| |language|gl| |language|gn| |language|gu| |language|gv| |language|ha| |language|he| |language|hi| |language|ho| |language|hr| |language|ht| |language|hu| |language|hy| |language|hz| |language|ia| |language|id| |language|ie| |language|ig| |language|ii| |language|ik| |language|io| |language|is| |language|it| |language|iu| |language|ja| |language|jv| |language|ka| |language|kg| |language|ki| |language|kj| |language|kk| |language|kl| |language|km| |language|kn| |language|ko| |language|kr| |language|ks| |language|ku| |language|kv| |language|kw| |language|ky| |language|la| |language|lb| |language|lg| |language|li| |language|ln| |language|lo| |language|lt| |language|lu| |language|lv| |language|mg| |language|mh| |language|mi| |language|mk| |language|ml| |language|mn| |language|mr| |language|ms| |language|mt| |language|my| |language|na| |language|nb| |language|nd| |language|ne| |language|ng| |language|nl| |language|nn| |language|no| |language|nr| |language|nv| |language|ny| |language|oc| |language|oj| |language|om| |language|or| |language|os| |language|pa| |language|pi| |language|pl| |language|ps| |language|pt| |language|qu| |language|rm| |language|rn| |language|ro| |language|ru| |language|rw| |language|sa| |language|sc| |language|sd| |language|se| |language|sg| |language|si| |language|sk| |language|sl| |language|sm| |language|sn| |language|so| |language|sq| |language|sr| |language|ss| |language|st| |language|su| |language|sv| |language|sw| |language|ta| |language|te| |language|tg| |language|th| |language|ti| |language|tk| |language|tl| |language|tn| |language|to| |language|tr| |language|ts| |language|tt| |language|tw| |language|ty| |language|ug| |language|uk| |language|ur| |language|uz| |language|ve| |language|vi| |language|vo| |language|wa| |language|wo| |language|xh| |language|yi| |language|yo| |language|za| |language|zh| |language|zu| |mode|Production| |mode|Test| |mode|Training| |receiptType|DIGITAL| |receiptType|PAPER| |receiptType|DIGITAL_PAPER| |receiptType|EMAIL| |receiptType|NO_RECEIPT| |transactionCurrency|OMR| |transactionCurrency|BBD| |transactionCurrency|PLN| |transactionCurrency|SRG| |transactionCurrency|SVC| |transactionCurrency|ECV| |transactionCurrency|BMD| |transactionCurrency|TJS| |transactionCurrency|TND| |transactionCurrency|GNF| |transactionCurrency|TMM| |transactionCurrency|XBB| |transactionCurrency|PKR| |transactionCurrency|FKP| |transactionCurrency|MUR| |transactionCurrency|XAF| |transactionCurrency|SAR| |transactionCurrency|CAD| |transactionCurrency|HKD| |transactionCurrency|PYG| |transactionCurrency|AUD| |transactionCurrency|AMD| |transactionCurrency|YER| |transactionCurrency|AFA| |transactionCurrency|MMK| |transactionCurrency|SEK| |transactionCurrency|XBC| |transactionCurrency|XFO| |transactionCurrency|KES| |transactionCurrency|GEL| |transactionCurrency|GTQ| |transactionCurrency|TZS| |transactionCurrency|CUP| |transactionCurrency|ALL| |transactionCurrency|ERN| |transactionCurrency|BRL| |transactionCurrency|USS| |transactionCurrency|UGX| |transactionCurrency|CYP| |transactionCurrency|GIP| |transactionCurrency|KRW| |transactionCurrency|JOD| |transactionCurrency|IQD| |transactionCurrency|VUV| |transactionCurrency|UZS| |transactionCurrency|BOV| |transactionCurrency|DEM| |transactionCurrency|IEP| |transactionCurrency|UAH| |transactionCurrency|LVL| |transactionCurrency|ZWD| |transactionCurrency|PEN| |transactionCurrency|KMF| |transactionCurrency|DOP| |transactionCurrency|BDT| |transactionCurrency|LKR| |transactionCurrency|FJD| |transactionCurrency|LSL| |transactionCurrency|ATS| |transactionCurrency|BSD| |transactionCurrency|GRD| |transactionCurrency|XTS| |transactionCurrency|SHP| |transactionCurrency|LRD| |transactionCurrency|LTL| |transactionCurrency|QAR| |transactionCurrency|MZM| |transactionCurrency|BND| |transactionCurrency|VEB| |transactionCurrency|CDF| |transactionCurrency|STD| |transactionCurrency|USN| |transactionCurrency|SZL| |transactionCurrency|CZK| |transactionCurrency|TRL| |transactionCurrency|ECS| |transactionCurrency|BGN| |transactionCurrency|JMD| |transactionCurrency|UYU| |transactionCurrency|NPR| |transactionCurrency|EGP| |transactionCurrency|CLP| |transactionCurrency|XPD| |transactionCurrency|MOP| |transactionCurrency|SCR| |transactionCurrency|HTG| |transactionCurrency|VND| |transactionCurrency|LAK| |transactionCurrency|BTN| |transactionCurrency|GBP| |transactionCurrency|TWD| |transactionCurrency|DZD| |transactionCurrency|RUR| |transactionCurrency|MXN| |transactionCurrency|YUM| |transactionCurrency|XDR| |transactionCurrency|AWG| |transactionCurrency|AZM| |transactionCurrency|THB| |transactionCurrency|ISK| |transactionCurrency|ITL| |transactionCurrency|LBP| |transactionCurrency|SGD| |transactionCurrency|MWK| |transactionCurrency|WST| |transactionCurrency|DJF| |transactionCurrency|KZT| |transactionCurrency|CRC| |transactionCurrency|LYD| |transactionCurrency|NGN| |transactionCurrency|BIF| |transactionCurrency|CHF| |transactionCurrency|RWF| |transactionCurrency|AED| |transactionCurrency|INR| |transactionCurrency|CLF| |transactionCurrency|ESP| |transactionCurrency|SIT| |transactionCurrency|ADP| |transactionCurrency|XOF| |transactionCurrency|MRO| |transactionCurrency|EEK| |transactionCurrency|MXV| |transactionCurrency|PTE| |transactionCurrency|PGK| |transactionCurrency|CNY| |transactionCurrency|PHP| |transactionCurrency|MDL| |transactionCurrency|SYP| |transactionCurrency|KHR| |transactionCurrency|XPT| |transactionCurrency|GWP| |transactionCurrency|COP| |transactionCurrency|DKK| |transactionCurrency|KYD| |transactionCurrency|XPF| |transactionCurrency|GMD| |transactionCurrency|XFU| |transactionCurrency|MVR| |transactionCurrency|TTD| |transactionCurrency|PAB| |transactionCurrency|XAU| |transactionCurrency|GHC| |transactionCurrency|XAG| |transactionCurrency|SKK| |transactionCurrency|JPY| |transactionCurrency|ROL| |transactionCurrency|BEF| |transactionCurrency|TOP| |transactionCurrency|BWP| |transactionCurrency|MKD| |transactionCurrency|ARS| |transactionCurrency|FIM| |transactionCurrency|HUF| |transactionCurrency|TPE| |transactionCurrency|MYR| |transactionCurrency|USD| |transactionCurrency|SLL| |transactionCurrency|MGF| |transactionCurrency|MAD| |transactionCurrency|RUB| |transactionCurrency|MNT| |transactionCurrency|BOB| |transactionCurrency|GYD| |transactionCurrency|SBD| |transactionCurrency|XBA| |transactionCurrency|BHD| |transactionCurrency|LUF| |transactionCurrency|HNL| |transactionCurrency|XCD| |transactionCurrency|NZD| |transactionCurrency|KGS| |transactionCurrency|AOA| |transactionCurrency|BZD| |transactionCurrency|IDR| |transactionCurrency|SOS| |transactionCurrency|NIO| |transactionCurrency|BYR| |transactionCurrency|ANG| |transactionCurrency|NLG| |transactionCurrency|SDD| |transactionCurrency|FRF| |transactionCurrency|ILS| |transactionCurrency|NOK| |transactionCurrency|KWD| |transactionCurrency|NAD| |transactionCurrency|ETB| |transactionCurrency|MTL| |transactionCurrency|KPW| |transactionCurrency|BGL| |transactionCurrency|EUR| |transactionCurrency|CVE| |transactionCurrency|ZAR| |transactionCurrency|IRR| |transactionCurrency|ZMK| |transactionCurrency|HRK| |transactionCurrency|BAM|

ApiRequest

```json { "apiVersion": 1, "data": null } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |apiVersion|string|false|none|The version of the API that was used to create the request| |data|any|false|none|none|

Operator

```json { "name": "string", "idNumber": "string", "operatorType": "Cashier" } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |name|string|false|none|none| |idNumber|string|false|none|none| |operatorType|string|false|none|none| #### Enumerated Values |Property|Value| |---|---| |operatorType|Cashier| |operatorType|Checker| |operatorType|Manager| |operatorType|OrderTaker| |operatorType|Server| |operatorType|Supervisor| |operatorType|Expediter| |operatorType|Bartender|

Barcode

```json { "type": "Code128", "number": 1234567890 } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |type|[BarcodeType](#schemabarcodetype)|false|none|The type of barcode to print on the bottom of the receipt.| |number|string|false|none|The number used to generate the receipt barcode. This is not the transaction number. This must be compatible with the barcodeType.|

BarcodeType

```json "Code128" ``` The type of barcode to print ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |*anonymous*|string|false|none|The type of barcode to print| #### Enumerated Values |Property|Value| |---|---| |*anonymous*|GTIN| |*anonymous*|EAN-128| |*anonymous*|Code39| |*anonymous*|Code128| |*anonymous*|QRCode|

Buyer

```json { "name": "Jane Doe", "customerNumber": 123456, "telephoneNumbers": { "property1": { "countryCode": "string", "areaCode": 123, "localNumber": 4567890 }, "property2": { "countryCode": "string", "areaCode": 123, "localNumber": 4567890 } }, "address": { "address1": "123 Main St", "address2": "Suite 100", "address3": "Building 2", "city": "Orlando", "state": "FL", "country": "USA", "countryCode": "US", "postalCode": 32801, "postalCodeExtension": 1234 } } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |name|string|false|none|The name of the buyer| |customerNumber|string|false|none|The customer number| |telephoneNumbers|object|false|none|none| |» **additionalProperties**|[TelephoneNumber](#schematelephonenumber)|false|none|none| |address|[Address](#schemaaddress)|false|none|none|

TelephoneNumber

```json { "countryCode": "string", "areaCode": 123, "localNumber": 4567890 } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |countryCode|string|false|none|none| |areaCode|string|false|none|none| |localNumber|string|false|none|none|

Address

```json { "address1": "123 Main St", "address2": "Suite 100", "address3": "Building 2", "city": "Orlando", "state": "FL", "country": "USA", "countryCode": "US", "postalCode": 32801, "postalCodeExtension": 1234 } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |address1|string|false|none|none| |address2|string|false|none|none| |address3|string|false|none|none| |city|string|false|none|none| |state|string|false|none|none| |country|string|false|none|none| |countryCode|string|false|none|none| |postalCode|string|false|none|none| |postalCodeExtension|string|false|none|none|

MonetaryAmount

```json { "amount": 100, "currencyCode": "USD" } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |amount|number|false|none|none| |currencyCode|string|false|none|The currency code for the transaction| #### Enumerated Values |Property|Value| |---|---| |currencyCode|OMR| |currencyCode|BBD| |currencyCode|PLN| |currencyCode|SRG| |currencyCode|SVC| |currencyCode|ECV| |currencyCode|BMD| |currencyCode|TJS| |currencyCode|TND| |currencyCode|GNF| |currencyCode|TMM| |currencyCode|XBB| |currencyCode|PKR| |currencyCode|FKP| |currencyCode|MUR| |currencyCode|XAF| |currencyCode|SAR| |currencyCode|CAD| |currencyCode|HKD| |currencyCode|PYG| |currencyCode|AUD| |currencyCode|AMD| |currencyCode|YER| |currencyCode|AFA| |currencyCode|MMK| |currencyCode|SEK| |currencyCode|XBC| |currencyCode|XFO| |currencyCode|KES| |currencyCode|GEL| |currencyCode|GTQ| |currencyCode|TZS| |currencyCode|CUP| |currencyCode|ALL| |currencyCode|ERN| |currencyCode|BRL| |currencyCode|USS| |currencyCode|UGX| |currencyCode|CYP| |currencyCode|GIP| |currencyCode|KRW| |currencyCode|JOD| |currencyCode|IQD| |currencyCode|VUV| |currencyCode|UZS| |currencyCode|BOV| |currencyCode|DEM| |currencyCode|IEP| |currencyCode|UAH| |currencyCode|LVL| |currencyCode|ZWD| |currencyCode|PEN| |currencyCode|KMF| |currencyCode|DOP| |currencyCode|BDT| |currencyCode|LKR| |currencyCode|FJD| |currencyCode|LSL| |currencyCode|ATS| |currencyCode|BSD| |currencyCode|GRD| |currencyCode|XTS| |currencyCode|SHP| |currencyCode|LRD| |currencyCode|LTL| |currencyCode|QAR| |currencyCode|MZM| |currencyCode|BND| |currencyCode|VEB| |currencyCode|CDF| |currencyCode|STD| |currencyCode|USN| |currencyCode|SZL| |currencyCode|CZK| |currencyCode|TRL| |currencyCode|ECS| |currencyCode|BGN| |currencyCode|JMD| |currencyCode|UYU| |currencyCode|NPR| |currencyCode|EGP| |currencyCode|CLP| |currencyCode|XPD| |currencyCode|MOP| |currencyCode|SCR| |currencyCode|HTG| |currencyCode|VND| |currencyCode|LAK| |currencyCode|BTN| |currencyCode|GBP| |currencyCode|TWD| |currencyCode|DZD| |currencyCode|RUR| |currencyCode|MXN| |currencyCode|YUM| |currencyCode|XDR| |currencyCode|AWG| |currencyCode|AZM| |currencyCode|THB| |currencyCode|ISK| |currencyCode|ITL| |currencyCode|LBP| |currencyCode|SGD| |currencyCode|MWK| |currencyCode|WST| |currencyCode|DJF| |currencyCode|KZT| |currencyCode|CRC| |currencyCode|LYD| |currencyCode|NGN| |currencyCode|BIF| |currencyCode|CHF| |currencyCode|RWF| |currencyCode|AED| |currencyCode|INR| |currencyCode|CLF| |currencyCode|ESP| |currencyCode|SIT| |currencyCode|ADP| |currencyCode|XOF| |currencyCode|MRO| |currencyCode|EEK| |currencyCode|MXV| |currencyCode|PTE| |currencyCode|PGK| |currencyCode|CNY| |currencyCode|PHP| |currencyCode|MDL| |currencyCode|SYP| |currencyCode|KHR| |currencyCode|XPT| |currencyCode|GWP| |currencyCode|COP| |currencyCode|DKK| |currencyCode|KYD| |currencyCode|XPF| |currencyCode|GMD| |currencyCode|XFU| |currencyCode|MVR| |currencyCode|TTD| |currencyCode|PAB| |currencyCode|XAU| |currencyCode|GHC| |currencyCode|XAG| |currencyCode|SKK| |currencyCode|JPY| |currencyCode|ROL| |currencyCode|BEF| |currencyCode|TOP| |currencyCode|BWP| |currencyCode|MKD| |currencyCode|ARS| |currencyCode|FIM| |currencyCode|HUF| |currencyCode|TPE| |currencyCode|MYR| |currencyCode|USD| |currencyCode|SLL| |currencyCode|MGF| |currencyCode|MAD| |currencyCode|RUB| |currencyCode|MNT| |currencyCode|BOB| |currencyCode|GYD| |currencyCode|SBD| |currencyCode|XBA| |currencyCode|BHD| |currencyCode|LUF| |currencyCode|HNL| |currencyCode|XCD| |currencyCode|NZD| |currencyCode|KGS| |currencyCode|AOA| |currencyCode|BZD| |currencyCode|IDR| |currencyCode|SOS| |currencyCode|NIO| |currencyCode|BYR| |currencyCode|ANG| |currencyCode|NLG| |currencyCode|SDD| |currencyCode|FRF| |currencyCode|ILS| |currencyCode|NOK| |currencyCode|KWD| |currencyCode|NAD| |currencyCode|ETB| |currencyCode|MTL| |currencyCode|KPW| |currencyCode|BGL| |currencyCode|EUR| |currencyCode|CVE| |currencyCode|ZAR| |currencyCode|IRR| |currencyCode|ZMK| |currencyCode|HRK| |currencyCode|BAM|

DeliveryPickupInfo

```json { "instructions": { "format": "TABS_NEWLINE", "text": "Example text" }, "deliveryPickupDate": 1384104000000, "telephoneNumbers": { "property1": { "countryCode": "string", "areaCode": 123, "localNumber": 4567890 }, "property2": { "countryCode": "string", "areaCode": 123, "localNumber": 4567890 } }, "address": { "address1": "123 Main St", "address2": "Suite 100", "address3": "Building 2", "city": "Orlando", "state": "FL", "country": "USA", "countryCode": "US", "postalCode": 32801, "postalCodeExtension": 1234 } } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |instructions|[FormattedText](#schemaformattedtext)|false|none|none| |deliveryPickupDate|integer(utc-millisec)|false|none|none| |telephoneNumbers|object|false|none|none| |» **additionalProperties**|[TelephoneNumber](#schematelephonenumber)|false|none|none| |address|[Address](#schemaaddress)|false|none|none|

FormattedText

```json { "format": "TABS_NEWLINE", "text": "Example text" } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |format|string|false|none|none| |text|string|false|none|none| #### Enumerated Values |Property|Value| |---|---| |format|TABS_NEWLINE| |format|MARKDOWN| |format|NONE|

Deposit

```json { "accountNumber": 1234567890, "amount": { "amount": 100, "currencyCode": "USD" }, "balanceDue": { "amount": 100, "currencyCode": "USD" } } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |accountNumber|string|false|none|none| |amount|[MonetaryAmount](#schemamonetaryamount)|false|none|none| |balanceDue|[MonetaryAmount](#schemamonetaryamount)|false|none|none|

Discount

```json { "description": { "format": "TABS_NEWLINE", "text": "Example text" }, "amount": { "amount": 100, "currencyCode": "USD" } } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |description|[FormattedText](#schemaformattedtext)|false|none|none| |amount|[MonetaryAmount](#schemamonetaryamount)|false|none|none|

Fee

```json { "amount": { "amount": 100, "currencyCode": "USD" }, "description": { "format": "TABS_NEWLINE", "text": "Example text" } } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |amount|[MonetaryAmount](#schemamonetaryamount)|false|none|none| |description|[FormattedText](#schemaformattedtext)|false|none|none|

Item

```json { "amount": { "amount": 100, "currencyCode": "USD" }, "brand": "MyBrand", "category": "Category", "customCategory1": "Custom Category 1", "customCategory2": "Custom Category 2", "description": { "format": "TABS_NEWLINE", "text": "Example text" }, "discounts": [ { "description": { "format": "TABS_NEWLINE", "text": "Example text" }, "amount": { "amount": 100, "currencyCode": "USD" } } ], "giftcard": { "accountNumber": 1234567890, "authNumber": 123456, "balance": { "amount": 100, "currencyCode": "USD" } }, "industry": "Retail", "itemTotal": { "amount": 100, "currencyCode": "USD" }, "manufacturer": "MyManufacturer", "miscInfo": { "format": "TABS_NEWLINE", "text": "Example text" }, "modelNumber": 123456, "name": "MyItem", "price": { "amount": 100, "currencyCode": "USD" }, "priceNotation": "N", "quantity": { "value": 1, "units": 1, "unitOfMeasureCode": "Each" }, "serialNumber": 1234567890, "sku": 123456, "supportingDocuments": { "property1": { "name": "Click for Warranty Information", "url": "http://www.example.com/warranty.pdf" }, "property2": { "name": "Click for Warranty Information", "url": "http://www.example.com/warranty.pdf" } }, "upc": 1234567890, "classCode": "classCode" } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |amount|[MonetaryAmount](#schemamonetaryamount)|false|none|none| |brand|string|false|none|none| |category|string|false|none|none| |customCategory1|string|false|none|none| |customCategory2|string|false|none|none| |description|[FormattedText](#schemaformattedtext)|false|none|none| |discounts|[[Discount](#schemadiscount)]|false|none|none| |giftcard|[Giftcard](#schemagiftcard)|false|none|none| |industry|string|false|none|The industry of the item| |itemTotal|[MonetaryAmount](#schemamonetaryamount)|false|none|none| |manufacturer|string|false|none|none| |miscInfo|[FormattedText](#schemaformattedtext)|false|none|none| |modelNumber|string|false|none|none| |name|string|false|none|none| |price|[MonetaryAmount](#schemamonetaryamount)|false|none|none| |priceNotation|string|false|none|Use the priceNotation element for any codes added to the final price on the printed receipt (e.g., “N” for non-taxable)| |quantity|[Quantity](#schemaquantity)|false|none|none| |serialNumber|string|false|none|none| |sku|string|false|none|none| |supportingDocuments|object|false|none|none| |» **additionalProperties**|[SupportingDocument](#schemasupportingdocument)|false|none|none| |upc|string|false|none|none| |classCode|string|false|none|none|

Giftcard

```json { "accountNumber": 1234567890, "authNumber": 123456, "balance": { "amount": 100, "currencyCode": "USD" } } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |accountNumber|string|false|none|The account number of the gift card| |authNumber|string|false|none|The authorization number of the gift card| |balance|[MonetaryAmount](#schemamonetaryamount)|false|none|none|

Quantity

```json { "value": 1, "units": 1, "unitOfMeasureCode": "Each" } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |value|number|false|none|none| |units|number|false|none|none| |unitOfMeasureCode|string|false|none|none|

SupportingDocument

```json { "name": "Click for Warranty Information", "url": "http://www.example.com/warranty.pdf" } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |name|string|false|none|none| |url|string|false|none|none|

Order

```json { "orderNumber": 123456, "orderAction": "Return", "barcode": { "type": "Code128", "number": 1234567890 }, "totalAmount": { "amount": 100, "currencyCode": "USD" }, "description": { "format": "TABS_NEWLINE", "text": "Example text" }, "buyer": { "name": "Jane Doe", "customerNumber": 123456, "telephoneNumbers": { "property1": { "countryCode": "string", "areaCode": 123, "localNumber": 4567890 }, "property2": { "countryCode": "string", "areaCode": 123, "localNumber": 4567890 } }, "address": { "address1": "123 Main St", "address2": "Suite 100", "address3": "Building 2", "city": "Orlando", "state": "FL", "country": "USA", "countryCode": "US", "postalCode": 32801, "postalCodeExtension": 1234 } }, "deliveryPickup": { "instructions": { "format": "TABS_NEWLINE", "text": "Example text" }, "deliveryPickupDate": 1384104000000, "telephoneNumbers": { "property1": { "countryCode": "string", "areaCode": 123, "localNumber": 4567890 }, "property2": { "countryCode": "string", "areaCode": 123, "localNumber": 4567890 } }, "address": { "address1": "123 Main St", "address2": "Suite 100", "address3": "Building 2", "city": "Orlando", "state": "FL", "country": "USA", "countryCode": "US", "postalCode": 32801, "postalCodeExtension": 1234 } }, "miscText": { "format": "TABS_NEWLINE", "text": "Example text" }, "taxes": [ { "description": { "format": "TABS_NEWLINE", "text": "Example text" }, "percent": 0.06, "taxableAmount": { "amount": 100, "currencyCode": "USD" }, "amount": { "amount": 100, "currencyCode": "USD" }, "taxTypeCode": "SALES" } ], "fees": [ { "amount": { "amount": 100, "currencyCode": "USD" }, "description": { "format": "TABS_NEWLINE", "text": "Example text" } } ], "deposits": [ { "accountNumber": 1234567890, "amount": { "amount": 100, "currencyCode": "USD" }, "balanceDue": { "amount": 100, "currencyCode": "USD" } } ], "tenderHistory": [ { "tenderType": "Cash", "tenderDate": 1384104000000, "amount": { "amount": 100, "currencyCode": "USD" }, "creditDebit": { "Name": "Jane Doe", "expirationDate": 1212, "typeCode": "Visa", "first6Digits": "XXXXXX", "last4Digits": 1234, "emvData": { "aid": "A0000000031010", "appLabel": "VI", "appPreferredName": "appPreferredName", "additionalAttributes": { "property1": "string", "property2": "string" } } } } ], "paymentSchedule": [ { "description": { "format": "TABS_NEWLINE", "text": "Example text" }, "amountDue": { "amount": 100, "currencyCode": "USD" }, "dueDate": 1384104000000 } ], "items": [ { "amount": { "amount": 100, "currencyCode": "USD" }, "brand": "MyBrand", "category": "Category", "customCategory1": "Custom Category 1", "customCategory2": "Custom Category 2", "description": { "format": "TABS_NEWLINE", "text": "Example text" }, "discounts": [ { "description": { "format": "TABS_NEWLINE", "text": "Example text" }, "amount": { "amount": 100, "currencyCode": "USD" } } ], "giftcard": { "accountNumber": 1234567890, "authNumber": 123456, "balance": { "amount": 100, "currencyCode": "USD" } }, "industry": "Retail", "itemTotal": { "amount": 100, "currencyCode": "USD" }, "manufacturer": "MyManufacturer", "miscInfo": { "format": "TABS_NEWLINE", "text": "Example text" }, "modelNumber": 123456, "name": "MyItem", "price": { "amount": 100, "currencyCode": "USD" }, "priceNotation": "N", "quantity": { "value": 1, "units": 1, "unitOfMeasureCode": "Each" }, "serialNumber": 1234567890, "sku": 123456, "supportingDocuments": { "property1": { "name": "Click for Warranty Information", "url": "http://www.example.com/warranty.pdf" }, "property2": { "name": "Click for Warranty Information", "url": "http://www.example.com/warranty.pdf" } }, "upc": 1234567890, "classCode": "classCode" } ] } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |orderNumber|string|false|none|none| |orderAction|string|false|none|none| |barcode|[Barcode](#schemabarcode)|false|none|none| |totalAmount|[MonetaryAmount](#schemamonetaryamount)|false|none|none| |description|[FormattedText](#schemaformattedtext)|false|none|none| |buyer|[Buyer](#schemabuyer)|false|none|none| |deliveryPickup|[DeliveryPickupInfo](#schemadeliverypickupinfo)|false|none|none| |miscText|[FormattedText](#schemaformattedtext)|false|none|none| |taxes|[[Tax](#schematax)]|false|none|none| |fees|[[Fee](#schemafee)]|false|none|none| |deposits|[[Deposit](#schemadeposit)]|false|none|none| |tenderHistory|[[TenderHistory](#schematenderhistory)]|false|none|none| |paymentSchedule|[[PaymentSchedule](#schemapaymentschedule)]|false|none|none| |items|[[Item](#schemaitem)]|false|none|none| #### Enumerated Values |Property|Value| |---|---| |orderAction|Return| |orderAction|Other| |orderAction|Modify| |orderAction|Shipment| |orderAction|Payment| |orderAction|Create| |orderAction|Notify| |orderAction|Pickup| |orderAction|Cancel|

Tax

```json { "description": { "format": "TABS_NEWLINE", "text": "Example text" }, "percent": 0.06, "taxableAmount": { "amount": 100, "currencyCode": "USD" }, "amount": { "amount": 100, "currencyCode": "USD" }, "taxTypeCode": "SALES" } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |description|[FormattedText](#schemaformattedtext)|false|none|none| |percent|number|false|none|none| |taxableAmount|[MonetaryAmount](#schemamonetaryamount)|false|none|none| |amount|[MonetaryAmount](#schemamonetaryamount)|false|none|none| |taxTypeCode|string|false|none|none| #### Enumerated Values |Property|Value| |---|---| |taxTypeCode|SALES| |taxTypeCode|VAT| |taxTypeCode|GST| |taxTypeCode|PST| |taxTypeCode|HST| |taxTypeCode|EXCISE| |taxTypeCode|USE_TAX|

TenderHistory

```json { "tenderType": "Cash", "tenderDate": 1384104000000, "amount": { "amount": 100, "currencyCode": "USD" }, "creditDebit": { "Name": "Jane Doe", "expirationDate": 1212, "typeCode": "Visa", "first6Digits": "XXXXXX", "last4Digits": 1234, "emvData": { "aid": "A0000000031010", "appLabel": "VI", "appPreferredName": "appPreferredName", "additionalAttributes": { "property1": "string", "property2": "string" } } } } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |tenderType|string|false|none|none| |tenderDate|integer(utc-millisec)|false|none|none| |amount|[MonetaryAmount](#schemamonetaryamount)|false|none|none| |creditDebit|[CreditDebit](#schemacreditdebit)|false|none|none|

CreditDebit

```json { "Name": "Jane Doe", "expirationDate": 1212, "typeCode": "Visa", "first6Digits": "XXXXXX", "last4Digits": 1234, "emvData": { "aid": "A0000000031010", "appLabel": "VI", "appPreferredName": "appPreferredName", "additionalAttributes": { "property1": "string", "property2": "string" } } } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |Name|string|false|none|The name of the cardholder| |expirationDate|string|false|none|Expiration date of the card in YYMM format| |typeCode|string|false|none|The type of card| |first6Digits|string|false|none|The first 6 digits of the card number| |last4Digits|string|false|none|The last 4 digits of the card number| |emvData|[EmvData](#schemaemvdata)|false|none|none|

EmvData

```json { "aid": "A0000000031010", "appLabel": "VI", "appPreferredName": "appPreferredName", "additionalAttributes": { "property1": "string", "property2": "string" } } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |aid|string|false|none|none| |appLabel|string|false|none|none| |appPreferredName|string|false|none|none| |additionalAttributes|object|false|none|none| |» **additionalProperties**|string|false|none|none|

PaymentSchedule

```json { "description": { "format": "TABS_NEWLINE", "text": "Example text" }, "amountDue": { "amount": 100, "currencyCode": "USD" }, "dueDate": 1384104000000 } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |description|[FormattedText](#schemaformattedtext)|false|none|none| |amountDue|[MonetaryAmount](#schemamonetaryamount)|false|none|none| |dueDate|integer(utc-millisec)|false|none|none|

TransactionReference

```json { "store": 123456, "register": 20, "transactionNumber": 123456, "reasonCode": "R555", "reason": "Detailed Reason Here" } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |store|string|false|none|none| |register|string|false|none|none| |transactionNumber|string|false|none|none| |reasonCode|string|false|none|none| |reason|string|false|none|none|

Return

```json { "originalStoreNumber": 123456, "originalRegister": 20, "originalTransactionNumber": 123456, "miscText": { "format": "TABS_NEWLINE", "text": "Example text" }, "items": [ { "amount": { "amount": 100, "currencyCode": "USD" }, "brand": "MyBrand", "category": "Category", "customCategory1": "Custom Category 1", "customCategory2": "Custom Category 2", "description": { "format": "TABS_NEWLINE", "text": "Example text" }, "discounts": [ { "description": { "format": "TABS_NEWLINE", "text": "Example text" }, "amount": { "amount": 100, "currencyCode": "USD" } } ], "giftcard": { "accountNumber": 1234567890, "authNumber": 123456, "balance": { "amount": 100, "currencyCode": "USD" } }, "industry": "Retail", "itemTotal": { "amount": 100, "currencyCode": "USD" }, "manufacturer": "MyManufacturer", "miscInfo": { "format": "TABS_NEWLINE", "text": "Example text" }, "modelNumber": 123456, "name": "MyItem", "price": { "amount": 100, "currencyCode": "USD" }, "priceNotation": "N", "quantity": { "value": 1, "units": 1, "unitOfMeasureCode": "Each" }, "serialNumber": 1234567890, "sku": 123456, "supportingDocuments": { "property1": { "name": "Click for Warranty Information", "url": "http://www.example.com/warranty.pdf" }, "property2": { "name": "Click for Warranty Information", "url": "http://www.example.com/warranty.pdf" } }, "upc": 1234567890, "classCode": "classCode" } ] } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |originalStoreNumber|string|false|none|none| |originalRegister|string|false|none|none| |originalTransactionNumber|string|false|none|none| |miscText|[FormattedText](#schemaformattedtext)|false|none|none| |items|[[Item](#schemaitem)]|false|none|none|

Revision

```json { "date": 1384104000000, "number": 999 } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |date|integer(utc-millisec)|false|none|none| |number|string|false|none|none|

Tender

```json { "tenderType": "CreditCard", "amount": { "amount": 100, "currencyCode": "USD" }, "miscInfo": { "format": "TABS_NEWLINE", "text": "Example text" }, "authCode": 123456, "signature": { "imageUrl": "http://www.example.com/signature.png", "base64Image": "...base64binary...", "imageMimeType": "image/png", "text": { "format": "TABS_NEWLINE", "text": "Example text" }, "signedDate": 1384104000000 }, "creditDebit": { "Name": "Jane Doe", "expirationDate": 1212, "typeCode": "Visa", "first6Digits": "XXXXXX", "last4Digits": 1234, "emvData": { "aid": "A0000000031010", "appLabel": "VI", "appPreferredName": "appPreferredName", "additionalAttributes": { "property1": "string", "property2": "string" } } }, "giftcard": { "accountNumber": 1234567890, "authNumber": 123456, "balance": { "amount": 100, "currencyCode": "USD" } }, "supportingDocuments": { "property1": { "name": "Click for Warranty Information", "url": "http://www.example.com/warranty.pdf" }, "property2": { "name": "Click for Warranty Information", "url": "http://www.example.com/warranty.pdf" } }, "tenderDate": 1384104000000, "currency": "USD" } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |tenderType|string|false|none|none| |amount|[MonetaryAmount](#schemamonetaryamount)|false|none|none| |miscInfo|[FormattedText](#schemaformattedtext)|false|none|none| |authCode|string|false|none|none| |signature|[Signature](#schemasignature)|false|none|none| |creditDebit|[CreditDebit](#schemacreditdebit)|false|none|none| |giftcard|[Giftcard](#schemagiftcard)|false|none|none| |supportingDocuments|object|false|none|none| |» **additionalProperties**|[SupportingDocument](#schemasupportingdocument)|false|none|none| |tenderDate|integer(utc-millisec)|false|none|none| |currency|string|false|none|The currency code for the transaction| #### Enumerated Values |Property|Value| |---|---| |currency|OMR| |currency|BBD| |currency|PLN| |currency|SRG| |currency|SVC| |currency|ECV| |currency|BMD| |currency|TJS| |currency|TND| |currency|GNF| |currency|TMM| |currency|XBB| |currency|PKR| |currency|FKP| |currency|MUR| |currency|XAF| |currency|SAR| |currency|CAD| |currency|HKD| |currency|PYG| |currency|AUD| |currency|AMD| |currency|YER| |currency|AFA| |currency|MMK| |currency|SEK| |currency|XBC| |currency|XFO| |currency|KES| |currency|GEL| |currency|GTQ| |currency|TZS| |currency|CUP| |currency|ALL| |currency|ERN| |currency|BRL| |currency|USS| |currency|UGX| |currency|CYP| |currency|GIP| |currency|KRW| |currency|JOD| |currency|IQD| |currency|VUV| |currency|UZS| |currency|BOV| |currency|DEM| |currency|IEP| |currency|UAH| |currency|LVL| |currency|ZWD| |currency|PEN| |currency|KMF| |currency|DOP| |currency|BDT| |currency|LKR| |currency|FJD| |currency|LSL| |currency|ATS| |currency|BSD| |currency|GRD| |currency|XTS| |currency|SHP| |currency|LRD| |currency|LTL| |currency|QAR| |currency|MZM| |currency|BND| |currency|VEB| |currency|CDF| |currency|STD| |currency|USN| |currency|SZL| |currency|CZK| |currency|TRL| |currency|ECS| |currency|BGN| |currency|JMD| |currency|UYU| |currency|NPR| |currency|EGP| |currency|CLP| |currency|XPD| |currency|MOP| |currency|SCR| |currency|HTG| |currency|VND| |currency|LAK| |currency|BTN| |currency|GBP| |currency|TWD| |currency|DZD| |currency|RUR| |currency|MXN| |currency|YUM| |currency|XDR| |currency|AWG| |currency|AZM| |currency|THB| |currency|ISK| |currency|ITL| |currency|LBP| |currency|SGD| |currency|MWK| |currency|WST| |currency|DJF| |currency|KZT| |currency|CRC| |currency|LYD| |currency|NGN| |currency|BIF| |currency|CHF| |currency|RWF| |currency|AED| |currency|INR| |currency|CLF| |currency|ESP| |currency|SIT| |currency|ADP| |currency|XOF| |currency|MRO| |currency|EEK| |currency|MXV| |currency|PTE| |currency|PGK| |currency|CNY| |currency|PHP| |currency|MDL| |currency|SYP| |currency|KHR| |currency|XPT| |currency|GWP| |currency|COP| |currency|DKK| |currency|KYD| |currency|XPF| |currency|GMD| |currency|XFU| |currency|MVR| |currency|TTD| |currency|PAB| |currency|XAU| |currency|GHC| |currency|XAG| |currency|SKK| |currency|JPY| |currency|ROL| |currency|BEF| |currency|TOP| |currency|BWP| |currency|MKD| |currency|ARS| |currency|FIM| |currency|HUF| |currency|TPE| |currency|MYR| |currency|USD| |currency|SLL| |currency|MGF| |currency|MAD| |currency|RUB| |currency|MNT| |currency|BOB| |currency|GYD| |currency|SBD| |currency|XBA| |currency|BHD| |currency|LUF| |currency|HNL| |currency|XCD| |currency|NZD| |currency|KGS| |currency|AOA| |currency|BZD| |currency|IDR| |currency|SOS| |currency|NIO| |currency|BYR| |currency|ANG| |currency|NLG| |currency|SDD| |currency|FRF| |currency|ILS| |currency|NOK| |currency|KWD| |currency|NAD| |currency|ETB| |currency|MTL| |currency|KPW| |currency|BGL| |currency|EUR| |currency|CVE| |currency|ZAR| |currency|IRR| |currency|ZMK| |currency|HRK| |currency|BAM|

Signature

```json { "imageUrl": "http://www.example.com/signature.png", "base64Image": "...base64binary...", "imageMimeType": "image/png", "text": { "format": "TABS_NEWLINE", "text": "Example text" }, "signedDate": 1384104000000 } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |imageUrl|string|false|none|none| |base64Image|string|false|none|The base64binary code for the image file| |imageMimeType|string|false|none|The mime type of the image. Required only if sending this information| |text|[FormattedText](#schemaformattedtext)|false|none|none| |signedDate|integer(utc-millisec)|false|none|none|

Term

```json { "description": { "format": "TABS_NEWLINE", "text": "Example text" }, "signature": { "imageUrl": "http://www.example.com/signature.png", "base64Image": "...base64binary...", "imageMimeType": "image/png", "text": { "format": "TABS_NEWLINE", "text": "Example text" }, "signedDate": 1384104000000 }, "supportingDocuments": { "property1": { "name": "Click for Warranty Information", "url": "http://www.example.com/warranty.pdf" }, "property2": { "name": "Click for Warranty Information", "url": "http://www.example.com/warranty.pdf" } } } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |description|[FormattedText](#schemaformattedtext)|false|none|none| |signature|[Signature](#schemasignature)|false|none|none| |supportingDocuments|object|false|none|none| |» **additionalProperties**|[SupportingDocument](#schemasupportingdocument)|false|none|none|

LoyaltyInformation

```json { "loyaltyNumber": 123456, "customerName": "Jane Doe", "expDate": 1384104000000, "misc": { "format": "TABS_NEWLINE", "text": "Example text" }, "balance": 100 } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |loyaltyNumber|string|false|none|none| |customerName|string|false|none|none| |expDate|integer(utc-millisec)|false|none|none| |misc|[FormattedText](#schemaformattedtext)|false|none|none| |balance|number|false|none|none|

ResendEmailData

```json { "customerEmailAddress": "jane.doe@email.com" } ``` Resend receipt Data ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |customerEmailAddress|string|false|none|none| # Webhooks API

flexEngage Webhooks API v0.0.1

> Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu. Webhooks provide a mechanism for you to be notified of events in our systems. You can learn more about the type of event notifications we publish as well as general development guidelines in our [webhook integration guide](./webhooks/webhooks-integration-guide.html).

__NOTE:__ Notifications are not enabled by default. Please work with your [support team](mailto:support@flexengage.com) to enable notifications for the events you are interested in. Base URLs: * https://api.flexengage-test.com * https://api.flexengage.com Email: FlexEngage Support # Authentication - HTTP Authentication, scheme: bearer

Webhooks

## Create a New Webhook > Code samples ```shell # You can also use wget curl -X POST https://api.flexengage-test.com/v1/{brandId}/webhooks \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}' ``` ```java URL obj = new URL("https://api.flexengage-test.com/v1/{brandId}/webhooks"); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); con.setRequestMethod("POST"); int responseCode = con.getResponseCode(); BufferedReader in = new BufferedReader( new InputStreamReader(con.getInputStream())); String inputLine; StringBuffer response = new StringBuffer(); while ((inputLine = in.readLine()) != null) { response.append(inputLine); } in.close(); System.out.println(response.toString()); ``` ```csharp using System; using System.Collections.Generic; using System.Net.Http; using System.Net.Http.Headers; using System.Text; using System.Threading.Tasks; using Newtonsoft.Json; /// <> /// Example of Http Client /// <> public class HttpExample { private HttpClient Client { get; set; } /// <> /// Setup http client /// <> public HttpExample() { Client = new HttpClient(); } /// Make a dummy request public async Task MakePostRequest() { string url = "https://api.flexengage-test.com/v1/{brandId}/webhooks"; string json = @"{ ""endpoint"": ""https://example.com/my/webhook/endpoint"", ""events"": [ ""NOTIFICATION.SMS.RECEIPT"" ], ""enabled"": true }"; WebhookRequest content = JsonConvert.DeserializeObject(json); await PostAsync(content, url); } /// Performs a POST Request public async Task PostAsync(WebhookRequest content, string url) { //Serialize Object StringContent jsonContent = SerializeObject(content); //Execute POST request HttpResponseMessage response = await Client.PostAsync(url, jsonContent); } /// Serialize an object to Json private StringContent SerializeObject(WebhookRequest content) { //Serialize Object string jsonObject = JsonConvert.SerializeObject(content); //Create Json UTF8 String Content return new StringContent(jsonObject, Encoding.UTF8, "application/json"); } /// Deserialize object from request response private async Task DeserializeObject(HttpResponseMessage response) { //Read body string responseBody = await response.Content.ReadAsStringAsync(); //Deserialize Body to object var result = JsonConvert.DeserializeObject(responseBody); } } ``` ```python import requests headers = { 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer {access-token}' } r = requests.post('https://api.flexengage-test.com/v1/{brandId}/webhooks', headers = headers) print(r.json()) ``` `POST /v1/{brandId}/webhooks` This endpoint is used to create a new Webhook. Webhooks are enabled by default once they are created, but can be disabled using the PATCH API. A Webhook is essentially a HTTPS endpoint + a list of event types that you'd like to receive for that endpoint. Event types are organized in a heirarchical manner which allows you to subscribe to groups of event types without having to list each one out individually when you create the Webhook. Please see our [Webhooks Integration Guide](./webhooks/webhooks-integration-guide.html) for a deeper explanation of event types. > Body parameter ```json { "endpoint": "https://example.com/my/webhook/endpoint", "events": [ "NOTIFICATION.SMS.RECEIPT" ], "enabled": true } ```

Parameters

|Name|In|Type|Required|Description| |---|---|---|---|---| |body|body|[WebhookRequest](#schemawebhookrequest)|true|none| |brandId|path|string|true|This is your account identifier; we will provide this to you during the onboarding process. Please reach out to your flexEngage Customer Support Contact (support@flexengage.com) if you have not received one.| #### Detailed descriptions **brandId**: This is your account identifier; we will provide this to you during the onboarding process. Please reach out to your flexEngage Customer Support Contact (support@flexengage.com) if you have not received one. > Example responses > 201 Response ```json { "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "created": "2019-08-24T14:15:22Z", "updated": "2019-08-24T14:15:22Z", "endpoint": "https://example.com/my/webhook/endpoint", "events": [ "NOTIFICATION.SMS.RECEIPT" ], "enabled": true } ``` > 409 Response ```json { "message": "CONFLICT", "description": "A webhook for endpoint: http://example.com and eventTypes: [\"ORDER_EVENTS.OMS.ORDER_CREATED\"] already exists", "status": 409 } ``` > 422 Response ```json { "message": "UNPROCESSABLE ENTITY", "description": "There are errors in the request", "status": 422, "validations": { "endpoint": "endpoint is required" } } ``` > 500 Response ```json { "message": "Internal Server Error", "description": "The server encountered an unexpected error.", "status": 500 } ```

Responses

|Status|Meaning|Description|Schema| |---|---|---|---| |201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|The webhook was successfully created|[WebhookResponse](#schemawebhookresponse)| |401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Although the HTTP standard specifies "unauthorized", semantically this response means "unauthenticated". That is, the client must authenticate itself to get the requested response.|None| |403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource. Unlike 401, the client's identity is known to the server.|None| |409|[Conflict](https://tools.ietf.org/html/rfc7231#section-6.5.8)|A Webhook already exists for the same endpoint with the same event types.|[APIErrorResponse](#schemaapierrorresponse)| |422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|There is an error in the request. See the response body for more details.|[APIErrorResponse](#schemaapierrorresponse)| |429|[Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4)|The user has sent too many requests in a given amount of time ("rate limiting"). If you are rate-limited in any way you will receive a 429 status code, at which point your client application should respond with exponential backoff or a similar throttling measure. In general our limits are high enough that non-abusive request patterns will not trigger them.|None| |500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|A server encountered an unexpected condition that prevented it from fulfilling the request please retry again your request.|[APIErrorResponse](#schemaapierrorresponse)| ### Response Headers |Status|Header|Type|Format|Description| |---|---|---|---|---| |201|Location|string|uri|none| ## Get Webhooks > Code samples ```shell # You can also use wget curl -X GET https://api.flexengage-test.com/v1/{brandId}/webhooks \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}' ``` ```java URL obj = new URL("https://api.flexengage-test.com/v1/{brandId}/webhooks"); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); con.setRequestMethod("GET"); int responseCode = con.getResponseCode(); BufferedReader in = new BufferedReader( new InputStreamReader(con.getInputStream())); String inputLine; StringBuffer response = new StringBuffer(); while ((inputLine = in.readLine()) != null) { response.append(inputLine); } in.close(); System.out.println(response.toString()); ``` ```csharp using System; using System.Collections.Generic; using System.Net.Http; using System.Net.Http.Headers; using System.Text; using System.Threading.Tasks; using Newtonsoft.Json; /// <> /// Example of Http Client /// <> public class HttpExample { private HttpClient Client { get; set; } /// <> /// Setup http client /// <> public HttpExample() { Client = new HttpClient(); } /// Make a dummy request public async Task MakeGetRequest() { string url = "https://api.flexengage-test.com/v1/{brandId}/webhooks"; var result = await GetAsync(url); } /// Performs a GET Request public async Task GetAsync(string url) { //Start the request HttpResponseMessage response = await Client.GetAsync(url); //Validate result response.EnsureSuccessStatusCode(); } /// Deserialize object from request response private async Task DeserializeObject(HttpResponseMessage response) { //Read body string responseBody = await response.Content.ReadAsStringAsync(); //Deserialize Body to object var result = JsonConvert.DeserializeObject(responseBody); } } ``` ```python import requests headers = { 'Accept': 'application/json', 'Authorization': 'Bearer {access-token}' } r = requests.get('https://api.flexengage-test.com/v1/{brandId}/webhooks', headers = headers) print(r.json()) ``` `GET /v1/{brandId}/webhooks` Returns all webhooks for a Brand ID

Parameters

|Name|In|Type|Required|Description| |---|---|---|---|---| |brandId|path|string|true|This is your account identifier; we will provide this to you during the onboarding process. Please reach out to your flexEngage Customer Support Contact (support@flexengage.com) if you have not received one.| #### Detailed descriptions **brandId**: This is your account identifier; we will provide this to you during the onboarding process. Please reach out to your flexEngage Customer Support Contact (support@flexengage.com) if you have not received one. > Example responses > 200 Response ```json [ { "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "created": "2019-08-24T14:15:22Z", "updated": "2019-08-24T14:15:22Z", "endpoint": "https://example.com/my/webhook/endpoint", "events": [ "NOTIFICATION.SMS.RECEIPT" ], "enabled": true } ] ``` > 404 Response ```json { "message": "NOT FOUND", "description": "No webhooks with that brand ID were found", "status": 404 } ``` > 500 Response ```json { "message": "Internal Server Error", "description": "The server encountered an unexpected error.", "status": 500 } ```

Responses

|Status|Meaning|Description|Schema| |---|---|---|---| |200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|A list of webhooks, if any, affiliated with the Brand ID.|Inline| |401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Although the HTTP standard specifies "unauthorized", semantically this response means "unauthenticated". That is, the client must authenticate itself to get the requested response.|None| |403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource. Unlike 401, the client's identity is known to the server.|None| |404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|No brand or webhooks were found|[APIErrorResponse](#schemaapierrorresponse)| |429|[Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4)|The user has sent too many requests in a given amount of time ("rate limiting"). If you are rate-limited in any way you will receive a 429 status code, at which point your client application should respond with exponential backoff or a similar throttling measure. In general our limits are high enough that non-abusive request patterns will not trigger them.|None| |500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|A server encountered an unexpected condition that prevented it from fulfilling the request please retry again your request.|[APIErrorResponse](#schemaapierrorresponse)|

Response Schema

Status Code **200** |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |*anonymous*|[[WebhookResponse](#schemawebhookresponse)]|false|none|none| |» id|string(uuid)|false|none|none| |» created|string(date-time)|false|none|none| |» updated|string(date-time)|false|none|none| |» endpoint|string(uri)|false|none|none| |» events|[[Events](#schemaevents)]|false|none|none| |» enabled|boolean|false|none|none| ## Get a webhook by ID > Code samples ```shell # You can also use wget curl -X GET https://api.flexengage-test.com/v1/{brandId}/webhooks/{id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}' ``` ```java URL obj = new URL("https://api.flexengage-test.com/v1/{brandId}/webhooks/{id}"); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); con.setRequestMethod("GET"); int responseCode = con.getResponseCode(); BufferedReader in = new BufferedReader( new InputStreamReader(con.getInputStream())); String inputLine; StringBuffer response = new StringBuffer(); while ((inputLine = in.readLine()) != null) { response.append(inputLine); } in.close(); System.out.println(response.toString()); ``` ```csharp using System; using System.Collections.Generic; using System.Net.Http; using System.Net.Http.Headers; using System.Text; using System.Threading.Tasks; using Newtonsoft.Json; /// <> /// Example of Http Client /// <> public class HttpExample { private HttpClient Client { get; set; } /// <> /// Setup http client /// <> public HttpExample() { Client = new HttpClient(); } /// Make a dummy request public async Task MakeGetRequest() { string url = "https://api.flexengage-test.com/v1/{brandId}/webhooks/{id}"; var result = await GetAsync(url); } /// Performs a GET Request public async Task GetAsync(string url) { //Start the request HttpResponseMessage response = await Client.GetAsync(url); //Validate result response.EnsureSuccessStatusCode(); } /// Deserialize object from request response private async Task DeserializeObject(HttpResponseMessage response) { //Read body string responseBody = await response.Content.ReadAsStringAsync(); //Deserialize Body to object var result = JsonConvert.DeserializeObject(responseBody); } } ``` ```python import requests headers = { 'Accept': 'application/json', 'Authorization': 'Bearer {access-token}' } r = requests.get('https://api.flexengage-test.com/v1/{brandId}/webhooks/{id}', headers = headers) print(r.json()) ``` `GET /v1/{brandId}/webhooks/{id}` Returns a Webhook with the corresponding ID if it exists

Parameters

|Name|In|Type|Required|Description| |---|---|---|---|---| |brandId|path|string|true|This is your account identifier; we will provide this to you during the onboarding process. Please reach out to your flexEngage Customer Support Contact (support@flexengage.com) if you have not received one.| |id|path|string(uuid)|true|The webhook ID| #### Detailed descriptions **brandId**: This is your account identifier; we will provide this to you during the onboarding process. Please reach out to your flexEngage Customer Support Contact (support@flexengage.com) if you have not received one. > Example responses > 200 Response ```json { "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "created": "2019-08-24T14:15:22Z", "updated": "2019-08-24T14:15:22Z", "endpoint": "https://example.com/my/webhook/endpoint", "events": [ "NOTIFICATION.SMS.RECEIPT" ], "enabled": true } ``` > 404 Response ```json { "message": "NOT FOUND", "description": "A webhook with ID: 123 for brandId: ABC was not found", "status": 404 } ``` > 500 Response ```json { "message": "Internal Server Error", "description": "The server encountered an unexpected error.", "status": 500 } ```

Responses

|Status|Meaning|Description|Schema| |---|---|---|---| |200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|An object representing the webhook with corresponding ID|[WebhookResponse](#schemawebhookresponse)| |401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Although the HTTP standard specifies "unauthorized", semantically this response means "unauthenticated". That is, the client must authenticate itself to get the requested response.|None| |403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource. Unlike 401, the client's identity is known to the server.|None| |404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The brand or webhook could not be found|[APIErrorResponse](#schemaapierrorresponse)| |429|[Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4)|The user has sent too many requests in a given amount of time ("rate limiting"). If you are rate-limited in any way you will receive a 429 status code, at which point your client application should respond with exponential backoff or a similar throttling measure. In general our limits are high enough that non-abusive request patterns will not trigger them.|None| |500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|A server encountered an unexpected condition that prevented it from fulfilling the request please retry again your request.|[APIErrorResponse](#schemaapierrorresponse)| ## Toggle a Webhook On or Off > Code samples ```shell # You can also use wget curl -X PATCH https://api.flexengage-test.com/v1/{brandId}/webhooks/{id} \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}' ``` ```java URL obj = new URL("https://api.flexengage-test.com/v1/{brandId}/webhooks/{id}"); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); con.setRequestMethod("PATCH"); int responseCode = con.getResponseCode(); BufferedReader in = new BufferedReader( new InputStreamReader(con.getInputStream())); String inputLine; StringBuffer response = new StringBuffer(); while ((inputLine = in.readLine()) != null) { response.append(inputLine); } in.close(); System.out.println(response.toString()); ``` ```csharp using System; using System.Collections.Generic; using System.Net.Http; using System.Net.Http.Headers; using System.Text; using System.Threading.Tasks; using Newtonsoft.Json; /// <> /// Example of Http Client /// <> public class HttpExample { private HttpClient Client { get; set; } /// <> /// Setup http client /// <> public HttpExample() { Client = new HttpClient(); } /// Deserialize object from request response private async Task DeserializeObject(HttpResponseMessage response) { //Read body string responseBody = await response.Content.ReadAsStringAsync(); //Deserialize Body to object var result = JsonConvert.DeserializeObject(responseBody); } } ``` ```python import requests headers = { 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer {access-token}' } r = requests.patch('https://api.flexengage-test.com/v1/{brandId}/webhooks/{id}', headers = headers) print(r.json()) ``` `PATCH /v1/{brandId}/webhooks/{id}` This request allows you to turn a Webhook off without deleting it, or turn it back on if it was turned off. > Body parameter ```json { "enabled": true } ```

Parameters

|Name|In|Type|Required|Description| |---|---|---|---|---| |body|body|[WebhookPatchRequest](#schemawebhookpatchrequest)|true|none| |brandId|path|string|true|This is your account identifier; we will provide this to you during the onboarding process. Please reach out to your flexEngage Customer Support Contact (support@flexengage.com) if you have not received one.| |id|path|string(uuid)|true|The webhook ID| #### Detailed descriptions **brandId**: This is your account identifier; we will provide this to you during the onboarding process. Please reach out to your flexEngage Customer Support Contact (support@flexengage.com) if you have not received one. > Example responses > 204 Response ```json { "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "created": "2019-08-24T14:15:22Z", "updated": "2019-08-24T14:15:22Z", "endpoint": "https://example.com/my/webhook/endpoint", "events": [ "NOTIFICATION.SMS.RECEIPT" ], "enabled": true } ``` > 404 Response ```json { "message": "NOT FOUND", "description": "No webhook with that brand ID was found", "status": 404 } ``` > 500 Response ```json { "message": "Internal Server Error", "description": "The server encountered an unexpected error.", "status": 500 } ```

Responses

|Status|Meaning|Description|Schema| |---|---|---|---| |204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|An object representing the Webhook that was successfully modified.|[WebhookResponse](#schemawebhookresponse)| |401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Although the HTTP standard specifies "unauthorized", semantically this response means "unauthenticated". That is, the client must authenticate itself to get the requested response.|None| |403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource. Unlike 401, the client's identity is known to the server.|None| |404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|No brand or webhook was found|[APIErrorResponse](#schemaapierrorresponse)| |429|[Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4)|The user has sent too many requests in a given amount of time ("rate limiting"). If you are rate-limited in any way you will receive a 429 status code, at which point your client application should respond with exponential backoff or a similar throttling measure. In general our limits are high enough that non-abusive request patterns will not trigger them.|None| |500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|A server encountered an unexpected condition that prevented it from fulfilling the request please retry again your request.|[APIErrorResponse](#schemaapierrorresponse)| ## Delete a Webhook > Code samples ```shell # You can also use wget curl -X DELETE https://api.flexengage-test.com/v1/{brandId}/webhooks/{id} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}' ``` ```java URL obj = new URL("https://api.flexengage-test.com/v1/{brandId}/webhooks/{id}"); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); con.setRequestMethod("DELETE"); int responseCode = con.getResponseCode(); BufferedReader in = new BufferedReader( new InputStreamReader(con.getInputStream())); String inputLine; StringBuffer response = new StringBuffer(); while ((inputLine = in.readLine()) != null) { response.append(inputLine); } in.close(); System.out.println(response.toString()); ``` ```csharp using System; using System.Collections.Generic; using System.Net.Http; using System.Net.Http.Headers; using System.Text; using System.Threading.Tasks; using Newtonsoft.Json; /// <> /// Example of Http Client /// <> public class HttpExample { private HttpClient Client { get; set; } /// <> /// Setup http client /// <> public HttpExample() { Client = new HttpClient(); } /// Make a dummy request public async Task MakeDeleteRequest() { int id = 1; string url = "https://api.flexengage-test.com/v1/{brandId}/webhooks/{id}"; await DeleteAsync(id, url); } /// Performs a DELETE Request public async Task DeleteAsync(int id, string url) { //Execute DELETE request HttpResponseMessage response = await Client.DeleteAsync(url + $"/{id}"); //Return response await DeserializeObject(response); } /// Deserialize object from request response private async Task DeserializeObject(HttpResponseMessage response) { //Read body string responseBody = await response.Content.ReadAsStringAsync(); //Deserialize Body to object var result = JsonConvert.DeserializeObject(responseBody); } } ``` ```python import requests headers = { 'Accept': 'application/json', 'Authorization': 'Bearer {access-token}' } r = requests.delete('https://api.flexengage-test.com/v1/{brandId}/webhooks/{id}', headers = headers) print(r.json()) ``` `DELETE /v1/{brandId}/webhooks/{id}` Completely deletes a Webhook if it exists.

Parameters

|Name|In|Type|Required|Description| |---|---|---|---|---| |brandId|path|string|true|This is your account identifier; we will provide this to you during the onboarding process. Please reach out to your flexEngage Customer Support Contact (support@flexengage.com) if you have not received one.| |id|path|string(uuid)|true|The webhook ID| #### Detailed descriptions **brandId**: This is your account identifier; we will provide this to you during the onboarding process. Please reach out to your flexEngage Customer Support Contact (support@flexengage.com) if you have not received one. > Example responses > 404 Response ```json { "message": "NOT FOUND", "description": "No webhooks with that brand ID were found", "status": 404 } ``` > 500 Response ```json { "message": "Internal Server Error", "description": "The server encountered an unexpected error.", "status": 500 } ```

Responses

|Status|Meaning|Description|Schema| |---|---|---|---| |204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|The webhook was deleted successfully|None| |401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Although the HTTP standard specifies "unauthorized", semantically this response means "unauthenticated". That is, the client must authenticate itself to get the requested response.|None| |403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource. Unlike 401, the client's identity is known to the server.|None| |404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|No brand or webhook was found|[APIErrorResponse](#schemaapierrorresponse)| |429|[Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4)|The user has sent too many requests in a given amount of time ("rate limiting"). If you are rate-limited in any way you will receive a 429 status code, at which point your client application should respond with exponential backoff or a similar throttling measure. In general our limits are high enough that non-abusive request patterns will not trigger them.|None| |500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|A server encountered an unexpected condition that prevented it from fulfilling the request please retry again your request.|[APIErrorResponse](#schemaapierrorresponse)| ## Get the Events of a Webhook > Code samples ```shell # You can also use wget curl -X GET https://api.flexengage-test.com/v1/{brandId}/webhooks/{id}/events \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}' ``` ```java URL obj = new URL("https://api.flexengage-test.com/v1/{brandId}/webhooks/{id}/events"); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); con.setRequestMethod("GET"); int responseCode = con.getResponseCode(); BufferedReader in = new BufferedReader( new InputStreamReader(con.getInputStream())); String inputLine; StringBuffer response = new StringBuffer(); while ((inputLine = in.readLine()) != null) { response.append(inputLine); } in.close(); System.out.println(response.toString()); ``` ```csharp using System; using System.Collections.Generic; using System.Net.Http; using System.Net.Http.Headers; using System.Text; using System.Threading.Tasks; using Newtonsoft.Json; /// <> /// Example of Http Client /// <> public class HttpExample { private HttpClient Client { get; set; } /// <> /// Setup http client /// <> public HttpExample() { Client = new HttpClient(); } /// Make a dummy request public async Task MakeGetRequest() { string url = "https://api.flexengage-test.com/v1/{brandId}/webhooks/{id}/events"; var result = await GetAsync(url); } /// Performs a GET Request public async Task GetAsync(string url) { //Start the request HttpResponseMessage response = await Client.GetAsync(url); //Validate result response.EnsureSuccessStatusCode(); } /// Deserialize object from request response private async Task DeserializeObject(HttpResponseMessage response) { //Read body string responseBody = await response.Content.ReadAsStringAsync(); //Deserialize Body to object var result = JsonConvert.DeserializeObject(responseBody); } } ``` ```python import requests headers = { 'Accept': 'application/json', 'Authorization': 'Bearer {access-token}' } r = requests.get('https://api.flexengage-test.com/v1/{brandId}/webhooks/{id}/events', headers = headers) print(r.json()) ``` `GET /v1/{brandId}/webhooks/{id}/events` This API allows you to fetch a paginated list of events that have been sent to a Webhook endpoint. When the response contains multiple pages, the next page of results can be accessed by passing the attribute `page.lastId` as the query parameter `startId`.

Parameters

|Name|In|Type|Required|Description| |---|---|---|---|---| |brandId|path|string|true|This is your account identifier; we will provide this to you during the onboarding process. Please reach out to your flexEngage Customer Support Contact (support@flexengage.com) if you have not received one.| |id|path|string(uuid)|true|The webhook ID| |size|query|integer|false|The page size| |start|query|string(date-time)|false|The query start time| |end|query|string(date-time)|false|The query end time| |startId|query|string(uuid)|false|The event ID used to start the page| #### Detailed descriptions **brandId**: This is your account identifier; we will provide this to you during the onboarding process. Please reach out to your flexEngage Customer Support Contact (support@flexengage.com) if you have not received one. > Example responses > 200 Response ```json { "events": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "type": "NOTIFICATION.SMS.RECEIPT", "created": "2019-08-24T14:15:22Z", "updated": "2019-08-24T14:15:22Z", "status": "SUCCESS" } ], "page": { "size": 20, "startId": "98f9f126-53de-4f4b-b662-04f587841743", "lastId": "5d237c8b-b229-4873-82bc-27c473efbd3c" } } ``` > 404 Response ```json { "message": "NOT FOUND", "description": "No webhook with that brand ID was found", "status": 404 } ``` > 500 Response ```json { "message": "Internal Server Error", "description": "The server encountered an unexpected error.", "status": 500 } ```

Responses

|Status|Meaning|Description|Schema| |---|---|---|---| |200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|The events were returned successfully|[WebhookEventsResponsePage](#schemawebhookeventsresponsepage)| |401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Although the HTTP standard specifies "unauthorized", semantically this response means "unauthenticated". That is, the client must authenticate itself to get the requested response.|None| |403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource. Unlike 401, the client's identity is known to the server.|None| |404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|No brand or webhook was found|[APIErrorResponse](#schemaapierrorresponse)| |429|[Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4)|The user has sent too many requests in a given amount of time ("rate limiting"). If you are rate-limited in any way you will receive a 429 status code, at which point your client application should respond with exponential backoff or a similar throttling measure. In general our limits are high enough that non-abusive request patterns will not trigger them.|None| |500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|A server encountered an unexpected condition that prevented it from fulfilling the request please retry again your request.|[APIErrorResponse](#schemaapierrorresponse)| ## Get a webhook event by ID > Code samples ```shell # You can also use wget curl -X GET https://api.flexengage-test.com/v1/{brandId}/webhooks/{id}/events/{eventId} \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}' ``` ```java URL obj = new URL("https://api.flexengage-test.com/v1/{brandId}/webhooks/{id}/events/{eventId}"); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); con.setRequestMethod("GET"); int responseCode = con.getResponseCode(); BufferedReader in = new BufferedReader( new InputStreamReader(con.getInputStream())); String inputLine; StringBuffer response = new StringBuffer(); while ((inputLine = in.readLine()) != null) { response.append(inputLine); } in.close(); System.out.println(response.toString()); ``` ```csharp using System; using System.Collections.Generic; using System.Net.Http; using System.Net.Http.Headers; using System.Text; using System.Threading.Tasks; using Newtonsoft.Json; /// <> /// Example of Http Client /// <> public class HttpExample { private HttpClient Client { get; set; } /// <> /// Setup http client /// <> public HttpExample() { Client = new HttpClient(); } /// Make a dummy request public async Task MakeGetRequest() { string url = "https://api.flexengage-test.com/v1/{brandId}/webhooks/{id}/events/{eventId}"; var result = await GetAsync(url); } /// Performs a GET Request public async Task GetAsync(string url) { //Start the request HttpResponseMessage response = await Client.GetAsync(url); //Validate result response.EnsureSuccessStatusCode(); } /// Deserialize object from request response private async Task DeserializeObject(HttpResponseMessage response) { //Read body string responseBody = await response.Content.ReadAsStringAsync(); //Deserialize Body to object var result = JsonConvert.DeserializeObject(responseBody); } } ``` ```python import requests headers = { 'Accept': 'application/json', 'Authorization': 'Bearer {access-token}' } r = requests.get('https://api.flexengage-test.com/v1/{brandId}/webhooks/{id}/events/{eventId}', headers = headers) print(r.json()) ``` `GET /v1/{brandId}/webhooks/{id}/events/{eventId}` This request returns a specific webhook event. Each event will contain a list of attempts which in turn contain the response returned by the respective webhook's endpoint (if there was one).

Parameters

|Name|In|Type|Required|Description| |---|---|---|---|---| |brandId|path|string|true|This is your account identifier; we will provide this to you during the onboarding process. Please reach out to your flexEngage Customer Support Contact (support@flexengage.com) if you have not received one.| |id|path|string(uuid)|true|The webhook ID| |eventId|path|string(uuid)|true|The event ID| #### Detailed descriptions **brandId**: This is your account identifier; we will provide this to you during the onboarding process. Please reach out to your flexEngage Customer Support Contact (support@flexengage.com) if you have not received one. > Example responses > 200 Response ```json { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "type": "NOTIFICATION.SMS.RECEIPT", "created": "2019-08-24T14:15:22Z", "updated": "2019-08-24T14:15:22Z", "status": "SUCCESS", "attempts": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "created": "2019-08-24T14:15:22Z", "status": "SUCCESS", "request": { "endpoint": "https://example.com/my/webhook/endpoint", "headers": { "User-Agent": "FlexEngage Webhook", "Content-Type": "application/json" } }, "response": { "statusCode": 200, "headers": { "Content-Type": "application/json" }, "body": "{\"example\": \"response json\"}", "time": 231 } } ] } ``` > 404 Response ```json { "message": "NOT FOUND", "description": "No event with that ID was found", "status": 404 } ``` > 500 Response ```json { "message": "Internal Server Error", "description": "The server encountered an unexpected error.", "status": 500 } ```

Responses

|Status|Meaning|Description|Schema| |---|---|---|---| |200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|The event was returned successfully|[WebhookEventResponse](#schemawebhookeventresponse)| |401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Although the HTTP standard specifies "unauthorized", semantically this response means "unauthenticated". That is, the client must authenticate itself to get the requested response.|None| |403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource. Unlike 401, the client's identity is known to the server.|None| |404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The brand, webhook, or event was not found|[APIErrorResponse](#schemaapierrorresponse)| |429|[Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4)|The user has sent too many requests in a given amount of time ("rate limiting"). If you are rate-limited in any way you will receive a 429 status code, at which point your client application should respond with exponential backoff or a similar throttling measure. In general our limits are high enough that non-abusive request patterns will not trigger them.|None| |500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|A server encountered an unexpected condition that prevented it from fulfilling the request please retry again your request.|[APIErrorResponse](#schemaapierrorresponse)| ## Asynchronously Retry a Webhook Event > Code samples ```shell # You can also use wget curl -X POST https://api.flexengage-test.com/v1/{brandId}/webhooks/{id}/events/{eventId}/retry \ -H 'Accept: application/json' \ -H 'Authorization: Bearer {access-token}' ``` ```java URL obj = new URL("https://api.flexengage-test.com/v1/{brandId}/webhooks/{id}/events/{eventId}/retry"); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); con.setRequestMethod("POST"); int responseCode = con.getResponseCode(); BufferedReader in = new BufferedReader( new InputStreamReader(con.getInputStream())); String inputLine; StringBuffer response = new StringBuffer(); while ((inputLine = in.readLine()) != null) { response.append(inputLine); } in.close(); System.out.println(response.toString()); ``` ```csharp using System; using System.Collections.Generic; using System.Net.Http; using System.Net.Http.Headers; using System.Text; using System.Threading.Tasks; using Newtonsoft.Json; /// <> /// Example of Http Client /// <> public class HttpExample { private HttpClient Client { get; set; } /// <> /// Setup http client /// <> public HttpExample() { Client = new HttpClient(); } /// Make a dummy request public async Task MakePostRequest() { string url = "https://api.flexengage-test.com/v1/{brandId}/webhooks/{id}/events/{eventId}/retry"; await PostAsync(null, url); } /// Performs a POST Request public async Task PostAsync(undefined content, string url) { //Serialize Object StringContent jsonContent = SerializeObject(content); //Execute POST request HttpResponseMessage response = await Client.PostAsync(url, jsonContent); } /// Serialize an object to Json private StringContent SerializeObject(undefined content) { //Serialize Object string jsonObject = JsonConvert.SerializeObject(content); //Create Json UTF8 String Content return new StringContent(jsonObject, Encoding.UTF8, "application/json"); } /// Deserialize object from request response private async Task DeserializeObject(HttpResponseMessage response) { //Read body string responseBody = await response.Content.ReadAsStringAsync(); //Deserialize Body to object var result = JsonConvert.DeserializeObject(responseBody); } } ``` ```python import requests headers = { 'Accept': 'application/json', 'Authorization': 'Bearer {access-token}' } r = requests.post('https://api.flexengage-test.com/v1/{brandId}/webhooks/{id}/events/{eventId}/retry', headers = headers) print(r.json()) ``` `POST /v1/{brandId}/webhooks/{id}/events/{eventId}/retry` This request will queue a Webhook event to be resent to an endpoint. Each retry will count as a new attempt.

Parameters

|Name|In|Type|Required|Description| |---|---|---|---|---| |brandId|path|string|true|This is your account identifier; we will provide this to you during the onboarding process. Please reach out to your flexEngage Customer Support Contact (support@flexengage.com) if you have not received one.| |id|path|string(uuid)|true|The webhook ID| |eventId|path|string(uuid)|true|The event ID| #### Detailed descriptions **brandId**: This is your account identifier; we will provide this to you during the onboarding process. Please reach out to your flexEngage Customer Support Contact (support@flexengage.com) if you have not received one. > Example responses > 404 Response ```json { "message": "NOT FOUND", "description": "No event with that ID was found", "status": 404 } ``` > 500 Response ```json { "message": "Internal Server Error", "description": "The server encountered an unexpected error.", "status": 500 } ```

Responses

|Status|Meaning|Description|Schema| |---|---|---|---| |202|[Accepted](https://tools.ietf.org/html/rfc7231#section-6.3.3)|The retry request was accepted successfully.|None| |401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|Although the HTTP standard specifies "unauthorized", semantically this response means "unauthenticated". That is, the client must authenticate itself to get the requested response.|None| |403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource. Unlike 401, the client's identity is known to the server.|None| |404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The brand, webhook, or event was not found|[APIErrorResponse](#schemaapierrorresponse)| |429|[Too Many Requests](https://tools.ietf.org/html/rfc6585#section-4)|The user has sent too many requests in a given amount of time ("rate limiting"). If you are rate-limited in any way you will receive a 429 status code, at which point your client application should respond with exponential backoff or a similar throttling measure. In general our limits are high enough that non-abusive request patterns will not trigger them.|None| |500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|A server encountered an unexpected condition that prevented it from fulfilling the request please retry again your request.|[APIErrorResponse](#schemaapierrorresponse)| # Schemas

APIErrorResponse

```json { "message": "string", "description": "string", "status": 0, "validations": {} } ``` API Error response ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |message|string|false|none|The error message| |description|string|false|none|A more detailed description of the error| |status|number|false|none|This code matches the HTTP status code.| |validations|object|false|none|If the error is based on validation constraints, those constraints will be expressed in this map.|

WebhookRequest

```json { "endpoint": "https://example.com/my/webhook/endpoint", "events": [ "NOTIFICATION.SMS.RECEIPT" ], "enabled": true } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |endpoint|string(uri)|true|none|none| |events|[allOf]|true|none|none| |enabled|boolean|false|none|none|

WebhookPatchRequest

```json { "enabled": true } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |enabled|boolean|true|none|none|

WebhookResponse

```json { "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "created": "2019-08-24T14:15:22Z", "updated": "2019-08-24T14:15:22Z", "endpoint": "https://example.com/my/webhook/endpoint", "events": [ "NOTIFICATION.SMS.RECEIPT" ], "enabled": true } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |id|string(uuid)|false|none|none| |created|string(date-time)|false|none|none| |updated|string(date-time)|false|none|none| |endpoint|string(uri)|false|none|none| |events|[[Events](#schemaevents)]|false|none|none| |enabled|boolean|false|none|none|

WebhookEventResponse

```json { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "type": "NOTIFICATION.SMS.RECEIPT", "created": "2019-08-24T14:15:22Z", "updated": "2019-08-24T14:15:22Z", "status": "SUCCESS", "attempts": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "created": "2019-08-24T14:15:22Z", "status": "SUCCESS", "request": { "endpoint": "https://example.com/my/webhook/endpoint", "headers": { "User-Agent": "FlexEngage Webhook", "Content-Type": "application/json" } }, "response": { "statusCode": 200, "headers": { "Content-Type": "application/json" }, "body": "{\"example\": \"response json\"}", "time": 231 } } ] } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |id|string(uuid)|false|none|none| |type|[Events](#schemaevents)|false|none|none| |created|string(date-time)|false|none|none| |updated|string(date-time)|false|none|none| |status|[EventStatus](#schemaeventstatus)|false|none|none| |attempts|[[WebhookEventAttempt](#schemawebhookeventattempt)]|false|none|none|

WebhookEventPageResponse

```json { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "type": "NOTIFICATION.SMS.RECEIPT", "created": "2019-08-24T14:15:22Z", "updated": "2019-08-24T14:15:22Z", "status": "SUCCESS" } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |id|string(uuid)|false|none|none| |type|[Events](#schemaevents)|false|none|none| |created|string(date-time)|false|none|none| |updated|string(date-time)|false|none|none| |status|[EventStatus](#schemaeventstatus)|false|none|none|

WebhookEventAttempt

```json { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "created": "2019-08-24T14:15:22Z", "status": "SUCCESS", "request": { "endpoint": "https://example.com/my/webhook/endpoint", "headers": { "User-Agent": "FlexEngage Webhook", "Content-Type": "application/json" } }, "response": { "statusCode": 200, "headers": { "Content-Type": "application/json" }, "body": "{\"example\": \"response json\"}", "time": 231 } } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |id|string(uuid)|false|none|none| |created|string(date-time)|false|none|none| |status|[EventStatus](#schemaeventstatus)|false|none|none| |request|[Request](#schemarequest)|false|none|none| |response|[Response](#schemaresponse)|false|none|none|

WebhookEventsResponsePage

```json { "events": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "type": "NOTIFICATION.SMS.RECEIPT", "created": "2019-08-24T14:15:22Z", "updated": "2019-08-24T14:15:22Z", "status": "SUCCESS" } ], "page": { "size": 20, "startId": "98f9f126-53de-4f4b-b662-04f587841743", "lastId": "5d237c8b-b229-4873-82bc-27c473efbd3c" } } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |events|[[WebhookEventPageResponse](#schemawebhookeventpageresponse)]|false|none|none| |page|[Page](#schemapage)|false|none|none|

Events

```json "NOTIFICATION.SMS.RECEIPT" ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |*anonymous*|string|false|none|none| #### Enumerated Values |Property|Value| |---|---| |*anonymous*|NOTIFICATION.SMS.RECEIPT| |*anonymous*|ORDER_EVENTS.OMS.ORDER_CONFIRMED| |*anonymous*|ORDER_EVENTS.OMS.ORDER_SHIPPED| |*anonymous*|ORDER_EVENTS.OMS.ORDER_CANCELLED| |*anonymous*|ORDER_EVENTS.OMS.ORDER_FTC_DELAYED| |*anonymous*|ORDER_EVENTS.OMS.ORDER_RETURN_RECEIVED| |*anonymous*|ORDER_EVENTS.OMS.ORDER_RETURN_REQUESTED| |*anonymous*|ORDER_EVENTS.OMS.ORDER_BACK_ORDERED| |*anonymous*|ORDER_EVENTS.OMS.ORDER_COMPLETED| |*anonymous*|ORDER_EVENTS.OMS.ORDER_CREDIT_ISSUED| |*anonymous*|ORDER_EVENTS.OMS.ORDER_PICKUP_READY| |*anonymous*|ORDER_EVENTS.OMS.ORDER_PICKUP_COMPLETED| |*anonymous*|ORDER_EVENTS.OMS.ORDER_PICKUP_REMINDED| |*anonymous*|ORDER_EVENTS.OMS.ORDER_PICKUP_SHOPPER_ARRIVED| |*anonymous*|ORDER_EVENTS.OMS.ORDER_PICKUP_SHOPPER_CONFIRMED| |*anonymous*|ORDER_EVENTS.OMS.ORDER_PICKUP_SHOPPER_IN_TRANSIT| |*anonymous*|ORDER_EVENTS.OMS.ORDER_PICKUP_DELAYED| |*anonymous*|ORDER_EVENTS.OMS.ORDER_SHIPMENT_UPDATED| |*anonymous*|ORDER_EVENTS.OMS.UNKNOWN| |*anonymous*|ORDER_EVENTS.TRACKING.SHIPMENT_PRE_TRANSIT| |*anonymous*|ORDER_EVENTS.TRACKING.SHIPMENT_IN_TRANSIT| |*anonymous*|ORDER_EVENTS.TRACKING.SHIPMENT_OUT_FOR_DELIVERY| |*anonymous*|ORDER_EVENTS.TRACKING.SHIPMENT_DELIVERED| |*anonymous*|ORDER_EVENTS.TRACKING.SHIPMENT_AVAILABLE_FOR_PICKUP| |*anonymous*|ORDER_EVENTS.TRACKING.SHIPMENT_RETURNED_TO_SENDER| |*anonymous*|ORDER_EVENTS.TRACKING.SHIPMENT_FAILURE| |*anonymous*|ORDER_EVENTS.TRACKING.UNKNOWN| |*anonymous*|RECEIPTS|

Page

```json { "size": 20, "startId": "98f9f126-53de-4f4b-b662-04f587841743", "lastId": "5d237c8b-b229-4873-82bc-27c473efbd3c" } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |size|integer|false|none|none| |startId|string(uuid)¦null|false|none|none| |lastId|string(uuid)¦null|false|none|none|

EventStatus

```json "SUCCESS" ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |*anonymous*|string|false|none|none| #### Enumerated Values |Property|Value| |---|---| |*anonymous*|SUCCESS| |*anonymous*|FAILURE|

Request

```json { "endpoint": "https://example.com/my/webhook/endpoint", "headers": { "User-Agent": "FlexEngage Webhook", "Content-Type": "application/json" } } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |endpoint|string(endpoint)|false|none|none| |headers|object|false|none|none|

Response

```json { "statusCode": 200, "headers": { "Content-Type": "application/json" }, "body": "{\"example\": \"response json\"}", "time": 231 } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |statusCode|integer|false|none|none| |headers|object|false|none|none| |body|string|false|none|none| |time|integer|false|none|The response time in milliseconds| # Email Validation API

flexEngage Email Validation API v0.0.1

> Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu. Our Email Validation API allows retail system integrators the capability to validate one or many email addresses in real time. We offer two options for email validation - frontend (pre-transaction) or backend (post-transaction). Base URLs: * https://api-test.flexreceipts-lab.com * https://api.flexreceipts.com Email: FlexEngage Support # Authentication - HTTP Authentication, scheme: basic All requests are secured with basic authentication. Credentials are provided with your account information.

Default

## get__email-validation > Code samples ```shell # You can also use wget curl -X GET https://api-test.flexreceipts-lab.com/email-validation?emailAddress=string \ -H 'Accept: application/json' ``` ```java URL obj = new URL("https://api-test.flexreceipts-lab.com/email-validation?emailAddress=string"); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); con.setRequestMethod("GET"); int responseCode = con.getResponseCode(); BufferedReader in = new BufferedReader( new InputStreamReader(con.getInputStream())); String inputLine; StringBuffer response = new StringBuffer(); while ((inputLine = in.readLine()) != null) { response.append(inputLine); } in.close(); System.out.println(response.toString()); ``` ```csharp using System; using System.Collections.Generic; using System.Net.Http; using System.Net.Http.Headers; using System.Text; using System.Threading.Tasks; using Newtonsoft.Json; /// <> /// Example of Http Client /// <> public class HttpExample { private HttpClient Client { get; set; } /// <> /// Setup http client /// <> public HttpExample() { Client = new HttpClient(); } /// Make a dummy request public async Task MakeGetRequest() { string url = "https://api-test.flexreceipts-lab.com/email-validation"; var result = await GetAsync(url); } /// Performs a GET Request public async Task GetAsync(string url) { //Start the request HttpResponseMessage response = await Client.GetAsync(url); //Validate result response.EnsureSuccessStatusCode(); } /// Deserialize object from request response private async Task DeserializeObject(HttpResponseMessage response) { //Read body string responseBody = await response.Content.ReadAsStringAsync(); //Deserialize Body to object var result = JsonConvert.DeserializeObject(responseBody); } } ``` ```python import requests headers = { 'Accept': 'application/json' } r = requests.get('https://api-test.flexreceipts-lab.com/email-validation', params={ 'emailAddress': [ "string" ] }, headers = headers) print(r.json()) ``` `GET /email-validation`

Parameters

|Name|In|Type|Required|Description| |---|---|---|---|---| |emailAddress|query|array[string]|true|List of email addresses to validate.| > Example responses > Contains status of the email address validation. Below is a list of email status codes that can be returned in the API response. Emails that have a status of “valid” or “unknown” are recommended for sending emails. - valid - Email address has been verified to be real and currently accepting emails - invalid - Email address has been verified to be bad and is not accepting emails - unknown - Email address’s status cannot be definitely determined. ```json { "test@test,com": { "status": "invalid" } } ``` ```json { "test@test.com": { "status": "valid" } } ``` ```json { "test@test.com": { "status": "unknown" } } ``` > 403 Response ```json { "message": "string", "code": "string", "referenceId": "string", "errors": { "property1": [ { "code": "string", "message": "string" } ], "property2": [ { "code": "string", "message": "string" } ] } } ```

Responses

|Status|Meaning|Description|Schema| |---|---|---|---| |200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Contains status of the email address validation. Below is a list of email status codes that can be returned in the API response. Emails that have a status of “valid” or “unknown” are recommended for sending emails. - valid - Email address has been verified to be real and currently accepting emails - invalid - Email address has been verified to be bad and is not accepting emails - unknown - Email address’s status cannot be definitely determined.|[EmailValidationResponse](#schemaemailvalidationresponse)| |403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|Unauthorized access|[ErrorResponse](#schemaerrorresponse)| |422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|Error will be returned for validation errors.|[ErrorResponse](#schemaerrorresponse)| |500|[Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1)|Error will be thrown for internal exceptions.|[ErrorResponse](#schemaerrorresponse)| # Schemas

EmailValidation

```json { "status": "valid" } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |status|string|false|none|Response status for email address| #### Enumerated Values |Property|Value| |---|---| |status|valid| |status|invalid| |status|unknown|

EmailValidationResponse

```json { "property1": { "status": "valid" }, "property2": { "status": "valid" } } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |**additionalProperties**|[EmailValidation](#schemaemailvalidation)|false|none|none|

ErrorResponse

```json { "message": "string", "code": "string", "referenceId": "string", "errors": { "property1": [ { "code": "string", "message": "string" } ], "property2": [ { "code": "string", "message": "string" } ] } } ``` Error Response ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |message|string|false|none|none| |code|string|false|none|none| |referenceId|string|false|none|none| |errors|object|false|none|none| |» **additionalProperties**|[[ErrorEntry](#schemaerrorentry)]|false|none|none|

ErrorEntry

```json { "code": "string", "message": "string" } ``` ### Properties |Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |code|string|false|none|none| |message|string|false|none|none|