What Zupy Provides
When your partnership is activated, the Zupy team provides:Credentials are shared via a secure channel (encrypted email or password manager). Never share API keys via plain text chat (Slack, WhatsApp, etc.).
Your key reaches only the endpoints in this documentation (the partner contract). Every other v2
endpoint returns
403 for a partner key — see Authentication → Endpoint allowlist.What You Configure
After receiving your credentials, set up your integration:1
Store API Keys Securely
Store your API keys as environment variables or in a secrets manager. Never hardcode keys in source code or expose them in client-side code.
2
Configure Webhook Sending
Set up your system to send order data to Zupy’s webhook endpoint. See the Webhook Setup guide for payload format and examples.Your webhook URL:
3
Implement Customer Lookup
Use the Customer Search API to look up customers by phone, email, or name:See the Getting Started guide for code examples.
4
Implement Points Flow
If your integration needs to display points or award them directly (beyond webhooks):
- View balance:
GET /api/v2/customers/{id}/points/ - Award points:
POST /api/v2/customers/{id}/points/add/ - View history:
GET /api/v2/customers/{id}/points/history/
5
Implement OTP Flow (If Required)
If your OTP policy requires verification for redemption or coupon usage, implement the OTP Flow in your customer-facing UI.
6
Implement Error Handling
Handle RFC 7807 error responses from the API:
Testing Checklist
Before going live, verify each integration point works correctly:1
Verify API Key
Send a simple customer search to confirm your key is valid:
2
Send Test Webhook
Send a test order payload and verify a Expected response:
200 response. The payload format is partner-specific — the example below uses Repediu’s format. Replace the fields with your own payload structure:The webhook accepts any JSON payload. Zupy processes it using your partner-specific adapter. See the Webhook Setup guide for your payload format.
3
Verify Customer Created
After the webhook processes (wait a few seconds), search for the test customer:Verify the customer exists and has the expected points balance.
4
Verify Points Awarded
Check the customer’s points balance matches the order value:
5
Test OTP Flow (If Applicable)
If your policy requires OTP for redemption or coupon usage:
- Request OTP:
POST /api/v2/auth/request-otp/ - Verify OTP:
POST /api/v2/auth/verify-otp/ - Redeem with session: Include
X-OTP-Sessionheader
6
Test Error Handling
Verify your integration handles errors gracefully:
- Send a request without
X-API-Key→ expect401 - Send invalid JSON → expect
400 - Send the same webhook twice → expect
200with"status": "duplicate"
Go-Live Checklist
Before declaring your integration production-ready:Infrastructure
- API key stored securely (environment variable or secrets manager)
- All API calls use HTTPS (HTTP is rejected)
- All API calls go through your backend server (never client-side)
- Retry logic implemented for
429rate limit responses - Error logging configured for API failures
Integration
- Webhook sending configured with correct URL and API key
- Customer lookup working for phone, email, and/or name search
- Points display integrated (if showing points to customers)
- OTP flow implemented (if required by your policy)
- Idempotency tested — duplicate webhooks return
"status": "duplicate"
Monitoring
- API error rates tracked (401, 403, 429, 5xx)
- Webhook delivery success rate monitored
- Support contact established with Zupy team
Communication
- Production API key received and deployed
- Rate limit tier confirmed with Zupy
- OTP policy confirmed with Zupy
- Support escalation path established (both sides)
Rate Limit Tiers
Your tier is assigned during onboarding. Contact Zupy to request a tier upgrade.
Support
Next Steps
Getting Started
Make your first API call in under 15 minutes
Webhook Setup
Configure webhooks for automatic order processing
OTP Flow
Implement customer identity verification
API Reference
Browse all endpoints with request/response schemas