API docs
Changelog
2026-10-08: reorder amount
- Products gain
reorder_qty(read and write;null= not set): how many Iron Register's Reorder orders when a location has no reorder quantity of its own. Nothing existing changed. - Setting a product's
vendor_id/vendor_skunow also makes that vendor the preferred one on the product's vendor list in Iron Register.
2026-10-04: coupons for one location
- Coupons gain
location_id(null= every location, as before). A coupon with a location is refused at other locations' registers; withchannel: store_onlineit is published to that location's own BigCommerce storefront only (Multi-Storefront), and saving it is refused withVALIDATION_ERRORwhen the location has no storefront.
2026-09-28: tighter customer, credit and location rules
GET /v1/events: withoutcustomers:read, a customer embedded in an event payload is reduced to{"object": "customer", "id": …}, matchingGET /v1/orders. Keys withcustomers:readsee no change.POST /v1/customers/{id}/account/payments: paying more than is owed now needs thestore_creditwrite permission too. Without it the call is refused with422 OVERPAYMENTinstead of banking the extra as store credit.- Memberships: a location-limited key can cancel only memberships homed at its locations (
404otherwise), and a sign-up withoutlocation_idis homed at the key's location.
2026-09-26: house accounts, memberships, card transactions
- New
accountspermission (read / write):GET /v1/customers/{id}/account,GET /v1/invoices,GET /v1/invoices/{id},GET /v1/account-payments, andPOST /v1/customers/{id}/account/paymentsto record money received elsewhere (anIdempotency-Keyis required). See House accounts and invoices. - New
membershipspermission (read / write):GET /v1/membership-plans,GET /v1/memberships,GET /v1/memberships/{id},POST /v1/memberships,POST /v1/memberships/{id}/canceland/guest-pass. See Memberships. - New
card_transactionspermission (read):GET /v1/card-transactions,GET /v1/card-transactions/{id}. See Card transactions. - New webhook events:
invoice.created,invoice.updated,account.payment_received,membership.created,membership.updated,membership.payment_failed. - New errors:
ALREADY_MEMBER,PLAN_ARCHIVED,MEMBERSHIPS_OFF,CARD_PROCESSING_OFF,NO_GUEST_PASSES,MEMBERSHIP_FULL.
2026-09-26: card processing on order payments
- Order
payments[]gainentry(terminal,token,manual),processor(payroc),approval_codeandrefund_of_payment_idfor shops that run card processing. All four arenullotherwise; nothing existing changed. - New line type
membershipon orders (a membership sign-up, initiation fee or dues). payments[].tendercan beon_account(house accounts).
2026-09-25: the rental-gun fleet
GET /v1/range/rentals,GET /v1/range/rentals/{id}andGET /v1/range/rental-checkouts(permissionrange:read): the fleet, where each gun is, and the custody history with condition and rounds fired.- New webhook events:
range.rental.checked_out,range.rental.checked_in,range.rental.out_of_service,range.rental.returned_to_service.
2026-09-25: store credit, gift certificate reload and adjust
- New
store_creditpermission (read / write):GET /v1/customers/{id}/store-credit,GET /v1/store-credit,POST /v1/customers/{id}/store-credit/issueand/redeem. - Gift certificates:
POST /v1/gift-certificates/{id}/reloadand/adjust. - Every balance move (store credit issue and redeem; gift certificate redeem, reverse, reload and adjust) requires an
Idempotency-Key. - New webhook event:
store_credit.changed. - New error:
INSUFFICIENT_CREDIT.
2026-09-25: gift certificate, coupon, location and range writes
gift_certificates,couponsandlocationsare now read / write;rangewrite goes beyond cancelling.- Gift certificates:
POST /v1/gift-certificates(issue),POST /v1/gift-certificates/{id}/redeemand/reverse(anIdempotency-Keyis required),/disable,/enable.GET /v1/gift-certificates/{id}now includes the last 50 ledgertransactions. - Coupons:
POST /v1/coupons,PATCH /v1/coupons/{id},DELETE /v1/coupons/{id}. - Locations:
PATCH /v1/locations/{id}for phone, email and business hours. - Range:
GET /v1/range/availability,POST /v1/range/reservations(lanes and class seats, paid on your channel or unpaid),/check-in,/no-show. - New webhook events:
gift_certificate.issued,gift_certificate.updated. - New errors:
IDEMPOTENCY_KEY_REQUIRED,FIELD_NOT_WRITABLE,CODE_TAKEN,GIFT_CERTIFICATE_INACTIVE,GIFT_CERTIFICATE_INSUFFICIENT,GIFT_CERTIFICATE_CODE_TAKEN,GIFT_CERTIFICATE_CODE_INVALID,RESOURCE_UNAVAILABLE,SESSION_FULL,INVALID_RESOURCE,INVALID_SESSION,CONSTRAINT_VIOLATION.
2026-09-25: purchase-order writes
purchase_ordersis now read / write.- New endpoints:
POST /v1/purchase-orders,PATCH /v1/purchase-orders/{id}, andPOST /v1/purchase-orders/{id}/submit,/canceland/receive. Receiving through the API covers non-serialized lines and adds stock. - New webhook event:
purchase_order.cancelled. - New errors:
PO_SUBMITTED,DUPLICATE_PURCHASE_ORDER,NOTHING_OUTSTANDING,EMPTY_PO. - Validation errors are
400 VALIDATION_ERROReverywhere.
2026-09-24: v1
The first release of the Iron Register API.
- API keys. Owner-issued, with per-resource none/read/write permissions, location limits, IP allowlists, expiry, and rolling with a grace period.
- Resources.
- Products (with categories and vendors), inventory levels, serialized units and movements.
- Customers, with date of birth behind its own permission.
- Orders, including creating orders from outside channels and voiding non-firearm orders.
- Returns, purchase orders, gift certificates, coupons and locations.
- Range resources, classes, sessions and reservations.
/v1/meand the/v1/eventsfeed.
- Webhooks. 25 event types (28 today, with purchase-order and gift certificate events), HMAC-SHA256 signatures with secret rotation, a custom auth header, retries over about 37 hours, auto-disable, and resend from the delivery log.
- Limits. Established: 60 requests per minute and 10,000 per day. Enterprise: 600 per minute.
- Sandbox.
sandbox.ironregister.com, with a shop per partner and daily simulated activity.