A Litecard Template is required to generate a Litecard card (or Apple/Google wallet pass). It stores information such as the images, colours and links the Card contains. This guide will assist users in generating their own template via API.
It is highly recommended that customers build their template via the Litecard Template builder available in their dashboard.
Here are the Litecard Template Design guidelines: https://docs.google.com/presentation/d/1FlL8XzK1PO3UT4vpPbx49jJbXhK79mgeems0NVz3CCo/
The Swagger docs for this template can be found here:
Demo Environment: https://bff-api.demo.litecard.io/api/v1/swagger#/Card%20Template/createTemplate_v1
Production Environment: https://bff-api.enterprise.litecard.io/api/v1/swagger#/Card%20Template/createTemplate_v1
Endpoint Details
| Field | Description |
|---|---|
| Endpoint URL | /api/v1/template |
| Method | POST |
| Description | Used to generate a Liteard Template |
| Authentication | Bearer Token – see Litecard API guide for more details |
Request JSON Payload Schema
The POST request to /api/v1/template can contain the following keys in the request payload
| Field | Type | Required | Description |
|---|---|---|---|
| name | String | Yes | The name of the new resource. Must be unique. |
| description | String | Yes | A brief description of the resource. |
| businessName | String | Yes | The current status of the resource. Allowed values: active, inactive, pending. |
| isInternal | Boolean | No | A collection of key-value pairs representing additional attributes. |
| type | String | No | A list of tags associated with the resource. |
| externalId | String | Yes | The date and time when the resource was created. |
| settings | Settings Object | No | A collection of various settings |
| stripeSettings | Object | No | Settings required to configure a stripe integration |
| appleWalletSettings | appleWalletSettings Object | Yes | Apple specific settings |
| googleWalletSettings | googleWalletSettings Object | Yes | Google specific settings |
| samsungWalletSettings | Object | No | Samsung specific settings |
| colours | colours Object | Yes | Object defining the colours used on the Card |
| images | images Object | Yes | Object defining the images used on the Card |
| barcode | barcode Object | Yes | Object defining the barcode on the Card |
| locations | Array of location Objects | No | Array of Objects for geo-location notifications |
| links | Array of link Objects | No | Array of Objects for the various links on the Card |
| dataFields | Array of dataField Objects | No | Array of Objects describing the fields on the Card as well as any additional data points that would be collected. |
| certificates | Object | No | Certificates used to generate the Card |
| Actions (depreciated) | Array of Objects | No | Array of actions to use for the Card |
| rateLimit (depreciated) | Object | No | Litecard scanning purposes, to define if there’s a cooldown between scans |
| appLinking | appLinking Object | No | Object to define any related applications for the |
| shopifySettings | Object | No | Object to define settings to configure a shopify integration |
| Notifications (depreciated) | Array of Objects | No | Object to define any special push notifications to generate |
| tiers | tiers Object | No | Object to define any tiers for this template |
settings Object Schema
The settings field is an optional object that has a collection of various settings to apply. A lot of these specific settings are Litecard Internal settings and will be designated as such below.
| Field | Type | Required | Description |
|---|---|---|---|
| paymentRequired | Boolean | No | Setting for litecard to know if this is a template that has a stripe integration |
| enforceUniqueEmail | Boolean | No | If enabled, will only allow an email to be used once throughout the account |
| enforceUniquePhone | Boolean | No | If enabled, will only allow an phone to be used once throughout the account |
| resendForUniqueEmail | Boolean | No | If enabled, will resend the email if the email is used in the Litecard signup form |
| resendForUniquePhone | Boolean | No | If enabled, will resend the SMS if the phone is used in the Litecard signup form |
| timezone | String | No | Timezone used for displayign dates and times on the pass. Default is UTC.Example: Australia/Melbourne |
| formPassword | String | No | If the signup form is private, use this to set up a password. |
| primaryContact | String | No | If Email and Phone is present, the primaryContact medium will be used for download links |
| externalProvider (Litecard Setting) | String | No | Setting to determine if there’s any external integration required |
| disableDownload | Boolean | No | If enabled, the download link will be disabled if the pass is already activated on a device. |
| quickSignUp (Litecard setting) | Boolean | No | Litecard internal setting to determine a quick sign up form. |
| isDeduplicateDeviceAndIp | Boolean | No | Tied into quickSingups, settings to prevent users on the same IP from generating multiple quick passes |
| externalSystemConfig | Object | No | Additional settings required for external integration |
| disableInvitationEmail | Boolean | No | Setting to completely disable the Litecard Invitation Email |
| disableInvitationSMS | Boolean | No | Setting to completely disable the Litecard Invitation SMS |
| muktiTier | Boolean | No | Setting to flag whether this template contains multiple tiers |
dataField Object Schema
The dataField field is an array of objects that defines the various fields that can appear on the pass and what other additional values may be collected at the time of Card creation. These values could include things like email or phone number.
A field on pass can have a dynamic of a static value. Static value means all cards created using this template will have the same value. Examples of this would be a welcome field at the back of the Card. A dynamic field will have the value sourced either via Litecard’s sign up form or inside the ‘cardPayload’ during a card creation API call.
How Litecard knows if a field is dynamic is via the combination of keys userCanEdit and formFieldSettings. userCanEdit lets Litecard know it’s dynamic and formFieldSettings lets Litecard know if there’s any specific formatting requirements and other rules.
The usage array is used to notify which platform this field will be used if used at all on a Card. If APPLE_WALLET is present then appleFieldSettings needs to be present. Same thing with GOOGLE_WALLET. Details will be provided at the subsequent sections.
| Field | Type | Required | Description |
|---|---|---|---|
| key | String | Yes | Name key of the dataField |
| label | String | Yes | Label key for the dataField, to be used as the end user readable Field in Litecard forms if applicable. |
| usage | Array of Strings | Yes | Array containing these values if applicable: “NOT_USED”, “APPLE_WALLET”, “GOOGLE_WALLET”, “SAMSUNG_WALLET” |
| usercanEdit | Boolean | Yes | If enabled, dataField is designated as dynamic |
| appleFieldSettings | Object | No | Object defining where the field is mapped to on an Apple Card |
| googleFieldSettings | Object | No | Object defining where the field is mapped to on a Google Card |
| samsungFieldSettings | Object | No | Object defining where the field is mapped to on a SamsungCard |
| formFieldSettings | Object | No | Object defining the format the data needs to be in and how the Litecard form should display it |
| defaultCountryCode | String | No | Default country code for phone number field |
| defaultValue | String | No | Default value to set the field. This is required for static fields |
| description | String | No | Description for the dataField |
| helpText | String | No | Help text to be displayed next to the field label on a Litecard form |
| formatter | String | No | Formatter to be used for the fieldAcceptable value: initials |
| currencyCode | String | No | ISO 4217 currency code |
| frontEndMapping (depreciated) | Array of Strings | No | Array to determine if the value is rendered in the Litecard dashboard. |
| uniqueValue | Boolean | No | Only applicable for segments |
appleFieldSettings Object Schema #
The appleFieldSettings field is to designate where the data is displayed on the Apple Card. Some fields are restricted depending on the pass type, you can find out specific restrictions for Apple in the Apple Wallet design docs found here.
| Field | Type | Required | Description | enum |
|---|---|---|---|---|
| position | Number/Integer | Yes | To designate the position of the field relative to the other dataFields that share the same location | |
| location | String | Yes | Designates where the on the pass the dataField is displayed | “PRIMARY_FIELD”,”HEADER_FIELD”,”SECONDARY_FIELD”,”AUXILIARY_FIELD”,”BACK_FIELD”, |
| changeMessage | String | No | Used for the field designated as the Push NotificationField. Default value should be %@ | |
| dateStyle | String | No | Style of the date to be displayed For Example: Short = 11/23/37Medium = Nov 23, 1937 | “NOT_USED”, “NONE”, “SHORT”, “MEDIUM”, “LONG”, “FULL” |
| timeStyle | String | No | Style of the time to be displayed For Example: Short = 3:30 PMMedium = 3:30:32 PM | “NOT_USED”, “NONE”, “SHORT”, “MEDIUM”, “LONG”, “FULL” |
| numberStyle | String | No | Style for the number to be displayed see here | “NOT_USED”, “DECIMAL”, “PERCENT”, “SCIENTIFIC”, “SPELLOUT” |
| textAlignment | String | No | Optional argument that sets the text alignment of the field text. This value is not allowed on primary or back fields. | “PKTextAlignmentLeft”, “PKTextAlignmentCenter”, “PKTextAlignmentRight”, “PKTextAlignmentNatural”, |
| ignoreTimeZone | Boolean | No | Always display the time and date in the given time zone, not in the user’s current time zone. The default value is false. | |
| isRelativeDate | Boolean | No | If true, the label’s value is displayed as a relative date; otherwise, it is displayed as an absolute date. The default value is false.” |
googleFieldSettings Object Schema #
The googleFieldSettings field is to designate where the data is displayed on the Google Card. Please follow the google guidelines to determine which fields are available on which Google PassType. You can find the docs here.
When a Location is set to TEXT_MODULE_DATA and cardRow is set to true, the dataField will be displayed on the front of the Card. Here is how the position dictates where the field is displayed.

Note: Those values for the row only apply if the previous row exists. For example if you have fields in position 3 and 6 but none in 0,1,2 then the rows will be shifted up.
| Field | Type | Required | Description | enum |
|---|---|---|---|---|
| Location | String | Yes | Location where the data is displayed. Some values are for specific google types only. Please follow the google guidelines linked above. | “NOT_USED”,”ACCOUNT_NAME”,”LOYALTY_POINTS”,”TEXT_MODULE_DATA”,”MESSAGES”,”OFFER_FINEPRINT”,”OFFER_DETAILS”,”EVENT_VENUE”,”EVENT_SECTION”,”EVENT_SEAT”,”EVENT_ROW”,”EVENT_GATE”,”EVENT_DOORS_OPEN”,”EVENT_START”,”EVENT_END”,”EVENT_TICKET_TYPE”,”EVENT_TICKET_MONEY”,”EVENT_CONFIRMATION_CODE”, |
| position | Number/Integer | No | To designate the position of the field relative to the other dataFields that share the same location | |
| cardRow | Boolean | No | Designates if this field is to be displayed at the front of the pass. | |
| fieldType | String | No | If using MESSAGES location, what type of MESSAGE field it is | “TEXT”, “TEXT_AND_NOTIFY” |
formFieldSettings Object Schema #
The formFieldSettings field is used to determine what type of data is ingested either via the Litecard signup form or via Litecard Card creation API.
| Field | Type | Required | Description | enum |
|---|---|---|---|---|
| position | Number/Integar | Yes | What position it will appear on the form | |
| placeHolderText | String | Yes | Sample text that displays on the text box before field is filled in | |
| dataType | String | Yes | What type of data the field should take | “radio”,”select”,”text”,”textArea”,”number”,”phone”,”date”,”dateTime”,”image”,”nationality”, |
| rules | Array of Strings | No | Specific validation rules | “required”, “phone”, “email”, “integer” |
| usage | Array of Strings | No | Whether the form appears on the public sign up form or private sign up form or whether it relates to an external integration | “PRIVATE”, “PUBLIC”, “EXTERNAL” |
| options | Array of Object | No | If dataType is radio or select , this array of object provides the available options that appear. The keys required in the object: Value – the value the gets passed through to LitecardTitle – the value that is displayed on the formOrder – ordering for the drop down / radio list | |
| externalProviderMapping | String | No | “LOYALTY_MEMBER_ID”,”LOYALTY_POINTS”,”CUSTOMER_ID”,”VOUCHER_CODE”,”VALID_EMAIL”,”VALID_EMAIL_MAPPING_CODE”, | |
| externalMappingKey | String | No |
appleWalletSettings Object Schema
The appleWalletSettings field is a required object that contains a collection of Apple specific settings such as the passType.
| Field | Type | Required | Description |
|---|---|---|---|
| passType | String | Yes | Available Pass Types: |
| hideLogo | Boolean | No | Hides the logo on the top right of Apple Wallet Cards |
| hideLogoText | Boolean | No | Hides the logo text (businessName) next to the logo |
| disableSharing | Boolean | No | Removes the share button found at the bottom of an Apple Card |
googleWalletSettings Object Schema
The googleWalletSettings field is a required object that contains a collection of Apple specific settings such as the passType.
| Field | Type | Required | Description | enum |
|---|---|---|---|---|
| passType | String | Yes | Google specific pass type. It is recommended to use GENERIC | “EVENT_TICKET”, “FLIGHT”, “GIFT_CARD”, “LOYALTY”, “OFFER”, “TRANSIT”,”GENERIC”, |
| securityShimmer | Boolean | No | If enabled, an animated colour border will appear around the barcode / QR code to prevent screenshots. | |
| multipleDevicesAndUsersStatus | String | No | Setting to determine whether the pass can be added to multiple accounts / multiple devices. | “MULTIPLE_HOLDERS”, “ONE_USER_ALL_DEVICES”, “ONE_USER_ONE_DEVICE” |
| title | String | No | Text that appears beside your logo on the pass | |
| header | String | No | Text that appears within your pass before expanding | |
| subHeader | String | No | The Label for the header section | |
| offer | Object | No | Object for offer specific settings. See swagger docs for more information | |
| eventTicket | Object | No | Object for event specific settings. See swagger docs for more information. |
colours Object Schema
The colours field is a required object that designates what colours are to be used for various sections of the Card.
| Field | Type | Required | Description |
|---|---|---|---|
| background | String ( colour in HEX code) | No | Colour of the background. Applies for Apple and Google Cards |
| label | String ( colour in HEX code) | No | Color of the labels for apple Cards |
| foreground | String ( colour in HEX code) | No | Color of the text for apple Cards |
images Object Schema
The images field is an optional object that defines what images are used for the pass.
| Field | Type | Required | Description |
|---|---|---|---|
| logo | String | No | URL to an image to be used as the Logo on the card |
| hero | String | No | URL to an image to be used for Google’s strip image |
| strip | String | No | URL to an image to be used for Apple’s strip image |
| appleLogoOverride | String | No | URL to an image to be used for Apples Logo only |
| icon | String | No | URL to an image to be used for the Apple icon |
| thumbnail | String | No | URL to an image to be used by Apple for Event and Generic Card Types. |
| background | String | No | URL to an image to be used as the background for Apple Event tickets |
barcode Object Schema
The barcode field is a required object that defines if a barcode is used, what type of barcode is it and how the barcode value is sourced.
| Field | Type | Required | Description |
|---|---|---|---|
| barcodeValue | String | No | To define what the barcode Value is across all Cards of this template. There are some replacement values to be used for individual barcode values.{PASS_ID} – use this to set the Litecard ID as the barcodeValue{CUSTOM} – to be used with the fieldMap value, this sets the value of a dataField as the barcode value |
| messageEncoding | String | No | Message encoding of the barcode. Nullable: true |
| type | String | No | Type of Barcode. Available types: “NOT_USED”, “QR_CODE”, “CODE_128”, “PDF_417”, “AZTEC” |
| altText | String | No | To mask the barcode value under the barcode. Can be set to null to display the barcode Value |
| fieldMap | String | No | Required if barcodeValue is set to {CUSTOM}. Should be a value of a dataField key. |
link Object Schema
The link object describes the link that would be displayed on the back of the Card.
| Field | Type | Required | Description | enum |
|---|---|---|---|---|
| id | String | No | ID of the Link. Not required. | |
| uri | String | No | The URL of the link | |
| hyperlinkText | String | No | For Apple devices, the texts that can accompany the link. Please use ${} notation to hyperlink the text inside the bracket with the uri provided | |
| title | String | No | The field label | |
| type | String | No | ||
| usage | Array of Strings | No | What devices the link appears on | “NOT_USED”, “APPLE_WALLET”, “GOOGLE_WALLET”, “SAMSUNG_WALLET” |
| position | Number/Integer | No | How the link is position relative to the other l |
location Object Schema
The location field is an optional field that defines the various tiers. Each key will be the tier name available e.g “GOLD”, and each key will be an object of the various changes
| Field | Type | Required | Description | enum |
|---|---|---|---|---|
| id | String | No | The ID of the Location. Not required | |
| lat | String | No | For Apple Geo Location Notification, Latitude coordinate | |
| lon | String | No | For Apple Geo Location Notification, Longitude coordinate | |
| apple | Object | No | For Apple Geo Location Notification, lockScreenMessage is required for the message. | |
| beaconId | string | No | For Apple Geo Location Notification, alternative solution to lat / lon. Need to provide the UUID of the beacon | |
| samsung | Object | No | Samsung specific settings | |
| order | Number/Integer | No | Mainly in use to determine if a message gets overwritten when there’s a location Object inside a tier | |
| usage | Array of Strings | No | String to confirm which device this location is for | “APPLE_WALLET”,”SAMSUNG_WALLET” |
cardExpiry Object Schema
The cardExpiry field is an optional field that defines when the pass expires. There are a number of ways the expiry can be calculated, either via a set date or set amount of time after the Card is generated.
| Field | Type | Required | Description | enum |
|---|---|---|---|---|
| expiryType | String | Yes | The type of Expiry | “NEVER”, “FIXED_DATE”, “FROM_ACTIVATION”, “FIXED_SCANS” (depreciated) |
| startDate | String | No | If expiryType is FIXED_DATE,start date can be configured so the Card is active | |
| endDate | String | No | If expiryType is FIXED_DATE,end date can be configured for when the Card should be expired and removed from the user’s wallet | |
| fromActivation | fromActivation Object | Yes (if expiryType is fromActivation) | Object Detailing the configuration for expiry when expiryType is FROM_ACTIVATION |
fromActivation Object Schema #
The fromActivation field is an optional field that defines when the pass expires. There are a number of ways the expiry can be calculated, either via a set date or set amount of time after the Card is generated.
| Field | Type | Required | Description | enum |
|---|---|---|---|---|
| amount | String | No | The amount of time (measurement configured below) between the activation of the card produced by this template, and the expiry date. | |
| measurement | String | No | The unit of measurement to calculate the amount of time between the activation of the card produced by this template, and the expiry date | DAYS”, “MONTHS”, “YEARS” |
| timezone | String | No | By default expiry is set as UTC. This is to set it as a specific timezone | “Australia/Adelaide”,”Australia/Brisbane”,”Australia/Darwin”,”Australia/Hobart”,”Australia/Melbourne”,”Australia/Perth”,”Australia/Sydney”, |
appLinking Object Schema
The appLinking field is an optional field that defines if there should be any Mobile Application that should be associated with the pass. Apple and Google display the app differently but this setting allows the convenient association with a Client’s application.
| Field | Type | Required | Description |
|---|---|---|---|
| appleSettings | appleSettings Object | No | The configuration to set up the AppLinking for an Apple Device and iOS application |
| googleSettings | googleSetings Object | No | The configuration to set up the Applinking for a Google Device and an Android application |
appleSettings Object Schema #
The appleSettings field is to configure the apple application associated with the Apple Card
| Field | Type | Required | Description |
|---|---|---|---|
| storeIdentifier | Number | Yes | The Apple Store ID of the Application. You can get the ID by getting the number at the end of the URL of the application on the apple web store. |
googleSettings Object Schema #
The googleSettings field is to configure the Android application associated with the Google Card
| Field | Type | Required | Description |
|---|---|---|---|
| title | String | No | Title for the Application |
| appLogo (depreciated) | String | No | |
| appUri | String | No | The URL to the application on the Android webstore page |
| description | String | No | Description for the Application |
tiers Object Schema
The tiers field is an optional field that defines the various tiers. Each key will be the tier name available e.g “GOLD”, and each key will be an object of the various changes
| Field | Type | Required | Description |
|---|---|---|---|
| * | tier object | No | The key is the name of the tier and the value is an object describing the differences for the tier |
tier Object Schema #
The tier field is an object describing the key values that differ between tiers.
Note: All dataFields must be a static one. Any dataFields that have the same location and position, the tier dataField will replace the base dataField.
| Field | Type | Required | Note / Description |
|---|---|---|---|
| default | Boolean | Yes | Key to notify which tier is the default one to be used if a tier is not provided. There can only be 1 default tier. |
| cardExpiry | No | ||
| colours | colours Object | No | Google PassType must be set to GENERIC |
| images | images Object | No | |
| barcode | barcode Object | No | |
| locations | Array of location Objects | No | Replacements cannot happen unless order has been used for all location objects |
| links | Array of link Object | No | If position has not been provided, the tier links will appear before the base links. Replacements cannot happen unless position has been used for all link objects |
| dataFields | Array of dataField Object | No | All dataFields must be static |
Example Request Payload
{
“appleWalletSettings”: {
“hideLogoText”: true,
“passType”: “STORE_CARD”
},
“barcode”: {
“altText”: “”,
“barcodeValue”: “${CUSTOM}”,
“messageEncoding”: “iso-8859-1”,
“type”: “CODE_128”,
“fieldMap”: “memberId”
},
“businessName”: “Generic Library”,
“cardExpiry”: {
“expiryType”: “FROM_ACTIVATION”,
“fromActivation”: {
“amount”: “1”,
“measurement”: “YEARS”
}
},
“colours”: {
“background”: “#000000”,
“foreground”: “#ffffff”,
“label”: “#ffffff”
},
“dataFields”: [
{
“appleFieldSettings”: {
“dateStyle”: “NOT_USED”,
“location”: “SECONDARY_FIELD”,
“position”: 0,
“timeStyle”: “NOT_USED”
},
“description”: “The user’s full name.”,
“googleFieldSettings”: {
“location”: “TEXT_MODULE_DATA”,
“cardRow”: true,
“position”: 0
},
“key”: “fullName”,
“label”: “Name”,
“usage”: [
“APPLE_WALLET”,
“GOOGLE_WALLET”
],
“userCanEdit”: false
},
{
“description”: “The user’s email address.”,
“formFieldSettings”: {
“dataType”: “text”,
“placeHolderText”: “Email”,
“position”: 0,
“rules”: [
“required”,
“email”
]
},
“key”: “email”,
“label”: “Email”,
“usage”: [
],
“userCanEdit”: true
},
{
“appleFieldSettings”: {
“location”: “HEADER_FIELD”,
“position”: 0
},
“description”: “Points”,
“defaultValue”: 0,
“formFieldSettings”: {
“dataType”: “number”,
“placeHolderText”: “Points”,
“position”: 2,
“rules”: [
]
},
“googleFieldSettings”: {
“location”: “TEXT_MODULE_DATA”,
“position”: 1,
“cardRow”: true
},
“key”: “points”,
“label”: “Points”,
“usage”: [
“APPLE_WALLET”,
“GOOGLE_WALLET”
],
“userCanEdit”: true
},
{
“appleFieldSettings”: {
“dateStyle”: “NOT_USED”,
“location”: “SECONDARY_FIELD”,
“position”: 1,
“timeStyle”: “NONE”
},
“defaultValue”: “Social Member”,
“description”: “Status”,
“googleFieldSettings”: {
“location”: “TEXT_MODULE_DATA”,
“position”: 3,
“cardRow”: true
},
“formFieldSettings”: {
“dataType”: “text”,
“placeHolderText”: “memberId”,
“position”: 1,
“rules”: [
“required”
]
},
“key”: “memberId”,
“label”: “Member Id”,
“usage”: [
“APPLE_WALLET”,
“GOOGLE_WALLET”
],
“userCanEdit”: true
},
{
“appleFieldSettings”: {
“changeMessage”: “%@”,
“dateStyle”: “NOT_USED”,
“location”: “BACK_FIELD”,
“position”: 3,
“timeStyle”: “NOT_USED”
},
“defaultValue”: “No new notifications”,
“description”: “Field Used to display push notifications”,
“googleFieldSettings”: {
“location”: “TEXT_MODULE_DATA”,
“position”: 5
},
“key”: “notificationKey”,
“label”: “Notifications”,
“usage”: [
“APPLE_WALLET”,
“GOOGLE_WALLET”
],
“userCanEdit”: false
},
{
“appleFieldSettings”: {
“dateStyle”: “NOT_USED”,
“location”: “BACK_FIELD”,
“position”: 0,
“timeStyle”: “NOT_USED”
},
“defaultValue”: “This is your digital library card to use across different facilities provided by the NSW State Library.\nScan or show your digital pass when you checkout books or print in place of your physical card.\nAdditionally present your pass at partnering retailers for discounts and exclusive offers.”,
“description”: “Introduction”,
“googleFieldSettings”: {
“location”: “TEXT_MODULE_DATA”,
“position”: 2
},
“key”: “intro”,
“label”: “Digital Membership”,
“usage”: [
“APPLE_WALLET”,
“GOOGLE_WALLET”
],
“userCanEdit”: false
}
],
“description”: “Your Digital Library Card”,
“googleWalletSettings”: {
“passType”: “GENERIC”,
“title”: “Generic Library”,
“header”: “Your Digital Library Card”
},
“images”: {
“icon”: “https://lc-business-assets-demo.s3.ap-southeast-2.amazonaws.com/generic/stalib_logo%403x.png”,
“logo”: “https://lc-business-assets-demo.s3.ap-southeast-2.amazonaws.com/generic/stalib_logo%403x.png”,
“hero”: “https://lc-business-assets-demo.s3.ap-southeast-2.amazonaws.com/generic/stalib_strip%403x.png”,
“strip”: “https://lc-business-assets-demo.s3.ap-southeast-2.amazonaws.com/generic/stalib_strip%403x.png”,
“appleLogoOverride”: “https://lc-business-assets-demo.s3.ap-southeast-2.amazonaws.com/generic/stalibApple_logo%403x.png”
},
“isInternal”: false,
“links”: [
{
“hyperlinkText”: “You will receive periodic alerts and notifications through this digital pass or via email. More important information can be found ${here}”,
“position”: 0,
“title”: “Important Updates and Events “,
“type”: “URI_WEB”,
“uri”: “https://litecard.com/”,
“usage”: [
“APPLE_WALLET”,
“GOOGLE_WALLET”
]
},
{
“hyperlinkText”: “Login to your member account by clicking ${here}”,
“position”: 1,
“title”: “Member Portal”,
“type”: “URI_WEB”,
“uri”: “https://litecard.com/”,
“usage”: [
“APPLE_WALLET”,
“GOOGLE_WALLET”
]
},
{
“hyperlinkText”: “Hire a venue ${here}”,
“position”: 2,
“title”: “Hire a Venue”,
“type”: “URI_WEB”,
“uri”: “https://litecard.com/”,
“usage”: [
“APPLE_WALLET”,
“GOOGLE_WALLET”
]
},
{
“hyperlinkText”: “Monday – Thursday\n9 am to 8 pm\nFriday\n9 am to 5 pm\nWeekends\n10 am to 5 pm\nView each rooms opening hours ${here}”,
“position”: 3,
“title”: “Opening Hours”,
“type”: “URI_WEB”,
“uri”: “https://litecard.com/”,
“usage”: [
“APPLE_WALLET”,
“GOOGLE_WALLET”
]
},
{
“hyperlinkText”: “View our contact details or submit an online enquiry ${here}\nPOWERED BY LITECARD “,
“position”: 5,
“title”: “Contact Us”,
“type”: “URI_WEB”,
“uri”: “https://litecard.com/”,
“usage”: [
“APPLE_WALLET”,
“GOOGLE_WALLET”
]
}
],
“name”: “Generic Template”,
“status”: “ACTIVE”,
“version”: 1
}
Success Response JSON Payload Schema
A successful 201 Created response will return a JSON payload with the following structure:
| Field | Type | Description | Example Value |
|---|---|---|---|
| templateId | String | The unique identifier of the newly created template | “template_abc123xyz” |
| formId | String | The unique identifier of the newly created form | “form_abc123xyz.” |
Error Response JSON Payload Schema
Error responses will typically have a 4xx or 5xx status code and a JSON payload with the following structure:
| Field | Type | Description | Example Value |
|---|---|---|---|
| errorCode | String | An error code indicating the type of error. | “INVALID_PAYLOAD” |
| message | String | A descriptive error message. | “The provided payload is missing required fields.” |
| statusCode | Number/Integer | Request Status Code | 500 |

Thank you. For any further questions, please contact: dev@litecard.com