Data-driven decisions
Set credit limits from verified income and fraud signals, and re-check cardholders as their risk changes.
Verify identity with document and biometric matching, then screen the device behind the application — so synthetic identities are caught before a physical or virtual card is ever issued.
The shape · Stacked layers — each check adds a layer of trust before a card is issued.
Card issuers are squeezed from both sides — a slow, document-heavy KYC flow kills signup conversion, but a fast, low-friction flow is exactly what synthetic-identity fraud rings are built to exploit. A card issued to a fabricated identity is a loss the issuer absorbs, often only discovered after the card has already been used.
Smile verifies identity and screens the device in the same signup flow, so low friction and high fraud signal aren't a tradeoff — a genuine applicant clears in seconds, while a synthetic identity or device already linked to other applications gets flagged before issuance.
curl -X POST "https://sandbox.smileapi.io/v1/verifications" \
-u "$SMILE_CLIENT_ID:$SMILE_CLIENT_SECRET" \
-H "Content-Type: application/json" \
-d '{
"firstName": "George",
"middleName": "Cimafranca",
"lastName": "Palomero",
"suffix": "Jr.",
"fullName": "George Cimafranca Palomero Jr.",
"additionalData": {
"dob": "1970-08-24",
"gender": "Male",
"ids": [
{ "idType": "tin_ph", "idSubType": null, "idNumber": "123456789" }
]
},
"consent": {
"type": "Terms And Conditions",
"version": "1.0",
"consentedWith": "I agree to the terms and conditions.",
"consentedAt": "2021-04-14T09:30:24Z",
"consentTemplateId": null
}
}'{
"code": "OK",
"message": "Success",
"requestId": "5b79399a-6852-4234-bb0e-ad472648282d",
"data": {
"id": "5b79399a-6852-4234-bb0e-ad472648282d",
"createdAt": "2021-04-14T09:30:24Z",
"updatedAt": "2021-04-14T09:30:24Z",
"status": "PROCESSING",
"errorMessage": null,
"requestMeta": { … },
"result": null
}
}Data is encrypted in transit and at rest, sensitive fields are tokenized rather than stored in the clear, and consent is captured at the point of collection — adapted to the data privacy regulations applicable in each market you operate.
Idempotent requests, built-in retry support, and published rate limits mean a dropped connection or a retried request never produces a duplicate check. Each client can make up to 20 requests per second per IP address across all endpoints; anything above that returns HTTP 429.
Every error returns a descriptive status code and a structured JSON body with a machine-readable code and a request ID — never a bare 500 — so a failed check is something your application can handle, not just log.
Smile API gives card issuers one verified applicant profile. Issuing models and AI agents can use it to decide approvals and starting limits, and to watch for risk after the card is live.
Set credit limits from verified income and fraud signals, and re-check cardholders as their risk changes.
Clean, labelled and consented attributes — identity, income, device and watchlist outcomes — ready to use as inputs for credit and fraud scoring models.
An onboarding agent can approve the applicant, propose a starting limit and flag accounts for review when monitoring signals change.
{
"profile": "prf_8f21",
"identity": "verified",
"income": { "status": "verified", "source": "payroll" },
"device": "trusted",
"fraudScore": 0.07,
"watchlists": "cleared",
"suggestedAction": "approve"
}