Skip to main content

API Reference

Check all endpoints available in our Swagger UI:


OpenAPI Contract​

In addition to Swagger UI, we also publish the full OpenAPI contract so you can validate, version, and auto-generate SDKs in your pipelines.

Downloads

Replace these URLs with the final ones where you decide to host the contract.

Versioning

  • We use SemVer: MAJOR.MINOR.PATCH.
  • Breaking changes only in MAJOR with prior notice.
  • Backward-compatible changes (new optional fields, new endpoints) in MINOR.
  • Fixes and examples in PATCH.

Response Standard​

Success (200/201)​

Envelope

{
"message": "Payment created",
"timestamp": "2024-04-16T17:44:51Z",
"data": { /* resource or result */ }
}

Example (create payment)

{
"message": "OK",
"timestamp": "2024-04-16T17:44:51Z",
"data": {
"id": "263600a1-1514-4e57-a11d-be91e9c8e9d4",
"merchant_reference": "INV-25-AUG-0001",
"title": "My new payment",
"description": "Purchase of food and groceries on March 3, 2025",
"network": "TRON",
"currency": "USDT",
"amount": "1234.56",
"confirmed_amount": "0",
"status": "OPEN",
"valid_until": 1755532150,
"created_at": "2024-04-16T17:44:51Z",
"updated_at": "2024-04-16T17:44:51Z"
}
}

Errors (4xx/5xx)​

Envelope

{
"error": "0004",
"title": "INVALID_REQUEST",
"message": "The received request contains invalid data.",
"timestamp": "2024-04-16T17:44:51Z",
"details": [
{
"field": "network",
"message": "The received field exceeds the maximum allowed length."
}
]
}
  • error: stable numeric identifier so your client logic doesn’t depend on text.
  • title: stable text identifier.
  • message: human-readable message.
  • timestamp: date and time when the response was generated.
  • details: optional array with field-level errors or other metadata.

Headers

  • For validation errors, we recommend Content-Type: application/json (simple and universal).

URL Versioning​

SP Cuvex uses URL versioning to ensure compatibility:

  • Format: /v{number}/endpoint
  • Current version: v1 (only version available so far)
  • Example: /v1/payments

Caching​

Payment/invoice status endpoints are time-sensitive and real-time in nature. We do not recommend caching them client-side.
SP Cuvex may include conservative headers (Cache-Control: no-store) in critical responses. If your platform applies intermediate caches (CDN/proxy), disable them for these routes.


Rate Limiting​

In the current version we do not apply formal rate limits by API Key.
We reserve the right to enable anti-abuse protections. If we introduce 429 Too Many Requests in the future, we will follow the Retry-After standard and publish the policy (quotas and windows) in this section.


Compliance​

SP Cuvex is a non-custodial service: we never have control over your wallet funds.
Responsibility for private key custody, wallet operation, and accounting records rests with you as the merchant.


Main Endpoints​

Sandbox​

  • Base endpoint:
    https://sp-dev.cuvex.io/ecommerce

Production​

  • Base endpoint:
    https://sp.cuvex.io/ecommerce

Postman Collection​

To simplify integration testing, we provide a Postman collection with all endpoints and ready-to-use examples.

Download Collection​

📋 Download Postman Collection

Collection Contents​

The collection includes the following endpoint groups:

  • Status: Service health check
  • Networks: Query supported blockchain networks
  • Tokens: Query available tokens (stablecoins)
  • Payments: Full payment management
    • Create payments with idempotency
    • List payments with pagination and date filters
    • Retrieve details of specific payments

Preconfigured Variables​

VariableDefault valueDescription
baseUrlhttp://localhost:8080/ecommerceAPI base URL (update for your environment)
apiKeyyour-api-key-hereYour API key
paymentId39bdc393-dbda-47a6-b812-73c2fc5cbf91Example ID for payment queries
  1. Import the collection in Postman.
  2. Update environment variables:
    • For sandbox: https://sp-dev.cuvex.io/ecommerce
    • For production: https://sp.cuvex.io/ecommerce
  3. Configure your real apiKey.
  4. Execute requests in order to get familiar with the flow.

Error Codes​

See the Error Codes section for the list of error codes handled by the API.