Sandbox base URL:
https://api-sb.meld.io β production credentials and URLs are separate. All examples below assume sandbox.π Choose your path
Widget Integration β 5 minutes
Perfect for: Fast launch, minimal development effort- What you get: Ready-made UI, instant crypto functionality
- What you do: Get public-key URL β use directly β redirect users
- Development required: None
White-Label API β 30 minutes
Perfect for: Custom UI, complete design control- What you get: API endpoints for quotes, transactions, webhooks
- What you do: Build custom UI β API integration β launch provider widgets
- Development required: API integration, custom UI
Widget Integration Quick Start
Time required: 5 minutes Difficulty: No coding requiredBefore you begin
- A Meld dashboard invitation (check your email; if missing contact your account manager)
- Access to the Meld dashboardβs Developer tab
Step 1: Get your public-key URL
The Meld Dashboard provides a complete, ready-to-use Widget URL.- Check your email for the Meld dashboard invitation
- Click the invitation link and log in
- In the dashboard, navigate to the Developer tab
- Find Public Crypto Widget Key β this is your complete URL
- Copy and save your Public Key URL securely
You get a complete URL from the dashboard, not just a key. This URL is ready to use immediately.
Step 2: Use your Widget URL
Append optional query parameters to pre-fill or lock fields:Integration examples
HTML link:Step 3: Test your integration
- Use your sandbox Widget URL (from the Developer tab in the sandbox environment)
- Open the URL in your browser
- Complete a test transaction using the test credentials
- Verify the result in the dashboard β check the Transactions tab
Step 4: Go live
- Use your production Widget URL (from the Developer tab in the production environment)
- Test with a small real transaction
- Start directing users to your widget
White-Label API Quick Start
Time required: ~30 minutes Difficulty: API knowledge requiredBefore you begin
- A Meld dashboard invitation (check your email)
- Access to the Developer β API Keys section of the dashboard
- A publicly reachable URL if you want to receive webhooks (optional; you can also poll the API)
Step 1: Get your API key
Your API key is required for all Meld API calls.- Check your email for the Meld dashboard invitation
- Click the invitation link and log in
- In the dashboard, navigate to Developer β API Keys
- Click Reveal Key
- Copy and save your API key securely
Step 2: Set up webhooks (optional)
Webhooks notify your server when transactions are created and updated. You can complete this step later and poll the API instead.Requirements
- A publicly accessible URL (localhost will not work)
- For testing, consider ngrok, webhook.site or similar services
Setup
- Navigate to Developer β Webhooks in the dashboard
- Click Add Endpoint
- Enter your webhook URL (must start with
httporhttps) - Give your webhook a descriptive name
- Select Subscribe to all events
- Click Add endpoint
You will receive notifications to this URL for all transaction creations and updates.
Step 3: Test your API connection
Verify your API key by requesting a price quote.- Endpoint:
POST /payments/crypto/quote - Authorization:
BASIC [your-api-key]
Request
Example response
Testing options
- Use Meldβs Postman collection
- Use the interactive docs in your dashboard
Expected result
β200 OK with quote details. If you receive 401 Unauthorized, recheck the BASIC prefix and your key.
Step 4: Create a test transaction
Create a test transaction without using real money.- Endpoint:
POST /crypto/session/widget - Authorization:
BASIC [your-api-key]
Request
Example response
Replace
walletAddress with your own test wallet or use the example above.Complete the test flow
- Copy the
widgetUrlfrom the API response - Open the URL in your browser
- For KYC testing, use any fake SSN and any image for the ID upload
- For payment testing, use card
4111 1111 1111 1111, any future expiry, and any 3-digit CVV
Step 5: Verify your transaction
Option A β Using webhooks
- Check your webhook endpoint for the transaction notification
- Extract the
transactionIdfrom the webhook payload - Call
GET /payments/transactions/{transactionId}to retrieve the full record
Option B β Without webhooks
- Call
GET /payments/transactionsto return your recent transactions - Locate your
transactionIdand read its currentstatus
Dashboard verification
- Navigate to the Transactions tab
- If your transaction isnβt visible, click the Status dropdown and select Select All
Troubleshooting
π« 401 Unauthorized
- Ensure
BASICis prefixed before your API key - Check for extra spaces or incorrect formatting
π« Webhook not received
- Verify URL is publicly accessible
- Check firewall settings
- Ensure the webhook endpoint returns a
2xxstatus code
π« Transaction not visible
- Change the status filter to Select All in the dashboard
- Wait 30 seconds and refresh
- Confirm you are looking at the correct environment (sandbox vs production)