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:
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
- Payload
{- "cash_drawer_type": "integrated",
- "cash_management_enabled": true
}
Response samples
- 400
- 403
- 404
- 409
{- "error_code": "string",
- "message": "string",
- "request_id": "string"
}
Get cash drawer configuration
Get the cash drawer configuration for the store.
Authorizations:
path Parameters
store_id required | string The identifier for the store. To retrieve the store ID, use the List stores method. |
Responses
Response samples
- 200
- 400
- 404
{- "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:
Responses
Response samples
- 200
{- "transaction_types": {
- "adjustment_out": {
- "status": "not_allowed"
}, - "no_sale": {
- "status": "configured",
- "configuration": {
- "balance_modification": "cash_in",
- "reasons": [
- {
- "code": "post_office",
- "label": "Post office"
}, - {
- "code": "food",
- "label": "Buy snacks"
}
]
}
}
}
}
List cash drawers
Returns the cash drawers assigned to the store.
Authorizations:
query Parameters
store_id required | string The search term to filter cash drawers by store ID. |
Responses
Response samples
- 200
- 400
- 500
{- "cash_drawers": [
- {
- "cash_drawer_id": "us70517a",
- "name": "Kesha",
- "currency": "USD",
- "float": 200,
- "status": "active",
- "type": "integrated"
}, - {
- "cash_drawer_id": "de70517b",
- "name": "Kesha2",
- "currency": "EUR",
- "float": 250,
- "status": "inactive",
- "type": "integrated"
}
]
}
Add cash drawer
Creates a new cash drawer assigned to a store.
Authorizations:
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
- Payload
{- "cash_drawer_id": "4G9OZ",
- "name": "Not a shoe box",
- "currency": "USD",
- "float": 250,
- "store_id": "7c9f2605-9fb3-5444-8fee-47fe51608efe",
- "type": "integrated"
}
Response samples
- 400
- 403
- 404
- 409
{- "error_code": "string",
- "message": "string",
- "request_id": "string"
}
Update cash drawer
Update the cash drawer configuration.
Authorizations:
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
- Payload
{- "name": "Not a shoe box",
- "float": 250
}
Response samples
- 400
- 403
- 404
- 409
{- "error_code": "string",
- "message": "string",
- "request_id": "string"
}
Get cash drawer
Returns the cash drawer configuration.
Authorizations:
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
- 200
- 404
- 500
{- "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:
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
- 400
- 403
- 404
- 409
{- "error_code": "string",
- "message": "string",
- "request_id": "string"
}
Start cash sale or return transaction
Creates a draft cash transaction.
Authorizations:
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
- Payload
{- "order_id": "9533082b-aaca-487b-95c6-d97ad8581bee",
- "amount": {
- "value": 45,
- "currency": "USD"
}, - "given": {
- "value": 50,
- "currency": "USD"
}
}
Response samples
- 200
- 400
- 403
- 404
- 409
{- "transaction_id": "11a96e22-0275-418d-9035-7c5ad4b6050e",
- "change": {
- "value": 5,
- "currency": "USD"
}
}
Start non-sale transaction
Creates a draft cash transaction, such as to adjust the float or bill exchange.
Authorizations:
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
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
- Payload
{- "transaction_type": "remove_petty_cash",
- "reason_code": "post_office",
- "amount_out": {
- "value": 50,
- "currency": "USD"
}
}
Response samples
- 200
- 400
- 403
- 404
- 409
{- "transaction_id": "11a96e22-0275-418d-9035-7c5ad4b6050e"
}
Perform a cash count
Initiates the process of counting the cash in a cash drawer.
Authorizations:
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
- Payload
{- "reason": "end_of_day_balance"
}
Response samples
- 200
- 400
- 403
- 404
- 409
- 500
{- "count_id": "fbe79ca6-3801-47e9-bd1a-f20de995c5f6"
}
Track cash drawer activity
Register a change in the cash drawer state.
Authorizations:
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
- Payload
{- "timestamp": "2019-10-11T10:11:17Z",
- "event": "open",
- "correlation": "transaction",
- "correlation_id": "11a96e22-0275-418d-9035-7c5ad4b6050e"
}
Response samples
- 200
- 400
- 403
- 404
{- "event_id": "11a96e22-0275-418d-9035-7c5ad4b6050e"
}
Activate cash drawer
Enables the specified cash drawer for daily usage.
Authorizations:
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. | ||||
|
Responses
Request samples
- Payload
{- "float_amount": {
- "value": 49.99,
- "currency": "USD"
}
}
Response samples
- 400
- 403
- 404
- 409
{- "error_code": "string",
- "message": "string",
- "request_id": "string"
}
Deactivate cash drawer
Disables the specified cash drawer for daily usage.
Authorizations:
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
- Payload
{- "count_id": "3533082b-aaca-487b-95c6-d97ad8581bee"
}
Response samples
- 400
- 403
- 404
- 409
{- "error_code": "string",
- "message": "string",
- "request_id": "string"
}
List daily cash reports
Represents all cash reports generated for the cash drawer.
Authorizations:
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
- 200
- 400
- 404
- 500
{- "reports": [
- {
- "activation_timestamp": "2020-01-24T09:00:22.656Z",
- "open_float": {
- "value": 300,
- "currency": "USD"
}, - "net_cash_in": {
- "value": 200,
- "currency": "USD"
}, - "net_cash_out": {
- "value": 100,
- "currency": "USD"
}, - "net_non_sale_cash_in": {
- "value": 100,
- "currency": "USD"
}, - "net_non_sale_cash_out": {
- "value": 100,
- "currency": "USD"
}, - "net_sales": {
- "value": 200,
- "currency": "USD"
}, - "net_returns": {
- "value": 100,
- "currency": "USD"
}, - "variance_total": {
- "value": 100,
- "currency": "USD"
}, - "end_of_day_count": {
- "value": 500,
- "currency": "USD"
}, - "deposit_total": {
- "value": -200.49,
- "currency": "USD"
}, - "deactivation_timestamp": "2020-01-24T18:00:00.656Z"
}
], - "pagination_info": {
- "count": 1,
- "total": 20,
- "offset": 1
}
}
Get cash transaction
Retrieves the cash transaction for the specified ID.
Authorizations:
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
- 200
- 400
- 403
- 404
{- "transaction_id": "11a96e22-0275-418d-9035-7c5ad4b6050e",
- "cash_drawer_id": "de70517a",
- "associate_id": "fdd516b62b38",
- "order_id": "9533082b-aaca-487b-95c6-d97ad8581bee",
- "amount_in": {
- "value": 50,
- "currency": "USD"
}, - "amount_out": {
- "value": 5,
- "currency": "USD"
}, - "amount_balance": {
- "value": 50,
- "currency": "USD"
}, - "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:
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
- Payload
{- "status": "completed"
}
Response samples
- 400
- 403
- 404
- 409
{- "error_code": "string",
- "message": "string",
- "request_id": "string"
}
Record a cash count
Update a cash count with the counted amount.
Authorizations:
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. | ||||
|
Responses
Request samples
- Payload
{- "counted_amount": {
- "value": 99.99,
- "currency": "USD"
}
}
Response samples
- 200
- 400
- 403
- 404
- 409
{- "discrepancy": true,
- "expected_amount": {
- "value": 101.99,
- "currency": "USD"
}, - "discrepancy_amount": {
- "value": -1.99,
- "currency": "USD"
}
}
Set cash count action
Initiates a recount, submits the final count, or cancels the cash count.
Authorizations:
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
- 400
- 403
- 404
- 409
{- "error_code": "string",
- "message": "string",
- "request_id": "string"
}
Report of cash transactions per store
Returns a report of cash transactions per store
Authorizations:
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
- 200
- 400
- 500
{- "transactionReport": [
- {
- "cashDrawerStatus": "active",
- "cashDrawerName": "Drawer_1",
- "cashDrawerId": "fad5fdb6-eea4-4f4e-b32d-c9d1a2ac3ce1",
- "currency": "USD",
- "createdAt": "2022-09-01T08:10:01.665654Z",
- "transactionType": "float_adjustment",
- "associateId": "fad5fdb6-eea4-4f4e-b32d-c9d1a2ac3ce1",
- "associateName": "Bob McMuffin",
- "orderId": "",
- "externalOrderId": "",
- "reasonCode": "1080",
- "amountBalance": 100,
- "storeId": "adc335d0-9902-47f7-bc8e-216ddcfd4d11"
}, - {
- "cashDrawerStatus": "active",
- "cashDrawerName": "Drawer_1",
- "cashDrawerId": "fad5fdb6-eea4-4f4e-b32d-c9d1a2ac3ce1",
- "currency": "USD",
- "createdAt": "2022-09-01T08:10:01.665654Z",
- "transactionType": "sale",
- "associateId": "fad5fdb6-eea4-4f4e-b32d-c9d1a2ac3ce1",
- "associateName": "Bob McMuffin",
- "orderId": "4d7d3ec4-ae2e-4321-8f9d-686c44806642",
- "externalOrderId": "AB000001234",
- "reasonCode": "1080",
- "amountBalance": 100,
- "storeId": "adc335d0-9902-47f7-bc8e-216ddcfd4d11"
}, - {
- "cashDrawerStatus": "inactive",
- "cashDrawerName": "Drawer_1",
- "cashDrawerId": "fad5fdb6-eea4-4f4e-b32d-c9d1a2ac3ce1",
- "currency": "USD",
- "createdAt": "2022-09-01T21:10:01.665654Z",
- "transactionType": "end_of_day_withdrawal",
- "associateId": "fad5fdb6-eea4-4f4e-b32d-c9d1a2ac3ce1",
- "associateName": "Bob McMuffin",
- "orderId": "",
- "externalOrderId": "",
- "reasonCode": "1082",
- "amountBalance": 100,
- "storeId": "adc335d0-9902-47f7-bc8e-216ddcfd4d11"
}
], - "total": 100
}