📄 Guide
A company is your business customer’s funding and compliance entity on the platform: onboarding creates its funding pool, and every employee, card and balance hangs off it. This page walks “apply → get the result → day-to-day maintenance”, showing what to call, what to send and what you get back.Who does what
Step 1: submit the application
POST /open-api-corp/company/v1/apply — KYB runs asynchronously after submission; acceptance returns an companyApplyId.
The synchronous response carries only
companyApplyId + status=PENDING — accepted, not approved.
Step 2: get the result
Rely on webhooksCOMPANY_CREATED / COMPANY_REJECTED, with GET /open-api-corp/company/v1/query-apply?companyApplyId=... as the polling fallback. Key response fields:
Resubmission after rejection:
POST /open-api-corp/company/v1/resubmit with companyApplyId plus the corrected companyName / companyRegistrationNumber, re-reviewed under the same application; companyApplyRef cannot change. Allowed only while the current state is REJECTED, otherwise STATUS_CONFLICT.
Day-to-day maintenance
Query company detail:GET /open-api-corp/company/v1/query?companyId=... — legal name, registration number, pool currencies and status (life cycle ACTIVE / TERMINATED overlaid with behavioral states FROZEN / SUSPENDED / RESTRICTED; semantics in State machines and freezing).
Freeze / unfreeze: POST /open-api-corp/company/v1/update-restrictions — idempotent set semantics: addRestrictions freezes, removeRestrictions unfreezes, values restricted to the 5 capability-domain codes ACCOUNT_FROZEN / CASH_IN_FROZEN / CASH_OUT_FROZEN / PAYMENT_FROZEN / CARD_FROZEN (anything else returns DAPI_PARAM_INVALID). A state change pushes a webhook notification.
POST /open-api-corp/fund/v1/balance-alert-set — a threshold per currency (balanceSettings[].currency + balanceSettings[].thresholdAmount), with optional emailSettings. Full-replacement semantics — every call resets the entire alert configuration; the webhook LOW_BALANCE always fires, and email is sent only if a mailbox is configured; the same alert fires once per day until the balance recovers.
Related webhooks
COMPANY_CREATED (KYB passed, carries companyId) / COMPANY_REJECTED (carries rejectMessage) / the company status-change notification (carries addRestrictions / removeRestrictions) / LOW_BALANCE. Envelope and signature verification: Quickstart.
Next steps
- Create cardholders once the company is ACTIVE: Managing employees
- Fund the pool: Funding and reconciliation
- In this group: Company onboarding and review · Company status and alerts

