Build payment flows for tobacco e-commerce
Build compliant tobacco e-commerce with strong identity checks, age verification, and PACT-style compliance.
Tobacco retailers need strong identity verification, age checks with document fallback, and SKU-level geofencing. frameOS provides KYC, Age Verification, Geocompliance, Charge Intents with 3D Secure, and Sonar for dispute resilience with reason-code playbooks and carrier adult-signature support.
Use this guide if you're building a tobacco platform where:
- You need strong identity checks with document fallback and audit-ready logs.
- You auto-block non-permitted states and manage SKU restrictions by locality.
- You require PACT-style compliance verification for online tobacco sales.
- You want 3DS step-up, clear descriptors, and carrier adult-signature support.
- You need dispute resilience with reason-code playbooks.
We recommend this configuration for tobacco e-commerce. Use the API or Frame.js.
FrameOS modules
| Module | Purpose |
|---|---|
| Age Verification | Strong identity checks with document fallback; audit-ready logs |
| Geocompliance | Auto-block non-permitted states; SKU restrictions by locality |
| KYC | PACT-style compliance verification for online tobacco sales |
| Charge Intents + 3D Secure | 3DS step-up, clear descriptors, carrier adult-signature support |
| Sonar | Dispute resilience with reason-code playbooks |
Before you begin
Sign up at the Frame Developer Portal and obtain your sandbox API key. Geocompliance requires Frame.js or the mobile SDK for location capture.
Essential tasks
1. Create a customer account
Create an individual account with KYC, age verification, and geocompliance:
curl --request POST \
--url https://api.framepayments.com/v1/accounts \
--header 'Authorization: Bearer sk_test_YOUR_SANDBOX_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"type": "individual",
"capabilities": [
"kyc",
"kyc_prefill",
"age_verification",
"geo_compliance",
"card_send",
"bank_account_send",
"address_verification"
],
"profile": {
"individual": {
"email": "customer@example.com",
"name": {
"first_name": "Jordan",
"last_name": "Customer"
},
"phone": {
"number": "3107484186",
"country_code": "1"
}
}
}
}'
2. KYC and age verification
Use KYC for PACT-style compliance — identity verification before purchase. Age Verification runs after KYC and logs results for audits. Create an onboarding session to collect and verify identity.
3. Geocompliance and SKU restrictions
Configure Geocompliance to block non-permitted states. Use geofence rules and SKU-level restrictions by locality. Location is captured via Frame.js at checkout.
4. Checkout with 3DS
Use Charge Intents with Frame.js. Frame triggers 3D Secure for step-up auth. Use clear descriptors and configure carrier adult-signature support for shipping. Include sonar_session_id for fraud checks.
5. Dispute resilience
Use Sonar for dispute resilience. Follow reason-code playbooks and provide complete customer and order data for chargeback evidence.
Resources
Accounts · Onboarding Sessions · KYC · Age Verification · Geocompliance · Charge Intents · 3D Secure · Sonar · Frame.js