The Credit Lifecycle API delivers real-time risk signals using a subject's mobile number, drawn from a wide variety of lending and borrowing activity events across institutions in the Smile Network. It is Smile's broadest general-purpose risk screening product, designed to give you immediate insight into a subject's loan application history, disbursement activity, repayment behavior, and overdue patterns — with no additional identifiers beyond a phone number.
To help you get started quickly, Smile pre-selects 30 of the most common risk signals for your account out of a catalog of hundreds. You can swap these out for a different set that better matches your risk model. Contact your account manager to explore the full signals catalog and configure a custom signal set.
Credit Lifecycle checks are synchronous: results are returned immediately in the API response.
Credit Lifecycle is currently in Beta.
How a Credit Lifecycle Request Works
-
Submit a Credit Lifecycle request using
POST /beta/signals. ProvidetemplateId,phone,countryCode, andconsent. -
Receive the result synchronously. The API returns the full Credit Lifecycle object in the response body. The
itemsarray contains each signal configured for your account. -
Evaluate the signals. Each item has a
name(the signal identifier), avalue, and avalueType(STRING,NUMBER, orBOOLEAN). See the Credit Lifecycle Data Dictionary for the full list of available signal names, value types, and descriptions.
Mobile Number PrivacyMD5-encrypted phone input is accepted. Submit the encrypted value as
MD5(countryCode + phone)— for example,MD5(639559991234)for a Philippine number. Both plain format (639559991234) and international format with leading+(+639559991234) are also accepted.
The Credit Lifecycle Objects
Request Object
| Attribute | Type | Required | Description |
|---|---|---|---|
| templateId | string | Yes | The signal template to use. Use tpl-sgn003001 for the default template, or a specialized ID provided by Smile for your account. |
| phone | string | Yes | The subject's mobile number including country code, no leading zeros. Example: 639559991234. MD5-encrypted input is also accepted (see note above). |
| countryCode | string | No | ISO 3166 alpha-2 country code for the subject's market. Example: PH. Recommended to include for accurate market routing. |
| consent | object | Yes | Evidence of the subject's consent. See Consent Templates for details. |
Credit Lifecycle Object
This is the object returned in the response.
| Attribute | Type | Description |
|---|---|---|
| id | string | Unique ID of this Credit Lifecycle record. IDs use the prefix signal-. |
| createdAt | date-time | Date and time when this record was created |
| status | string | Current processing status of the request. See Credit Lifecycle Statuses below. |
| resultCode | string | Final result code of the check. See Result Codes below. |
| resultMessage | string | Human-readable description of the result |
| signalType | string | Always Signal1 for requests made through this API |
| requestMeta | object | Echo of the original request parameters sent with the check |
| items | array | The risk signals returned for this request. See Item Object below. |
Item Object
Each entry in the items array represents a single risk signal.
| Attribute | Type | Description |
|---|---|---|
| name | string | The signal identifier. Example: events_loan_disbursement_day30 |
| value | string | The signal value, always returned as a string regardless of the underlying type |
| valueType | string | The data type of the value. One of: STRING, NUMBER, BOOLEAN |
Credit Lifecycle Statuses
| Status | Description |
|---|---|
PROCESSING | The check is currently in progress |
COMPLETED | The check has completed and results are available |
ERROR | The check encountered an error and could not be completed |
Result Codes
| Result Code | Description | Billable |
|---|---|---|
SUCCESS | The check completed and signal data was returned in the items array. | Yes |
NO_DATA | Smile was unable to return signal data for the provided phone number. | No |
SYSTEM_ERROR | An internal error occurred. Contact Smile support if this persists. | No |
SERVICE_UNAVAILABLE | A required data source is temporarily unavailable. | No |
Billing NoteCredit Lifecycle checks are billed only on
SUCCESS.NO_DATAresults are not charged. Only thePOST /beta/signalsendpoint is counted for billing — List and Get requests are not charged.
Available Signals
Smile pre-selects 30 signals for your account by default. You can swap any of these out for a different set from the full catalog. The table below shows which signals are available and which are enabled by default.
Legend
- ✅ Available by default
- 🟨 Available, not enabled by default
Phone Signals
| Signal | Single Value | 30 days | 90 days | 180 days | Description |
|---|---|---|---|---|---|
| Application approval | N/A | ✅ | 🟨 | 🟨 | Number of application approval events within the duration |
| Application approval institution count | N/A | 🟨 | 🟨 | 🟨 | Number of institutions with application approval events within the duration |
| Application approval days since last | 🟨 | N/A | N/A | N/A | Number of days since the last application approval event |
| Application reception | N/A | ✅ | ✅ | ✅ | Number of application reception events within the duration |
| Application reception institution count | N/A | ✅ | 🟨 | 🟨 | Number of institutions with application reception events within the duration |
| Application reception days since last | 🟨 | N/A | N/A | N/A | Number of days since the last application reception event |
| Application rejection | N/A | 🟨 | 🟨 | 🟨 | Number of application rejection events within the duration |
| Application rejection institution count | N/A | 🟨 | 🟨 | 🟨 | Number of institutions with application rejection events within the duration |
| Application rejection days since last | 🟨 | N/A | N/A | N/A | Number of days since the last application rejection event |
| Arbitrary | N/A | 🟨 | 🟨 | 🟨 | Number of arbitrary events within the duration |
| Arbitrary institution count | N/A | 🟨 | 🟨 | 🟨 | Number of institutions with arbitrary events within the duration |
| Captcha | N/A | 🟨 | 🟨 | 🟨 | Number of captcha events within the duration |
| Captcha institution count | N/A | 🟨 | 🟨 | 🟨 | Number of institutions with captcha events within the duration |
| Captcha days since last | 🟨 | N/A | N/A | N/A | Number of days since the last captcha event |
| Debt amount | N/A | ✅ | ✅ | 🟨 | Amount of debt events within the duration |
| Lending | N/A | 🟨 | 🟨 | 🟨 | Number of lending events within the duration |
| Lending institution count | N/A | 🟨 | 🟨 | 🟨 | Number of institutions with lending events within the duration |
| Loan disbursement | N/A | ✅ | ✅ | ✅ | Number of loan disbursement events within the duration |
| Loan disbursement amount | N/A | 🟨 | 🟨 | 🟨 | Amount of loan disbursement events within the duration |
| Loan disbursement institution count | N/A | ✅ | ✅ | ✅ | Number of institutions with loan disbursement events within the duration |
| Loan disbursement days since last | ✅ | N/A | N/A | N/A | Number of days since the last loan disbursement event |
| Marketing | N/A | 🟨 | 🟨 | 🟨 | Number of marketing promotion events within the duration |
| Marketing institution count | N/A | ✅ | ✅ | ✅ | Number of institutions with marketing promotion events within the duration |
| Marketing days since last | 🟨 | N/A | N/A | N/A | Number of days since the last marketing promotion event |
| Other | N/A | 🟨 | 🟨 | 🟨 | Number of other events within the duration |
| Other institution count | N/A | 🟨 | 🟨 | 🟨 | Number of institutions with other events within the duration |
| Overdue | N/A | ✅ | ✅ | ✅ | Number of overdue events within the duration |
| Overdue amount | N/A | ✅ | ✅ | ✅ | Amount of overdue events within the duration |
| Overdue autorepayment days | N/A | 🟨 | 🟨 | 🟨 | Number of days of overdue autorepayment events within the duration |
| Overdue institution count | N/A | ✅ | ✅ | ✅ | Number of institutions with overdue events within the duration |
| Overdue days | N/A | ✅ | ✅ | ✅ | Number of days of overdue events within the duration |
| Overdue days since last | ✅ | N/A | N/A | N/A | Number of days since the last overdue event |
| Preloan | N/A | 🟨 | 🟨 | 🟨 | Number of preloan events within the duration |
| Preloan institution count | N/A | 🟨 | 🟨 | 🟨 | Number of institutions with preloan events within the duration |
| Repayment reminder | N/A | ✅ | 🟨 | 🟨 | Number of repayment reminder events within the duration |
| Repayment reminder amount | N/A | 🟨 | 🟨 | 🟨 | Amount of repayment reminder events within the duration |
| Repayment reminder institution count | N/A | ✅ | 🟨 | 🟨 | Number of institutions with repayment reminder events within the duration |
| Repayment reminder days since last | 🟨 | N/A | N/A | N/A | Number of days since the last repayment reminder event |
| Successful repayment | N/A | ✅ | 🟨 | 🟨 | Number of successful repayment events within the duration |
| Successful repayment amount | N/A | 🟨 | 🟨 | 🟨 | Amount of successful repayment events within the duration |
| Successful repayment institution count | N/A | ✅ | 🟨 | 🟨 | Number of institutions with successful repayment events within the duration |
| Successful repayment days since last | ✅ | N/A | N/A | N/A | Number of days since the last successful repayment event |
Email Signals
Coming soon.
For exact signal names, value types, and detailed descriptions, see the Credit Lifecycle Data Dictionary.
Sample Credit Lifecycle data
{
"id": "signal-e35d521ef8f147c4aa01b7c1af85aaf7",
"createdAt": "2021-04-14T09:30:24Z",
"status": "COMPLETED",
"resultCode": "SUCCESS",
"resultMessage": "query success",
"signalType": "Signal1",
"requestMeta": {
"templateId": "tpl-sgn003001",
"phone": "639559991234",
"countryCode": "PH",
"consent": {
"type": "Terms And Conditions",
"version": "1.0.0",
"consentedWith": "I agree to the terms and conditions.",
"consentedAt": "2021-04-14T09:30:24Z",
"consentTemplateId": null
}
},
"items": [
{
"name": "events_application_reception_day30",
"value": "2",
"valueType": "NUMBER"
},
{
"name": "events_loan_disbursement_day30",
"value": "1",
"valueType": "NUMBER"
},
{
"name": "events_overdue_day30",
"value": "0",
"valueType": "NUMBER"
},
{
"name": "events_debt_day90_amount",
"value": "A0",
"valueType": "STRING"
},
{
"name": "events_loan_disbursement_days_since_last",
"value": "14",
"valueType": "NUMBER"
}
]
}Sandbox Testing
Use the following values to trigger a successful response in the Sandbox environment. Any other valid phone and country code combination will return resultCode: NO_DATA with an empty items array.
| Parameter | Value | Expected Response |
|---|---|---|
templateId | tpl-sgn003001 | |
countryCode | PH | |
phone | 639559991234 | resultCode: SUCCESS |
Endpoints
Shared List and Get EndpointsThe List and Get endpoints are shared with other Signals products, including Borrower Screening and Social Security Signals. When listing, use the
signalType=Signal1query parameter to filter for Credit Lifecycle records only.
| Endpoint | |
|---|---|
| Create Credit Lifecycle check | POST /beta/signals |
| List Credit Lifecycle checks | GET /beta/signals |
| Retrieve one Credit Lifecycle check | GET /beta/signals/{id} |

