v1.0.5Changelog
💡
Before You Begin

You need sandbox client_id, client_secret, and partnerId from the QwikLive Developer Portal. Replace {sandbox-host} with the sandbox base URL provided during onboarding.

Step 1 — Verify Sandbox Health

The health endpoint requires no authentication. Use it to confirm the sandbox is reachable and all dependencies are up before making authenticated calls.

curl
curl -s https://{sandbox-host}/api/health

Expected response:

json
{
  "status": "ok",
  "environment": "sandbox",
  "version": "v1.0.5",
  "dependencies": [
    { "name": "Gateway", "status": "UP", "latencyMs": 12 },
    { "name": "CoreBanking",  "status": "UP", "latencyMs": 45 }
  ]
}

If you see "status": "ok" with both dependencies UP, the sandbox is ready. Proceed to Step 2.

If Health Returns degraded or down

If status is degraded or down, or a dependency shows DEGRADED or DOWN, do not proceed with financial transactions. Contact QwikLive support with the response body.

Step 2 — Account Lookup

Retrieve the list of accounts linked to the test card. The returned account IDs are used in all subsequent transaction calls.

curl
curl -s -X POST https://{sandbox-host}/api/ssb/accountservices/v1/accounts \
  -H "Content-Type: application/json" \
  -H "x-correlation-id: $(uuidgen)" \
  -H "client_id: $CLIENT_ID" \
  -H "client_secret: $CLIENT_SECRET" \
  -H "partnerId: PARTNER-ATM-001" \
  -d '{
    "head": {
      "acquirerId": "10001",
      "description": "ATM Account Lookup"
    },
    "transaction": {
      "rrn":  "250603001001",
      "date": "20260603",
      "type": "ACCOUNTLOOKUP"
    },
    "deviceInfo": {
      "terminalId":  "ATM00001",
      "terminalLoc": "100 Main St, New York NY 10001",
      "acceptorId":  "ACCEPTOR000001"
    },
    "institution": { "id": "000100" },
    "card": { "pan": "543100XXXXXXXXX0781" }
  }'

Expected response:

json
{
  "transaction": { "rrn": "250603001001", "date": "20260603", "type": "ACCOUNTLOOKUP" },
  "institution": { "id": "000100" },
  "accounts": [
    { "id": "DDA1234567890", "accountType": "DDA", "txnCapability": "DW", "description": "Checking Account" },
    { "id": "SAV9876543210", "accountType": "SDA", "txnCapability": "DW", "description": "Savings Account" }
  ],
  "status": { "responseCode": "000" }
}

Copy the id value (e.g., DDA1234567890) — you'll use it in Step 3.

Step 3 — Balance Inquiry

Use the account ID from Step 2 to retrieve the current balance.

curl
curl -s -X POST https://{sandbox-host}/api/ssb/accountservices/v1/accounts/balance \
  -H "Content-Type: application/json" \
  -H "x-correlation-id: $(uuidgen)" \
  -H "client_id: $CLIENT_ID" \
  -H "client_secret: $CLIENT_SECRET" \
  -H "partnerId: PARTNER-ATM-001" \
  -d '{
    "head": {
      "acquirerId": "10001",
      "description": "ATM Balance Inquiry"
    },
    "transaction": {
      "rrn":  "250603001010",
      "date": "20260603",
      "type": "BALANCEINQUIRY"
    },
    "deviceInfo": {
      "terminalId":  "ATM00001",
      "terminalLoc": "100 Main St, New York NY 10001",
      "acceptorId":  "ACCEPTOR000001"
    },
    "paymentInstrument": {
      "account": { "id": "DDA1234567890" },
      "card":    { "pan": "543100XXXXXXXXX0781" }
    },
    "institution": { "id": "000100" }
  }'

Expected response:

json
{
  "transaction": { "rrn": "250603001010", "date": "20260603", "type": "BALANCEINQUIRY" },
  "paymentInstrument": { "account": { "id": "DDA1234567890" } },
  "institution": { "id": "000100" },
  "branch": { "id": "BR-001", "name": "Main Street Branch", "address": "100 Main Street, New York, NY 10001" },
  "balances": [
    { "type": "Available", "amount": 4821.50, "currencyCode": "USD" },
    { "type": "Balance",   "amount": 4821.50, "currencyCode": "USD" }
  ],
  "status": { "authId": "AUTH01", "responseCode": "000" }
}
Success

You've completed the Quick Start! You received a 200 response with a balances array containing Available and Balance entries. Record the correlationId from every response — it is required for all support queries.

Next Steps