Account Status
POST
/partner/account-statusOpen in the API playground →
Check if a subscriber account exists by phone number or card serial. Partner routes use HMAC headers, so this page provides a copyable request instead of the interactive playground.
Authentication
X-API-Key-IDstringheaderrequired
API key ID issued for the partner integration
X-Partner-IDstringheaderrequired
Partner identifier such as VULT
X-Timestampstringheaderrequired
RFC3339 timestamp used when generating the signature
X-Signaturestringheaderrequired
Hex-encoded HMAC-SHA256 of METHOD + "\n" + PATH + "\n" + TIMESTAMP + "\n" + BODY
Request Body
phone_numberstringbody
Phone number (e.g., 0771234567)
card_serialstringbody
Card serial number (e.g., OLIV0001)
Provide either
phone_numberorcard_serial
Example
Request
cURL
BODY='{"phone_number":"0771234567"}'
TIMESTAMP='2026-03-10T12:00:00Z'
SIGNATURE=$(printf 'POST\n/api/v1/partner/account-status\n%s\n%s' "$TIMESTAMP" "$BODY" | openssl dgst -sha256 -hmac "$SMARTPAY_HMAC_SECRET" -hex | sed 's/^.* //')
curl -X POST "https://demo.api.vultlocal.com/api/v1/partner/account-status" \
-H "X-API-Key-ID: $SMARTPAY_API_KEY_ID" \
-H "X-Partner-ID: $SMARTPAY_PARTNER_ID" \
-H "X-Timestamp: $TIMESTAMP" \
-H "X-Signature: $SIGNATURE" \
-H "Content-Type: application/json" \
-d "$BODY"
Response
{
"success": true,
"exists": true,
"status": "active"
}
The canonical string must match exactly, including newlines and the raw JSON body:
POST
/api/v1/partner/account-status
2026-03-10T12:00:00Z
{"phone_number":"0771234567"}
Errors
| Status | Description |
|---|---|
| 400 | Invalid request body |
| 401 | Missing or invalid HMAC headers/signature |
| 404 | User not found |