API Reference

ProEcommerce exposes a RESTful JSON API for every resource you can manage in the admin dashboard. Use it to build custom integrations, dashboards, and automation.

API availability. The public API is live for invoice, client, and service resources. Domain and provisioning endpoints roll out in the next release. Webhook signatures and rate limits are already enforced on all endpoints.

Base URL

https://<your-tenant>.proecommerce.com/api/v1/

Authentication

Generate an API key at Settings → API Keys. Pass it in the Authorization header on every request:

Authorization: Bearer proe_live_a1b2c3d4e5f6...

Keys are tenant-scoped and can be issued with read-only or read-write privileges. Revoke at any time from the settings panel.

Rate limits

Exceeding the limit returns 429 Too Many Requests with a Retry-After header.

Standard response format

{
  "data": { ... resource object ... },
  "meta": {
    "request_id": "req_01HX4R...",
    "api_version": "v1"
  }
}

List endpoints wrap in a data array and add pagination meta:

{
  "data": [ ... ],
  "meta": {
    "request_id": "...",
    "page": 1,
    "per_page": 50,
    "total": 1247,
    "total_pages": 25
  }
}

Error format

{
  "error": {
    "code": "invalid_request",
    "message": "The field 'email' is required.",
    "field": "email"
  },
  "meta": { "request_id": "..." }
}

Core endpoints

Clients

GET    /api/v1/clients
GET    /api/v1/clients/{id}
POST   /api/v1/clients
PATCH  /api/v1/clients/{id}
DELETE /api/v1/clients/{id}

Invoices

GET    /api/v1/invoices                 ?status=unpaid&from=2026-01-01
GET    /api/v1/invoices/{id}
POST   /api/v1/invoices                 (creates + emails)
POST   /api/v1/invoices/{id}/pay        (attempt charge)
POST   /api/v1/invoices/{id}/refund     (full or partial)
POST   /api/v1/invoices/{id}/void

Services

GET    /api/v1/services
GET    /api/v1/services/{id}
POST   /api/v1/services                 (create + optionally activate)
PATCH  /api/v1/services/{id}            (change package, billing cycle)
POST   /api/v1/services/{id}/suspend
POST   /api/v1/services/{id}/unsuspend
POST   /api/v1/services/{id}/terminate

Domains

GET    /api/v1/domains
GET    /api/v1/domains/{id}
GET    /api/v1/domains/check/{name}      (availability lookup)
POST   /api/v1/domains                   (register new)
POST   /api/v1/domains/{id}/renew
POST   /api/v1/domains/{id}/transfer-out

Tickets

GET    /api/v1/tickets
GET    /api/v1/tickets/{id}
POST   /api/v1/tickets
POST   /api/v1/tickets/{id}/reply
POST   /api/v1/tickets/{id}/close

Idempotency

Write endpoints accept an Idempotency-Key header. If you retry the same key within 24 hours, the server returns the cached response instead of creating duplicate resources.

Webhooks

See Integrations → Webhooks for event catalog, payload format, and signature verification.

SDK libraries

No official SDKs yet — but the API is plain REST with predictable JSON shapes, so any HTTP client works. If you'd like a PHP or Node SDK, let us know which one to prioritize.