The basics of requests and responses (JSON)
API
Request
Response
JSON
Pagination
Who this article is for
For developers implementing a client that calls the ReceiptRoller API.
For developers implementing a client that calls the ReceiptRoller API.
Request basics
- Protocol: HTTPS required (HTTP is rejected)
- Format: both request body and response are JSON
- Character encoding: UTF-8
- Authentication:
Authorization: Bearer {access_token}
Required and recommended headers
Authorization: Bearer eyJhbGciOi... ← required Content-Type: application/json ← required for POST/PUT Accept: application/json ← recommended User-Agent: MyApp/1.2.3 ← recommended (for identification in support inquiries) Idempotency-Key: 01HV6N3M2K... ← recommended for POST/PUT (prevents duplicates)
The basic structure of a response
A single resource
{
"id": "rcp_xyz789",
"object": "receipt",
"created_at": "2026-04-27T10:15:23Z",
"store_id": "str_abc123",
"total_amount": 3850,
"currency": "JPY"
}
A list (paginated)
{
"object": "list",
"data": [
{ "id": "rcp_001", ... },
{ "id": "rcp_002", ... }
],
"has_more": true,
"next_cursor": "cur_xxx"
}
Pagination (cursor-based)
List APIs are cursor-based. Retrieve the next page with ?limit=50&cursor={previous next_cursor}.
- Default
limit: 20, maximum: 100 - If
has_more: false, it is the last page - The cursor is valid for 6 hours
- The order is, as a rule, newest first (
created_at DESC)
Filtering
Filter with query parameters.
GET /v1/receipts?store_id=str_abc&issued_after=2026-04-01&issued_before=2026-04-30 Supported comparison operators: ?total_amount[gte]=1000 ← greater than or equal to 1000 ?total_amount[lt]=5000 ← less than 5000 ?status[in]=issued,refunded ← either one
Date/time format
- All in ISO 8601 format (
YYYY-MM-DDTHH:mm:ssZ) - Responses are always in UTC (trailing Z)
- Requests can be sent with a timezone (auto-converted to UTC)
Representing amounts
- Amounts are integers in the smallest currency unit (e.g. for JPY, 1 = 1 yen; for USD, 1 = 1 cent)
- No decimal points or comma separators
- The currency is stated in the
currencyfield (ISO 4217)
ID format
Every resource ID has a prefix. You can tell the type at a glance.
| Prefix | Resource |
|---|---|
rcp_ | Receipt |
str_ | Store |
prd_ | Product |
cus_ | Customer |
evt_ | Event |
Idempotency key (Idempotency-Key)
Specifying the same Idempotency-Key on a POST/PUT lets ReceiptRoller detect the duplicate and return the first result. This prevents duplicate creation on network retries.
- Use a unique value such as a UUID or ULID
- The key is retained for 24 hours
- It is not shared across different endpoints
Related guides
Published: 2026-04-27
Updated: 2026-07-05
Category
Tags
API (22)
OAuth (15)
Android (10)
iOS (9)
Webhook (6)
Troubleshooting (5)
api (5)
App registration (4)
POS Integration (4)
Reference (4)
Related articles
-
Using the Store Information APIA guide to the REST API for fetching and updating a store's basic information (store name, store type, contact details, and address). Lets you implement a store information editing screen from token-authenticated clients such as staff apps.
-
PosTransactionDto specification — field reference for transaction dataA complete field reference for PosTransactionDto, the canonical model for the transaction data ReceiptRoller handles. For each category — identifiers, dates, amounts, line items, payments, staff, status, and CRM linkage — it summarizes the field names, types, meanings, and how each POS vendor populates them. A reference for developers and external-system integrators. Also referenced from the Smaregi and Square mapping articles.
-
Purchase and receipt data integrationExplains the structure of the purchase and receipt data ReceiptRoller handles, how to retrieve it, related scopes, Webhooks, and common use cases.
-
Using the Business Hours APIA guide to ReceiptRoller's Business Hours API (/api/v1/stores/{storeId}/business-hours). Covers retrieving and updating per-day business hours, registering special business days (temporary closures and hour changes), configuring a store's workable hours (the upper bound for shift creation), and determining whether the store is currently open.
-
Using the Orders / OMS APIA guide to CRUD operations on the orders under a business account using ReceiptRoller's Orders / OMS API (/api/v1/orders). Covers creating, updating, transitioning status (confirm, process, cancel), and deleting orders, plus the flow for Android / iOS apps and server integrations.