Integration sequence
1
Create the user and read requirements
Create the account using your stable external reference. Read the user’s current verification requirements.
2
Update the profile
Submit the user’s name, date of birth, and residence country through Update verification profile. Collect additional
fields as required by the user’s country and onboarding policy.
3
Submit verification evidence
Provide each file through an HTTPS URL on an approved source domain. Submit the file source with its verifier
provenance and a UUID idempotency key.
4
Reconcile status and requirements
Follow verification notifications and read the latest state. Resolve outstanding requirements. An accepted
submission does not mean onboarding is complete.
Authenticate and prepare access
Call the PWS API from your backend usingAPI-Key, API-Timestamp, and API-Sign. Follow
Authentication to calculate a fresh signature over each exact request. The signature must match
the body you send, including on retries. Never expose your signing key to browsers or mobile clients.
Payward must approve your integration and the domains used to retrieve evidence. Keep the evidence and verifier
records you need in your own system under your agreed retention policy.
Create the account and read requirements
Use Create user with your stableexternal_reference. Email is optional.
data.id, for example AA45N8G4MLDYWAR7, and use it as user_id in subsequent calls.
Call Get verification requirements:
state, user_action_required, and the ordered required_actions:
Requirements can change after onboarding. Fetch them again after changes and webhook notifications.
Do not treat this guide’s examples as a universal list of required fields.
Update the verification profile
Call Update verification profile atPATCH /v1/users/{user_id}/verifications/profile.
Supply only the profile fields you want to change.
Omitted fields remain unchanged. Profile completeness is evaluated across onboarding, rather than independently
for each update.
Submit the user’s full name, date of birth, and residence country before completing document verification.
Document submissions do not update these profile fields.
The following example collects profile details for a user in Germany:
profile.json, calculate the request signature, and submit it:
Idempotency-Key. Updating verified profile data may
re-trigger identity verification. Read requirements again after the update.
Field and country requirements
- When you supply
full_name, includefirst_nameandlast_name. - When you supply
residence, includeline1,city,postal_code, andcountry. - Empty
nationalitiesandtax_idsarrays leave existing values unchanged. You cannot clear them with an empty array.
delete_fields or terms_acceptance.
Provide the files
Provide each file as a source object containinghttps_url. This applies to document fronts and backs, residence
documents, selfies, and partner_result.response_file. Host the file on an approved source domain:
Include verifier provenance
Every evidence submission request requirespartner_result. Include the result that supports that request:
Provide either
response or response_file, never both. You can omit both to submit provenance without the raw
response. Preserve the verifier’s own structure when providing an inline response.
Submit verification evidence
Call Submit verification evidence atPOST /v1/users/{user_id}/verifications/evidence.
Use a new UUID Idempotency-Key for each new submission.
The UUID string must have exactly 36 characters, including hyphens.
Identity document
Include the document type, number, issuing country, and front source. You can also supply the nationality and expiration date shown on the document. Include the reverse side when applicable. Omitback for passports.
document.json and submit it:
Residence document
Includeaddress.line1, address.city, and address.postal_code for every supported country.
The residence country comes from the user’s profile. You can also supply address.line2, address.province,
and the document’s expiration date when applicable.
Selfie or liveness video
Setselfie.type to image for a selfie image or video for a liveness video that your verifier has already checked.
This example provides HTTPS URLs for the video and the verifier response file:
Read the submission result
A successful evidence submission returns its verification identifier and current lifecycle status:Retry evidence submissions
Reuse an idempotency key only when retrying the same submission. Reusing it with different metadata or sources returns409 with error code conflict. Use a new key when you correct evidence or change a source URL.
For a timeout, lost response, or retryable server error, retain the unchanged body and key.
Calculate fresh API authentication for the retry. Read status and requirements before submitting further evidence.
Follow status and notifications
Use Get verification for a returned ID and List verifications to reconcile attempts. The lifecycle statuses arestarted, pending, completed, and failed.
A completed verification does not necessarily mean the user is eligible for services.
Read Get verification requirements for the user’s current state and required actions.
A wait action is non-actionable. Do not treat an empty actionable list as approval or a closed user as eligible.
Register notifications through Create webhook:
Verify webhook signatures and handle duplicate, delayed, and reordered notifications.
Fetch current state before acting on an event. Poll the read APIs with backoff when notifications are delayed or missed.
Handle failures
Reconcile current requirements and user state before enabling services for a user.