verificationProfiles array of GET /v2/customer/{id}. Monitoring them is the primary way to determine whether a customer is ready to transfer on a given rail.
Available profiles
Your application is enabled for a set of profiles by SpherePay. Each customer is evaluated against the profiles you select for them withenabledVerificationProfiles — see Selecting profiles.
When SpherePay enables a new profile for your application, existing customers are not enrolled automatically. Verifying a customer for an additional profile has a cost, so you add the profile explicitly with
PATCH /v2/customer/{id}. See Add a profile to an existing customer.Profile selection applies to customers you onboard through the API. Customers onboarded through hosted KYC links are enrolled in your application’s default profiles;
enabledVerificationProfiles is not available on the hosted flow.Verification statuses
Thestatus field on a verification profile has five possible values.
Status lifecycle
- The customer starts in
incomplete. Thecriteria.requiredarray lists all outstanding requirements for that profile. - Once every requirement is fulfilled, SpherePay submits the customer for review and the profile moves to
pending. No submit call is needed. - The review completes and the profile moves to
approved,rejected, orresubmission_required. - Each profile moves on its own. Profile C can reach
approvedwhile profile A is stillpendingon the same customer.
Verification criteria arrays
Each verification profile contains acriteria object with four arrays.
Requirements shared between profiles are satisfied once for all of them. If a customer already holds an approved profile A, adding profile C only asks for the criteria C needs that A did not.
How to check verification status
Webhook events
Instead of polling, subscribe to customer webhook events. SpherePay emits one event per verification profile per status change —customer.pending, customer.approved and customer.rejected — and data.verificationProfile names the profile that changed, for example kyc_profile_c or ubo_kyc_profile_a. A customer with two profiles produces two independent event streams, so key your handling on the profile name, not only on the customer ID.
Requirements by profile
Each profile evaluates its own set of criteria. Expand a customer type to see which profiles evaluate each item and how to satisfy it.Individual customers
Individual customers
Each item in the
criteria arrays corresponds to a requirement. The columns show which profiles evaluate it.Business customers
Business customers
Business representatives
Business representatives
Each representative has its own
ubo_kyc_profile_* entry, returned on GET /v2/business-representative/{id}. Documents for a representative are uploaded with target="business-representative".See EEA+ businesses for the full associated-person requirements.
Handling rejected customers
Arejected status means SpherePay could not approve the customer for that profile. The customer cannot transact on the products that profile unlocks; other approved profiles on the same customer are unaffected.
If a customer is incorrectly rejected or requires re-review, contact support@spherepay.co with the customerId and the profile name.
Related guides
Selecting profiles
How
enabledVerificationProfiles works and what the API returns.Onboard a customer with profiles
Choose profiles at creation and add one to an existing customer.
Remove a profile
Drop a profile a customer no longer needs.
Individual KYC
Step-by-step guide for onboarding individual customers via API.