Developer Portal

Everything you need to integrate our high-performance e-wallet microservice into your ecosystem.

Security & Authentication

Our API supports two modes of authentication for maximum flexibility.

1. Merchant API Key (Recommended for Orders)

Authorization: Bearer ex_pk_...

Find your unique key in the Merchants Dashboard.

2. Legacy Static Key (System-to-System)

Authorization: Bearer YOUR_STATIC_KEY

Reserved for administrative queries and legacy integrations.

How to Test in Testing Environment

Our platform provides a sandbox environment to simulate checkout flows, card transactions, and webhook notifications without charging real funds.

๐Ÿงช

1. Sandbox Keys & Mode

Set your Merchant to Test Mode (Sandbox) in the Admin Panel or use your test public key starting with ex_pk_test_....

๐Ÿ’ณ

2. Credit Card Testing

Use any mock card details on the checkout page (e.g., 4000 0000 0000 4242, expiry 12/28, CVC 123). Payments complete instantly without contacting acquiring banks.

๐Ÿ‘›

3. Pre-Funded Test User Account

Ready for Checkout

To test direct wallet-to-wallet checkout payments without entering card details, log in on the checkout page with the pre-funded test client account:

Test Login Email test@expayments.com
Test Password password123
Pre-funded Wallet Balances: โ‚ฌ10,000 EUR $10,000 USD ยฃ10,000 GBP 10,000 USDT

API Endpoints

Post /api/orders
Generate Checkout Url
Parameter Type Req Description
amount Decimal YES Total order price (99.99)
currency String(3) YES Matches the target wallet currency
customer_details Object YES A JSON object containing customer info
โ”” name String YES Customer first name
โ”” surname String YES Customer last name
โ”” email Email YES Valid email address
โ”” phone String YES Customer contact number
โ”” address_line1 String NO Street address, P.O. box, etc.
โ”” city String NO City, district, suburb, town, or village.
โ”” postal_code String NO ZIP or postal code
โ”” country String(2) NO ISO 3166-1 alpha-2 country code
redirect_url URL YES User redirect destination after payment

Request JSON Example

                    {
                      "amount": 149.98,
                      "currency": "USD",
                      "redirect_url": "https://example.com/success",
                      "webhook_url": "https://your-api.com/webhooks",
                      "customer_details": {
                        "name": "Inga",
                        "surname": "Berzina",
                        "email": "inga@inbox.lv",
                        "phone": "+3712000000"
                      },
                      "items": [
                        {
                          "name": "Wallet Kit",
                          "price": 99.99,
                          "quantity": 1
                        }
                      ]
                    }

Success Response

                    {
                      "public_order_id": "EX-OAAMVPLML",
                      "status": "pending",
                      "checkout_url": "https://wallet.io/pay/EX-O..."
                    }
Get /api/orders/{id}/receipt
Download PDF Receipt

Generates a branded PDF receipt for a completed or pending order. Returns a binary file stream with Content-Type: application/pdf.

Post-Payment Webhooks

When an order is successfully paid, our system sends a Post request to your webhook_url. Use this to automate your internal fulfillment flow.

Field Type Description
event String Always order.paid
order_id String The unique EX-O... public ID
amount String Plain string amount "149.98"
signature Hash HMAC-SHA256 Security Signature

Webhook Payload

                    {
                      "event": "order.paid",
                      "order_id": "EX-SVUGY4KYEF",
                      "amount": "149.98",
                      "currency": "USD",
                      "status": "success",
                      "timestamp": 1777297199,
                      "signature": "ef2c8836c1...a8"
                    }

Security Verification

Verify each webhook by calculating the HMAC-SHA256 signature using your APP_KEY.

PHP Example
$expected = hash_hmac(
  'sha256',
  $order_id . $amount,
  $your_app_key
);

if ($expected === $request->signature) { ... }