---
title: "Create a store credit transaction"
method: POST
path: "/store_credits/{customerId}/transactions"
tags: ["Store Credits"]
---

# Create a store credit transaction

`POST /store_credits/{customerId}/transactions`

Creates a new store credit transaction. The type determines what sort of transaction it is.

* "REDEMPTION" - Use this type when you want to redeem a certain amount from the store credit balance. The amount MUST be negative. If you want to add an amount to the balance use the "ISSUE" type.
🔒 Requires: `store_credits:write:redeem`
* "ISSUE" - Use this type when you issue store credit to a customer.
🔒 Requires: `store_credits:write:issue`
* "REVERSE" - Use this type when voiding an earlier ISSUE or REDEMPTION transaction.
🔒 Requires: `store_credits:write:redeem`

If the customer account does not have enough credit to honour a REDEMPTION transaction a 422 HTTP status code will be returned.

## Idempotency

  Please populate the client_id field with a unique transaction identifier, to ensure that the transaction is safe from double-submit problems.
  When creating an REVERSE operation, client_id must be equal to client_id of a reversed operation.
  See [the tutorial](/docs/store_credit#idempotency) for more information.

## Path parameters

- `customerId` string, uuid, required

## Request body

- StoreCreditTransactionParams — The store credit transaction parameters for a customer transaction.
  - `amount` number, double, required — The amount of the transaction.
  - `client_id` string, required — The client id is a unique transaction identifier. The client must provide this and is normally the transaction id from the client system.
  - `notes` string — The notes associated with the transaction.
  - `type` 'ISSUE' | 'REDEMPTION' | 'REVERSE', required — The type of the transaction
  - `user_id` string, uuid — The user id of the person who handled the transaction.

## Response `200`

A transaction successfully created for the customer

- StoreCreditTransaction — A store credit operation
  - `amount` number, double — The amount of the transaction
  - `client_id` string — An operation idempotency identifier. The client must provide this and normally it should be the transaction id from the client system. An operation and it's reverse operation must have the same client_id
  - `created_at` string, date-time — The date time the transaction was created.
  - `id` string — transaction unique identifier (base64 encoded)
  - `notes` string — The notes associated with the transaction.
  - `sale_id` string, uuid — The sale id the transaction is associated with. This should be null for transactions initiated outside of Lightspeed Retail. If it is a sale id, it will be in UUID format.
  - `type` 'ISSUE' | 'REDEMPTION' | 'REVERSE' — The type of the transaction
  - `user_id` string, uuid — The user id of the person who performed the transaction (during a sale or a manual issue)

## Other responses

- `404` — The given customer was not found.
- `422` — There is insufficient balance for this customer to honour the transaction.

---

[API](https://skmtc.net/lightspeedhq/apis/api-2026-07.md) · [All operations](https://skmtc.net/lightspeedhq/apis/api-2026-07/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lightspeedhq/api-2026-07/versions/72d4ceb46dbb/schema)
