> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vultlocal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Account Status

> Check if subscriber account exists

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

<ParamField header="X-API-Key-ID" type="string" required>
  API key ID issued for the partner integration
</ParamField>

<ParamField header="X-Partner-ID" type="string" required>
  Partner identifier such as `VULT`
</ParamField>

<ParamField header="X-Timestamp" type="string" required>
  RFC3339 timestamp used when generating the signature
</ParamField>

<ParamField header="X-Signature" type="string" required>
  Hex-encoded HMAC-SHA256 of `METHOD + "\n" + PATH + "\n" + TIMESTAMP + "\n" + BODY`
</ParamField>

## Request Body

<ParamField body="phone_number" type="string">
  Phone number (e.g., `0771234567`)
</ParamField>

<ParamField body="card_serial" type="string">
  Card serial number (e.g., `OLIV0001`)
</ParamField>

> Provide either `phone_number` or `card_serial`

## Example

<RequestExample>
  ```bash cURL theme={null}
  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 "$OLIVE_HMAC_SECRET" -hex | sed 's/^.* //')

  curl -X POST "https://demo.api.vultlocal.com/api/v1/partner/account-status" \
    -H "X-API-Key-ID: $OLIVE_API_KEY_ID" \
    -H "X-Partner-ID: $OLIVE_PARTNER_ID" \
    -H "X-Timestamp: $TIMESTAMP" \
    -H "X-Signature: $SIGNATURE" \
    -H "Content-Type: application/json" \
    -d "$BODY"
  ```
</RequestExample>

## Response

```json theme={null}
{
  "success": true,
  "exists": true,
  "status": "active"
}
```

The canonical string must match exactly, including newlines and the raw JSON body:

```text theme={null}
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                            |


## OpenAPI

````yaml olive-openapi.json POST /partner/account-status
openapi: 3.0.0
info:
  description: >-
    API Gateway for OLIVE NFC Card Payment System - Comprehensive payment, card
    management, agent operations, and admin authentication. All /api/v1 routes
    require authentication using either API Key or JWT token.
  title: OLIVE NFC Card Payment API
  termsOfService: http://swagger.io/terms/
  contact:
    name: API Support
    email: support@olive.sl
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  version: 1.0.0
servers:
  - url: https://olive-gateway-a6ba.onrender.com/api/v1
security: []
paths:
  /partner/account-status:
    post:
      tags:
        - Partner
      summary: Account Status
      description: Check if subscriber account exists
      parameters:
        - name: X-API-Key-ID
          in: header
          required: true
          schema:
            type: string
        - name: X-Partner-ID
          in: header
          required: true
          schema:
            type: string
        - name: X-Timestamp
          in: header
          required: true
          schema:
            type: string
        - name: X-Signature
          in: header
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                phone_number:
                  type: string
                card_serial:
                  type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
      security:
        - ApiKeyAuth: []
components:
  securitySchemes:
    ApiKeyAuth:
      description: >-
        API Key for third-party integrations (WhatsApp, Smart PAY, VULT).
        Format: 'Bearer olive_live_xxxxxxxxxxxxx'
      type: apiKey
      name: Authorization
      in: header

````