MethodPathSummaryAuth
GET/v1/admin/recharges/ordersList reconciled recharge order headsSession
GET/v1/admin/recharges/orders/{order_id}/reconciliationRead exact order, callback, ledger and statistics identitiesSession
GET/v1/admin/recharges/statisticsList immutable settlement statistics factsSession
GET/v1/admin/recharges/statistics.csvExport the same bounded settlement snapshot as CSVSession

Contract file:api/control-recharges.openapi.yaml

Operation details

GET /v1/admin/recharges/orders

List reconciled recharge order heads

operationId
listAdminRechargeOrders
Auth
  • Session: the Bearer session of a signed-in control plane user, used by the customer in their own control plane; a plugin must never ask for it.
Required permissions

The contract has no separate permission annotation; see the description below and the 403 response.

Parameters

listAdminRechargeOrders Parameters
NameInTypeRequiredDescription
X-Request-IDheaderstringYes—
pagequeryintegerNo—
limitqueryintegerNo—
channelquerystring: alipay / wechat / transfer / usdtNo—
statequerystring: pending / paid / partially_refunded / refunded / voided / failed / canceled / reconcile_requiredNo—
tenant_scope_idquerystring(uuid)No—
user_idquerystring(uuid)No—
fromquerystring(date-time)No—
toquerystring(date-time)No—
snapshot_atquerystring(date-time)NoReuse snapshot_at returned by the first page to keep later pages and CSV on the same fact boundary.

Responses

listAdminRechargeOrders Responses
StatusDescription
200Stable database snapshot

Fields:items: array<RechargeOrder> total: integer(int64) page: integer limit: integer snapshot_at: string(date-time)

400Stable error code; message is not safe for direct UI rendering
401Stable error code; message is not safe for direct UI rendering
403Stable error code; message is not safe for direct UI rendering

What to do on failure

  • 400 Fix the parameters or body per the field list; do not retry unchanged.
  • 401 Check the credential format and whether it expired or was rotated.
  • 403 Check the key scopes, the owner’s current permissions and the tenant scope; never switch to a more privileged account.

↑ Back to list

GET /v1/admin/recharges/orders/{order_id}/reconciliation

Read exact order, callback, ledger and statistics identities

operationId
getRechargeReconciliation
Auth
  • Session: the Bearer session of a signed-in control plane user, used by the customer in their own control plane; a plugin must never ask for it.
Required permissions

The contract has no separate permission annotation; see the description below and the 403 response.

Parameters

getRechargeReconciliation Parameters
NameInTypeRequiredDescription
X-Request-IDheaderstringYes—
order_idpathstring(uuid)Yes—

Responses

getRechargeReconciliation Responses
StatusDescription
200Exact four-way reconciliation

Fields:order: RechargeOrder callback: RechargeCallbackFact ledger: RechargeLedgerFact statistic: RechargeStatistic provider_events: array<RechargeProviderEventFact> ledger_entries: array<RechargeLedgerFact> gross_amount_minor: integer(int64) refunded_amount_minor: integer(int64) net_amount_minor: integer(int64)

401Stable error code; message is not safe for direct UI rendering
403Stable error code; message is not safe for direct UI rendering
404Stable error code; message is not safe for direct UI rendering
503Stable error code; message is not safe for direct UI rendering

What to do on failure

  • 401 Check the credential format and whether it expired or was rotated.
  • 403 Check the key scopes, the owner’s current permissions and the tenant scope; never switch to a more privileged account.
  • 404 The resource does not exist or belongs to another tenant.
  • 503 A dependency is unavailable: retry later with the original Idempotency-Key.

↑ Back to list

GET /v1/admin/recharges/statistics

List immutable settlement statistics facts

operationId
listRechargeStatistics
Auth
  • Session: the Bearer session of a signed-in control plane user, used by the customer in their own control plane; a plugin must never ask for it.
Required permissions

The contract has no separate permission annotation; see the description below and the 403 response.

Parameters

listRechargeStatistics Parameters
NameInTypeRequiredDescription
X-Request-IDheaderstringYes—
pagequeryintegerNo—
limitqueryintegerNo—
channelquerystring: alipay / wechat / transfer / usdtNo—
tenant_scope_idquerystring(uuid)No—
user_idquerystring(uuid)No—
fromquerystring(date-time)Yes—
toquerystring(date-time)Yes—
snapshot_atquerystring(date-time)NoReuse snapshot_at returned by the first page to keep later pages and CSV on the same fact boundary.

Responses

listRechargeStatistics Responses
StatusDescription
200Totals and rows from one stable snapshot

Fields:items: array<RechargeStatistic> total_amount_minor: integer(int64) total_gross_amount_minor: integer(int64) total_refunded_amount_minor: integer(int64) total_net_amount_minor: integer(int64) total_orders: integer(int64) page: integer limit: integer snapshot_at: string(date-time)

400Stable error code; message is not safe for direct UI rendering
401Stable error code; message is not safe for direct UI rendering
403Stable error code; message is not safe for direct UI rendering

What to do on failure

  • 400 Fix the parameters or body per the field list; do not retry unchanged.
  • 401 Check the credential format and whether it expired or was rotated.
  • 403 Check the key scopes, the owner’s current permissions and the tenant scope; never switch to a more privileged account.

↑ Back to list

GET /v1/admin/recharges/statistics.csv

Export the same bounded settlement snapshot as CSV

operationId
exportRechargeStatistics
Auth
  • Session: the Bearer session of a signed-in control plane user, used by the customer in their own control plane; a plugin must never ask for it.
Required permissions

The contract has no separate permission annotation; see the description below and the 403 response.

Parameters

exportRechargeStatistics Parameters
NameInTypeRequiredDescription
X-Request-IDheaderstringYes—
channelquerystring: alipay / wechat / transfer / usdtNo—
tenant_scope_idquerystring(uuid)No—
user_idquerystring(uuid)No—
fromquerystring(date-time)Yes—
toquerystring(date-time)Yes—
snapshot_atquerystring(date-time)NoReuse snapshot_at returned by the first page to keep later pages and CSV on the same fact boundary.

Responses

exportRechargeStatistics Responses
StatusDescription
200UTF-8 CSV, at most 10000 facts
400Stable error code; message is not safe for direct UI rendering
401Stable error code; message is not safe for direct UI rendering
403Stable error code; message is not safe for direct UI rendering

What to do on failure

  • 400 Fix the parameters or body per the field list; do not retry unchanged.
  • 401 Check the credential format and whether it expired or was rotated.
  • 403 Check the key scopes, the owner’s current permissions and the tenant scope; never switch to a more privileged account.

↑ Back to list