API Traffic

Describes API calls to a Lender
Cashcat send application's from data to a Lender via https post method

post
Request to Lender's endpoint

https://lender.tld/lender/api/endpoint
You need to provide an API endpoint that can receive POST request from Cashcat. Cashcat will send application data in a JSON format. Please, take a look to the explanation of every parameter and the JSON example below.
Request
Response
Body Parameters
application_id
required
string
Cashcat's internal ID of the application (16 chars)
meta
required
object
Meta object
timestamp
required
integer
Unix timestamps of the datetime, when application was sent to a Lender
affiliate
required
object
Affiliate object
lead
required
object
Lead object. Contains Person, Documents and Loan objects.
200: OK
​
302: Found
​
400: Bad Request
​
403: Forbidden
​
404: Not Found
​
500: Internal Server Error
​

POST Request JSON structure

Affiliate

Field

Type

Required

Unique

Description

name

string 64

yes

​

affiliate name, can be cashcator other affiliate name (there is an Affiliate program)

website

url

yes

​

Cashcat operate in several countries, it can be different only if the Lender operates in the different countries too

postback_url

url

yes

​

Postback URL. After positive or negative design about Lead, Lender needs to send postback to this URL. Please read more in postback section

request_id

str

16

yes

Unique ID of a conversion, used in postback​

Person

Field

Type

Required

Description

first_name

string 30

yes

First name

middle_name

string 30

yes

Middle name

last_name

string 30

yes

Last name

birth_date

date in ISO format

yes

Birth date in format YYYY-MM-DD

gender

string 5

yes

Possible values: Male, Female

country_residence

string 64

yes

Residence country, if Lender operates in one country it will be same all the time, e.g. Philippines

home_town

string 64

yes

Residence city with localized (translated) value. For Ukraine - localization is ru, for other countries - en

mobile_phone

sting 11

yes

Domestic mobile phone number without country phone code. For every country each mobile number passed verification:

  • cellular operators' codes list in the particular country;

  • only digits;

  • max digits.

The number is not verified by SMS or with any other technical way. Example: 09055821123

email

email

yes

Email. Not verified by sending verification email.

Cashcat is using a custom algorithm to show suggestions to the user about miss typos.

For example, if the user has entered email as user@gmial.com, Cashcat will suggest correction: user@gmail.com. But Cashcat doesn't make such correction by itself. The user needs to click on suggestion.

Also, there is black-list of the domains names that already was used by fraudsters. This list excludes famous mail domains.

employer_name

string 128

yes

Employer name. Input from user. Raw string, please, verify for injections from your side.

monthly_income

int

yes

Monthly income in local currency, provided by user.

Documents

Field

Type

Required

Description

type

string 32

yes

Please, take a look for the possible values in the table below.

id

string 32

yes

Document number. Input from a User. Please verify for injections from your side.

check_sum

string 32

​

Verification for tax_number or other documents numbers with existing verification rules for checksum. User can't send not valid tax number.

Documents type values

Country

Type Value

Description

check_sum

Philippines

SSS

Social Security System ID

-

​

TIN

Tax Identification Number

-

​

FIR

Firearms License

-

​

OFW

OFW ID Card

-

​

UMP

United Multu Purpuse ID (UMP)

-

​

VID

Voter’s ID Card

-

​

PID

Postal ID

-

​

PCC

Police Clearance Certificate

-

​

NBI

NBI Clearance

-

​

DRV

Driver’s License

-

new

PAS

Passport ID

-

new

PRC

Professional Regulation Commission (PRC) ID

-

new

HEA

Philhealth ID

-

new

SCC

Senior Citizen Card

-

new

GSI

Government Service Insurance System (GSIS ID)

-

​

​

​

​

Ukraine

passport

National Passport

-

​

tax_number

Tax Identification Number

yes

​

​

​

​

Mexico

passport

National Passport

-

​

​

​

​

South Africa

passport

National Passport

-

Loan

Field

Type

Required

Description

amount

float

yes

Requested amount, e.g. 3000.00

currency

3-digit ISO code

yes

Currency, same across one-country Lender, e.g. PHP, USD, UAH, MXN

term

int

yes

Requested loan term

duration_period

string 16

yes

Duration period, always days for payday loan products.

purpose

sting 64

yes

Purpose from list below

purpose_detailed

string 128

yes, if purpose value is Other purpose

User can provide a custom purpose, not included in the list purpose

type

sting 32

yes

User's choice of requested distibution type.

Possible values: Bank Card, Bank Account, Cash. You could ignore this parameter, if you dosn't support many distribution types.

Purpose List Values

User could select Other purpose option from the list and provide purpose_detailed

Purpose Values List

Medicine

Urgent needs

Repayments to another loan

Home repairs

Business needs

Food and household goods

Holidays, vacations or recreation

Other purpose

Meta

Field

Type

Required

Description

first_seen_on

int

yes

timestamp of the first seen date/time of this lead or device in the past

filling_duration

int

yes

Duration (in seconds) of a lead information fulfilled on the Cashcat's website

filling_duration_meta

string

yes

Human readable duration value of a lead information fulfilled on the Cashcat's website. Possible values: very_slow ,slow ,medium ,fast ,very_fast

ua_agent

object

yes

User-Agent object, described below.

web_pushes_subscribed

boolean

yes

Cashcat could send web pushes to this Lead

email_subscribed

boolean

yes

Cashcat could send emails to this Lead

lead_source

string

yes

Possible values are:

facebook ,direct ,ad ,affiliate, push, email.

ip

string

yes

IP address of the Lead request to Cashcat

browser_accept_language

string

yes

Main locale of the lead's browser language settings

ua_agent object structure

Field

Type

Required

Description

raw_uagent

string

yes

Copy of the raw User-Agent from the last Lead's request to Cashcat's web-site

is_mobile

boolean

yes

Parsed boolean value if the user device is a smartphone

is_tablet

boolean

yes

Parsed boolean value if the user device is a tablet

is_touchable

boolean

yes

Parsed boolean value if the user device is touchable (has touchscreen)

is_pc

boolean

yes

Parsed boolean value if the user device is a PC (any desktop)

Example of JSON structure

POST from Cashcat
HTTP response from Lender
{
"application_id": "6s26t0m0477p28c8",
"timestamp": 1553766725957,
"affiliate": {
"name": "cashcat",
"website": "http://127.0.0.1:8000",
"postback_url": "http://127.0.0.1:8000/postback/company-id/",
"request_id": "vc7z8pz149q46hy1"
},
"lead": {
"person": {
"first_name": "Steven",
"middle_name": "St.",
"last_name": "Chan",
"birth_date": "1990-10-24",
"gender": "Male",
"country_residence": "Philippines",
"home_town": "Manila",
"mobile_phone": "09187793976",
"email": "chanchan@gmail.com",
"employer_name": "BDO",
"monthly_income": 20000
},
"documents": [
{
"type": "SSS",
"id": "12345678901"
},
{
"type": "TIN",
"id": "123456789012"
}
],
"loan": {
"amount": 5000.0,
"currency": "PHP",
"term": 14,
"duration_period": "days",
"purpose": "other",
"purpose_detailed": "I need money for urgent family needs",
"type": "Bank Card"
}
},
"meta": {
"first_seen_on": 1553766725957,
"filling_duration": 245,
"filling_duration_meta": "very_low|low|medium|fast|very_fast",
"ua_agent": {
"raw_uagent": "Mozilla/5.0 (Macintosh; Intel Mac OS X x.y; rv:42.0) Gecko/20100101 Firefox/42.0",
"is_mobile": true,
"is_touchable": true,
"is_tablet": false,
"is_pc": false
},
"web_pushes_subscribed": true,
"email_subscribed": true,
"lead_source": "facebook|direct|ad|affiliate|push|email",
"ip": "127.0.0.1",
"browser_accept_language": "en-gb"
}
}

We expect that your backend will handle request and response with basic https codes like that:

200 - correct request
404 - wrong destination endpoint
500 - internal server error while processing request

Null, Empty strings warning

Please, pay attention that application in some cases may has empty string values. But in the most cases when Cashcat doesn't have information - the value will be null. Please, be ready for such situations on your side.

Retry Policy

Cashcat will send retries of every failed https POST request (host not found, 500, network errors, reboots, etc.) with delay in 5 minutes. Each request has 5 attempts for the retries. After 5-th attempt, Cashcat will stop retries and will start it only in manual mode from Cashcat's backend.