Integration API

The Zebra solution exposes several end-points with which to integrate, via the Transformer, to perform certain functions. Zebra participates in the point-of-sales check-out and payment process as a payment facilitator with another adjunct functionality.

Zapper Transformer

For invoice, Zebra exposes the following end-points:

  • Line-item: to add and remove items from the basket

  • Total: signal the basket ready for settlement by customer

  • Reset: signal basket is settled on POS system

  • Payment: provides the POS system details of Zapper transaction

Endpoints:

Invoice Line

Used for added/removed item from current basket.

POST http://host:port/v1/sites/{siteId}/invoice/line

Field

Required

Type

Description

siteId

Yes

String

Zapper merchant site ID

Example Request Body

{
"id":0,
"itemName":"",
"itemProductCode":"",
"itemPrice":0,
"itemQuantity":0,
"totalPrice":0
}

Invoice Total:

Used for ready basket signal to be settled by customer.

POST http://host:port/v1/sites/{siteId}/invoice/total

Field

Required

Type

Description

siteId

Yes

String

Zapper merchant site ID

Example Request Body

{
"amount":0,
"reference":""
}

Invoice Reset :

Used to signal settled basket on Point-of-Sale.

POST http://host:port/v1/sites/{siteId}/invoice/reset

Field

Required

Type

Description

siteId

Yes

String

Zapper merchant site ID

Invoice Payment :

Provides the Point-of-Sale with payment details of a Zapper transaction.

GET http://host:port/v1/invoice/{invoiceId}/payment

Field

Required

Type

Description

invoiceId

Yes

Int

Merchant invoice reference/id

Example Response Body

{
"Id":0,
"MerchantSiteId":0,
"ReceiptStatus":"",
"PosReference":"",
"PaymentDate":"",
"ZapperId":"",
"MerchantOrderId":"",
"InvoicedAmount":0,
"TipAmount":0,
"PaidAmount":0,
"TotalGenericVoucherAmount":0,
"TotalMerchantVoucherAmount":0,
"TotalVoucherAmount":0,
"ZapperDiscountAmount":0,
"ServiceChargeAmount":0,
"DonationAmount":0,
"TableName":"",
"WaiterName":"",
"CustomerFullName":"",
"CurrencyIso":"",
"SlipData":"",
"PaymentStatus":""
}

Zapper Facade Transformer

A specific integration has been provided by the United Kingdom to bridge the interim between a normal Over-the-top on POS to (Pole) Customer Display data integration and the functionality that the Zapper Printer integration provides (as virtual printer interceptor) of what is required by Zapper Retail for full Zapper functionality when integrating with a retail merchant. This gap was filled by the Zapper façade. Zebra has a custom Transformer to emulate the contract (models) of this integration variation and exposes end-points via the Zapper Façade Transformer. For merchants using this Transformer appropriate end-points are exposed.

The Zapper Façade Transformer exposes the following end-points:

  • Basket: line-item and total end-points (entire basket) of the Zapper Transformer in one delivery

  • Basket Closed: signal Zebra of payment success by POS & subsequent transaction closure

  • Invoice: provides POS with Zapper transaction payment details

  • Refund: provides the POS with functionality to refund an existing Zapper payment.

Endpoints

Basket :

Combination of line item and total endpoints above. i.e. the entire basket including its line items sent to Zebra at once.

This event occurs when the EPOS has a new or updated “basket total”.

POST http://host:port/Basket

Example Request Body

{
"MerchantOrderId":"",
"TotalToPay":0,
"Products":[
{
"ProductCode":"",
"ProductName":"",
"ExtraInfo":"",
"ActualUnitPrice":0,
"OriginalPrice":0,
"DiscountReason":"",
"DiscountName":"",
"DiscountCode":"",
"Quantity":0,
"FullPriced":false
}
],
"BasketDiscounts":[
{
"DiscountReason":"",
"DiscountName":"",
"DiscountCode":"",
"DiscountValue":0
}
],
"Tenders":[
{
"TenderReference":"",
"TenderType":"Coupon",
"TenderExtraInfo":"",
"TenderValue":0
}
]
}

Example Response Body

{
"Result":"OK|WARN|STOP",
"Message":"messge indicating status"
}

Basket Closed:

Used to signal to Zebra of payment success by Point-of-Sale and transaction closure

This event occurs when a basket is “closed” on a till, whether because of “Sale Completed”, “Sale Voided” or “Basket Saved”. EPOS sends details of the basket close event to ZapperPC using the /BasketClosed method.

POST http://host:port/BasketClosed

Example Request Body

{
"MerchantOrderId":"1234",
"OrderStatus":"Complete|Void|Saved"
}

Example Response Body

{
"Result":"OK",
"Message":""
}

Get Payment :

Provides the Point-of-Sale with payment details of Zapper transaction.

GET http://host:port/GetPayment?MerchantOrderId={invoiceId}

Field

Required

Type

Description

invoiceId

Yes

Int

Merchant invoice reference/id

Example Response Body

{
"PaymentId":0,
"MerchantOrderId":"",
"PaymentDate": " yyyy-MM-dd'T'HH:mm:sss", // UTC date/time
"ZapperId":"",
"PaidAmount":0,
"ZapperAmount":0,
"MerchantAmount":0,
"CustomerFullName":"",
"CurrencyIso":"",
"StatusId":"2" //2-success|any other - failed
}

Refund:

Provides the Point-of-Sale with ability to request a Zapper payment refund

POST http://host:port/ZapperRefund

Example Request Body

{
"ZapperId":"",
"RefundAmount":0
}

Example Response Body

{
"Result":"OK|WARN|STOP",
"Message":"messge indicating status"
}