Documentation

esc
    API reference · Databases / Database orders

    Database orders

    Follow a new database from payment to provisioning.

    Creating a database places an order. The order takes the initial payment, from credit or else the organization's default card, and then provisions the database. Poll the order until its status is provisioned (the database is ready to read), failed or payment_failed. An order never includes the password.

    The database order object

    How a new database is paid for and provisioned. Never includes a password. The console API returns the same order, naming the id order_id.

    Fields

    • admin_usernamestringrequired

      The admin login the database is created with.

    • idstringrequired

      The order's id, ord_….

    • order_idstringrequired

      The same value as id.

    • attempt_idstring or nullrequired

      The card payment attempt; null when the order was paid from credit or not charged yet.

    • database_idstringrequired

      The id the database has, or will have once provisioned.

    • statusstringrequired

      awaiting_payment, then paid, provisioning and provisioned (final: the database exists). payment_failed (no payment could be taken; nothing charged, or it was returned) and failed (provisioning could not start; any payment taken is returned to your credit) are final too.

      One of awaiting_payment, paid, provisioning, provisioned, payment_failed, failed.

    • operation_idstring or nullrequired

      The database's create operation, set once provisioning starts; null before.

    • failure_codestring or nullrequired

      Why the order failed, when it did: e.g. insufficient_credit, card_declined, payment_expired (not paid within an hour), database_name_taken, provisioning_failed. Null otherwise. organization_deleted: the order was cancelled because its organization was deleted; any payment taken is returned to credit.

    • amount_minorintegerrequired

      The initial payment in minor units of currency (kobo or cents).

    • currencystringrequired

      NGN or USD: your organization's billing currency.

      One of NGN, USD.

    • created_atstring or nullrequired

      When it was created (RFC 3339, UTC).

    • updated_atstring or nullrequired

      When it last changed (RFC 3339, UTC).

    List database orders

    Your database orders, newest first, one per Create a database call. An order shows whether the initial payment was taken and whether provisioning started. Never includes a password.

    GET/public/v1/database-orders
    Read keyReturns200OK

    Headers

    • Authorizationstringrequired

      Bearer and your API key: Bearer PAN_….

    Query parameters

    • limitinteger

      Items per page, 1 to 100. Defaults to 50.

      From 1 to 100. Defaults to 50.

    • cursorstring

      The previous page's next_cursor, to get the next page. Leave out for the first page; keep the other parameters the same.

    Response 200

    A page of orders.
    • dataarray of DatabaseOrderrequired
      Show 12 child fields
      • admin_usernamestringrequired

        The admin login the database is created with.

      • idstringrequired

        The order's id, ord_….

      • order_idstringrequired

        The same value as id.

      • attempt_idstring or nullrequired

        The card payment attempt; null when the order was paid from credit or not charged yet.

      • database_idstringrequired

        The id the database has, or will have once provisioned.

      • statusstringrequired

        awaiting_payment, then paid, provisioning and provisioned (final: the database exists). payment_failed (no payment could be taken; nothing charged, or it was returned) and failed (provisioning could not start; any payment taken is returned to your credit) are final too.

        One of awaiting_payment, paid, provisioning, provisioned, payment_failed, failed.

      • operation_idstring or nullrequired

        The database's create operation, set once provisioning starts; null before.

      • failure_codestring or nullrequired

        Why the order failed, when it did: e.g. insufficient_credit, card_declined, payment_expired (not paid within an hour), database_name_taken, provisioning_failed. Null otherwise. organization_deleted: the order was cancelled because its organization was deleted; any payment taken is returned to credit.

      • amount_minorintegerrequired

        The initial payment in minor units of currency (kobo or cents).

      • currencystringrequired

        NGN or USD: your organization's billing currency.

        One of NGN, USD.

      • created_atstring or nullrequired

        When it was created (RFC 3339, UTC).

      • updated_atstring or nullrequired

        When it last changed (RFC 3339, UTC).

    • next_cursorstring or nullrequired

      Pass as cursor for the next page; null on the last page.

    Errors

    • 400INVALID_PAGE: limit is not a whole number from 1 to 100. Send a value in that range, or leave it out for 50. INVALID_CURSOR: cursor does not belong to this list with these filters. Start again without a cursor.
    • 401UNAUTHENTICATED: the request has no API key, or the key is mistyped, revoked or expired, or its creator has left the organization. Send Authorization: Bearer PAN_… with a valid key; create one in the console under Organization › API keys.
    • 403INSUFFICIENT_SCOPE: the API key lacks the scope this endpoint needs (read for GET, write for changes; an AI app's key also needs delete for a destructive call). Use a key with that scope, or reconnect the AI app with "Manage and delete" access. FORBIDDEN: the member who created the key may not do this in the organization. Use a key created by an owner or admin. AI_APPS_DISABLED: the organization has turned AI app access off, and this request was made with an AI app's key or sent by Pantech's MCP server (Pantech-Client: mcp/…). An owner can turn it on in the console under Organization › AI apps.
    • 429RATE_LIMITED: this API key, verified user or organization used its request budget for the current window, or this address exceeded an IP/failed-auth limit. Wait Retry-After seconds, then retry. For authenticated quota denials, RateLimit-Scope identifies the denying quota and RateLimit-Reset reports its remaining window in seconds.
    • 503SERVICE_UNAVAILABLE: request quota storage is unavailable. Wait a few seconds, then retry.

    Every code is explained in Errors.

    Authorization
    Query
    curl "https://api.pantechdynamics.com/public/v1/database-orders" \
      -H "Authorization: Bearer $PANTECH_API_KEY"
    Response 200
    {
      "data": [
        {
          "admin_username": "dbadmin",
          "id": "ord_06gk3x9tq7m2v8r4y1c5d0zp8w",
          "order_id": "ord_06gk3x9tq7m2v8r4y1c5d0zp8w",
          "attempt_id": "attempt-id",
          "database_id": "db_06gk3x9tq7m2v8r4y1c5d0zp8w",
          "status": "provisioned",
          "operation_id": "op_06gk3x9tq7m2v8r4y1c5d0zp8w",
          "failure_code": null,
          "amount_minor": 1059200,
          "currency": "NGN",
          "created_at": "2026-10-03T09:30:00Z",
          "updated_at": "2026-10-03T09:30:00Z"
        }
      ],
      "next_cursor": "eyJhdCI6IjIwMjYtMTAtMDNUMDk6MzA6MDBaIiwiaWQiOiJ2bV8wNmdrIn0"
    }

    Get a database order

    Payment and provisioning progress for one new database. Poll it after Create a database until status is provisioned (then read the database at GET /public/v1/databases/{database_id}), or payment_failed or failed (final: any payment taken is returned to your credit, and failure_code says why). Once operation_id is set you can also follow that operation. Never includes a password.

    GET/public/v1/database-orders/{order_id}
    Read keyReturns200OK

    Headers

    • Authorizationstringrequired

      Bearer and your API key: Bearer PAN_….

    Path parameters

    • order_idstringrequired

      The resource's id.

    Response 200

    The order.
    • admin_usernamestringrequired

      The admin login the database is created with.

    • idstringrequired

      The order's id, ord_….

    • order_idstringrequired

      The same value as id.

    • attempt_idstring or nullrequired

      The card payment attempt; null when the order was paid from credit or not charged yet.

    • database_idstringrequired

      The id the database has, or will have once provisioned.

    • statusstringrequired

      awaiting_payment, then paid, provisioning and provisioned (final: the database exists). payment_failed (no payment could be taken; nothing charged, or it was returned) and failed (provisioning could not start; any payment taken is returned to your credit) are final too.

      One of awaiting_payment, paid, provisioning, provisioned, payment_failed, failed.

    • operation_idstring or nullrequired

      The database's create operation, set once provisioning starts; null before.

    • failure_codestring or nullrequired

      Why the order failed, when it did: e.g. insufficient_credit, card_declined, payment_expired (not paid within an hour), database_name_taken, provisioning_failed. Null otherwise. organization_deleted: the order was cancelled because its organization was deleted; any payment taken is returned to credit.

    • amount_minorintegerrequired

      The initial payment in minor units of currency (kobo or cents).

    • currencystringrequired

      NGN or USD: your organization's billing currency.

      One of NGN, USD.

    • created_atstring or nullrequired

      When it was created (RFC 3339, UTC).

    • updated_atstring or nullrequired

      When it last changed (RFC 3339, UTC).

    Errors

    • 401UNAUTHENTICATED: the request has no API key, or the key is mistyped, revoked or expired, or its creator has left the organization. Send Authorization: Bearer PAN_… with a valid key; create one in the console under Organization › API keys.
    • 403INSUFFICIENT_SCOPE: the API key lacks the scope this endpoint needs (read for GET, write for changes; an AI app's key also needs delete for a destructive call). Use a key with that scope, or reconnect the AI app with "Manage and delete" access. FORBIDDEN: the member who created the key may not do this in the organization. Use a key created by an owner or admin. AI_APPS_DISABLED: the organization has turned AI app access off, and this request was made with an AI app's key or sent by Pantech's MCP server (Pantech-Client: mcp/…). An owner can turn it on in the console under Organization › AI apps.
    • 404DATABASE_ORDER_NOT_FOUND: no database order with this id in your organization. Check the id; an order of another organization is reported the same way. RESOURCE_NOT_FOUND: the id is not an order id (ord_…). Check the path.
    • 429RATE_LIMITED: this API key, verified user or organization used its request budget for the current window, or this address exceeded an IP/failed-auth limit. Wait Retry-After seconds, then retry. For authenticated quota denials, RateLimit-Scope identifies the denying quota and RateLimit-Reset reports its remaining window in seconds.
    • 503SERVICE_UNAVAILABLE: request quota storage is unavailable. Wait a few seconds, then retry.

    Every code is explained in Errors.

    Authorization
    Path
    curl "https://api.pantechdynamics.com/public/v1/database-orders/ord_06gk3x9tq7m2v8r4y1c5d0zp8w" \
      -H "Authorization: Bearer $PANTECH_API_KEY"
    Response 200
    {
      "admin_username": "dbadmin",
      "id": "ord_06gk3x9tq7m2v8r4y1c5d0zp8w",
      "order_id": "ord_06gk3x9tq7m2v8r4y1c5d0zp8w",
      "attempt_id": "attempt-id",
      "database_id": "db_06gk3x9tq7m2v8r4y1c5d0zp8w",
      "status": "provisioned",
      "operation_id": "op_06gk3x9tq7m2v8r4y1c5d0zp8w",
      "failure_code": null,
      "amount_minor": 1059200,
      "currency": "NGN",
      "created_at": "2026-10-03T09:30:00Z",
      "updated_at": "2026-10-03T09:30:00Z"
    }

    Was this page helpful?

    Updated