Overview
Danipa's Merchant API lets businesses accept payments via payment links, invoices, and direct API integration. This guide walks you through the onboarding process from registration to your first transaction.
Sandbox-first. Sandbox is the only live environment today — build and test against
https://api.sandbox.danipa.com/ms/v1with adk_test_key. Production (dk_live_keys, real money movement) is reserved for general availability and is not yet live.
Step 1: Register Your Business
Create a merchant account by providing your business details:
curl -X POST https://api.sandbox.danipa.com/ms/v1/merchants \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"businessName": "Acme Corp",
"businessType": "RETAIL",
"registrationNumber": "REG-001",
"country": "GH"
}'
Your account starts in PENDING status while business verification (KYB) is processed.
Business Types
| Type | Description |
|---|---|
RETAIL | Physical or online retail |
SAAS | Software-as-a-service |
MARKETPLACE | Multi-vendor marketplace |
NONPROFIT | Registered non-profit organization |
OTHER | Other business type |
Step 2: Complete Business Verification (KYB)
Upload your business registration documents through the merchant dashboard. The verification process checks:
- Business registration certificate
- Tax identification number
- Proof of address
- Authorized representative ID
| KYB Status | Description |
|---|---|
NOT_STARTED | No documents submitted |
PENDING | Documents under review |
VERIFIED | Business verified — full sandbox API access |
REJECTED | Verification failed — resubmit documents |
Once verified, your merchant status changes to ACTIVE.
Step 3: Get Your API Keys
After verification, generate API keys from the merchant dashboard:
- Navigate to API Keys
- Click Create Key
- Set a label (e.g. "Sandbox Key") and select permissions
- Copy the full key — it's shown only once
Key Prefixes
| Prefix | Environment |
|---|---|
dk_test_ | Sandbox — simulated transactions (available today) |
dk_live_ | Reserved for production — real money movement (not yet live) |
Permissions
| Permission | Scope |
|---|---|
payments | Create and manage payment links, process payments |
invoices | Create and send invoices |
webhooks | Manage webhook endpoints |
analytics | Access analytics and reporting |
Step 4: Configure Webhooks
Set up webhook endpoints to receive real-time event notifications:
curl -X POST https://api.sandbox.danipa.com/ms/v1/merchants/me/webhooks \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://yoursite.com/webhooks/danipa",
"eventTypes": ["payment.completed", "invoice.paid"]
}'
See the Webhooks guide for signature verification and event types.
Step 5: Accept Your First Payment
Create a payment link and share it with a customer:
curl -X POST https://api.sandbox.danipa.com/ms/v1/merchants/me/payment-links \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "First Payment",
"amount": 10.00,
"currency": "GHS",
"amountFixed": true
}'
The response includes a url field — share that with your customer. When they pay, you'll receive a payment.completed webhook.
Sandbox vs. Production
| Feature | Sandbox | Production (not yet live) |
|---|---|---|
| API Key prefix | dk_test_ | dk_live_ |
| Money movement | Simulated | Real |
| Provider responses | Mocked (auto-settle in 5s) | Real provider calls |
| Rate limits | 60 req/min | Per your plan |
Build and test your integration thoroughly in sandbox now; swap to production keys when production opens for general availability.
Pricing Plans
Danipa offers tiered pricing based on transaction volume and API usage. Plan amounts are set live and priced per-currency (GHS / USD / CAD), so they aren't hard-coded here. Fetch the current plans from the public pricing API:
curl https://api.sandbox.danipa.com/ms/v1/pricing-plans
View plans and upgrade in the Billing section of your dashboard.
Go-Live Checklist
Before switching to production:
- Business verification (KYB) completed and approved
- Webhook endpoint configured and receiving test events
- Signature verification implemented (see Webhooks)
- Error handling for API failures (see Error Handling)
- Tested payment flow end-to-end in sandbox
- Ready to swap the sandbox API key for a production key when production opens
Next Steps
- Payment Links — Start accepting payments
- Invoices — Bill your customers
- API Explorer — Browse all merchant endpoints
- SDKs — Official client libraries