Core concepts
Environments and test mode
Separate deployments, credentials, and access approval for sandbox and production.
Maple runs two fully isolated environments, each with its own base URL and its own credentials:
| Environment | Dashboard (developer console) | Base URL | Credential |
|---|---|---|---|
| Sandbox | https://app.staging.maple.inc |
https://api.staging.maple.inc/v1 |
mpk_test_… |
| Production | https://app.maple.inc |
https://api.maple.inc/v1 |
mpk_live_… |
Develop and test in a sandbox Maple has prepared for your approved app. Invited members create their own sandbox keys through the developer console. App approval, location grants, and capability configuration remain Maple-managed.
Each dashboard reads and mutates only its own deployment. Follow the corresponding dashboard/invitation URL, sign in as needed, and check its environment badge and API base URL. Do not assume a cross-deployment session, shared app configuration, or automatic sandbox creation.
The two environments do not share credentials or operational data: a connection, subscription, or order in the sandbox is not the production resource.
Why this matters
Use only the isolated test locations and supported workflows Maple has prepared for your integration. Verify the complete business workflow, signature handling, and diagnostics there before requesting production approval; a successful synthetic webhook is not certification.
flowchart LR
subgraph Sandbox [Sandbox · api.staging.maple.inc]
SK[mpk_test_ key] --> SD[(sandbox data)]
end
subgraph Production [Production · api.maple.inc]
LK[mpk_live_ key] --> LD[(live data)]
end
Telling environments apart in your code
The sandbox and production are separate deployments on different hosts, so a request or webhook belongs to whichever environment its host and credential do — you don’t infer it from the payload. Where you do want it explicitly:
GET /v1/mereturns the credential’senvironment(testorlive).- The order resource carries
livemode—truein production,falsein the sandbox.
A test-first workflow
Build against the sandbox
Point your client at
https://api.staging.maple.inc/v1with yourmpk_test_…key. Connect to the sandbox location Maple grants you, subscribe a webhook, and exercise the full order loop.Prove your webhook handler
POST /v1/webhook_subscriptions/{id}/testdelivers a signedwebhook.testevent so you can confirm signature verification and your2xxresponse before any real order exists.Get approved and go live
Maple separately approves production access and prepares the app and location grants. Use the production dashboard to create an appropriately scoped
mpk_live_…key, then usehttps://api.maple.inc/v1. Register a production webhook and complete the setup your integration needs, including an order-receiver connection for POS/order integrations. Do not assume sandbox grants, flags, or subscriptions carry over.
Going-live checklist
- Your client’s base URL and credential both point at the same environment.
- Your webhook handler verifies the HMAC signature and rejects bad or stale signatures. See Webhooks.
- You dedupe deliveries on the envelope
id(delivery is at-least-once). - You respond
2xxquickly and do slower work asynchronously. - Decision calls are retried safely on transient errors (they’re replay-safe).
- You store the live signing secret (
mwhsec_…) securely — it’s shown only once.