VeyqoDEVELOPERS
DocumentationGET Read browser checkout state

Browser checkout API

GET/sessions/{id}

Read browser checkout state

Possession of the session ID addresses this customer checkout. These endpoints support the hosted page and SDK; prefer those clients over reimplementing provider-specific actions.

GEThttps://api.veyqo.org/checkout/v1/sessions/{id}Integration guide
Use your sandbox environment to start. Understand error codes and payment statuses before handling a live payment.
Read browser checkout state
curl --request GET "https://api.veyqo.org/checkout/v1/sessions/$CHECKOUT_SESSION_ID" \
  --header "Accept: application/json"
{
  "success": true,
  "data": {
    "id": "cs_01M6EB66SC61Q3RQYAN0693DGM",
    "object": "checkout_session",
    "url": "https://veyqo.org/pay/cs_01M6EB66SC61Q3RQYAN0693DGM",
    "status": "open",
    "source": "api",
    "provider": {
      "slug": "paystack",
      "name": "Paystack"
    },
    "amount": 50000,
    "currency": "NGN",
    "reference": "ORDER-1001",
    "description": "Order 1001",
    "customer_email": "customer@example.com",
    "payment": null,
    "success_url": "https://shop.example.com/thanks",
    "cancel_url": "https://shop.example.com/cart",
    "expires_at": "2026-11-02T13:00:00+00:00",
    "completed_at": null,
    "created_at": "2026-11-02T12:00:00+00:00",
    "merchant": {
      "name": "Example Store"
    },
    "sandbox": true,
    "needs_email": false,
    "methods": [
      {
        "id": "card"
      },
      {
        "id": "bank_transfer"
      },
      {
        "id": "ussd",
        "banks": [
          {
            "code": "737",
            "name": "GTBank"
          },
          {
            "code": "919",
            "name": "UBA"
          },
          {
            "code": "822",
            "name": "Sterling Bank"
          },
          {
            "code": "966",
            "name": "Zenith Bank"
          }
        ]
      }
    ],
    "next_action": null
  }
}

Illustrative examples. Replace IDs and environment variables with your own values. Keep secret keys on your server.

Headers

Acceptstringoptional
application/json

Endpoint

GET https://api.veyqo.org/checkout/v1/sessions/{id}

The resource ID addresses this customer checkout. Do not expose it unnecessarily. This endpoint supports the hosted page and checkout script.

Path and query parameters

ParameterLocationRequiredDescription
idpathYesUse the ID returned when this resource was created.

Response fields

idstringrequired
Checkout session ID (cs_ prefix).
object"checkout_session"required
See the JSON example.
urlstringrequired
Hosted Veyqo URL; redirect here or open this session using VeyqoCheckout. Format: uri.
statusstringrequired
Values: open, completed, expired.
sourcestringrequired
Values: api, browser, link.
providerobject | nullrequired
Available provider identity, never secret credentials.
provider.slugstringoptional
See the JSON example.
provider.namestringoptional
See the JSON example.
amountintegerrequired
Server-defined amount in minor units.
currencystringrequired
Three-letter currency.
referencestring | nullrequired
Your order reference, when supplied.
descriptionstring | nullrequired
Checkout description.
customer_emailstring | nullrequired
Customer email if already supplied.
paymentobject | nullrequired
Current payment attempt, if any. A session can have multiple attempts over time.
success_urlstring | nullrequired
Configured return URL. A redirect is not proof of payment.
cancel_urlstring | nullrequired
Configured cancellation URL.
expires_atstringrequired
Session expiry time. Format: date-time.
completed_atstring | nullrequired
ISO 8601 timestamp. Format: date-time.
created_atstring | nullrequired
ISO 8601 timestamp. Format: date-time.
merchantobjectrequired
See the JSON example.
merchant.namestringrequired
See the JSON example.
sandboxbooleanrequired
See the JSON example.
needs_emailbooleanrequired
See the JSON example.
methodsarrayrequired
Currency-dependent method descriptions. Use the hosted page/SDK instead of hard-coding this provider-specific payload.
next_actionobject | nullrequired
Provider-specific action for the hosted checkout: bank details, USSD instructions, OTP or secure card form. May change per method.

Errors and recovery

CodeHTTPRecoveryRetry policy
VALIDATION_FAILED422Read error.details when present, correct the named fields and retry only after correction. Validation messages may describe state/capability errors without field details.No automatic retry.
RESOURCE_NOT_FOUND404Check the ID, project and environment. Do not guess another project’s IDs. An inactive payment link is also not-found.No blind retry.
RATE_LIMIT_EXCEEDED429Honor Retry-After, use bounded exponential backoff with jitter, and reduce concurrent requests. Read X-RateLimit headers.Yes, after Retry-After; preserve write idempotency.
PROVIDER_UNAVAILABLE503Check the existing payment and verify its state before starting another attempt. Retry safe reads with backoff; preserve operation identity for retried writes.Conditional: reconcile unknown outcomes first.
INTERNAL_ERROR500Record X-Request-Id, timestamp and sanitized request context. Reconcile unknown payment outcomes before retrying a write; contact support if it persists.Safe reads: bounded backoff. Writes: reconcile first.