FORMAT: 1A HOST: https://api.slickpos.com/api # SlickPOS - Restaurant POS Software API Documentation SlickPOS is a cloud based Point of Sale (POS) software for food outlets. With SlickPOS API you can fetch and create Orders & Receipts. You can also register a Webhook to listen to SlickPOS transactions. ## General Terms * SlickPOS will provide API access necessary for integration (for paid customers). * There will be a development effort for integration that needs to be taken care by a developer from the customer side. SlickPOS does not do customized integrations. * The developer should be experienced in REST API integration and will only get limited assistance from SlickPOS. Our User Guide & Developer API documentation has all the details. * For example, website order integration can approximately take 1 - 2 months of time for a developer. ## Getting API Access To use SlickPOS API, you'll need the Account ID and Authorization Token. SlickPOS generates two types of authorization tokens with different permissions: * Authorization token for account owner's use. * Authorization token for sharing with a Third-party App To get Account Owner credentials, nagivate to Setup -> Shop. To get Third-party App credentials and share with the app owner, navigate to Third-party Apps Tab, enable the required app, and get the credentials. To know more about Third-party Apps click here. ## Authentication To access the SlickPOS API, you need to include the Authorization token in the HTTP request header. Format of the header is given below. `Authorization: Bearer api_token` ## Rate Limits We have rate limits for API. Make sure not to make more than 10 requests / second. When rate limits exceed, you will receive a HTTP 429 status. ## Caching Setup and Products Get setup & Get products API response contains a special HTTP response header `Last-Modified` which specifies the last modified time of the resource. Users can cache this and pass this time as an optional header `If-Modified-Since` in the subsequent requests. The `If-Modified-Since` header will make the request conditional. The server will send back the requested resource, with a 200 status, only if it has been modified after the given time. If the request has not been modified since, the response will be a 304 without any body. If-Modified-Since Syntax uses RFC 1123 Date Format. `If-Modified-Since: , :: GMT` ## Webhook Availability / Retries The transaction events pushed to Webhook endpoints will not be retried on failure, it will move to the next event. Make sure your Webhook endpoint is highly available. ## Third-party Apps SlickPOS has an Apps marketplace that lists integration with other softwares like CRM, Online Orders, Accounting, Inventory, etc. Third-party Apps is a feaure that allows a software provider to develop and maintain their own integration in the SlickPOS marketplace. As a third-part app developer, there are a couple of benefits: 1) Your product gets additional traction from our marketplace listing. 2) You don't have to wait for us to write an integration with your product. If you would like to develop and list an integration, email team@slickpos.com to get started. #### Developer Guide * CRM / loyalty integration. * Orders integration. # Group Setup Account setup resource lets you get setup details about account, registers, cashiers, product categories, taxes & tax groups from your SlickPOS account. ## Get setup [GET /setup{?id}] Get setup details about account, registers, cashiers, product categories, taxes and tax groups. Url Path: `https://api.slickpos.com/api/setup?id=` Note HTTP response header `Last-Modified` which specifies the last modified time of the resource. Users can cache this and pass this time as an optional header `If-Modified-Since` in the subsequent requests. The `If-Modified-Since` header will make the request conditional. The server will send back the requested resource, with a 200 status, only if it has been modified after the given time. If the request has not been modified since, the response will be a 304 without any body. If-Modified-Since Syntax uses RFC 1123 Date Format. `If-Modified-Since: , :: GMT` + Parameters + id (string, required) - Account ID + Request + Headers Authorization: If-Modified-Since: + Response 200 (application/json) + Attributes (object, fixed-type) + account (object, fixed-type) + id: (string, required) - Business or account UUID + email: (string, required) - Account email ID + businessType: (string, required) - Type of business + mobileNumber: (string, required) - Mobile number of the account owner + userId: (string) - Account owner's user ID + userName: (string, required) - Account owner's name + businessName: (string, required) - Business name + businessAddress (object, fixed-type) + streetAddress: (string) + landmark: (string) + city: (string) + state: (string) + zipcode: (number) + country: (string) + location (object, fixed-type) + type (enum [string], required) + Members + `point` + coordinates (array [number]) + inceptionDate: (number) - Epoch timestamp when account was created + options (object, fixed-type) + roundoffTotal: (boolean) - This is deprecated, part of selling preferences now + logoUrl: (string) - Link to business logo + ownerPin: (string) - The owner PIN used to login + isPaid: (boolean) - Is this a paid SlickPOS account + registers (array, fixed-type) + (object) + id: (string) - Register UUID - register is either an outlet or a physical billing counter + name: (string) - Register name + options (object, fixed-type) + receiptHeader: (string) - Text to be printed in the receipt header. + receiptFooter: (string) - Text to be printed in the receipt footer. + receiptPrintSize: (string, required) - Default receipt printer size. + receiptNumberPrefix: (string, required) - 2 character prefix for receipt numbers. + printLogoOnReceipt: (boolean, required) - Is logo printed on receipt (for SlickPOS Web) + printReceipt: (boolean, required) - Is receipt printed (for SlickPOS Web)? + tableNumbers: (string) - If dine in outlet, the range of table numbers available. + serverIPAddress: (string) - If using Waiter app/KDS, the IP address where SlickPOS Desktop runs. + staleTime: (number) - Time minutes after which order tickets (KOT) show as stale in KDS. + isAcceptStatusEnabled: (boolean) - Is accept state required in KDS? + isServedStatusEnabled: (boolean) - Is serve state required in KDS? + isOrderTicketItemStatusEnabled: (boolean) - Is item level status control allowed in KDS? + lastLocalReceiptNumber: (string) - The last syncd receipt number. Local receipt number is the number that got printed on receipt + activeDevice (object, fixed-type) + id: (string, required) - UUID of the device where billing is happening. + name: (string) - A name given for the device where billing is happening. + notificationTokens (array [string]) + crm (object, fixed-type) + id: (string) - CRM app's UUID obtained while app registration. + name: (string) - CRM name. + apiToken: (string) - apiToken will be sent in webhook call header as - Authorization: Bearer . + webhookUrls (object, fixed-type) + getCustomer: (string) - Webhook endpoint to get customer details from CRM. + redeemWallet: (string) - Webhook endpoint to redeem customer's wallet. + redeemCoupon: (string) - Webhook endpoint to redeem a coupon. + additionalDetails: (string) - Use this to store any properties that should be added to the webhook payload. + paymentGateways (array, fixed-type) + (object) + id: (string) - Payment app's UUID obtained while app registration. + name: (string) - Payment app name. + apiToken: (string) - apiToken will be sent in webhook call header as - Authorization: Bearer . + webhookUrls (object, fixed-type) + process: (string) - Webhook endpoint used to initiate a payment transaction. + cancel: (string) - Webhook endoint to cancel a previously initiated transaction. + additionalDetails: (string) - Use this to store any properties that should be added to the webhook payload. + paymentType: (string) - The payment type associated with the payment integration. One of payment types setup with the account. + cashiers (array, fixed-type) + (object) + id: (string) - Cashier UUID + name: (string) - Cashier name + pin: (string) - Cashier PIN that's used to login + role: (string) - Cashier role, like manager + registerId: (string) - The register to which the cashier has access + appUsers (array, fixed-type) + (object) + id: (string) - App user UUID + name: (string) - App user name + pin: (string) - App user PIN thats used to login + waiters (array, fixed-type) + (object) + id: (string) - Waiter UUID + registerId: (string) - Register UUID to which the waiter has access + name: (string) - Waiter name + pin: (string) - PIN used to Login to the Waiter app + kitchenUsers (array, fixed-type) + (object) + id: (string) - Kitchen user UUID + registerId: (string) - Register UUID to which the kitchen user has access + name: (string) - Kitchen user name + pin: (string) - PIN used to login to the kitchen display system (KDS) + printers (array, fixed-type) + (object) + id: (string, required) - Saved Pprinter UUID + name: (string, required) - Saved printer name + type (enum [string], required) - Type of printer + Members + `networkPrint` + `bluetoothPrint` + `androidPrint` + `airPrint` + `silentPrint` + size (enum [string], required) - Printer size + Members + `80mm` + `58mm` + `A4` + `A5` + config (object, fixed-type) + networkPrint (object, fixed-type) + ip: (string) - IP of the network printer + port: (number) - Port number of the network printer + noOfCharactersInLine: (number) - Max characters that can be printed in a line + bluetoothPrint (object, fixed-type) + connectedPrinterName: (string) - Printer name + noOfCharactersInLine: (number) - Max characters that can be printed in a line + airPrint (object, fixed-type) + connectedPrinterId: (string) - Printer ID + silentPrint (object, fixed-type) + connectedPrinterName: (string) - Printer name + noOfCharactersInLine: (number) - Max characters that can be printed in a line + additionalCharges (array, fixed-type) + (object) + id: (string) - Additional charge UUID + name: (string) - Additional charge name + type: (string) - Additional charge type - cash or percentage + value: (number) - Additional charge value + isAutomaticallyAdded: (boolean) - Is additional charge added to every bill? + taxGroupId: (string) - Tax group associated with the additional charge + taxGroups (array, fixed-type) + (object) + name: (string) - Tax group name, a tax group holds one or more taxes + isTaxInclusive: (boolean) - Is tax already included in the marked price? + id: (string) - Tax group UUID + taxIds (array [string]) + taxes (array, fixed-type) + (object) + id: (string, required) - Tax UUID + percent: (number, required) - Tax percentage + name: (string, required) - Tax name + productCategories (array, fixed-type) + (object) + id: (string) - Item category UUID + name: (string) - Item's category name + description: (string) - Category description + order: (number) - Sort order of category, eg: order 1 category is placed above order 2. + orderTicketGroupId: (string) - Order ticket group UUID. Order ticket groups are used to create separate KOTs for different kitchen sections. + orderTicketGroups (array, fixed-type) + (object) + id: (string) - Order ticket (KOT) group UUID + name: (string) - KOT group name, eg: Dessert section in kitchen + description: (string) - A description for the KOT group + additionalCustomerDetails (object, fixed-type) + standard (array, fixed-type) + (object) + name: (string, required) - Custom field name + isPrintableOnReceipt: (boolean, required) - Is custom field printed on receipt? + type (enum [string]) - Type of custom field - text only supported now + Members + `text` + `date` + `address` + custom (array, fixed-type) + (object) + name: (string, required) - Custom field name + isPrintableOnReceipt: (boolean, required) - Is custom field printed on receipt? + type (enum [string]) - Type of custom field - text only supported now + Members + `text` + `date` + `address` + additionalReceiptDetails (object, fixed-type) + standard (array, fixed-type) + (object) + name: (string, required) - Custom field name + isPrintableOnReceipt: (boolean, required) - Is custom field printed on receipt? + type (enum [string]) - Type of custom field - text only supported now + Members + `text` + `date` + `address` + custom (array, fixed-type) + (object) + name: (string, required) - Custom field name + isPrintableOnReceipt: (boolean, required) - Is custom field printed on receipt? + type (enum [string]) - Type of custom field - text only supported now + Members + `text` + `date` + `address` + customCustomerFields (array, fixed-type) + (object) + name: (string, required) - Custom field name + isPrintableOnReceipt: (boolean, required) - Is custom field printed on receipt? + type (enum [string]) - Type of custom field - text only supported now + Members + `text` + `date` + `address` + customReceiptFields (array, fixed-type) + (object) + name: (string, required) - Custom field name + isPrintableOnReceipt: (boolean, required) - Is custom field printed on receipt? + type (enum [string]) - Type of custom field - text only supported now + Members + `text` + `date` + `address` + customerTags (array, fixed-type) + (object) + name: (string, required) - Tag name + color: (string, required) - Tag colour + isPrintableOnReceipt: (boolean, required) - Is tag printed on receipt? + receiptTags (array, fixed-type) + (object) + name: (string, required) - Tag name + color: (string, required) - Tag colour + isPrintableOnReceipt: (boolean, required) - Is tag printed on receipt? + sellingPreferences (object, fixed-type) + isRoundoffDisabled: (boolean) - Used to enable disable rounding off a bill + isQuantityModalPromptEnabled: (boolean) - This is deprecated + isOrderTicketEnabled: (boolean) - Used to enable order tickets (KOT) for food outlets + isListViewDefault: (boolean) - Used to enable a list view in sell page instead of the default grid view + isSequentialLrnEnforced: (boolean) - Used o enable billing only when a device is activated + isQuickBillingEnabled: (boolean) - Quick billing doesn't show options for booking, additional details and tags + isIncomingOrderEnabled: (boolean) - Is online ordering integration enabled? + isQuantityIncreaseDecreaseButtonDisabled: (boolean) - Used to show quantity input as a text box + isAllAndTopCategoryHidden: (boolean) - When enabled, items can be viewed only under respective categories. + isCustomerDataEnforced: (boolean) - Make it mandatory to enter customer mobile number to make a bill + isShiftEnforced: (boolean) - Billing can start only when a shift is started and active + isAutoKotEnabledForOrders: (boolean) - Automatically generate KOTs for accepted incoming orders + printingPreferences (object, fixed-type) + isReceiptPrintedBeforePayment: (boolean) - Enable this to first print the receipt and then record the payment type + isProductNotesPrintedOnReceipt: (boolean) - Print product notes on the receipt + isProductTaxRateNotPrintedOnReceipt: (boolean) - Is product tax rate not printed on receipt? + isSlickPOSFooterNotPrinted: (boolean) - Hide SlickPOS branding in receipt footer + isDisablePrintCopy: (boolean) - Enable this to prevent cashier from printing a duplicate receipt copy + isOrderTicketNumberPrintedOnReceipt: (boolean) - Is KOT number printed on the receipt? + isServerCopyPrinted: (boolean) - Is a duplicate copy of the KOT printed for the server? + isLargerFontKot: (boolean) - Used to enable printing KOTs with larger font + isReceiptDetailsPrintedOnKot: (boolean) - Used to print receipt details on KOT, useful when receipt printing is suppressed for incoming orders. + isReceiptNotPrintedForOrders: (boolean) - Do not print a receipt for incoming / online orders + permissionPreferences (object, fixed-type) + isCashierAllowedToOfferDiscount: (boolean) - Is cashier allowed to offer a manual discount? + isManagerAllowedToEditEmailAddress: (boolean) - Can manager edit email ID while requesting reports? + isShiftSummaryHiddenOnLock: (boolean) - Hide shift summary view for cashiers + plan (object, fixed-type) + logging: (boolean) - Indicates if error logging is enabled for client side + isWaiterAllowed: (boolean) - Allow waiter app / KDS access + variants (array, fixed-type) + (object) + id: (string, required) - Variant UUID + name: (string, required) - Variant name + price: (number, required) - Price to add for this variant + comment: (string) - Used to distinguish two variants with same name, eg: Small - for burger, Small - for Pizza + order: (number) - Sort order of the variant + variantGroups (array, fixed-type) + (object) + id: (string, required) - Variant group UUID + name: (string, required) - Variant group name + variantIds (array [string], required) + order: (number) - Sort order of the variant group + addons (array, fixed-type) + (object) + id: (string, required) - Addon UUID + name: (string, required) - Addon name + price: (number, required) - Addon price + order: (number) - Sort order of the addon + addonGroups (array, fixed-type) + (object) + id: (string, required) - Addon group UUID + name: (string, required) - Addon group name + order: (number) - Sort order of the addon group + addonIds (array [string], required) + minSelectable: (number) - Minimum number of addons to be selected for the item + maxSelectable: (number) - Maximum number of addons that can be selected for the item + customPayments (array, fixed-type) + (object) + name: (string) - Payment type name + description: (string) - Payment type description + discountRules (array, fixed-type) + (object) + id: (string, required) - UUID of the discount rule + couponCode: (string, required) - Coupon code associated with the discount rule + type: (string, required) - Type of discount rule - Cash, percentage or BXGY + level: (string, required) - Level at which discount is applied - Product or Order + registerIds (array [string]) + visibility (object, fixed-type) + startsAt: (number, required) - Epoch timestamp since when discount rule is applicable + endsAt: (number) - Epoch timestamp upto when discount rule is applicable + happyHoursStartTime (object, fixed-type) + hour: (number, required) + minute: (number, required) + happyHoursEndTime (object, fixed-type) + hour: (number, required) + minute: (number, required) + configuration (object, fixed-type) + status: (string, required) - Status of the discount rule - enabled / disabled + isAutomaticallyApplied: (boolean, required) - When enable the rule is automatically applied, else a coupon code has to be entered. + productPriceBooks (array, fixed-type) + (object) + accountId: (string, required) - Business or account UUID + registerId: (string, required) - Register UUID for which the price book is applicable + orderType (enum [string], required) - Order type for which the price book is applicable + Members + `all-order` + `take-away` + `delivery` + `dine-in` + `table-section` + `custom` + name: (string, required) - A name for the price book + tableSectionName: (string) - Table section name if order type is table-section + createdAt: (number, required) - Epoch timestamp when the price book was created + updatedAt: (number) - Epoch timestamp when the price book was updated + products (array, fixed-type) + (object) + id: (string, required) - Item UUID + price: (number) - Item price + isDisabled: (boolean) - Is item diabled? + variants (array, fixed-type) + (object) + id: (string, required) - Variant UUID + price: (number) - Price to add for this variant + isDisabled: (boolean) - Is variant disabled? + addons (array, fixed-type) + (object) + id: (string, required) - Addon UUID + price: (number) - Addon price + isDisabled: (boolean) - Is addon disabled? + itemGroups (array, fixed-type) + (object) + id: (string, required) - Item group UUID + name: (string, required) - Item group name + uniqueItemIds (array [string]) # Group Products Product resource lets you create and update products from your SlickPOS account. ## Get all products [GET /product/list{?accountId}] Get list of all products in a request Url Path: `https://api.slickpos.com/api/product/list?accountId=` Note HTTP response header `Last-Modified` which specifies the last modified time of the resource. Users can cache this and pass this time as an optional header `If-Modified-Since` in the subsequent requests. The `If-Modified-Since` header will make the request conditional. The server will send back the requested resource, with a 200 status, only if it has been modified after the given time. If the request has not been modified since, the response will be a 304 without any body. If-Modified-Since Syntax uses RFC 1123 Date Format. `If-Modified-Since: , :: GMT` + Parameters + accountId (string, required) - Account ID + Request + Headers Authorization: If-Modified-Since: + Response 200 (application/json) + Attributes (array, fixed-type) + (object) + id: (string, required) + categoryId: (string) + name: (string, required) + markedPrice: (number) + taxGroupId: (string) + unitOfMeasure: (string) + costPrice: (number) + sku: (string) + notes: (string) + barcode: (string) + registerId: (string) + variantGroupIds (array [string]) + addonGroupIds (array [string]) + isCombo: (boolean) + comboGroupIds (array, fixed-type) + (object) + id: (string, required) + type (enum [string]) + Members + `itemGroup` + `addonGroup` + addonGroupId: (string) + order: (number) # Group Orders Order resource lets you create unconfirmed orders. Example is orders from online food aggregators. ## Show incoming tab [PUT /setup/showIncomingTab] Show incoming tab in sell screen Url Path: `https://api.slickpos.com/api/setup/showIncomingTab` Note Enable incoming order tab in sell screen with this route. This is a one time setting and it is suggested not to hide if order resources are used. + Request + Headers Authorization: + Attributes (object, fixed-type) + accountId: (string, required) + Response 200 (application/json) + Attributes (object, fixed-type) + message (string) ## Hide incoming tab [PUT /setup/hideIncomingTab] Hide incoming tab in sell screen Url Path: `https://api.slickpos.com/api/setup/hideIncomingTab` + Request + Headers Authorization: + Attributes (object, fixed-type) + accountId: (string, required) + Response 200 (application/json) + Attributes (object, fixed-type) + message (string) ## Get order [GET /order/{?orderId}] Get an order by orderId Url Path: `https://api.slickpos.com/api/order?orderId=` + Parameters + orderId (string, required) - Order ID + Request + Headers Authorization: + Response 200 (application/json) + Attributes (object, fixed-type) + seller (object, fixed-type) + businessId: (string, required) + businessName: (string) + details (object, fixed-type) + orderId: (string, required) + registerId: (string, required) + toBeFulfilledAt: (number, required) + createdAt: (number, required) + lockType (enum [string], required) + Members + `permanent` + notes: (string) + status (enum [string], required) + Members + `placed` + `accepted` + `confimed` + `completed` + `cancelled` + paymentStatus (enum [string], required) + Members + `paid` + `unpaid` + fulfillmentStatus (enum [string], required) + Members + `fulfilled` + `unfulfilled` + saleType (enum [string], required) + Members + `immediate` + `booking` + itemsSold (array, fixed-type, required) + (object) + name: (string, required) + id: (string, required) + quantity: (number, required) + notes: (string) + unitOfMeasure: (string) + totalPriceExcludingDiscountAndTax: (number, required) + discount (object, fixed-type) + id: (string) + name: (string) + type (enum [string], required) + Members + `cash` + `percentage` + value: (number, required) + total: (number, required) + taxGroup (object, fixed-type) + id: (string, required) + name: (string) + netPercent: (number) + total: (number) + taxes (array, fixed-type) + (object) + total: (number) + percent: (number, required) + name: (string) + id: (string) + category (object, fixed-type) + id: (string, required) + name: (string, required) + displayName: (string) + uniqueItemId: (string) + priceExcludingDiscountAndTax: (number) + variants (array, fixed-type) + (object) + id: (string, required) + name: (string, required) + priceExcludingDiscountTax: (number, required) + addons (array, fixed-type) + (object) + id: (string, required) + name: (string, required) + priceExcludingDiscountTax: (number, required) + comboItems (array, fixed-type) + (object) + comboGroupId: (string, required) + comboGroupType (enum [string], required) + Members + `itemGroup` + `addonGroup` + name: (string, required) + uniqueItemId: (string, required) + priceExcludingDiscountTax: (number) + booking (object, fixed-type) + deliveryAt: (number) + isDoorDelivery: (boolean) + notes: (string) + updatedAt: (number) + updatedBy (object, fixed-type) + name: (string) + userId: (string) + mobile: (string) + fulfillment (object, fixed-type) + fulfilledAt: (number, required) + fulfilledBy (object, fixed-type) + name: (string) + userId: (string) + mobile: (string) + isPaymentReceived: (boolean, required) + cancellation (object, fixed-type) + cancelledAt: (number, required) + cancelledBy (object, fixed-type) + name: (string) + userId: (string) + mobile: (string) + notes: (string) + acceptance (object, fixed-type) + acceptedAt: (number, required) + acceptedBy (object, fixed-type) + name: (string) + userId: (string) + mobile: (string) + notes: (string) + priceSummary (object, fixed-type) + total: (number, required) + discount: (number) + additionalCharges (array, fixed-type) + (object) + id: (string) + name: (string, required) + type: (string, required) + value: (number, required) + taxGroup (object, fixed-type) + id: (string, required) + name: (string) + netPercent: (number) + total: (number) + taxes (array, fixed-type) + (object) + total: (number) + percent: (number, required) + name: (string) + id: (string) + totalExcludingTax: (number, required) + additionalCharge: (number) + tax: (number) + roundoff: (number) + subtotal: (number) + bulkDiscount (object, fixed-type) + id: (string) + name: (string) + type (enum [string], required) + Members + `cash` + `percentage` + value: (number, required) + total: (number, required) + taxes (array, fixed-type) + (object) + total: (number) + percent: (number, required) + name: (string) + id: (string) + bookingAmount: (number) + payments (array, fixed-type) + (object) + type (enum [string], required) + Members + `Swiggy` + `Zomato` + `Ubereats` + `Urbanpiper` + `Payment Gateway` + `Paytm` + `Simpl` + amount: (number, required) + notes: (string) + transactedAt: (number, required) + id: (string) + transactedBy (object, fixed-type) + name: (string) + userId: (string) + mobile: (string) + additionalDetails (array, fixed-type) + (object) + name: (string, required) + value: (string, required) + tags (array [string]) + delivery (object, fixed-type) + notes: (string) + type: (string) + status: (string) + assignedAt: (number) + reachedStoreAt: (number) + pickedUpAt: (number) + deliveredAt: (number) + deliveredBy (object, fixed-type) + name: (string) + userId: (string) + mobile: (string) + cancellationReason: (string) + status (enum [string], required) + Members + `placed` + `accepted` + `confimed` + `completed` + `cancelled` + customer (object, fixed-type) + mobile: (string) + name: (string) + email: (string) + shippingAddress (object, fixed-type) + streetAddress: (string) + landmark: (string) + city: (string) + state: (string) + zipcode: (number) + country: (string) + location (object, fixed-type) + type (enum [string], required) + Members + `point` + coordinates (array [number], required) + billingAddress (object, fixed-type) + streetAddress: (string) + landmark: (string) + city: (string) + state: (string) + zipcode: (number) + country: (string) + location (object, fixed-type) + type (enum [string], required) + Members + `point` + coordinates (array [number], required) + additionalDetails (array, fixed-type) + (object) + name: (string, required) + value: (string, required) + tags (array [string]) + channel (object, fixed-type) + name: (string, required) + brandName: (string) + type: (string, required) + externalOrderId: (string, required) + total: (number, required) + appId: (string) + appName: (string) + appOrderId: (string) + isCancellationReasonRequired: (boolean) + cancellationReasons (array, fixed-type) + (object) + name: (string) + value: (string) + canCancelAfterAccepting: (boolean) + receiptDetails (object, fixed-type) + createdAt: (number) + localReceiptNumber: (string) + sequentialReceiptNumber: (string) + receiptId: (string) ## Create an order [POST /order] Create an order Url Path: `https://api.slickpos.com/api/order` + Request + Headers Authorization: + Attributes (object, fixed-type) + seller (object, fixed-type) + businessId: (string, required) + businessName: (string) + details (object, fixed-type) + orderId: (string, required) + registerId: (string, required) + toBeFulfilledAt: (number, required) + createdAt: (number, required) + isRunningOrder: (boolean) - For DineIn orders. To identify if order will get items update. If its true, the order update will be accepted for this order else not. + tableNumber: (string) - For DineIn orders. To map orders to table of POS. + lockType (enum [string], required) + Members + `Permanent` + notes: (string) + status (enum [string], required) + Members + `placed` + `accepted` + `confimed` + `completed` + `cancelled` + paymentStatus (enum [string], required) + Members + `paid` + `unpaid` + fulfillmentStatus (enum [string], required) + Members + `fulfilled` + `unfulfilled` + saleType (enum [string], required) + Members + `immediate` + `booking` + itemsSold (array, fixed-type, required) + (object) + name: (string, required) + id: (string, required) + quantity: (number, required) + notes: (string) + unitOfMeasure: (string) + totalPriceExcludingDiscountAndTax: (number, required) + discount (object, fixed-type) + id: (string) + name: (string) + type (enum [string], required) + Members + `cash` + `percentage` + value: (number, required) + total: (number, required) + taxGroup (object, fixed-type) + id: (string, required) + name: (string) + netPercent: (number) + total: (number) + taxes (array, fixed-type) + (object) + total: (number) + percent: (number, required) + name: (string) + id: (string) + category (object, fixed-type) + id: (string, required) + name: (string, required) + displayName: (string) + uniqueItemId: (string) + priceExcludingDiscountAndTax: (number) + variants (array, fixed-type) + (object) + id: (string, required) + name: (string, required) + priceExcludingDiscountTax: (number, required) + addons (array, fixed-type) + (object) + id: (string, required) + name: (string, required) + priceExcludingDiscountTax: (number, required) + comboItems (array, fixed-type) + (object) + comboGroupId: (string, required) + comboGroupType (enum [string], required) + Members + `itemGroup` + `addonGroup` + name: (string, required) + uniqueItemId: (string, required) + priceExcludingDiscountTax: (number) + booking (object, fixed-type) + deliveryAt: (number) + isDoorDelivery: (boolean) + notes: (string) + updatedAt: (number) + updatedBy (object, fixed-type) + name: (string) + userId: (string) + mobile: (string) + fulfillment (object, fixed-type) + fulfilledAt: (number, required) + fulfilledBy (object, fixed-type) + name: (string) + userId: (string) + mobile: (string) + isPaymentReceived: (boolean, required) + priceSummary (object, fixed-type) + total: (number, required) + discount: (number, required) + additionalCharges (array, fixed-type) + (object) + id: (string) + name: (string, required) + type: (string, required) + value: (number, required) + taxGroup (object, fixed-type) + id: (string, required) + name: (string) + netPercent: (number) + total: (number) + taxes (array, fixed-type) + (object) + total: (number) + percent: (number, required) + name: (string) + id: (string) + totalExcludingTax: (number, required) + additionalCharge: (number) + tax: (number, required) + roundoff: (number) + subtotal: (number, required) + bulkDiscount (object, fixed-type) + id: (string) + name: (string) + type (enum [string], required) + Members + `cash` + `percentage` + value: (number, required) + total: (number, required) + taxes (array, fixed-type) + (object) + total: (number) + percent: (number, required) + name: (string) + id: (string) + bookingAmount: (number) + payments (array, fixed-type) + (object) + type (enum [string], required) + Members + `Swiggy` + `Zomato` + `Ubereats` + `Urbanpiper` + `Payment Gateway` + `Paytm` + `Simpl` + amount: (number, required) + notes: (string) + transactedAt: (number, required) + id: (string) + transactedBy (object, fixed-type) + name: (string) + userId: (string) + mobile: (string) + additionalDetails (array, fixed-type) + (object) + name: (string, required) + value: (string, required) + tags (array [string]) + delivery (object, fixed-type) + notes: (string) + type: (string) + status: (string) + assignedAt: (number) + reachedStoreAt: (number) + pickedUpAt: (number) + deliveredAt: (number) + deliveredBy (object, fixed-type) + name: (string) + userId: (string) + mobile: (string) + acceptance (object, fixed-type) + acceptedAt: (number, required) + acceptedBy (object, fixed-type) + name: (string) + userId: (string) + mobile: (string) + ready (object, fixed-type) + readyAt: (number, required) + readyBy (object, fixed-type) + name: (string) + userId: (string) + mobile: (string) + cancellationReason: (string) + customer (object, fixed-type) + mobile: (string) + name: (string) + email: (string) + shippingAddress (object, fixed-type) + streetAddress: (string) + landmark: (string) + city: (string) + state: (string) + zipcode: (number) + country: (string) + location (object, fixed-type) + type (enum [string], required) + Members + `point` + coordinates (array [number], required) + billingAddress (object, fixed-type) + streetAddress: (string) + landmark: (string) + city: (string) + state: (string) + zipcode: (number) + country: (string) + location (object, fixed-type) + type (enum [string], required) + Members + `point` + coordinates (array [number], required) + additionalDetails (array, fixed-type) + (object) + name: (string, required) + value: (string, required) + tags (array [string]) + channel (object, fixed-type) + name: (string, required) + brandName: (string) + type: (string, required) + externalOrderId: (string, required) + total: (number, required) + appId: (string) + appName: (string) + appOrderId: (string) + isCancellationReasonRequired: (boolean) + cancellationReasons (array, fixed-type) + (object) + name: (string) + value: (string) + canCancelAfterAccepting: (boolean) + pushNotification (object, fixed-type) + title: (string, required) + type: (string, required) + image: (string) + message: (string) + needAcknowledgement: (boolean, required) + Response 200 (application/json) + Attributes (object, fixed-type) + message (string) ## Accept an order [PUT /order/accept] Accept an order through API. For auto accept feature use this API after order is created. For auto accept feature to work in SlickPOS, you have to "Enable automatic order ticket / KOT generation for incoming orders" in selling peference in web.slickpos.com Url Path: `https://api.slickpos.com/api/order/accept` + Request + Headers Authorization: + Attributes (object, fixed-type) + orderId: (string, required) + acceptedAt: (number, required) + acceptedBy (object, fixed-type) + name: (string) + userId: (string) + mobile: (string) + pushNotification (object, fixed-type) - This is required for auto accept. Set the title(eg. "Order status updated") and type (eg. "order-update") to string. + title: (string, required) + type: (string, required) + needAcknowledgement: (boolean, required) - Set this to true for auto accept + Response 200 (application/json) + Attributes (object, fixed-type) + orderId (string) ## Update an order [PUT /order/update] Update an order items. Items can be added / removed. 'itemsSold' field in the payload has to be all the items in the order at that point. Payload has to be the full order details. `Update is only for DineIn order` Url Path: `https://api.slickpos.com/api/order/update` + Request + Headers Authorization: + Attributes (object, fixed-type) + details (object, fixed-type) + orderId: (string, required) + updateReferenceId: (string, required) - Unique GUID for each update + notes: (string) + paymentStatus (enum [string], required) + Members + `paid` + `unpaid` + fulfillmentStatus (enum [string], required) + Members + `fulfilled` + `unfulfilled` + itemsSold (array, fixed-type, required) + (object) + name: (string, required) + id: (string, required) + quantity: (number, required) + notes: (string) + unitOfMeasure: (string) + totalPriceExcludingDiscountAndTax: (number, required) + discount (object, fixed-type) + id: (string) + name: (string) + type (enum [string], required) + Members + `cash` + `percentage` + value: (number, required) + total: (number, required) + taxGroup (object, fixed-type) + id: (string, required) + name: (string) + netPercent: (number) + total: (number) + taxes (array, fixed-type) + (object) + total: (number) + percent: (number, required) + name: (string) + id: (string) + category (object, fixed-type) + id: (string, required) + name: (string, required) + displayName: (string) + uniqueItemId: (string) + priceExcludingDiscountAndTax: (number) + variants (array, fixed-type) + (object) + id: (string, required) + name: (string, required) + priceExcludingDiscountTax: (number, required) + addons (array, fixed-type) + (object) + id: (string, required) + name: (string, required) + priceExcludingDiscountTax: (number, required) + comboItems (array, fixed-type) + (object) + comboGroupId: (string, required) + comboGroupType (enum [string], required) + Members + `itemGroup` + `addonGroup` + name: (string, required) + uniqueItemId: (string, required) + priceExcludingDiscountTax: (number) + priceSummary (object, fixed-type) + total: (number, required) + discount: (number, required) + additionalCharges (array, fixed-type) + (object) + id: (string) + name: (string, required) + type: (string, required) + value: (number, required) + taxGroup (object, fixed-type) + id: (string, required) + name: (string) + netPercent: (number) + total: (number) + taxes (array, fixed-type) + (object) + total: (number) + percent: (number, required) + name: (string) + id: (string) + totalExcludingTax: (number, required) + additionalCharge: (number) + tax: (number, required) + roundoff: (number) + subtotal: (number, required) + bulkDiscount (object, fixed-type) + id: (string) + name: (string) + type (enum [string], required) + Members + `cash` + `percentage` + value: (number, required) + total: (number, required) + taxes (array, fixed-type) + (object) + total: (number) + percent: (number, required) + name: (string) + id: (string) + bookingAmount: (number) + payments (array, fixed-type) + (object) + type (enum [string], required) + Members + `Swiggy` + `Zomato` + `Ubereats` + `Urbanpiper` + `Payment Gateway` + `Paytm` + `Simpl` + amount: (number, required) + notes: (string) + transactedAt: (number, required) + id: (string) + transactedBy (object, fixed-type) + name: (string) + userId: (string) + mobile: (string) + additionalDetails (array, fixed-type) + (object) + name: (string, required) + value: (string, required) + tags (array [string]) + delivery (object, fixed-type) + notes: (string) + type: (string) + status: (string) + assignedAt: (number) + reachedStoreAt: (number) + pickedUpAt: (number) + deliveredAt: (number) + deliveredBy (object, fixed-type) + name: (string) + userId: (string) + mobile: (string) + riderBodyTemperature: (number) + cancellationReason: (string) + miscellaneous (object, fixed-type) + isRbtCheckEnabled: (boolean, required) + rbtMax: (number) + rbtValidationMsg: (string) + customer (object, fixed-type) + mobile: (string) + name: (string) + email: (string) + shippingAddress (object, fixed-type) + streetAddress: (string) + landmark: (string) + city: (string) + state: (string) + zipcode: (number) + country: (string) + location (object, fixed-type) + type (enum [string], required) + Members + `point` + coordinates (array [number], required) + billingAddress (object, fixed-type) + streetAddress: (string) + landmark: (string) + city: (string) + state: (string) + zipcode: (number) + country: (string) + location (object, fixed-type) + type (enum [string], required) + Members + `point` + coordinates (array [number], required) + additionalDetails (array, fixed-type) + (object) + name: (string, required) + value: (string, required) + tags (array [string]) + needAcknowledgement: (boolean, required) + updatedAt: (number) + updatedBy (object, fixed-type) + name: (string) + userId: (string) + mobile: (string) + Response 200 (application/json) + Attributes (object, fixed-type) + orderId (string) ## Complete an order [PUT /order/complete] Complete an order. Payment here is a full payment. If cash needs to be collected then set the paymentsStatus as 'unpaid' and payments as empty `Complete is only for DineIn order` Url Path: `https://api.slickpos.com/api/order/complete` + Request + Headers Authorization: + Attributes (object, fixed-type) + orderId: (string, required) + paymentStatus (enum [string], required) + Members + `paid` + `unpaid` + payments (array, fixed-type) + (object) + type (enum [string], required) + Members + `Swiggy` + `Zomato` + `Ubereats` + `Urbanpiper` + `Payment Gateway` + `Paytm` + `Simpl` + amount: (number, required) + notes: (string) + transactedAt: (number, required) + id: (string) + transactedBy (object, fixed-type) + name: (string) + userId: (string) + mobile: (string) + completedAt: (number, required) + completedBy (object, fixed-type) + name: (string) + userId: (string) + mobile: (string) + Response 200 (application/json) + Attributes (object, fixed-type) + orderId (string) ## Cancel an order [PUT /order/cancel] Accept an order Url Path: `https://api.slickpos.com/api/order/cancel` + Request + Headers Authorization: + Attributes (object, fixed-type) + accountId: (string) + toBeFulfilledAt: (number) + orderId: (string, required) + notifiedAt: (number) + cancelledAt: (number, required) + cancelledBy (object, fixed-type) + name: (string) + userId: (string) + mobile: (string) + cancellationReason: (string) + pushNotification (object, fixed-type) + title: (string, required) + type: (string, required) + image: (string) + message: (string) + needAcknowledgement: (boolean, required) + Response 200 (application/json) + Attributes (object, fixed-type) + orderId (string) # Group Receipt - Sales Ledger Receipt resource lets you create and get sales details from your SlickPOS account. ## Get a receipt [GET /sales{?accountId}{?createdAt}{?localReceiptNumber}] Get details about a single receipt per request Url Path: `https://api.slickpos.com/api/sales?accountId=&createdAt=&localReceiptNumber=` + Parameters + accountId (string, required) - Account ID + createdAt (string, required) - Created timestamp of the receipt + localReceiptNumber (string, required) - Local receipt number of the receipt + Request + Headers Authorization: + Response 200 (application/json) + Attributes (object, fixed-type) + seller (object, fixed-type) + businessId: (string, required) + businessName: (string, required) + email: (string) + timezone: (string) + owner (object, fixed-type) + name: (string) + userId: (string) + mobile: (string) + businessAddress (object, fixed-type) + streetAddress: (string) + landmark: (string) + city: (string) + state: (string) + zipcode: (number) + country: (string) + location (object, fixed-type) + type (enum [string], required) + Members + `point` + coordinates (array [number], required) + details (object, fixed-type) + registerName: (string, required) + registerId: (string, required) + receiptHeader: (string) + receiptFooter: (string) + localReceiptNumber: (string, required) + sequentialReceiptNumber: (string) + receiptId: (string) + publicReceiptId: (string) + createdAt: (number, required) + fulfillmentStatus: (string) + paymentStatus: (string) + saleType: (string) + source: (string) + createdBy (object, fixed-type) + name: (string) + userId: (string) + mobile: (string) + itemsSold (array, fixed-type) + (object) + name: (string, required) + id: (string, required) + quantity: (number, required) + notes: (string) + unitOfMeasure: (string) + totalPriceExcludingDiscountAndTax: (number, required) + discount (object, fixed-type) + id: (string) + name: (string) + type (enum [string], required) + Members + `cash` + `percentage` + value: (number, required) + total: (number, required) + isAutomaticallyApplied: (boolean) + taxGroup (object, fixed-type) + id: (string, required) + name: (string) + netPercent: (number, required) + taxes (array, fixed-type) + (object) + total: (number) + percent: (number) + name: (string) + id: (string) + category (object, fixed-type) + id: (string, required) + name: (string, required) + displayName: (string) + uniqueItemId: (string) + priceExcludingDiscountAndTax: (number) + variants (array, fixed-type) + (object) + id: (string, required) + name: (string, required) + price: (number) + priceExcludingDiscountTax: (number, required) + addons (array, fixed-type) + (object) + id: (string, required) + name: (string, required) + price: (number) + priceExcludingDiscountTax: (number, required) + comboItems (array, fixed-type) + (object) + comboGroupId: (string, required) + comboGroupType (enum [string], required) + Members + `itemGroup` + `addonGroup` + name: (string, required) + uniqueItemId: (string, required) + priceExcludingDiscountTax: (number) + booking (object, fixed-type) + deliveryAt: (number, required) + isDoorDelivery: (boolean) + notes: (string) + updatedAt: (number) + updatedBy (object, fixed-type) + name: (string) + userId: (string) + mobile: (string) + fulfillment (object, fixed-type) + fulfilledAt: (number, required) + fulfilledBy (object, fixed-type) + name: (string) + userId: (string) + mobile: (string) + isPaymentReceived: (boolean, required) + priceSummary (object, fixed-type) + total: (number, required) + discount: (number, required) + tax: (number, required) + roundoff: (number, required) + subtotal: (number, required) + refund: (number) + bulkDiscount (object, fixed-type) + id: (string) + name: (string) + type (enum [string], required) + Members + `cash` + `percentage` + value: (number, required) + total: (number, required) + isAutomaticallyApplied: (boolean) + additionalCharges (array, fixed-type) + (object) + id: (string) + name: (string, required) + type: (string, required) + value: (number, required) + taxGroup (object, fixed-type) + id: (string, required) + name: (string) + netPercent: (number, required) + taxes (array, fixed-type) + (object) + total: (number) + percent: (number, required) + name: (string) + id: (string) + totalExcludingTax: (number, required) + additionalCharge: (number) + taxes (array, fixed-type) + (object) + total: (number) + percent: (number) + name: (string) + id: (string) + bookingAmount: (number) + payments (array, fixed-type) + (object) + type (enum [string], required) + Members + `cash` + `card` + `other` + amount: (number, required) + notes: (string) + transactedAt: (number, required) + id: (string) + transactedBy (object, fixed-type) + name: (string) + userId: (string) + mobile: (string) + gateway (object, fixed-type) + id: (string) + name: (string) + transactionId: (string) + cancellation (object, fixed-type) + isRefunded: (boolean, required) + cancelledAt: (number, required) + notes: (string) + cancelledBy (object, fixed-type) + name: (string) + userId: (string) + mobile: (string) + additionalDetails (array, fixed-type) + (object) + name: (string, required) + value: (string, required) + tags (array [string]) + draftHistory (array, fixed-type) + (object) + createdAt: (number, required) + createdBy (object, fixed-type) + name: (string) + userId: (string) + mobile: (string) + eventType (enum [string], required) + Members + `saved` + `printed` + data (object, fixed-type) + itemsSold (array, fixed-type, required) + (object) + name: (string, required) + id: (string, required) + quantity: (number, required) + notes: (string) + unitOfMeasure: (string) + totalPriceExcludingDiscountAndTax: (number, required) + discount (object, fixed-type) + id: (string) + name: (string) + type (enum [string], required) + Members + `cash` + `percentage` + value: (number, required) + total: (number, required) + isAutomaticallyApplied: (boolean) + taxGroup (object, fixed-type) + id: (string, required) + name: (string) + netPercent: (number, required) + taxes (array, fixed-type) + (object) + total: (number) + percent: (number, required) + name: (string) + id: (string) + category (object, fixed-type) + id: (string, required) + name: (string, required) + displayName: (string) + uniqueItemId: (string) + priceExcludingDiscountAndTax: (number) + variants (array, fixed-type) + (object) + id: (string, required) + name: (string, required) + price: (number) + priceExcludingDiscountTax: (number, required) + addons (array, fixed-type) + (object) + id: (string, required) + name: (string, required) + price: (number) + priceExcludingDiscountTax: (number, required) + comboItems (array, fixed-type) + (object) + comboGroupId: (string, required) + comboGroupType (enum [string], required) + Members + `itemGroup` + `addonGroup` + name: (string, required) + uniqueItemId: (string, required) + priceExcludingDiscountTax: (number) + priceSummary (object, fixed-type) + total: (number, required) + discount: (number, required) + additionalCharges (array, fixed-type) + (object) + id: (string) + name: (string, required) + type: (string, required) + value: (number, required) + taxGroup (object, fixed-type) + id: (string, required) + name: (string) + netPercent: (number, required) + taxes (array, fixed-type) + (object) + total: (number) + percent: (number, required) + name: (string) + id: (string) + totalExcludingTax: (number, required) + additionalCharge: (number) + tax: (number, required) + roundoff: (number, required) + subtotal: (number, required) + bulkDiscount (object, fixed-type) + id: (string) + name: (string) + type (enum [string], required) + Members + `cash` + `percentage` + value: (number, required) + total: (number, required) + isAutomaticallyApplied: (boolean) + taxes (array, fixed-type) + (object) + total: (number) + percent: (number, required) + name: (string) + id: (string) + bookingAmount: (number) + orderTickets (array, fixed-type) + (object) + id: (string, required) + number: (string, required) + createdAt: (number, required) + createdBy (object, fixed-type) + name: (string) + userId: (string) + mobile: (string) + addedItems (array, fixed-type) + (object) + name: (string, required) + id: (string, required) + quantity: (number, required) + uniqueItemId: (string) + variants (array, fixed-type) + (object) + name: (string, required) + id: (string, required) + addons (array, fixed-type) + (object) + name: (string, required) + id: (string, required) + comboItems (array, fixed-type) + (object) + name: (string, required) + uniqueItemId: (string, required) + comboGroupType (enum [string], required) + Members + `itemGroup` + `addonGroup` + notes: (string) + removedItems (array, fixed-type) + (object) + name: (string, required) + id: (string, required) + quantity: (number, required) + uniqueItemId: (string) + variants (array, fixed-type) + (object) + name: (string, required) + id: (string, required) + addons (array, fixed-type) + (object) + name: (string, required) + id: (string, required) + comboItems (array, fixed-type) + (object) + name: (string, required) + uniqueItemId: (string, required) + comboGroupType (enum [string], required) + Members + `itemGroup` + `addonGroup` + notes: (string) + notes: (string) + orderTicketGroupId: (string) + orderTicketGroupName: (string) + draftName: (string) + deviceId: (string) + tableSectionName: (string) + draftId: (string) + lockType: (string) + printHistory (array, fixed-type) + (object) + createdAt: (number, required) + user (object, fixed-type) + name: (string) + userId: (string) + mobile: (string) + items (array, fixed-type, required) + (object) + name: (string, required) + id: (string, required) + quantity: (number, required) + notes: (string) + unitOfMeasure: (string) + totalPriceExcludingDiscountAndTax: (number, required) + discount (object, fixed-type) + id: (string) + name: (string) + type (enum [string], required) + Members + `cash` + `percentage` + value: (number, required) + total: (number, required) + isAutomaticallyApplied: (boolean) + taxGroup (object, fixed-type) + id: (string, required) + name: (string) + netPercent: (number, required) + taxes (array, fixed-type) + (object) + total: (number) + percent: (number, required) + name: (string) + id: (string) + category (object, fixed-type) + id: (string, required) + name: (string, required) + displayName: (string) + uniqueItemId: (string) + priceExcludingDiscountAndTax: (number) + variants (array, fixed-type) + (object) + id: (string, required) + name: (string, required) + price: (number) + priceExcludingDiscountTax: (number, required) + addons (array, fixed-type) + (object) + id: (string, required) + name: (string, required) + price: (number) + priceExcludingDiscountTax: (number, required) + comboItems (array, fixed-type) + (object) + comboGroupId: (string, required) + comboGroupType (enum [string], required) + Members + `itemGroup` + `addonGroup` + name: (string, required) + uniqueItemId: (string, required) + priceExcludingDiscountTax: (number) + priceSummary (object, fixed-type) + total: (number, required) + discount: (number, required) + additionalCharges (array, fixed-type) + (object) + id: (string) + name: (string, required) + type: (string, required) + value: (number, required) + taxGroup (object, fixed-type) + id: (string, required) + name: (string) + netPercent: (number, required) + taxes (array, fixed-type) + (object) + total: (number) + percent: (number, required) + name: (string) + id: (string) + totalExcludingTax: (number, required) + additionalCharge: (number) + tax: (number, required) + roundoff: (number, required) + subtotal: (number, required) + bulkDiscount (object, fixed-type) + id: (string) + name: (string) + type (enum [string], required) + Members + `cash` + `percentage` + value: (number, required) + total: (number, required) + isAutomaticallyApplied: (boolean) + taxes (array, fixed-type) + (object) + total: (number) + percent: (number, required) + name: (string) + id: (string) + bookingAmount: (number) + delivery (object, fixed-type) + notes: (string) + type: (string) + status: (string) + assignedAt: (number) + reachedStoreAt: (number) + pickedUpAt: (number) + deliveredAt: (number) + deliveredBy (object, fixed-type) + name: (string) + userId: (string) + mobile: (string) + riderBodyTemperature: (number) + occupiedSeats: (number) + redemption (object, fixed-type) + crm (object, fixed-type) + id: (string) + name: (string, required) + isReceiptSavedWhileRedemption: (boolean, required) + coupon (object, fixed-type) + code: (string, required) + description: (string) + discountValue: (number, required) + discountType (enum [string], required) + Members + `fixed` + `percentage` + discountLevel (enum [string], required) + Members + `order` + `product` + wallet (object, fixed-type) + redemptionValue: (number) + sourceVersion: (string) + isSlickPOSFooterNotPrinted: (boolean) + splitBillsByCustomer (object, fixed-type) + type (enum [string], required) + Members + `equally` + `by-items` + noOfCustomers: (number, required) + splits (array, fixed-type, required) + (object) + id: (string) + paymentType: (string) + paymentAmount: (number) + customerMobile: (string) + customerName: (string) + itemsSold (array, fixed-type) + (object) + name: (string, required) + id: (string, required) + quantity: (number, required) + notes: (string) + unitOfMeasure: (string) + totalPriceExcludingDiscountAndTax: (number, required) + discount (object, fixed-type) + id: (string) + name: (string) + type (enum [string], required) + Members + `cash` + `percentage` + value: (number, required) + total: (number, required) + isAutomaticallyApplied: (boolean) + taxGroup (object, fixed-type) + id: (string, required) + name: (string) + netPercent: (number, required) + taxes (array, fixed-type) + (object) + total: (number) + percent: (number, required) + name: (string) + id: (string) + category (object, fixed-type) + id: (string, required) + name: (string, required) + displayName: (string) + uniqueItemId: (string) + priceExcludingDiscountAndTax: (number) + variants (array, fixed-type) + (object) + id: (string, required) + name: (string, required) + price: (number) + priceExcludingDiscountTax: (number, required) + addons (array, fixed-type) + (object) + id: (string, required) + name: (string, required) + price: (number) + priceExcludingDiscountTax: (number, required) + comboItems (array, fixed-type) + (object) + comboGroupId: (string, required) + comboGroupType (enum [string], required) + Members + `itemGroup` + `addonGroup` + name: (string, required) + uniqueItemId: (string, required) + priceExcludingDiscountTax: (number) + priceSummary (object, fixed-type) + total: (number, required) + discount: (number, required) + additionalCharges (array, fixed-type) + (object) + id: (string) + name: (string, required) + type: (string, required) + value: (number, required) + taxGroup (object, fixed-type) + id: (string, required) + name: (string) + netPercent: (number, required) + taxes (array, fixed-type) + (object) + total: (number) + percent: (number, required) + name: (string) + id: (string) + totalExcludingTax: (number, required) + additionalCharge: (number) + tax: (number, required) + roundoff: (number, required) + subtotal: (number, required) + bulkDiscount (object, fixed-type) + id: (string) + name: (string) + type (enum [string], required) + Members + `cash` + `percentage` + value: (number, required) + total: (number, required) + isAutomaticallyApplied: (boolean) + taxes (array, fixed-type) + (object) + total: (number) + percent: (number, required) + name: (string) + id: (string) + bookingAmount: (number) + customer (object, fixed-type) + mobile: (string) + name: (string) + email: (string) + shippingAddress (object, fixed-type) + streetAddress: (string) + landmark: (string) + city: (string) + state: (string) + zipcode: (number) + country: (string) + location (object, fixed-type) + type (enum [string], required) + Members + `point` + coordinates (array [number], required) + billingAddress (object, fixed-type) + streetAddress: (string) + landmark: (string) + city: (string) + state: (string) + zipcode: (number) + country: (string) + location (object, fixed-type) + type (enum [string], required) + Members + `point` + coordinates (array [number], required) + additionalDetails (array, fixed-type) + (object) + name: (string, required) + value: (string, required) + tags (array [string]) + order (object, fixed-type) + orderId: (string, required) + channel (object, fixed-type) + name: (string, required) + brandName: (string) + type: (string, required) + externalOrderId: (string, required) + total: (number, required) + appId: (string) + appName: (string) + appOrderId: (string) + isCancellationReasonRequired: (boolean) + cancellationReasons (array, fixed-type) + (object) + name: (string) + value: (string) + isPaid: (boolean) + canCancelAfterAccepting: (boolean) + placedAt: (number) + acceptedAt: (number) + readyAt: (number) + completedAt: (number) + notifiedAt: (number) + pushNotification (object, fixed-type) + title: (string, required) + type: (string, required) + image: (string) + message: (string) + modelVersion (enum [string]) + Members + `v2` + `v1` ## Get receipts by date [GET /sales/daily{?accountId}{?receiptDate}{?registerId}{?lastEvalKey}] Get detailed list of receipts made in a given day with a limit of maximum 25 receipts per request. If there are more receipts for the given day, a lastEvalKey is retuned in the response. Use the lastEvalKey in the subsequent request to get the next set of 25 items. Url Path: `https://api.slickpos.com/api/sales/daily?accountId=&receiptDate=®isterId=&lastEvalKey=` + Parameters + accountId (string, required) - Account ID + registerId (string, required) - Register ID + receiptDate (string, required) - Receipt date + lastEvalKey (string) - Key from previous request. Used when there are more items to paginate + Request + Headers Authorization: + Response 200 (application/json) ## Create a receipt [POST /sales] Create a single sale per request Url Path: `https://api.slickpos.com/api/sales` + Request + Headers Authorization: + Attributes (object, fixed-type) + seller (object, fixed-type) + businessId: (string, required) + businessName: (string, required) + email: (string) + timezone: (string) + owner (object, fixed-type) + name: (string) + userId: (string) + mobile: (string) + businessAddress (object, fixed-type) + streetAddress: (string) + landmark: (string) + city: (string) + state: (string) + zipcode: (number) + country: (string) + location (object, fixed-type) + type (enum [string], required) + Members + `point` + coordinates (array [number], required) + order (object, fixed-type) + orderId: (string, required) + channel (object, fixed-type) + name: (string, required) + brandName: (string) + type: (string, required) + externalOrderId: (string, required) + total: (number, required) + appId: (string) + appName: (string) + appOrderId: (string) + isCancellationReasonRequired: (boolean) + cancellationReasons (array, fixed-type) + (object) + name: (string) + value: (string) + isPaid: (boolean) + canCancelAfterAccepting: (boolean) + placedAt: (number) + acceptedAt: (number) + readyAt: (number) + completedAt: (number) + notifiedAt: (number) + details (object, fixed-type) + registerName: (string, required) + registerId: (string, required) + receiptHeader: (string) + receiptFooter: (string) + localReceiptNumber: (string, required) + createdAt: (number, required) + fulfillmentStatus (enum [string], required) + Members + `fulfilled` + `unfulfilled` + `cancelled` + paymentStatus (enum [string], required) + Members + `paid` + `unpaid` + saleType (enum [string], required) + Members + `immediate` + `booking` + source (enum [string], required) + Members + `android` + `ios` + `web` + `api` + `desktop` + createdBy (object, fixed-type) + name: (string) + userId: (string) + mobile: (string) + itemsSold (array, fixed-type, required) + (object) + name: (string, required) + id: (string, required) + quantity: (number, required) + notes: (string) + unitOfMeasure: (string) + totalPriceExcludingDiscountAndTax: (number, required) + discount (object, fixed-type) + id: (string) + name: (string) + type (enum [string], required) + Members + `cash` + `percentage` + value: (number, required) + total: (number, required) + isAutomaticallyApplied: (boolean) + taxGroup (object, fixed-type) + id: (string, required) + name: (string) + netPercent: (number, required) + taxes (array, fixed-type) + (object) + total: (number) + percent: (number, required) + name: (string) + id: (string) + category (object, fixed-type) + id: (string, required) + name: (string, required) + displayName: (string) + uniqueItemId: (string) + priceExcludingDiscountAndTax: (number) + variants (array, fixed-type) + (object) + id: (string, required) + name: (string, required) + price: (number) + priceExcludingDiscountTax: (number, required) + addons (array, fixed-type) + (object) + id: (string, required) + name: (string, required) + price: (number) + priceExcludingDiscountTax: (number, required) + comboItems (array, fixed-type) + (object) + comboGroupId: (string, required) + comboGroupType (enum [string], required) + Members + `itemGroup` + `addonGroup` + name: (string, required) + uniqueItemId: (string, required) + priceExcludingDiscountTax: (number) + booking (object, fixed-type) + deliveryAt: (number, required) + isDoorDelivery: (boolean) + notes: (string) + priceSummary (object, fixed-type) + total: (number, required) + discount: (number, required) + additionalCharges (array, fixed-type) + (object) + id: (string) + name: (string, required) + type: (string, required) + value: (number, required) + taxGroup (object, fixed-type) + id: (string, required) + name: (string) + netPercent: (number, required) + taxes (array, fixed-type) + (object) + total: (number) + percent: (number, required) + name: (string) + id: (string) + totalExcludingTax: (number, required) + additionalCharge: (number) + tax: (number, required) + roundoff: (number, required) + subtotal: (number, required) + bulkDiscount (object, fixed-type) + id: (string) + name: (string) + type (enum [string], required) + Members + `cash` + `percentage` + value: (number, required) + total: (number, required) + isAutomaticallyApplied: (boolean) + taxes (array, fixed-type) + (object) + total: (number) + percent: (number, required) + name: (string) + id: (string) + bookingAmount: (number) + payment (object, fixed-type) + type (enum [string], required) + Members + `cash` + `card` + `other` + amount: (number, required) + notes: (string) + transactedAt: (number, required) + id: (string) + transactedBy (object, fixed-type) + name: (string) + userId: (string) + mobile: (string) + gateway (object, fixed-type) + id: (string) + name: (string) + transactionId: (string) + payments (array, fixed-type) + (object) + type (enum [string], required) + Members + `cash` + `card` + `other` + amount: (number, required) + notes: (string) + transactedAt: (number, required) + id: (string) + transactedBy (object, fixed-type) + name: (string) + userId: (string) + mobile: (string) + gateway (object, fixed-type) + id: (string) + name: (string) + transactionId: (string) + additionalDetails (array, fixed-type) + (object) + name: (string, required) + value: (string, required) + tags (array [string]) + draftHistory (array, fixed-type) + (object) + createdAt: (number, required) + createdBy (object, fixed-type) + name: (string) + userId: (string) + mobile: (string) + eventType (enum [string], required) + Members + `saved` + `printed` + data (object, fixed-type) + itemsSold (array, fixed-type, required) + (object) + name: (string, required) + id: (string, required) + quantity: (number, required) + notes: (string) + unitOfMeasure: (string) + totalPriceExcludingDiscountAndTax: (number, required) + discount (object, fixed-type) + id: (string) + name: (string) + type (enum [string], required) + Members + `cash` + `percentage` + value: (number, required) + total: (number, required) + isAutomaticallyApplied: (boolean) + taxGroup (object, fixed-type) + id: (string, required) + name: (string) + netPercent: (number, required) + taxes (array, fixed-type) + (object) + total: (number) + percent: (number, required) + name: (string) + id: (string) + category (object, fixed-type) + id: (string, required) + name: (string, required) + displayName: (string) + uniqueItemId: (string) + priceExcludingDiscountAndTax: (number) + variants (array, fixed-type) + (object) + id: (string, required) + name: (string, required) + price: (number) + priceExcludingDiscountTax: (number, required) + addons (array, fixed-type) + (object) + id: (string, required) + name: (string, required) + price: (number) + priceExcludingDiscountTax: (number, required) + comboItems (array, fixed-type) + (object) + comboGroupId: (string, required) + comboGroupType (enum [string], required) + Members + `itemGroup` + `addonGroup` + name: (string, required) + uniqueItemId: (string, required) + priceExcludingDiscountTax: (number) + priceSummary (object, fixed-type) + total: (number, required) + discount: (number, required) + additionalCharges (array, fixed-type) + (object) + id: (string) + name: (string, required) + type: (string, required) + value: (number, required) + taxGroup (object, fixed-type) + id: (string, required) + name: (string) + netPercent: (number, required) + taxes (array, fixed-type) + (object) + total: (number) + percent: (number, required) + name: (string) + id: (string) + totalExcludingTax: (number, required) + additionalCharge: (number) + tax: (number, required) + roundoff: (number, required) + subtotal: (number, required) + bulkDiscount (object, fixed-type) + id: (string) + name: (string) + type (enum [string], required) + Members + `cash` + `percentage` + value: (number, required) + total: (number, required) + isAutomaticallyApplied: (boolean) + taxes (array, fixed-type) + (object) + total: (number) + percent: (number, required) + name: (string) + id: (string) + bookingAmount: (number) + orderTickets (array, fixed-type) + (object) + id: (string, required) + number: (string, required) + createdAt: (number, required) + createdBy (object, fixed-type) + name: (string) + userId: (string) + mobile: (string) + addedItems (array, fixed-type) + (object) + name: (string, required) + id: (string, required) + quantity: (number, required) + uniqueItemId: (string) + variants (array, fixed-type) + (object) + name: (string, required) + id: (string, required) + addons (array, fixed-type) + (object) + name: (string, required) + id: (string, required) + comboItems (array, fixed-type) + (object) + name: (string, required) + uniqueItemId: (string, required) + comboGroupType (enum [string], required) + Members + `itemGroup` + `addonGroup` + notes: (string) + removedItems (array, fixed-type) + (object) + name: (string, required) + id: (string, required) + quantity: (number, required) + uniqueItemId: (string) + variants (array, fixed-type) + (object) + name: (string, required) + id: (string, required) + addons (array, fixed-type) + (object) + name: (string, required) + id: (string, required) + comboItems (array, fixed-type) + (object) + name: (string, required) + uniqueItemId: (string, required) + comboGroupType (enum [string], required) + Members + `itemGroup` + `addonGroup` + notes: (string) + notes: (string) + orderTicketGroupId: (string) + orderTicketGroupName: (string) + draftName: (string) + deviceId: (string) + tableSectionName: (string) + draftId: (string) + lockType: (string) + printHistory (array, fixed-type) + (object) + createdAt: (number, required) + user (object, fixed-type) + name: (string) + userId: (string) + mobile: (string) + items (array, fixed-type, required) + (object) + name: (string, required) + id: (string, required) + quantity: (number, required) + notes: (string) + unitOfMeasure: (string) + totalPriceExcludingDiscountAndTax: (number, required) + discount (object, fixed-type) + id: (string) + name: (string) + type (enum [string], required) + Members + `cash` + `percentage` + value: (number, required) + total: (number, required) + isAutomaticallyApplied: (boolean) + taxGroup (object, fixed-type) + id: (string, required) + name: (string) + netPercent: (number, required) + taxes (array, fixed-type) + (object) + total: (number) + percent: (number, required) + name: (string) + id: (string) + category (object, fixed-type) + id: (string, required) + name: (string, required) + displayName: (string) + uniqueItemId: (string) + priceExcludingDiscountAndTax: (number) + variants (array, fixed-type) + (object) + id: (string, required) + name: (string, required) + price: (number) + priceExcludingDiscountTax: (number, required) + addons (array, fixed-type) + (object) + id: (string, required) + name: (string, required) + price: (number) + priceExcludingDiscountTax: (number, required) + comboItems (array, fixed-type) + (object) + comboGroupId: (string, required) + comboGroupType (enum [string], required) + Members + `itemGroup` + `addonGroup` + name: (string, required) + uniqueItemId: (string, required) + priceExcludingDiscountTax: (number) + priceSummary (object, fixed-type) + total: (number, required) + discount: (number, required) + additionalCharges (array, fixed-type) + (object) + id: (string) + name: (string, required) + type: (string, required) + value: (number, required) + taxGroup (object, fixed-type) + id: (string, required) + name: (string) + netPercent: (number, required) + taxes (array, fixed-type) + (object) + total: (number) + percent: (number, required) + name: (string) + id: (string) + totalExcludingTax: (number, required) + additionalCharge: (number) + tax: (number, required) + roundoff: (number, required) + subtotal: (number, required) + bulkDiscount (object, fixed-type) + id: (string) + name: (string) + type (enum [string], required) + Members + `cash` + `percentage` + value: (number, required) + total: (number, required) + isAutomaticallyApplied: (boolean) + taxes (array, fixed-type) + (object) + total: (number) + percent: (number, required) + name: (string) + id: (string) + bookingAmount: (number) + delivery (object, fixed-type) + notes: (string) + type: (string) + status: (string) + assignedAt: (number) + reachedStoreAt: (number) + pickedUpAt: (number) + deliveredAt: (number) + deliveredBy (object, fixed-type) + name: (string) + userId: (string) + mobile: (string) + riderBodyTemperature: (number) + occupiedSeats: (number) + redemption (object, fixed-type) + crm (object, fixed-type) + id: (string) + name: (string, required) + isReceiptSavedWhileRedemption: (boolean, required) + coupon (object, fixed-type) + code: (string, required) + description: (string) + discountValue: (number, required) + discountType (enum [string], required) + Members + `fixed` + `percentage` + discountLevel (enum [string], required) + Members + `order` + `product` + wallet (object, fixed-type) + redemptionValue: (number) + sourceVersion: (string) + isSlickPOSFooterNotPrinted: (boolean) + splitBillsByCustomer (object, fixed-type) + type (enum [string], required) + Members + `equally` + `by-items` + noOfCustomers: (number, required) + splits (array, fixed-type, required) + (object) + id: (string) + paymentType: (string) + paymentAmount: (number) + customerMobile: (string) + customerName: (string) + itemsSold (array, fixed-type) + (object) + name: (string, required) + id: (string, required) + quantity: (number, required) + notes: (string) + unitOfMeasure: (string) + totalPriceExcludingDiscountAndTax: (number, required) + discount (object, fixed-type) + id: (string) + name: (string) + type (enum [string], required) + Members + `cash` + `percentage` + value: (number, required) + total: (number, required) + isAutomaticallyApplied: (boolean) + taxGroup (object, fixed-type) + id: (string, required) + name: (string) + netPercent: (number, required) + taxes (array, fixed-type) + (object) + total: (number) + percent: (number, required) + name: (string) + id: (string) + category (object, fixed-type) + id: (string, required) + name: (string, required) + displayName: (string) + uniqueItemId: (string) + priceExcludingDiscountAndTax: (number) + variants (array, fixed-type) + (object) + id: (string, required) + name: (string, required) + price: (number) + priceExcludingDiscountTax: (number, required) + addons (array, fixed-type) + (object) + id: (string, required) + name: (string, required) + price: (number) + priceExcludingDiscountTax: (number, required) + comboItems (array, fixed-type) + (object) + comboGroupId: (string, required) + comboGroupType (enum [string], required) + Members + `itemGroup` + `addonGroup` + name: (string, required) + uniqueItemId: (string, required) + priceExcludingDiscountTax: (number) + priceSummary (object, fixed-type) + total: (number, required) + discount: (number, required) + additionalCharges (array, fixed-type) + (object) + id: (string) + name: (string, required) + type: (string, required) + value: (number, required) + taxGroup (object, fixed-type) + id: (string, required) + name: (string) + netPercent: (number, required) + taxes (array, fixed-type) + (object) + total: (number) + percent: (number, required) + name: (string) + id: (string) + totalExcludingTax: (number, required) + additionalCharge: (number) + tax: (number, required) + roundoff: (number, required) + subtotal: (number, required) + bulkDiscount (object, fixed-type) + id: (string) + name: (string) + type (enum [string], required) + Members + `cash` + `percentage` + value: (number, required) + total: (number, required) + isAutomaticallyApplied: (boolean) + taxes (array, fixed-type) + (object) + total: (number) + percent: (number, required) + name: (string) + id: (string) + bookingAmount: (number) + customer (object, fixed-type) + mobile: (string) + name: (string) + email: (string) + shippingAddress (object, fixed-type) + streetAddress: (string) + landmark: (string) + city: (string) + state: (string) + zipcode: (number) + country: (string) + location (object, fixed-type) + type (enum [string], required) + Members + `point` + coordinates (array [number], required) + billingAddress (object, fixed-type) + streetAddress: (string) + landmark: (string) + city: (string) + state: (string) + zipcode: (number) + country: (string) + location (object, fixed-type) + type (enum [string], required) + Members + `point` + coordinates (array [number], required) + additionalDetails (array, fixed-type) + (object) + name: (string, required) + value: (string, required) + tags (array [string]) + modelVersion (enum [string]) + Members + `v2` + Response 200 (application/json) + Attributes (object, fixed-type) + message (string) ## Cancel a receipt [PUT /sales/cancel] Cancel a receipt Url Path: `https://api.slickpos.com/api/sales/cancel` + Request + Headers Authorization: + Attributes (object, fixed-type) + accountId: (string, required) + createdAt: (number, required) + localReceiptNumber: (string, required) + cancellation (object, fixed-type) + isRefunded: (boolean, required) + cancelledAt: (number, required) + notes: (string) + cancelledBy (object, fixed-type) + name: (string) + userId: (string) + mobile: (string) + refund (object, fixed-type) + type (enum [string], required) + Members + `cash` + `card` + `other` + amount: (number, required) + notes: (string) + transactedAt: (number, required) + id: (string) + transactedBy (object, fixed-type) + name: (string) + userId: (string) + mobile: (string) + gateway (object, fixed-type) + id: (string) + name: (string) + transactionId: (string) + refunds (array, fixed-type) + (object) + type (enum [string], required) + Members + `cash` + `card` + `other` + amount: (number, required) + notes: (string) + transactedAt: (number, required) + id: (string) + transactedBy (object, fixed-type) + name: (string) + userId: (string) + mobile: (string) + gateway (object, fixed-type) + id: (string) + name: (string) + transactionId: (string) + modelVersion (enum [string]) + Members + `v1` + `v2` + Response 200 (application/json) + Attributes (object, fixed-type) + message (string) ## Update booking [PUT /sales/booking] Update booking detail for a sale Url Path: `https://api.slickpos.com/api/sales/booking` + Request + Headers Authorization: + Attributes (object, fixed-type) + accountId: (string, required) + createdAt: (number, required) + localReceiptNumber: (string, required) + booking (object, fixed-type) + deliveryAt: (number, required) + isDoorDelivery: (boolean) + notes: (string) + updatedAt: (number, required) + updatedBy (object, fixed-type) + name: (string) + userId: (string) + mobile: (string) + customer (object, fixed-type) + mobile: (string) + name: (string) + email: (string) + shippingAddress (object, fixed-type) + streetAddress: (string) + landmark: (string) + city: (string) + state: (string) + zipcode: (number) + country: (string) + location (object, fixed-type) + type (enum [string], required) + Members + `point` + coordinates (array [number], required) + billingAddress (object, fixed-type) + streetAddress: (string) + landmark: (string) + city: (string) + state: (string) + zipcode: (number) + country: (string) + location (object, fixed-type) + type (enum [string], required) + Members + `point` + coordinates (array [number], required) + additionalDetails (array, fixed-type) + (object) + name: (string, required) + value: (string, required) + tags (array [string]) + receiptTags (array [string]) + receiptAdditionalDetails (array, fixed-type) + (object) + name: (string, required) + value: (string, required) + modelVersion (enum [string]) + Members + `v1` + `v2` + Response 200 (application/json) + Attributes (object, fixed-type) + message (string) ## Fulfill booking [PUT /sales/fulfill] Fulfill a booking Url Path: `https://api.slickpos.com/api/sales/fulfill` + Request + Headers Authorization: + Attributes (object, fixed-type) + accountId: (string, required) + createdAt: (number, required) + localReceiptNumber: (string, required) + payments (array, fixed-type) + (object) + type (enum [string], required) + Members + `cash` + `card` + `other` + amount: (number, required) + notes: (string) + transactedAt: (number, required) + id: (string) + transactedBy (object, fixed-type) + name: (string) + userId: (string) + mobile: (string) + gateway (object, fixed-type) + id: (string) + name: (string) + transactionId: (string) + fulfillment (object, fixed-type) + fulfilledAt: (number, required) + fulfilledBy (object, fixed-type) + name: (string) + userId: (string) + mobile: (string) + isPaymentReceived: (boolean, required) + modelVersion (enum [string]) + Members + `v1` + `v2` + Response 200 (application/json) + Attributes (object, fixed-type) + message (string) ## Add payments [PUT /sales/payment] Add payment transaction for a sale Url Path: `https://api.slickpos.com/api/sales/payment` + Request + Headers Authorization: + Attributes (object, fixed-type) + accountId: (string, required) + createdAt: (number, required) + localReceiptNumber: (string, required) + payments (array, fixed-type) + (object) + type (enum [string], required) + Members + `cash` + `card` + `other` + amount: (number, required) + notes: (string) + transactedAt: (number, required) + id: (string) + transactedBy (object, fixed-type) + name: (string) + userId: (string) + mobile: (string) + gateway (object, fixed-type) + id: (string) + name: (string) + transactionId: (string) + modelVersion (enum [string]) + Members + `v1` + `v2` + Response 200 (application/json) + Attributes (object, fixed-type) + message (string # Group Customer Customer resource lets you get customer details from your SlickPOS account. ## Get customers [GET /customer/list{?accountId}{?lastEvalKey}] Get customer details. It returns 25 items in a single request. If there are more customers, a lastEvalKey is retuned in the response. Use the lastEvalKey in the subsequent request to get the next set of 25 items. Result is sorted in the reverse chronological order, i.e. customer with recent order appers at the top. Url Path: `https://api.slickpos.com/api/customer/list?accountId=&lastEvalKey=` + Parameters + accountId (string, required) - Account ID + lastEvalKey (string) - Key from previous request. Used when there are more items to paginate + Request + Headers Authorization: + Response 200 (application/json) + Attributes (object, fixed-type) + customers (array, fixed-type) + (object) + name: (string) + mobile: (string) + email: (string) + orderCount: (number) + orderValue: (number) + lastSeenAt: (number) + lastEvalKey: (string) # Group CRM Integration ## Set default CRM [POST /register/crm] Sets default CRM for a register Url Path: `https://api.slickpos.com/api/register/crm` + Request + Headers Authorization: + Attributes (object, fixed-type) + accountId: (string, required) + registerId: (string, required) + appId: (string, required) + appName: (string, required) + appApiToken: (string, required) + webhookUrls (object, fixed-type) + getCustomer: (string, required) + redeemWallet: (string) + redeemCoupon: (string) + appAdditionalDetails: (string) + Response 200 (application/json) + Attributes (object, fixed-type) + message (string) ## Remove default CRM [DELETE /register/crm/] Removes default CRM for a register Url Path: `https://api.slickpos.com/api/register/crm` + Request + Headers Authorization: + Attributes (object, fixed-type) + accountId: (string, required) + registerId: (string, required) + Response 200 (application/json) + Attributes (object, fixed-type) + message (string) # Group App ## Enable transactions webhook for app [POST /app/webhook] Enables an app to listen for webhooks of an account. When webhook is enabled SlickPOS sends the transaction events to the webhook. Url Path: `https://api.slickpos.com/api/app/webhook` + Request + Headers Authorization: + Attributes (object, fixed-type) + appId: (string, required) + accountId: (string, required) + Response 200 (application/json) + Attributes (object, fixed-type) + message (string) ## Disable transactions webhook for app [DELETE /app/webhook/] Disables an app to listen for webhooks of an account. Url Path: `https://api.slickpos.com/api/app/webhook` + Request + Headers Authorization: + Attributes (object, fixed-type) + appId: (string, required) + accountId: (string, required) + Response 200 (application/json) + Attributes (object, fixed-type) + message (string) #Group Webhook - POS Transaction Events Apart from the APIs documented here, you can also listen to transaction events happening in the POS by registering your webhook endpoints. When a transaction event happens on the SlickPOS application, it serializes data about that event and sends it to a webhook URL from the action application—the one you want to do something based on the data from the SlickPOS application. This webhook includes information about an receipt / order. This webook is a `POST` method. The payload for this webhook looks like: + accountId: (string, required) - Account ID + eventType: (enum [string], required) + Members + `receipt-created` + `receipt-cancelled` + `booking-updated` + `booking-fulfilled` + `receipt-paid` + `cancelled-receipt-created` + `order-created` + `order-accepted` + `order-ready` + `order-cancelled` + eventData (object, required) - Based on the events. If receipt events then data will be receipt model [as in GET receipt], else if its order then data will be [as in GET order] + eventSource: (string) #Group Webhook - CRM Get Customer This webhook is called by SlickPOS to get details of the customer from CRM. Typically, wallet balance / reward points are returned as the response. This webook is a `GET` method. All the webhooks have to be authenticated by ‘Bearer’ token(Currently SlickPOS mandates the Bearer token authentication). The request parameters are - `accountId`: Account ID (String) - `regsiterId`: Register ID - `customerMobile`: Customer mobile number (Number field) - `appAdditionalDetails`: The accountID The request header - `Authorization`: Bearer token The response needs to be in the below format - `id`: (string) - CRM customer ID - `mobile`: (string, required) - Cutomer mobile number - `name`: (string) - Customer name - `walletBalance`: (string) - Wallet balance #Group Webhook - CRM Coupon Redemption This webhook is called by SlickPOS when a customer redeems his/her coupon. It's an optional one, if CRM doesn’t support coupon redemption. This webhook is a `POST` method All the webhooks have to be authenticated by ‘Bearer’ token(Currently SlickPOS mandates the Bearer token authentication). The request header - `Authorization`: Bearer token The payload for this webhook looks like: + accountId: (string, required) + registerId: (string, required) + customerMobile: (number, required) + customerName: (string) + appAdditionalDetails: (string, required) + couponCode: (string, required) + receiptDetails (object, fixed-type) + createdAt: (number, required) + localReceiptNumber: (string, required) + priceSummary (object, fixed-type) + total: (number, required) + discount: (number, required) + additionalCharges (array, fixed-type) + (object) + id: (string) + name: (string, required) + type: (string, required) + value: (number, required) + taxGroup (object, fixed-type) + id: (string, required) + name: (string) + netPercent: (number, required) + taxes (array, fixed-type) + (object) + total: (number) + percent: (number, required) + name: (string) + id: (string) + totalExcludingTax: (number, required) + products (array, fixed-type) + (object) + name: (string, required) + id: (string, required) + quantity: (number, required) + notes: (string) + unitOfMeasure: (string) + totalPriceExcludingDiscountAndTax: (number, required) + discount (object, fixed-type) + id: (string) + name: (string) + type (enum [string], required) + Members + `cash` + `percentage` + value: (number, required) + total: (number, required) + isAutomaticallyApplied: (boolean) + taxGroup (object, fixed-type) + id: (string, required) + name: (string) + netPercent: (number, required) + taxes (array, fixed-type) + (object) + total: (number) + percent: (number, required) + name: (string) + id: (string) + category (object, fixed-type) + id: (string, required) + name: (string, required) + displayName: (string) + uniqueItemId: (string) + priceExcludingDiscountAndTax: (number) + variants (array, fixed-type) + (object) + id: (string, required) + name: (string, required) + price: (number) + priceExcludingDiscountTax: (number, required) + addons (array, fixed-type) + (object) + id: (string, required) + name: (string, required) + price: (number) + priceExcludingDiscountTax: (number, required) + comboItems (array, fixed-type) + (object) + comboGroupId: (string, required) + comboGroupType (enum [string], required) + Members + `itemGroup` + `addonGroup` + name: (string, required) + uniqueItemId: (string, required) + priceExcludingDiscountTax: (number) The response needs to be in the below format + couponCode: (string) + couponDescription: (string) + discountValue: (number) + discountType (enum [string]) + Members + `fixed` + `percentage` + discountLevel (enum [string]) + Members + `order` + `product` + isRedeemed: (boolean, required) + message: (string) + isReceiptSavedWhileRedemption: (boolean, required) #Group Webhook - CRM Wallet Redemption This webhook is called by SlickPOS when a customer redeems his/her wallet. It's an optional one, if CRM doesn’t support wallet redemption. This webhook is a `POST` method All the webhooks have to be authenticated by ‘Bearer’ token(Currently SlickPOS mandates the Bearer token authentication). The request header - `Authorization`: Bearer token The payload for this webhook looks like: + accountId: (string) + registerId: (string) + customerMobile: (number, required) + customerName: (string) + appAdditionalDetails: (string, required) + redemptionValue: (number, required) + otp: (number) + otpTransactionId: (string) + receiptDetails (object, fixed-type) + createdAt: (number, required) + localReceiptNumber: (string, required) + priceSummary (object, fixed-type) + total: (number, required) + discount: (number, required) + additionalCharges (array, fixed-type) + (object) + id: (string) + name: (string, required) + type: (string, required) + value: (number, required) + taxGroup (object, fixed-type) + id: (string, required) + name: (string) + netPercent: (number, required) + taxes (array, fixed-type) + (object) + total: (number) + percent: (number, required) + name: (string) + id: (string) + totalExcludingTax: (number, required) + products (array, fixed-type) + (object) + name: (string, required) + id: (string, required) + quantity: (number, required) + notes: (string) + unitOfMeasure: (string) + totalPriceExcludingDiscountAndTax: (number, required) + discount (object, fixed-type) + id: (string) + name: (string) + type (enum [string], required) + Members + `cash` + `percentage` + value: (number, required) + total: (number, required) + isAutomaticallyApplied: (boolean) + taxGroup (object, fixed-type) + id: (string, required) + name: (string) + netPercent: (number, required) + taxes (array, fixed-type) + (object) + total: (number) + percent: (number, required) + name: (string) + id: (string) + category (object, fixed-type) + id: (string, required) + name: (string, required) + displayName: (string) + uniqueItemId: (string) + priceExcludingDiscountAndTax: (number) + variants (array, fixed-type) + (object) + id: (string, required) + name: (string, required) + price: (number) + priceExcludingDiscountTax: (number, required) + addons (array, fixed-type) + (object) + id: (string, required) + name: (string, required) + price: (number) + priceExcludingDiscountTax: (number, required) + comboItems (array, fixed-type) + (object) + comboGroupId: (string, required) + comboGroupType (enum [string], required) + Members + `itemGroup` + `addonGroup` + name: (string, required) + uniqueItemId: (string, required) + priceExcludingDiscountTax: (number) The response needs to be in the below format + isReceiptSavedWhileRedemption: (boolean) + redemptionValue: (number) + walletBalance: (number) + isRedeemed: (boolean, required) + message: (string) + isOtpRequired: (boolean) + otpTransactionId: (string)