The Borrower Behavior API analyzes hundreds of lending and borrowing activity signals drawn from a subject's mobile number, national ID, and optionally their Google Ad ID (GAID). By querying behavioral event data across financial institutions and platforms in the Smile Network, it surfaces patterns of credit-seeking, repayment, and delinquency that go beyond what a single lender's records can reveal.
This makes it particularly effective for assessing thin-file borrowers, detecting stacking behavior, and evaluating creditworthiness in markets where traditional credit bureau coverage is incomplete.
Borrower Behavior checks are synchronous: results are returned immediately in the API response.
Smile Borrower Behavior is currently in Beta.
Available Templates
The template you select determines which identifiers are required and which behavioral signals are returned. Each template is optimized for a specific market.
| Template ID | Market | Required Identifiers |
|---|---|---|
tpl-maw004001 | Mexico (MX) | mobileNumber, countryCode, fullName, idType, idNumber (CURP) |
tpl-maw004002 | Africa countries | gaid (Google Ad ID) |
tpl-maw004003 | Philippines (PH) | mobileNumber, countryCode, fullName, idType, idNumber |
All templates also require templateId and consent.
About GAID (Google Ad ID)
gaidis a device-level identifier in UUID format (e.g.00000000-0000-0000-0000-000000000000). Fortpl-maw004002(Africa), it is the only identifier needed. Fortpl-maw004001(Mexico) andtpl-maw004003(Philippines),gaidis optional — but when provided, the response will include additionalevents_gaid_*signals that cross-reference the subject's behavioral data against their device ID.
Mobile Number PrivacyFor templates that require
mobileNumber, MD5-encrypted input is accepted. Submit the encrypted value asMD5(countryCode + mobileNumber)— for example,MD5(639559991234)for a Philippine number. This allows you to send the identifier without transmitting the raw phone number in plaintext.
How a Borrower Behavior Request Works
-
Submit a Borrower Behavior request using
POST /beta/maws/requestMaw3. ProvidetemplateId,consent, and the identifiers required by your chosen template. -
Receive the result synchronously. The API returns the full Borrower Behavior object in the response body. The
maw3Itemsarray contains each behavioral signal returned for your account configuration. -
Evaluate the signals. Each item has a
name(the signal identifier), avalue, and avalueType(STRING,NUMBER, orBOOLEAN). See the Borrower Behavior Data Dictionary for signal names, value types, and descriptions by market.
The Borrower Behavior Objects
Request Object
Required fields depend on the template. templateId and consent are always required.
| Attribute | Type | Required | Description |
|---|---|---|---|
| templateId | string | Yes | The template to use. Determines the required identifiers and the market to screen against. |
| consent | object | Yes | Evidence of the subject's consent. See Consent Templates for details. |
| mobileNumber | string | Required for tpl-maw004001, tpl-maw004003 | The subject's mobile number including country code, no leading zeros. Example: 639178912345. MD5-encrypted input is also accepted (see note above). |
| countryCode | string | Required for tpl-maw004001, tpl-maw004003 | ISO 3166 alpha-2 country code for the subject's market. Example: PH, MX. |
| fullName | string | Required for tpl-maw004001, tpl-maw004003 | The subject's full name. |
| idType | string | Required for tpl-maw004001, tpl-maw004003 | The type of ID provided. See Supported ID Types below. |
| idNumber | string | Required for tpl-maw004001, tpl-maw004003 | The subject's ID number corresponding to the idType provided. For tpl-maw004001, must be a valid Mexico CURP. |
| gaid | string | Required for tpl-maw004002; optional for others | The subject's Google Ad ID in UUID format. When provided for MX or PH templates, enriches results with events_gaid_* signals. |
Supported ID Types
| ID Type | Description | Supported Markets |
|---|---|---|
NATIONAL_ID | National identity card or equivalent | MX (CURP), PH |
SSS | Social Security System number | PH |
UMID | Unified Multi-Purpose ID number | PH |
TIN | Tax Identification Number | PH |
PRC | Professional Regulation Commission license number | PH |
PHILHEALTH | Philippine Health Insurance Corporation ID | PH |
PHILSYS | Philippine Identification System ID | PH |
PASSPORT | Passport number | PH |
DRIVER_LICENSE | Driver's license number | PH |
Borrower Behavior Object
This is the object returned in the response.
| Attribute | Type | Description |
|---|---|---|
| id | string | Unique ID of this Borrower Behavior record. IDs use the prefix maw-. |
| createdAt | date-time | Date and time when this record was created |
| status | string | Current processing status of the request. See Borrower Behavior Statuses below. |
| resultCode | string | Final result code of the check. See Result Codes below. |
| resultMessage | string | Human-readable description of the result |
| type | string | Always MAW3 for requests made through this API |
| requestMeta | object | Echo of the original request parameters sent with the check |
| maw3Items | array | The behavioral signals returned for this request. See Item Object below. |
| maw2Items | array | Always empty ([]) for MAW3 requests. Used by the Multiple Application Warning (MAW2) product. |
Item Object
Each entry in the maw3Items array represents a single behavioral signal.
| Attribute | Type | Description |
|---|---|---|
| name | string | The signal identifier. Uses underscore-separated naming. Example: events_gaid_loan_g_30day_count |
| 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 |
Borrower Behavior 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 behavioral signal data was returned in maw3Items. | Yes |
NO_DATA | Smile was unable to return signal data for the provided identifiers. | 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 NoteBorrower Behavior checks are billed only on
SUCCESS.NO_DATAresults are not charged. Only thePOST /beta/maws/requestMaw3endpoint is counted for billing — List and Get requests are not charged.
About the maw3Items Array
maw3Items ArrayThe signals returned in maw3Items depend on the template used, the identifiers provided, and your account configuration. Signal naming follows a structured convention that encodes the identifier type, event category, and time window — for example, events_gaid_loan_g_30day_count means "count of loan events in the past 30 days, indexed by GAID."
Signals are organized by market, with each market having its own set of available attributes:
- Mexico (
tpl-maw004001) — Signals covering cross-industry credit application, approval, disbursement, repayment, and overdue events, keyed on mobile number (events_m_*), ID (events_i_*), and GAID (events_gaid_*) when provided. - Africa (
tpl-maw004002) — Signals keyed on GAID (events_gaid_*) covering lending activity and behavioral patterns. - Philippines (
tpl-maw004003) — Signals covering credit granting event frequency, timing, and platform diversity, keyed on GAID (events_gaid_*) when provided.
For the complete list of available signal names, value types, and descriptions for each market, see the Borrower Behavior Data Dictionary.
Sample Borrower Behavior data
{
"id": "maw-e35d521ef8f147c4aa01b7c1af85aaf7",
"createdAt": "2021-04-14T09:30:24Z",
"status": "COMPLETED",
"resultCode": "SUCCESS",
"resultMessage": "Success!",
"type": "MAW3",
"requestMeta": {
"templateId": "tpl-maw004003",
"mobileNumber": "639559991234",
"countryCode": "PH",
"fullName": "George Smith",
"idType": "SSS",
"idNumber": "4561234567",
"gaid": "00000000-0000-0000-0000-000000000000",
"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
}
},
"maw3Items": [
{
"name": "events_gaid_loan_g_30day_count",
"value": "3",
"valueType": "NUMBER"
},
{
"name": "events_gaid_loan_g_90day_count",
"value": "7",
"valueType": "NUMBER"
},
{
"name": "events_gaid_timediff_loan_g_30day",
"value": "12",
"valueType": "NUMBER"
}
],
"maw2Items": []
}Sandbox Testing
Use the following values to trigger a successful response in the Sandbox environment. Any other valid input combination will return resultCode: NO_DATA with an empty maw3Items array.
| Template ID | Test Input | Expected Response |
|---|---|---|
tpl-maw004001 | mobileNumber: 529559991234, countryCode: MX, fullName: George, idNumber: ZAZD801124MBSYQN13, idType: NATIONAL_ID | resultCode: SUCCESS |
tpl-maw004002 | gaid: 00000000-0000-0000-0000-000000000000 | resultCode: SUCCESS |
tpl-maw004003 | mobileNumber: 639559991234, countryCode: PH, fullName: George, idNumber: 4561234567, idType: NATIONAL_ID | resultCode: SUCCESS |
Endpoints
Shared List and Get EndpointsThe List and Get endpoints are shared with the Multiple Application Warning (MAW2) product. When listing, use the
mawType=MAW3query parameter to filter for Borrower Behavior records only.
| Endpoint | |
|---|---|
| Create Borrower Behavior check | POST /beta/maws/requestMaw3 |
| List Borrower Behavior checks | GET /beta/maws |
| Retrieve one Borrower Behavior check | GET /beta/maws/{id} |

