https://app.papelship.com/api/v1
Older integrations that call
https://app.papelship.com/api_user/api/v1 keep working. Use /api/v1 for new code.Authenticate
Create a key in Developers › API keys and send it with your store ID on every request:GET /me works with any valid key. It returns the store, the key’s permissions and your limits, so use it to test your setup.
Permissions
When you create a key, choose Full access, Read only or Custom. With Custom, you pick read or write access per area. Write includes read.GET requests need read access; POST, PATCH, PUT and DELETE need write access. A key without the right permission gets 403 INSUFFICIENT_SCOPE with the missing permission in required_scope.
You can also limit a key to this store, a list of IP addresses, or an expiry date.
Responses
Every response is JSON with asuccess flag.
Success
Error
code, not on the message. Every response has an X-Request-Id header; include it when you contact support. See Errors for every code.
Conventions
- Amounts are integers in minor units:
price_cents: 2999is 29.99. - Dates are ISO 8601 in UTC.
- IDs are public IDs: product hash IDs, order IDs like
c35ffd-19a1b2c3d4e-8c7a20. Records of other stores return404. - Created records return
201.
Pagination
Lists takelimit (1–100, default 25) and offset, and return a pagination object:
next_cursor back as cursor.
Safe retries
Send anIdempotency-Key header on create calls (orders, refunds, shipments, products, webhooks and others marked in the reference). If the network fails, retry with the same key and body: you get the first result back instead of a duplicate.
- Keys are kept for 24 hours.
- A replayed response has the header
Idempotent-Replayed: true. - The same key with a different body returns
422 IDEMPOTENCY_KEY_REUSED.
Limits
Over a limit you get
429 with Retry-After. RATE_LIMITED clears within a minute; STORE_API_MONTHLY_QUOTA_EXCEEDED resets on the first day of the next month (UTC).
Every request appears in Developers › API requests with its status and duration.
Next steps
Create orders
Take orders from your own site or app and send customers to checkout.
Webhooks
Get notified when orders are paid, cancelled or refunded.