Initiate Kyb Verification

Start KYB verification for a business.

Returns a hosted verification link the business opens to submit its documents.
Only valid in urbanpayx_kyb mode — businesses in external_attestation
mode must record their decision via the external status endpoint. If a
verification is already in progress, the existing link is returned.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

Initiates KYB (Know Your Business) verification for a business customer. Identify the business by its registration_number and country; if no matching business exists under your client it is created automatically with the catalog default KYB level, then an UrbanpayX-managed hosted verification session is started. The response returns the business id, its current kyb_status, and a verification_url to send the business through. To control the KYB level (rather than using the default), call POST /api/v1/kyb/businesses first with an explicit kyb_level.

Authentication & access

  • Requires a Bearer token (client API credential or an authenticated client user session).
  • Permission: kyb.verification.initiate.
  • Client users must hold the owner or operations role. API credentials must carry the permission above.
  • The client must have KYB link generation enabled. If kyb_links_enabled is disabled for your client, the request is rejected with 403.

Request body

  • company_name (string, required) - 1 to 255 characters.
  • registration_number (string, required) - 1 to 128 characters. Combined with country, this identifies the business under your client.
  • country (string, required) - exactly 3 characters. Normalized to uppercase server-side.
  • legal_address (string, optional) - up to 512 characters.
  • tax_id (string, optional) - up to 128 characters.
  • contact_email (string, optional) - must be a valid email address.
  • callback_url (string, optional) - HTTPS URL the business is redirected to after completing verification, up to 1024 characters. Falls back to your client's default verification callback URL when omitted. A non-HTTPS or malformed URL is rejected with 422.

Behavior

  • The business is matched by client_id + registration_number + country. A new business is created on the fly if none matches, using the catalog default KYB level.
  • If the matched business is configured for external_attestation verification mode, the request is rejected; switch it to urbanpayx_kyb before initiating KYB.
  • If the business is already in a terminal or in-progress state, no new session is started and the current state is returned instead:
    • approved - returns verification_url: null with a message that the business is already verified.
    • rejected - returns verification_url: null and a message to contact support.
    • on_hold - returns verification_url: null and a message that KYB is temporarily on hold.
  • For a business already pending with a still-valid verification link, the existing link is reused (idempotent retry) rather than generating a new one.
  • The verification session is provisioned automatically from the resolved KYB level; the response shape is identical either way.

Responses

  • 200 OK - returns a KYBVerificationResponse:
    • business_customer_id (string) - the business id.
    • kyb_status (string) - one of none, pending, approved, rejected, on_hold.
    • verification_url (string or null) - the hosted link for the business to complete verification; null when no new session applies (e.g. already approved, rejected, or on hold).
    • message (string) - human-readable status of the request.

Error responses

StatusWhen
403KYB link generation is disabled for the client.
400The matched business is configured for external_attestation (switch verification_mode to urbanpayx_kyb first), or its stored KYB level is not accessible to your client.
422Request body fails validation (missing or malformed fields, or a non-HTTPS callback_url).
503The verification provider is not configured for the client or platform, or the business's stored KYB level is not recognized.
502The verification provider did not return an applicant id or a verification URL.
500Failed to initialize the business record, or an unexpected error occurred while initiating verification (retry later).

Standard 401 (authentication), 403 (insufficient permission or role), and 429 (rate limit) responses apply to every endpoint and are documented in the Error reference.

Body Params
string
required
length between 1 and 255
string
required
length between 1 and 128
string
required
length between 3 and 3
length ≤ 512
length ≤ 128
length ≤ 1024

Optional HTTPS URL the user is redirected to after completing verification. Falls back to the client's default verification callback URL when omitted.

Responses

Language
Credentials
Bearer
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json