Account & Billing API

Base URL: https://api.xeboki.com/v1/account

The Account API gives you programmatic access to your Xeboki profile, active subscriptions, invoices, and payment methods. Useful for building internal dashboards, automating invoice retrieval, or verifying which products are active before making product API calls.

Note: This API reflects the platform account — the Xeboki account that holds API keys and subscriptions. It is not the same as a subscriber's customers. For customer-facing data, use the respective product API (e.g. Launchpad for billing customers).

Authentication

All requests require a valid API key. Create keys at account.xeboki.com .

Authorization: Bearer xbk_live_your_key_here

Required scopes

account:profile:readRead your profile details
account:profile:writeUpdate your profile
account:subscriptions:readList active subscriptions
account:billing:readAccess invoices and payment methods

Profile

Your Xeboki account profile.

GET/v1/account/me

Get your profile

Returns the authenticated account's profile and active product list.

curl https://api.xeboki.com/v1/account/me \
  -H "Authorization: Bearer xbk_live_your_key_here"

Response 200

{
  "id": 42,
  "email": "you@yourcompany.com",
  "full_name": "Your Name",
  "company": "Your Company Ltd",
  "products": ["pos", "chat"],
  "plan": "Pro",
  "created_at": "2025-10-01T09:00:00Z"
}
PATCH/v1/account/me

Update your profile

Update your display name or company. Only provided fields are changed.

Request body

ParameterTypeDescription
full_namestringYour full name.
companystringCompany or organisation name.
curl -X PATCH https://api.xeboki.com/v1/account/me \
  -H "Authorization: Bearer xbk_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{ "full_name": "New Name", "company": "New Company Ltd" }'

Response 200

{
  "id": 42,
  "email": "you@yourcompany.com",
  "full_name": "New Name",
  "company": "New Company Ltd",
  "updated_at": "2026-03-31T12:00:00Z"
}

Subscriptions

Your active Xeboki product subscriptions.

GET/v1/account/subscriptions

List subscriptions

Returns all product subscriptions on your account.

curl https://api.xeboki.com/v1/account/subscriptions \
  -H "Authorization: Bearer xbk_live_your_key_here"

Response 200

{
  "subscriptions": [
    {
      "id": 101,
      "product": "pos",
      "plan_name": "Pro",
      "status": "active",
      "price": 49.00,
      "interval": "month",
      "current_period_end": "2026-04-30T00:00:00Z",
      "cancel_at_period_end": false
    },
    {
      "id": 102,
      "product": "chat",
      "plan_name": "Starter",
      "status": "active",
      "price": 19.00,
      "interval": "month",
      "current_period_end": "2026-04-30T00:00:00Z",
      "cancel_at_period_end": false
    }
  ]
}

Billing

Invoices and payment methods on your account.

GET/v1/account/invoices

List invoices

Returns all invoices, newest first.

Query parameters

ParameterTypeDescription
pageintegerPage number (default: 1).
limitintegerResults per page, max 50 (default: 20).
curl https://api.xeboki.com/v1/account/invoices \
  -H "Authorization: Bearer xbk_live_your_key_here"

Response 200

{
  "invoices": [
    {
      "id": "inv_march2026",
      "amount": 68.00,
      "currency": "usd",
      "status": "paid",
      "period_start": "2026-03-01",
      "period_end": "2026-03-31",
      "pdf_url": "https://billing.xeboki.com/invoices/inv_march2026.pdf",
      "created_at": "2026-03-01T00:00:00Z"
    }
  ],
  "total": 6
}
GET/v1/account/payment-methods

List payment methods

Returns saved payment methods on your account.

curl https://api.xeboki.com/v1/account/payment-methods \
  -H "Authorization: Bearer xbk_live_your_key_here"

Response 200

{
  "payment_methods": [
    {
      "id": "pm_visa4242",
      "type": "card",
      "brand": "visa",
      "last4": "4242",
      "exp_month": 12,
      "exp_year": 2027,
      "is_default": true
    }
  ]
}

Error codes

CodeErrorCause
401UnauthorizedMissing or expired API key.
403ForbiddenAPI key lacks the required scope.
422Validation ErrorInvalid field value in PATCH request.
429Too Many RequestsRate limit exceeded.
500Internal Server ErrorContact support with your request ID.