Eligibility & Terms
CoverPay requires users to pass eligibility verification and accept legal terms before accessing BNPL. This ensures regulatory compliance and reduces fraud across all providers.
Eligibility Pipeline
Every user must pass 5 sequential checks. If any check fails, the remaining checks are skipped and the failure reason is returned.
1
Age 18+
2
US Residency
3
KYC Approved
4
Sanctions Clear
5
Terms Accepted
Checking Eligibility
POST
/v1/checkout/verify-eligibility{
"userId": "usr_123",
"amount": 15000
}Response:
{
"eligible": false,
"failureReasons": ["KYC_NOT_STARTED"],
"checks": {
"age": { "passed": true },
"residency": { "passed": true },
"kyc": { "passed": false, "reason": "KYC_NOT_STARTED" },
"sanctions": { "skipped": true },
"terms": { "skipped": true }
}
}Failure Codes
| Code | Check | Description | Recommended Action |
|---|---|---|---|
UNDER_18 | Age | User is under 18 years old | Show age restriction message |
DATE_OF_BIRTH_MISSING | Age | No date of birth on file | Prompt user to update profile |
NON_US_RESIDENT | Residency | User is not a US resident | Show US-only restriction message |
KYC_NOT_STARTED | KYC | Identity verification not started | Redirect to KYC onboarding flow |
KYC_PENDING | KYC | Verification is in progress | Show "check back later" message |
KYC_REJECTED | KYC | Verification was rejected | Offer to contact support |
KYC_EXPIRED | KYC | Verification has expired | Prompt re-verification |
SANCTIONS_FLAGGED | Sanctions | User is on a sanctions list | Block access, log for compliance |
TERMS_NOT_ACCEPTED | Terms | Legal terms not yet accepted | Present terms acceptance UI |
USER_NOT_FOUND | N/A | Invalid user ID provided | Check the userId parameter |
Terms Acceptance
Users must accept 4 legal documents before using BNPL. You can either use CoverPay Link's built-in terms UI, or build your own and call the API.
Required Documents
User Agreementcoverpayme.com/legal/user-agreement
Privacy Policycoverpayme.com/legal/privacy
Regulatory Disclosurescoverpayme.com/legal/regulatory
Third-Party Transaction Disclosurescoverpayme.com/legal/third-party
Recording Acceptance
POST
/v1/checkout/accept-terms{
"userId": "usr_123",
"documents": [
"user_agreement",
"privacy_policy",
"regulatory_disclosures",
"third_party_disclosures"
]
}i
CoverPay Link handles terms automatically
If you use CoverPay Link (the drop-in checkout), terms acceptance is built into the flow. First-time users see the terms UI automatically. You only need the API if building a custom UI.