Understanding Gift Cards
Introduction
The following article explains key concepts related to Gift Cards, how they are handled both technically and from an accounting standpoint.
Definition
In the Lightspeed Restaurant POS K-Series, gift cards carry a monetary value and are not linked to any specific item or service. Upon issuance, they hold a specific balance, which can be used by customers to offset the cost of their purchases.
It's important to note that these gift cards are not prepayments for specific items or services. Business owners can choose to limit their use (for example, to food items only), but there is no POS feature to manage this restriction, it would need to be done manually by staff.
From an accounting perspective, when a gift card is issued, it must be recorded as a liability. The gift card should only be converted into sales revenue when it is redeemed. This distinction is key for accurate financial reporting.
It’s mandatory for the issuer to record a gift card as a liability when funds are added to it. For this reason, creating and/or adding funds to gift cards via API or the Web Extension interface is not currently supported. Only redemption is currently supported.
Gift Card Creation
When a gift card is issued (sold/activated/reloaded) in Lightspeed Restaurant POS K-Series, it is recorded as a liability.
- The sale triggers a debit to the payment method used to purchase the gift card (Mastercard), as well as a credit to the gift card's outstanding account (payment method: Gift card).
- No revenue is associated with the issuance or refill of a gift card. The takings are balanced.
- The
externalReference
can be used to represent the gift card number.
Gift Card Creation - Financial API Example
This is what the sale looks like in the Financial API.
{
"accountReference":"s853uLuGQt-gh5t67xQFVw==",
"accountFiscId":"A80965.136",
"receiptId":"R80965.127",
"source":{
"initialAccountId":"A80965.136"
},
"salesLines":[
],
"payments":[
{
"code":"IKGIFT",
"description":"Gift card",
"paymentMethodId":1130976558186524,
"netAmountWithTax":"-25.00",
"currency":"GBP",
"tip":"0.00",
"type":"NORMAL",
"deviceId":80965,
"deviceName":"iPad1",
"externalReference":"141412",
"fiscId":"T80965.144",
"uuid":"rR8hnJukR1GXm4FwAUVkyg==",
"fiscDate":"2023-11-29T08:55:19.236Z"
},
{
"code":"MASTERCARD",
"description":"Mastercard",
"paymentMethodId":1130976558186634,
"netAmountWithTax":"25.00",
"currency":"GBP",
"tip":"0.00",
"type":"NORMAL",
"deviceId":80965,
"deviceName":"iPad1",
"fiscId":"T80965.145",
"uuid":"-5WHdENrRJeyXR2Niefs-g==",
"fiscDate":"2023-11-29T08:55:19.242Z"
}
],
"timeOfOpening":"2023-11-29T08:55:19.23Z",
"timeOfCloseAndPaid":"2023-11-29T08:55:19.245Z",
"tableName":"",
"type":"TRANSFER",
"nbCovers":0.0,
"dineIn":true,
"deviceId":80965,
"deviceName":"iPad1"
}
Gift Card Redemption
When a gift card is used (redeemed) to pay for an order, the initial liability shifts to a sale transaction.
- In the above example, the liability amount on the gift card changes from -25.00 to -20.00.
- The value for the payment method (Mastercard) remains unchanged.
- A sale of 5.00 is recorded, as shown on the left, and the takings change to 5.00, now recognizing the transaction as profit.
Gift Card Redemption - Financial API Example
This is what the sale looks like in the Financial API.
{
"accountReference":"p-ze3xcqT1qShtM0greetg==",
"accountFiscId":"A80965.137",
"receiptId":"R80965.129",
"source":{
"initialAccountId":"A80965.137"
},
"salesLines":[
{
"id":"S80965.192",
"totalNetAmountWithTax":"5.000000",
"totalNetAmountWithoutTax":"4.166667",
"menuListPrice":"5.00",
"unitCostPrice":"0.00",
"serviceCharge":"0.00",
"discountAmount":"0.00",
"taxAmount":"0.833333",
"taxCode":"VAT20",
"taxRatePercentage":"20.00",
"taxLines":[
{
"taxId":"1130976558186503",
"taxCode":"VAT20",
"taxRate":"1.2",
"taxAmount":"0.833333",
"taxIncluded":true
}
],
"accountDiscountAmount":"0.00",
"totalDiscountAmount":"0.00",
"sku":"7",
"name":"Fanta 33cl",
"statisticGroup":"",
"quantity":"1.000",
"accountingGroup":{
"accountingGroupId":1130976558186644,
"name":"Drinks",
"code":""
},
"currency":"GBP",
"tags":[
],
"categories":[],
"timeOfSale":"2023-11-29T10:31:29.289Z",
"deviceId":80965,
"deviceName":"iPad1"
}
],
"payments":[
{
"code":"IKGIFT",
"description":"Gift card",
"paymentMethodId":1130976558186524,
"netAmountWithTax":"5.00",
"currency":"GBP",
"tip":"0.00",
"type":"NORMAL",
"deviceId":80965,
"deviceName":"iPad1",
"externalReference":"141412",
"fiscId":"T80965.148",
"uuid":"9-h6j4KoTC2YuDvFfb90ww==",
"fiscDate":"2023-11-29T10:31:40.629Z"
}
]
}
Options for Third Party Integrators
There are two primary methods for redeeming third party gift cards in integrations. It’s mandatory for the issuer to record a gift card as a liability at the time a gift card is issued or topped up. For this reason, creating and/or adding funds to gift cards via API or the Web Extension interface is not currently supported. Only redemption is currently supported.
Adding funds to gift cards must either be managed directly within the POS or directly inside the integration.
Order & Pay API
- Apply a Payment Endpoint: This endpoint is used to apply a payment to an existing receipt. The payment method must be pre-configured in Lightspeed's back office. See Make a Payment in the API Reference.
Web Extension
-
The JavaScript function
pos_payAccount(paymentMethodCode, callback)
pays the full balance of the current account. -
If tips are part of the transaction, the JavaScript function
pos_payAccountWithTips(amountCents, paymentMethodCode, tipCents, callback)
is used to complete the payment and designate a tip amount. -
If the amount of the transaction is higher than the amount available on the gift card, the JavaScript function
pos_addPayment(amountCents, paymentMethodCode, callback)
is used to apply a partial payment.
Other Features
See the Features and Sample Workflows sections for more details.