test(corpus): add remaining acme catalog fixtures

Add the remaining sanitized ACME catalog modules for multi-file corpus coverage.
This commit is contained in:
Mihaela Mihaljevic 2026-06-06 08:16:37 +02:00
parent 7c069dce66
commit aa74cf4332
268 changed files with 16662 additions and 0 deletions

View File

@ -0,0 +1,25 @@
openapi: 3.0.3
info:
title: Financial Institution Management API
version: 0.1.0
servers:
- url: 'https://api.example.com'
security:
- default: []
components:
securitySchemes:
default:
type: http
scheme: bearer
tags:
- name: Temp
paths:
/temps:
get:
description: Temporary endpoint to make lint pass
operationId: temp
tags:
- Temp
responses:
'200':
description: temp

View File

@ -0,0 +1,8 @@
type: string
enum:
- LeadCapHit
- DemandSubAccountClickCapHit
- BudgetCapHit
- ClickCapHit
description: |
The reason for which this demand sub account or static offer inventory cap event was created.

View File

@ -0,0 +1,11 @@
type: string
enum:
- BudgetCap
- ClickCap
- DemandSubAccountClickCap
- LeadCap
description: |
The type of the inventory cap.
For demand sub account caps, the values `DemandSubAccoutClickCap` and `LeadCap` are
allowed. For static offer caps, the values `ClickCap` and `BudgetCap` are allowed.

View File

@ -0,0 +1,6 @@
type: object
required:
- type
properties:
type:
$ref: ./capType.yml

View File

@ -0,0 +1,122 @@
type: object
required:
- id
- version
- demandSubAccountId
- capType
- demandSubAccountInventoryCapEvents
- startDate
- endDate
- createdAt
- createdByUuid
- updatedAt
- updatedByUuid
properties:
id:
type: integer
format: int64
description: |
A unique, internal identifier for this resource.
version:
type: integer
format: int32
description: |
Version number for the cap.
demandSubAccountId:
type: integer
format: int64
description: |
ID of the demand sub-account that corresponds to the cap.
capType:
$ref: ./capTypeWrapper.yml
leadCapAmount:
type: integer
format: int64
description: |
Amount of allowable lead attributions allowed for the cap.
If non-null, `clickCapAmount` and `budgetCapAmount` must be null.
currentAttributedLeads:
type: integer
format: int64
description: |
Current number of leads attributed to the cap within the given time window.
clickCapAmount:
type: integer
format: int64
description: |
Amount of allowable click attributions allowed for the cap.
If non-null, `leadCapAmount` and `budgetCapAmount` must be null.
currentAttributedClicks:
type: integer
format: int64
description: |
Current number of clicks attributed to the cap within the given time window.
budgetCapAmount:
type: number
format: float
description: |
Amount of allowable revenue attribution allowed for the cap.
If non-null, `clickCapAmount` and `leadCapAmount` must be null.
currentAttributedRevenue:
type: number
format: float
description: |
Current amount of revenue attributed to the cap within the given time window.
lastCalculatedAt:
type: string
format: date-time
description: |
Last time attributed `currentAttributedClicks`, `currentAttributedLeads`, and
`currentAttributedRevenue` were calculated.
demandSubAccountInventoryCapEvents:
type: array
items:
$ref: ./demandSubAccountInventoryCapEvent.yml
description: |
List containing events that represent when a cap was exhausted.
For caps that have naturally expired because their end date has reached,
we do not create a cap event.
startDate:
type: string
format: date
description: |
The start date for the window in which the cap should have been in force.
endDate:
type: string
format: date
description: |
The end date for the window in which the cap should have been in force.
createdAt:
type: string
format: date-time
description: |
When the resource was created.
createdByUuid:
type: string
format: uuid
description: |
The UUID of the access token that was used to create this resource.
updatedAt:
type: string
format: date-time
description: |
When the resource was updated.
updatedByUuid:
type: string
format: uuid
description: |
The UUID of the access token that was used to update this resource.
deletedAt:
type: string
format: date-time
description: |
When the resource was deleted.
deletedByUuid:
type: string
format: uuid
description: |
The UUID of the access token that was used to delete this resource.

View File

@ -0,0 +1,27 @@
type: object
required:
- demandSubAccountId
- capType
- startDate
- endDate
properties:
demandSubAccountId:
type: integer
format: int64
capType:
$ref: ./capType.yml
leadCapAmount:
type: integer
format: int64
clickCapAmount:
type: integer
format: int64
budgetCapAmount:
type: number
format: double
startDate:
type: string
format: date
endDate:
type: string
format: date

View File

@ -0,0 +1,31 @@
type: object
required:
- id
- demandSubAccountInventoryCapId
- capEventReason
- createdAt
properties:
id:
type: integer
format: int64
readOnly: true
description: |
A unique, internal identifier for this resource.
demandSubAccountInventoryCapId:
type: integer
format: int64
readOnly: true
description: |
The id of the demand sub account inventory cap corresponding to the event record.
capEventReason:
type: string
$ref: ./capEventReason.yml
readOnly: true
description: |
The reason why this inventory cap event was created.
createdAt:
type: string
format: date-time
readOnly: true
description: |
When the resource was created.

View File

@ -0,0 +1,18 @@
type: object
required:
- leadCapAmount
- clickCapAmount
- budgetCapAmount
- startDate
- endDate
properties:
leadCapAmount:
type: string
clickCapAmount:
type: string
budgetCapAmount:
type: string
startDate:
type: string
endDate:
type: string

View File

@ -0,0 +1,72 @@
type: object
required:
- id
- version
- subAccountId
- staticOfferId
- capType
- staticOfferInventoryCapEvents
- startDate
- endDate
- createdAt
- createdByUuid
- updatedAt
- updatedByUuid
properties:
id:
type: integer
format: int64
version:
type: integer
format: int32
subAccountId:
type: integer
format: int64
staticOfferId:
type: integer
format: int64
capType:
$ref: ./capTypeWrapper.yml
budgetCapAmount:
type: number
format: double
currentAttributedRevenue:
type: number
format: double
clickCapAmount:
type: integer
format: int64
currentAttributedClicks:
type: integer
format: int64
lastCalculatedAt:
type: string
format: date-time
staticOfferInventoryCapEvents:
type: array
items:
$ref: ./staticOfferInventoryCapEvent.yml
startDate:
type: string
format: date
endDate:
type: string
format: date
createdAt:
type: string
format: date-time
createdByUuid:
type: string
format: uuid
updatedAt:
type: string
format: date-time
updatedByUuid:
type: string
format: uuid
deletedAt:
type: string
format: date-time
deletedByUuid:
type: string
format: uuid

View File

@ -0,0 +1,27 @@
type: object
required:
- staticOfferId
- subAccountId
- startDate
- endDate
properties:
staticOfferId:
type: integer
format: int64
subAccountId:
type: integer
format: int64
capType:
$ref: ./capType.yml
budgetCapAmount:
type: integer
format: int64
clickCapAmount:
type: integer
format: int64
startDate:
type: string
format: date
endDate:
type: string
format: date

View File

@ -0,0 +1,25 @@
type: object
required:
- id
- staticOfferInventoryCapId
- capEventReason
- createdAt
- createdBy
properties:
id:
type: integer
format: int64
readOnly: true
description: |
A unique, internal identifier for this resource.
staticOfferInventoryCapId:
type: integer
format: int64
capEventReason:
$ref: ./capEventReason.yml
createdAt:
type: string
format: date-time
readOnly: true
description: |
When the resource was created.

View File

@ -0,0 +1,12 @@
type: object
required:
- eventType
- capType
- createdEvent
properties:
eventType:
type: string
capType:
$ref: ./capType.yml
createdEvent:
$ref: ./staticOfferInventoryCapEvent.yml

View File

@ -0,0 +1,17 @@
type: object
required:
- startDate
- endDate
properties:
budgetCapAmount:
type: integer
format: int64
clickCapAmount:
type: integer
format: int64
startDate:
type: string
format: date
endDate:
type: string
format: date

View File

@ -0,0 +1,22 @@
type: object
required:
- jsonPatch
- createdAt
- createdByUuid
properties:
jsonPatch:
type: array
items:
type: string
createdAt:
type: string
format: date-time
readOnly: true
description: |
When the resource was created.
createdByUuid:
type: string
format: uuid
readOnly: true
description: |
The UUID of the access token that was used to create this resource.

View File

@ -0,0 +1,535 @@
openapi: 3.0.3
info:
title: inventory
description: Manages inventory caps
version: 1.3.0
contact:
name: Finance Chapter
url: >-
https://example.com/docs/api-team
servers:
- url: 'https://api.example.com/inventory'
description: Prod
- url: 'https://dev-api.example.com/inventory'
description: Dev
components:
x-lint-skip:
- inline-schema-is-scalar
securitySchemes:
oauth:
type: oauth2
flows:
clientCredentials:
tokenUrl: /auth/accessTokens
scopes:
'inventory:read': Allows read access to inventory endpoints
'inventory:write': Allows write access to inventory endpoints
schemas:
ApiError:
$ref: ../core/schemas/apiError.yml
CapEventReason:
$ref: ./schemas/capEventReason.yml
CapType:
$ref: ./schemas/capType.yml
CapTypeWrapper:
$ref: ./schemas/capTypeWrapper.yml
DemandSubAccountInventoryCap:
$ref: ./schemas/demandSubAccountInventoryCap.yml
DemandSubAccountInventoryCapEvent:
$ref: ./schemas/demandSubAccountInventoryCapEvent.yml
DemandSubAccountInventoryCapCreateData:
$ref: ./schemas/demandSubAccountInventoryCapCreateData.yml
DemandSubAccountInventoryCapUpdateData:
$ref: ./schemas/demandSubAccountInventoryCapUpdateData.yml
ProductType:
$ref: ../core/schemas/productType.yml
StaticOfferInventoryCap:
$ref: ./schemas/staticOfferInventoryCap.yml
StaticOfferInventoryCapUpdateData:
$ref: ./schemas/staticOfferInventoryCapUpdateData.yml
StaticOfferInventoryCapCreateData:
$ref: ./schemas/staticOfferInventoryCapCreateData.yml
StaticOfferInventoryCapStatus:
$ref: ./schemas/staticOfferInventoryCapStatus.yml
StaticOfferInventoryCapEvent:
$ref: ./schemas/staticOfferInventoryCapEvent.yml
VersionDiff:
$ref: ./schemas/versionDiff.yml
tags:
- name: Demand Sub-Account Inventory Cap
description: >-
Inventory caps set against demand sub-accounts. A means to control the
amount of traffic going towards a specific demand sub-account
- name: Static Offer Inventory Cap
description: >-
Inventory caps set against static offers. Represents a static offer that
Partner Solutions does not want to have too high of an attributed revenue
or attributed clicks
paths:
/staticOfferInventoryCaps:
get:
x-lint-skip:
- index-endpoint-has-limit
summary: Get static offer inventory caps
description: >-
Return a list of StaticOfferInventoryCaps, filtered by search criteria
provided in the URL
operationId: getStaticOfferInventoryCaps
tags:
- Static Offer Inventory Cap
security:
- oauth:
- 'inventory:read'
parameters:
- name: id
in: query
description: A comma separated list of StaticOfferInventoryCap ids
schema:
type: array
items:
type: integer
format: int64
minimum: 0
style: form
required: false
deprecated: false
allowEmptyValue: true
- name: staticOfferId
in: query
description: A comma separated list of StaticOffer ids
schema:
type: array
items:
type: integer
format: int64
minimum: 0
style: form
required: false
deprecated: false
allowEmptyValue: true
- name: subAccountId
in: query
description: A comma separated list of SubAccount ids
schema:
type: array
items:
type: integer
format: int64
minimum: 1
style: form
required: false
deprecated: false
allowEmptyValue: true
- name: capType
in: query
schema:
type: array
items:
$ref: ./schemas/capType.yml
- name: productType
in: query
schema:
type: array
items:
$ref: '#/components/schemas/ProductType'
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/StaticOfferInventoryCap'
'400':
description: Invalid request
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ApiError'
post:
summary: Create a static offer inventory cap
description: create a static offer inventory cap
operationId: createStaticOfferInventoryCap
security:
- oauth:
- 'inventory:write'
tags:
- Static Offer Inventory Cap
requestBody:
content:
application/json:
schema:
$ref: ./schemas/staticOfferInventoryCapCreateData.yml
responses:
'201':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/StaticOfferInventoryCap'
'400':
description: Invalid request
content:
application/json:
schema:
type: array
items:
$ref: ../core/schemas/apiError.yml
'/staticOfferInventoryCaps/{id}':
parameters:
- name: id
in: path
required: true
schema:
type: integer
format: int64
delete:
summary: Delete a static offer inventory cap
description: Delete a static offer inventory cap
operationId: deleteStaticOfferInventoryCap
security:
- oauth:
- 'inventory:write'
tags:
- Static Offer Inventory Cap
responses:
'204':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/StaticOfferInventoryCap'
'404':
description: Unknown ID
put:
summary: Update a static offer inventory cap
description: Update a static offer inventory cap
operationId: updateStaticOfferInventoryCap
security:
- oauth:
- 'inventory:write'
tags:
- Static Offer Inventory Cap
requestBody:
content:
application/json:
schema:
$ref: ./schemas/staticOfferInventoryCapUpdateData.yml
responses:
'204':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/StaticOfferInventoryCap'
'400':
description: Invalid request
get:
summary: Get a static offer inventory cap
description: Get a static offer inventory cap
operationId: getStaticOfferInventoryCap
security:
- oauth:
- 'inventory:read'
tags:
- Static Offer Inventory Cap
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/StaticOfferInventoryCap'
'404':
description: Unknown ID
'/staticOfferInventoryCaps/{id}/versionDiff':
x-lint-skip:
- path-resource-is-plural
parameters:
- name: id
in: path
required: true
schema:
type: integer
format: int64
get:
summary: Get a version diff of a static offer inventory cap
description: Get a version diff of a static offer inventory cap
operationId: getStaticOfferInventoryCapVersionDiff
security:
- oauth:
- 'inventory:read'
tags:
- Static Offer Inventory Cap
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: ./schemas/versionDiff.yml
'404':
description: Unknown ID
/filterDemandSubAccounts:
get:
summary: Filter capped sub-account IDs
description: >
Return a filtered list of sub-account IDs that have not reached cap
limit,
given a list of sub-account IDs
operationId: filterCappedSubAccountIds
tags:
- Demand Sub-Account Inventory Cap
parameters:
- name: limit
in: query
required: true
description: The maximum number of resources to include in the results.
schema:
type: integer
format: int32
minimum: 1
- name: subAccountIds
in: query
description: A comma separated list of SubAccount IDs
schema:
type: array
items:
type: integer
format: int64
minimum: 1
style: form
required: true
deprecated: false
allowEmptyValue: false
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
type: integer
format: int64
/calculateDemandSubAccountCaps:
post:
summary: Refresh demand sub-account inventory cache
description: |
Refresh `DemandSubAccountInventoryCaps` cache manually
operationId: refreshDemandSubAccountInventoryCache
tags:
- Demand Sub-Account Inventory Cap
responses:
'200':
description: Success
/demandSubAccountInventoryCaps:
get:
x-lint-skip:
- index-endpoint-has-limit
summary: Get demand sub-account inventory caps
description: Return demand sub account inventory caps based upon request parameters
operationId: getDemandSubAccountInventoryCaps
security:
- oauth:
- 'inventory:read'
tags:
- Demand Sub-Account Inventory Cap
parameters:
- name: id
in: query
schema:
type: array
items:
type: integer
format: int64
- name: demandSubAccountId
in: query
schema:
type: array
items:
type: integer
format: int64
- name: capType
in: query
schema:
type: array
items:
$ref: ./schemas/capType.yml
- name: currentDate
in: query
schema:
type: string
format: date
- name: productType
in: query
schema:
type: array
items:
$ref: '#/components/schemas/ProductType'
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/DemandSubAccountInventoryCap'
'400':
description: Invalid request
content:
application/json:
schema:
type: array
items:
$ref: ../core/schemas/apiError.yml
post:
summary: Create a demand sub-account inventory cap
description: Create a demand-sub account inventory cap
operationId: createDemandSubAccountInventoryCap
security:
- oauth:
- 'inventory:write'
tags:
- Demand Sub-Account Inventory Cap
requestBody:
content:
application/json:
schema:
$ref: ./schemas/demandSubAccountInventoryCapCreateData.yml
responses:
'201':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/DemandSubAccountInventoryCap'
'400':
description: Invalid request
content:
application/json:
schema:
type: array
items:
$ref: ../core/schemas/apiError.yml
'/demandSubAccountInventoryCaps/{id}':
parameters:
- name: id
in: path
required: true
schema:
type: integer
format: int64
delete:
summary: Delete a demand sub-account inventory cap
description: Delete a demand sub-account inventory cap
operationId: deleteDemandSubAccountInventoryCap
security:
- oauth:
- 'inventory:write'
tags:
- Demand Sub-Account Inventory Cap
responses:
'204':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/DemandSubAccountInventoryCap'
'404':
description: Unknown ID
put:
summary: Update a demand sub-account inventory cap
description: Update a demand sub0-account inventory cap
operationId: updateDemandSubAccountInventoryCap
security:
- oauth:
- 'inventory:write'
tags:
- Demand Sub-Account Inventory Cap
requestBody:
content:
application/json:
schema:
$ref: ./schemas/demandSubAccountInventoryCapUpdateData.yml
responses:
'204':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/DemandSubAccountInventoryCap'
'400':
description: Invalid request
get:
summary: Get a demand sub-account inventory cap
description: Get a demand sub-account inventory cap
operationId: getDemandSubAccountInventoryCap
security:
- oauth:
- 'inventory:read'
tags:
- Demand Sub-Account Inventory Cap
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/DemandSubAccountInventoryCap'
'404':
description: Unknown ID
/staticOfferInvetoryCapsStatuses:
get:
summary: Get static offer inventory cap statuses
description: Get static offer inventory cap statuses
operationId: getStaticOfferInventoryCapStatuses
security:
- oauth:
- 'inventory:read'
tags:
- Static Offer Inventory Cap
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/StaticOfferInventoryCapStatus'
'402':
description: Payment required
'/staticOfferInventoryCapsStatus/{id}':
x-lint-skip:
- path-resource-is-plural
parameters:
- name: id
in: path
required: true
schema:
type: integer
format: int64
get:
summary: Get the status of a static offer invetory cap
description: Get the status of a static offer invetory cap
operationId: getStaticOfferInventoryCapStatus
security:
- oauth:
- 'inventory:read'
tags:
- Static Offer Inventory Cap
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/StaticOfferInventoryCapStatus'
'402':
description: Payment required

View File

@ -0,0 +1,48 @@
summary: A credit card lead request
value:
{
"productTypes": [
"credit_card"
],
"personalInformation": {
"firstName": "John",
"lastName": "Doe",
"email": "john@example.com",
"city": "New York",
"state": "NY",
"primaryPhone": "2125556789",
"address1": "45 West 21st Street",
"address2": "5th Floor",
"zipcode": "10010",
"dateOfBirth": "1993-10-09"
},
"creditCardInformation": {
"allowAnnualFee": true,
"cardPurposes": [
"travel_incentives"
]
},
"creditInformation": {
"providedCreditRating": "excellent",
"providedNumericCreditScore": 750
},
"financialInformation": {
"employmentStatus": "employed",
"employmentPayFrequency": "weekly",
"annualIncome": 120000
},
"legalInformation": {
"consentsToFcra": true,
"consentsToTcpa": true,
"tcpaLanguage": "I agree to be contacted by Example Co and its partners at the telephone number(s) I have provided above to explore personal loan offers, including contact through automatic dialing systems, artificial or pre-recorded voice messaging, or text message. I understand my consent is not required as a condition to purchasing any goods or services from anyone."
},
"clientTags": {
"hello": [
"world",
"there"
],
"something": [
"else"
]
}
}

View File

@ -0,0 +1,113 @@
summary: A lead request
value:
{
"productTypes": [
"loan",
"savings"
],
"personalInformation": {
"firstName": "John",
"lastName": "Doe",
"email": "john@example.com",
"city": "New York",
"state": "NY",
"workPhone": "2125551234",
"primaryPhone": "2125556789",
"address1": "45 West 21st Street",
"address2": "5th Floor",
"zipcode": "10010",
"monthsAtAddress": 5,
"driversLicenseNumber": "111222333",
"driversLicenseState": "NY",
"ipAddress": "8.8.8.8",
"activeMilitary": false,
"militaryVeteran": true,
"dateOfBirth": "1993-10-09",
"ssn": "111-22-3333"
},
"loanInformation": {
"purpose": "debt_consolidation",
"loanAmount": 10000
},
"mortgageInformation": {
"propertyType": "condo",
"propertyStatus": "own_with_mortgage",
"propertyValue": 200000,
"mortgageBalance": 10000,
"lenderName": "Bank OF NY",
"hasFHALoan": true,
"currentWithLoan": true
},
"creditCardInformation": {
"allowAnnualFee": true,
"cardPurposes": [
"travel_incentives"
]
},
"savingsInformation": {
"minDepositAmount": 1000
},
"creditInformation": {
"providedCreditRating": "excellent",
"providedNumericCreditScore": 750
},
"financialInformation": {
"employmentStatus": "employed",
"employmentPayFrequency": "weekly",
"annualIncome": 120000,
"monthlyNetIncome": 10000,
"bankName": "Santander",
"bankRoutingNumber": "231372691",
"bankAccountType": "savings",
"monthsAtBank": 10,
"bankAccountNumber": "1234567890"
},
"employmentInformation": {
"employerName": "Example Co",
"employerAddress": "45 W 21st St",
"employerCity": "New York",
"employerState": "NY",
"employerZip": "10010",
"jobTitle": "Software Engineer",
"monthsEmployed": 14,
"directDeposit": true,
"payDate1": "2004-10-06",
"payDate2": "2004-11-06"
},
"educationInformation": {
"educationLevel": "masters",
"graduateDegreeType": "master_of_science",
"universityAttended": "Johns Hopkins University"
},
"coApplicantInformation": {
"firstName": "Jane",
"lastName": "Doe",
"dateOfBirth": "1984-03-06",
"annualIncome": 100000,
"streetAddress1": "45 West 21st Street",
"streetAddress2": "5th Floor",
"city": "New York",
"state": "NY",
"zipcode": "10010"
},
"healthInformation": {
"gender": "male",
"heightInInches": 72,
"weightInPounds": 195,
"tobaccoSmoker": false,
},
"legalInformation": {
"consentsToFcra": true,
"consentsToTcpa": true,
"tcpaLanguage": "I agree to be contacted by Example Co and its partners at the telephone number(s) I have provided above to explore personal loan offers, including contact through automatic dialing systems, artificial or pre-recorded voice messaging, or text message. I understand my consent is not required as a condition to purchasing any goods or services from anyone."
},
"clientTags": {
"hello": [
"world",
"there"
],
"something": [
"else"
]
}
}

View File

@ -0,0 +1,67 @@
summary: A loan lead request
value:
{
"productTypes": [
"loan",
"other"
],
"personalInformation": {
"firstName": "John",
"lastName": "Doe",
"email": "john@example.com",
"city": "New York",
"state": "NY",
"primaryPhone": "2125556789",
"address1": "45 West 21st Street",
"address2": "5th Floor",
"zipcode": "10010",
"dateOfBirth": "1993-10-09",
"ssn": "111-22-3333"
},
"loanInformation": {
"purpose": "debt_consolidation",
"loanAmount": 10000
},
"mortgageInformation": {
"propertyStatus": "own_with_mortgage"
},
"creditInformation": {
"providedCreditRating": "excellent",
"providedNumericCreditScore": 750
},
"financialInformation": {
"employmentStatus": "employed",
"employmentPayFrequency": "weekly",
"annualIncome": 120000,
},
"educationInformation": {
"educationLevel": "masters",
"graduateDegreeType": "master_of_science",
"universityAttended": "Johns Hopkins University"
},
"coApplicantInformation": {
"firstName": "Jane",
"lastName": "Doe",
"dateOfBirth": "1984-03-06",
"annualIncome": 100000,
"streetAddress1": "45 West 21st Street",
"streetAddress2": "5th Floor",
"city": "New York",
"state": "NY",
"zipcode": "10010"
},
"legalInformation": {
"consentsToFcra": true,
"consentsToTcpa": true,
"tcpaLanguage": "I agree to be contacted by Example Co and its partners at the telephone number(s) I have provided above to explore personal loan offers, including contact through automatic dialing systems, artificial or pre-recorded voice messaging, or text message. I understand my consent is not required as a condition to purchasing any goods or services from anyone."
},
"clientTags": {
"hello": [
"world",
"there"
],
"something": [
"else"
]
}
}

View File

@ -0,0 +1,27 @@
summary: A savings lead request
value:
{
"productTypes": [
"savings"
],
"personalInformation": {
"state": "NY",
"zipcode": "10010",
},
"creditInformation": {
"providedCreditRating": "excellent",
"providedNumericCreditScore": 750
},
"savingsInformation": {
"minDepositAmount": 1000
},
"clientTags": {
"hello": [
"world",
"there"
],
"something": [
"else"
]
}
}

View File

@ -0,0 +1,8 @@
name: name
in: query
description: Part of a university name for search
schema:
type: string
examples:
with-name-johns:
value: johns

View File

@ -0,0 +1,11 @@
description: Invalid Body
content:
application/json:
schema:
type: array
items:
$ref: ../../core/schemas/apiError.yml
example:
- message: >-
Cannot parse parameter uuid as UUID: Invalid UUID string:
123

View File

@ -0,0 +1,9 @@
description: Invalid UUID
content:
application/json:
schema:
type: array
items:
$ref: ../../core/schemas/apiError.yml
example:
- message: Lead UUID is invalid

View File

@ -0,0 +1,7 @@
description: Lead created
content:
application/json:
schema:
$ref: ../schemas/leadUuid.yml
example:
uuid: 81c08fb9-559a-4bab-948c-ba38f8dd0dcc

View File

@ -0,0 +1,5 @@
description: Lead found
content:
application/json:
schema:
$ref: ../schemas/leadResponseJson.yml

View File

@ -0,0 +1,6 @@
type: string
enum:
- checking
- savings
- other
- unknown

View File

@ -0,0 +1,6 @@
type: string
enum:
- morning
- afternoon
- evening
- night

View File

@ -0,0 +1,152 @@
type: string
description: Benefits or benefit categories related to a credit card
enum:
- No Foreign Transaction Fees
- Purchase Protection
- Return Protection
- Price Protection
- Fraud Protection
- Extended Warranty
- Travel Accident Insurance
- Trip Interruption Insurance
- Car Rental Insurance
- Baggage Insurance
- Baggage Delay Insurance
- Hotel Burglary Insurance
- Travel & Emergency Assistance
- Roadside Assistance
- Concierge Service
- Lounge Access
- Identity Theft Assistance
- In-Flight Savings
- Free Checked Bag
- Priority Boarding
- No Blackout Dates
- Free Companion Ticket
- Discount Companion Ticket
- Global Entry or TSA PreCheck
- Private Jet Perks
- Lounge Access Discount
- 24/7 Cardholder Support
- Authorized User
- Entertainment Access
- Airline Fee Credit
- Late Fee Pass
- Credit Score Reporting
- No Flight Change Fees
- 24/7 Account Monitoring
- Amex Offers
- Visa Signature Offers
- MasterCard Offers
- Free Hotel Stay
- Extended Hotel Stay
- Dining Concierge
- 2 Lounge Passes
- Hilton Honors Silver Membership
- Hilton Honors Gold Membership
- World of Hyatt Discoverist Status
- SPG Gold Membership
- Marriott Rewards Silver Status
- Hertz Presidents Circle Elite Status
- 2 Free Checked Bags
- Auto Discounts
- InCircle Partnership
- ShopRunner
- WiFi Access
- ShopSafe
- BoA Preferred Rewards
- MasterCard Fuel Rewards Network
- Missed Event Ticket Protection
- Account Freezing
- Cell Phone Protection
- GPA Rewards
- In-Flight WiFi Credit
- Citi Private Pass
- Priceless Cities
- The Hotel Collection
- By Invitation Only
- Luxury Hotel Collection
- Expedia+ Silver Status
- Expedia+ Gold Status
- $100 American Airlines Discount
- Disney Parks Perks and Savings
- Ritz-Carlton Gold Elite Status
- Ritz-Carlton Club Level Upgrade
- Annual Travel Credit
- IHG Platinum Elite Status
- QuickBooks Connect
- ReceiptMatch
- Employee Spending Limits
- FX International Payments
- No Pre-Set Spending Limit
- Purchase Financing
- Amex Open Savings
- Amazon Special Financing
- $100 Ritz-Carlton Hotel Credit
- British Airways Companion Ticket
- Mercedes-Benz Gift Certificates
- Mercedes-Benz Excess Mileage Waiver
- JetBlue Annual Statement Credit
- 20% Discount on Delta Flights for Delta Private Jet Members
- Expense Report Features
- Business Cell Phone Protection
- Free Shipping on most Target.com orders
- 30 Extra Days for Returns
- Free clothing altertaions
- Personal shopping
- Shopmyway Savings
- Online Subscription Credit
- Uber Exclusive Access
- Airline Benefits
- Hotel Benefits
- Other Travel Benefits
- Emergency Assistance
- Experiences
- Shopping Benefits
- Cardholder Benefits
- Enhanced Security
- Business Benefits
- Other Benefits
- In-Flight Discounts
- Fee Coverage
- Flight Credits & Discounts
- Hotel Membership Status
- Hotel Credit & Free Stays
- Travel Credit
- Travel Experiences Programs
- Car Rental Membership Status
- Extra Gas Rewards
- Shopping Protection
- Shopping Discounts
- Free Shipping
- The Boingo American Express Preferred Plan
- AirSpace Lounge
- Uber Monthly Credit
- Ride Share Benefits
- Delta Sky Club
- Admirals Club Membership
- Priority Pass Select Membership (Prestige)
- Priority Pass Select Membership (Standard Plus)
- Daily Breakfast
- Early Check-in & Late Check-out
- Room Upgrades
- Complementary WiFi
- Amex Hotel Collection Credit
- Temporary Account Numbers
- One-Time 50% Discount on Companion Ticket
- Airline Travel Credit
- United Club Membership
- Chip Technology
- Earn More Miles for Sharing Travel Stories
- Mastercard World Elite Concierge and Luxury Travel Benefits
- 20% Savings on Delta In-Flight Purchases
- 25% Savings on United In-Flight Food and Drink Purchases
- $100 Hilton Properties Credit
- $250 Hilton Resort Credit
- Hilton Honors Diamond Membership
- Free Birthday Gift
- 2x Points During Your Birthday Month
- Car Rental VIP Perks
- Free shipping with the purchase of a bra
- Monthly Dining Credit
- Amazon Prime Student

View File

@ -0,0 +1,12 @@
type: string
description: Purposes or categories related to a credit card
enum:
- balance_transfer
- cash_back
- earning_rewards
- improve_credit
- low_interest
- new_to_credit
- student
- travel_incentives
- unknown

View File

@ -0,0 +1,7 @@
type: string
description: Citizenship status
enum:
- citizen
- permanent_resident
- other
- unknown

View File

@ -0,0 +1,12 @@
type: object
description: Arbitrary key-values mappings to associate with a `Lead`. This field can be use to attach `subid`s to a `Lead`
additionalProperties:
type: array
items:
type: string
maxProperties: 1
minProperties: 1
example:
{
"subid": ["123"]
}

View File

@ -0,0 +1,28 @@
type: object
description: |
The personal information of a co-applicant that may be considered in the
underwriting and approval of a loan.
properties:
firstName:
type: string
lastName:
type: string
dateOfBirth:
type: string
format: date
annualIncome:
type: integer
format: int32
streetAddress1:
type: string
description: Street address (primary address line)
streetAddress2:
type: string
description: Secondary address line
city:
type: string
state:
$ref: ../../core/schemas/state-lead.yml
zipCode:
type: string
pattern: ^\d{5}([-\s]\d{4})?$

View File

@ -0,0 +1,9 @@
type: object
properties:
allowAnnualFee:
type: boolean
cardPurposes:
type: array
items:
$ref: ./cardPurposes.yml
description: A list of card purposes in which the lead is interested

View File

@ -0,0 +1,9 @@
type: object
description: Credit history information relating to a `Lead`
properties:
providedCreditRating:
$ref: ./providedCreditRating.yml
providedNumericCreditScore:
type: integer
format: int32
description: FICO credit score provided by a `Lead`

View File

@ -0,0 +1,49 @@
type: object
required:
- id
- supplySubAccountId
- supplySubAccountUuid
- durationMinutes
- createdAt
- createdBy
properties:
id:
type: integer
format: int64
description: |
A unique, internal identifier for this resource.
supplySubAccountId:
type: integer
format: int64
description: |
The ID of the supply sub-account for this configuration.
supplySubAccountUuid:
type: string
format: uuid
description: |
The UUID of the supply sub-account for this configuration.
durationMinutes:
type: integer
format: int32
description: |
The number of minutes to look back when looking for duplicate leads.
createdAt:
type: string
format: date-time
description: |
When the resource was created.
createdBy:
type: string
format: uuid
description: |
The UUID of the access token that was used to create this resource.
deletedAt:
type: string
format: date-time
description: |
When the resource was deleted.
deletedBy:
type: string
format: uuid
description: |
The UUID of the access token that was used to delete this resource.

View File

@ -0,0 +1,46 @@
type: object
properties:
educationLevel:
$ref: ./educationLevel.yml
graduateDegreeType:
$ref: ./graduateDegreeType.yml
universityAttended:
type: string
description: |
Name of university where a lead received their undergraduate degree.
A lookup service for possible universities is available from using the /leads/universities endpoint.
To maximize returned offers, this string must match one of the names returned from the lookup.
deprecated: true
graduationDate:
type: string
format: date
description: Date the lead graudated from undergrad (YYYY-MM-DD)
deprecated: true
graduateGraduationDate:
type: string
format: date
description: Lead's graduate school graduation date (YYYY-MM-DD)
graduateLastAttendedDate:
type: string
format: date
description: Lead's last attended month/year for graduate school (YYYY-MM-DD)
graduateUniversityAttended:
type: string
description: |
Name of university where a lead received their graduate degree.
A lookup service for possible universities is available from using the /leads/universities endpoint.
To maximize returned offers, this string must match one of the names returned from the lookup.
undergraduateGraduationDate:
type: string
format: date
description: Date the lead graduated from undergrad (YYYY-MM-DD).
undergraduateLastAttendedDate:
type: string
format: date
description: Lead's last attended month/year for undergrad (YYYY-MM-DD)
undergraduateUniversityAttended:
type: string
description: |
Name of university where a lead received their undergraduate degree.
A lookup service for possible universities is available from using the /leads/universities endpoint.
To maximize returned offers, this string must match one of the names returned from the lookup.

View File

@ -0,0 +1,13 @@
type: string
enum:
- high_school
- associate
- bachelors
- masters
- doctorate
- other_grad_degree
- certificate
- did_not_graduate
- still_enrolled
- other
- unknown

View File

@ -0,0 +1,34 @@
type: object
properties:
employerName:
type: string
employerAddress:
type: string
employerAddress2:
type: string
employerCity:
type: string
employerPhone:
type: string
employerState:
type: string
employerZip:
type: string
jobTitle:
type: string
monthsEmployed:
type: integer
format: int32
directDeposit:
type: boolean
description: Whether a `Lead` uses direct deposit for their salary
payDate1:
type: string
format: date
payDate2:
type: string
format: date
startDate:
type: string
format: date
description: The date the lead started working at their current employer (YYYY-MM-DD)

View File

@ -0,0 +1,7 @@
type: string
enum:
- weekly
- biweekly
- twice_monthly
- monthly
- unknown

View File

@ -0,0 +1,10 @@
type: string
enum:
- employed_full_time
- employed_part_time
- military
- not_employed
- self_employed
- retired
- other
- unknown

View File

@ -0,0 +1,42 @@
type: object
properties:
employmentStatus:
$ref: ./employmentStatus.yml
employmentPayFrequency:
$ref: ./employmentPayFrequency.yml
annualIncome:
type: integer
format: int32
monthlyNetIncome:
type: integer
format: int32
bankName:
type: string
bankRoutingNumber:
type: string
bankAccountType:
$ref: ./bankAccountType.yml
monthsAtBank:
type: integer
format: int32
bankAccountNumber:
type: string
monthlyDebt:
type: integer
format: int32
totalAssets:
type: integer
format: int32
monthlyHousingPayment:
type: integer
format: int32
availableAssets:
type: integer
format: int32
additionalIncome:
type: integer
format: int32
description: The amount of additional income the lead recieves
additionalIncomeFrequency:
$ref: ./employmentPayFrequency.yml
description: The frequency the lead recieves additional income

View File

@ -0,0 +1,6 @@
type: string
enum:
- male
- female
- unknown

View File

@ -0,0 +1,30 @@
type: string
enum:
- doctor_of_medicine
- doctor_of_osteopathic_medicine
- doctor_of_optometry
- doctor_of_dental_medicine
- dentariae_medicinae_doctoris
- doctor_of_dental_surgery
- doctor_of_veterinary_medicine
- doctor_of_pharmacy
- veterinariae_medicinae_doctoris
- master_of_arts
- master_of_science
- master_of_research
- master_of_research_project
- master_of_studies
- master_of_business_administration
- master_of_library_science
- master_of_public_administration
- master_of_public_health
- master_of_laws
- master_of_arts_liberal_studies
- master_of_fine_arts
- master_of_music
- master_of_education
- master_of_engineering
- master_of_architecture
- juris_doctor
- other
- unknown

View File

@ -0,0 +1,12 @@
type: object
properties:
gender:
$ref: ./gender.yml
heightInInches:
type: integer
format: int32
weightInPounds:
type: integer
format: int32
tobaccoSmoker:
type: boolean

View File

@ -0,0 +1,5 @@
type: string
enum:
- driver_license
- state_id
- passport

View File

@ -0,0 +1,11 @@
type: object
properties:
idNumber:
type: string
description: The ID number supplied by the lead
idState:
type: string
description: The state of issue of the supplied ID
idType:
$ref: ./idType.yml
description: The form of the ID number supplied by the lead

View File

@ -0,0 +1,38 @@
type: object
required:
- uuid
- actionType
- actionDate
- demandSubAccountId
- createdAt
properties:
uuid:
type: string
format: uuid
actionType:
$ref: ./leadActionType.yml
actionDate:
type: string
format: date-time
originatorKey:
type: string
demandSubAccountId:
type: integer
format: int64
rejectReason:
$ref: ./rejectReason.yml
amount:
type: integer
format: int32
originationFee:
type: integer
format: int32
offerClickId:
type: integer
format: int64
createdAt:
type: string
format: date-time
deletedAt:
type: string
format: date-time

View File

@ -0,0 +1,19 @@
type: string
enum:
- initialized
- api_rejected
- api_approved
- api_listing
- clicked_referral_link
- clicked_special_offer_link
- special_offer_conversion
- applied
- rejected
- approved
- listed
- funded
- not_funded
- clicked_credit_card_offer_link
- clicked_mortgage_offer_link
- clicked_savings_offer_link
- unknown

View File

@ -0,0 +1,69 @@
type: object
properties:
productTypes:
type: array
description: Product types in which the `Lead` is interested
items:
$ref: ../../core/schemas/productType.yml
uuid:
type: string
format: uuid
description: Primary UUID for a `Lead`
sessionUuid:
type: string
format: uuid
description: UUID used to link leads across verticals, unique per user per supply sub-account
loanInformation:
$ref: ./loanInformation.yml
personalInformation:
$ref: ./personalInformation.yml
personalReferenceInformation:
$ref: ./personalReferenceInformation.yml
mortgageInformation:
$ref: ./mortgageInformation.yml
creditCardInformation:
$ref: ./creditCardInformation.yml
savingsInformation:
$ref: ./savingsInformation.yml
creditInformation:
$ref: ./creditInformation.yml
financialInformation:
$ref: ./financialInformation.yml
employmentInformation:
$ref: ./employmentInformation.yml
legalInformation:
$ref: ./legalInformation.yml
educationInformation:
$ref: ./educationInformation.yml
coApplicantInformation:
$ref: ./coApplicantInformation.yml
healthInformation:
$ref: ./healthInformation.yml
refinanceLoans:
type: array
items:
$ref: ./refinanceLoanInformation.yml
description: One or more loans that the lead wishes to refinance or consolidate
identificationInformation:
$ref: ./identificationInformation.yml
clientTags:
$ref: ./clientTags.yml
sessionInformation:
$ref: ./sessionInformation.yml
formCompleted:
type: boolean
description: Whether the `Lead` has completed an application form
deprecated: true
referralCompanyUuid:
type: string
format: uuid
description: UUID of company from which the `Lead` was referred
deprecated: true
trackingUuid:
type: string
format: uuid
# TODO this may need to be hidden
description: UUID for internal Example Co tracking purposes. This field should never be set by 3rd party API consumers
deprecated: true
example:
$ref: ../examples/leadRequestJson.yml

View File

@ -0,0 +1,87 @@
type: object
required:
- leadProviderName
- uuid
- companyUUID
- isTest
- status
- createdAt
- updatedAt
properties:
leadProviderName:
type: string
description: Name of company which provided the lead
personalInformation:
$ref: ./personalInformation.yml
personalReferenceInformation:
$ref: ./personalReferenceInformation.yml
loanInformation:
$ref: ./loanInformation.yml
mortgageInformation:
$ref: ./mortgageInformation.yml
creditCardInformation:
$ref: ./creditCardInformation.yml
savingsInformation:
$ref: ./savingsInformation.yml
creditInformation:
$ref: ./creditInformation.yml
financialInformation:
$ref: ./financialInformation.yml
employmentInformation:
$ref: ./employmentInformation.yml
legalInformation:
$ref: ./legalInformation.yml
educationInformation:
$ref: ./educationInformation.yml
coApplicantInformation:
$ref: ./coApplicantInformation.yml
healthInformation:
$ref: ./healthInformation.yml
identificationInformation:
$ref: ./identificationInformation.yml
lifeInsuranceInformation:
$ref: ./lifeInsuranceInformation.yml
refinanceLoans:
type: array
items:
$ref: ./refinanceLoanInformation.yml
clientTags:
$ref: ./clientTags.yml
sessionInformation:
$ref: ./sessionInformation.yml
leadActions:
type: array
items:
$ref: ./leadActionResponse.yml
uuid:
type: string
format: uuid
description: Primary UUID for a `Lead`
companyUUID:
type: string
format: uuid
description: UUID for a company which created the `Lead`
sessionUuid:
type: string
format: uuid
description: UUID used to link leads across verticals, unique per user per supply sub-account
referralCompanyUuid:
type: string
format: uuid
deprecated: true
trackingUuid:
type: string
format: uuid
isTest:
type: boolean
description: Whether a `Lead` was created using a test access token
status:
description: The furthest step of the funnel a `Lead` has reached
allOf:
- $ref: ./leadActionType.yml
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time

View File

@ -0,0 +1,20 @@
type: object
required:
- leads
- offset
- limit
- count
properties:
leads:
type: array
items:
$ref: ./leadResponseJson.yml
offset:
type: integer
format: int32
limit:
type: integer
format: int32
count:
type: integer
format: int32

View File

@ -0,0 +1,8 @@
type: object
required:
- uuid
properties:
uuid:
type: string
format: uuid
description: UUID corresponding to the created `Lead`

View File

@ -0,0 +1,15 @@
type: object
description: Information regarding a `Lead`'s communication concent
properties:
consentsToFcra:
type: boolean
description: Whether the lead was shown, and consented to a Fair Credit Reporting Act notice
consentsToTcpa:
type: boolean
description: Whether the lead was shown, and consented to a Telephone Consumer Protection Act notice
tcpaLanguage:
type: string
description: The exact text to which the lead consented
consentsToSms:
type: boolean
description: The lead agrees to recieve SMS text messages from the Financial Institution

View File

@ -0,0 +1,21 @@
type: object
title: Life insurance information
description: Life insurance information
required:
- carrier
- duration
- policyAmount
properties:
carrier:
type: string
description: >
Carrier of the policy
duration:
type: integer
format: int64
description: >
Duration, in years
policyAmount:
type: integer
format: int64
description: Policy amount, in dollars

View File

@ -0,0 +1,7 @@
type: object
properties:
purpose:
$ref: ./purpose.yml
loanAmount:
type: integer
format: int32

View File

@ -0,0 +1,78 @@
type: object
properties:
propertyType:
$ref: ./propertyType.yml
propertyValue:
type: integer
format: int32
mortgageBalance:
type: integer
format: int32
lenderName:
type: string
hasFHALoan:
type: boolean
currentWithLoan:
type: boolean
propertyStatus:
$ref: ./propertyStatus.yml
mortgageType:
$ref: ./mortgageType.yml
mortgageAmount:
type: integer
format: int32
description: Amount the lead will borrow
downPaymentAmount:
type: integer
format: int32
propertyState:
type: string
propertyCounty:
type: string
propertyAddress1:
type: string
description: Street address (primary address line)
propertyAddress2:
type: string
description: Secondary address line
propertyZipcode:
type: string
propertyCity:
type: string
refinanceAmount:
type: integer
format: int32
description: Amount the lead will borrow for refinancing an existing mortgage
cashOutAmount:
type: integer
format: int32
description: Additional amount the lead will borrow against existing home equity in the case of refinance
occupancyType:
$ref: ./occupancyType.yml
refinanceType:
$ref: ./refinanceType.yml
propertySearchStatus:
$ref: ./propertySearchStatus.yml
numUnits:
type: integer
format: int32
description: The number of legal units on the property
closingDate:
type: string
format: date
purchaseStatus:
$ref: ./purchaseStatus.yml
purchaseDate:
type: string
format: date
monthlyHoaFee:
type: number
format: float
description: The amount of the HOA fee for the lead
mortgageCompany:
type: string
description: The name of the company holding the lead's mortgage
mortgageEscrowAmount:
type: number
format: float
description: The amount of escrow the lead pays

View File

@ -0,0 +1,5 @@
type: string
enum:
- purchase
- refinance
- unknown

View File

@ -0,0 +1,19 @@
type: object
required:
- durationMinutes
properties:
supplySubAccountId:
type: integer
format: int64
description: |
The ID of the supply sub-account for this configuration.
supplySubAccountUuid:
type: string
format: uuid
description: |
The UUID of the supply sub-account for this configuration.
durationMinutes:
type: integer
format: int32
description: |
The number of minutes to look back when looking for duplicate leads.

View File

@ -0,0 +1,6 @@
type: string
enum:
- primary
- secondary
- investment
- unknown

View File

@ -0,0 +1,69 @@
type: object
properties:
firstName:
type: string
lastName:
type: string
aliasFirstName:
type: string
description: The first name the lead uses as an alias
aliasLastName:
type: string
description: The last name the lead uses as an alias
email:
$ref: ../../core/schemas/email.yml
city:
type: string
state:
$ref: ../../core/schemas/state-lead.yml
workPhone:
type: string
pattern: ^1?\d{10}$
primaryPhone:
type: string
pattern: ^1?\d{10}$
bestTimeToCall:
$ref: ./bestTimeToCall.yml
address1:
type: string
description: Street address (primary address line)
address2:
type: string
description: Secondary address line
addressMoveInDate:
type: string
format: date
description: The date the lead moved into their current address
zipcode:
type: string
pattern: ^\d{5}([-\s]\d{4})?$
monthsAtAddress:
type: integer
format: int32
description: Number of months the provided address has been the lead's primary residence
driversLicenseNumber:
type: string
driversLicenseState:
type: string
description: State in which the driver's license was issued
ipAddress:
type: string
format: ip
description: IP address
activeMilitary:
type: boolean
description: Whether the lead is currently in the military (not a veteran)
militaryVeteran:
type: boolean
description: Whether the lead is a veteran (should not be used if the lead is active in the military)
dateOfBirth:
type: string
format: date
educationLevel:
deprecated: true
allOf:
- $ref: ./educationLevel.yml
ssn:
$ref: ../../core/schemas/ssn.yml
citizenshipStatus:
$ref: ./citizenshipStatus.yml

View File

@ -0,0 +1,15 @@
type: object
properties:
firstName:
type: string
description: The first name of the personal reference supplied by the lead
lastName:
type: string
description: The last name of the personal reference supplied by the lead
primaryPhone:
type: string
pattern: ^1?\d{10}$
description: The phone number of the personal reference supplied by the lead
relationType:
$ref: ./personalReferenceRelationType.yml
description: The relation of the personal reference supplied by the lead

View File

@ -0,0 +1,10 @@
type: string
enum:
- parent
- employer
- spouse
- guardian
- sibling
- relative
- friend
- other

View File

@ -0,0 +1,28 @@
type: string
description: A type of financial product
enum:
# credit_card
- credit_card
- secured_card
# loan
- personal_loan
- student_loan_refinance
- co_applicant_loan
- line_of_credit
# mortgage
- purchase
- refinance
# savings
- savings_account
- money_market_account
- certificate_of_deposit
- individual_retirement_account
- cash_management_account
- high_interest_checking
# life_insurance
- accidental_death_benefits
- term_life

View File

@ -0,0 +1,10 @@
type: string
enum:
- credit_card
- insurance
- life_insurance
- loan
- mortgage
- savings
- other
- unknown

View File

@ -0,0 +1,5 @@
type: string
enum:
- found
- not_found
- unknown

View File

@ -0,0 +1,6 @@
type: string
enum:
- own_outright
- own_with_mortgage
- rent
- unknown

View File

@ -0,0 +1,8 @@
type: string
enum:
- rent
- condo
- multi_unit
- single_family
- townhouse
- unknown

View File

@ -0,0 +1,8 @@
type: string
enum:
- excellent
- good
- fair
- poor
- limited
- unknown

View File

@ -0,0 +1,7 @@
type: string
enum:
- no_offer
- offer_accepted
- offer_pending
- under_contract
- unknown

View File

@ -0,0 +1,32 @@
type: string
enum:
- auto_purchase
- auto_refinance
- baby
- boat
- business
- car_repair
- cosmetic
- credit_card_refi
- debt_consolidation
- emergency
- engagement
- green
- home_improvement
- home_purchase
- home_refi
- household_expenses
- large_purchases
- life_event
- medical_dental
- motorcycle
- moving_relocation
- rv
- special_occasion
- student_loan
- student_loan_refi
- taxes
- vacation
- wedding
- other
- unknown

View File

@ -0,0 +1,31 @@
type: object
title: Refinance loan information
properties:
accountNumber:
type: string
description: The account number for a loan the lead is refinancing
incomeBasedRepayment:
type: boolean
description: If the repayment is income-based for a loan the lead is refinancing
interestRate:
type: number
format: float
description: The interest rate for a loan the lead is refinancing
loanAmount:
type: integer
format: int32
description: The loan amount for a loan the lead is refinancing
loanServicer:
type: string
description: The name of a loan servicer of a loan the lead is refinancing
loanType:
$ref: ./refinanceLoanType.yml
description: The loan type for a loan the lead is refinancing
nextPaymentAmount:
type: number
format: float
description: The amount the next payment will be on a loan the lead is refinancing
nextPaymentDate:
type: string
format: date
description: The next payment date for a loan the lead is refinancing

View File

@ -0,0 +1,4 @@
type: string
enum:
- federal_student_loan
- private_student_loan

View File

@ -0,0 +1,5 @@
type: string
enum:
- cash_out
- rate_term
- unknown

View File

@ -0,0 +1,11 @@
type: string
enum:
- low_fico
- no_fico
- major_derogatory
- underwriting_decline
- debt_to_income_ratio
- not_in_active_state
- incorrect_data_provided
- duplicate
- unknown

View File

@ -0,0 +1,6 @@
type: object
properties:
minDepositAmount:
type: integer
format: int64
description: The minimum amount a `Lead` is interesting in depositing when opening a new savings account

View File

@ -0,0 +1,7 @@
type: object
description: Browsing session information accociated with a `Lead`
properties:
ipAddress:
type: string
userAgent:
type: string

View File

@ -0,0 +1,21 @@
type: object
required:
- id
- opeId
- name
- createdAt
- createdByUuid
properties:
id:
type: integer
format: int64
opeId:
type: string
name:
type: string
createdAt:
type: string
format: date-time
createdByUuid:
type: string
format: uuid

View File

@ -0,0 +1,650 @@
openapi: 3.0.3
info:
title: lead
description: Capture and calculate financial informations for our partners
version: 1.4.0
contact:
name: Offers Chapter
url: >-
https://example.com/docs/api-team
servers:
- url: 'https://api.example.com'
description: Prod
- url: 'https://dev-api.example.com'
description: Dev
components:
securitySchemes:
oauth:
type: oauth2
flows:
clientCredentials:
tokenUrl: /auth/accessTokens
scopes:
'svc-lead:leads:insert': Allows write access to `Leads`
'svc-lead:leads:insert-test': >-
Disables non-test write access to `Leads`. An access token with
this scope can _only_ create test `Lead`s
'svc-lead:leads:readAll': Allows read access to all `Lead`s
'svc-lead:admin:read': Allows reads on admin endpoints in lead
'svc-lead:admin:write': Allows writes on admin endpoints in lead
schemas:
ApiError:
$ref: ../core/schemas/apiError.yml
AprType:
$ref: ../originator/schemas/aprType.yml
BankAccountType:
$ref: ./schemas/bankAccountType.yml
BestTimeToCall:
$ref: ./schemas/bestTimeToCall.yml
BonusPersonalization:
$ref: ../offer-augmentation/schemas/bonusPersonalization.yml
CardBenefits:
$ref: ../lead/schemas/cardBenefits.yml
CardPurpose:
$ref: ./schemas/cardPurposes.yml
CardType:
$ref: ../originator/schemas/cardType.yml
CitizenshipStatus:
$ref: ./schemas/citizenshipStatus.yml
ClientTags:
$ref: ./schemas/clientTags.yml
CoApplicantInformation:
$ref: ./schemas/coApplicantInformation.yml
CreditCardInformation:
$ref: ./schemas/creditCardInformation.yml
CreditInformation:
$ref: ./schemas/creditInformation.yml
CreditCardIntroOfferType:
$ref: ../originator/schemas/introOfferType.yml
CreditCardOffer:
$ref: ../originator/schemas/creditCardOffer.yml
CreditCardOfferDetails:
$ref: ../originator/schemas/creditCardOfferDetails.yml
DeduplicationConfiguration:
$ref: ./schemas/deduplicationConfiguration.yml
DeduplicationConfigurationSort:
type: string
enum:
- id
- supplySubAccountId
- durationMinutes
- createdAt
- deletedAt
DemandPartner:
$ref: ../originator/schemas/demandPartner.yml
EarningBonus:
$ref: ../offer-augmentation/schemas/earningBonus.yml
EarningBonusName:
$ref: ../offer-augmentation/schemas/earningBonusName.yml
EarningBonusType:
$ref: ../offer-augmentation/schemas/earningBonusType.yml
EarningContext:
$ref: ../offer-augmentation/schemas/earningContext.yml
EarningContextType:
$ref: ../offer-augmentation/schemas/earningContextType.yml
EarningGroup:
$ref: ../offer-augmentation/schemas/earningGroup.yml
EarningItem:
$ref: ../offer-augmentation/schemas/earningItem.yml
EarningItemPersonalization:
$ref: ../offer-augmentation/schemas/earningItemPersonalization.yml
EarningItemType:
$ref: ../offer-augmentation/schemas/earningItemType.yml
EarningProgram:
$ref: ../offer-augmentation/schemas/earningProgram.yml
EarningProgramPersonalization:
$ref: ../offer-augmentation/schemas/earningProgramPersonalization.yml
EducationInformation:
$ref: ./schemas/educationInformation.yml
EducationLevel:
$ref: ./schemas/educationLevel.yml
EmploymentInformation:
$ref: ./schemas/employmentInformation.yml
EmploymentPayFrequency:
$ref: ./schemas/employmentPayFrequency.yml
EmploymentStatus:
$ref: ./schemas/employmentStatus.yml
FinancialInformation:
$ref: ./schemas/financialInformation.yml
IdType:
$ref: ./schemas/idType.yml
Gender:
$ref: ./schemas/gender.yml
GraduateDegreeType:
$ref: ./schemas/graduateDegreeType.yml
HealthInformation:
$ref: ./schemas/healthInformation.yml
IdentificationInformation:
$ref: ./schemas/identificationInformation.yml
LeadAction:
$ref: ./schemas/leadActionResponse.yml
LeadActionRejectReason:
$ref: ./schemas/rejectReason.yml
LeadActionType:
$ref: ./schemas/leadActionType.yml
LeadRequest:
$ref: ./schemas/leadRequestJson.yml
LeadResponse:
$ref: ./schemas/leadResponseJson.yml
LeadResponseWrapper:
$ref: ./schemas/leadResponseWrapper.yml
LeadUuid:
$ref: ./schemas/leadUuid.yml
LegalInformation:
$ref: ./schemas/legalInformation.yml
LifeInsuranceInformation:
$ref: ./schemas/lifeInsuranceInformation.yml
LoanInformation:
$ref: ./schemas/loanInformation.yml
LoanOffer:
$ref: ../originator/schemas/loanOfferPublic.yml
LoanPurpose:
$ref: ./schemas/purpose.yml
LoanTermUnit:
$ref: ../originator/schemas/termUnit.yml
Merchant:
$ref: ../offer-augmentation/schemas/merchant.yml
MerchantCategory:
$ref: ../offer-augmentation/schemas/category.yml
MorgageAdjustmentType:
$ref: ../originator/schemas/adjustmentType.yml
MorgageInformation:
$ref: ./schemas/mortgageInformation.yml
MorgageLoanType:
$ref: ../originator/schemas/mortgageLoanType.yml
MortgageOccupancyType:
$ref: ./schemas/occupancyType.yml
MortgageOffer:
$ref: ../originator/schemas/mortgageOffer.yml
MortgageOfferDetails:
$ref: ../originator/schemas/mortgageOfferDetails.yml
MortgagePropertySearchStatus:
$ref: ./schemas/propertySearchStatus.yml
MortgagePropertyStatus:
$ref: ./schemas/propertyStatus.yml
MortgagePropertyType:
$ref: ./schemas/propertyType.yml
MortgagePurchaseStatus:
$ref: ./schemas/purchaseStatus.yml
MortgageRefinanceType:
$ref: ./schemas/refinanceType.yml
MortgageType:
$ref: ./schemas/mortgageType.yml
NewDeduplicationConfiguration:
$ref: ./schemas/newDeduplicationConfiguration.yml
Offer:
$ref: ../originator/schemas/offer.yml
Order:
$ref: ../core/schemas/order.yml
Originator:
$ref: ../originator/schemas/originator.yml
OriginatorImage:
$ref: ../originator/schemas/originatorImage.yml
PendingResponse:
$ref: ../originator/schemas/pendingResponse.yml
PersonalInformation:
$ref: ./schemas/personalInformation.yml
PersonalReferenceInformation:
$ref: ./schemas/personalReferenceInformation.yml
PersonalReferenceRelationType:
$ref: ./schemas/personalReferenceRelationType.yml
ProductSubType:
$ref: ./schemas/productSubType.yml
ProductType:
$ref: ../core/schemas/productType.yml
ProvidedCreditRating:
$ref: ./schemas/providedCreditRating.yml
RateTablePublic:
$ref: ../originator/schemas/rateTablePublic.yml
RefinanceLoanInformation:
$ref: ./schemas/refinanceLoanInformation.yml
RefinanceLoanType:
$ref: ./schemas/refinanceLoanType.yml
SavingsCompoundingMethod:
$ref: ../originator/schemas/compoundingMethod.yml
SavingsInformation:
$ref: ./schemas/savingsInformation.yml
SavingsOffer:
$ref: ../originator/schemas/savingsOffer.yml
SavingsOfferDetails:
$ref: ../originator/schemas/savingsOfferDetails.yml
SessionInformation:
$ref: ./schemas/sessionInformation.yml
SpecialOffer:
$ref: ../originator/schemas/specialOfferPublic.yml
State:
$ref: ../core/schemas/state-lead.yml
TimestampField:
type: string
enum:
- createdAt
- updatedAt
University:
$ref: ./schemas/university.yml
tags:
- name: Deduplication Configuration
description: >-
Used to indicate that leads from the specified supply sub-account should
be rejected as duplicate if they have an email that has been submitted by
any supply partner, within a configurable number of minutes.
- name: Lead
description: >-
The `Lead` object contains information associated with a possible
applicant for one or more products.
- name: University
description: University endpoints used to improve student loan refinance UX
paths:
/leads:
get:
x-lint-skip:
- index-endpoint-has-limit
summary: Get leads
operationId: getLeads
security:
- oauth:
- 'svc-lead:leads:readAll'
tags:
- Lead
parameters:
- name: uuid
in: query
description: |
Limits results to leads with the specified UUIDs.
schema:
type: array
items:
type: string
format: uuid
- name: email
in: query
description: |
Limits results to leads with the specified email addresses.
schema:
type: array
items:
type: string
- name: credit
in: query
description: >
Limits results to leads that have the specified self-assessed credit
bands.
schema:
type: array
items:
$ref: '#/components/schemas/ProvidedCreditRating'
- name: timestampField
in: query
description: >
Defines the timestamp to consider for the `from` and `to`
parameters.
schema:
type: string
default: createdAt
allOf:
- $ref: '#/components/schemas/TimestampField'
- name: from
in: query
description: >
The earliest timestamp to include in the result set. Will either
match against `createdAt` or `updatedAt`, depending on the value of
the `timestampField` parameter.
schema:
type: string
format: date-time
- name: to
in: query
description: >
The latest timestamp to include in the result set. Will either match
against `createdAt` or `updatedAt`, depending on the value of the
`timestampField` parameter.
schema:
type: string
format: date-time
- name: company
in: query
description: >
Limits the result set to leads belonging the companies with the
specified UUIDs
schema:
type: array
items:
type: string
format: uuid
- name: test
in: query
description: >
When true, only returns test leads; otherwise, only returns non-test
leads
schema:
type: boolean
default: false
- name: status
in: query
schema:
type: array
items:
$ref: '#/components/schemas/LeadActionType'
- name: sortDirection
in: query
schema:
$ref: '#/components/schemas/Order'
- name: offset
in: query
description: >
The number of resources to skip before the first resource in the
results.
schema:
type: integer
format: int32
default: 0
- name: limit
in: query
description: |
The maximum number of resources to include in the results.
schema:
type: integer
format: int32
default: 100
responses:
'200':
description: Leads matching the query parameters
content:
application/json:
schema:
$ref: '#/components/schemas/LeadResponseWrapper'
post:
summary: Create a lead
operationId: createLead
tags:
- Lead
requestBody:
description: A lead object
required: true
content:
application/json:
schema:
$ref: ./schemas/leadRequestJson.yml
responses:
'200':
$ref: ./responses/leadCreated.yml
'400':
$ref: ./responses/invalidLead.yml
security:
- oauth:
- 'svc-lead:leads:insert'
- 'svc-lead:leads:insert-test'
'/leads/{uuid}':
parameters:
- name: uuid
in: path
required: true
description: The UUID of the lead
schema:
type: string
format: uuid
get:
summary: Get a lead
description: >-
Return a `Lead` given its UUID. Depending on the access token scope, the
response may contain a subset of a `Lead` object.
operationId: getLead
tags:
- Lead
responses:
'200':
$ref: ./responses/leadFound.yml
'400':
$ref: ./responses/invalidLeadUuid.yml
'404':
description: '`Lead` with the given UUID does not exist'
security:
- oauth:
- 'svc-lead:leads:readAll'
patch:
summary: Update a lead
description: >-
Update a `Lead` by its UUID. Array fields (like `productTypes`) with new
values are _merged_ with existing values.
operationId: updateLead
tags:
- Lead
requestBody:
description: A Lead object
required: true
content:
application/json:
schema:
$ref: ./schemas/leadRequestJson.yml
responses:
'200':
description: Lead updated
content:
application/json:
schema:
$ref: ./schemas/leadUuid.yml
example:
uuid: 81c08fb9-559a-4bab-948c-ba38f8dd0dcc
links:
lead:
operationId: LeadController.getLead
description: Get the updated `Lead`
parameters:
uuid: $request.path.uuid
'400':
description: Invalid data
content:
application/json:
schema:
type: array
items:
$ref: ../core/schemas/apiError.yml
examples:
invalid-uuid:
value:
- message: >-
Cannot parse parameter uuid as UUID: Invalid UUID
string: 123
invalid-body:
value:
- message: >-
Invalid fields present: List(123 is not a valid email),
full request: ...
'404':
description: '`Lead` with the given UUID does not exist'
security:
- oauth:
- 'svc-lead:leads:insert'
- 'svc-lead:leads:insert-test'
/leads/rateTables:
post:
summary: Submit a lead and get a rate table
description: >-
A shorthand operation for `POST /leads` followed by a `POST
/originator/rateTables`. The response `RateTable` must still be queried
until there are no more `pendingResponses`
operationId: getRateTableForLead
tags:
- Lead
requestBody:
description: A Lead object
required: true
content:
application/json:
schema:
$ref: ./schemas/leadRequestJson.yml
responses:
'200':
description: The generated `RateTable`
content:
application/json:
schema:
$ref: ../originator/schemas/rateTablePublic.yml
examples:
rateTable:
value:
$ref: ../originator/examples/rateTablePublic.yml
'400':
description: Bad Request
content:
application/json:
schema:
type: array
items:
$ref: ../core/schemas/apiError.yml
security:
- oauth:
- 'svc-lead:leads:insert'
- 'svc-lead:leads:insert-test'
/leads/admin/universities:
get:
summary: Get all available universites (limited to first 10000)
operationId: getUniversities
tags:
- University
responses:
'200':
description: A list of all available universities
content:
application/json:
schema:
type: array
items:
$ref: ./schemas/university.yml
security:
- oauth:
- 'svc-lead:admin:read'
/admin/deduplicationConfigurations:
get:
x-lint-skip:
- index-endpoint-has-limit
summary: Get deduplication configurations
description: Return deduplication configurations based upon request parameters
operationId: getDeduplicationConfigurations
security:
- oauth:
- 'svc-lead:admin:read'
tags:
- Deduplication Configuration
parameters:
- name: id
in: query
schema:
type: array
items:
type: integer
format: int64
- name: supplySubAccountId
in: query
schema:
type: integer
format: int64
- name: supplySubAccountUuid
in: query
schema:
type: string
format: uuid
- name: includeDeleted
in: query
schema:
type: boolean
- name: offset
in: query
description: >
The number of resources to skip before the first resource in the
results.
schema:
type: integer
format: int64
default: 0
- name: limit
in: query
description: |
The maximum number of resources to include in the results.
schema:
type: integer
format: int32
default: 100
- name: sortBy
in: query
description: |
The attribute with which to sort the resources.
schema:
$ref: '#/components/schemas/DeduplicationConfigurationSort'
- name: order
in: query
description: |
The direction to use for ordering resources.
schema:
$ref: '#/components/schemas/Order'
responses:
'200':
description: Deduplication configurations matching the query parameters
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/DeduplicationConfiguration'
'400':
description: Invalid request provided
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ApiError'
post:
summary: Create a deduplication configuration
description: |
Create a deduplication configuration. Must specify exactly one of
`supplySubAccountId` or `supplySubAccountUuid`, otherwise an error will
be returned.
operationId: createDeduplicationConfiguration
security:
- oauth:
- 'svc-lead:admin:write'
tags:
- Deduplication Configuration
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/NewDeduplicationConfiguration'
responses:
'201':
description: The deduplication configuration was created successfully
content:
application/json:
schema:
$ref: '#/components/schemas/DeduplicationConfiguration'
'400':
description: Invalid request provided
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ApiError'
'/admin/deduplicationConfigurations/{id}':
delete:
parameters:
- name: id
in: path
required: true
schema:
type: integer
format: int64
summary: Delete a deduplication configuration
description: Delete a deduplication configuration
operationId: deleteDeduplicationConfiguration
security:
- oauth:
- 'svc-lead:admin:write'
tags:
- Deduplication Configuration
responses:
'204':
description: The deduplication configuration was successfully deleted.
'404':
description: No deduplication configuration exists for the specified ID

View File

@ -0,0 +1,48 @@
type: object
title: accountAdjustment
required:
- id
- accountId
- amount
- adjustmentReason
- createdAt
- createdBy
properties:
id:
title: Id
type: integer
format: int64
accountId:
title: Account Id
type: integer
format: int64
amount:
title: Adjustment Amount
type: number
format: double
adjustmentReason:
title: Adjustment Reason
$ref: ./adjustmentReason.yml
memo:
title: Memo
type: string
ledgerItemId:
title: Ledger Item Id
type: integer
format: int64
createdAt:
title: Created At
type: string
format: date-time
createdBy:
title: Created By
type: string
format: uuid
deletedAt:
title: Deleted At
type: string
format: date-time
deletedBy:
title: Deleted By
type: string
format: uuid

View File

@ -0,0 +1,20 @@
type: object
required:
- accountId
- amount
- adjustmentReason
properties:
accountId:
type: integer
format: int64
amount:
type: number
format: double
adjustmentReason:
$ref: ./adjustmentReason.yml
memo:
title: Memo
type: string
ledgerItemId:
type: integer
format: int64

View File

@ -0,0 +1,13 @@
title: Adjustment Reason
type: string
enum:
- monthly_ten_percent
- customer_reporting
- savings_revenue
- credit_card_revenue
- email_revenue
- pre_reported
- promotional
- lead_testing_adjustment
- other
- unknown

View File

@ -0,0 +1,54 @@
type: object
title: billingCycle
required:
- id
- accountId
- ledgerItemType
- effectiveAt
- termUnit
- netD
- createdAt
- createdBy
properties:
id:
title: Id
type: integer
format: int64
accountId:
title: Account Id
type: integer
format: int64
ledgerItemType:
title: Ledger Item Type
$ref: ./ledgerItemType.yml
effectiveAt:
title: Effective At
type: string
format: date
endDate:
title: End Date
type: string
format: date
termUnit:
title: Term Unit
$ref: ./termUnit.yml
netD:
title: NetD
type: number
format: double
createdAt:
title: Created At
type: string
format: date-time
createdBy:
title: Created By
type: string
format: uuid
deletedAt:
title: Deleted At
type: string
format: date-time
deletedBy:
title: Deleted By
type: string
format: uuid

View File

@ -0,0 +1,31 @@
type: object
title: billingCycleCreateData
required:
- accountId
- ledgerItemType
- effectiveAt
- termUnit
- netD
properties:
accountId:
title: Account Id
type: integer
format: int64
ledgerItemType:
title: Ledger Item Type
$ref: ./ledgerItemType.yml
effectiveAt:
title: Effective At
type: string
format: date
endDate:
title: End Date
type: string
format: date
termUnit:
title: Term Unit
$ref: ./termUnit.yml
netD:
title: NetD
type: number
format: double

View File

@ -0,0 +1,9 @@
type: object
title: billingCycleUpdateData
required:
- endDate
properties:
endDate:
title: End Date
type: string
format: date

View File

@ -0,0 +1,75 @@
type: object
title: ledgerItem
required:
- id
- accountId
- amount
- startDate
- endDate
- dueDate
- ledgerItemType
- billingCycleId
- details
- createdAt
- createdBy
properties:
id:
title: Id
type: integer
format: int64
accountId:
title: Account Id
type: integer
format: int64
amount:
title: Amount
type: number
format: double
memo:
title: Memo
type: string
startDate:
title: Start Date
type: string
format: date
endDate:
title: End Date
type: string
format: date
dueDate:
title: Due Date
type: string
format: string
ledgerItemType:
title: Ledger Item Type
$ref: ./ledgerItemType.yml
reason:
$ref: ./ledgerItemReason.yml
previousLedgerItemId:
title: Previous Ledger Item Id
type: integer
format: int64
billingCycleId:
title: Billing Cycle Id
type: integer
format: int64
details:
type: array
items:
$ref: ./ledgerItemDetail.yml
createdAt:
title: Created At
type: string
format: date-time
createdBy:
title: Created By
type: string
format: uuid
deletedAt:
title: Deleted At
type: string
format: date-time
deletedBy:
title: Deleted By
type: string
format: uuid

View File

@ -0,0 +1,37 @@
type: object
title: ledgerItemAdjustment
required:
- id
- accountAdjustmentId
- ledgerItemId
- createdAt
- createdBy
properties:
id:
title: Id
type: integer
format: int64
accountAdjustmentId:
title: Account Adjustment Id
type: integer
format: int64
ledgerItemId:
title: Ledger Item Id
type: integer
format: int64
createdAt:
title: Created At
type: string
format: date-time
createdBy:
title: Created By
type: string
format: uuid
deletedAt:
title: Deleted At
type: string
format: date-time
deletedBy:
title: Deleted By
type: string
format: uuid

View File

@ -0,0 +1,14 @@
type: object
title: ledgerItemCreateData
required:
- billingCycleId
- targetDate
properties:
billingCycleId:
title: Billing Cycle Id
type: integer
format: int64
targetDate:
title: Target Date
type: string
format: date

View File

@ -0,0 +1,39 @@
type: object
title: ledgerItemCsvData
required:
- ledgerItemId
- month
- partner
- accountRevenue
- billDate
- dueDate
- lineDescription
properties:
ledgerItemId:
title: Ledger Item Id
type: integer
format: int64
month:
title: Month
$ref: ../../core/schemas/month.yml
partner:
title: Partner
type: string
partnerName:
title: Partner Name
type: string
accountRevenue:
title: Account Revenue
type: number
format: double
billDate:
title: Bill Date
type: string
format: date
dueDate:
title: Due Date
type: string
format: date
lineDescription:
title: Line Description
type: string

View File

@ -0,0 +1,45 @@
type: object
title: ledgerItemDetail
required:
- id
- ledgerItemId
- subAccountId
- amount
- createdAt
- createdBy
properties:
id:
title: Id
type: integer
format: int64
ledgerItemId:
title: Ledger Item Id
type: integer
format: int64
subAccountId:
title: Sub Account Id
type: integer
format: int64
amount:
title: Amount
type: number
format: double
contractType:
title: Contract Type
type: string
createdAt:
title: Created At
type: string
format: date-time
createdBy:
title: Created By
type: string
format: uuid
deletedAt:
title: Deleted At
type: string
format: date-time
deletedBy:
title: Deleted By
type: string
format: uuid

View File

@ -0,0 +1,5 @@
type: string
enum:
- standard
- settlement
- oneOff

View File

@ -0,0 +1,39 @@
type: object
title: ledgerItemReconciliation
required:
- id
- ledgerItemId
- reconciliationType
- createdAt
- createdBy
properties:
id:
title: Id
type: integer
format: int64
ledgerItemId:
title: Ledger Item Id
type: integer
format: int64
reconciliationType:
title: Reconciliation Type
$ref: ./reconciliationType.yml
memo:
title: Memo
type: string
createdAt:
title: Created At
type: string
format: date-time
createdBy:
title: Created By
type: string
format: uuid
deletedAt:
title: Deleted At
type: string
format: date-time
deletedBy:
title: Deleted By
type: string
format: uuid

View File

@ -0,0 +1,19 @@
type: object
title: ledgerItemReconciliationCreateData
required:
- ledgerItemIds
- reconciliationType
- memo
properties:
ledgerItemIds:
title: Ledger Item Ids
type: array
items:
type: integer
format: int64
reconciliationType:
title: Reconciliation Type
$ref: ./reconciliationType.yml
memo:
title: Memo
type: string

View File

@ -0,0 +1,8 @@
type: object
title: ledgerItemRecreateData
required:
- copyAdjustments
properties:
copyAdjustments:
title: Copy Adjustments
type: boolean

View File

@ -0,0 +1,27 @@
type: object
required:
- id
- ledgerItemIds
- newLedgerItemIds
- createdAt
- createdBy
properties:
id:
type: integer
format: int64
ledgerItemIds:
type: array
items:
type: integer
format: int64
newLedgerItemIds:
type: array
items:
type: integer
format: int64
createdAt:
type: string
format: date-time
createdBy:
type: string
format: uuid

View File

@ -0,0 +1,12 @@
type: object
required:
- ledgerItemIds
- copyAdjustments
properties:
ledgerItemIds:
type: array
items:
type: integer
format: int64
copyAdjustments:
type: boolean

View File

@ -0,0 +1,6 @@
title: Ledger Item Type
type: string
enum:
- payable
- receivable
- unknown

View File

@ -0,0 +1,61 @@
type: object
required:
- id
- accountId
- accountName
- startDate
- endDate
- reason
- calculatedPayout
- adjustment
- totalPayout
- dueDate
- reconciliationType
- createdAt
- createdBy
properties:
id:
type: integer
format: int64
accountId:
type: integer
format: int64
accountName:
type: string
startDate:
type: string
format: date
endDate:
type: string
format: date
reason:
$ref: ./ledgerItemReason.yml
calculatedPayout:
type: number
format: float
adjustment:
type: number
format: float
totalPayout:
type: number
format: float
dueDate:
type: string
format: date
reconciliationType:
$ref: ./reconciliationType.yml
reconciliationTypeUpdateAt:
type: string
format: date-time
createdAt:
type: string
format: date-time
createdBy:
type: string
format: uuid
deletedAt:
type: string
format: date-time
deletedBy:
type: string
format: uuid

View File

@ -0,0 +1,55 @@
type: object
required:
- id
- accountId
- accountName
- startDate
- endDate
- calculatedPayout
- adjustment
- totalPayout
- dueDate
- reconciliationType
- createdAt
- createdBy
properties:
id:
type: integer
format: int64
accountId:
type: integer
format: int64
accountName:
type: string
startDate:
type: string
format: date
endDate:
type: string
format: date
calculatedPayout:
type: number
format: float
adjustment:
type: number
format: float
totalPayout:
type: number
format: float
dueDate:
type: string
format: date
reconciliationType:
$ref: ./reconciliationType.yml
createdAt:
type: string
format: date-time
createdBy:
type: string
format: uuid
deletedAt:
type: string
format: date-time
deletedBy:
type: string
format: uuid

View File

@ -0,0 +1,8 @@
title: Reconciliation Type
type: string
enum:
- paid
- ignored
- unpaid
- overdue
- unknown

View File

@ -0,0 +1,7 @@
title: Term Unit
type: string
enum:
- week
- bi_monthly
- month
- unkown

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More