---
title: "Transaction Details"
method: POST
path: "pms-integration{subscriber-host}/charge"
tags: ["PMS Integration"]
---

# Transaction Details

`POST pms-integration{subscriber-host}/charge` (webhook)

What subscriber endpoint implementation will receive when a transaction is made.
Subscriber path need to end with `/charge`.
Subscriber implementation should follow the payload backward compatibility rules below:
  - What considered as backward **compatible**:
    - Addition of new fields, enums, headers, or parameters.
    - Transition from optional to required fields. Which means Lightspeed will consistently send the parameter/field from now on.
  - What considered as backward **incompatible**:
    - Alteration of schema structure, such as switching from a map to an array.
    - Removal of field/enum/header
    - Changes in data types, such as converting from string to integer.
    - Changes of property name

## Headers

- `Accept` string, required — The expected response content type from subscriber. Only application/json is supported.
- `X-Lightspeed-Idempotency-Key` string, required — Subscribers should utilize the Idempotency Key to ensure duplicates are handled appropriately on their end.

## Payload

- PmsIntegrationSalesWebhookDto
  - `name` string — Name of the transaction
  - `openDate` string, date-time — The date and time when the transaction was opened in UTC
  - `closeDate` string, date-time — The date and time when the transaction was closed in UTC
  - `covers` number — The number of covers (guests) in this transaction.
  - `ownerId` integer — The ID of the POS user (staff) who owns this transaction
  - `ownerName` string — The name of the POS user (staff) who owns this transaction
  - `deviceId` integer — The ID of the device on which the transaction was started
  - `businessExternalReference` string — Client name
  - `apiKey` string — API Key.
  - `receiptId` string — Receipt ID
  - `fiscId` string — Unique identifier for the transaction, can be used this for any identification purposes.
  - `uuid` string — A b64 encoded uuid which also act as unique identifier for the transaction, also can be used for any identification purposes.
  - `initialAccountId` string — Initial Account ID, if any. This is used to correlate the transaction with the initial account, such on REFUND or VOID.
  - `identifier` string — Refer to the non null value of either the fiscId or uuid as fallback.
  - `revenueCenterId` integer — Revenue Center (POS Configuration) ID
  - `revenueCenterName` string — Revenue Center (POS Configuration) Name
  - `transactions` PmsIntegrationPmsTransactionWebhookDto[]
    - `unitAmount` number — The price of single item.
    - `quantity` number — The quantity of the items. Negative quantity indicates a refund/cancellation/void.
    - `amount` number — The total pre-tax amount of this transaction sale line.
    - `description` string — The item name
    - `staffId` integer — The ID of the POS user (staff) who processed this transaction line
    - `staffName` string — The name of the POS user (staff) who processed this transaction line
    - `groupId` integer — Lightspeed accounting group id which the item belongs to.
    - `groupName` string — Lightspeed accounting group name which the item belongs to.
    - `taxId` integer — Deprecated, refer to taxLines.
    - `taxName` string — Deprecated, refer to taxLines.
    - `taxRate` number — The tax rate of the items.
    - `taxIncluded` boolean — Deprecated, refer to taxLines.
    - `sku` string — The SKU of the items.
    - `type` 'Sale' | 'LineDiscount' | 'AccountDiscount' | 'PercentItem' — The type of the transaction line.
    - `serviceChargeContribution` number — The amount of the service charge contribution.
    - `taxLines` PmsIntegrationPmsTaxLineWebhookDto[]
      - `taxId` string — The tax identifier.
      - `taxName` string — The name of the tax.
      - `taxAmount` number — The amount of the tax.
      - `taxRate` number — The rate of the tax.
      - `taxIncluded` boolean — Whether the tax is included in the price (VAT).
  - `payments` PmsIntegrationPmsPaymentWebhookDto[]
    - `paymentDate` string, date-time — The date and time when the payment was made in UTC
    - `staffId` integer — The ID of the POS user (staff) who processed this payment
    - `staffName` string — The name of the POS user (staff) who processed this payment
    - `gratuity` number — The amount of the gratuity (tips).
    - `amount` number — The total amount of the received payment.
    - `methodName` string — The name of the payment method.
    - `methodCode` string — The code of the payment method.
    - `reservationId` string — The reservation ID of the payment.
  - `serviceCharge` PmsIntegrationPmsServiceChargeWebhookDto
    - `amount` number — The amount of the service charge.
    - `type` 'UNTAXED' | 'APPORTIONED' — The type of the service charge.

## Acknowledgement `200`

Subscriber should return this code if it successfully processed the charge request at PMS.
Following that, Lightspeed will mark the PMS charge transaction as SUCCESS as well.

## Other responses

- `5XX` — If any server error occurs subscriber can pass their own custom message to the POS. The response body content need to follow the schema, else only `5XX {Error Type}` will be sent.
- `4XX` — If any client error occurs subscriber can pass their own custom message to the POS. The response body content need to follow the schema, else only `4XX {Error Type}` will be sent.

---

[API](https://skmtc.net/lightspeed/apis/lightspeed-restaurant-k-series-api.md) · [All operations](https://skmtc.net/lightspeed/apis/lightspeed-restaurant-k-series-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lightspeed/lightspeed-restaurant-k-series-api/versions/fd2e31cf57dd/schema)
