Skip to main content

One charge or payment on a house account. The ledger is append-only, so a transaction is never edited or removed once recorded; a correction is another transaction.

id
string
required

Unique identifier for the record.

amount
string<monetary>
required

Money the transaction moved. A negative amount is a charge, which grows what the customer owes; a positive amount is a payment or refund, which reduces it.

Pattern: ^-?[0-9]+(\.[0-9]+)?$
Example:

"199.99"

api_client_id
string | null
required

ID of the API credential that recorded the transaction. Null when a person did.

created_at
string<date-time>
required

When the record was created.

description
string | null
required

Note written alongside the transaction, such as why an adjustment was made.

effective_at
string<date-time>
required

When the transaction took effect. A sale carries the time it was completed at the register, which can be earlier than when it reached the ledger.

employee_id
string | null
required

ID of the employee who took the transaction at a register, or null when it was made in the back office.

Pattern: ^[0-9]+$
ending_balance
string<monetary>
required

The account balance after this transaction. A negative balance is what the customer owes the store. A positive balance is credit the customer can spend.

Pattern: ^-?[0-9]+(\.[0-9]+)?$
Example:

"199.99"

idempotency_key
string
required

Key supplied when the transaction was created, unique within the banner. Sending the same key again returns the transaction already recorded rather than charging the account twice.

metadata
object | null
required

Your own key/value pairs, exactly as supplied when the transaction was recorded.

Example:
order_id
string<uuid> | null
required

ID of the checkout this settled, from the transactions resource. Null when the ledger entry is not tied to a checkout.

store_id
string
required

ID of the store where the transaction took place.

Pattern: ^[0-9]+$
type
enum<string>
required

What produced the transaction: a sale or refund rung up at a register, or an adjustment made in the back office.

Available options:
manual_adjustment,
order_payment
updated_at
string<date-time>
required

When the record was last changed.

user_id
string | null
required

ID of the back-office user who made the adjustment. Null for a transaction taken at a register.

Pattern: ^[0-9]+$