openapi: 3.1.0
info:
description: |
#
Credit App offers a suite of APIs that allow developers to extend the platform’s built-in features.
These APIs allow app developers to read and write data, interoperate with other systems and platforms, and add new functionality to Credit App.
When you make a request to the REST API, you will specify an HTTP method and a path.
Additionally, you might also specify request headers and path, query, or body parameters.
The API will return the response status code, response headers, and potentially a response body.
The REST API reference documentation describes the HTTP method, path, and parameters for every operation.
It also displays example requests and responses for each operation.
# Guides
We **strongly** recommend you check out the [guides](/guides/intro) section before you start using the Credit App REST API.
The guides provide detailed information on how to use the REST API, including examples and best practices.
# Requirements for using the Credit App REST API
- All APIs require developers to request access and be granted an API key.
- All APIs require developers to [authenticate](/guides/Authentication).
# Deprecated APIs
Deprecated APIs remain available but are unsupported and can stop working at any time.
Developers should migrate to supported alternatives as soon as possible.
# Authentication
All incoming requests to the Credit App API must be authenticated. Bearer authentication is used to authenticate requests.
HMAC signatures are added to all outgoing webhook requests.
Please see the guide on [authentication](/guides/Authentication) for more information.
# Webhooks
Webhooks allow apps to stay in sync with Credit App data or perform an action after a specific event occurs. Webhooks are a performant alternative to continuously polling for changes to data.
For example, a webhook can notify your app when a decision has been made on an application by a creditor. Your app can then perform an action when the change occurs.
This [guide](/guides/Webhooks/Webhook%20Intro) introduces how webhooks work, including how to configure a webhook for your app and manage webhooks.
version: 1.0.0
title: Getting started with the Credit App REST API - Retailer Schema
prefix: CreditApp
contact:
name: API Support
email: support@creditapp.ca
servers:
- url: /v1
tags:
- name: auth
x-displayName: auth
- name: applications
x-displayName: applications
- name: vehicles
x-displayName: vehicles
- name: creditors
x-displayName: creditors
- name: identity-verification
x-displayName: identity-verification
- name: retailers
x-displayName: retailers
- name: users
x-displayName: users
paths:
/login:
post:
deprecated: true
security:
- auth_apiKey: []
summary: Create Login
tags:
- auth
requestBody:
content:
application/json:
schema:
type: object
properties:
retailerId:
type: string
format: uuid
responses:
'200':
description: Access token
content:
application/json:
schema:
type: object
properties:
token:
type: string
expiresIn:
type: integer
description: Token expiration time in seconds
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
status:
type: integer
default: 400
message:
type: string
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
status:
type: integer
default: 401
/applications:
post:
security:
- application_apiKey: []
summary: Create an application
tags:
- applications
parameters:
- in: header
name: X-CreditApp-Retailer-ID
schema:
type: string
format: uuid
required: false
- in: header
name: X-CreditApp-Creditor-ID
schema:
type: string
format: uuid
required: false
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
applicationType:
type: string
enum:
- APPROVAL
- PRE_APPROVAL
description: |
The type of application.
isReadOnly:
type: boolean
default: false
description: >
Indicates that only the caller should be able to modify the
details of the application.
Typically this means that the source of truth for the
application is outside of CreditApp.
Only used for creditor created applications.
referenceNumber:
type: string
description: >
The reference number. This is only used for creditor created
applications.
primaryApplicant:
type: object
properties:
firstName:
type: string
middleName:
type: string
lastName:
type: string
dateOfBirth:
type: string
format: date
sin:
type: string
selfReportedCreditScore:
type: number
example: 700
description: >
The self reported credit score. This is used to run
pre-credit lender filter rules. When converting from a
range, take the lower bound. For example, if the range
is 700-750, use 700.
phoneNumber:
type: string
email:
type: string
languagePreference:
type: string
enum:
- EN
- FR
description: |
The applicant's language preference.
maritalStatus:
type: string
enum:
- SINGLE
- MARRIED
- DIVORCED
- WIDOWED
- SEPARATED
- COMMON_LAW
description: |
The applicant's marital status.
primaryAddress:
type: object
properties:
residenceType:
type: string
enum:
- RENT
- OWN_FREE_AND_CLEAR
- OWN_WITH_MORTGAGE
- OWN_MOBILE_HOME
- RESERVE_HOUSING
- WITH_PARENTS
- OTHER
description: |
The type of residence.
monthlyRentOrMortgage:
type: number
apartmentSuite:
type: string
streetNo:
type: string
streetName:
type: string
streetType:
type: string
direction:
type: string
enum:
- 'N'
- NE
- E
- SE
- S
- SW
- W
- NW
description: |
The direction.
city:
type: string
postalCode:
type: string
province:
type: string
enum:
- AB
- BC
- MB
- NB
- NL
- NS
- NT
- NU
- 'ON'
- PE
- QC
- SK
- YT
description: |
The province.
yearsAtAddress:
type: number
default: 2
monthsAtAddress:
type: number
default: 0
poBoxNumber:
type: string
addressType:
type: string
enum:
- STREET
- PO_BOX
description: |
The type of address.
addressHistory:
type: array
items:
type: object
properties:
residenceType:
type: string
enum:
- RENT
- OWN_FREE_AND_CLEAR
- OWN_WITH_MORTGAGE
- OWN_MOBILE_HOME
- RESERVE_HOUSING
- WITH_PARENTS
- OTHER
description: |
The type of residence.
monthlyRentOrMortgage:
type: number
apartmentSuite:
type: string
streetNo:
type: string
streetName:
type: string
streetType:
type: string
direction:
type: string
enum:
- 'N'
- NE
- E
- SE
- S
- SW
- W
- NW
description: |
The direction.
city:
type: string
postalCode:
type: string
province:
type: string
enum:
- AB
- BC
- MB
- NB
- NL
- NS
- NT
- NU
- 'ON'
- PE
- QC
- SK
- YT
description: |
The province.
yearsAtAddress:
type: number
monthsAtAddress:
type: number
poBoxNumber:
type: string
addressType:
type: string
enum:
- STREET
- PO_BOX
description: |
The type of address.
noPreviousAddress:
type: boolean
description: |
Indicates if the applicant has no previous address.
primaryEmployment:
type: object
properties:
type:
type: string
enum:
- AT_HOME
- EXECUTIVE
- LABOURER
- MANAGEMENT
- OFFICE_STAFF
- OTHER
- PRODUCTION
- PROFESSIONAL
- RETIRED
- SALES
- SELF_EMPLOYED
- SERVICE
- STUDENT
- TRADES
- UNEMPLOYED
description: |
The type of employment.
status:
type: string
enum:
- FULL_TIME
- FULL_TIME_PROBATION
- PART_TIME
- PART_TIME_CASUAL
- RETIRED
- SEASONAL_SUMMER
- SEASONAL_WINTER
- SELF_EMPLOYED
- UNEMPLOYED
description: |
The employment status.
grossIncome:
type: number
frequency:
type: string
enum:
- BI_WEEKLY
- MONTHLY
- SEMI_MONTHLY
- WEEKLY
- YEARLY
description: |
The income frequency.
apartmentSuite:
type: string
streetNo:
type: string
streetName:
type: string
streetType:
type: string
direction:
type: string
enum:
- 'N'
- NE
- E
- SE
- S
- SW
- W
- NW
description: |
The direction.
city:
type: string
province:
type: string
enum:
- AB
- BC
- MB
- NB
- NL
- NS
- NT
- NU
- 'ON'
- PE
- QC
- SK
- YT
description: |
The province.
postalCode:
type: string
employerName:
type: string
occupation:
type: string
employmentPhone:
type: string
yearsWorked:
type: number
default: 2
monthsWorked:
type: number
default: 0
additionalIncomeSources:
type: array
items:
type: object
properties:
type:
type: string
enum:
- CAR_ALLOWANCE
- CHILD_SUPPORT
- DISABILITY_PAYMENTS
- INVESTMENT_INCOME
- PENSIONS
- RENTAL_INCOME
- WORKERS_COMPENSATION
- OTHER
description: |
The type of additional income.
grossIncome:
type: number
frequency:
type: string
enum:
- BI_WEEKLY
- MONTHLY
- SEMI_MONTHLY
- WEEKLY
- YEARLY
description: |
The income frequency.
description:
type: string
description: |
Description for other income source.
required:
- type
- grossIncome
- frequency
nullable: true
employmentHistory:
type: array
items:
type: object
properties:
type:
type: string
enum:
- AT_HOME
- EXECUTIVE
- LABOURER
- MANAGEMENT
- OFFICE_STAFF
- OTHER
- PRODUCTION
- PROFESSIONAL
- RETIRED
- SALES
- SELF_EMPLOYED
- SERVICE
- STUDENT
- TRADES
- UNEMPLOYED
description: |
The type of employment.
status:
type: string
enum:
- FULL_TIME
- FULL_TIME_PROBATION
- PART_TIME
- PART_TIME_CASUAL
- RETIRED
- SEASONAL_SUMMER
- SEASONAL_WINTER
- SELF_EMPLOYED
- UNEMPLOYED
description: |
The employment status.
grossIncome:
type: number
frequency:
type: string
enum:
- BI_WEEKLY
- MONTHLY
- SEMI_MONTHLY
- WEEKLY
- YEARLY
description: |
The income frequency.
apartmentSuite:
type: string
streetNo:
type: string
streetName:
type: string
streetType:
type: string
direction:
type: string
enum:
- 'N'
- NE
- E
- SE
- S
- SW
- W
- NW
description: |
The direction.
city:
type: string
province:
type: string
enum:
- AB
- BC
- MB
- NB
- NL
- NS
- NT
- NU
- 'ON'
- PE
- QC
- SK
- YT
description: |
The province.
postalCode:
type: string
employerName:
type: string
occupation:
type: string
employmentPhone:
type: string
yearsWorked:
type: number
monthsWorked:
type: number
additionalIncomeSources:
type: array
items:
type: object
properties:
type:
type: string
enum:
- CAR_ALLOWANCE
- CHILD_SUPPORT
- DISABILITY_PAYMENTS
- INVESTMENT_INCOME
- PENSIONS
- RENTAL_INCOME
- WORKERS_COMPENSATION
- OTHER
description: |
The type of additional income.
grossIncome:
type: number
frequency:
type: string
enum:
- BI_WEEKLY
- MONTHLY
- SEMI_MONTHLY
- WEEKLY
- YEARLY
description: |
The income frequency.
description:
type: string
description: |
Description for other income source.
required:
- type
- grossIncome
- frequency
nullable: true
nullable: true
noPreviousEmployment:
type: boolean
description: |
Indicates if the applicant has no previous employment.
coApplicant:
type: object
properties:
firstName:
type: string
middleName:
type: string
lastName:
type: string
relationship:
type: string
enum:
- COMMON_LAW
- EMPLOYER
- FRIEND
- IN_LAW
- OTHER
- PARENT
- SIBLING
- SPOUSE
description: |
The relationship.
dateOfBirth:
type: string
format: date
sin:
type: string
phoneNumber:
type: string
email:
type: string
languagePreference:
type: string
enum:
- EN
- FR
description: |
The applicant's language preference.
maritalStatus:
type: string
enum:
- SINGLE
- MARRIED
- DIVORCED
- WIDOWED
primaryAddress:
type: object
properties:
residenceType:
type: string
enum:
- RENT
- OWN_FREE_AND_CLEAR
- OWN_WITH_MORTGAGE
- OWN_MOBILE_HOME
- RESERVE_HOUSING
- WITH_PARENTS
- OTHER
description: |
The type of residence.
monthlyRentOrMortgage:
type: number
apartmentSuite:
type: string
streetNo:
type: string
streetName:
type: string
streetType:
type: string
direction:
type: string
enum:
- 'N'
- NE
- E
- SE
- S
- SW
- W
- NW
description: |
The direction.
city:
type: string
postalCode:
type: string
province:
type: string
enum:
- AB
- BC
- MB
- NB
- NL
- NS
- NT
- NU
- 'ON'
- PE
- QC
- SK
- YT
description: |
The province.
yearsAtAddress:
type: number
default: 2
monthsAtAddress:
type: number
default: 0
poBoxNumber:
type: string
addressType:
type: string
enum:
- STREET
- PO_BOX
description: |
The type of address.
addressHistory:
type: array
items:
type: object
properties:
residenceType:
type: string
enum:
- RENT
- OWN_FREE_AND_CLEAR
- OWN_WITH_MORTGAGE
- OWN_MOBILE_HOME
- RESERVE_HOUSING
- WITH_PARENTS
- OTHER
description: |
The type of residence.
monthlyRentOrMortgage:
type: number
apartmentSuite:
type: string
streetNo:
type: string
streetName:
type: string
streetType:
type: string
direction:
type: string
enum:
- 'N'
- NE
- E
- SE
- S
- SW
- W
- NW
description: |
The direction.
city:
type: string
postalCode:
type: string
province:
type: string
enum:
- AB
- BC
- MB
- NB
- NL
- NS
- NT
- NU
- 'ON'
- PE
- QC
- SK
- YT
description: |
The province.
yearsAtAddress:
type: number
monthsAtAddress:
type: number
poBoxNumber:
type: string
addressType:
type: string
enum:
- STREET
- PO_BOX
description: |
The type of address.
noPreviousAddress:
type: boolean
description: |
Indicates if the applicant has no previous address.
primaryEmployment:
type: object
properties:
type:
type: string
enum:
- AT_HOME
- EXECUTIVE
- LABOURER
- MANAGEMENT
- OFFICE_STAFF
- OTHER
- PRODUCTION
- PROFESSIONAL
- RETIRED
- SALES
- SELF_EMPLOYED
- SERVICE
- STUDENT
- TRADES
- UNEMPLOYED
description: |
The type of employment.
status:
type: string
enum:
- FULL_TIME
- FULL_TIME_PROBATION
- PART_TIME
- PART_TIME_CASUAL
- RETIRED
- SEASONAL_SUMMER
- SEASONAL_WINTER
- SELF_EMPLOYED
- UNEMPLOYED
description: |
The employment status.
grossIncome:
type: number
frequency:
type: string
enum:
- BI_WEEKLY
- MONTHLY
- SEMI_MONTHLY
- WEEKLY
- YEARLY
description: |
The income frequency.
apartmentSuite:
type: string
streetNo:
type: string
streetName:
type: string
streetType:
type: string
direction:
type: string
enum:
- 'N'
- NE
- E
- SE
- S
- SW
- W
- NW
description: |
The direction.
city:
type: string
province:
type: string
enum:
- AB
- BC
- MB
- NB
- NL
- NS
- NT
- NU
- 'ON'
- PE
- QC
- SK
- YT
description: |
The province.
postalCode:
type: string
employerName:
type: string
occupation:
type: string
employmentPhone:
type: string
yearsWorked:
type: number
default: 2
monthsWorked:
type: number
default: 0
additionalIncomeSources:
type: array
items:
type: object
properties:
type:
type: string
enum:
- CAR_ALLOWANCE
- CHILD_SUPPORT
- DISABILITY_PAYMENTS
- INVESTMENT_INCOME
- PENSIONS
- RENTAL_INCOME
- WORKERS_COMPENSATION
- OTHER
description: |
The type of additional income.
grossIncome:
type: number
frequency:
type: string
enum:
- BI_WEEKLY
- MONTHLY
- SEMI_MONTHLY
- WEEKLY
- YEARLY
description: |
The income frequency.
description:
type: string
description: |
Description for other income source.
required:
- type
- grossIncome
- frequency
nullable: true
employmentHistory:
type: array
items:
type: object
properties:
type:
type: string
enum:
- AT_HOME
- EXECUTIVE
- LABOURER
- MANAGEMENT
- OFFICE_STAFF
- OTHER
- PRODUCTION
- PROFESSIONAL
- RETIRED
- SALES
- SELF_EMPLOYED
- SERVICE
- STUDENT
- TRADES
- UNEMPLOYED
description: |
The type of employment.
status:
type: string
enum:
- FULL_TIME
- FULL_TIME_PROBATION
- PART_TIME
- PART_TIME_CASUAL
- RETIRED
- SEASONAL_SUMMER
- SEASONAL_WINTER
- SELF_EMPLOYED
- UNEMPLOYED
description: |
The employment status.
grossIncome:
type: number
frequency:
type: string
enum:
- BI_WEEKLY
- MONTHLY
- SEMI_MONTHLY
- WEEKLY
- YEARLY
description: |
The income frequency.
apartmentSuite:
type: string
streetNo:
type: string
streetName:
type: string
streetType:
type: string
direction:
type: string
enum:
- 'N'
- NE
- E
- SE
- S
- SW
- W
- NW
description: |
The direction.
city:
type: string
province:
type: string
enum:
- AB
- BC
- MB
- NB
- NL
- NS
- NT
- NU
- 'ON'
- PE
- QC
- SK
- YT
description: |
The province.
postalCode:
type: string
employerName:
type: string
occupation:
type: string
employmentPhone:
type: string
yearsWorked:
type: number
monthsWorked:
type: number
additionalIncomeSources:
type: array
items:
type: object
properties:
type:
type: string
enum:
- CAR_ALLOWANCE
- CHILD_SUPPORT
- DISABILITY_PAYMENTS
- INVESTMENT_INCOME
- PENSIONS
- RENTAL_INCOME
- WORKERS_COMPENSATION
- OTHER
description: |
The type of additional income.
grossIncome:
type: number
frequency:
type: string
enum:
- BI_WEEKLY
- MONTHLY
- SEMI_MONTHLY
- WEEKLY
- YEARLY
description: |
The income frequency.
description:
type: string
description: |
Description for other income source.
required:
- type
- grossIncome
- frequency
nullable: true
nullable: true
noPreviousEmployment:
type: boolean
description: |
Indicates if the applicant has no previous employment.
assignedRetailerUserId:
type: string
format: uuid
nullable: true
description: >
The user ID of the retailer user that the application is
assigned to.
worksheet:
$ref: '#/components/schemas/application_worksheet'
required:
- applicationType
- primaryApplicant
responses:
'200':
description: The response of the application
content:
application/json:
schema:
$ref: '#/components/schemas/application_ApplicationResponse'
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
status:
type: integer
default: 400
message:
type: string
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
status:
type: integer
default: 401
/applications/search:
post:
summary: Search application
tags:
- applications
parameters:
- in: header
name: X-CreditApp-Retailer-ID
schema:
type: string
format: uuid
required: false
- in: header
name: X-CreditApp-Creditor-ID
schema:
type: string
format: uuid
required: false
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
query:
type: string
description: |
The query to search for.
example: John Doe
externalApplicationId:
type: string
description: |
The external application ID.
example: CR1234567890
first:
type: number
description: |
The number of applications to search for
default: 10
example: 20
after:
type: string
description: |
The applicant ID.
example: 7cfeb443-8429-419c-a247-61235240dadb
retailerId:
type: string
description: |
The applications for a certain retailer
creditorId:
type: string
description: |
The applications for a certain creditor
responses:
'200':
description: The response of the application search
content:
application/json:
schema:
type: object
properties:
applicationIds:
type: array
items:
type: string
pageInfo:
type: object
properties:
hasNextPage:
type: boolean
hasPreviousPage:
type: boolean
startCursor:
type: string
endCursor:
type: string
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
status:
type: integer
default: 400
message:
type: string
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
status:
type: integer
default: 401
security:
- application_apiKey: []
/applications/{applicationId}/credit-file:
post:
summary: Create a credit file
description: >-
Add an existing credit file to an application by passing in the xml file
pull from a bureau provider.
tags:
- applications
parameters:
- in: header
name: X-CreditApp-Retailer-ID
schema:
type: string
format: uuid
required: false
- name: applicationId
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
type: object
properties:
applicantId:
type: string
description: |
The applicant ID.
example: 7cfeb443-8429-419c-a247-61235240dadb
equifaxXML:
description: |
The applicant Equifax credit file xml
type: string
example: >-
integrationId:
description: |
The integration id, required for integrations
type: string
example: 7cfeb443-8429-419c-a247-61235240dadb
requestId:
description: |
The request id, required for integrations
type: string
example: 7cfeb443-8429-419c-a247-61235240dadb
required:
- applicantId
- equifaxXML
responses:
'200':
description: Uploads a credit file
content:
application/json:
schema:
type: object
properties:
documentId:
type: string
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
status:
type: integer
default: 400
message:
type: string
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
status:
type: integer
default: 401
security:
- application_apiKey: []
/applications/{applicationId}/credit-file/{applicantId}/request:
post:
summary: Request a credit file
description: >-
Request a credit file to be pulled from a bureau provider using the
dealer credentials. This endpoint should be called before the Get a
Credit File Endpoint (GET
/applications/:applicationId/credit-file/:applicantId)
tags:
- applications
parameters:
- in: header
name: X-CreditApp-Retailer-ID
schema:
type: string
format: uuid
required: false
- name: applicationId
in: path
required: true
schema:
type: string
- name: applicantId
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
type: object
properties:
source:
type: string
enum:
- EQUIFAX
description: |
The source of the credit file.
example: EQUIFAX
requestId:
type: string
description: |
The request ID.
example: 7cfeb443-8429-419c-a247-61235240dadb
required:
- source
responses:
'202':
description: Pulling credit file, poll for result
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
status:
type: integer
default: 400
message:
type: string
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
status:
type: integer
default: 401
security:
- application_apiKey: []
/applications/{applicationId}/credit-file/{applicantId}:
get:
summary: Get a credit file
description: >-
Get a credit file that has been previously pulled (requested) from a
bureau provider using the dealer credentials. This endpoint should be
called after the Request a Credit File Endpoint (POST
/applications/:applicationId/credit-file/:applicantId/request)
tags:
- applications
parameters:
- in: header
name: X-CreditApp-Retailer-ID
schema:
type: string
format: uuid
required: false
- name: applicationId
in: path
required: true
schema:
type: string
- name: applicantId
in: path
required: true
schema:
type: string
responses:
'200':
description: Pulling credit file, poll for result
content:
application/json:
schema:
$ref: '#/components/schemas/application_creditFile'
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
status:
type: integer
default: 400
message:
type: string
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
status:
type: integer
default: 401
'404':
description: Not Found
content:
application/json:
schema:
type: object
properties:
status:
type: integer
default: 404
message:
type: string
security:
- application_apiKey: []
/applications/{applicationId}/applicants/{applicantId}/todos:
get:
summary: Get an applicant link todos
tags:
- applications
parameters:
- in: header
name: X-CreditApp-Retailer-ID
schema:
type: string
format: uuid
required: false
- in: header
name: X-CreditApp-Creditor-ID
schema:
type: string
format: uuid
required: false
- name: applicationId
in: path
required: true
schema:
type: string
- name: applicantId
in: path
required: true
schema:
type: string
responses:
'200':
description: Todo list
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: string
format: uuid
applicantId:
type: string
format: uuid
applicationId:
type: string
format: uuid
status:
type: string
enum:
- PENDING
- COMPLETED
- INCOMPLETE
- HIDDEN
- RE_REQUESTED
- PROCESSING
category:
type: string
enum:
- INCOME
- BANK_ACCOUNT
- SIN
- IDV
- SECONDARY_IDV
- IDENTITY
- APPLICATION
- CONSENT_TO_PULL_CREDIT
documentTemplateId:
type: string
requestedAt:
type: string
format: date-time
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
status:
type: integer
default: 400
message:
type: string
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
status:
type: integer
default: 401
'404':
description: Not Found
content:
application/json:
schema:
type: object
properties:
status:
type: integer
default: 404
message:
type: string
security:
- application_apiKey: []
post:
summary: Create an applicant link todo
tags:
- applications
parameters:
- in: header
name: X-CreditApp-Retailer-ID
schema:
type: string
format: uuid
required: false
- in: header
name: X-CreditApp-Creditor-ID
schema:
type: string
format: uuid
required: false
- name: applicationId
in: path
required: true
schema:
type: string
- name: applicantId
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
documentTemplateId:
type: string
enum:
- BANK_ACCOUNT
- BANK_STATEMENT
- PAYSTUB
- LETTER_OF_EMPLOYMENT
- NOTICE_OF_ASSESSMENT
- SIN
- IDV
- SECONDARY_IDV
description: >
The document template ID. A custom template id can be used
to request a custom document from the applicant.
title:
type: string
description: >
The title of the todo. This is only required if a custom
document is requested.
security:
- application_apiKey: []
/applications/{applicationId}/link/send:
post:
summary: Set the applicant link preference
tags:
- applications
parameters:
- in: header
name: X-CreditApp-Retailer-ID
schema:
type: string
format: uuid
required: false
- in: header
name: X-CreditApp-Creditor-ID
schema:
type: string
format: uuid
required: false
- name: applicationId
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
customerLinkPreference:
type: string
enum:
- SEND
- DO_NOT_SEND
description: >
Set the customer link preference. If the application is not
submitted to any creditors, the customer link preference can
be set to DO_NOT_SEND. If the application is submitted it
cannot be set to DO_NOT_SEND anymore.
required:
- customerLinkPreference
responses:
'200':
description: The response of the application
content:
application/json:
schema:
type: object
properties:
status:
type: string
enum:
- SENT
- NOT_SENT
- NOT_SUBMITTED
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
status:
type: integer
default: 400
message:
type: string
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
status:
type: integer
default: 401
security:
- application_apiKey: []
/applications/{applicationId}/credit-file-pull-failed:
post:
summary: Report failure in fetching credit file
tags:
- applications
parameters:
- in: header
name: X-CreditApp-Retailer-ID
schema:
type: string
format: uuid
required: false
- name: applicationId
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
type: object
properties:
applicantId:
type: string
description: |
The applicant ID.
example: 7cfeb443-8429-419c-a247-61235240dadb
integrationId:
description: |
The integration id, required for integrations
type: string
example: 7cfeb443-8429-419c-a247-61235240dadb
requestId:
description: |
The request id, required for integrations
type: string
example: 7cfeb443-8429-419c-a247-61235240dadb
failureReason:
description: |
The reason for failure (if available)
type: string
example: Credentials are not valid
required:
- applicantId
responses:
'200':
description: Uploads a credit file
content:
application/json:
schema:
type: object
properties:
documentId:
type: string
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
status:
type: integer
default: 400
message:
type: string
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
status:
type: integer
default: 401
security:
- application_apiKey: []
/applications/{applicationId}/filter-results:
get:
summary: Get the results of the application filters
tags:
- applications
parameters:
- in: header
name: X-CreditApp-Retailer-ID
schema:
type: string
format: uuid
required: false
- name: applicationId
in: path
required: true
schema:
type: string
responses:
'200':
description: Gets the result of the application filters
content:
application/json:
schema:
type: array
items:
type: object
properties:
creditorId:
description: The id of the creditor that the rules are processing for
example: c8e4cd75-7f66-49dc-b44a-076eb409ea0b
type: string
applicationId:
description: >-
The id of the application that the rules are processing
for
example: 74b5a233-06a2-49aa-9dfe-8311c02d06eb
type: string
preCreditFilterStatus:
description: >-
The status of the pre credit filter rule for a creditor
on the specified application
example: SUCCEEDED
type: string
enum:
- FAILED
- SUCCEEDED
- PENDING
- NOT_RUN
postCreditFilterStatus:
description: >-
The status of the post credit filter rule for a creditor
on the specified application
example: SUCCEEDED
type: string
enum:
- FAILED
- SUCCEEDED
- PENDING
- NOT_RUN
preCreditFilterFailureReasons:
description: The reason for the pre credit filter rule failing
example: []
type: array
items:
type: string
postCreditFilterFailureReasons:
description: The reason for the post credit filter rule failing
example: []
type: array
items:
type: string
isCreditorMapped:
description: >-
Indicates if the creditor is mapped to retailer. If
false, the application will not be submitted to the
creditor.
example: true
type: boolean
required:
- creditorId
- applicationId
- status
- advancedStatus
- failureReasons
- advancedFailureReasons
security:
- application_apiKey: []
/applications/{applicationId}/submit:
post:
summary: Submit an application to one or more creditors
tags:
- applications
parameters:
- in: header
name: X-CreditApp-Retailer-ID
schema:
type: string
format: uuid
required: false
- in: header
name: X-CreditApp-Creditor-ID
schema:
type: string
format: uuid
required: false
- name: applicationId
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
type: object
properties:
creditorIds:
type: array
items:
type: string
description: >
The creditor IDs. NOTE: creditor ids from the filter-results
endpoint that have the isCreditorMapped set to false cannot
be included in this list.
example:
- 7cfeb443-8429-419c-a247-61235240dadb
submittedBy:
type: string
description: >
The retailer user ID of the user who submitted the
application.
example: 7cfeb443-8429-419c-a247-61235240dadb
primaryApplicantId:
type: string
description: |
The primary applicant ID.
example: 7cfeb443-8429-419c-a247-61235240dadb
coApplicantId:
type: string
description: |
The co-applicant ID.
example: 7cfeb443-8429-419c-a247-61235240dadb
acceptAntiSpamConsent:
type: boolean
description: |
Indicates if the applicant(s) accepts the anti-spam consent.
example: true
creditConsent:
type: boolean
description: |
Indicates if the applicant(s) accepts the credit consent.
example: true
required:
- creditorIds
- primaryApplicantId
- submittedBy
- acceptAntiSpamConsent
- creditConsent
responses:
'204':
description: Submits a credit application to one or more creditors
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
status:
type: integer
default: 400
message:
type: string
'401':
description: Unauthorized
security:
- application_apiKey: []
/applications/{applicationId}/reference-number:
post:
summary: Set application reference number
description: >-
Allows a creditor integration to set/update an application's reference
number.
tags:
- applications
parameters:
- in: header
name: X-CreditApp-Creditor-ID
schema:
type: string
format: uuid
required: false
- name: applicationId
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
referenceNumber:
type: string
description: The creditor's reference number for this application.
required:
- referenceNumber
responses:
'204':
description: Reference number set
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
status:
type: integer
default: 400
message:
type: string
'401':
description: Unauthorized
security:
- application_apiKey: []
/applications/{applicationId}:
get:
summary: Get a specific application
tags:
- applications
parameters:
- in: header
name: X-CreditApp-Retailer-ID
schema:
type: string
format: uuid
required: false
- name: applicationId
in: path
required: true
schema:
type: string
responses:
'200':
description: The response of the application
content:
application/json:
schema:
$ref: '#/components/schemas/application_ApplicationResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
status:
type: integer
default: 401
security:
- application_apiKey: []
put:
summary: Update an application
tags:
- applications
parameters:
- in: header
name: X-CreditApp-Retailer-ID
schema:
type: string
format: uuid
required: false
- name: applicationId
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
applicationType:
type: string
enum:
- APPROVAL
- PRE_APPROVAL
description: |
The type of application.
primaryApplicant:
type: object
properties:
applicantId:
type: string
description: >
The applicant ID. NOTE: This will become required in the
future
firstName:
type: string
middleName:
type: string
lastName:
type: string
dateOfBirth:
type: string
format: date
sin:
type: string
selfReportedCreditScore:
type: number
example: 700
description: |
The self reported credit score.
phoneNumber:
type: string
email:
type: string
languagePreference:
type: string
enum:
- EN
- FR
description: |
The applicant's language preference.
maritalStatus:
type: string
enum:
- SINGLE
- MARRIED
- DIVORCED
- WIDOWED
- SEPARATED
- COMMON_LAW
description: |
The applicant's marital status.
primaryAddress:
type: object
properties:
residenceType:
type: string
enum:
- RENT
- OWN_FREE_AND_CLEAR
- OWN_WITH_MORTGAGE
- OWN_MOBILE_HOME
- RESERVE_HOUSING
- WITH_PARENTS
- OTHER
description: |
The type of residence.
monthlyRentOrMortgage:
type: number
apartmentSuite:
type: string
streetNo:
type: string
streetName:
type: string
streetType:
type: string
direction:
type: string
enum:
- 'N'
- NE
- E
- SE
- S
- SW
- W
- NW
description: |
The direction.
city:
type: string
postalCode:
type: string
province:
type: string
enum:
- AB
- BC
- MB
- NB
- NL
- NS
- NT
- NU
- 'ON'
- PE
- QC
- SK
- YT
description: |
The province.
yearsAtAddress:
type: number
monthsAtAddress:
type: number
poBoxNumber:
type: string
addressType:
type: string
enum:
- STREET
- PO_BOX
description: |
The type of address.
addressHistory:
type: array
items:
type: object
properties:
residenceType:
type: string
enum:
- RENT
- OWN_FREE_AND_CLEAR
- OWN_WITH_MORTGAGE
- OWN_MOBILE_HOME
- RESERVE_HOUSING
- WITH_PARENTS
- OTHER
description: |
The type of residence.
monthlyRentOrMortgage:
type: number
apartmentSuite:
type: string
streetNo:
type: string
streetName:
type: string
streetType:
type: string
direction:
type: string
enum:
- 'N'
- NE
- E
- SE
- S
- SW
- W
- NW
description: |
The direction.
city:
type: string
postalCode:
type: string
province:
type: string
enum:
- AB
- BC
- MB
- NB
- NL
- NS
- NT
- NU
- 'ON'
- PE
- QC
- SK
- YT
description: |
The province.
yearsAtAddress:
type: number
monthsAtAddress:
type: number
poBoxNumber:
type: string
addressType:
type: string
enum:
- STREET
- PO_BOX
description: |
The type of address.
noPreviousAddress:
type: boolean
description: |
Indicates if the applicant has no previous address.
primaryEmployment:
type: object
properties:
type:
type: string
enum:
- AT_HOME
- EXECUTIVE
- LABOURER
- MANAGEMENT
- OFFICE_STAFF
- OTHER
- PRODUCTION
- PROFESSIONAL
- RETIRED
- SALES
- SELF_EMPLOYED
- SERVICE
- STUDENT
- TRADES
- UNEMPLOYED
description: |
The type of employment.
status:
type: string
enum:
- FULL_TIME
- FULL_TIME_PROBATION
- PART_TIME
- PART_TIME_CASUAL
- RETIRED
- SEASONAL_SUMMER
- SEASONAL_WINTER
- SELF_EMPLOYED
- UNEMPLOYED
description: |
The employment status.
grossIncome:
type: number
frequency:
type: string
enum:
- BI_WEEKLY
- MONTHLY
- SEMI_MONTHLY
- WEEKLY
- YEARLY
description: |
The income frequency.
apartmentSuite:
type: string
streetNo:
type: string
streetName:
type: string
streetType:
type: string
direction:
type: string
enum:
- 'N'
- NE
- E
- SE
- S
- SW
- W
- NW
description: |
The direction.
city:
type: string
province:
type: string
enum:
- AB
- BC
- MB
- NB
- NL
- NS
- NT
- NU
- 'ON'
- PE
- QC
- SK
- YT
description: |
The province.
postalCode:
type: string
employerName:
type: string
occupation:
type: string
employmentPhone:
type: string
yearsWorked:
type: number
monthsWorked:
type: number
additionalIncomeSources:
type: array
items:
type: object
properties:
type:
type: string
enum:
- CAR_ALLOWANCE
- CHILD_SUPPORT
- DISABILITY_PAYMENTS
- INVESTMENT_INCOME
- PENSIONS
- RENTAL_INCOME
- WORKERS_COMPENSATION
- OTHER
description: |
The type of additional income.
grossIncome:
type: number
frequency:
type: string
enum:
- BI_WEEKLY
- MONTHLY
- SEMI_MONTHLY
- WEEKLY
- YEARLY
description: |
The income frequency.
description:
type: string
description: |
Description for other income source.
required:
- type
- grossIncome
- frequency
nullable: true
employmentHistory:
type: array
items:
type: object
properties:
type:
type: string
enum:
- AT_HOME
- EXECUTIVE
- LABOURER
- MANAGEMENT
- OFFICE_STAFF
- OTHER
- PRODUCTION
- PROFESSIONAL
- RETIRED
- SALES
- SELF_EMPLOYED
- SERVICE
- STUDENT
- TRADES
- UNEMPLOYED
description: |
The type of employment.
status:
type: string
enum:
- FULL_TIME
- FULL_TIME_PROBATION
- PART_TIME
- PART_TIME_CASUAL
- RETIRED
- SEASONAL_SUMMER
- SEASONAL_WINTER
- SELF_EMPLOYED
- UNEMPLOYED
description: |
The employment status.
grossIncome:
type: number
frequency:
type: string
enum:
- BI_WEEKLY
- MONTHLY
- SEMI_MONTHLY
- WEEKLY
- YEARLY
description: |
The income frequency.
apartmentSuite:
type: string
streetNo:
type: string
streetName:
type: string
streetType:
type: string
direction:
type: string
enum:
- 'N'
- NE
- E
- SE
- S
- SW
- W
- NW
description: |
The direction.
city:
type: string
province:
type: string
enum:
- AB
- BC
- MB
- NB
- NL
- NS
- NT
- NU
- 'ON'
- PE
- QC
- SK
- YT
description: |
The province.
postalCode:
type: string
employerName:
type: string
occupation:
type: string
employmentPhone:
type: string
yearsWorked:
type: number
monthsWorked:
type: number
additionalIncomeSources:
type: array
items:
type: object
properties:
type:
type: string
enum:
- CAR_ALLOWANCE
- CHILD_SUPPORT
- DISABILITY_PAYMENTS
- INVESTMENT_INCOME
- PENSIONS
- RENTAL_INCOME
- WORKERS_COMPENSATION
- OTHER
description: |
The type of additional income.
grossIncome:
type: number
frequency:
type: string
enum:
- BI_WEEKLY
- MONTHLY
- SEMI_MONTHLY
- WEEKLY
- YEARLY
description: |
The income frequency.
description:
type: string
description: |
Description for other income source.
required:
- type
- grossIncome
- frequency
nullable: true
nullable: true
noPreviousEmployment:
type: boolean
description: |
Indicates if the applicant has no previous employment.
coApplicant:
type: object
properties:
applicantId:
type: string
description: >
The co-applicant ID. NOTE: This will become required in
the future
firstName:
type: string
middleName:
type: string
lastName:
type: string
relationship:
type: string
enum:
- COMMON_LAW
- EMPLOYER
- FRIEND
- IN_LAW
- OTHER
- PARENT
- SIBLING
- SPOUSE
description: |
The relationship.
dateOfBirth:
type: string
format: date
sin:
type: string
phoneNumber:
type: string
email:
type: string
languagePreference:
type: string
enum:
- EN
- FR
description: |
The applicant's language preference.
maritalStatus:
type: string
enum:
- SINGLE
- MARRIED
- DIVORCED
- WIDOWED
- SEPARATED
- COMMON_LAW
description: |
The applicant's marital status.
primaryAddress:
type: object
properties:
residenceType:
type: string
enum:
- RENT
- OWN_FREE_AND_CLEAR
- OWN_WITH_MORTGAGE
- OWN_MOBILE_HOME
- RESERVE_HOUSING
- WITH_PARENTS
- OTHER
description: |
The type of residence.
monthlyRentOrMortgage:
type: number
apartmentSuite:
type: string
streetNo:
type: string
streetName:
type: string
streetType:
type: string
direction:
type: string
enum:
- 'N'
- NE
- E
- SE
- S
- SW
- W
- NW
description: |
The direction.
city:
type: string
postalCode:
type: string
province:
type: string
enum:
- AB
- BC
- MB
- NB
- NL
- NS
- NT
- NU
- 'ON'
- PE
- QC
- SK
- YT
description: |
The province.
yearsAtAddress:
type: number
monthsAtAddress:
type: number
poBoxNumber:
type: string
addressType:
type: string
enum:
- STREET
- PO_BOX
description: |
The type of address.
addressHistory:
type: array
items:
type: object
properties:
residenceType:
type: string
enum:
- RENT
- OWN_FREE_AND_CLEAR
- OWN_WITH_MORTGAGE
- OWN_MOBILE_HOME
- RESERVE_HOUSING
- WITH_PARENTS
- OTHER
description: |
The type of residence.
monthlyRentOrMortgage:
type: number
apartmentSuite:
type: string
streetNo:
type: string
streetName:
type: string
streetType:
type: string
direction:
type: string
enum:
- 'N'
- NE
- E
- SE
- S
- SW
- W
- NW
description: |
The direction.
city:
type: string
postalCode:
type: string
province:
type: string
enum:
- AB
- BC
- MB
- NB
- NL
- NS
- NT
- NU
- 'ON'
- PE
- QC
- SK
- YT
description: |
The province.
yearsAtAddress:
type: number
monthsAtAddress:
type: number
poBoxNumber:
type: string
addressType:
type: string
enum:
- STREET
- PO_BOX
description: |
The type of address.
noPreviousAddress:
type: boolean
description: |
Indicates if the applicant has no previous address.
primaryEmployment:
type: object
properties:
type:
type: string
enum:
- AT_HOME
- EXECUTIVE
- LABOURER
- MANAGEMENT
- OFFICE_STAFF
- OTHER
- PRODUCTION
- PROFESSIONAL
- RETIRED
- SALES
- SELF_EMPLOYED
- SERVICE
- STUDENT
- TRADES
- UNEMPLOYED
description: |
The type of employment.
status:
type: string
enum:
- FULL_TIME
- FULL_TIME_PROBATION
- PART_TIME
- PART_TIME_CASUAL
- RETIRED
- SEASONAL_SUMMER
- SEASONAL_WINTER
- SELF_EMPLOYED
- UNEMPLOYED
description: |
The employment status.
grossIncome:
type: number
frequency:
type: string
enum:
- BI_WEEKLY
- MONTHLY
- SEMI_MONTHLY
- WEEKLY
- YEARLY
description: |
The income frequency.
apartmentSuite:
type: string
streetNo:
type: string
streetName:
type: string
streetType:
type: string
direction:
type: string
enum:
- 'N'
- NE
- E
- SE
- S
- SW
- W
- NW
description: |
The direction.
city:
type: string
province:
type: string
enum:
- AB
- BC
- MB
- NB
- NL
- NS
- NT
- NU
- 'ON'
- PE
- QC
- SK
- YT
description: |
The province.
postalCode:
type: string
employerName:
type: string
occupation:
type: string
employmentPhone:
type: string
yearsWorked:
type: number
monthsWorked:
type: number
additionalIncomeSources:
type: array
items:
type: object
properties:
type:
type: string
enum:
- CAR_ALLOWANCE
- CHILD_SUPPORT
- DISABILITY_PAYMENTS
- INVESTMENT_INCOME
- PENSIONS
- RENTAL_INCOME
- WORKERS_COMPENSATION
- OTHER
description: |
The type of additional income.
grossIncome:
type: number
frequency:
type: string
enum:
- BI_WEEKLY
- MONTHLY
- SEMI_MONTHLY
- WEEKLY
- YEARLY
description: |
The income frequency.
description:
type: string
description: |
Description for other income source.
required:
- type
- grossIncome
- frequency
nullable: true
employmentHistory:
type: array
items:
type: object
properties:
type:
type: string
enum:
- AT_HOME
- EXECUTIVE
- LABOURER
- MANAGEMENT
- OFFICE_STAFF
- OTHER
- PRODUCTION
- PROFESSIONAL
- RETIRED
- SALES
- SELF_EMPLOYED
- SERVICE
- STUDENT
- TRADES
- UNEMPLOYED
description: |
The type of employment.
status:
type: string
enum:
- FULL_TIME
- FULL_TIME_PROBATION
- PART_TIME
- PART_TIME_CASUAL
- RETIRED
- SEASONAL_SUMMER
- SEASONAL_WINTER
- SELF_EMPLOYED
- UNEMPLOYED
description: |
The employment status.
grossIncome:
type: number
frequency:
type: string
enum:
- BI_WEEKLY
- MONTHLY
- SEMI_MONTHLY
- WEEKLY
- YEARLY
description: |
The income frequency.
apartmentSuite:
type: string
streetNo:
type: string
streetName:
type: string
streetType:
type: string
direction:
type: string
enum:
- 'N'
- NE
- E
- SE
- S
- SW
- W
- NW
description: |
The direction.
city:
type: string
province:
type: string
enum:
- AB
- BC
- MB
- NB
- NL
- NS
- NT
- NU
- 'ON'
- PE
- QC
- SK
- YT
description: |
The province.
postalCode:
type: string
employerName:
type: string
occupation:
type: string
employmentPhone:
type: string
yearsWorked:
type: number
monthsWorked:
type: number
additionalIncomeSources:
type: array
items:
type: object
properties:
type:
type: string
enum:
- CAR_ALLOWANCE
- CHILD_SUPPORT
- DISABILITY_PAYMENTS
- INVESTMENT_INCOME
- PENSIONS
- RENTAL_INCOME
- WORKERS_COMPENSATION
- OTHER
description: |
The type of additional income.
grossIncome:
type: number
frequency:
type: string
enum:
- BI_WEEKLY
- MONTHLY
- SEMI_MONTHLY
- WEEKLY
- YEARLY
description: |
The income frequency.
description:
type: string
description: |
Optional description for the income source.
required:
- type
- grossIncome
- frequency
nullable: true
nullable: true
noPreviousEmployment:
type: boolean
description: |
Indicates if the applicant has no previous employment.
worksheet:
$ref: '#/components/schemas/application_worksheet'
required:
- applicationType
- primaryApplicant
responses:
'200':
description: The response of the application
content:
application/json:
schema:
$ref: '#/components/schemas/application_ApplicationResponse'
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
status:
type: integer
default: 400
message:
type: string
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
status:
type: integer
default: 401
security:
- application_apiKey: []
/applications/{applicationId}/income-document:
post:
summary: Upload income document to an application
tags:
- applications
parameters:
- in: header
name: X-CreditApp-Retailer-ID
schema:
type: string
format: uuid
required: false
- in: header
name: X-CreditApp-Creditor-ID
schema:
type: string
format: uuid
required: false
- name: applicationId
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
file:
type: string
description: |
Base64 encoded pdf or image file
responses:
'200':
description: The response of the application
content:
application/json:
schema:
$ref: '#/components/schemas/application_ApplicationResponse'
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
status:
type: integer
default: 400
message:
type: string
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
status:
type: integer
default: 401
security:
- application_apiKey: []
/applications/{applicationId}/print:
get:
summary: >-
Request a signed url for a pdf of the application details in the current
state
tags:
- applications
parameters:
- in: header
name: X-CreditApp-Retailer-ID
schema:
type: string
format: uuid
required: false
- in: path
name: applicationId
required: true
schema:
type: string
format: uuid
responses:
'200':
description: >-
Return a signed url for a pdf of the application details in the
current state
content:
application/json:
schema:
type: object
properties:
signPdfUrl:
type: string
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
status:
type: integer
default: 400
message:
type: string
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
status:
type: integer
default: 401
security:
- application_apiKey: []
/vehicle-search:
get:
summary: Get a vehicle by vin
tags:
- vehicles
parameters:
- in: header
name: X-CreditApp-Retailer-ID
schema:
type: string
format: uuid
required: false
- name: vin
in: query
required: true
schema:
type: string
- name: kilometers
in: query
required: true
schema:
type: string
- name: province
in: query
schema:
type: string
enum:
- AB
- BC
- MB
- NB
- NL
- NS
- NT
- NU
- 'ON'
- PE
- QC
- SK
- YT
default: AB
- name: frequency
in: query
schema:
type: string
enum:
- BI_WEEKLY
- MONTHLY
- SEMI_MONTHLY
- WEEKLY
- DEFAULT
default: DEFAULT
responses:
'200':
description: The response of the vehicle search
content:
application/json:
schema:
type: array
items:
type: object
properties:
vehicles:
type: array
items:
type: object
properties:
uvc:
type: string
year:
type: number
make:
type: string
model:
type: string
series:
type: string
style:
type: string
addOnOptions:
type: array
items:
type: object
properties:
auto:
type: boolean
name:
type: string
uoc:
type: string
deductOptions:
type: array
items:
type: object
properties:
auto:
type: boolean
name:
type: string
uoc:
type: string
required:
- uvc
- year
- make
- model
- series
- style
- addOnOptions
- deductOptions
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
status:
type: integer
default: 401
security:
- application_apiKey: []
/vehicle-autocomplete:
get:
summary: Autocomplete search for vehicles
tags:
- vehicles
parameters:
- in: header
name: X-CreditApp-Retailer-ID
schema:
type: string
format: uuid
required: false
- name: search
in: query
required: true
schema:
type: string
- name: limit
in: query
default: '10'
schema:
type: string
responses:
'200':
description: The response of the vehicle search
content:
application/json:
schema:
type: array
items:
type: object
properties:
vehicles:
type: array
items:
type: object
properties:
uvc:
type: string
year:
type: number
make:
type: string
model:
type: string
series:
type: string
style:
type: string
description:
type: string
required:
- uvc
- year
- make
- model
- series
- style
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
status:
type: integer
default: 401
security:
- application_apiKey: []
/applications/{applicationId}/creditors/{creditorId}/worksheet:
get:
summary: Get a specific application worksheet for a creditor
tags:
- applications
parameters:
- in: header
name: X-CreditApp-Retailer-ID
schema:
type: string
format: uuid
required: false
- name: applicationId
in: path
required: true
schema:
type: string
- name: creditorId
in: path
required: true
schema:
type: string
responses:
'200':
description: The creditor application worksheet
content:
application/json:
schema:
$ref: '#/components/schemas/creditor_WorksheetResponse'
put:
summary: Set a specific application worksheet for a creditor
tags:
- applications
description: |
Set the worksheet values for an application
parameters:
- in: header
name: X-CreditApp-Retailer-ID
schema:
type: string
format: uuid
required: false
- name: applicationId
in: path
required: true
schema:
type: string
- name: creditorId
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/creditor_WorksheetWithRequiredFields'
responses:
'200':
description: The response of the application
content:
application/json:
schema:
$ref: '#/components/schemas/creditor_WorksheetResponse'
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
status:
type: integer
default: 400
message:
type: string
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
status:
type: integer
default: 401
/creditors/{creditorId}/programs:
get:
summary: Get the programs for a creditor
tags:
- creditors
parameters:
- in: header
name: X-CreditApp-Retailer-ID
schema:
type: string
format: uuid
required: false
- name: creditorId
in: path
required: true
schema:
type: string
responses:
'200':
description: Gets the programs for a creditor
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
description: The id of the program
example: c8e4cd75-7f66-49dc-b44a-076eb409ea0b
type: string
title:
description: The title of the program
example: Program 1
type: string
tiers:
description: The tiers for the program
type: array
items:
type: object
properties:
id:
description: The id of the tier
example: c8e4cd75-7f66-49dc-b44a-076eb409ea0b
type: string
name:
description: The name of the tier
example: Tier 1
type: string
interestRateRange:
description: The interest rate range for the tier
type: object
properties:
from:
description: The minimum interest rate for the tier
example: 12.99
type: number
to:
description: The maximum interest rate for the tier
example: 15.99
type: number
maxAdvanceLTV:
description: The maximum advance LTV for the tier
example: 100
type: integer
maxAftermarketLTV:
description: The maximum aftermarket LTV for the tier
example: 100
type: integer
maxAllInLTV:
description: The maximum all in LTV for the tier
example: 100
type: integer
maxPayment:
description: The maximum payment for the tier
example: 1000
type: number
dealerReserve:
description: The dealer reserve for the tier
example: 300
type: number
creditorFee:
description: The creditor fee for the tier
example: 900
type: number
vehicleTermMatrix:
description: The vehicle term matrix for the program
type: array
items:
type: object
properties:
year:
description: The year of the vehicle
example: 2019
type: integer
data:
type: array
items:
type: object
properties:
term:
description: The term of the loan
example: 60
type: number
milage:
type: object
properties:
from:
description: The minimum milage for the term
example: 0
type: integer
to:
description: The maximum milage for the term
example: 100000
type: integer
vehicleConditionMatrix:
description: The vehicle condition matrix for the program
type: array
items:
type: object
properties:
year:
description: The year of the vehicle
example: 2019
type: number
extraClean:
milage:
type: object
properties:
from:
description: The minimum milage for the term
example: 0
type: integer
to:
description: The maximum milage for the term
example: 100000
type: integer
clean:
milage:
type: object
properties:
from:
description: The minimum milage for the term
example: 0
type: integer
to:
description: The maximum milage for the term
example: 100000
type: integer
average:
milage:
type: object
properties:
from:
description: The minimum milage for the term
example: 0
type: integer
to:
description: The maximum milage for the term
example: 100000
type: integer
rough:
milage:
type: object
properties:
from:
description: The minimum milage for the term
example: 0
type: integer
to:
description: The maximum milage for the term
example: 100000
type: integer
/applications/{applicationId}/creditors/{creditorId}/applicants/{applicantId}/identity-verification:
get:
summary: Get Identity Verification Results
description: >
Retrieves the identity verification comparison results for an applicant.
Returns both primary and secondary IDV results comparing the
creditor-submitted
applicant data against the government-issued ID data IDV provider.
The endpoint returns comparison results for:
- Name matching (exact comparison)
- Date of birth matching (exact comparison)
- Address matching (AI-powered fuzzy comparison)
operationId: getApplicantIdentityVerification
tags:
- identity-verification
parameters:
- name: applicationId
in: path
required: true
description: The unique identifier for the application
schema:
type: string
format: uuid
- name: creditorId
in: path
required: true
description: The unique identifier for the creditor
schema:
type: string
format: uuid
- name: applicantId
in: path
required: true
description: The unique identifier for the applicant
schema:
type: string
format: uuid
responses:
'200':
description: >
Identity verification results retrieved successfully.
Returns primary and/or secondary IDV results. Either can be null if
not submitted to this creditor.
content:
application/json:
schema:
type: object
properties:
primary:
$ref: '#/components/schemas/creditor_IdentityVerificationResult'
nullable: true
description: >-
Primary identity verification result (null if not
submitted to this creditor)
secondary:
$ref: '#/components/schemas/creditor_IdentityVerificationResult'
nullable: true
description: >-
Secondary identity verification result (null if not
performed or not submitted to this creditor)
required:
- primary
- secondary
examples:
primaryOnly:
summary: Primary IDV submitted
value:
primary:
applicationId: 550e8400-e29b-41d4-a716-446655440000
creditorId: 660e8400-e29b-41d4-a716-446655440001
applicantId: 770e8400-e29b-41d4-a716-446655440002
document:
type: DRIVERS_LICENSE
number: D1234567
country: CAN
releaseYear: '2018'
name: Ontario Driver's License
issueDate: '2020-06-15'
expiryDate: '2025-06-15'
barcode: PDF417_DATA_HERE
identity:
firstName: Jane
middleName: null
lastName: Doe
givenName: Jane
dateOfBirth: '1985-06-20'
address: |-
456 Oak Ave
Vancouver BC V6B 1A1
sex: F
height: 165 cm
images:
frontImageS3Path: idv/front-abc123.jpg
backImageS3Path: idv/back-abc123.jpg
faceImageS3Path: idv/face-abc123.jpg
isSubmitted: true
submittedAt: '2024-03-15T14:25:00Z'
secondary: null
'403':
description: Forbidden - Insufficient permissions or creditor ID mismatch
'404':
description: Not Found - No IDV has been submitted to this creditor yet
content:
application/json:
schema:
type: object
properties:
status:
type: integer
example: 403
message:
type: string
example: Access denied
/creditors:
get:
security:
- retailer_apiKey: []
summary: Get the creditors
tags:
- creditors
parameters:
- in: header
name: X-CreditApp-Retailer-ID
schema:
type: string
format: uuid
required: false
responses:
'200':
description: Get the creditors
content:
application/json:
schema:
type: array
items:
type: object
properties:
creditorId:
description: The id of the creditor mapped to the retailer
example: c8e4cd75-7f66-49dc-b44a-076eb409ea0b
type: string
creditorName:
description: The name of the creditor
example: QUANTIFI
type: string
shortName:
description: The abbreviated name of the creditor
example: QLI
type: string
displayName:
description: The display name of the creditor
example: Quantifi
type: string
bio:
description: The bio of the creditor
example: >-
Rewards Program: Earn an extra $100 with every funded
deal!
type: string
required:
- creditorId
- creditorName
/retailers:
get:
security:
- retailer_apiKey: []
summary: Get the retailer details
tags:
- retailers
parameters:
- in: header
name: X-CreditApp-Retailer-ID
schema:
type: string
format: uuid
required: false
responses:
'200':
description: Gets the details of a retailer
content:
application/json:
schema:
type: array
items:
type: object
properties:
retailerId:
description: The id of the retailer
example: c8e4cd75-7f66-49dc-b44a-076eb409ea0b
type: string
name:
description: The name of the retailer
example: Bobs motors
type: string
address:
description: The address of the retailer
example: 1234 5th Ave SW
type: string
city:
description: The city of the retailer
example: Calgary
type: string
province:
description: The province of the retailer
example: AB
type: string
postalCode:
description: The postal code of the retailer
example: T2P 3N9
type: string
country:
description: The country of the retailer
example: Canada
type: string
required:
- retailerId
- name
/users:
get:
security:
- retailer_apiKey: []
summary: Get the users under a retailer
tags:
- users
parameters:
- in: header
name: X-CreditApp-Retailer-ID
schema:
type: string
format: uuid
required: false
- in: query
name: skip
schema:
type: string
default: 0
- in: query
name: limit
schema:
type: string
default: 10
responses:
'200':
description: Gets a list of users for a retailer
content:
application/json:
schema:
type: array
items:
type: object
properties:
userId:
description: The id of the user
example: c8e4cd75-7f66-49dc-b44a-076eb409ea0b
type: string
firstName:
description: The first name of the user
example: John
type: string
lastName:
description: The last name of the user
example: Doe
type: string
email:
description: The email of the user
example: john.doe@bobsauto.com
type: string
phoneNumber:
description: The phone number of the user
example: '4039991234'
type: string
required:
- creditorId
- creditorName
/retailers/enable-integration:
post:
security:
- retailer_apiKey: []
summary: Enable integration for a retailer
description: >-
Enable integration for a retailer, this endpoint is used for interactive
login flow. The API key needs to be passed in the Authorization header.
tags:
- retailers
requestBody:
content:
application/json:
schema:
type: object
properties:
retailerId:
type: string
format: uuid
required:
- retailerId
responses:
'200':
description: The integration was enabled successfully
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
status:
type: integer
default: 400
message:
type: string
'401':
description: Unauthorized
'409':
description: Conflict - the integration is not in requested status to be enabled
content:
application/json:
schema:
type: object
properties:
status:
type: integer
default: 400
message:
type: string
/retailers/disable-integration:
post:
security:
- retailer_apiKey: []
summary: Disable integration for a retailer
description: Disable integration for a retailer.
tags:
- retailers
requestBody:
content:
application/json:
schema:
type: object
properties:
retailerId:
type: string
format: uuid
reason:
type: string
description: The reason integration is being disabled
example: >-
Third party is rejecting authentication, re-authentication
is required
required:
- retailerId
responses:
'200':
description: The integration was disabled successfully
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
status:
type: integer
default: 400
message:
type: string
'401':
description: Unauthorized
/retailers/integration-status:
post:
security:
- retailer_apiKey: []
summary: Set the status of an integration for a retailer
description: >-
Set the status of an integration. Integrations can use this endpoint to
set the integration enablement status. The API key needs to be passed in
the Authorization header.
tags:
- retailers
requestBody:
content:
application/json:
schema:
type: object
properties:
retailerId:
type: string
format: uuid
status:
type: string
enum:
- REQUESTED
- WAITING_FOR_SECOND_ACTIVATION_STEP
- FAILED_TO_ENABLE
required:
- retailerId
- status
responses:
'200':
description: The status for the integration was set successfully
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
status:
type: integer
default: 400
message:
type: string
'401':
description: Unauthorized
'422':
description: Unprocessable Entity
content:
application/json:
schema:
type: object
properties:
status:
type: integer
default: 400
message:
type: string
components:
securitySchemes:
CreditApp_apiKey:
type: apiKey
in: header
name: Authorization
description: |
Bearer authentication using an API key or access token.
Format: `Bearer `
auth_apiKey:
type: apiKey
in: header
name: Authorization
description: |
The API key to use for authentication.
application_apiKey:
type: apiKey
in: header
name: Authorization
description: |
Bearer authentication using an API key.
Format: `Bearer `
retailer_apiKey:
type: apiKey
in: header
name: Authorization
description: |
Bearer authentication using an API key.
Format: `Bearer `
schemas:
application_ApplicationResponse:
properties:
applicationId:
type: string
description: |
The application ID.
createdAt:
type: string
format: date-time
description: |
The date and time the application was created.
updatedAt:
type: string
format: date-time
description: |
The date and time the application was last updated.
assignedRetailerUserId:
type: string
format: uuid
description: >
The user ID of the retailer user that the application is assigned
to.
status:
type: string
enum:
- STARTED
- DRAFT
- SAVED
- SUBMITTED
- ARCHIVED
description: |
The application status.
hasCoApplicant:
type: boolean
description: |
Indicates if the application has a co-applicant.
applicationType:
type: string
enum:
- APPROVAL
- PRE_APPROVAL
description: |
The type of application.
source:
type: string
nullable: true
description: |
The source of the application.
isReadOnly:
type: boolean
description: |
Indicates if the application is read only.
primaryApplicant:
type: object
properties:
applicantId:
type: string
description: |
The applicant ID.
firstName:
type: string
middleName:
type: string
lastName:
type: string
dateOfBirth:
type: string
format: date
sin:
type: string
selfReportedCreditScore:
type: number
phoneNumber:
type: string
email:
type: string
addressHistory:
type: array
items:
type: object
properties:
id:
type: string
description: |
The address ID.
residenceType:
type: string
enum:
- RENT
- OWN_FREE_AND_CLEAR
- OWN_WITH_MORTGAGE
- OWN_MOBILE_HOME
- RESERVE_HOUSING
- WITH_PARENTS
- OTHER
description: |
The type of residence.
monthlyRentOrMortgage:
type: number
apartmentSuite:
type: string
streetNo:
type: string
streetName:
type: string
streetType:
type: string
direction:
type: string
enum:
- 'N'
- NE
- E
- SE
- S
- SW
- W
- NW
description: |
The direction.
city:
type: string
postalCode:
type: string
province:
type: string
enum:
- AB
- BC
- MB
- NB
- NL
- NS
- NT
- NU
- 'ON'
- PE
- QC
- SK
- YT
description: |
The province.
yearsAtAddress:
type: number
monthsAtAddress:
type: number
poBoxNumber:
type: string
addressType:
type: string
enum:
- STREET
- PO_BOX
description: |
The type of address.
noPreviousAddress:
type: boolean
description: |
Indicates if the applicant has no previous address.
employmentHistory:
type: array
items:
type: object
properties:
id:
type: string
description: |
The employment ID.
type:
type: string
enum:
- AT_HOME
- EXECUTIVE
- LABOURER
- MANAGEMENT
- OFFICE_STAFF
- OTHER
- PRODUCTION
- PROFESSIONAL
- RETIRED
- SALES
- SELF_EMPLOYED
- SERVICE
- STUDENT
- TRADES
- UNEMPLOYED
description: |
The type of employment.
status:
type: string
enum:
- FULL_TIME
- FULL_TIME_PROBATION
- PART_TIME
- PART_TIME_CASUAL
- RETIRED
- SEASONAL_SUMMER
- SEASONAL_WINTER
- SELF_EMPLOYED
- UNEMPLOYED
description: |
The employment status.
grossIncome:
type: number
frequency:
type: string
enum:
- BI_WEEKLY
- MONTHLY
- SEMI_MONTHLY
- WEEKLY
- YEARLY
description: |
The income frequency.
apartmentSuite:
type: string
streetNo:
type: string
streetName:
type: string
streetType:
type: string
direction:
type: string
enum:
- 'N'
- NE
- E
- SE
- S
- SW
- W
- NW
description: |
The direction.
city:
type: string
province:
type: string
enum:
- AB
- BC
- MB
- NB
- NL
- NS
- NT
- NU
- 'ON'
- PE
- QC
- SK
- YT
description: |
The province.
postalCode:
type: string
employerName:
type: string
occupation:
type: string
employmentPhone:
type: string
yearsWorked:
type: number
monthsWorked:
type: number
additionalIncomeSources:
type: array
items:
type: object
properties:
type:
type: string
enum:
- CAR_ALLOWANCE
- CHILD_SUPPORT
- DISABILITY_PAYMENTS
- INVESTMENT_INCOME
- PENSIONS
- RENTAL_INCOME
- WORKERS_COMPENSATION
- OTHER
description: |
The type of additional income.
grossIncome:
type: number
frequency:
type: string
enum:
- BI_WEEKLY
- MONTHLY
- SEMI_MONTHLY
- WEEKLY
- YEARLY
description: |
The income frequency.
nullable: true
nullable: true
noPreviousEmployment:
type: boolean
description: |
Indicates if the applicant has no previous employment.
coApplicant:
type: object
properties:
applicantId:
type: string
description: |
The applicant ID.
firstName:
type: string
middleName:
type: string
lastName:
type: string
relationship:
type: string
enum:
- COMMON_LAW
- EMPLOYER
- FRIEND
- IN_LAW
- OTHER
- PARENT
- SIBLING
- SPOUSE
description: |
The relationship.
dateOfBirth:
type: string
format: date
sin:
type: string
phoneNumber:
type: string
email:
type: string
addressHistory:
type: array
items:
type: object
properties:
id:
type: string
description: |
The address ID.
residenceType:
type: string
enum:
- RENT
- OWN_FREE_AND_CLEAR
- OWN_WITH_MORTGAGE
- OWN_MOBILE_HOME
- RESERVE_HOUSING
- WITH_PARENTS
- OTHER
description: |
The type of residence.
monthlyRentOrMortgage:
type: number
apartmentSuite:
type: string
streetNo:
type: string
streetName:
type: string
streetType:
type: string
direction:
type: string
enum:
- 'N'
- NE
- E
- SE
- S
- SW
- W
- NW
description: |
The direction.
city:
type: string
postalCode:
type: string
province:
type: string
enum:
- AB
- BC
- MB
- NB
- NL
- NS
- NT
- NU
- 'ON'
- PE
- QC
- SK
- YT
description: |
The province.
yearsAtAddress:
type: number
monthsAtAddress:
type: number
poBoxNumber:
type: string
addressType:
type: string
enum:
- STREET
- PO_BOX
description: |
The type of address.
noPreviousAddress:
type: boolean
description: |
Indicates if the applicant has no previous address.
employmentHistory:
type: array
items:
type: object
properties:
id:
type: string
description: |
The employment ID.
type:
type: string
enum:
- AT_HOME
- EXECUTIVE
- LABOURER
- MANAGEMENT
- OFFICE_STAFF
- OTHER
- PRODUCTION
- PROFESSIONAL
- RETIRED
- SALES
- SELF_EMPLOYED
- SERVICE
- STUDENT
- TRADES
- UNEMPLOYED
description: |
The type of employment.
status:
type: string
enum:
- FULL_TIME
- FULL_TIME_PROBATION
- PART_TIME
- PART_TIME_CASUAL
- RETIRED
- SEASONAL_SUMMER
- SEASONAL_WINTER
- SELF_EMPLOYED
- UNEMPLOYED
description: |
The employment status.
grossIncome:
type: number
frequency:
type: string
enum:
- BI_WEEKLY
- MONTHLY
- SEMI_MONTHLY
- WEEKLY
- YEARLY
description: |
The income frequency.
apartmentSuite:
type: string
streetNo:
type: string
streetName:
type: string
streetType:
type: string
direction:
type: string
enum:
- 'N'
- NE
- E
- SE
- S
- SW
- W
- NW
description: |
The direction.
city:
type: string
province:
type: string
enum:
- AB
- BC
- MB
- NB
- NL
- NS
- NT
- NU
- 'ON'
- PE
- QC
- SK
- YT
description: |
The province.
postalCode:
type: string
employerName:
type: string
occupation:
type: string
employmentPhone:
type: string
yearsWorked:
type: number
monthsWorked:
type: number
additionalIncomeSources:
type: array
items:
type: object
properties:
type:
type: string
enum:
- CAR_ALLOWANCE
- CHILD_SUPPORT
- DISABILITY_PAYMENTS
- INVESTMENT_INCOME
- PENSIONS
- RENTAL_INCOME
- WORKERS_COMPENSATION
- OTHER
description: |
The type of additional income.
grossIncome:
type: number
frequency:
type: string
enum:
- BI_WEEKLY
- MONTHLY
- SEMI_MONTHLY
- WEEKLY
- YEARLY
description: |
The income frequency.
nullable: true
noPreviousEmployment:
type: boolean
description: |
Indicates if the applicant has no previous employment.
worksheet:
type: object
properties:
salePrice:
type: number
description: |
The sales price.
cashDown:
type: number
description: |
The cash down amount.
rebate:
type: number
description: |
The rebate amount.
gst:
type: number
description: |
The GST amount.
pstHst:
type: number
description: |
The PST amount.
gstPercent:
type: number
description: |
The GST percentage.
pstHstPercent:
type: number
description: |
The PST percentage.
taxExempt:
type: boolean
description: |
Whether the applicant is tax exempt.
vehicle:
type: object
description: |
The worksheet vehicle.
properties:
vin:
type: string
description: |
The vehicle VIN.
odometer:
type: number
description: |
The vehicle odometer.
uvc:
type: string
description: |
The vehicle UVC.
year:
type: number
description: |
The vehicle year.
make:
type: string
description: |
The vehicle make.
model:
type: string
description: |
The vehicle model.
trim:
type: string
description: |
The vehicle trim.
series:
type: string
description: |
The vehicle series.
color:
type: string
description: |
The vehicle color.
carfaxClaims:
type: number
description: |
The number of carfax claims.
isZeroEmissionVehicle:
type: boolean
description: >
Indicates if the vehicle is a zero emission vehicle (PHEV,
EV). Impacts provincial taxes.
dealerAdminFee:
type: number
description: |
The dealer admin fee.
registrationFee:
type: number
description: |
The registration fee.
gapInsurance:
type: number
description: |
The gap insurance.
extServiceContract:
type: number
description: |
The extended service contract (warranty).
pstNotApplicableOnExServiceContract:
type: boolean
description: >
Indicates if the PST is not applicable on the extended service
contract.
firstPaymentDate:
type: string
format: date
description: |
The first payment date.
deliveryDate:
type: string
format: date
description: |
The delivery date.
tradeIn:
type: object
description: |
The worksheet trade-in.
properties:
vin:
type: string
description: |
The trade-in VIN.
odometer:
type: number
description: |
The trade-in odometer.
year:
type: number
description: |
The trade-in year.
make:
type: string
description: |
The trade-in make.
model:
type: string
description: |
The trade-in model.
allowance:
type: number
description: |
The trade-in allowance.
lienAmount:
type: number
description: |
The trade-in lien amount.
lienHolder:
type: string
description: |
The trade-in lien holder.
required:
- year
- make
- model
interestRate:
type: number
description: |
The interest rate.
term:
type: number
description: |
The term.
paymentFrequency:
type: string
enum:
- BI_WEEKLY
- MONTHLY
- SEMI_MONTHLY
- WEEKLY
required:
- vehicle
application_worksheet:
properties:
salePrice:
type: number
description: |
The sales price.
cashDown:
type: number
description: |
The cash down amount.
rebate:
type: number
description: |
The rebate amount.
gst:
type: number
description: |
The GST amount.
pstHst:
type: number
description: |
The PST amount.
gstPercent:
type: number
description: |
The GST percentage.
pstHstPercent:
type: number
description: |
The PST percentage.
taxExempt:
type: boolean
description: |
Whether the applicant is tax exempt.
vehicle:
type: object
description: |
The worksheet vehicle.
properties:
vin:
type: string
description: |
The vehicle VIN.
odometer:
type: number
description: |
The vehicle odometer.
uvc:
type: string
description: |
The vehicle UVC.
year:
type: number
description: |
The vehicle year.
make:
type: string
description: |
The vehicle make.
model:
type: string
description: |
The vehicle model.
trim:
type: string
description: |
The vehicle trim.
series:
type: string
description: |
The vehicle series.
color:
type: string
description: |
The vehicle color.
carfaxClaims:
type: number
description: |
The number of carfax claims.
addOns:
type: array
items:
type: string
deducts:
type: array
items:
type: string
isZeroEmissionVehicle:
type: boolean
description: >
Indicates if the vehicle is a zero emission vehicle (PHEV, EV).
Impacts provincial taxes.
dealerAdminFee:
type: number
description: |
The dealer admin fee.
registrationFee:
type: number
description: |
The registration fee.
gapInsurance:
type: number
description: |
The gap insurance.
extServiceContract:
type: number
description: |
The extended service contract (warranty).
pstNotApplicableOnExServiceContract:
type: boolean
description: >
Indicates if the PST is not applicable on the extended service
contract.
firstPaymentDate:
type: string
format: date
description: |
The first payment date.
deliveryDate:
type: string
format: date
description: |
The delivery date.
tradeIn:
type: object
description: |
The worksheet trade-in.
properties:
vin:
type: string
description: |
The trade-in VIN.
odometer:
type: number
description: |
The trade-in odometer.
year:
type: number
description: |
The trade-in year.
make:
type: string
description: |
The trade-in make.
model:
type: string
description: |
The trade-in model.
allowance:
type: number
description: |
The trade-in allowance.
lienAmount:
type: number
description: |
The trade-in lien amount.
lienHolder:
type: string
description: |
The trade-in lien holder.
required:
- vin
- year
- make
- model
interestRate:
type: number
description: |
The interest rate.
term:
type: number
description: |
The term.
paymentFrequency:
type: string
enum:
- BI_WEEKLY
- MONTHLY
- SEMI_MONTHLY
- WEEKLY
otherNonTaxable:
type: number
description: |
Other Non-Taxable amount
otherTaxable:
type: number
description: |
Other Taxable amount
otherNonTaxableDescription:
type: string
description: |
Other Non-Taxable description
otherTaxableDescription:
type: string
description: |
Other Taxable description
taxProvince:
type: string
enum:
- AB
- BC
- MB
- NB
- NL
- NS
- NT
- NU
- 'ON'
- PE
- QC
- SK
- YT
required:
- vehicle
application_creditFile:
properties:
id:
type: string
signedPdfUrl:
type: string
customerNumber:
type: string
language:
type: string
enum:
- EN
- FR
fileSinceDate:
type: string
format: date
lastActivityDate:
type: string
format: date
requestedDate:
type: string
format: date
bureau:
type: object
properties:
id:
type: string
name:
type: string
hitType:
type: string
enum:
- NO_CREDIT_FILE_REQUESTED
- HIT
- NO_HIT
- MANUAL_FILE
- CONSUMER_DECLARATION
- REFERRED_FILE
- CONTACT_BUREAU_COLLECTION_DEPARTMENT
- CREDIT_LOCK
subject:
type: object
properties:
firstName:
type: string
middleName:
type: string
lastName:
type: string
suffix:
type: string
sin:
type: string
dateOfBirth:
type: string
format: date
dateOfDeath:
type: string
format: date
otherNames:
type: array
items:
type: object
properties:
type:
type: string
enum:
- ALSO_KNOWN_AS
- FORMER_NAME
- LEGAL_NAME_CHANGE
firstName:
type: string
middleName:
type: string
lastName:
type: string
suffix:
type: string
addressHistory:
type: array
items:
type: object
properties:
dateReported:
type: string
format: date
streetNo:
type: string
streetName:
type: string
city:
type: string
province:
type: string
enum:
- AB
- BC
- MB
- NB
- NL
- NS
- NT
- NU
- 'ON'
- PE
- QC
- SK
- YT
postalCode:
type: string
employmentHistory:
type: array
items:
type: object
properties:
dateEmployed:
type: string
format: date
dateLeft:
type: string
format: date
employerName:
type: string
occupation:
type: string
city:
type: string
province:
type: string
enum:
- AB
- BC
- MB
- NB
- NL
- NS
- NT
- NU
- 'ON'
- PE
- QC
- SK
- YT
monthlyIncome:
type: number
bankruptcies:
type: array
items:
type: object
properties:
dateFiled:
type: string
format: date
court:
type: object
properties:
id:
type: string
name:
type: string
caseNumber:
type: string
type:
type: string
enum:
- INDIVIDUAL
- BUSINESS
filer:
type: string
enum:
- SUBJECT
- JOINT
disposition:
type: object
properties:
type:
type: string
enum:
- DISCHARGED
- UNDISCHARGED
- VOLUNTARY_DEPOSIT
- VOLUNTARY_DEPOSIT_CLOSED
- BANKRUPTCY_RECEIVING_ORDER
- BANKRUPTCY_ASSIGNMENT
- PROPOSAL_TO_CREDITORS
- DEBTOR_ASSISTANCE_POOL_ACT
- INVOLUNTARY
- PROPOSAL_UNDER_BANKRUPTCY_ACT_PAID
- DEBTOR_ASSISTANCE_POOL_ACT_PAID
- COURT_CONSOLIDATIONS_PAID
- COURT_CONSOLIDATIONS
- ORDERLY_PAYMENT_OF_DEBT
- ORDERLY_PAYMENT_OF_DEBT_DEFAULT
- ORDERLY_PAYMENT_OF_DEBT_PAID
- ORDERLY_PAYMENT_OF_DEBT_SETTLED
- VOLUNTARY
- CONSUMER_DEBT_COUNSELING
- CONSUMER_DEBT_COUNSELING_CLOSED
date:
type: string
format: date
liabilityAmount:
type: number
assetAmount:
type: number
narratives:
type: array
items:
type: string
enum:
- ABSOLUTE_DISCHARGE
- ASSIGNMENT
- SUMMARY_ASSIGNMENT
- PROPOSAL
- DISPOSITION_UNKNOWN
- DEFAULTED_PAYMENT_DEEMED_ANNULMENT
- NOTICE_OF_INTENTION
collections:
type: array
items:
type: object
properties:
type:
type: string
enum:
- PAID
- UNPAID
assignedDate:
type: string
format: date
agency:
type: object
properties:
id:
type: string
name:
type: string
agencyAccountNumber:
type: string
creditor:
type: object
properties:
accountNumberAndOrName:
type: string
industry:
type: string
reason:
type: string
enum:
- CHECKED
- OTHER
- PAID
- SETTLED
- UNKNOWN
originalAmount:
type: number
balanceAmount:
type: number
dateOfLastPayment:
type: string
format: date
datePaid:
type: string
format: date
narratives:
type: array
items:
type: string
enum:
- INCLUDED_IN_BANKRUPTCY
- INCLUDED_IN_OPD
- SUBJECT_DISPUTES_THIS_ACCOUNT
- SETTLEMENT_MADE
- INCLUDED_IN_VOLUNTARY_DEPOSIT
- CREDIT_COUNSELING
- INCLUDED_IN_CONSUMER_PROPOSAL
- INCLUDED_IN_CO_APPLICANTS_BANKRUPTCY
- CHILD_OR_FAMILY_SUPPORT_OBLIGATION
legalItems:
type: array
items:
type: object
properties:
type:
type: string
enum:
- UNSETTLED_JUDGMENT
- SATISFIED_JUDGMENT
dateFiled:
type: string
format: date
court:
type: object
properties:
id:
type: string
name:
type: string
caseNumber:
type: string
status:
type: string
enum:
- DISMISSED
- SATISFIED
- SETTLED
dateSatisfied:
type: string
format: date
amount:
type: number
defendant:
type: string
plaintiff:
type: string
lawyerNameAddress:
type: string
narratives:
type: array
items:
type: string
enum:
- INCLUDED_IN_BANKRUPTCY
- INCLUDED_IN_OPD
- SETTLEMENT_MADE
- DISPOSITION_UNKNOWN
- CREDIT_COUNSELING
- INCLUDED_IN_CONSUMER_PROPOSAL
- INCLUDED_IN_CO_APPLICANTS_BANKRUPTCY
securedLoans:
type: array
items:
type: object
properties:
dateFiled:
type: string
format: date
court:
type: object
properties:
id:
type: string
name:
type: string
creditor:
type: object
properties:
nameAddressAndAmount:
type: string
industry:
type: string
maturityDate:
type: string
format: date
narratives:
type: array
items:
type: string
enum:
- INCLUDED_IN_BANKRUPTCY
- MORTGAGE
- SECURITY_DISPOSITION_UNKNOWN
- SECURITY_DISCHARGED
trades:
type: array
items:
type: object
properties:
dateReported:
type: string
format: date
creditor:
type: object
properties:
id:
type: string
name:
type: string
phoneNumber:
type: string
accountNumber:
type: string
association:
type: string
enum:
- INDIVIDUAL
- JOINT
- UNDESIGNATED
- HAS_CO_SIGNER
- IS_CO_SIGNER
- TERMINATED
highCreditAmount:
type: number
paymentTermAmount:
type: number
balanceAmount:
type: number
pastDueAmount:
type: number
monthsReviewed:
type: number
dateOpened:
type: string
format: date
dateLastActivityOrPayment:
type: string
format: date
portfolioType:
type: string
enum:
- REVOLVING_OR_OPTION
- INSTALMENT
- OPEN_ACCOUNT
- LEASE_ACCOUNT
- LINE_OF_CREDIT
- MORTGAGE
paymentRate:
type: string
enum:
- TOO_NEW_TO_RATE
- PAID_AS_AGREED_AND_UP_TO_DATE
- NOT_MORE_THAN_ONE_PAYMENT_PAST_DUE
- NOT_MORE_THAN_TWO_PAYMENTS_PAST_DUE
- THREE_OR_MORE_PAYMENTS_PAST_DUE
- AT_LEAST_120_DAYS_OVERDUE_BUT_NOT_RATED_9
- MAKING_REGULAR_PAYMENTS_UNDER_CONSOLIDATION_ORDER
- REPOSSESSION
- BAD_DEBT_PLACED_FOR_COLLECTION
status:
type: string
enum:
- ACCOUNT_IS_INACTIVE
- LOST_OR_STOLEN_CARD
- CONTACT_MEMBER_FOR_RATE
- ADJUSTMENT_PENDING
- DISPUTE_RESOLUTION_PENDING
count30DaysPastDue:
type: number
count60DaysPastDue:
type: number
count90DaysPastDue:
type: number
previousHighPaymentRates:
type: array
items:
type: object
properties:
date:
type: string
format: date
rate:
type: string
enum:
- TOO_NEW_TO_RATE
- PAID_AS_AGREED_AND_UP_TO_DATE
- NOT_MORE_THAN_ONE_PAYMENT_PAST_DUE
- NOT_MORE_THAN_TWO_PAYMENTS_PAST_DUE
- THREE_OR_MORE_PAYMENTS_PAST_DUE
- AT_LEAST_120_DAYS_OVERDUE_BUT_NOT_RATED_9
- MAKING_REGULAR_PAYMENTS_UNDER_CONSOLIDATION_ORDER
- REPOSSESSION
- BAD_DEBT_PLACED_FOR_COLLECTION
narratives:
type: array
items:
type: string
enum:
- BUSINESS_VENTURE_SUBJECT_LIABLE
- AMOUNT_IN_PAYMENT_COLUMN_IS_ON_A_WEEKLY_BASIS
- INCLUDED_IN_BANKRUPTCY
- INCLUDED_IN_OPD
- VOLUNTARY_REPOSSESSION
- INVOLUNTARY_REPOSSESSION
- AUTO_LOAN
- COMMERCIAL_LOAN_ACCOUNT
- ACCOUNT_ASSIGNED_TO_THIRD_PARTY_FOR_COLLECTION
- HOME_IMPROVEMENT_LOAN
- CLOSED_AT_CONSUMERS_REQUEST
- PERSONAL_LOAN
- CLOSED_BY_CREDIT_GRANTOR
- SECURED_LOAN
- PERSONAL_LINE_OF_CREDIT
- AMOUNT_IN_HC_COLUMN_IS_CREDIT_LIMIT
- NO_ACTIVITY_UPDATE_SINCE_DATE_REPORTED
- SUBJECT_DISPUTES_THIS_ACCOUNT
- TRANSFERRED_OR_SOLD
- PAID_CREDIT_LINE_CLOSED
- CREDIT_LINE_CLOSED
- NOTE_LOAN
- INACTIVE_ACCOUNT
- SETTLEMENT_MADE
- ACCOUNT_BEING_PAID_ON_REDUCED_PAYMENT
- LEASE_ACCOUNT
- SUBJECT_HAS_AN_ENDORSER_GUARANTOR
- STUDENT_LOAN
- CONDITIONAL_SALES
- LOAN_WAS_PAID_OUT_BY_A_THIRD_PARTY
- HAS_CO_SIGNER
- IS_A_CO_SIGNER
- WRITTEN_OFF
- SUBJECT_IS_AN_ENDORSER_GUARANTOR
- REGULAR_PAYMENTS_PRESENTLY_BEING_MADE
- DEMAND_LOAN
- FARM_AGRI_LOAN
- INCLUDED_IN_VOLUNTARY_DEPOSIT
- PAID_OUT_IN_FULL_BY_CO_SIGNER
- PAYMENTS_ASSUMED_BY_THIRD_PARTY
- INTERNAL_COLLECTION
- CREDIT_COUNSELING
- CUSTOMER_UNABLE_TO_LOCATE_CONSUMER
- PROMISSORY_NOTE
- DUE_TO_NSF_CHEQUES
- PREPAID
- ACCOUNT_PAID
- MORTGAGE
- BALANCE_PAID_BY_INSURANCE_COMPANY
- PAYMENT_BEING_MADE_BY_INSURANCE
- PAID_BY_GOVERNMENT
- REFINANCED
- SEMI_ANNUAL_PAYMENTS
- MONTHLY_PAYMENTS
- BI_WEEKLY_PAYMENTS
- WEEKLY_PAYMENTS
- QUARTERLY_PAYMENTS
- ANNUAL_PAYMENTS
- REDEEMED_REPOSSESSION
- DISPUTE_RESOLUTION_PENDING
- LEASE_EARLY_TERMINATION_BY_DEFAULT
- RSP_LOAN
- FORECLOSURE
- POWER_OF_SALE
- QUIT_CLAIM
- FORFEIT_OF_DEED_IN_LIEU_OF_FORECLOSURE
- US_DOLLAR_ACCOUNT
- SUBJECT_NO_LONGER_ASSOCIATED_WITH_ACCOUNT
- UPDATE_FREEZE_REQUESTED_BY_CREDIT_GRANTOR
- NOT_INCLUDED_IN_BANKRUPTCY
- INTEREST_PAYMENT_ONLY
- SEMI_MONTHLY_PAYMENTS
- BI_MONTHLY_PAYMENTS
- SINGLE_PAYMENT_LOAN
- DEFERRED_PAYMENT
- STUDENT_LINE_OF_CREDIT
- SECOND_MORTGAGE
- ACCOUNT_CLOSED
- MONTHS_REVIEWED_IS_GREATER_THAN_24
- FORECLOSURE_PROCEEDING_STARTED
- INCLUDED_IN_CONSUMER_PROPOSAL
- INCLUDED_IN_CO_APPLICANTS_BANKRUPTCY
- AFFECTED_BY_NATURAL_OR_DECLARED_DISASTER
- CORPORATE_CREDIT_CARD
- CHILD_FAMILY_SUPPORT_OBLIGATION
- CONSOLIDATION_LOAN
- ACTIVE_MILITARY_DUTY
- A_PORTION_OF_THE_BALANCE_MAY_REVOLVE
- FIXED_PAYMENT_AMOUNT
- HYBRID_ACCOUNT
- HOME_EQUITY
- CREDIT_LINE_SUSPENDED
- ACCOUNT_ASSUMED_BY_ANOTHER_PARTY
- OVER_LIMIT_PAYMENT_RECEIVED
- GUARANTEED_STUDENT_LOAN
- INTEREST_RELIEF
- INTEREST_RELIEF_PAID_BY_GOVERNMENT
- UNSECURED
- INSURED
- UNINSURED
- COLLATERAL_MORTGAGE
- REAL_ESTATE_SECURED
- REVERSE_MORTGAGE
- RENTAL_AGREEMENT
localInquiries:
type: array
items:
type: object
properties:
date:
type: string
format: date
customer:
type: object
properties:
id:
type: string
name:
type: string
phoneNumber:
type: string
foreignInquiries:
type: array
items:
type: object
properties:
date:
type: string
format: date
memberNameAndNumber:
type: string
industry:
type: string
specialServices:
type: array
items:
type: object
properties:
type:
type: string
enum:
- LOCATE
- INQUIRY_ALERT
- CONSUMER_INTERVIEW
- ALERT_SERVICE
- FILE_INCOMPLETE
- LOCAL_LOCATE
- CONTACT_BUREAU
- LOST_OR_STOLEN_WALLET
dateReported:
type: string
format: date
customer:
type: object
properties:
id:
type: string
name:
type: string
phoneNumber:
type: string
consumerStatements:
type: array
items:
type: object
properties:
dateReported:
type: string
format: date
dateToBePurged:
type: string
format: date
statement:
type: string
scores:
type: array
items:
type: object
properties:
number:
type: number
sign:
type: string
value:
type: string
narratives:
type: array
items:
type: string
reasons:
type: array
items:
type: string
rejectCodes:
type: array
items:
type: string
creditor_ApplicationResponse:
properties:
applicationId:
type: string
description: |
The application ID.
createdAt:
type: string
format: date-time
description: |
The date and time the application was created.
updatedAt:
type: string
format: date-time
description: |
The date and time the application was last updated.
status:
type: string
enum:
- STARTED
- DRAFT
- SAVED
- SUBMITTED
- ARCHIVED
description: |
The application status.
hasCoApplicant:
type: boolean
description: |
Indicates if the application has a co-applicant.
applicationType:
type: string
enum:
- APPROVAL
- PRE_APPROVAL
description: |
The type of application.
primaryApplicant:
type: object
properties:
applicantId:
type: string
description: |
The applicant ID.
firstName:
type: string
middleName:
type: string
lastName:
type: string
dateOfBirth:
type: string
format: date
sin:
type: string
phoneNumber:
type: string
email:
type: string
addressHistory:
type: array
items:
type: object
properties:
id:
type: string
description: |
The address ID.
residenceType:
type: string
enum:
- RENT
- OWN_FREE_AND_CLEAR
- OWN_WITH_MORTGAGE
- OWN_MOBILE_HOME
- RESERVE_HOUSING
- WITH_PARENTS
- OTHER
description: |
The type of residence.
monthlyRentOrMortgage:
type: number
apartmentSuite:
type: string
streetNo:
type: string
streetName:
type: string
streetType:
type: string
direction:
type: string
enum:
- 'N'
- NE
- E
- SE
- S
- SW
- W
- NW
description: |
The direction.
city:
type: string
postalCode:
type: string
province:
type: string
enum:
- AB
- BC
- MB
- NB
- NL
- NS
- NT
- NU
- 'ON'
- PE
- QC
- SK
- YT
description: |
The province.
yearsAtAddress:
type: number
monthsAtAddress:
type: number
poBoxNumber:
type: string
addressType:
type: string
enum:
- STREET
- PO_BOX
description: |
The type of address.
employmentHistory:
type: array
items:
type: object
properties:
id:
type: string
description: |
The employment ID.
type:
type: string
enum:
- AT_HOME
- EXECUTIVE
- LABOURER
- MANAGEMENT
- OFFICE_STAFF
- OTHER
- PRODUCTION
- PROFESSIONAL
- RETIRED
- SALES
- SELF_EMPLOYED
- SERVICE
- STUDENT
- TRADES
- UNEMPLOYED
description: |
The type of employment.
status:
type: string
enum:
- FULL_TIME
- FULL_TIME_PROBATION
- PART_TIME
- PART_TIME_CASUAL
- RETIRED
- SEASONAL_SUMMER
- SEASONAL_WINTER
- SELF_EMPLOYED
- UNEMPLOYED
description: |
The employment status.
grossIncome:
type: number
frequency:
type: string
enum:
- BI_WEEKLY
- MONTHLY
- SEMI_MONTHLY
- WEEKLY
- YEARLY
description: |
The income frequency.
apartmentSuite:
type: string
streetNo:
type: string
streetName:
type: string
streetType:
type: string
direction:
type: string
enum:
- 'N'
- NE
- E
- SE
- S
- SW
- W
- NW
description: |
The direction.
city:
type: string
province:
type: string
enum:
- AB
- BC
- MB
- NB
- NL
- NS
- NT
- NU
- 'ON'
- PE
- QC
- SK
- YT
description: |
The province.
postalCode:
type: string
employerName:
type: string
occupation:
type: string
employmentPhone:
type: string
yearsWorked:
type: number
monthsWorked:
type: number
additionalIncomeSources:
type: array
items:
type: object
properties:
type:
type: string
enum:
- CAR_ALLOWANCE
- CHILD_SUPPORT
- DISABILITY_PAYMENTS
- INVESTMENT_INCOME
- PENSIONS
- RENTAL_INCOME
- WORKERS_COMPENSATION
- OTHER
description: |
The type of additional income.
grossIncome:
type: number
frequency:
type: string
enum:
- BI_WEEKLY
- MONTHLY
- SEMI_MONTHLY
- WEEKLY
- YEARLY
description: |
The income frequency.
nullable: true
nullable: true
required:
- firstName
- lastName
- dateOfBirth
- phoneNumber
- email
coApplicant:
type: object
properties:
applicantId:
type: string
description: |
The applicant ID.
firstName:
type: string
middleName:
type: string
lastName:
type: string
relationship:
type: string
enum:
- COMMON_LAW
- EMPLOYER
- FRIEND
- IN_LAW
- OTHER
- PARENT
- SIBLING
- SPOUSE
description: |
The relationship.
dateOfBirth:
type: string
format: date
sin:
type: string
phoneNumber:
type: string
email:
type: string
addressHistory:
type: array
items:
type: object
properties:
id:
type: string
description: |
The address ID.
residenceType:
type: string
enum:
- RENT
- OWN_FREE_AND_CLEAR
- OWN_WITH_MORTGAGE
- OWN_MOBILE_HOME
- RESERVE_HOUSING
- WITH_PARENTS
- OTHER
description: |
The type of residence.
monthlyRentOrMortgage:
type: number
apartmentSuite:
type: string
streetNo:
type: string
streetName:
type: string
streetType:
type: string
direction:
type: string
enum:
- 'N'
- NE
- E
- SE
- S
- SW
- W
- NW
description: |
The direction.
city:
type: string
postalCode:
type: string
province:
type: string
enum:
- AB
- BC
- MB
- NB
- NL
- NS
- NT
- NU
- 'ON'
- PE
- QC
- SK
- YT
description: |
The province.
yearsAtAddress:
type: number
monthsAtAddress:
type: number
poBoxNumber:
type: string
addressType:
type: string
enum:
- STREET
- PO_BOX
description: |
The type of address.
employmentHistory:
type: array
items:
type: object
properties:
id:
type: string
description: |
The employment ID.
type:
type: string
enum:
- AT_HOME
- EXECUTIVE
- LABOURER
- MANAGEMENT
- OFFICE_STAFF
- OTHER
- PRODUCTION
- PROFESSIONAL
- RETIRED
- SALES
- SELF_EMPLOYED
- SERVICE
- STUDENT
- TRADES
- UNEMPLOYED
description: |
The type of employment.
status:
type: string
enum:
- FULL_TIME
- FULL_TIME_PROBATION
- PART_TIME
- PART_TIME_CASUAL
- RETIRED
- SEASONAL_SUMMER
- SEASONAL_WINTER
- SELF_EMPLOYED
- UNEMPLOYED
description: |
The employment status.
grossIncome:
type: number
frequency:
type: string
enum:
- BI_WEEKLY
- MONTHLY
- SEMI_MONTHLY
- WEEKLY
- YEARLY
description: |
The income frequency.
apartmentSuite:
type: string
streetNo:
type: string
streetName:
type: string
streetType:
type: string
direction:
type: string
enum:
- 'N'
- NE
- E
- SE
- S
- SW
- W
- NW
description: |
The direction.
city:
type: string
province:
type: string
enum:
- AB
- BC
- MB
- NB
- NL
- NS
- NT
- NU
- 'ON'
- PE
- QC
- SK
- YT
description: |
The province.
postalCode:
type: string
employerName:
type: string
occupation:
type: string
employmentPhone:
type: string
yearsWorked:
type: number
monthsWorked:
type: number
additionalIncomeSources:
type: array
items:
type: object
properties:
type:
type: string
enum:
- CAR_ALLOWANCE
- CHILD_SUPPORT
- DISABILITY_PAYMENTS
- INVESTMENT_INCOME
- PENSIONS
- RENTAL_INCOME
- WORKERS_COMPENSATION
- OTHER
description: |
The type of additional income.
grossIncome:
type: number
frequency:
type: string
enum:
- BI_WEEKLY
- MONTHLY
- SEMI_MONTHLY
- WEEKLY
- YEARLY
description: |
The income frequency.
nullable: true
required:
- firstName
- lastName
- relationship
- dateOfBirth
- email
worksheet:
type: object
properties:
salePrice:
type: number
description: |
The sales price.
cashDown:
type: number
description: |
The cash down amount.
rebate:
type: number
description: |
The Rebate amount.
gst:
type: number
description: |
The GST amount.
pstHst:
type: number
description: |
The PST amount.
gstPercent:
type: number
description: |
The GST percentage.
pstHstPercent:
type: number
description: |
The PST percentage.
taxExempt:
type: boolean
description: |
Whether the applicant is tax exempt.
vehicle:
type: object
description: |
The worksheet vehicle.
properties:
vin:
type: string
description: |
The vehicle VIN.
odometer:
type: number
description: |
The vehicle odometer.
uvc:
type: string
description: |
The vehicle UVC.
year:
type: number
description: |
The vehicle year.
make:
type: string
description: |
The vehicle make.
model:
type: string
description: |
The vehicle model.
trim:
type: string
description: |
The vehicle trim.
series:
type: string
description: |
The vehicle series.
color:
type: string
description: |
The vehicle color.
carfaxClaims:
type: number
description: |
The number of carfax claims.
required:
- odometer
- uvc
dealerAdminFee:
type: number
description: |
The dealer admin fee.
registrationFee:
type: number
description: |
The registration fee.
gapInsurance:
type: number
description: |
The gap insurance.
extServiceContract:
type: number
description: |
The extended service contract (warranty).
pstNotApplicableOnExServiceContract:
type: boolean
description: >
Indicates if the PST is not applicable on the extended service
contract.
firstPaymentDate:
type: string
format: date
description: |
The first payment date.
deliveryDate:
type: string
format: date
description: |
The delivery date.
tradeIn:
type: object
description: |
The worksheet trade-in.
properties:
vin:
type: string
description: |
The trade-in VIN.
odometer:
type: number
description: |
The trade-in odometer.
year:
type: number
description: |
The trade-in year.
make:
type: string
description: |
The trade-in make.
model:
type: string
description: |
The trade-in model.
allowance:
type: number
description: |
The trade-in allowance.
lienAmount:
type: number
description: |
The trade-in lien amount.
lienHolder:
type: string
description: |
The trade-in lien holder.
required:
- year
- make
- model
interestRate:
type: number
description: |
The interest rate.
term:
type: number
description: |
The term.
paymentFrequency:
type: string
enum:
- BI_WEEKLY
- MONTHLY
- SEMI_MONTHLY
- WEEKLY
required:
- salePrice
- vehicle
- taxExempt
- gstPercent
- gst
- pstHstPercent
- pstHst
- firstPaymentDate
- deliveryDate
- interestRate
- term
- paymentFrequency
creditor_worksheet:
properties:
salePrice:
type: number
description: |
The sales price.
example: 23900
programId:
type: string
description: |
The program ID.
example: 535fef8e-00c5-483e-9093-2f12425108b9
tierId:
type: string
description: |
The tier ID.
example: f9d4ad68-1c3e-5e7e-ba07-ad73590250fb
cashDown:
type: number
description: |
The cash down amount.
example: 9100
rebate:
type: number
description: |
The rebate amount.
example: 150
gst:
type: number
description: |
The GST amount.
example: 300
pstHst:
type: number
description: |
The PST amount.
example: 2080
gstPercent:
type: number
description: |
The GST percentage.
example: 5
pstHstPercent:
type: number
description: |
The PST percentage.
example: 8
taxExempt:
type: boolean
description: |
Whether the applicant is tax exempt.
example: false
uvc:
type: string
description: >
The vehicle UVC this can be found by using the vehicle-search
endpoint.
example: '2023485125'
vehicle:
type: object
description: |
The worksheet vehicle.
properties:
vin:
type: string
description: |
The vehicle VIN.
odometer:
type: number
description: |
The vehicle odometer.
uvc:
type: string
description: |
The vehicle UVC.
year:
type: number
description: |
The vehicle year.
make:
type: string
description: |
The vehicle make.
model:
type: string
description: |
The vehicle model.
trim:
type: string
description: |
The vehicle trim.
series:
type: string
description: |
The vehicle series.
color:
type: string
description: |
The vehicle color.
carfaxClaims:
type: number
description: |
The number of carfax claims.
addOns:
type: array
items:
type: string
deducts:
type: array
items:
type: string
odometer:
type: number
description: |
The vehicle odometer in kilometers.
example: 119845
dealerAdminFee:
type: number
description: |
The dealer admin fee.
example: 1499
registrationFee:
type: number
description: |
The registration fee.
example: 100
creditorFee:
type: number
description: |
The creditor fee.
example: 500
gapInsurance:
type: number
description: |
The gap insurance.
example: 2100
extServiceContract:
type: number
description: |
The extended service contract (warranty).
example: 1300
pstNotApplicableOnExServiceContract:
type: boolean
description: >
Indicates if the PST is not applicable on the extended service
contract.
example: false
pstNotApplicableOnAhInsurance:
type: boolean
description: >
Indicates if the PST is not applicable on the accident and health
insurance.
example: false
pstNotApplicableOnLifeInsurance:
type: boolean
description: |
Indicates if the PST is not applicable on the credit life insurance.
example: false
pstNotApplicableOnGapInsurance:
type: boolean
description: |
Indicates if the PST is not applicable on the gap insurance.
example: false
firstPaymentDate:
type: string
format: date
description: |
The first payment date.
example: '2020-08-28'
deliveryDate:
type: string
format: date
description: |
The delivery date.
example: '2020-08-21'
otherNonTaxable:
type: number
description: |
The other non-taxable amount.
example: 0
otherTaxable:
type: number
description: |
The other taxable amount.
example: 0
otherNonTaxableDescription:
type: string
description: |
The other non-taxable description.
example: Other non-taxable description
otherTaxableDescription:
type: string
description: |
The other taxable description.
example: Other taxable description
tradeIn:
type: object
description: |
The worksheet trade-in.
properties:
vin:
type: string
description: |
The trade-in VIN.
example: 1FMCU0GD7JUB88886
odometer:
type: number
description: |
The trade-in odometer.
example: 119845
year:
type: number
description: |
The trade-in year.
example: 2018
make:
type: string
description: |
The trade-in make.
example: Ford
model:
type: string
description: |
The trade-in model.
example: Escape
allowance:
type: number
description: |
The trade-in allowance.
example: 10000
lienAmount:
type: number
description: |
The trade-in lien amount.
example: 5000
lienHolder:
type: string
description: |
The trade-in lien holder.
example: Ford Credit
required:
- uvc
- odometer
interestRate:
type: number
description: |
The interest rate.
example: 17.99
term:
type: number
description: |
The term.
example: 78
gpsFee:
type: number
description: |
The GPS fee.
example: 300
licenseFee:
type: number
description: |
The license fee.
example: 100
installationAndDeliveryFee:
type: number
description: |
The installation and delivery fee.
example: 300
ahInsuranceFee:
type: number
description: |
The accident and health insurance.
example: 250
lifeInsuranceFee:
type: number
description: |
The credit life insurance.
example: 70
paymentFrequency:
type: string
enum:
- BI_WEEKLY
- MONTHLY
- SEMI_MONTHLY
- WEEKLY
creditor_WorksheetWithRequiredFields:
allOf:
- $ref: '#/components/schemas/creditor_worksheet'
- type: object
required:
- vehicle
creditor_WorksheetResponse:
allOf:
- $ref: '#/components/schemas/creditor_worksheet'
- type: object
properties:
applicationId:
type: string
description: |
The application ID.
creditorId:
type: string
description: |
The creditor ID.
worksheetPayment:
type: number
description: |
The worksheet payment.
example: 500
totalFinancedAmount:
type: number
description: |
The total amount financed.
example: 20000
creditor_IdentityVerificationResult:
type: object
nullable: true
description: |
Identity verification results for an applicant.
Only returned if IDV has been submitted to this creditor.
Includes data extracted from government-issued ID.
properties:
applicationId:
type: string
format: uuid
description: The application identifier
creditorId:
type: string
format: uuid
description: The creditor identifier
applicantId:
type: string
format: uuid
description: The applicant identifier
document:
type: object
description: Government-issued document information
properties:
type:
type: string
nullable: true
description: Type of document (e.g., "DRIVERS_LICENSE", "PASSPORT")
example: DRIVERS_LICENSE
number:
type: string
nullable: true
description: Document number
example: D1234567
country:
type: string
nullable: true
description: Document issuing country code
example: CAN
releaseYear:
type: string
nullable: true
description: Year the document version was released
example: '2018'
name:
type: string
nullable: true
description: Full document name
example: Ontario Driver's License
issueDate:
type: string
format: date
nullable: true
description: Document issue date
example: '2020-06-15'
expiryDate:
type: string
format: date
nullable: true
description: Document expiry date
example: '2025-06-15'
barcode:
type: string
nullable: true
description: Raw barcode data from document
identity:
type: object
description: Identity information extracted from the government-issued document
properties:
firstName:
type: string
nullable: true
description: First name from document
example: John
middleName:
type: string
nullable: true
description: Middle name from document
example: Michael
lastName:
type: string
nullable: true
description: Last name from document
example: Smith
givenName:
type: string
nullable: true
description: Given name field from document
example: John Michael
dateOfBirth:
type: string
format: date
nullable: true
description: Date of birth from document
example: '1990-01-15'
address:
type: string
nullable: true
description: Address from document
example: |-
123 Main St
Toronto ON M5H 2N2
sex:
type: string
nullable: true
description: Sex/gender from document
example: M
height:
type: string
nullable: true
description: Height from document
example: 175 cm
images:
type: object
description: S3 paths to IDV images
properties:
frontImageS3Path:
type: string
nullable: true
description: S3 path to front of document image
backImageS3Path:
type: string
nullable: true
description: S3 path to back of document image
faceImageS3Path:
type: string
nullable: true
description: S3 path to applicant's face photo
isSubmitted:
type: boolean
description: Whether IDV has been submitted to this creditor
example: true
submittedAt:
type: string
format: date-time
nullable: true
description: Timestamp when IDV was submitted to this creditor
example: '2024-03-15T14:25:00Z'
required:
- applicationId
- creditorId
- applicantId
- document
- identity
- images
- isSubmitted