Our API is currently in open beta, if you encounter any issues or have a suggestion, please email us at devs@lumaprints.com. Your insights are invaluable to us.
| Sandbox | Production | |
|---|---|---|
| Dashboard | https://sandbox.lumaprints.com | https://dashboard.lumaprints.com |
| API base URL | https://us.api-sandbox.lumaprints.com/api/v1 | https://us.api.lumaprints.com/api/v1 |
| API keys | Developer > API Keys | Developer > API Keys |
| Orders fulfilled | No | Yes |
| Cards charged | No (test cards only) | Yes |
storeId through the API in Step 5.| Card type | Number |
|---|---|
| Visa | 4111111111111111 |
| Mastercard | 5555555555554444 |
| American Express | 378282246310005 |
| Discover | 6011000991300009 |
| JCB | 3530111333300000 |
apiKey:apiSecret and prefixing it with Basic .[
{
"storeId": 1088,
"storeName": "My Test Store"
}
]storeId in all subsequent order and webhook requests. If the response is an empty array, confirm that the store you created in Step 2 is a Standard Store.storeId in hand, you can walk the standard order flow:GET /products/categories, then GET /products/{categoryId}/subcategories and the subcategory options endpoint to find the product configuration you want to order.POST /images/check with the image URL to confirm resolution and format are acceptable for the selected product before placing the order.POST /shipping/cost to preview shipping charges for the recipient address.POST /orders with your externalId, storeId, shipping method, production time, recipient, and order items.GET /orders/{orderNumber} to confirm the order was created with the expected data. Sandbox orders stay in their initial status, so GET /shipments/{orderNumber} will not return shipment data; exercise that endpoint against a Production order once live.POST /webhook, providing the event name, your storeId, the destination URL, and the Basic auth username and password Lumaprints should use when calling it.GET /shipments/{orderNumber} will not return shipment data and shipping webhook events will not fire in the Sandbox. Use the Sandbox to validate authentication, catalog lookups, image checks, pricing, and order submission payloads.storeId, then update any stored references.| Symptom | Likely cause |
|---|---|
401 Unauthorized | Authorization header is malformed, or the credentials are from the wrong environment. |
GET /stores returns [] | No Standard Store exists on the account. Platform-connected stores are not listed. |
| Order rejected for missing payment method | Primary payment method or default billing address has not been set for the store. |
| Image check fails | Image URL is not publicly reachable, or the file does not meet the product's resolution requirements. |
| Webhook never fires | Expected in the Sandbox, since orders do not progress and lifecycle events are not emitted. In Production, check that the endpoint is reachable over HTTPS and the subscription uses the correct storeId. |