openapi: 3.2.0
info:
title: Lili API
contact:
name: Lili Dev Resources
email: dev-resources@lili.co
url: https://lili.co
version: '1.0'
description: 'Operations tagged Lili across 3 of this provider''s published API definitions: lili-application-api-openapi.yml, lili-customer-management-api-openapi.yml, lili-webhooks-api-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- description: Lili Server
url: https://sandbox.lili.co
security:
- accessKey: []
tags:
- name: Lili
paths:
/lili/api/v1/lead:
put:
operationId: registerAccount
responses:
'201':
description: Created with a URL of the onboarding link
content:
application/json:
schema:
$ref: '#/components/schemas/LeadResponse'
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties: {}
application/xml:
schema:
$ref: '#/components/schemas/JsonErrorResponse'
summary: Create Application
description: 'The Create Application API is used to create a new Application in the Lili platform.
The respon contains a UUID representing the applicant that was created in the Lili platform, and a URL that allows initializing the application process with the pre-filled information.'
security:
- accessKey: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/LeadRequest'
tags:
- Lili
servers:
- description: Lili Server
url: https://sandbox.lili.co
/lili/api/v1/lead/{customerId}:
post:
operationId: updateLead
parameters:
- name: customerId
in: path
required: true
schema:
type: string
responses:
'200':
description: Success
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties: {}
application/xml:
schema:
$ref: '#/components/schemas/JsonErrorResponse'
summary: Update Lead
description: The Update Lead API is used to update an existing lead in the Lili platform.
security:
- accessKey: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/LeadRequest'
tags:
- Lili
servers:
- description: Lili Server
url: https://sandbox.lili.co
/lili/api/v1/lead/{customerId}/upload:
put:
operationId: uploadAdditionalDoc
parameters:
- name: customerId
in: path
required: true
schema:
type: string
responses:
'200':
description: Document uploaded
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties: {}
application/xml:
schema:
$ref: '#/components/schemas/JsonErrorResponse'
summary: Upload Additional Document
description: The Upload Additional Document API is used to upload an additional document to the Lili platform for a given lead.
security:
- accessKey: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/LeadUpload'
tags:
- Lili
servers:
- description: Lili Server
url: https://sandbox.lili.co
/lili/api/v1/{customerId}/bankLetter:
get:
summary: Download Bank Letter
tags:
- Lili
responses: {}
operationId: createPaymentNotification
parameters:
- name: customerId
description: The customer ID, as provided in the create lead response
in: path
required: true
schema:
type: string
description: Gets a PDF containing a bank letter for a customer
security:
- accessKey: []
servers:
- description: Lili Server
url: https://sandbox.lili.co
/lili/api/v1/payments:
put:
summary: Register a payment transaction
tags:
- Lili
responses:
'200':
description: Payment request created
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentResponse'
operationId: createPaymentNotification
description: Creates a payment notification in the Lili system
security:
- accessKey: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentRequest'
servers:
- description: Lili Server
url: https://sandbox.lili.co
/lili/api/v1/partner/payments:
get:
summary: Get a list of payments related to the customer
tags:
- Lili
responses:
'200':
description: List of payments related to the customer
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentListResponse'
operationId: paymentList
description: Get a list of payments related to the customer
security:
- accessKey: []
parameters:
- name: customerId
description: The customer ID, as provided in the create lead response
in: query
required: false
schema:
type: string
- name: receiverAccountNumber
description: The receiver account number
in: query
required: false
schema:
type: string
- name: startDate
description: Start date for the payment list
in: query
required: false
schema:
type: string
format: date-time
- name: endDate
description: End date for the payment list
in: query
required: false
schema:
type: string
format: date-time
servers:
- description: Lili Server
url: https://sandbox.lili.co
/lili/api/v1/webhooks:
parameters: []
get:
operationId: getAll
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookListResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/JsonErrorResponse'
x-stoplight:
id: id2csp964yy3d
summary: Get All Webhooks
description: The Get all webhooks returns a list of all the webhooks the platform registered in Lili
security:
- accessKey: []
tags:
- Lili
put:
operationId: addWebhook
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookRequest'
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookCreateResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/JsonErrorResponse'
x-stoplight:
id: 9taghzldj0sxn
summary: Create Webhook
description: 'The Create Webhook API registers a new Webhook Listener in the Lili platform.
As part of the response object, a token is returned. This token will be returned on any future webhook call to ensure webhook legitimacy.'
security:
- accessKey: []
tags:
- Lili
servers:
- description: Lili Server
url: https://sandbox.lili.co
/lili/api/v1/webhooks/{webhookId}:
parameters:
- schema:
type: string
format: uuid
name: webhookId
in: path
required: true
description: The unique ID of the webhook
get:
operationId: getWebhook
parameters:
- name: webhookId
description: The webhook ID
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/JsonErrorResponse'
x-stoplight:
id: 4hd6lz54ldtvq
summary: Get Webhook Details
description: The Get Webhook Details returns the details of an webhook that was registered in the Lili system.
security:
- accessKey: []
tags:
- Lili
post:
operationId: updateWebhook
parameters:
- name: webhookId
description: The webhook ID
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookRequest'
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/JsonErrorResponse'
x-stoplight:
id: z5nqytc3ge0wh
summary: Update Webhook
description: 'The Update Webhook updates a webhook that is registered in the Lili system. Usually, this is used to disable an active webhook, or reactivate it. '
security:
- accessKey: []
tags:
- Lili
delete:
operationId: deleteWebhook
parameters:
- name: webhookId
description: The webhook ID
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/JsonErrorResponse'
x-stoplight:
id: t7k2nnwj8llif
summary: Delete Webhook
description: The Delete Webhook API is used to completely delete a registered webhook.
security:
- accessKey: []
tags:
- Lili
servers:
- description: Lili Server
url: https://sandbox.lili.co
components:
schemas:
UBOData:
title: UBOData
type: object
required:
- email
properties:
email:
type: string
description: The unique ID of the webhook
format: email
phoneNumber:
type: string
description: 'Customer phone number. E.164 format. '
ssn:
type: string
pattern: ^(?!666|000|9\d{2})\d{3}-\d{2}-(?!0{4})\d{4}$|^(?!666|000|9\d{2})\d{3}\d{2}(?!0{4})\d{4}$
example: XXX-XX-XXXX
format: regex
description: Customer SSN
birthDate:
type: string
format: date
description: Customer birth date
firstName:
type: string
description: Customer first name
lastName:
type: string
description: Customer last name
passportNumber:
type: string
description: Passport number
idGovNumber:
type: string
description: Non US customer National ID number
idCountry:
type: string
description: "National ID country (Alpha 2, ISO 3166 format). \nNote that if a passport number is supplied, this is the passport issuance country"
idExpirationDate:
type: string
description: National ID expiration date. Note that if passport number is supplied, this is the passport expiration date
role:
enum:
- PARTNER
- PARTNER_FULL_ACCESS
description: The UBO role in the account
ownershipPercent:
type: number
description: The ownership percentage of the UBO
minimum: 25
maximum: 100
address:
$ref: '#/components/schemas/AddressData'
description: The UBO address
UBOResponseData:
title: UBOResponseData
type: object
properties:
email:
type: string
description: The UBO email
format: email
uboId:
type: string
format: uuid
description: A unique ID for the UBO
DocumentData:
title: DocumentData
type: object
required:
- content
- contentType
- fileName
properties:
content:
type: string
description: File content, Base64 decoded
contentType:
type: string
description: The file content type. All standard mime types are supported
fileName:
type: string
description: The name of the file
llcFileType:
type: string
description: The type of the file
enum:
- IRS_EIN_LETTER
- ARTICLES_OF_ORGANIZATION
- LETTER_OF_REINSTATEMENT
- GOVERNMENT_IDENTIFICATION
- ARTICLES_OF_INCORPORATION
- SIGNED_PARTNERSHIP_AGREEMENT
- AMENDMENT_DOCUMENT
- OPERATING_AGREEMENT
- UTILITY_BILL
- PASSPORT
- SS4_DOCUMENT
LeadRequest:
type: object
description: Contains the information about an account partner wants to register
required:
- email
properties:
email:
type: string
description: The unique ID of the webhook
format: email
phoneNumber:
type: string
description: 'Customer phone number. E.164 format. '
ssn:
type: string
pattern: ^(?!666|000|9\d{2})\d{3}-\d{2}-(?!0{4})\d{4}$|^(?!666|000|9\d{2})\d{3}\d{2}(?!0{4})\d{4}$
example: XXX-XX-XXXX
format: regex
description: Customer SSN
birthDate:
type: string
format: date
description: Customer birth date
firstName:
type: string
description: Customer first name
lastName:
type: string
description: Customer last name
line1:
type: string
description: Customer address line1
line2:
type: string
description: Customer address line2
city:
type: string
minLength: 1
maxLength: 30
description: Customer address city
state:
type: string
example: NY
description: Customer address 2 letter state code
country:
type: string
example: NY
description: Customer country of residence (Alpha 2, ISO 3166 format)
postalCode:
type: string
pattern: ^\d{5}(-\d{4})?$
example: XXXXX
format: regex
description: Customer address postal code
ein:
type: string
pattern: ^(0[1-6]|1[0-6]|2[0-7]|3[0-9]|4[0-8]|5[0-9]|6[0-8]|7[1-7]|8[0-8]|9[0-5]|9[8-9])[0-9]{7}$
format: regex
description: Business EIN
businessName:
type: string
description: Business name
businessAddress:
$ref: '#/components/schemas/AddressData'
description: The physical (operational) address where the business operates day-to-day. Must be a US address. Used as the address in the Beneficial Ownership file.
registeredBusinessAddress:
$ref: '#/components/schemas/AddressData'
description: The registered business address (the address the business provided to the state of formation to accept legal process). Can be outside of the US, in case only a registered agent address is available. Used as the billing address and presented on bank statements and invoices.
mailingAddress:
$ref: '#/components/schemas/AddressData'
description: Business mailing address. Optional. Must be in the US, can be a registered agent address. Used as the card shipment address for Non-US applicants when selected.
businessType:
enum:
- DBA
- LLC
- MMLLC
- GENERAL_PARTNERSHIP
- LLP
- S_CORP
- SSN
- C_CORP
description: Incorporation type of the business
incorporationState:
type: string
description: State the business was incorporated in
uniqueId:
type: string
description: Unique ID to be used by the partner to identify the customer
duns:
type: string
description: Business DUNS number
passportNumber:
type: string
description: Passport number
idGovNumber:
type: string
description: Non US customer National ID number
idCountry:
type: string
description: "National ID country (Alpha 2, ISO 3166 format). \nNote that if a passport number is supplied, this is the passport issuance country"
idExpirationDate:
type: string
description: National ID expiration date. Note that if passport number is supplied, this is the passport expiration date
ownershipPercent:
type: number
description: The ownership percentage of the customer
minimum: 0
maximum: 100
documentUrls:
type: array
description: A list of URLs containing the business documents of the customer
items:
type:
- string
- 'null'
documentDataList:
type: array
description: A list of Base64 encoded documents
items:
$ref: '#/components/schemas/DocumentData'
uboList:
type: array
description: A list of UBOs with >25% of the business ownership
items:
$ref: '#/components/schemas/UBOData'
naicsCode:
type: string
description: NAICS code of the business
campaign:
type: string
description: Campaign code
metadata:
type: object
additionalProperties:
type: string
description: A map of key-value pairs to store additional partner-specific data on the customer
example:
key1: value1
key2: value2
eddQuestionData:
type: array
description: A list of EDD questions and answers
items:
$ref: '#/components/schemas/EDDQuestionData'
AddressData:
title: AddressData
type: object
properties:
line1:
type: string
description: Line 1 of the address
line2:
type: string
description: Line 2 of the address
city:
type: string
maxLength: 30
minLength: 1
description: City
state:
type: string
example: NY
description: State 2 letter code (ISO 3166 format)
postalCode:
type: string
example: XXXXX
description: Postal code
country:
type: string
example: US
description: Country 2 letter code (ISO 3166 format)
LeadUpload:
type: object
description: Contains the information about an additional document to upload
required:
- documentDataList
properties:
documentDataList:
type: array
description: A list of Base64 encoded documents
items:
$ref: '#/components/schemas/DocumentData'
JsonSingleError:
type: object
properties:
code:
type: integer
description: A unique numeric code representing the error
codeName:
type: string
description: A unique string code representing the error
message:
type: string
description: Human readable description of the error
localizedMessage:
type: string
description: Human readable description of the error, localized
description: A specific server error
x-internal: false
JsonErrorResponse:
type: object
description: An object representing a server error
properties:
httpStatus:
type: integer
description: The http status of the error
reasonPhrase:
type: string
description: Human readable description of the error
errors:
description: A list of all the errors that the server reported
type: array
items:
$ref: '#/components/schemas/JsonSingleError'
LeadResponse:
type: object
description: Contains the information on an account registration.
required:
- customerId
- location
- token
- personId
properties:
customerId:
type: string
format: uuid
description: A unique ID for the customer (same as person ID)
location:
type: string
format: uri
description: A unique URL to be used by the customer for a personalized application flow
token:
type: string
description: The token that should be sent to Lili Connect UI
partnerSuppliedId:
type: string
description: The uniqueID provided by the partner in the Create Application call. Empty if none was supplied
personId:
type: string
description: The unique ID of the registered person
format: uuid
deprecated: true
metadata:
type: object
additionalProperties:
type: string
description: The metadata key-value pairs stored on the customer
uboData:
type: array
description: The UBOs of the business
items:
$ref: '#/components/schemas/UBOResponseData'
EDDQuestionData:
type: object
properties:
question:
type: string
description: The question
answer:
type: string
description: The answer
questionId:
type: string
description: The answer
PaymentListResponse:
title: PaymentListResponse
type: object
properties:
paymentItemResponseList:
type: array
items:
$ref: '#/components/schemas/PaymentListItemResponse'
PaymentRequest:
title: PaymentRequest
type: object
properties:
customerId:
type: string
amount:
type: number
effectiveDate:
type: string
format: date-time
payeeName:
type: string
receiverAccountNumber:
type: string
traceNumber:
type: string
originatorRoutingNumber:
type: string
originatorAccountNumber:
type: string
PaymentListItemResponse:
title: PaymentListItemResponse
type: object
properties:
paymentId:
type: string
description: The payment ID
submissionDate:
type: string
format: date-time
description: The payment submissiondate
status:
enum:
- CREATED
- PROCESSED
- FAILED
PaymentResponse:
title: PaymentResponse
type: object
properties:
paymentId:
type: string
description: The payment ID
details:
type: string
description: The payment details
status:
enum:
- SUCCESS
- ACCOUNT_NOT_FOUND
- ACCOUNT_CLOSED
- NOT_RELEASED_EARLY
- TECHNICAL_ERROR
- BAD_DATA
- EFFECTIVE_DATE_PAST
description: The payment status
WebhookRequest:
type: object
description: Contains the information to create/update a specific webhook
properties:
serverUrl:
type: string
description: URL that will receive the webhook call
format: uri
status:
enum:
- ACTIVE
- DISABLED
description: The status of the webhook
version:
type: string
description: The version of the webhook
enum:
- V1_0
- V2_0
default: V1_0
type:
type: string
description: The type of the webhook
enum:
- ONBOARDING
- PAYMENT
- ALL
default: ALL
required:
- serverUrl
- status
WebhookListResponse:
type: object
properties:
webhookList:
type: array
items:
$ref: '#/components/schemas/WebhookResponse'
description: ''
WebhookCreateResponse:
type: object
x-stoplight:
id: xwbximbdqq069
description: Contains the information about a specific webhook
properties:
externalId:
type: string
description: The unique ID of the webhook
format: uuid
token:
type: string
description: The unique ID of the webhook
serverUrl:
type: string
format: uri
description: The URL that will receive the webhook calls
status:
description: The status of the webhook
enum:
- ACTIVE
- DISABLED
required:
- externalId
- token
- serverUrl
- status
title: WebhookCreateResponse
JsonSingleError_2:
type: object
x-stoplight:
id: ix4chu03g8eza
properties:
code:
type: integer
description: A unique numeric code representing the error
codeName:
type: string
description: A unique string code representing the error
message:
type: string
description: Human readable description of the error
localizedMessage:
type: string
description: Human readable description of the error, localized
description: A specific server error
WebhookResponse:
type: object
description: Contains the information about a specific webhook
properties:
externalId:
type: string
description: The unique ID of the webhook
format: uuid
serverUrl:
type: string
format: uri
description: The URL that will receive the webhook calls
status:
description: The status of the webhook
enum:
- ACTIVE
- DISABLED
version:
type: string
description: The version of the webhook
enum:
- V1_0
- V2_0
default: V1_0
type:
type: string
description: The type of the webhook
enum:
- ONBOARDING
- PAYMENT
- ALL
default: ALL
required:
- externalId
- serverUrl
- status
securitySchemes:
accessKey:
name: Authorization
type: apiKey
in: header
description: 'The authorization in the format:
Authorization: Lili accessKey:secretKey'
x-refined-from:
- lili-application-api-openapi.yml
- lili-customer-management-api-openapi.yml
- lili-webhooks-api-openapi.yml