Skip to main content
Sign in with your store to see only the help that applies to you.

Other Endpoints


Gift Cards​

Required scope: gift_cards:read

Get Gift Card Balance​

GET /api/v1/gift_cards/:id

Returns the gift card's current balance and status.

If you have the printed card number rather than an internal ID, look it up instead (the number is upper-cased before matching, and the lookup also marks the card expired if its expiry date has passed):

GET /api/v1/gift_cards/lookup/:card_number

Response​

{
"data": {
"id": 55,
"card_number": "GC-000123",
"status": "active",
"original_amount": 100.0,
"balance": 62.5,
"available_balance": 62.5,
"issued_at": "2026-02-01T16:00:00.000Z",
"expires_at": null,
"expired": false,
"active": true,
"customer_id": 208,
"customer_name": "Sam Whitecalf",
"recipient_name": null
}
}
Balance only, not history

The response is the card's current state. Transaction history is not included.

Snapshot of All Active Cards​

GET /api/v1/gift_cards/snapshot

Returns every active gift card (up to 20,000) as cards, each with card_number, balance, status and expires_at, plus a generated_at timestamp. Not paginated.

Read-only via API key

gift_cards:read has no matching write scope, so issuing, reloading or applying a card through an API key is rejected with 403 Forbidden. Those actions happen at the register.


Store Credits​

Required scope: store_credits:read

A customer's available store credit is also included in the Customers API response as store_credit_balance.

Customer Store Credit​

GET /api/v1/store_credits/customer/:customer_id
{
"data": {
"customer_id": 208,
"customer_name": "Sam Whitecalf",
"balance": 15.0,
"recent_transactions": [
{
"id": 901,
"transaction_type": "credit",
"amount": 15.0,
"balance_before": 0.0,
"balance_after": 15.0,
"notes": null,
"sale_id": null,
"user_name": "Dana R.",
"created_at": "2026-03-01T17:12:00.000Z"
}
]
}
}

recent_transactions holds the 10 most recent transactions.

Snapshot of All Balances​

GET /api/v1/store_credits/snapshot

Returns credits — every customer with a balance above zero (up to 5,000), each { "customer_id", "balance" } — plus generated_at. Not paginated.

Like gift cards, store_credits:read is read-only — there is no write scope for it, so issuing or applying credit through an API key is rejected with 403 Forbidden.


Store Settings​

Required scope: products:read

Get Store Settings​

GET /api/v1/settings

Returns store configuration such as store details, tax rates, timezone and currency.

Response (excerpt)​

{
"data": {
"locale": "en",
"store": {
"name": "Green Leaf Dispensary",
"address": "123 Main St",
"phone": "555-123-4567",
"email": "hello@greenleaf.example"
},
"tax": {
"mode": "single",
"rate": 13.0,
"name": "HST",
"gst_rate": 0.0,
"gst_name": "GST",
"pst_rate": 0.0,
"pst_name": "PST"
},
"province": "ON",
"timezone": "America/Toronto",
"currency": {
"symbol": "$"
},
"branding": {
"name": "BrotherPOS",
"brand": "brotherpos",
"url": "https://brotherpos.ca",
"support_email": "support@brotherpos.ca",
"support_phone": "1-800-891-8965"
}
}
}
  • locale is the store's effective language and is always one of en, fr or es. A store still set to a language that is no longer offered (Hindi or Punjabi) returns en.
  • branding describes the platform brand the store is on (brotherpos, trafficpos or trafficstores), including that brand's support_email and support_phone. It is included for API-key requests.
What an API key sees

For API-key requests the response leaves out the receipt-printer block, the printer bridge address, scale settings, the payment terminal location (stripe_terminal_location_id), payment-gateway and WooCommerce flags, opening-float and idle-timeout settings, discount presets, tier-pricing settings and dual-store settings, and cuts features down to loyalty, customers, label_printing, additional_tax and split_tax.

Much of the rest of the store's POS configuration is still included — for example compliance limits, receipt header and footer, enabled payment types, card surcharge, cannabis display toggles, fulfillment options and loyalty point rates. Do not treat the full payload as a stable contract; read only the keys you need.


What's Next?​