Preferred Lease Order Creation
This portal describes the process for creating orders for Preferred Lease utilizing our Merchant Portal Process.
The process flow is different based on a customer facing application such as a website and a non-customer facing application such as a merchant point of sale.
Authentication
To authorize, use this code:
# With shell, you can just pass the correct header with each request
curl "https://merchant-portal-test.test-racapi.com/api/token"
-H "Authorization: devkey"
Make sure to replace
meowmeowmeowwith your API key.
• Token URLs is secured by basic authentication
• Production credentials will be provided by RAC team.
• Token returned by token API should be send as Authorization header for each API call.
• The token will expire after a certain amount of time not being used so you will need to code for an expired token.
Ecommerce
Approval Decision
curl --location --request POST 'https://merchant-portal-test.test-racapi.com/api/customer/getApprovalDecision/ecom' \
--header 'Content-Type: application/json' \
--header 'correlationid: asdf123' \
--data-raw '{
"ADSRequest": {
"MessageID": "12345",
"MessageType": "CMS005",
"MessageDTS": "2015-02-16-14:30:15:000633",
"MessageDTSTZOffset": "-06:00",
"Revision": "3.3",
"RegionID": "1",
"ClientID": "8",
"ClientLocationNumber": "09327",
"ClientSource": "1",
"ClientOriginator": "1",
"LocationNumber": "09327",
"LocationFlow": "0",
"ApprovalFlowType": "1",
"EncryptionMethod": "0",
"Body": {
"ApprovalDecisionRequest": {
"LanguagePreference": "1",
"CustomerID": "564789",
"CustomerAccountID ": "564789",
"CreateCustomerFlag": "0",
"PrefillFlag": "1",
"AuthFlag": "1",
"KBAResults": [
{
"KBAPassFlag": "1",
"KBAScore": "780",
"KBACaseID": "649c6036-0b26-4bad-8561-09f5fd03fb88|abab6cad-3b52-43cd-ba21-934e2c08df23"
}
],
"VendorID": "BIG SANDY SUPERSTORE",
"BankingInfo": {
"AccountType": "1",
"AccountNumber": "010987654323",
"RoutingNumber": "12345678",
"AccountValidated": "1"
},
"IDInfo": {
"IDType": "1",
"IssuingStateProvince": "GA",
"IDNumber": "308494386",
"NationalIDNumber": "111468673",
"DateOfBirth": "19751225",
"LastName": "Machesky",
"FirstName": "PatiCRTNK",
"MiddleName": "K",
"Address1": "1445 Allens Bridge",
"Address2": "Apt 201",
"City": "Greeneville",
"StateProvince": "TN",
"PostalCode": "37743",
"Country": "USA",
"Email": "ayghosa@yahoo.com",
"LengthOfResidence": "5",
"ResidenceType": "2",
"LandlordFirstName": "Landlord_FirstName ",
"LandlordLastName": "Landlord_LastName ",
"LandlordAddress1": "5500 Headquarters Drive",
"LandlordAddress2": "11",
"LandlordApartmentNumber": "234",
"LandlordPOBox": "1",
"LandlordCity": "Plano",
"LandlordStateProvince": "TX",
"LandlordPostalCode": "75024",
"LandlordPhoneNumber": "1234567891",
"PrimaryPhone": "5131235432",
"PrimaryPhoneType": "1",
"BestTimeToCall": "3",
"SecondaryPhone": "2704429041",
"SecondaryPhoneType": "2"
},
"IncomeInfo": {
"PrimarySourceOfIncome": "1",
"Employer": "Enterprise",
"JobTitle": " Job_Title ",
"EmployerAddress": "123 Main Street",
"EmployerPOBox": "7530",
"EmployerCity": "Plano",
"EmployerStateProvince": "TX",
"EmployerPostalCode": "75024",
"EmployerPhone": "9725551212",
"EmployerPhoneExtension": "1324",
"EmployerDoNotVisit": "1",
"EmployerDepartment": "HR",
"ShiftStartTime": "09:00",
"ShiftEndTime": "17:30",
"SupervisorFirstName": "Mike",
"SupervisorLastName": "Brown",
"LengthOfEmployment": "19",
"EmploymentStartDate": "20130610",
"MonthlyIncome": "4000",
"Schedule": "1",
"DaysPaid": "2"
},
"ReferenceInfo": [
{
"FirstName": "TENCHAR",
"LastName": "Matthews",
"Phone": "9725562323",
"Relationship": "1"
},
{
"FirstName": "Janet",
"LastName": "Matthews",
"Phone": "9725542100",
"Relationship": "1"
},
{
"FirstName": "Todd",
"LastName": "Smith",
"Phone": "5131335400",
"Relationship": "7"
}
]
}
}
}
}'
The above command returns JSON structured like this:
{
"ADSResponse": {
"MessageID": "12345",
"MessageType": "CMS105",
"MessageDTS": "2015-12-23-12:17:58:000539",
"MessageDTSTZOffset": "-06:00",
"Revision": "3.3",
"RegionID": "1",
"ClientID": "8",
"ClientLocationNumber": "09327",
"ClientSource": "1",
"ClientOriginator": "1",
"LocationFlow": "0",
"LocationNumber": "09327",
"EncryptionMethod": "0",
"StatusCode": "200",
"StatusCodeDetail": "Success",
"Body": {
"ApprovalDecisionResponse":
{
"MinimumApprovalAmount": "300",
"ApprovalAmount": "3500",
"OriginalApprovalAmount": "3500",
"ApprovalExpirationDate": "2020-10-18",
"CustomerID": "1213594",
"ApprovalID": "1199744",
"ApprovalResponse": "1"
}
}
}
}
Get Approval Decision for new customer (ADS)
ADS enables RAC partners to request a pre-approval option for Rent-To-Own or Lease Purchase opportunities, and add prospective customers into RAC’s back-end systems as leads to maximize business opportunities for both parties.
ADS is used to push consumer applicant application information for consideration for lease-to-purchase agreements. The service consumer may request that a real-time pre-approval be performed for the applicant. If so, an approval status, expiration date, amount (if applicable), and approval ID are included in the response.
Consumers of ADS may include Point of Sale (POS), eCommerce, Kiosks, and mobile devices.
• The customer information such as name, address, employment, etc should be collected and passed to the API
• The customer information will be validated and a decision will be returned: approved, declined or pending. A pending decision means more information is needed from the customer.
• A customer record will be created or updated if the customer already exists.
• A Customer ID and Location Number (store number) will be returned and needs to be sent in subsequent calls
HTTP Request
POST https://merchant-portal-test.test-racapi.com/api/customer/getApprovalDecision/ecom
Status Code Definition
This table defines the status code, cause, and suggested course of action when the code is received. See Appendix forexamples.
| Status Code | Category Name | Status Cause | Suggested Course of Action |
|---|---|---|---|
| 200 | Successful Message | Success | Successful transaction, no action needed |
| --- | --- | --- | --- |
| 400 | Client Exception | Bad request | Make correction and resubmit request |
| 401 | Client Exception | Unauthorized | Verify user name and password |
| 404 | Client Exception | Operation not found | Verify the MessageType requested, verify defined values sent and resubmit request |
| 405 | Client Exception | Not Allowed | Resubmit request, service unavailable |
| 422 | Client Exception | Bad encryption | Make corrections and resubmit request |
| 500 | System Exception | Internal Server Error | Resubmit request, server unavailable |
| 503 | System Exception | Service unavailable | Resubmit request, error occurred while connecting to the target system |
| 504 | System Exception | Gateway timeout | Resubmit request, timeout occurred while connecting to the target system |
| 505 | System Exception | Version/Schema not supported | Verify version or schema submitted, resubmit with updated version and/or correct schema |
| 999 | System Exception | System down for Maintenance | Resubmit when service is engaged |
Request Header
_ Table 4‑1 Request Header _
| Field Name | Required | Format | Length | Notes |
|---|---|---|---|---|
| MessageID | Required | Text | 15 | Unique ID generated by the client and sent with the request |
| --- | --- | --- | --- | --- |
| MessageType | Required | Text | 6 | Type of the Message (see Table 6-2 MessageType) |
| MessageDTS | Required | Text | 30 | yyyy-MM-dd-HH:mm:ss:SSSSSSOperational date (see section 2.2.1) |
| MessageDTSTZOffset | Required | Text | 6 | +/-hh:mm |
| Revision | Required | Text | 16 | Major.Minor version of schema for MessageType |
| RegionID | Required | Numeric | 2 | Client's Region (see Table 6-1 RegionID) |
| ClientID | Required | Numeric | 8 | RAC assigned client number for Client Name. |
| ClientLocationNumber | Optional | Text | 30 | Clients Location or Store number |
| ClientSource | Required | Numeric | 2 | Kiosk/POS/Web (see Table 6-13 ClientSource) |
| ClientOriginator | Required | Numeric | 8 | Platform RAC assigned Client Originator Number |
| LocationNumber | Optional | Text | 10 | RAC assigned "location number"Example: 5 digit, left-padded w/zeroes |
| LocationFlow | Required | Numeric | 2 | Business Flow (see Table 6-14 LocationFlow) |
| ApprovalFlowType | Required | Numeric | 2 | Type of approval requesting (see Table 6-3 ApprovalFlowType) |
| EncryptionMethod | Required | Numeric | 2 | Encryption method sent (see Table 6-11 Encryption) |
Request Message
_ Table 4‑2 Request Message _
| Field Name | Required | Format | Length | Notes |
|---|---|---|---|---|
| Body | ||||
| --- | --- | --- | --- | --- |
| ApprovalDecisionRequest | ||||
| VendorID | Required | Text | 60 | RAC assigned Vendor Id |
| LanguagePreference | Optional | Text | 2 | See Table 6-5 Language Preference for values |
| CustomerID | Optional | Text | 15 | RAC assigned customer number |
| CustomerAccountID | Optional | Text | 15 | RAC assigned account number |
| CreateCustomerFlag | Optional | Numeric | 1 | Valid Value: 0 for Do Not Create New, 1 for Create NewDefault is '0', not applicable if CustomerID not provided |
| PrefillFlag | Optional | Text | 1 | Indicates customer data populated from payfone0-false, 1-true |
| AuthFlag | Optional | Text | 1 | Indicates customer was authenticated by payfone0-false, 1-true |
| DobChanged | Optional | Text | 1 | Indicates customer changed date of birth0-false, 1-true |
| AddressChanged | Optional | Text | 1 | Indicates customer changed address0-false, 1-true |
| NameChanged | Optional | Text | 1 | Indicates customer changed name0-false, 1-true |
| KBAResults | Optional | |||
| KBA Result Array, 0-to-Many | ||||
| KBAPassFlag | Optional | Text | 1 | KBA Result from 3rd party:0 – Error from 3rd party1 – Pass3 – Fail |
| KBAScore | Optional | Text | 8 | Indicates knowledge based authentication score |
| KBACaseID | Optional | Text | 100 | KBA Case Identifier to send to DE |
| BankingInfo | ||||
| If sending one, you must send both RoutingNumber and AccountNumber | ||||
| AccountType | Optional | Numeric | 2 | See Table 6-20 Account type for values |
| RoutingNumber | Optional* | Text | 9 | Banking account routing number*Required if ApprovalFlowType is '2' |
| AccountNumber | Optional* | Text | 17 | Banking account number*Required if ApprovalFlowType is '2' |
| AccountValidated | Optional | Numeric | 1 | Valid Value: 1 for True or 0 for False |
| IDInfo | ||||
| IDType | Required | Text | 2 | See Table 6-6 IDType for values |
| IssuingStateProvince | Optional* | Text | 2 | For US, use 2 char abbreviation*Required if sending IDType value as 1 or 2 |
| IDNumber | Required | Text | 25 | IDNumber for the respective IDType |
| NationalIDNumber | Required | Text | 9 | USA use SSN 999999999 (no "-") |
| DateOfBirth | Required | Numeric | 8 | YYYYMMDD (no "-" or "/" ) |
| LastName | Required | Text | 30 | Applicants Last Name |
| FirstName | Required | Text | 30 | Applicants First Name |
| MiddleName | Optional | Text | 30 | Applicants Middle Name |
| Address1 | Required | Text | 100 | |
| Address2 | Optional | Text | 100 | |
| City | Required | Text | 20 | |
| StateProvince | Required | Text | 2 | For US, use 2 char abbreviation |
| PostalCode | Required | Text | 9 | No '-' for extended postal codes |
| Country | Optional | Text | 3 | Use 3 character International Country Code table for values |
| LengthOfResidence | Optional | Numeric | 2 | See Table 6-12 LengthOfResidence for values |
| ResidenceType | Optional | Numeric | 2 | See Table 6-19 Residence Type for values |
| LandlordFirstName | Optional* | Text | 30 | *If sending any Landlord info, you must send all Landlord elements; LandlordFirstName, LandlordLastName, LandlordPhone, LandlordAddress1 or LandlordPOBox, LandlordCity, LandlordStateProvince, LandlordPostalCode. |
| LandlordLastName | Optional* | Text | 30 | *If sending any Landlord info, you must send all Landlord elements; LandlordFirstName, LandlordLastName, LandlordPhone, LandlordAddress1 or LandlordPOBox, LandlordCity, LandlordStateProvince, LandlordPostalCode. |
| LandlordPhoneNumber | Optional* | Text | 10 | *If sending any Landlord info, you must send all Landlord elements; LandlordFirstName, LandlordLastName, LandlordPhone, LandlordAddress1 or LandlordPOBox, LandlordCity, LandlordStateProvince, LandlordPostalCode. |
| LandlordAddress1 | Optional* | Text | 50 | *If sending any Landlord info, you must send all Landlord elements; LandlordFirstName, LandlordLastName, LandlordPhone, LandlordAddress1 or LandlordPOBox, LandlordCity, LandlordStateProvince, LandlordPostalCode. |
| LandlordAddress2 | Optional | Text | 30 | |
| LandlordApartmentNumber | Optional | Numeric | 6 | |
| LandlordPOBox | Optional* | Numeric | 6 | *If sending any Landlord info, you must send all Landlord elements; LandlordFirstName, LandlordLastName, LandlordPhone, LandlordAddress1 or LandlordPOBox, LandlordCity, LandlordStateProvince, LandlordPostalCode. |
| LandlordCity | Optional* | Text | 20 | *If sending any Landlord info, you must send all Landlord elements; LandlordFirstName, LandlordLastName, LandlordPhone, LandlordAddress1 or LandlordPOBox, LandlordCity, LandlordStateProvince, LandlordPostalCode. |
| LandlordStateProvince | Optional* | Text | 2 | *If sending any Landlord info, you must send all Landlord elements; LandlordFirstName, LandlordLastName, LandlordPhone, LandlordAddress1 or LandlordPOBox, LandlordCity, LandlordStateProvince, LandlordPostalCode. |
| LandlordPostalCode | Optional* | Text | 9 | *If sending any Landlord info, you must send all Landlord elements; LandlordFirstName, LandlordLastName, LandlordPhone, LandlordAddress1 or LandlordPOBox, LandlordCity, LandlordStateProvince, LandlordPostalCode. |
| Required | Text | 50 | Fully qualified email address | |
| PrimaryPhone | Required | Text | 10 | Includes Country (no "–" or "( )") |
| PrimaryPhoneType | Optional | Text | 2 | See Table 6-7 PhoneType for values |
| BestTimeToCall | Optional | Text | 2 | See Table 6-10 BestTimeToCall for values |
| SecondaryPhone | Optional | Text | 10 | Includes Country (no "–" or "( )") |
| If sending one, you must send both SecondaryPhone and SecondaryPhoneType | ||||
| SecondaryPhoneType | Optional | Text | 2 | See Table 6-7 PhoneType for valuesIf sending one, you must send both SecondaryPhone and SecondaryPhoneType |
| IncomeInfo | ||||
| PrimarySourceOfIncome | Required | Text | 2 | See Table 6-8 PrimarySourceOfIncome for values |
| Employer | Required* | Text | 50 | *Only Required IF, My Job or Self Employed selected as Primary Source of Income |
| JobTitle | Optional | Text | 60 | |
| EmployerAddress | Optional | Text | 30 | |
| EmployerPOBox | Optional | Text | 6 | |
| EmployerCity | Optional | Text | 20 | |
| EmployerStateProvince | Optional | Text | 2 | For US, use 2 char abbreviation |
| EmployerPostalCode | Optional | Text | 9 | |
| EmployerPhone | Required* | Text | 10 | Includes Country (no "–" or "( )") |
| *Only Required IF, My Job or Self Employed selected as Primary Source of Income | ||||
| EmployerPhoneExtension | Optional | Numeric | 6 | |
| EmployerDoNotVisit | Optional | Numeric | 1 | Valid Value: 1 for True or 0 for False |
| EmployerDepartment | Optional | Text | 16 | |
| ShiftStartTime | Optional | Text | 5 | 24-hour format, 15 minute intervals |
| (00-23):(00, 15, 30, 45)Example: 09:00 | ||||
| ShiftEndTime | Optional | Text | 5 | 24-hour format, 15 minute intervals |
| (00-23):(00, 15, 30, 45)Example: 17:30 | ||||
| SupervisorFirstName | Optional | Text | 30 | First name of the applicants supervisor |
| SupervisorLastName | Optional | Text | 30 | Last name of the applicants supervisor |
| LengthOfEmployment | Optional** | Numeric | 5 | Calculated in Months**either LengthOfEmployment or EmploymentStartDate are required *Only Required IF, My Job or Self Employed selected as Primary Source of Income |
| EmploymentStartDate | Optional** | Numeric | 8 | YYYYMMDD (no "-" or "/" )**either LengthOfEmployment or EmploymentStartDate are required *Only Required IF, My Job or Self Employed selected as Primary Source of Income |
| MonthlyIncome | Required | Numeric | 10 | 9999999.99 |
| Schedule | Optional | Numeric | 2 | See Table 6-15 Schedule for values |
| DaysPaid | Optional* | Numeric | 2 | See Table 6-16, 6-17, 6-18 DaysPaid for values*Required when Schedule is sent, except when Schedule value is Daily. |
| ReferenceInfo | ||||
| Repeating. If sending ReferenceInfo, you must send all four elements; First Name, Last Name, Phone and Relationship | ||||
| FirstName | Optional | Text | 30 | First Name of Reference |
| LastName | Optional | Text | 30 | Last Name of Reference |
| Phone | Optional | Text | 10 | Includes Country (no "–" or "( )") |
| Relationship | Optional | Text | 2 | See Table 6-9 Relationship for values |
Response Header
* When receiving a StatusCode other than '200', some required fields may not be populated.
_ Table 4‑3 Response Header _
| Field Name | * Required | Format | Length | Notes |
|---|---|---|---|---|
| MessageID | Required | Text | 15 | Unique ID generated by the client and sent with the request |
| --- | --- | --- | --- | --- |
| MessageType | Required | Text | 6 | Type of the Message,(see Table 6-2 Message Type) |
| MessageDTS | Required | Text | 30 | yyyy-MM-dd-HH:mm:ss:SSSSSSOperational date (seesection 2.2.1) |
| MessageDTSTZOffset | Required | Text | 6 | +/-hh:mm |
| Revision | Required | Text | 16 | Major.Minor version of schema for MessageType |
| RegionID | *Required | Numeric | 2 | Client's Region (see Table 6-1 RegionID) |
| ClientID | *Required | Numeric | 8 | Client NameThe RAC assigned client number. Platform integration see 3.4.4 for Multiple Client IDs. |
| ClientLocationNumber | Required | Text | 30 | Clients Location or Store number |
| ClientSource | Required | Numeric | 2 | Waterfall/POS/Web (see Table 6-13 ClientSource) |
| ClientOriginator | Required | Numeric | 8 | Platform RAC assigned Client Originator Number |
| LocationNumber | Required | Text | 10 | RAC assigned "location number"Example: 5 digit, left-padded w/zeroes |
| LocationFlow | Required | Numeric | 2 | Business Flow (see Table 6-14 LocationFlow) |
| EncryptionMethod | Required | Numeric | 2 | Encryption method sent (see Table 6-11 EncryptionMethod) |
| StatusCode | Required | Text | 4 | Status Code returned to Client (see Table 2-1) |
| StatusCodeDetail | Optional | Text | 128 | Status Code Detail returned to Client |
Response Message
* When receiving a StatusCode other than '200', some required fields may not be populated.
| Field Name | * Required | Format | Length | Notes |
|---|---|---|---|---|
| Body | ||||
| --- | --- | --- | --- | --- |
| Approval DecisionResponse | ||||
| MinimumApprovalAmount | Required | Numeric | 6 | Minimum Approved Amount, round to dollars (or localized currency) with no decimals |
| ApprovalAmount | Required | Numeric | 6 | Amount Approved, round to dollars (or localized currency) with no decimals |
| OriginalApprovalAmount | Required | Numeric | 6 | Original Amount Approved, round to dollars (or localized currency) with no decimals |
| ApprovalExpirationDate | Optional | Text | 10 | yyyy-MM-dd Functional date (see section 2.3.2) |
| CustomerID | Optional | Text | 15 | RAC assigned customer number |
| ApprovalID | Optional | Text | 20 | Approval ID generated by Decision Service |
| ApprovalResponse | Required | Text | 2 | Approval response type (see Table 6-4 ApprovalResponse) |
| ValidationRequired | Optional | |||
| Additional validation required needed to promote to Approval. Array, 0..1 | ||||
| ValidationType | Required | Numeric | 2 | Validation Type, Table 6-21 |
Request Header
| Field Name | Required | Format | Length | Notes |
|---|---|---|---|---|
| MessageID | Required | Text | 15 | Unique ID generated by the client and sent with the request |
| --- | --- | --- | --- | --- |
| MessageType | Required | Text | 6 | Type of the Message (see Table 6-2 MessageType) |
| MessageDTS | Required | Text | 30 | yyyy-MM-dd-HH:mm:ss:SSSSSSOperational date (see section 2.2.1) |
| MessageDTSTZOffset | Required | Text | 6 | +/-hh:mm |
| Revision | Required | Text | 16 | Major.Minor version of schema for MessageType |
| RegionID | Required | Numeric | 2 | Client's Region (see Table 6-1 RegionID) |
| ClientID | Required | Numeric | 8 | RAC assigned client number for Client Name. |
| ClientLocationNumber | Required | Text | 30 | Clients Location or Store number |
| ClientSource | Required | Numeric | 2 | Kiosk/POS/Web (see Table 6-13 ClientSource) |
| ClientOriginator | Required | Numeric | 8 | Platform RAC assigned Client Originator Number |
| LocationNumber | Required | Text | 10 | RAC assigned "location number"Example: 5 digit, left-padded w/zeroes |
| LocationFlow | Required | Numeric | 2 | Business Flow (see Table 6-14 LocationFlow) |
Request Message
| Field Name | Required | Format | Length | Notes |
|---|---|---|---|---|
| ApprovalFlowType | Required | Numeric | 2 | Type of approval requesting (see Table 6-3 ApprovalFlowType) |
| --- | --- | --- | --- | --- |
| EncryptionMethod | Required | Numeric | 2 | Encryption method sent (see Table 6-11 Encryption) |
| Body | ||||
| ApprovalDecisionRequest | ||||
| VendorID | Required | Text | 60 | RAC assigned Vendor Id |
| LanguagePreference | Optional | Numeric | 2 | See Table 6-5 Language Preference for values |
| CustomerID | Optional | Text | 15 | RAC assigned customer number |
| CustomerAccountID | Optional | Text | 15 | RAC assigned account number |
| CreateCustomerFlag | Optional | Numeric | 1 | Valid Value: 0 for Do Not Create New, 1 for Create NewDefault is '0', not applicable if CustomerID not provided |
| PrefillFlag | Optional | Numeric | 1 | Indicates customer data populated from payfone0-false, 1-true |
| AuthFlag | Optional | Numeric | 1 | Indicates customer was authenticated by payfone0-false, 1-true |
| DobChanged | Optional | Numeric | 1 | Indicates customer changed date of birth0-false, 1-true |
| AddressChanged | Optional | Numeric | 1 | Indicates customer changed address0-false, 1-true |
| NameChanged | Optional | Numeric | 1 | Indicates customer changed name0-false, 1-true |
| KBAResults | Optional | |||
| KBA Result Array, 0-to-Many | ||||
| KBAPassFlag | Optional | Text | 1 | KBA Result from 3rd party:0 – Error from 3rd party1 – Pass3 – Fail |
| KBAScore | Optional | Text | 8 | Indicates knowledge based authentication score |
| KBACaseID | Optional | Text | 100 | KBA Case Identifier to send to DE |
| BankingInfo | ||||
| If sending one, you must send both RoutingNumber and AccountNumber | ||||
| RoutingNumber | Optional* | Text | 9 | Banking account routing number*Required if ApprovalFlowType is '2' |
| AccountNumber | Optional* | Text | 17 | Banking account number*Required if ApprovalFlowType is '2' |
| AccountValidated | Optional | Numeric | 1 | Valid Value: 1 for True or 0 for False |
| IDInfo | ||||
| IDType | Required | Text | 2 | See Table 6-6 IDType for values |
| IssuingStateProvince | Optional* | Text | 2 | For US, use 2 char abbreviation*Required if sending IDType value as 1 or 2 |
| IDNumber | Required | Text | 25 | IDNumber for the respective IDType |
| NationalIDNumber | Required | Text | 9 | USA use SSN 999999999 (no "-") |
| DateOfBirth | Required | Numeric | 8 | YYYYMMDD (no "-" or "/" ) |
| LastName | Required | Text | 30 | Applicants Last Name |
| FirstName | Required | Text | 30 | Applicants First Name |
| MiddleName | Optional | Text | 30 | Applicants Middle Name |
| Address1 | Required | Text | 30 | Applicants Address line 1 |
| Address2 | Optional | Text | 30 | Applicants Address line 2 |
| City | Required | Text | 20 | Applicatns City |
| StateProvince | Required | Text | 2 | For US, use 2 char abbreviation |
| PostalCode | Required | Text | 9 | No '-' for extended postal codes |
| Country | Optional | Text | 3 | Use 3 character International Country Code table for values |
| LengthOfResidence | Optional | Numeric | 2 | See Table 6-12 LengthOfResidence for values |
| ResidenceType | Optional | Numeric | 2 | See Table 6-19 Residence Type for values |
| LandlordFirstName | Optional* | Text | 30 | *If sending any Landlord info, you must send all Landlord elements; LandlordFirstName, LandlordLastName, LandlordPhone, LandlordAddress1 or LandlordPOBox, LandlordCity, LandlordStateProvince, LandlordPostalCode. |
| LandlordLastName | Optional* | Text | 30 | *If sending any Landlord info, you must send all Landlord elements; LandlordFirstName, LandlordLastName, LandlordPhone, LandlordAddress1 or LandlordPOBox, LandlordCity, LandlordStateProvince, LandlordPostalCode. |
| LandlordPhoneNumber | Optional* | Text | 10 | *If sending any Landlord info, you must send all Landlord elements; LandlordFirstName, LandlordLastName, LandlordPhone, LandlordAddress1 or LandlordPOBox, LandlordCity, LandlordStateProvince, LandlordPostalCode. |
| LandlordAddress1 | Optional* | Text | 50 | *If sending any Landlord info, you must send all Landlord elements; LandlordFirstName, LandlordLastName, LandlordPhone, LandlordAddress1 or LandlordPOBox, LandlordCity, LandlordStateProvince, LandlordPostalCode. |
| LandlordAddress2 | Optional | Text | 30 | |
| LandlordApartmentNumber | Optional | Numeric | 6 | |
| LandlordPOBox | Optional* | Numeric | 6 | *If sending any Landlord info, you must send all Landlord elements; LandlordFirstName, LandlordLastName, LandlordPhone, LandlordAddress1 or LandlordPOBox, LandlordCity, LandlordStateProvince, LandlordPostalCode. |
| LandlordCity | Optional* | Text | 20 | *If sending any Landlord info, you must send all Landlord elements; LandlordFirstName, LandlordLastName, LandlordPhone, LandlordAddress1 or LandlordPOBox, LandlordCity, LandlordStateProvince, LandlordPostalCode. |
| LandlordStateProvince | Optional* | Text | 2 | *If sending any Landlord info, you must send all Landlord elements; LandlordFirstName, LandlordLastName, LandlordPhone, LandlordAddress1 or LandlordPOBox, LandlordCity, LandlordStateProvince, LandlordPostalCode. |
| LandlordPostalCode | Optional* | Text | 9 | *If sending any Landlord info, you must send all Landlord elements; LandlordFirstName, LandlordLastName, LandlordPhone, LandlordAddress1 or LandlordPOBox, LandlordCity, LandlordStateProvince, LandlordPostalCode. |
| Optional | Text | 50 | Fully qualified email address | |
| PrimaryPhone | Required | Text | 10 | Includes Country (no "–" or "( )") |
| PrimaryPhoneType | Required | Text | 2 | See Table 6-7 PhoneType for values |
| BestTimeToCall | Optional | Text | 2 | See Table 6-10 BestTimeToCall for values |
| SecondaryPhone | Optional | Text | 10 | Includes Country (no "–" or "( )") |
| If sending one, you must send both SecondaryPhone and SecondaryPhoneType | ||||
| SecondaryPhoneType | Optional | Text | 2 | See Table 6-7 PhoneType for valuesIf sending one, you must send both SecondaryPhone and SecondaryPhoneType |
| IncomeInfo | ||||
| PrimarySourceOfIncome | Optional | Text | 2 | See Table 6-8 PrimarySourceOfIncome for values |
| Employer | Optional | Text | 60 | |
| JobTitle | Optional | Text | 60 | |
| EmployerAddress | Optional | Text | 30 | |
| EmployerPOBox | Optional | Text | 6 | |
| EmployerCity | Optional | Text | 20 | |
| EmployerStateProvince | Optional | Text | 2 | For US, use 2 char abbreviation |
| EmployerPostalCode | Optional | Text | 9 | |
| EmployerPhone | Optional | Text | 10 | Includes Country (no "–" or "( )") |
| EmployerPhoneExtension | Optional | Numeric | 6 | |
| EmployerDoNotVisit | Optional | Numeric | 1 | Valid Value: 1 for True or 0 for False |
| EmployerDepartment | Optional | Text | 16 | |
| ShiftStartTime | Optional | Text | 5 | 24-hour format, 15 minute intervals |
| (00-23):(00, 15, 30, 45)Example: 09:00 | ||||
| ShiftEndTime | Optional | Text | 5 | 24-hour format, 15 minute intervals |
| (00-23):(00, 15, 30, 45)Example: 17:30 | ||||
| SupervisorFirstName | Optional | Text | 30 | First name of the applicants supervisor |
| SupervisorLastName | Optional | Text | 30 | Last name of the applicants supervisor |
| LengthOfEmployment | Optional | Numeric | 5 | Calculated in Months |
| EmploymentStartDate | Optional | Numeric | 8 | YYYYMMDD (no "-" or "/" ) |
| MonthlyIncome | Required | Numeric | 10 | 9999999.99 |
| Schedule | Optional | Numeric | 2 | See Table 6-15 Schedule for values |
| DaysPaid | Optional* | Numeric | 2 | See Table 6-16, 6-17, 6-18 DaysPaid for values*Required when Schedule is sent, except when Schedule value is Daily. |
| ReferenceInfo | ||||
| Repeating. If sending ReferenceInfo, you must send all four elements; First Name, Last Name, Phone and Relationship | ||||
| FirstName | Optional | Text | 30 | First Name of Reference |
| LastName | Optional | Text | 30 | Last Name of Reference |
| Phone | Optional | Text | 10 | Includes Country (no "–" or "( )") |
| Relationship | Optional | Text | 2 | See Table 6-9 Relationship for values |
Response Header
* When receiving a StatusCode other than '200', some required fields may not be populated.
| Field Name | * Required | Format | Length | Notes |
|---|---|---|---|---|
| MessageID | Required | Text | 15 | Unique ID generated by the client and sent with the request |
| --- | --- | --- | --- | --- |
| MessageType | Required | Text | 6 | Type of the Message,(see Table 6-2 Message Type) |
| MessageDTS | Required | Text | 30 | yyyy-MM-dd-HH:mm:ss:SSSSSSOperational date (seesection 2.2.1) |
| MessageDTSTZOffset | Required | Text | 6 | +/-hh:mm |
| Revision | Required | Text | 16 | Major.Minor version of schema for MessageType |
| RegionID | *Required | Numeric | 2 | Client's Region (see Table 6-1 RegionID) |
| ClientID | *Required | Numeric | 8 | Client NameThe RAC assigned client number. Platform integration see 3.4.4 for Multiple Client IDs. |
| ClientLocationNumber | Required | Text | 30 | Clients Location or Store number |
| ClientSource | Required | Numeric | 2 | Waterfall/POS/Web (see Table 6-13 ClientSource) |
| ClientOriginator | Required | Numeric | 8 | Platform RAC assigned Client Originator Number |
| LocationNumber | Required | Text | 10 | RAC assigned "location number"Example: 5 digit, left-padded w/zeroes |
| LocationFlow | Required | Numeric | 2 | Business Flow (see Table 6-14 LocationFlow) |
| EncryptionMethod | Required | Numeric | 2 | Encryption method sent (see Table 6-11 EncryptionMethod) |
| StatusCode | Required | Text | 4 | Status Code returned to Client (see Table 2-1) |
| StatusCodeDetail | Optional | Text | 128 | Status Code Detail returned to Client |
Response Message
* When receiving a StatusCode other than '200', some required fields may not be populated.
| Field Name | * Required | Format | Length | Notes |
|---|---|---|---|---|
| Body | ||||
| --- | --- | --- | --- | --- |
| Approval DecisionResponse | ||||
| MinimumApprovalAmount | Optional | Numeric | 6 | Minimum Approved Amount, round to dollars (or localized currency) with no decimals |
| ApprovalAmount | Required | Numeric | 6 | Amount Approved, round to dollars (or localized currency) with no decimals |
| OriginalApprovalAmount | Optional | Numeric | 6 | Original Amount Approved, round to dollars (or localized currency) with no decimals |
| ApprovalExpirationDate | Optional | Text | 10 | yyyy-mm-dd Functional date (see section 2.3.2) |
| CustomerID | Optional | Text | 15 | RAC assigned customer number |
| ApprovalID | Optional | Text | 20 | Approval ID generated by Decision Service |
| ApprovalResponse | Required | Text | 2 | Approval response type (see Table 6-4 ApprovalResponse) |
| ValidationRequired | Optional | |||
| Additional validation required needed to promote to Approval. Array, 0..1 | ||||
| ValidationType | Required | Numeric | 2 | Validation Type, Table 6-21 |
Field Values
Values are as follows for the fields that require specific valid values. The Client ID will be assigned and communicated outside of this document.
| Client Region | Valid Value |
|---|---|
| United States (Default) | 1 |
| --- | --- |
| Mexico | 2 |
| Canada | 3 |
| MessageType | Request – Valid Value | Response – Valid Value | Request Format | Response Format |
|---|---|---|---|---|
| Add Sales Lead | CMS005 | CMS105 | Encryption Optional | Unencrypted |
| --- | --- | --- | --- | --- |
| ApprovalFlowType | Valid Value | Description |
|---|---|---|
| None | 0 | No Approval is requested |
| --- | --- | --- |
| Manned | 1 | Location has a facing coworker |
| Unmanned | 2 | Location is virtual |
| Manned - non RAC Employee | 3 | Manned - non RAC Employee |
| ApprovalResponse | Valid Value | Description |
|---|---|---|
| N/A | 0 | Not applicable, approval was not requested |
| --- | --- | --- |
| Approved | 1 | Customer is approved with an Approval Amount |
| Declined | 2 | Customer is declined |
| Manual Intervention | 4 | Employee should manually review the application |
| Approved with Bank Verified | 7 | Customer is approved with bank account verified |
| Language | Valid Value |
|---|---|
| English (Default) | 1 |
| --- | --- |
| Spanish | 2 |
| IDType | Valid Value | Supported in this Version |
|---|---|---|
| Driver's License | 1 | Yes |
| --- | --- | --- |
| State Province ID | 2 | Yes |
| Passport | 3 | Yes |
| Military ID | 4 | No |
| Citizenship Card | 5 | No |
| Green Card | 6 | No |
| NEXUS – US/Canada | 7 | No |
| SENTRI – US/Mexico | 8 | No |
| Other | 9 | No |
| Matricula Consular (Mexico ID) | 10 | Yes |
| PhoneType | Valid Value |
|---|---|
| Home | 1 |
| --- | --- |
| Cell | 2 |
| Work | 3 |
| SourceOfIncome | Valid Value |
|---|---|
| My Job | 1 |
| --- | --- |
| Self-Employment | 2 |
| Social Security | 3 |
| Retirement | 4 |
| Pension | 5 |
| Disability | 6 |
| Relationship | Valid Value |
|---|---|
| Parent / In-law | 1 |
| --- | --- |
| Grandparent | 2 |
| Sibling | 3 |
| Aunt / Uncle | 4 |
| Cousin | 5 |
| Niece / Nephew | 6 |
| Friend | 7 |
| Co-Worker | 8 |
| Other | 9 |
| BestTimeToCall | Valid Value |
|---|---|
| Morning 9am-12pm | 1 |
| --- | --- |
| Afternoon 12pm-5pm | 2 |
| Evening 5pm-9pm | 3 |
| EncryptionMethod | Valid Value |
|---|---|
| None | 0 |
| --- | --- |
| AES with RSA key | 1 |
| (no longer in use) | 2 |
| AES | 3 |
| Length Of Residence | Valid Value |
|---|---|
| 0 - 6 months | 1 |
| --- | --- |
| 6 - 12 months | 2 |
| 1 - 3 years | 3 |
| 3 - 5 years | 4 |
| 5 + years | 5 |
| ClientSource | Valid Value |
|---|---|
| Other | 0 |
| --- | --- |
| Kiosk | 1 |
| Point of Sale (POS) | 2 |
| eCommerce (web) | 3 |
| IVR | 4 |
| Mobile Device | 5 |
| Location Flow | Valid Value | Functional Specification |
|---|---|---|
| Regular – Flow requires more Income Information, to make an approval decision. | 0 | See Section 4 |
| --- | --- | --- |
| Simple Flow – Flow has relaxed required elements to make an approval decision. | 5 | See Section 5 |
| RAC assigned Addendum Number | n | Per addendum |
| Schedule | Valid Value | Note 'DaysPaid' value table below |
|---|---|---|
| Weekly | 1 | Table 4-29 |
| --- | --- | --- |
| Bi-Weekly | 2 | Table 4-29 |
| Semi-Monthly | 3 | Table 4-30 |
| Monthly | 4 | Table 4-31 |
| Daily | 5 | Days Paid is not required |
DaysPaid values when Schedule is weekly/ Bi-weekly
| Day of Week Paid on: | Valid Value |
|---|---|
| Sunday | 1 |
| --- | --- |
| Monday | 2 |
| Tuesday | 3 |
| Wednesday | 4 |
| Thursday | 5 |
| Friday | 6 |
| Saturday | 7 |
DaysPaid values when Schedule is Semi-Monthly
| Days of Month Paid on: | Valid Value |
|---|---|
| 1 & 15 | 1 |
| --- | --- |
| 2 & 16 | 2 |
| 3 & 17 | 3 |
| 4 & 18 | 4 |
| 5 & 19 | 5 |
| 6 & 20 | 6 |
| 7 & 21 | 7 |
| 8 & 22 | 8 |
| 9 & 23 | 9 |
| 10 & 24 | 10 |
| 11 & 25 | 11 |
| 12 & 26 | 12 |
| 13 & 27 | 13 |
| 14 & 28 | 14 |
| 15 & 30 | 15 |
DaysPaid values when Schedule is Monthly
| Day of Month Paid on: | Valid Value |
|---|---|
| Last Day of Month | 0 |
| --- | --- |
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
| 4 | 4 |
| 5 | 5 |
| 6 | 6 |
| 7 | 7 |
| 8 | 8 |
| 9 | 9 |
| 10 | 10 |
| 11 | 11 |
| 12 | 12 |
| 13 | 13 |
| 14 | 14 |
| 15 | 15 |
| 16 | 16 |
| 17 | 17 |
| 18 | 18 |
| 19 | 19 |
| 20 | 20 |
| 21 | 21 |
| 22 | 22 |
| 23 | 23 |
| 24 | 24 |
| 25 | 25 |
| 26 | 26 |
| 27 | 27 |
| 28 | 28 |
| 29 | 29 |
| 30 | 30 |
| 31 | 31 |
| Residence Type | Valid Value |
|---|---|
| Own | 1 |
| --- | --- |
| Rented | 2 |
| Account Type | Valid Value |
|---|---|
| PersonalChecking | 1 |
| --- | --- |
| PersonalSavings | 2 |
| ValidationType | Valid Value |
|---|---|
| Bank Validation | 1 |
| --- | --- |
Find Existing Customer with an Approval (AMS205)
• A customer can be found based on certain criteria.
• One or more customers will be returned along with their approval information.
• A Customer ID and Location Number (store number) will be returned and needs to be sent in subsequent calls
Get Store Configurations (SMS205)
• Each store has a set of configurations such as agreement min/max, item min/max, categories (APP, FUR..) .
• UI will have to put rules based on min/max amounts for the Customer cart.
• Category on AGR/PMS services should be selected from categories returned by SMS service.
• https://merchant-portal-test.test-racapi.com/api/store/getStoreConfig/ecom
Send Text to Customer for Phone Validation
• As part of fraud prevention we want to validate the phone number is valid. A code is generated and texted to the phone number on file. The code must be entered to continue the process.
• https://merchant-portal-test.test-racapi.com/api/customer/verifyPhoneNumber
Get Price Quote (PMS204)
• The products selected by the customer should be passed in this request. The products will need to be mapped to our specific products.
• The customer should already have a valid approval.
• Rate, term, cash price and total cost will be returned.
• Optional products LDW and Benefits+ will also be returned.
• https://merchant-portal-test.test-racapi.com/api/quote/getPriceQuote/ecom
Create Agreement (AGR001)
• The customer must approve the terms along with accepting or declining the optional LDW and Benefits+.
• This API allows either online or remote signing. Online signing should be used for eCommerce applications and remote signing for non-customer facing applications.
• The response will be a redirect URL if online signing is selected.
• An email with a docusign link will be emailed to the customer if remote signing is selected.
• https://merchant-portal-test.test-racapi.com/api/agreement/createAgreement/ecom
Make Initial Payment
• After the customer has signed the documents, credit card information will need to be collected.
• Redirect the customer to the Add Pay URL for credit card entry.
• Initial payment returned by AGR service response should be sent on the Add Pay call.
• The card will be charged and an email will be sent to the customer confirming their order.
• A successful callback from Add Pay is the final step in the process.
• https://addpay.rentacenter.com/v1/customers/{customerId}/views/payment/recipient
Get List of Customers with Valid Approvals or Completed Signing
• A list of customers with valid approvals or a list of customers with signing documents completed but agreements not finalized will be returned.
• The list of customer with approvals will allow store coworkers to quickly find customers to begin their ordering process.
• The list of customer with Docusign complete will allow the store coworker to quickly find customers to finalize their agreement by entering their credit card information.
• This service is coming soon.
• https://merchant-portal-test.us-e1.cloudhub.io/api/customer/getCustomerList
Cancel agreement
• If the customer decides to not continue the process after create agreement, the cancel agreement process should be called.
• The cancel process will fail if the customer has already paid.
• This service is coming soon.
• https://merchant-portal-test.us-e1.cloudhub.io/api/agreement/cancel
Confirm delivery\update estimated delivery date
• When the delivery date to the customer has been set, call to update the estimated delivery date. If the delivery date changes, call to update our system with the new estimated delivery date.
• This service is coming soon.
• https://merchant-portal-test.us-e1.cloudhub.io/api/agreement/confirm
Errors
The Kittn API uses the following error codes:
| Error Code | Meaning |
|---|---|
| 400 | Bad Request -- Your request is invalid. |
| 401 | Unauthorized -- Your API key is wrong. |
| 403 | Forbidden -- The kitten requested is hidden for administrators only. |
| 404 | Not Found -- The specified kitten could not be found. |
| 405 | Method Not Allowed -- You tried to access a kitten with an invalid method. |
| 406 | Not Acceptable -- You requested a format that isn't json. |
| 410 | Gone -- The kitten requested has been removed from our servers. |
| 418 | I'm a teapot. |
| 429 | Too Many Requests -- You're requesting too many kittens! Slow down! |
| 500 | Internal Server Error -- We had a problem with our server. Try again later. |
| 503 | Service Unavailable -- We're temporarily offline for maintenance. Please try again later. |