Skip to main content

Cash Drawer API (0)

Download OpenAPI specification:Download

Use this API to record sale transactions using a cash drawer, or track the opening and closing of a cash drawer in the store.

Add or update cash drawer configuration

Adds or updates the cash drawer configuration for the store.

Authorizations:
newStoreAccessToken
path Parameters
store_id
required
string

The identifier for the store. To retrieve the store ID, use the List stores method.

Request Body schema: application/json
cash_drawer_type
required
string
Enum: "integrated" "non_integrated"

The kind of cash drawer used by the store, whether integrated or not.

cash_management_enabled
required
boolean

Defines if the cash management feature will be enabled or not in the store.

Responses

Request samples

Content type
application/json
{
  • "cash_drawer_type": "integrated",
  • "cash_management_enabled": true
}

Response samples

Content type
application/json
{
  • "error_code": "string",
  • "message": "string",
  • "request_id": "string"
}

Get cash drawer configuration

Get the cash drawer configuration for the store.

Authorizations:
newStoreAccessToken
path Parameters
store_id
required
string

The identifier for the store. To retrieve the store ID, use the List stores method.

Responses

Response samples

Content type
application/json
{
  • "cash_drawer_type": "integrated",
  • "cash_management_enabled": true
}

List transaction types

Returns all possible transaction types together with the corresponding list of reasons. The list includes both configured and not configured transaction types.

Authorizations:
newStoreAccessToken

Responses

Response samples

Content type
application/json
{
  • "transaction_types": {
    }
}

List cash drawers

Returns the cash drawers assigned to the store.

Authorizations:
newStoreAccessToken
query Parameters
store_id
required
string

The search term to filter cash drawers by store ID.

Responses

Response samples

Content type
application/json
{
  • "cash_drawers": [
    ]
}

Add cash drawer

Creates a new cash drawer assigned to a store.

Authorizations:
newStoreAccessToken
Request Body schema: application/json
cash_drawer_id
required
string non-empty

The external ID of the cash drawer. For example it can be a barcode for integrated cash drawers or a generated ID for non-integrated ones.

name
required
string non-empty

The human readable name of the cash drawer.

currency
required
string = 3 characters

The default currency of the cash drawer, using ISO-4217 Currency Code.

float
required
number non-empty decimal places <= 2

The default float amount for the cash drawer.

store_id
required
string [ 1 .. 256 ] characters

The store ID where the drawer is installed.

type
required
string
Enum: "integrated" "non_integrated"

The kind of cash drawer, whether it is integrated or not.

Responses

Request samples

Content type
application/json
{
  • "cash_drawer_id": "4G9OZ",
  • "name": "Not a shoe box",
  • "currency": "USD",
  • "float": 250,
  • "store_id": "7c9f2605-9fb3-5444-8fee-47fe51608efe",
  • "type": "integrated"
}

Response samples

Content type
application/json
{
  • "error_code": "string",
  • "message": "string",
  • "request_id": "string"
}

Update cash drawer

Update the cash drawer configuration.

Authorizations:
newStoreAccessToken
path Parameters
drawer_id
required
string

The identifier for the cash drawer. To retrieve the ID of the cash drawer assigned to the store, use the List cash drawers method.

Request Body schema: application/json
name
required
string non-empty

The human readable name of the cash drawer.

float
required
number non-empty decimal places <= 2

The default float amount for the cash drawer.

Responses

Request samples

Content type
application/json
{
  • "name": "Not a shoe box",
  • "float": 250
}

Response samples

Content type
application/json
{
  • "error_code": "string",
  • "message": "string",
  • "request_id": "string"
}

Get cash drawer

Returns the cash drawer configuration.

Authorizations:
newStoreAccessToken
path Parameters
drawer_id
required
string

The identifier for the cash drawer. To retrieve the ID of the cash drawer assigned to the store, use the List cash drawers method.

Responses

Response samples

Content type
application/json
{
  • "cash_drawer_id": "de70517a",
  • "name": "Kesha",
  • "currency": "USD",
  • "float": 200,
  • "status": "active",
  • "type": "integrated"
}

Decommission cash drawer

Decommission a cash drawer from a store.

Authorizations:
newStoreAccessToken
path Parameters
drawer_id
required
string

The identifier for the cash drawer. To retrieve the ID of the cash drawer assigned to the store, use the List cash drawers method.

Responses

Response samples

Content type
application/json
{
  • "error_code": "string",
  • "message": "string",
  • "request_id": "string"
}

Start cash sale or return transaction

Creates a draft cash transaction.

Authorizations:
newStoreAccessToken
path Parameters
drawer_id
required
string

The identifier for the cash drawer. To retrieve the ID of the cash drawer assigned to the store, use the List cash drawers method.

Request Body schema: application/json
order_id
required
string non-empty

The order ID for which the cash transaction is initiated.

required
object (Monetary amount object.)

The amount expected to be cashed in. A negative amount can be specified in case of a return.

required
object (Monetary amount object.)

The amount actually handed over by the customer to the store associate.

Responses

Request samples

Content type
application/json
{
  • "order_id": "9533082b-aaca-487b-95c6-d97ad8581bee",
  • "amount": {
    },
  • "given": {
    }
}

Response samples

Content type
application/json
{
  • "transaction_id": "11a96e22-0275-418d-9035-7c5ad4b6050e",
  • "change": {
    }
}

Start non-sale transaction

Creates a draft cash transaction, such as to adjust the float or bill exchange.

Authorizations:
newStoreAccessToken
path Parameters
drawer_id
required
string

The identifier for the cash drawer. To retrieve the ID of the cash drawer assigned to the store, use the List cash drawers method.

Request Body schema: application/json
Any of
transaction_type
required
string
Enum: "add_to_float" "add_petty_cash" "transfer_in" "adjustment_in" "remove_petty_cash" "cash_pull" "transfer_out" "adjustment_out" "no_sale" "gift_card_cash_out"

The type of the non-sale transaction.

reason_code
string non-empty

The reason code of the non-sale transaction.

required
object (Monetary amount object.)

The amount that will be added to the cash drawer.

object (Monetary amount object.)

The amount that will be removed from the cash drawer.

Responses

Request samples

Content type
application/json
{
  • "transaction_type": "remove_petty_cash",
  • "reason_code": "post_office",
  • "amount_out": {
    }
}

Response samples

Content type
application/json
{
  • "transaction_id": "11a96e22-0275-418d-9035-7c5ad4b6050e"
}

Perform a cash count

Initiates the process of counting the cash in a cash drawer.

Authorizations:
newStoreAccessToken
path Parameters
drawer_id
required
string

The identifier for the cash drawer. To retrieve the ID of the cash drawer assigned to the store, use the List cash drawers method.

Request Body schema: application/json
reason
required
string
Enum: "intra_day_balance" "end_of_day_balance"

The reason why the associate is performing the cash count.

Responses

Request samples

Content type
application/json
{
  • "reason": "end_of_day_balance"
}

Response samples

Content type
application/json
{
  • "count_id": "fbe79ca6-3801-47e9-bd1a-f20de995c5f6"
}

Track cash drawer activity

Register a change in the cash drawer state.

Authorizations:
newStoreAccessToken
path Parameters
drawer_id
required
string

The identifier for the cash drawer. To retrieve the ID of the cash drawer assigned to the store, use the List cash drawers method.

Request Body schema: application/json
timestamp
required
string <date-time>

The time when this activity happened.

event
required
string
Enum: "open" "close"

The event on the cash drawer.

correlation
required
string
Enum: "transaction" "count"

The reason for the event.

correlation_id
required
string non-empty

The ID of the related count or transaction operation.

Responses

Request samples

Content type
application/json
{
  • "timestamp": "2019-10-11T10:11:17Z",
  • "event": "open",
  • "correlation": "transaction",
  • "correlation_id": "11a96e22-0275-418d-9035-7c5ad4b6050e"
}

Response samples

Content type
application/json
{
  • "event_id": "11a96e22-0275-418d-9035-7c5ad4b6050e"
}

Activate cash drawer

Enables the specified cash drawer for daily usage.

Authorizations:
newStoreAccessToken
path Parameters
drawer_id
required
string

The identifier for the cash drawer. To retrieve the ID of the cash drawer assigned to the store, use the List cash drawers method.

Request Body schema: application/json
required
object (Monetary amount object.)

The float amount that will be inserted into the drawer.

value
required
number non-empty decimal places <= 2
currency
required
string = 3 characters

The currency for the transaction, using ISO-4217 Currency Code.

Responses

Request samples

Content type
application/json
{
  • "float_amount": {
    }
}

Response samples

Content type
application/json
{
  • "error_code": "string",
  • "message": "string",
  • "request_id": "string"
}

Deactivate cash drawer

Disables the specified cash drawer for daily usage.

Authorizations:
newStoreAccessToken
path Parameters
drawer_id
required
string

The identifier for the cash drawer. To retrieve the ID of the cash drawer assigned to the store, use the List cash drawers method.

Request Body schema: application/json
count_id
required
string non-empty

The ID of the related end of day count operation

Responses

Request samples

Content type
application/json
{
  • "count_id": "3533082b-aaca-487b-95c6-d97ad8581bee"
}

Response samples

Content type
application/json
{
  • "error_code": "string",
  • "message": "string",
  • "request_id": "string"
}

List daily cash reports

Represents all cash reports generated for the cash drawer.

Authorizations:
newStoreAccessToken
path Parameters
drawer_id
required
string

The identifier for the cash drawer. To retrieve the ID of the cash drawer assigned to the store, use the List cash drawers method.

Responses

Response samples

Content type
application/json
{
  • "reports": [
    ],
  • "pagination_info": {
    }
}

Get cash transaction

Retrieves the cash transaction for the specified ID.

Authorizations:
newStoreAccessToken
path Parameters
transaction_id
required
string

The identifier for the transaction.

drawer_id
required
string

The identifier for the cash drawer. To retrieve the ID of the cash drawer assigned to the store, use the List cash drawers method.

Responses

Response samples

Content type
application/json
{
  • "transaction_id": "11a96e22-0275-418d-9035-7c5ad4b6050e",
  • "cash_drawer_id": "de70517a",
  • "associate_id": "fdd516b62b38",
  • "order_id": "9533082b-aaca-487b-95c6-d97ad8581bee",
  • "amount_in": {
    },
  • "amount_out": {
    },
  • "amount_balance": {
    },
  • "reason": "sale",
  • "status": "completed",
  • "created_at": "2019-10-11T10:11:17Z",
  • "finished_at": "2019-10-11T10:13:17Z"
}

Finish cash sale or exchange transaction

Concludes a sale or exchange transaction, either by completing or canceling it.

Authorizations:
newStoreAccessToken
path Parameters
transaction_id
required
string

The identifier for the transaction.

drawer_id
required
string

The identifier for the cash drawer. To retrieve the ID of the cash drawer assigned to the store, use the List cash drawers method.

Request Body schema: application/json
status
required
string
Enum: "completed" "canceled"

The desired final status of the transaction.

Responses

Request samples

Content type
application/json
{
  • "status": "completed"
}

Response samples

Content type
application/json
{
  • "error_code": "string",
  • "message": "string",
  • "request_id": "string"
}

Record a cash count

Update a cash count with the counted amount.

Authorizations:
newStoreAccessToken
path Parameters
count_id
required
string

The identifier for the cash count.

drawer_id
required
string

The identifier for the cash drawer. To retrieve the ID of the cash drawer assigned to the store, use the List cash drawers method.

Request Body schema: application/json
required
object (Monetary amount object.)

The amount that was counted by the associate.

value
required
number non-empty decimal places <= 2
currency
required
string = 3 characters

The currency for the transaction, using ISO-4217 Currency Code.

Responses

Request samples

Content type
application/json
{
  • "counted_amount": {
    }
}

Response samples

Content type
application/json
{
  • "discrepancy": true,
  • "expected_amount": {
    },
  • "discrepancy_amount": {
    }
}

Set cash count action

Initiates a recount, submits the final count, or cancels the cash count.

Authorizations:
newStoreAccessToken
path Parameters
action
required
string
Enum: "_recount" "_submit" "_cancel"

The specific cash count action to perform.

count_id
required
string

The identifier for the cash count.

drawer_id
required
string

The identifier for the cash drawer. To retrieve the ID of the cash drawer assigned to the store, use the List cash drawers method.

Responses

Response samples

Content type
application/json
{
  • "error_code": "string",
  • "message": "string",
  • "request_id": "string"
}

Report of cash transactions per store

Returns a report of cash transactions per store

Authorizations:
newStoreAccessToken
query Parameters
store-id
required
string

The search term to filter cash transactions by store ID.

start-time
required
string
Example: start-time=2022-01-01T00:00:00.000Z

RFC3339 formatted time string to define cash transaction time-period start.

end-time
required
string
Example: end-time=2022-01-01T23:59:59.000Z

RFC3339 formatted time string to define cash transaction time-period end.

offset
required
number
Example: offset=0

Pagination offset.

limit
required
number
Example: limit=10

Amount of items taken after offset, max 100.

transaction-type
string
Enum: "sale" "float_adjustment" "reconciliation" "end_of_day_withdrawal" "add_to_float" "add_petty_cash" "transfer_in" "adjustment_in" "remove_petty_cash" "cash_pull" "transfer_out" "adjustment_out" "no_sale" "gift_card_cash_out"

The transaction type by which we should filter transaction types.

Responses

Response samples

Content type
application/json
{
  • "transactionReport": [
    ],
  • "total": 100
}