Get API credentials
- In your Northbeam dashboard go to Settings → API Keys
- Click Create new API key to generate:
- Authorization (API Key)
- Data-Client-ID (Client ID)

Onboarding Flow: Add Orders > Other E-Commerce Platform

Dashboard: Settings > API Keys
Production endpoint:
https://api.northbeam.io/v2/orders
Example (cURL):
These headers are required for every request. Without them, the Orders API will reject your call.
Build your payload
All of these fields are required for full functionality in Northbeam. Full API reference: /reference/post_orders-1.Example payload
Verify your payload
Before sending the orders, confirm your payload structure and values are valid. Most issues come from malformed payloads or missing fields. Common validation checks:- ✅
order_idmust be unique per order and match theidused infirePurchaseEvent. - ✅
time_of_purchasemust be AFTER the correspondingfirePurchaseEventtimestamp and in proper ISO-8601 format with timezone offset. - ✅
productsarray must include at least one product withid,name,quantity, andprice. - ✅
currencymust be a valid ISO-4217 code (e.g.,USD,EUR). - ✅
customer_emailmust match the email on the actual order in your OMS (case-sensitive in some systems). - ✅
customer_idaccuracy is critical – this is what Northbeam uses to distinguish between new and returning customers. If it’s inconsistent (e.g., mixing Shopify IDs and internal IDs), customer LTV and new/returning logic will be incorrect. - ✅
order_tagsare required and used for two main purposes:- Subscriptions – Use distinct tags to separate:
- First-time subscription orders (subscription starts)
- Recurring subscription renewals (auto-charges that happen in the backend)
- Offline Orders – Tag any orders not placed through your live production website (and therefore without frontend pixel events). Our team excludes these from diagnostics monitoring.
- Subscriptions – Use distinct tags to separate:
- ✅
refundsobjects must includeproduct_id,quantity,refund_amount, andrefund_made_at. - ✅ If including
customer_shipping_address, all required subfields (address1,city,state,zip,country_code) must be present.
- ❌ Using inconsistent
customer_ids (e.g., switching between Shopify and internal IDs) - ❌
time_of_purchaseset BEFORE the frontend pixel fire - ❌ Untagged subscription orders, which prevents Subscription Analytics from working correctly
- ❌ Untagged offline orders, leading to large discrepancies in pixel vs. order data. This prolongs our data validation process.
- ❌ Missing
productsarray or leaving it empty - ❌ Currency not set as a valid ISO-4217 code (e.g., using “US Dollars” instead of
USD)
Backfill historical orders
Backfilling your historical data is extremely important. This ensures your Customer LTV is complete. This is also key for accurate New and Returning Data.Accurate New and Returning DataNorthbeam determines whether a customer is new or returning based on the
customer_id attached to each order. Without historical orders, someone who purchased in the past but buys again today will be counted as a new customer — because their first order isn’t in the system.Backfilling ensures repeat customers are recognized correctly.- Send all historical orders you want in Northbeam (recommended: up to 5 years).
- Use the same payload format from Build your payload.
- Keep
order_idstable; resending the sameorder_idoverwrites the prior record.
- Batch up to 1000 orders per request.
- Backfill in time windows (for example, month by month).
Set up ongoing batches
After history is loaded, keep Northbeam up to date with regular batches. Cadence- Northbeam processes on your plan frequency, not in real time.
- Send at least 2× more frequently than your plan’s processing cadence.
- Example: on a 4× per day plan, send 8× per day.
- Up to 1000 orders per request.
- Include new and changed orders since the last run.
- Resend modified orders using the same
order_id.
- Retries: if a request fails, retry the same batch; using the same
order_ids is safe. - Idempotency: the latest record for an
order_idtakes priority.
Implementation tip: most teams set this up as a scheduled job (e.g., cron, Airflow, or a serverless function like AWS Lambda).
Test in sandbox (optional)
Use the UAT endpoint to validate payloads before sending real data to production. Sandbox endpoint:https://api-uat.northbeam.io/v2/orders
You can test without production keys by using these header values. Testing with your real keys also works, but the sandbox database is purged periodically, so treat it as a testing environment only.
Data diagnostics
Northbeam provides a diagnostics tool to help you monitor Orders API activity in production. If there are any issues with your API upserts, errors will appear here with details to help you debug. Common causes include malformed payloads or missing required fields.Where to find it
In the Northbeam dashboard:- Go to Settings
- Select Data Diagnostics (bottom of the left-hand column)
Error table
Each error entry includes:- Request ID
- Error message
- Error type (e.g.,
payload_validation_error) - Timestamp of error
- Link to request for deeper inspection

Dashboard: Settings > Data Diagnostics
Error trends
- A chart shows API error counts over time (1–30 day ranges available).
- Errors typically appear within 1–3 minutes after they occur.
- Use this view to identify spikes or recurring issues.
- Errors typically appear within 1–3 minutes after they occur.
Monitoring: this view is most helpful for spotting systemic issues (e.g., a bad deploy or recurring field mismatch) rather than one-off errors.

Dashboard: Settings > Data Diagnostics