BEXO / Developers
BUILD WITH BEXO / API REFERENCE

API data models

Read the selected schema fields, nullability and constraints used by the downloadable OpenAPI contract.

Reference edition 2026-10-19 • Selected public contract
schemasdata modelsJSONOpenAPI

Conventions across models

  • Identifiers are opaque strings; most entity references use UUIDs. Validate the operation-specific field instead of inferring authority from the ID.
  • Money in *Paise fields is integer INR minor units. Never convert a formatted currency string back into an authoritative amount.
  • Date-time fields use ISO strings when present. Some fields can be null or absent.
  • The reference describes a selected set of response fields. Clients should tolerate additional fields and avoid exposing whole private objects.
  • Synthetic examples and placeholders are not production customer data or usable credentials.

Problem

FieldTypeDetails
typestringProblem type; normally about:blank.
titlestringHuman-readable summary.
detailstringClient-safe recovery detail.
statusRequiredintegerHTTP status.
codeRequiredstringMachine-readable error code.
requestIdstringCorrelation ID, when available.
errorstringLegacy error message.

Vendor

FieldTypeDetails
idRequiredstringVendor identifier.
displayNamestringCustomer-facing name.
legalNamestringPrivate registered name.
statusRequiredstringReview state.
sandbox_only · entity_verified · control_verified · risk_reviewed · production_active · suspended
publicUrlstring · nullablePublic storefront URL, if configured.

Application

FieldTypeDetails
legalNameRequiredstringRegistered legal name.
displayNameRequiredstringCustomer-facing name.
contactEmailRequiredstringBusiness email.
supportEmailRequiredstringCustomer support email.
contactPhonestringBusiness phone; optional.
businessCategorystringBusiness category.
fitness · gym · coworking · education · retail · entertainment · healthcare · laundry · other
registeredAddressRequiredstringBusiness address.
authorizedRepresentativeRequiredstringAuthorized representative name.
serviceDescriptionstringDescription of the service.
panRequiredstringValid Indian PAN. Supply actual business details privately.
gstExemptbooleanWhether the business declares a GST exemption.
gstinstringRequired when gstExempt is false.
pincodestringSix-digit PIN code, when supplied.
citystringCity.
statestringState.
websiteUrlstringWebsite URL.
refundPolicyUrlstringPublic refund policy URL.
termsAcceptedbooleanAcceptance of the application terms.

PlanInput

FieldTypeDetails
nameRequiredstringPlan name.
durationDaysintegerPositive duration. Checkout snapshots support 1–366 days.
pricePaiseRequiredintegerAmount in integer INR paise; 100 paise equals INR 1.
billingPeriodstringPlan billing mode. A monthly value does not by itself prove recurring payments are enabled.
one_time · monthly
gstPercentnumberTax percentage recorded for the plan; default in this reference is 18.
taxInclusivebooleanWhether the stated amount includes tax; defaults true.
externalRefstringOptional reference in your ERP.

Plan

FieldTypeDetails
idstringPlan ID.
tenantIdstringOwning vendor ID.
namestringPlan name.
durationDaysintegerMembership duration.
pricePaiseintegerAmount in integer INR paise; 100 paise equals INR 1.
currencystringCurrency; INR in the documented checkout.
billingPeriodstringone_time or monthly.
isActivebooleanWhether this plan is currently published.
checkoutUrlstringHosted checkout link, subject to vendor and plan availability.

PlanUpdate

FieldTypeDetails
namestringReplacement name.
durationDaysintegerPositive duration.
pricePaiseintegerAmount in integer INR paise; 100 paise equals INR 1.
gstPercentnumberSee the downloadable schema for nested fields.
taxInclusivebooleanWhether tax is included.
isActivebooleanPublishing requires production_active vendor approval.

Membership

FieldTypeDetails
idstringMembership ID.
planIdstringPlan ID.
planNamestringPlan display name.
statusstringMembership state.
validFromstring · nullableValidity start.
validUntilstring · nullableValidity end.
amountPaiseinteger · nullablePurchase amount in paise.
createdAtstring · nullableCreation time.

TerminalInput

FieldTypeDetails
labelstringDevice label, e.g. Reception.
serialNumberstringOptional custom serial. If omitted, the service generates one.
hardwareModelstringHardware model.
firmwareVersionstringFirmware version.

Terminal

FieldTypeDetails
idstringTerminal ID.
labelstringDevice name.
serialNumberstringRegistered terminal serial; an identifier, not a secret.
statusstringDevice state.
isRevokedbooleanRevocation flag.
hardwareModelstringModel.
lastSeenstring · nullableLast check-in.
totalRequestsintegerRecorded requests.

TerminalUpdate

FieldTypeDetails
labelstringDevice label.
statusstringRequested state.
active · offline · suspended · revoked
hardwareModelstringDevice model.

CheckoutLinkInput

FieldTypeDetails
tenantPlanIdRequiredstringAn active plan belonging to the vendor.

CheckoutInput

FieldTypeDetails
checkoutTokenRequiredstringToken from a supported hosted checkout link.
acceptedTermsRequiredbooleanMust be true for a new purchase.
true
acceptedTermsVersionRequiredstringUse the version returned by checkout-link retrieval.
couponCodestringOptional coupon code.

Purchase

FieldTypeDetails
membershipIdstringOriginal membership/purchase reference.
orderIdstring · nullableProvider order reference.
subscriptionIdstring · nullableProvider subscription reference, where enabled.
keyIdstringPublic provider checkout key, not the provider secret.
amountPaiseintegerAmount in integer INR paise; 100 paise equals INR 1.
currencystringINR.
durationDaysintegerSnapshotted duration.
planNamestringSnapshotted name.
billingPeriodstringServer-returned billing mode.
statusstringCurrent purchase state.
pendingExpiresAtstring · nullablePending-purchase expiry, returned by resume.

PaymentProof

FieldTypeDetails
razorpay_payment_idRequiredstringProvider payment ID.
razorpay_order_idstringOriginal provider order, for an order payment.
razorpay_subscription_idstringOriginal subscription, for a subscription payment.
razorpay_signatureRequiredstringProvider signature from the supported checkout callback.

TapInput

FieldTypeDetails
cardUidstringRaw card read, if using a registered NFC reader. Keep private.
qrPayloadstringAlternative QR payload. At least one of cardUid or qrPayload is required.
timestampstringOptional ISO time reported by the terminal. Server time controls entitlement.

Subscriber

FieldTypeDetails
memberIdstringMember reference.
namestring · nullableDisplay name, when supplied.
photoUrlstring · nullablePhoto URL, when supplied.
membershipStatusstringMembership state.
planNamestringPlan name.
tenantPlanIdstring · nullablePlan reference.
expiryDatestring · nullableExpiry when supplied.
validUntilstring · nullableValidity when supplied.

TapResult

FieldTypeDetails
verifiedRequiredbooleanAccess outcome; use alongside decision.
decisionRequiredstringOperational outcome.
allow · deny
decisionReasonRequiredstringReason such as active, expired, no_membership_for_vendor or member_not_found.
statusstringMembership/lookup status.
subscriberobject · nullableSee the downloadable schema for nested fields.
terminalobject · nullableSee the downloadable schema for nested fields.
billingobjectSee the downloadable schema for nested fields.
latencyMsintegerServer evaluation time.
timestampstringServer evaluation time.
logIdstring · nullableLog reference.

ConsentInput

FieldTypeDetails
grantedRequiredbooleantrue grants the listed fields; false revokes access.
purposeRequiredstringSupported consent purpose.
membership_verification
fieldsRequiredarrayRequest only the fields needed for the stated purpose.

KeyMetadata

FieldTypeDetails
idstringCredential metadata ID.
keyPrefixstringDisplay-safe prefix; never the full credential.
labelstringCredential label.
scopesarraySee the downloadable schema for nested fields.
environmentstringlive or sandbox.
revokedAtstring · nullableRevocation timestamp.
lastUsedAtstring · nullableLast recorded use.

SandboxTenantInput

FieldTypeDetails
legalNameRequiredstringSynthetic organization name for an isolated sandbox.
displayNameRequiredstringSandbox display name.
contactEmailRequiredstringControlled test email.

SandboxPlanInput

FieldTypeDetails
nameRequiredstringPlan name.
durationDaysRequiredintegerDuration, 1–366 days.
pricePaiseRequiredintegerAmount in integer INR paise; 100 paise equals INR 1.
gracePeriodDaysintegerNonnegative grace period.
externalRefstringOptional external reference.

SandboxVerifyInput

FieldTypeDetails
userIdstringTest member ID; or supply a valid cardToken.
cardTokenstringAlternative supported test card token.
terminalIdstringOptional nonrevoked terminal belonging to this tenant.
tenantPlanIdstringOptional plan filter.
Build with a clear contract.

Configuration, approval and deployed behavior determine availability. Validate your own integration before release.

Review the launch checklist ↗

Reference source: b93a4d3 · Examples use synthetic data.