openapi: 3.1.0
info:
contact:
email: support@lithic.com
description: >
The Lithic Developer API is designed to provide a predictable programmatic interface for accessing your
Lithic account through an API and transaction webhooks.
Note that your API key is a secret and should be treated as such. Don't share it with anyone, including
us. We will never ask you for it.
termsOfService: https://lithic.com/legal/terms
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0.txt
title: Lithic Developer API
version: 1.0.0
servers:
- description: Sandbox environment that provides key functionality mirroring production
url: https://sandbox.lithic.com
tags:
- name: 3DS
- name: Account
- name: Account Holder
- name: Auth Stream Access (ASA)
- name: Auth Rules
- name: Balance
- name: Book Transfer
- name: Card
- name: Card Bulk Orders
- name: Credit Product
- name: Chargeback
- name: Event
- name: External Bank Account
- name: External Payments
- name: Financial Account
- name: Fraud Report
- name: Funding Events
- name: Hold
- name: Managed Disputes
- name: Management Operations
- name: Network Program
- name: Payment
- name: Responder Endpoints
- name: Settlement Report
- name: Statements
- name: Status
- name: Tokenization
- name: Transaction
- name: Transfer Limits
paths:
/v1/account_holders:
get:
description: Get a list of individual or business account holders and their KYC or KYB evaluation status.
operationId: getAccountHolders
parameters:
- description: If applicable, represents the external_id associated with the account_holder.
example: 00000000-0000-0000-0000-000000000001
in: query
name: external_id
schema:
format: uuid
type: string
- description: The number of account_holders to limit the response to.
example: 10
in: query
name: limit
schema:
type: integer
- description: >-
(Individual Account Holders only) The first name of the account holder. The query is case
insensitive and supports partial matches.
example: John
in: query
name: first_name
schema:
type: string
- description: >-
(Individual Account Holders only) The last name of the account holder. The query is case
insensitive and supports partial matches.
example: Appleseed
in: query
name: last_name
schema:
type: string
- description: >-
(Business Account Holders only) The legal business name of the account holder. The query is case
insensitive and supports partial matches.
example: Busy Business, Inc.
in: query
name: legal_business_name
schema:
type: string
- description: Phone number of the account holder. The query must be an exact match.
example: '+15555555555'
in: query
name: phone_number
schema:
type: string
- description: Email address of the account holder. The query must be an exact match, case insensitive.
example: example@domain.com
in: query
name: email
schema:
type: string
- $ref: '#/components/parameters/endingBefore'
- $ref: '#/components/parameters/startingAfter'
- $ref: '#/components/parameters/beginTime'
- $ref: '#/components/parameters/endTime'
responses:
'200':
content:
application/json:
examples:
getAccountHoldersResponse:
value:
data:
- account_token: 6b67b340-ed11-4463-a33d-0d7f7fdcd28c
business_account_token: 00000000-0000-0000-0000-000000000000
created: '2024-01-11T19:50:36.105448'
email: john@appleseed.com
exemption_type: AUTHORIZED_USER
external_id: '+15555555555'
individual:
address:
address1: 123 Main Street
city: New York
country: USA
postal_code: '10128'
state: NY
dob: '2000-01-01'
email: john@appleseed.com
first_name: John
last_name: Appleseed
phone_number: '+15555555555'
entity_token: 49c978db-20c4-46d8-9db4-b0ef28c03533
phone_number: '+15555555555'
status: ACCEPTED
token: b68b7424-aa69-4cbc-a946-30d90181b621
user_type: INDIVIDUAL
verification_application:
created: '2024-01-11T19:58:24.821848'
status: ACCEPTED
status_reasons: []
updated: '2024-01-11T19:58:24.821848'
- account_token: 732f7328-a2d7-4281-a264-e8cb5af8d392
business_account_token: 00000000-0000-0000-0000-000000000000
business_entity:
address:
address1: 22 Street North
city: New York
country: USA
postal_code: '10004'
state: NY
dba_business_name: Busy Business, Inc.
government_id: 98-7654321
legal_business_name: Busy Business, Inc.
parent_company: Example company
phone_numbers:
- '+15555555555'
entity_token: f360a3c0-24e6-4852-ae82-27916a5c4e86
control_person:
address:
address1: 451 New Forest Way
city: Springfield
country: USA
postal_code: '68022'
state: IL
dob: '1991-03-08T08:00:00Z'
email: john@busybusiness.com
first_name: John
last_name: Appleseed
phone_number: '+15555555555'
entity_token: 9d657ba0-7c8a-4946-a596-f99d978a4137
created: '2024-01-11T19:50:36.105449'
exemption_type: AUTHORIZED_USER
external_id: 851030f1-9b7b-4939-8ac9-161bd972d26f
naics_code: '541512'
token: fa68ed76-9d02-4d45-8a3f-782f3b6a8b3f
user_type: BUSINESS
verification_application:
created: '2024-01-11T19:50:36.105449'
status: PENDING_REVIEW
status_reasons: []
updated: '2024-01-11T19:50:36.105449'
has_more: false
schema:
properties:
data:
items:
$ref: '#/components/schemas/AccountHolder'
type: array
has_more:
description: Whether there are more accounts to be retrieved.
type: boolean
required:
- data
- has_more
type: object
description: OK
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Get a list of individual or business account holders
tags:
- Account Holder
post:
description: >-
Create an account holder and initiate the appropriate onboarding workflow. Account holders and
accounts have a 1:1 relationship. When an account holder is successfully created an associated account
is also created.
All calls to this endpoint will return a synchronous response. The response time will depend on the
workflow. In some cases, the response may indicate the workflow is under review or further action will
be needed to complete the account creation process.
This endpoint can only be used on accounts that are part of the program that the calling API key
manages.
operationId: postAccountHolders
requestBody:
content:
application/json:
examples:
kybRequest:
summary: Create an account holder with KYB workflow
value:
beneficial_owner_individuals:
- address:
address1: 300 Normal Forest Way
city: Portland
country: USA
postal_code: '90210'
state: OR
dob: '1991-03-08T08:00:00Z'
email: tim@left-earth.com
first_name: Timmy
government_id: 211-23-1412
last_name: Turner
phone_number: '+15555555555'
business_entity:
address:
address1: 123 Old Forest Way
city: Omaha
country: USA
postal_code: '61022'
state: NE
dba_business_name: Example Business Solutions
government_id: 12-3456789
legal_business_name: Busy Business, Inc.
phone_numbers:
- '+15555555555'
control_person:
address:
address1: 451 New Forest Way
city: Springfield
country: USA
postal_code: '68022'
state: IL
birthdate: '1980-04-12'
dob: '1991-03-08T08:00:00Z'
email: tom@middle-pluto.com
first_name: Tom
government_id: 111-23-1412
last_name: Timothy
phone_number: '+15555555555'
kyb_passed_timestamp: '2022-03-08T08:00:00Z'
naics_code: '541512'
nature_of_business: Software company selling solutions to the restaurant industry
tos_timestamp: '2022-03-08T08:00:00Z'
website_url: https://www.mybusiness.com
workflow: KYB_BYO
kybDelegatedRequest:
summary: Create an account holder with KYB_DELEGATED workflow
value:
business_entity:
address:
address1: 123 Old Forest Way
city: Omaha
country: USA
postal_code: '61022'
state: NE
legal_business_name: Busy Business, Inc.
kycExemptRequest:
summary: Create an account holder with KYC Exempt workflow
value:
address:
address1: 123 Old Forest Way
city: Omaha
country: USA
postal_code: '68022'
state: NE
business_account_token: e87db14a-4abf-4901-adad-5d5c9f46aff2
email: tom@middle-earth.com
first_name: Tom
kyc_exemption_type: AUTHORIZED_USER
last_name: Bombadil
phone_number: '+15555555555'
workflow: KYC_EXEMPT
kycRequest:
summary: Create an account holder with KYC workflow
value:
individual:
address:
address1: 123 Old Forest Way
city: Omaha
country: USA
postal_code: '68022'
state: NE
dob: '1991-03-08 08:00:00'
email: tom@middle-earth.com
first_name: Tom
government_id: 111-23-1412
last_name: Bombadil
phone_number: '+15555555555'
tos_timestamp: '2022-03-08T08:00:00Z'
workflow: KYC_BASIC
schema:
oneOf:
- $ref: '#/components/schemas/Kyb'
- $ref: '#/components/schemas/KybDelegated'
- $ref: '#/components/schemas/Kyc'
- $ref: '#/components/schemas/KycExempt'
required: true
responses:
'200':
content:
application/json:
examples:
acceptedEvaluationResponse:
summary: Accepted KYC/KYB evaluation response
value:
account_token: b68b7424-aa69-4cbc-a946-30d90181b621
status: ACCEPTED
status_reasons: []
token: 12345678-aa69-4cbc-a946-30d90181b621
created: '2024-09-16T20:13:41.865274'
pendingResubmitResponse:
summary: Pending resubmit KYC evaluation response
value:
account_token: b68b7424-aa69-4cbc-a946-30d90181b621
status: PENDING_RESUBMIT
status_reasons:
- NAME_VERIFICATION_FAILURE
token: 12345678-aa69-4cbc-a946-30d90181b621
created: '2024-09-16T20:13:41.865274'
pendingKYBReviewResponse:
summary: Pending review response for a KYB_BASIC request
value:
account_token: 6016af53-87d4-42aa-b021-0170644d6458
status: PENDING_REVIEW
status_reasons:
- PRIMARY_BUSINESS_ENTITY_ADDRESS_VERIFICATION_FAILURE
token: 12345678-aa69-4cbc-a946-30d90181b621
created: '2024-09-16T20:13:41.865274'
required_documents:
- entity_token: 48afea0a-38b0-44e4-aaa7-c2b5413da9d3
valid_documents:
- EIN_LETTER
- TAX_RETURN
- CERTIFICATE_OF_GOOD_STANDING
- ARTICLES_OF_INCORPORATION
- ARTICLES_OF_ORGANIZATION
- CERTIFICATE_OF_FORMATION
- BYLAWS
- GOVERNMENT_BUSINESS_LICENSE
- PARTNERSHIP_AGREEMENT
- BANK_STATEMENT
- UTILITY_BILL_STATEMENT
status_reasons:
- PRIMARY_BUSINESS_ENTITY_ADDRESS_VERIFICATION_FAILURE
schema:
properties:
account_token:
description: Globally unique identifier for the account.
format: uuid
type: string
created:
description: Timestamp of when the account holder was created.
format: date-time
type: string
external_id:
description: >-
Customer-provided token that indicates a relationship with an object outside of the
Lithic ecosystem.
type: string
status:
description: |
KYC and KYB evaluation states.
Note:
* `PENDING_REVIEW` is only applicable for the `KYB_BASIC` workflow.
enum:
- ACCEPTED
- PENDING_REVIEW
- PENDING_DOCUMENT
- PENDING_RESUBMIT
- REJECTED
type: string
status_reasons:
description: Reason for the evaluation status.
items:
$ref: '#/components/schemas/status-reasons'
type: array
required_documents:
description: >-
Only present for "KYB_BASIC" workflow. A list of documents required for the account
holder to be approved.
type: array
items:
$ref: '#/components/schemas/required-document'
token:
description: Globally unique identifier for the account holder.
format: uuid
type: string
required:
- account_token
- status
- status_reasons
- token
type: object
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Create an individual or business account holder
tags:
- Account Holder
/v1/account_holders/{account_holder_token}:
get:
description: Get an Individual or Business Account Holder and/or their KYC or KYB evaluation status.
operationId: getAccountHolder
parameters:
- $ref: '#/components/parameters/accountHolderTokenPath'
responses:
'200':
content:
application/json:
examples:
kycAcceptedReview:
summary: Accepted KYC evaluation response
value:
token: b68b7424-aa69-4cbc-a946-30d90181b621
account_token: 6b67b340-ed11-4463-a33d-0d7f7fdcd28c
business_account_token: 5310469f-3a16-44ce-89f8-cdc4446fcfdf
external_id: ''
created: '2024-01-11T19:50:36.105449'
user_type: INDIVIDUAL
verification_application:
created: '2024-01-11T19:50:36.105449'
updated: '2024-01-11T19:50:36.105449'
status: ACCEPTED
status_reasons: []
individual:
address:
address1: 451 New Forest Way
city: Springfield
state: IL
postal_code: '68022'
country: USA
dob: '1991-03-08T08:00:00Z'
email: john@appleseed.com
first_name: John
last_name: Appleseed
phone_number: '+15555555555'
entity_token: fd771a07-c5c2-42f3-a53c-a6c79c6c0d07
email: john@appleseed.com
phone_number: '+15555555555'
status: ACCEPTED
kybBasicPendingReview:
summary: Pending review submission for a KYB_BASIC account_holder
value:
token: fa68ed76-9d02-4d45-8a3f-782f3b6a8b3f
account_token: 732f7328-a2d7-4281-a264-e8cb5af8d392
business_account_token: 00000000-0000-0000-0000-000000000000
external_id: ''
created: '2024-01-11T19:50:36.105449'
user_type: BUSINESS
verification_application:
created: '2024-01-11T19:50:36.105449'
updated: '2024-01-11T19:50:36.105449'
status: PENDING_REVIEW
status_reasons:
- ADDRESS_VERIFICATION_FAILURE
required_documents:
- entity_token: 83cf25ae-c14f-4d10-9fa2-0119f36c7286
status_reasons:
- PRIMARY_BUSINESS_ENTITY_ADDRESS_VERIFICATION_FAILURE
valid_documents:
- EIN_LETTER
- TAX_RETURN
- CERTIFICATE_OF_GOOD_STANDING
- ARTICLES_OF_INCORPORATION
- ARTICLES_OF_ORGANIZATION
- CERTIFICATE_OF_FORMATION
- BYLAWS
- GOVERNMENT_BUSINESS_LICENSE
- PARTNERSHIP_AGREEMENT
- BANK_STATEMENT
- UTILITY_BILL_STATEMENT
business_entity:
address:
address1: 22 Street North
city: New York
state: NY
postal_code: '10004'
country: USA
dba_business_name: Busy Business, Inc.
government_id: 98-7654321
legal_business_name: Busy Business, Inc.
parent_company: Example company
phone_numbers:
- '+15555555555'
entity_token: 05cc03c9-dea6-4d17-a11e-0f3ea57d51a5
control_person:
address:
address1: 451 New Forest Way
city: Springfield
state: IL
postal_code: '68022'
country: USA
dob: '1991-03-08T08:00:00Z'
email: john@appleseed.com
first_name: John
last_name: Appleseed
phone_number: '+15555555555'
entity_token: fd771a07-c5c2-42f3-a53c-a6c79c6c0d07
schema:
$ref: '#/components/schemas/AccountHolder'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Get an individual or business account holder
tags:
- Account Holder
patch:
description: >-
Update the information associated with a particular account holder (including business owners and
control persons associated to a business account).
If Lithic is performing KYB or KYC and additional verification is required we will run the
individual's or business's updated information again and return whether the status is accepted or
pending (i.e., further action required).
All calls to this endpoint will return a synchronous response. The response time will depend on the
workflow. In some cases, the response may indicate the workflow is under review or further action will
be needed to complete the account creation process.
This endpoint can only be used on existing accounts that are part of the program that the calling API
key manages.
operationId: patchAccountHolder
parameters:
- $ref: '#/components/parameters/accountHolderToken'
requestBody:
content:
application/json:
examples:
kybRequest:
summary: Update a business account holder with KYB workflow
value:
business_entity:
entity_token: 83cf25ae-c14f-4d10-9fa2-0119f36c7286
address:
postal_code: '61023'
control_person:
entity_token: fd771a07-c5c2-42f3-a53c-a6c79c6c0d07
address:
postal_code: '68023'
naics_code: '541512'
website_url: https://www.mynewbusiness.com
kycExemptRequest:
summary: Update an individual account holder with KYC workflow
value:
individual:
entity_token: fd771a07-c5c2-42f3-a53c-a6c79c6c0d07
address:
postal_code: '68023'
phone_number: '+15555555555'
kycRequest:
summary: Update an individual account holder with KYC workflow
value:
individual:
entity_token: fd771a07-c5c2-42f3-a53c-a6c79c6c0d07
address:
postal_code: '68023'
government_id: 111-23-1413
schema:
anyOf:
- $ref: '#/components/schemas/kyb-patch-request'
- $ref: '#/components/schemas/kyc-patch-request'
- $ref: '#/components/schemas/patch-request'
required: true
responses:
'200':
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/kyb-kyc-patch-response'
- $ref: '#/components/schemas/patch-response'
description: OK
'404':
$ref: '#/components/responses/NotFound'
summary: Update account holder information and possibly resubmit for evaluation
tags:
- Account Holder
/v1/account_holders/{account_holder_token}/documents:
get:
description: >
Retrieve the status of account holder document uploads, or retrieve the upload URLs to process your
image uploads.
Note that this is not equivalent to checking the status of the KYC evaluation overall (a document may
be successfully uploaded but not be sufficient for KYC to pass).
In the event your upload URLs have expired, calling this endpoint will refresh them.
Similarly, in the event a previous account holder document upload has failed, you can use this
endpoint to get a new upload URL for the failed image upload.
When a new document upload is generated for a failed attempt, the response will show an additional
entry in the `required_document_uploads` list
in a `PENDING` state for the corresponding `image_type`.
operationId: getAccountHolderDocuments
parameters:
- $ref: '#/components/parameters/accountHolderTokenPath'
responses:
'200':
content:
application/json:
schema:
properties:
data:
items:
$ref: '#/components/schemas/document'
type: array
type: object
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Get account holder document uploads
tags:
- Account Holder
post:
description: >
Use this endpoint to identify which type of supported government-issued documentation you will upload
for further verification.
It will return two URLs to upload your document images to - one for the front image and one for the
back image.
This endpoint is only valid for evaluations in a `PENDING_DOCUMENT` state.
Supported file types include `jpg`, `png`, and `pdf`. Each file must be less than 15 MiB. Once both
required uploads have been successfully completed, your document will be run through KYC verification.
If you have registered a webhook, you will receive evaluation updates for any document submission
evaluations, as well as for any failed document uploads.
Two document submission attempts are permitted via this endpoint before a `REJECTED` status is
returned and the account creation process is ended. Currently only one type of
account holder document is supported per KYC verification.
operationId: postAccountHolderDocuments
parameters:
- $ref: '#/components/parameters/accountHolderTokenPath'
requestBody:
content:
application/json:
examples:
recieveLinkForDriversLicense:
summary: Initiate account holder document upload
value:
entity_token: 83cf25ae-c14f-4d10-9fa2-0119f36c7286
document_type: EIN_LETTER
schema:
properties:
document_type:
description: The type of document to upload
enum:
- EIN_LETTER
- TAX_RETURN
- OPERATING_AGREEMENT
- CERTIFICATE_OF_FORMATION
- DRIVERS_LICENSE
- PASSPORT
- PASSPORT_CARD
- CERTIFICATE_OF_GOOD_STANDING
- ARTICLES_OF_INCORPORATION
- ARTICLES_OF_ORGANIZATION
- BYLAWS
- GOVERNMENT_BUSINESS_LICENSE
- PARTNERSHIP_AGREEMENT
- SS4_FORM
- BANK_STATEMENT
- UTILITY_BILL_STATEMENT
- SSN_CARD
- ITIN_LETTER
- FINCEN_BOI_REPORT
type: string
entity_token:
description: Globally unique identifier for the entity.
type: string
format: uuid
required:
- document_type
- entity_token
required: true
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/document'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'409':
$ref: '#/components/responses/Conflict'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Initiate account holder document upload
tags:
- Account Holder
/v1/account_holders/{account_holder_token}/documents/{document_token}:
get:
description: >
Check the status of an account holder document upload, or retrieve the upload URLs to process your
image uploads.
Note that this is not equivalent to checking the status of the KYC evaluation overall (a document may
be successfully uploaded but not be sufficient for KYC to pass).
In the event your upload URLs have expired, calling this endpoint will refresh them.
Similarly, in the event a document upload has failed, you can use this endpoint to get a new upload
URL for the failed image upload.
When a new account holder document upload is generated for a failed attempt, the response will show an
additional entry in the `required_document_uploads` array
in a `PENDING` state for the corresponding `image_type`.
operationId: getAccountHolderDocumentByToken
parameters:
- $ref: '#/components/parameters/accountHolderTokenPath'
- $ref: '#/components/parameters/documentToken'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/document'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Get account holder document upload status
tags:
- Account Holder
/v1/account_holders/{account_holder_token}/entities:
post:
description: >-
Create a new beneficial owner individual or replace the control person entity on an existing KYB
account holder. This endpoint is only applicable for account holders enrolled through a KYB workflow
with the Persona KYB provider.
A new control person can only replace the existing one. A maximum of 4 beneficial owners can be
associated with an account holder.
operationId: postAccountHolderEntities
parameters:
- $ref: '#/components/parameters/accountHolderTokenPath'
requestBody:
content:
application/json:
examples:
createBeneficialOwner:
summary: Create a new beneficial owner individual
value:
type: BENEFICIAL_OWNER_INDIVIDUAL
first_name: Timmy
last_name: Turner
dob: '1991-03-08T08:00:00Z'
email: tim@left-earth.com
phone_number: '+15555555555'
government_id: 211-23-1412
address:
address1: 300 Normal Forest Way
city: Portland
country: USA
postal_code: '90210'
state: OR
replaceControlPerson:
summary: Replace the existing control person entity
value:
type: CONTROL_PERSON
first_name: Tom
last_name: Timothy
dob: '1991-03-08T08:00:00Z'
email: tom@middle-pluto.com
phone_number: '+15555555555'
government_id: 111-23-1412
address:
address1: 451 New Forest Way
city: Springfield
country: USA
postal_code: '68022'
state: IL
schema:
$ref: '#/components/schemas/create-entity-request'
required: true
responses:
'200':
content:
application/json:
examples:
acceptedResponse:
summary: Accepted entity creation response
value:
account_holder_token: fa68ed76-9d02-4d45-8a3f-782f3b6a8b3f
status: ACCEPTED
status_reasons: []
token: 49c978db-20c4-46d8-9db4-b0ef28c03533
created: '2024-09-16T20:13:41.865274'
required_documents: []
pendingReviewResponse:
summary: Pending review entity creation response
value:
account_holder_token: fa68ed76-9d02-4d45-8a3f-782f3b6a8b3f
status: PENDING_REVIEW
status_reasons:
- NAME_VERIFICATION_FAILURE
token: 49c978db-20c4-46d8-9db4-b0ef28c03533
created: '2024-09-16T20:13:41.865274'
required_documents: []
schema:
$ref: '#/components/schemas/create-entity-response'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Create a new beneficial owner individual or replace the existing control person entity
tags:
- Account Holder
/v1/account_holders/{account_holder_token}/entities/{entity_token}:
delete:
description: >-
Deactivate a beneficial owner individual on an existing KYB account holder. Only beneficial owner
individuals can be deactivated.
operationId: deleteAccountHolderEntity
parameters:
- $ref: '#/components/parameters/accountHolderTokenPath'
- $ref: '#/components/parameters/entityTokenPath'
responses:
'200':
content:
application/json:
examples:
deactivatedEntityResponse:
summary: Deactivated beneficial owner individual
value:
account_holder_token: fa68ed76-9d02-4d45-8a3f-782f3b6a8b3f
token: 49c978db-20c4-46d8-9db4-b0ef28c03533
type: BENEFICIAL_OWNER_INDIVIDUAL
status: INACTIVE
first_name: Timmy
last_name: Turner
email: tim@left-earth.com
phone_number: '+15555555555'
dob: '1991-03-08T08:00:00Z'
address:
address1: 300 Normal Forest Way
city: Portland
country: USA
postal_code: '90210'
state: OR
schema:
$ref: '#/components/schemas/entity-response'
description: OK
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Deactivate a beneficial owner individual
tags:
- Account Holder
/v1/accounts:
get:
description: |
List account configurations.
operationId: getAccounts
parameters:
- $ref: '#/components/parameters/beginTime'
- $ref: '#/components/parameters/endTime'
- $ref: '#/components/parameters/endingBefore'
- $ref: '#/components/parameters/pageSize'
- $ref: '#/components/parameters/startingAfter'
responses:
'200':
content:
application/json:
examples:
getAccounts:
summary: List accounts
value:
data:
- cardholder_currency: USD
spend_limit:
daily: 1000
lifetime: 10000
monthly: 4000
state: ACTIVE
token: b68b7424-aa69-4cbc-a946-30d90181b621
created: '2024-01-11T19:50:36Z'
has_more: false
schema:
properties:
data:
items:
$ref: '#/components/schemas/AccountConfiguration'
type: array
has_more:
description: Whether there are more accounts to be retrieved.
type: boolean
required:
- data
- has_more
type: object
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: List accounts
tags:
- Account
/v1/accounts/{account_token}:
get:
description: Get account configuration such as spend limits.
operationId: getAccountByToken
parameters:
- $ref: '#/components/parameters/accountToken'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AccountConfiguration'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Get account
tags:
- Account
patch:
description: >
Update account configuration such as state or spend limits. Can only be run on accounts that are part
of the program managed by this API key.
Accounts that are in the `PAUSED` state will not be able to transact or create new cards.
operationId: patchAccountByToken
parameters:
- $ref: '#/components/parameters/accountToken'
requestBody:
content:
application/json:
examples:
setDailySpendLimit:
summary: Update daily spend limit
value:
daily_spend_limit: 1000
schema:
properties:
daily_spend_limit:
default: 125000
description: >
Amount (in cents) for the account's daily spend limit (e.g. 100000 would be a $1,000
limit).
By default the daily spend limit is set to $1,250.
minimum: 0
type: integer
lifetime_spend_limit:
default: 0
description: >
Amount (in cents) for the account's lifetime spend limit (e.g. 100000 would be a $1,000
limit). Once this limit is reached, no transactions will be accepted on any card created
for this account until the limit is updated.
Note that a spend limit of 0 is effectively no limit, and should only be used to reset or
remove a prior limit. Only a limit of 1 or above will result in declined transactions due
to checks against the account limit. This behavior differs from the daily spend limit and
the monthly spend limit.
minimum: 0
type: integer
monthly_spend_limit:
default: 500000
description: >
Amount (in cents) for the account's monthly spend limit (e.g. 100000 would be a $1,000
limit).
By default the monthly spend limit is set to $5,000.
minimum: 0
type: integer
state:
description: Account states.
enum:
- ACTIVE
- PAUSED
- CLOSED
type: string
substatus:
description: >
Account state substatus values:
* `FRAUD_IDENTIFIED` - The account has been recognized as being created or used with
stolen or fabricated identity information, encompassing both true identity theft and
synthetic identities.
* `SUSPICIOUS_ACTIVITY` - The account has exhibited suspicious behavior, such as
unauthorized access or fraudulent transactions, necessitating further investigation.
* `RISK_VIOLATION` - The account has been involved in deliberate misuse by the legitimate
account holder. Examples include disputing valid transactions without cause, falsely
claiming non-receipt of goods, or engaging in intentional bust-out schemes to exploit
account services.
* `END_USER_REQUEST` - The account holder has voluntarily requested the closure of the
account for personal reasons. This encompasses situations such as bankruptcy, other
financial considerations, or the account holder's death.
* `ISSUER_REQUEST` - The issuer has initiated the closure of the account due to business
strategy, risk management, inactivity, product changes, regulatory concerns, or violations
of terms and conditions.
* `NOT_ACTIVE` - The account has not had any transactions or payment activity within a
specified period. This status applies to accounts that are paused or closed due to
inactivity.
* `INTERNAL_REVIEW` - The account is temporarily paused pending further internal review.
In future implementations, this status may prevent clients from activating the account via
APIs until the review is completed.
* `OTHER` - The reason for the account's current status does not fall into any of the
above categories. A comment should be provided to specify the particular reason.
enum:
- FRAUD_IDENTIFIED
- SUSPICIOUS_ACTIVITY
- RISK_VIOLATION
- END_USER_REQUEST
- ISSUER_REQUEST
- NOT_ACTIVE
- INTERNAL_REVIEW
- OTHER
type: string
comment:
description: Additional context or information related to the account.
type: string
verification_address:
description: >-
Address used during Address Verification Service (AVS) checks during transactions if
enabled via Auth Rules. This field is deprecated as AVS checks are no longer supported by
Auth Rules. The field will be removed from the schema in a future release.
properties:
address1:
type: string
address2:
type: string
city:
type: string
country:
type: string
postal_code:
type: string
state:
type: string
type: object
deprecated: true
type: object
required: true
responses:
'200':
content:
application/json:
examples:
exampleResponse:
value:
cardholder_currency: USD
spend_limit:
daily: 1000
lifetime: 100000
monthly: 40000
state: ACTIVE
token: ecbd1d58-0299-48b3-84da-6ed7f5bf9ec1
created: '2024-01-11T19:50:36Z'
verification_address:
address1: 5 Broad Street
address2: ''
city: New York
country: USA
postal_code: '10001'
state: NY
schema:
$ref: '#/components/schemas/AccountConfiguration'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Update account
tags:
- Account
/v1/accounts/{account_token}/spend_limits:
get:
description: >-
Get an Account's available spend limits, which is based on the spend limit configured on the Account
and the amount already spent over the spend limit's duration. For example, if the Account has a daily
spend limit of $1000 configured, and has spent $600 in the last 24 hours, the available spend limit
returned would be $400.
operationId: getAccountSpendLimits
parameters:
- $ref: '#/components/parameters/accountToken'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AccountSpendLimits'
description: OK
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Get account's available spend limits
tags:
- Account
/v2/auth_rules:
post:
summary: Create a new rule
description: Creates a new V2 Auth rule in draft mode
tags:
- Auth Rules
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/create-auth-rule-request'
responses:
'201':
description: Auth Rule Created
$ref: '#/components/responses/AuthRule'
'400':
$ref: '#/components/responses/responses-BadRequest'
'404':
$ref: '#/components/responses/responses-NotFound'
get:
summary: List rules
description: Lists V2 Auth rules
tags:
- Auth Rules
parameters:
- $ref: '#/components/parameters/EndingBefore'
- $ref: '#/components/parameters/PageSize'
- $ref: '#/components/parameters/StartingAfter'
- name: card_token
in: query
description: Only return Auth Rules that are bound to the provided card token.
schema:
type: string
format: uuid
required: false
- name: account_token
in: query
description: Only return Auth Rules that are bound to the provided account token.
schema:
type: string
format: uuid
required: false
- name: business_account_token
in: query
description: Only return Auth Rules that are bound to the provided business account token.
schema:
type: string
format: uuid
required: false
- name: scope
in: query
description: Only return Auth Rules that are bound to the provided scope.
schema:
enum:
- PROGRAM
- ACCOUNT
- BUSINESS_ACCOUNT
- CARD
- ANY
type: string
- name: event_stream
in: query
description: >-
Deprecated: Use event_streams instead. Only return Auth rules that are executed during the
provided event stream.
deprecated: true
schema:
$ref: '#/components/schemas/event-stream'
required: false
- name: event_streams
in: query
description: >-
Only return Auth rules that are executed during any of the provided event streams. If
event_streams and event_stream are specified, the values will be combined.
schema:
type: array
items:
$ref: '#/components/schemas/event-stream'
required: false
responses:
'200':
description: Auth Rules
content:
application/json:
schema:
properties:
data:
items:
$ref: '#/components/schemas/auth-rule'
type: array
has_more:
description: >-
Indicates whether there are more Auth Rules to be retrieved by paging through the
results.
type: boolean
required:
- data
- has_more
type: object
'400':
$ref: '#/components/responses/responses-BadRequest'
'404':
$ref: '#/components/responses/responses-NotFound'
/v2/auth_rules/{auth_rule_token}:
get:
summary: Fetch a rule
description: Fetches a V2 Auth rule by its token
tags:
- Auth Rules
parameters:
- $ref: '#/components/parameters/AuthRuleToken'
responses:
'200':
$ref: '#/components/responses/AuthRule'
'400':
$ref: '#/components/responses/responses-BadRequest'
'404':
$ref: '#/components/responses/responses-NotFound'
patch:
summary: Update a rule
description: >
Updates a V2 Auth rule's properties
If `account_tokens`, `card_tokens`, `program_level`, `excluded_card_tokens`,
`excluded_account_tokens`, or `excluded_business_account_tokens` is provided, this will replace
existing associations with the provided list of entities.
tags:
- Auth Rules
parameters:
- $ref: '#/components/parameters/AuthRuleToken'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/patch-auth-rule-request'
responses:
'200':
description: Updated Auth Rule
$ref: '#/components/responses/AuthRule'
'400':
$ref: '#/components/responses/responses-BadRequest'
'404':
$ref: '#/components/responses/responses-NotFound'
delete:
summary: Delete a rule
description: Deletes a V2 Auth rule
tags:
- Auth Rules
parameters:
- $ref: '#/components/parameters/AuthRuleToken'
responses:
'204':
description: Auth Rule Deleted
'400':
$ref: '#/components/responses/responses-BadRequest'
'404':
$ref: '#/components/responses/responses-NotFound'
/v2/auth_rules/{auth_rule_token}/draft:
post:
summary: Draft a new rule version
description: >
Creates a new draft version of a rule that will be ran in shadow mode.
This can also be utilized to reset the draft parameters, causing a draft version to no longer be ran
in shadow mode.
tags:
- Auth Rules
parameters:
- $ref: '#/components/parameters/AuthRuleToken'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
parameters:
anyOf:
- title: Null (delete draft)
type: 'null'
description: >-
Resets the drafts parameters, causing a draft version to no longer be ran in shadow
mode.
- $ref: '#/components/schemas/auth-rule-parameters'
responses:
'200':
$ref: '#/components/responses/AuthRule'
'400':
$ref: '#/components/responses/responses-BadRequest'
'404':
$ref: '#/components/responses/responses-NotFound'
/v2/auth_rules/{auth_rule_token}/features:
get:
summary: Calculated Feature values
description: >
Fetches the current calculated Feature values for the given Auth Rule
This only calculates the features for the active version.
- VelocityLimit Rules calculates the current Velocity Feature data. This requires a `card_token` or
`account_token` matching what the rule is Scoped to.
- ConditionalBlock Rules calculates the CARD_TRANSACTION_COUNT_* attributes on the rule. This requires
a `card_token`
tags:
- Auth Rules
parameters:
- $ref: '#/components/parameters/AuthRuleToken'
- in: query
name: account_token
schema:
type: string
format: uuid
- in: query
name: card_token
schema:
type: string
format: uuid
responses:
'200':
description: Calculated Feature values for the given Auth Rule
content:
application/json:
schema:
$ref: '#/components/schemas/auth-rule-feature-state'
'400':
$ref: '#/components/responses/responses-BadRequest'
'404':
$ref: '#/components/responses/responses-NotFound'
/v2/auth_rules/{auth_rule_token}/promote:
post:
summary: Promote a rule version
description: >-
Promotes the draft version of an Auth rule to the currently active version such that it is enforced in
the respective stream.
tags:
- Auth Rules
parameters:
- $ref: '#/components/parameters/AuthRuleToken'
responses:
'200':
$ref: '#/components/responses/AuthRule'
'400':
$ref: '#/components/responses/responses-BadRequest'
'404':
$ref: '#/components/responses/responses-NotFound'
/v2/auth_rules/{auth_rule_token}/versions:
get:
summary: List rule versions
description: Returns all versions of an auth rule, sorted by version number descending (newest first).
tags:
- Auth Rules
parameters:
- $ref: '#/components/parameters/AuthRuleToken'
responses:
'200':
description: Auth Rule Versions
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/auth-rule-version'
required:
- data
'400':
$ref: '#/components/responses/responses-BadRequest'
'404':
$ref: '#/components/responses/responses-NotFound'
/v2/auth_rules/{auth_rule_token}/report:
get:
summary: Retrieve a performance report
description: >
Retrieves a performance report for an Auth rule containing daily statistics and evaluation outcomes.
**Time Range Limitations:**
- Reports are supported for the past 3 months only
- Maximum interval length is 1 month
- Report data is available only through the previous day in UTC (current day data is not available)
The report provides daily statistics for both current and draft versions of the Auth rule, including
approval, decline, and challenge counts along with sample events.
tags:
- Auth Rules
parameters:
- $ref: '#/components/parameters/AuthRuleToken'
- name: begin
in: query
required: true
description: Start date for the report
schema:
type: string
format: date
- name: end
in: query
required: true
description: End date for the report
schema:
type: string
format: date
responses:
'200':
description: Auth Rule Performance Report
content:
application/json:
schema:
$ref: '#/components/schemas/performance-report-v2'
'400':
$ref: '#/components/responses/responses-BadRequest'
'404':
$ref: '#/components/responses/responses-NotFound'
/v2/auth_rules/{auth_rule_token}/backtests:
get:
summary: List backtests
description: Lists backtests for an Auth Rule
tags:
- Auth Rules
parameters:
- $ref: '#/components/parameters/AuthRuleToken'
- $ref: '#/components/parameters/EndingBefore'
- $ref: '#/components/parameters/PageSize'
- $ref: '#/components/parameters/StartingAfter'
responses:
'200':
description: Backtests
content:
application/json:
schema:
properties:
data:
items:
$ref: '#/components/schemas/backtest-list-item'
type: array
has_more:
description: >-
Indicates whether there are more backtests to be retrieved by paging through the
results.
type: boolean
required:
- data
- has_more
type: object
'400':
$ref: '#/components/responses/responses-BadRequest'
'404':
$ref: '#/components/responses/responses-NotFound'
post:
summary: Request a backtest
description: >
Initiates a request to asynchronously generate a backtest for an Auth rule. During backtesting, both
the active version (if one exists) and the draft version of the Auth Rule are evaluated by replaying
historical transaction data against the rule's conditions. This process allows customers to simulate
and understand the effects of proposed rule changes before deployment.
The generated backtest report provides detailed results showing whether the draft version of the Auth
Rule would have approved or declined historical transactions which were processed during the backtest
period. These reports help evaluate how changes to rule configurations might affect overall
transaction approval rates.
The generated backtest report will be delivered asynchronously through a webhook with `event_type` =
`auth_rules.backtest_report.created`. See the docs on setting up [webhook
subscriptions](https://docs.lithic.com/docs/events-api).
It is also possible to request backtest reports on-demand through the
`/v2/auth_rules/{auth_rule_token}/backtests/{auth_rule_backtest_token}` endpoint.
Lithic currently supports backtesting for `CONDITIONAL_BLOCK` / `CONDITIONAL_ACTION` rules.
Backtesting for `VELOCITY_LIMIT` rules is generally not supported. In specific cases (i.e. where
Lithic has pre-calculated the requested velocity metrics for historical transactions), a backtest may
be feasible. However, such cases are uncommon and customers should not anticipate support for velocity
backtests under most configurations.
If a historical transaction does not feature the required inputs to evaluate the rule, then it will
not be included in the final backtest report.
tags:
- Auth Rules
parameters:
- $ref: '#/components/parameters/AuthRuleToken'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/backtest-request'
responses:
'200':
description: Backtest request received
content:
application/json:
schema:
type: object
properties:
backtest_token:
$ref: '#/components/schemas/backtest-token'
'400':
$ref: '#/components/responses/responses-BadRequest'
'404':
$ref: '#/components/responses/responses-NotFound'
/v2/auth_rules/{auth_rule_token}/backtests/{auth_rule_backtest_token}:
get:
summary: Retrieve backtest results
description: >
Returns the backtest results of an Auth rule (if available).
Backtesting is an asynchronous process that requires time to complete. If a customer retrieves the
backtest results using this endpoint before the report is fully generated, the response will return
null for `results.current_version` and `results.draft_version`. Customers are advised to wait for the
backtest creation process to complete (as indicated by the webhook event
auth_rules.backtest_report.created) before retrieving results from this endpoint.
Backtesting is an asynchronous process, while the backtest is being processed, results will not be
available which will cause `results.current_version` and `results.draft_version` objects to contain
`null`.
The entries in `results` will also always represent the configuration of the rule at the time requests
are made to this endpoint. For example, the results for `current_version` in the served backtest
report will be consistent with which version of the rule is currently activated in the respective
event stream, regardless of which version of the rule was active in the event stream at the time a
backtest is requested.
tags:
- Auth Rules
parameters:
- $ref: '#/components/parameters/AuthRuleToken'
- $ref: '#/components/parameters/AuthRuleBacktestToken'
responses:
'200':
description: Backtest results
content:
application/json:
schema:
$ref: '#/components/schemas/backtest-results'
'400':
$ref: '#/components/responses/responses-BadRequest'
'404':
$ref: '#/components/responses/responses-NotFound'
/v2/auth_rules/results:
get:
summary: List rule evaluation results
description: |
Lists Auth Rule evaluation results.
**Limitations:**
- Results are available for the past 3 months only
- At least one filter (`event_token` or `auth_rule_token`) must be provided
- When filtering by `event_token`, pagination is not supported
tags:
- Auth Rules
parameters:
- $ref: '#/components/parameters/EndingBefore'
- $ref: '#/components/parameters/PageSize'
- $ref: '#/components/parameters/StartingAfter'
- name: event_token
in: query
description: Filter by event token
schema:
type: string
format: uuid
required: false
- name: auth_rule_token
in: query
description: Filter by Auth Rule token
schema:
type: string
format: uuid
required: false
- name: begin
in: query
description: >-
Date string in RFC 3339 format. Only events evaluated after the specified time will be included.
UTC time zone.
schema:
type: string
format: date-time
required: false
- name: end
in: query
description: >-
Date string in RFC 3339 format. Only events evaluated before the specified time will be included.
UTC time zone.
schema:
type: string
format: date-time
required: false
- name: has_actions
in: query
description: >-
Filter by whether the rule evaluation produced any actions. When not provided, all results are
returned.
schema:
type: boolean
required: false
responses:
'200':
description: Auth Rule Results
content:
application/json:
schema:
properties:
data:
items:
$ref: '#/components/schemas/auth-rule-result'
type: array
has_more:
description: Indicates whether there are more results to be retrieved by paging through the results.
type: boolean
required:
- data
- has_more
type: object
example:
data:
- token: a1b2c3d4-e5f6-7890-abcd-ef1234567890
auth_rule_token: b2c3d4e5-f6a7-8901-bcde-f12345678901
event_token: c3d4e5f6-a7b8-9012-cdef-123456789012
evaluation_time: '2026-01-15T09:30:00Z'
rule_version: 1
mode: ACTIVE
event_stream: AUTHORIZATION
actions:
- type: DECLINE
code: CARD_SPEND_LIMIT_EXCEEDED
explanation: Transaction declined due to velocity limit
has_more: false
'400':
$ref: '#/components/responses/responses-BadRequest'
'404':
$ref: '#/components/responses/responses-NotFound'
/v1/auth_stream/secret:
get:
description: >
Retrieve the ASA HMAC secret key. If one does not exist for your program yet, calling this endpoint
will create one for you. The headers (which you can use to verify webhooks) will begin appearing
shortly after calling this endpoint for the first time. See [this
page](https://docs.lithic.com/docs/auth-stream-access-asa#asa-webhook-verification) for more detail
about verifying ASA webhooks.
operationId: getAuthStreamSecret
responses:
'200':
content:
application/json:
schema:
properties:
secret:
description: The shared HMAC ASA secret
example: whsec_1NDsYinMGr951KuDEaj78VtWzlyPaOnwUVagFiWIPJs=
type: string
type: object
description: OK
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Retrieve the ASA HMAC secret key
tags:
- Auth Stream Access (ASA)
/v1/auth_stream/secret/rotate:
post:
description: >
Generate a new ASA HMAC secret key. The old ASA HMAC secret key will be deactivated 24 hours after a
successful request to this endpoint. Make a [`GET
/auth_stream/secret`](https://docs.lithic.com/reference/getauthstreamsecret) request to retrieve the
new secret key.
operationId: rotateAuthStreamSecret
responses:
'204':
description: We have successfully rotated the secret key.
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Rotate the ASA HMAC secret key
tags:
- Auth Stream Access (ASA)
/v1/balances:
get:
description: Get the balances for a program, business, or a given end-user account
operationId: getBalances
parameters:
- description: List balances for all financial accounts of a given account_token.
in: query
name: account_token
schema:
format: uuid
type: string
- description: List balances for all financial accounts of a given business_account_token.
in: query
name: business_account_token
schema:
format: uuid
type: string
- description: UTC date and time of the balances to retrieve. Defaults to latest available balances
in: query
name: balance_date
schema:
format: date-time
type: string
- description: List balances for a given Financial Account type.
in: query
name: financial_account_type
schema:
enum:
- ISSUING
- OPERATING
- RESERVE
- SECURITY
type: string
responses:
'200':
content:
application/json:
schema:
properties:
data:
items:
$ref: '#/components/schemas/balance'
type: array
has_more:
description: More data exists.
type: boolean
required:
- data
- has_more
type: object
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: List balances
tags:
- Balance
/v1/card_programs:
get:
description: List card programs.
operationId: getCardPrograms
parameters:
- $ref: '#/components/parameters/endingBefore'
- $ref: '#/components/parameters/pageSize'
- $ref: '#/components/parameters/startingAfter'
responses:
'200':
content:
application/json:
schema:
properties:
data:
items:
$ref: '#/components/schemas/CardProgram'
type: array
has_more:
description: More data exists.
type: boolean
required:
- data
- has_more
type: object
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: List card programs
tags:
- Card
/v1/card_programs/{card_program_token}:
get:
description: Get card program.
operationId: getCardProgram
parameters:
- $ref: '#/components/parameters/cardProgramTokenPath'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/CardProgram'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Get card program
tags:
- Card
/v1/cards:
get:
description: List cards.
operationId: getCards
parameters:
- description: |
Returns cards associated with the specified account.
in: query
name: account_token
schema:
format: uuid
type: string
- description: |
Returns cards with the specified state.
in: query
name: state
schema:
enum:
- CLOSED
- OPEN
- PAUSED
- PENDING_ACTIVATION
- PENDING_FULFILLMENT
type: string
- description: |
Returns cards containing the specified partial or full memo text.
in: query
name: memo
schema:
type: string
- $ref: '#/components/parameters/beginTime'
- $ref: '#/components/parameters/endTime'
- $ref: '#/components/parameters/endingBefore'
- $ref: '#/components/parameters/pageSize'
- $ref: '#/components/parameters/startingAfter'
responses:
'200':
content:
application/json:
schema:
properties:
data:
items:
$ref: '#/components/schemas/non_pci_card_response'
type: array
has_more:
description: More data exists.
type: boolean
required:
- data
- has_more
type: object
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: List cards
tags:
- Card
post:
description: >
Create a new virtual or physical card. Parameters `shipping_address` and `product_id` only apply to
physical cards.
operationId: postCards
parameters:
- $ref: '#/components/parameters/idempotencyKey'
requestBody:
content:
application/json:
examples:
createCard:
summary: Create card
value:
memo: New Card
spend_limit: 1000
spend_limit_duration: TRANSACTION
state: OPEN
type: VIRTUAL
createPhysicalCard:
summary: Create a physical card
value:
carrier:
qr_code_url: https://lithic.com/activate-card/1
memo: New physical card
product_id: '783991122'
shipping_address:
address1: '123'
city: NEW YORK
country: USA
first_name: Johnny
last_name: Appleseed
postal_code: '10001'
state: NY
state: OPEN
type: PHYSICAL
schema:
properties:
account_token:
description: >
Globally unique identifier for the account that the card will be associated with. Required
for programs enrolling users using the [/account\_holders
endpoint](https://docs.lithic.com/docs/account-holders-kyc). See [Managing Your
Program](doc:managing-your-program) for more information.
format: uuid
type: string
card_program_token:
description: >-
For card programs with more than one BIN range. This must be configured with Lithic before
use. Identifies the card program/BIN range under which to create the card. If omitted,
will utilize the program's default `card_program_token`. In Sandbox, use
00000000-0000-0000-1000-000000000000 and 00000000-0000-0000-2000-000000000000 to test
creating cards on specific card programs.
example: 5e9483eb-8103-4e16-9794-2106111b2eca
format: uuid
type: string
bulk_order_token:
description: >-
Globally unique identifier for an existing bulk order to associate this card with. When
specified, the card will be added to the bulk order for batch shipment. Only applicable to
cards of type PHYSICAL
example: 5e9483eb-8103-4e16-9794-2106111b2eca
format: uuid
type: string
carrier:
$ref: '#/components/schemas/Carrier'
digital_card_art_token:
description: >-
Specifies the digital card art to be displayed in the user’s digital wallet after
tokenization. This artwork must be approved by Mastercard and configured by Lithic to use.
See [Flexible Card Art
Guide](https://docs.lithic.com/docs/about-digital-wallets#flexible-card-art).
example: 5e9483eb-8103-4e16-9794-2106111b2eca
format: uuid
type: string
exp_month:
description: >-
Two digit (MM) expiry month. If neither `exp_month` nor `exp_year` is provided, an
expiration date will be generated.
example: '06'
maxLength: 2
minLength: 2
type: string
exp_year:
description: >-
Four digit (yyyy) expiry year. If neither `exp_month` nor `exp_year` is provided, an
expiration date will be generated.
example: '2027'
maxLength: 4
minLength: 4
type: string
memo:
description: Friendly name to identify the card.
example: New Card
type: string
pin:
description: >-
Encrypted PIN block (in base64). Applies to cards of type `PHYSICAL` and `VIRTUAL`. See
[Encrypted PIN Block](https://docs.lithic.com/docs/cards#encrypted-pin-block).
type: string
product_id:
description: >-
Only applicable to cards of type `PHYSICAL`. This must be configured with Lithic before
use. Specifies the configuration (i.e., physical card art) that the card should be
manufactured with.
example: '1'
type: string
replacement_for:
description: >-
Globally unique identifier for the card that this card will replace. If the card type is
`PHYSICAL` it will be replaced by a `PHYSICAL` card. If the card type is `VIRTUAL` it will
be replaced by a `VIRTUAL` card.
example: 5e9483eb-8103-4e16-9794-2106111b2eca
format: uuid
type: string
replacement_substatus:
description: >
Card state substatus values for the card that this card will replace:
* `LOST` - The physical card is no longer in the cardholder's possession due to being lost
or never received by the cardholder.
* `COMPROMISED` - Card information has been exposed, potentially leading to unauthorized
access. This may involve physical card theft, cloning, or online data breaches.
* `DAMAGED` - The physical card is not functioning properly, such as having chip failures
or a demagnetized magnetic stripe.
* `END_USER_REQUEST` - The cardholder requested the closure of the card for reasons
unrelated to fraud or damage, such as switching to a different product or closing the
account.
* `ISSUER_REQUEST` - The issuer closed the card for reasons unrelated to fraud or damage,
such as account inactivity, product or policy changes, or technology upgrades.
* `NOT_ACTIVE` - The card hasn’t had any transaction activity for a specified period,
applicable to statuses like `PAUSED` or `CLOSED`.
* `SUSPICIOUS_ACTIVITY` - The card has one or more suspicious transactions or activities
that require review. This can involve prompting the cardholder to confirm legitimate use
or report confirmed fraud.
* `INTERNAL_REVIEW` - The card is temporarily paused pending further internal review.
* `EXPIRED` - The card has expired and has been closed without being reissued.
* `UNDELIVERABLE` - The card cannot be delivered to the cardholder and has been returned.
* `OTHER` - The reason for the status does not fall into any of the above categories. A
comment should be provided to specify the reason.
enum:
- LOST
- COMPROMISED
- DAMAGED
- END_USER_REQUEST
- ISSUER_REQUEST
- NOT_ACTIVE
- SUSPICIOUS_ACTIVITY
- INTERNAL_REVIEW
- EXPIRED
- UNDELIVERABLE
- OTHER
type: string
replacement_comment:
description: Additional context or information related to the card that this card will replace.
type: string
replacement_account_token:
description: >-
Restricted field limited to select use cases. Lithic will reach out directly if this field
should be used. Globally unique identifier for the replacement card's account. If this
field is specified, `replacement_for` must also be specified. If `replacement_for` is
specified and this field is omitted, the replacement card's account will be inferred from
the card being replaced.
example: 5e9483eb-8103-4e16-9794-2106111b2eca
format: uuid
type: string
shipping_address:
$ref: '#/components/schemas/ShippingAddress'
shipping_method:
description: >
Shipping method for the card. Only applies to cards of type PHYSICAL.
Use of options besides `STANDARD` require additional permissions.
* `STANDARD` - USPS regular mail or similar international option, with no tracking
* `STANDARD_WITH_TRACKING` - USPS regular mail or similar international option, with
tracking
* `PRIORITY` - USPS Priority, 1-3 day shipping, with tracking
* `EXPRESS` - FedEx or UPS depending on card manufacturer, Express, 3-day shipping, with
tracking
* `2_DAY` - FedEx or UPS depending on card manufacturer, 2-day shipping, with tracking
* `EXPEDITED` - FedEx or UPS depending on card manufacturer, Standard Overnight or similar
international option, with tracking
* `BULK_EXPEDITED` - Bulk shipment with Expedited shipping
enum:
- 2_DAY
- BULK_EXPEDITED
- EXPEDITED
- EXPRESS
- PRIORITY
- STANDARD
- STANDARD_WITH_TRACKING
type: string
spend_limit:
description: >-
Amount (in cents) to limit approved authorizations (e.g. 100000 would be a $1,000 limit).
Transaction requests above the spend limit will be declined. Note that a spend limit of 0
is effectively no limit, and should only be used to reset or remove a prior limit. Only a
limit of 1 or above will result in declined transactions due to checks against the card
limit.
example: 0
minimum: 0
type: integer
spend_limit_duration:
$ref: '#/components/schemas/spend_limit_duration'
state:
description: |
Card state values:
* `OPEN` - Card will approve authorizations (if they match card and account parameters).
* `PAUSED` - Card will decline authorizations, but can be resumed at a later time.
enum:
- OPEN
- PAUSED
type: string
type:
default: VIRTUAL
description: >
Card types:
* `VIRTUAL` - Card will authorize at any merchant and can be added to a digital wallet
like Apple Pay or Google Pay (if the card program is digital wallet-enabled).
* `PHYSICAL` - Manufactured and sent to the cardholder. We offer white label branding,
credit, ATM, PIN debit, chip/EMV, NFC and magstripe functionality. Reach out at
[lithic.com/contact](https://lithic.com/contact) for more information.
* `SINGLE_USE` - Card is closed upon first successful authorization.
* `MERCHANT_LOCKED` - Card is locked to the first merchant that successfully authorizes
the card.
* `UNLOCKED` - *[Deprecated]* Similar behavior to VIRTUAL cards, please use VIRTUAL
instead.
* `DIGITAL_WALLET` - *[Deprecated]* Similar behavior to VIRTUAL cards, please use VIRTUAL
instead.
enum:
- MERCHANT_LOCKED
- PHYSICAL
- SINGLE_USE
- VIRTUAL
- UNLOCKED
- DIGITAL_WALLET
type: string
required:
- type
type: object
required: true
responses:
'200':
content:
application/json:
example:
account_token: f3f4918c-dee9-464d-a819-4aa42901d624
card_program_token: 5e9483eb-8103-4e16-9794-2106111b2eca
cardholder_currency: USD
created: '2021-06-28T22:53:15Z'
cvv: '776'
exp_month: '06'
exp_year: '2027'
funding:
account_name: Sandbox
created: '2020-07-08T17:57:36Z'
last_four: '5263'
nickname: checking account
state: ENABLED
token: b0f0d91a-3697-46d8-85f3-20f0a585cbea
type: DEPOSITORY_CHECKING
hostname: ''
last_four: '4142'
memo: New Card
pan: '4111111289144142'
replacement_for: null
spend_limit: 1000
spend_limit_duration: TRANSACTION
state: OPEN
token: 7ef7d65c-9023-4da3-b113-3b8583fd7951
type: VIRTUAL
pin_status: NOT_SET
schema:
$ref: '#/components/schemas/pci_card_response'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Create card
tags:
- Card
/v1/cards/search_by_pan:
post:
description: >-
Get card configuration such as spend limit and state. Customers must be PCI compliant to use this
endpoint. Please contact [support@lithic.com](mailto:support@lithic.com) for questions.
*Note: this is a `POST` endpoint because it is more secure to send sensitive data in a request body
than in a URL.*
operationId: searchCardByPan
requestBody:
content:
application/json:
examples:
searchCardByPan:
summary: Search for card for by PAN.
value:
pan: '4111111289144142'
schema:
properties:
pan:
description: The PAN for the card being retrieved.
example: '4111111289144142'
type: string
required:
- pan
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/pci_card_response'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Search for card by PAN
tags:
- Card
/v1/cards/{card_token}:
get:
description: Get card configuration such as spend limit and state.
operationId: getCardByToken
parameters:
- $ref: '#/components/parameters/cardToken'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/pci_card_response'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Get card
tags:
- Card
patch:
description: |
Update the specified properties of the card. Unsupplied properties will remain unchanged.
*Note: setting a card to a `CLOSED` state is a final action that cannot be undone.*
operationId: patchCardByToken
parameters:
- $ref: '#/components/parameters/cardToken'
requestBody:
content:
application/json:
examples:
updateCard:
summary: Update card
value:
memo: Updated Name
spend_limit: 100
spend_limit_duration: FOREVER
state: OPEN
schema:
properties:
digital_card_art_token:
description: >-
Specifies the digital card art to be displayed in the user’s digital wallet after
tokenization. This artwork must be approved by Mastercard and configured by Lithic to use.
See [Flexible Card Art
Guide](https://docs.lithic.com/docs/about-digital-wallets#flexible-card-art).
example: 00000000-0000-0000-1000-000000000000
format: uuid
type: string
memo:
description: Friendly name to identify the card.
example: New Card
type: string
network_program_token:
description: >-
Globally unique identifier for the card's network program. Currently applicable to Visa
cards participating in Account Level Management only.
example: 00000000-0000-0000-1000-000000000000
format: uuid
type: string
pin:
description: >-
Encrypted PIN block (in base64). Only applies to cards of type `PHYSICAL` and `VIRTUAL`.
Changing PIN also resets PIN status to `OK`. See [Encrypted PIN
Block](https://docs.lithic.com/docs/cards#encrypted-pin-block).
type: string
pin_status:
description: >-
Indicates if a card is blocked due a PIN status issue (e.g. excessive incorrect attempts).
Can only be set to `OK` to unblock a card.
enum:
- OK
type: string
spend_limit:
description: >-
Amount (in cents) to limit approved authorizations (e.g. 100000 would be a $1,000 limit).
Transaction requests above the spend limit will be declined. Note that a spend limit of 0
is effectively no limit, and should only be used to reset or remove a prior limit. Only a
limit of 1 or above will result in declined transactions due to checks against the card
limit.
example: 0
type: integer
spend_limit_duration:
$ref: '#/components/schemas/spend_limit_duration'
state:
description: |
Card state values:
* `CLOSED` - Card will no longer approve authorizations. Closing a card cannot be undone.
* `OPEN` - Card will approve authorizations (if they match card and account parameters).
* `PAUSED` - Card will decline authorizations, but can be resumed at a later time.
enum:
- CLOSED
- OPEN
- PAUSED
type: string
substatus:
description: >
Card state substatus values:
* `LOST` - The physical card is no longer in the cardholder's possession due to being lost
or never received by the cardholder.
* `COMPROMISED` - Card information has been exposed, potentially leading to unauthorized
access. This may involve physical card theft, cloning, or online data breaches.
* `DAMAGED` - The physical card is not functioning properly, such as having chip failures
or a demagnetized magnetic stripe.
* `END_USER_REQUEST` - The cardholder requested the closure of the card for reasons
unrelated to fraud or damage, such as switching to a different product or closing the
account.
* `ISSUER_REQUEST` - The issuer closed the card for reasons unrelated to fraud or damage,
such as account inactivity, product or policy changes, or technology upgrades.
* `NOT_ACTIVE` - The card hasn’t had any transaction activity for a specified period,
applicable to statuses like `PAUSED` or `CLOSED`.
* `SUSPICIOUS_ACTIVITY` - The card has one or more suspicious transactions or activities
that require review. This can involve prompting the cardholder to confirm legitimate use
or report confirmed fraud.
* `INTERNAL_REVIEW` - The card is temporarily paused pending further internal review.
* `EXPIRED` - The card has expired and has been closed without being reissued.
* `UNDELIVERABLE` - The card cannot be delivered to the cardholder and has been returned.
* `OTHER` - The reason for the status does not fall into any of the above categories. A
comment should be provided to specify the reason.
enum:
- LOST
- COMPROMISED
- DAMAGED
- END_USER_REQUEST
- ISSUER_REQUEST
- NOT_ACTIVE
- SUSPICIOUS_ACTIVITY
- INTERNAL_REVIEW
- EXPIRED
- UNDELIVERABLE
- OTHER
type: string
comment:
description: Additional context or information related to the card.
type: string
type: object
required: true
responses:
'200':
content:
application/json:
example:
account_token: f3f4918c-dee9-464d-a819-4aa42901d624
card_program_token: 5e9483eb-8103-4e16-9794-2106111b2eca
cardholder_currency: USD
created: '2021-06-28T22:53:15Z'
cvv: '742'
exp_month: '05'
exp_year: '2027'
funding:
account_name: Sandbox
created: '2022-03-08T08:00:00Z'
last_four: '5263'
nickname: checking account
state: ENABLED
token: b0f0d91a-3697-46d8-85f3-20f0a585cbea
type: DEPOSITORY_CHECKING
hostname: ''
last_four: '4938'
memo: Updated Name
pan: '4111111289144142'
spend_limit: 100
spend_limit_duration: FOREVER
replacement_for: null
state: OPEN
token: f5f905f5-8a8e-49bf-a9b4-c0adaa401456
type: VIRTUAL
pin_status: NOT_SET
schema:
$ref: '#/components/schemas/pci_card_response'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Update card
tags:
- Card
/v1/cards/{card_token}/balances:
get:
description: Get the balances for a given card.
operationId: getCardBalance
parameters:
- description: UTC date of the balance to retrieve. Defaults to latest available balance
in: query
name: balance_date
schema:
format: date-time
type: string
- description: >
Balance after a given financial event occured.
For example, passing the event_token of a $5 CARD_CLEARING financial event will return a balance
decreased by $5
in: query
name: last_transaction_event_token
schema:
format: uuid
type: string
- $ref: '#/components/parameters/cardToken'
responses:
'200':
content:
application/json:
schema:
properties:
data:
items:
$ref: '#/components/schemas/financial-account-balance'
type: array
has_more:
description: More data exists.
type: boolean
required:
- data
- has_more
type: object
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Get card balances
tags:
- Card
/v1/cards/{card_token}/financial_transactions:
get:
description: List the financial transactions for a given card.
operationId: getCardFinancialTransactions
parameters:
- description: Financial Transaction category to be returned.
in: query
name: category
schema:
enum:
- CARD
- TRANSFER
type: string
- description: Financial Transaction result to be returned.
in: query
name: result
schema:
enum:
- APPROVED
- DECLINED
type: string
- description: Financial Transaction status to be returned.
in: query
name: status
schema:
enum:
- DECLINED
- EXPIRED
- PENDING
- RETURNED
- SETTLED
- VOIDED
type: string
- $ref: '#/components/parameters/beginTime'
- $ref: '#/components/parameters/cardToken'
- $ref: '#/components/parameters/endTime'
- $ref: '#/components/parameters/endingBefore'
- $ref: '#/components/parameters/startingAfter'
responses:
'200':
content:
application/json:
schema:
properties:
data:
items:
$ref: '#/components/schemas/financial-account-transaction'
type: array
has_more:
description: More data exists.
type: boolean
required:
- data
- has_more
type: object
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: List card financial transactions
tags:
- Card
/v1/cards/{card_token}/financial_transactions/{financial_transaction_token}:
get:
description: Get the card financial transaction for the provided token.
operationId: getCardFinancialTransactionByToken
parameters:
- $ref: '#/components/parameters/cardToken'
- $ref: '#/components/parameters/financialTransactionToken'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/financial-account-transaction'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Get card financial transaction
tags:
- Card
/v1/cards/{card_token}/provision:
post:
description: >
Allow your cardholders to directly add payment cards to the device's digital wallet (e.g. Apple Pay)
with one touch from your app.
This requires some additional setup and configuration. Please [Contact Us](https://lithic.com/contact)
or your Customer Success representative for more information.
operationId: postCardProvision
parameters:
- $ref: '#/components/parameters/cardTokenDigitalWallet'
requestBody:
content:
application/json:
examples:
provisionGoogleCard:
summary: Provision a card in Google Pay
value:
digital_wallet: GOOGLE_PAY
schema:
properties:
certificate:
description: >-
Only applicable if `digital_wallet` is `APPLE_PAY`. Omit to receive only `activationData`
in the response. Apple's public leaf certificate. Base64 encoded in PEM format with
headers `(-----BEGIN CERTIFICATE-----)` and trailers omitted. Provided by the device's
wallet.
format: byte
type: string
client_wallet_account_id:
description: >-
Only applicable if `digital_wallet` is `GOOGLE_PAY` or `SAMSUNG_PAY` and the card is on
the Visa network. Consumer ID that identifies the wallet account holder entity.
type: string
client_device_id:
description: >-
Only applicable if `digital_wallet` is `GOOGLE_PAY` or `SAMSUNG_PAY` and the card is on
the Visa network. Stable device identification set by the wallet provider.
type: string
digital_wallet:
description: Name of digital wallet provider.
enum:
- APPLE_PAY
- GOOGLE_PAY
- SAMSUNG_PAY
type: string
nonce:
description: >-
Only applicable if `digital_wallet` is `APPLE_PAY`. Omit to receive only `activationData`
in the response. Base64 cryptographic nonce provided by the device's wallet.
format: byte
type: string
nonce_signature:
description: >-
Only applicable if `digital_wallet` is `APPLE_PAY`. Omit to receive only `activationData`
in the response. Base64 cryptographic nonce provided by the device's wallet.
format: byte
type: string
type: object
description: Update request.
required: true
responses:
'200':
content:
application/json:
schema:
properties:
provisioning_payload:
oneOf:
- type: string
description: >-
Base64 encoded JSON payload representing a payment card that can be passed to a
device's digital wallet. Applies to Google and Samsung Pay wallets.
- type: object
properties:
activationData:
type: string
ephemeralPublicKey:
type: string
encryptedData:
type: string
description: >-
Object containing the fields required to add a card to Apple Pay. Applies only to
Apple Pay wallet.
type: object
description: >
Returns `provisioning_payload`, a cryptographic payload representing a payment card that can be
passed to a device's digital wallet. Each digital wallet has a different API; consult the wallet's
documentation for more info.
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Provision card (Digital Wallet)
tags:
- Card
/v1/cards/{card_token}/web_provision:
post:
description: >
Allow your cardholders to directly add payment cards to the device's digital wallet from a browser on
the web.
This requires some additional setup and configuration. Please [Contact Us](https://lithic.com/contact)
or your Customer Success representative for more information.
operationId: postCardWebProvision
parameters:
- $ref: '#/components/parameters/cardTokenDigitalWallet'
requestBody:
content:
application/json:
examples:
webProvisionAppleCard:
summary: Web push provision a card for Apple Pay
value:
digital_wallet: APPLE_PAY
webProvisionGoogleCard:
summary: Web push provision a card for Google Pay
value:
digital_wallet: GOOGLE_PAY
server_session_id: d3538acf-e5df-4446-8ce6-588fa4472ac1
client_device_id: d3538acf-e5df-4446-8ce6-588fa4472ac1
client_wallet_account_id: d3538acf-e5df-4446-8ce6-588fa4472ac1
schema:
properties:
digital_wallet:
description: Name of digital wallet provider.
enum:
- APPLE_PAY
- GOOGLE_PAY
type: string
server_session_id:
description: >-
Only applicable if `digital_wallet` is GOOGLE_PAY. Google Pay Web Push Provisioning
session identifier required for the FPAN flow.
format: uuid
type: string
client_device_id:
description: >-
Only applicable if `digital_wallet` is GOOGLE_PAY. Google Pay Web Push Provisioning device
identifier required for the tokenization flow
format: uuid
type: string
client_wallet_account_id:
description: >-
Only applicable if `digital_wallet` is GOOGLE_PAY. Google Pay Web Push Provisioning wallet
account identifier required for the tokenization flow
format: uuid
type: string
type: object
description: Update request.
required: true
responses:
'200':
content:
application/json:
examples:
applePayResponse:
summary: Web push provision response for Apple Pay
value:
jws:
header:
kid: 8dc7aed4-29e3-41e4-9cdb-673a05e6615c
protected: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9
payload: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9
signature: SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
state: 3cc4c292-727b-4ca8-b9a8-f96c15485f4e
googlePayResponse:
summary: Web push provision response for Google Pay
value:
google_opc: WW91ciBTdHJpbmcgSGVyZQ==
tsp_opc: WW91ciBTdHJpbmcgSGVyZQ==
schema:
$ref: '#/components/schemas/WebPushProvisioningResponse'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Web Push Provision card (Digital Wallet)
tags:
- Card
/v1/cards/{card_token}/reissue:
post:
description: >-
Initiate print and shipment of a duplicate physical card (e.g. card is physically damaged). The PAN,
expiry, and CVC2 will remain the same and the original card can continue to be used until the new card
is activated.
Only applies to cards of type `PHYSICAL`. A card can be reissued or renewed a total of 8 times.
operationId: postCardReissue
parameters:
- $ref: '#/components/parameters/cardToken'
requestBody:
content:
application/json:
examples:
reissueCardNewAddress:
summary: Reissue card with a new address
value:
carrier:
qr_code_url: https://lithic.com/activate-card/1
product_id: '100'
shipping_address:
address1: 5 Broad Street
address2: Unit 5A
city: NEW YORK
country: USA
first_name: Janet
last_name: Yellen
postal_code: '10001'
state: NY
shipping_method: STANDARD
schema:
properties:
carrier:
$ref: '#/components/schemas/Carrier'
description: If omitted, the previous carrier will be used.
product_id:
description: >
Specifies the configuration (e.g. physical card art) that the card should be manufactured
with, and only applies to cards of type `PHYSICAL`. This must be configured with Lithic
before use.
type: string
shipping_address:
$ref: '#/components/schemas/ShippingAddress'
description: If omitted, the previous shipping address will be used.
shipping_method:
description: >
Shipping method for the card. Only applies to cards of type PHYSICAL.
Use of options besides `STANDARD` require additional permissions.
* `STANDARD` - USPS regular mail or similar international option, with no tracking
* `STANDARD_WITH_TRACKING` - USPS regular mail or similar international option, with
tracking
* `PRIORITY` - USPS Priority, 1-3 day shipping, with tracking
* `EXPRESS` - FedEx or UPS depending on card manufacturer, Express, 3-day shipping, with
tracking
* `2_DAY` - FedEx or UPS depending on card manufacturer, 2-day shipping, with tracking
* `EXPEDITED` - FedEx or UPS depending on card manufacturer, Standard Overnight or similar
international option, with tracking
* `BULK_EXPEDITED` - Bulk shipment with Expedited shipping
enum:
- 2_DAY
- BULK_EXPEDITED
- EXPEDITED
- EXPRESS
- PRIORITY
- STANDARD
- STANDARD_WITH_TRACKING
type: string
type: object
required: true
responses:
'200':
content:
application/json:
example:
account_token: f3f4918c-dee9-464d-a819-4aa42901d624
card_program_token: 5e9483eb-8103-4e16-9794-2106111b2eca
cardholder_currency: USD
created: '2021-06-28T22:53:15Z'
cvv: '742'
exp_month: '05'
exp_year: '2027'
funding:
account_name: Sandbox
created: '2022-03-08T08:00:00Z'
last_four: '5263'
nickname: checking account
state: ENABLED
token: b0f0d91a-3697-46d8-85f3-20f0a585cbea
type: DEPOSITORY_CHECKING
hostname: ''
last_four: '4938'
memo: Updated Name
pan: '4111111289144142'
spend_limit: 100
spend_limit_duration: FOREVER
state: OPEN
token: f5f905f5-8a8e-49bf-a9b4-c0adaa401456
type: PHYSICAL
pin_status: OK
schema:
$ref: '#/components/schemas/pci_card_response'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Reissue physical card
tags:
- Card
/v1/cards/{card_token}/renew:
post:
description: >-
Applies to card types `PHYSICAL` and `VIRTUAL`.
For `PHYSICAL`, creates a new card with the same card token and PAN, but updated expiry and CVC2 code.
The original card will keep working for card-present transactions until the new card is activated. For
card-not-present transactions, the original card details (expiry, CVC2) will also keep working until
the new card is activated.
A `PHYSICAL` card can be reissued or renewed a total of 8 times.
For `VIRTUAL`, the card will retain the same card token and PAN and receive an updated expiry and CVC2
code.
`product_id`, `shipping_method`, `shipping_address`, `carrier` are only relevant for renewing
`PHYSICAL` cards.
operationId: postCardRenew
parameters:
- $ref: '#/components/parameters/cardToken'
requestBody:
content:
application/json:
examples:
renewCardNewAddress:
summary: Renew card with a new address
value:
carrier:
qr_code_url: https://lithic.com/activate-card/1
product_id: '100'
shipping_address:
address1: 5 Broad Street
address2: Unit 5A
city: NEW YORK
country: USA
first_name: Janet
last_name: Yellen
postal_code: '10001'
state: NY
shipping_method: STANDARD
schema:
properties:
carrier:
$ref: '#/components/schemas/Carrier'
description: If omitted, the previous carrier will be used.
exp_month:
description: >-
Two digit (MM) expiry month. If neither `exp_month` nor `exp_year` is provided, an
expiration date six years in the future will be generated.
example: '06'
maxLength: 2
minLength: 2
type: string
exp_year:
description: >-
Four digit (yyyy) expiry year. If neither `exp_month` nor `exp_year` is provided, an
expiration date six years in the future will be generated.
example: '2027'
maxLength: 4
minLength: 4
type: string
product_id:
description: >
Specifies the configuration (e.g. physical card art) that the card should be manufactured
with, and only applies to cards of type `PHYSICAL`. This must be configured with Lithic
before use.
type: string
shipping_address:
$ref: '#/components/schemas/ShippingAddress'
description: The shipping address this card will be sent to.
shipping_method:
description: >
Shipping method for the card. Only applies to cards of type PHYSICAL.
Use of options besides `STANDARD` require additional permissions.
* `STANDARD` - USPS regular mail or similar international option, with no tracking
* `STANDARD_WITH_TRACKING` - USPS regular mail or similar international option, with
tracking
* `PRIORITY` - USPS Priority, 1-3 day shipping, with tracking
* `EXPRESS` - FedEx or UPS depending on card manufacturer, Express, 3-day shipping, with
tracking
* `2_DAY` - FedEx or UPS depending on card manufacturer, 2-day shipping, with tracking
* `EXPEDITED` - FedEx or UPS depending on card manufacturer, Standard Overnight or similar
international option, with tracking
* `BULK_EXPEDITED` - Bulk shipment with Expedited shipping
enum:
- 2_DAY
- BULK_EXPEDITED
- EXPEDITED
- EXPRESS
- PRIORITY
- STANDARD
- STANDARD_WITH_TRACKING
type: string
required:
- shipping_address
type: object
required: true
responses:
'200':
content:
application/json:
example:
account_token: f3f4918c-dee9-464d-a819-4aa42901d624
card_program_token: 5e9483eb-8103-4e16-9794-2106111b2eca
cardholder_currency: USD
created: '2021-06-28T22:53:15Z'
cvv: '742'
exp_month: '05'
exp_year: '2027'
funding:
account_name: Sandbox
created: '2020-07-08T17:57:36Z'
last_four: '5263'
nickname: checking account
state: ENABLED
token: b0f0d91a-3697-46d8-85f3-20f0a585cbea
type: DEPOSITORY_CHECKING
hostname: ''
last_four: '4938'
memo: Updated Name
pan: '4111111289144142'
spend_limit: 100
spend_limit_duration: FOREVER
state: OPEN
token: f5f905f5-8a8e-49bf-a9b4-c0adaa401456
type: PHYSICAL
pin_status: OK
schema:
$ref: '#/components/schemas/pci_card_response'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Renew a card
tags:
- Card
/v1/cards/{card_token}/convert_physical:
post:
description: >-
Convert a virtual card into a physical card and manufacture it.
Customer must supply relevant fields for physical card creation including `product_id`, `carrier`,
`shipping_method`, and `shipping_address`.
The card token will be unchanged. The card's type will be altered to `PHYSICAL`.
The card will be set to state `PENDING_FULFILLMENT` and fulfilled at next fulfillment cycle.
Virtual cards created on card programs which do not support physical cards cannot be converted. The
card program cannot be changed as part of the conversion. Cards must be in an `OPEN` state to be
converted.
Only applies to cards of type `VIRTUAL` (or existing cards with deprecated types of `DIGITAL_WALLET`
and `UNLOCKED`).
operationId: postConvertPhysical
parameters:
- $ref: '#/components/parameters/cardToken'
requestBody:
content:
application/json:
examples:
convertPhysicalAddress:
summary: Convert virtual card to physical card
value:
carrier:
qr_code_url: https://lithic.com/activate-card/1
product_id: '100'
shipping_address:
address1: 5 Broad Street
address2: Unit 5A
city: NEW YORK
country: USA
first_name: Janet
last_name: Yellen
postal_code: '10001'
state: NY
shipping_method: STANDARD
schema:
properties:
carrier:
$ref: '#/components/schemas/Carrier'
description: If omitted, the previous carrier will be used.
product_id:
description: >
Specifies the configuration (e.g. physical card art) that the card should be manufactured
with, and only applies to cards of type `PHYSICAL`. This must be configured with Lithic
before use.
type: string
shipping_address:
$ref: '#/components/schemas/ShippingAddress'
description: The shipping address this card will be sent to.
shipping_method:
description: >
Shipping method for the card. Only applies to cards of type PHYSICAL.
Use of options besides `STANDARD` require additional permissions.
* `STANDARD` - USPS regular mail or similar international option, with no tracking
* `STANDARD_WITH_TRACKING` - USPS regular mail or similar international option, with
tracking
* `PRIORITY` - USPS Priority, 1-3 day shipping, with tracking
* `EXPRESS` - FedEx or UPS depending on card manufacturer, Express, 3-day shipping, with
tracking
* `2_DAY` - FedEx or UPS depending on card manufacturer, 2-day shipping, with tracking
* `EXPEDITED` - FedEx or UPS depending on card manufacturer, Standard Overnight or similar
international option, with tracking
* `BULK_EXPEDITED` - Bulk shipment with Expedited shipping
enum:
- 2_DAY
- BULK_EXPEDITED
- EXPEDITED
- EXPRESS
- PRIORITY
- STANDARD
- STANDARD_WITH_TRACKING
type: string
required:
- shipping_address
type: object
required: true
responses:
'200':
content:
application/json:
example:
account_token: f3f4918c-dee9-464d-a819-4aa42901d624
card_program_token: 5e9483eb-8103-4e16-9794-2106111b2eca
cardholder_currency: USD
created: '2021-06-28T22:53:15Z'
cvv: '742'
exp_month: '05'
exp_year: '2027'
funding:
account_name: Sandbox
created: '2020-07-08T17:57:36Z'
last_four: '5263'
nickname: checking account
state: ENABLED
token: b0f0d91a-3697-46d8-85f3-20f0a585cbea
type: DEPOSITORY_CHECKING
hostname: ''
last_four: '4938'
memo: Updated Name
pan: '4111111289144142'
spend_limit: 100
spend_limit_duration: FOREVER
state: OPEN
token: f5f905f5-8a8e-49bf-a9b4-c0adaa401456
type: PHYSICAL
pin_status: OK
schema:
$ref: '#/components/schemas/pci_card_response'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Convert virtual to physical card
tags:
- Card
/v1/cards/{card_token}/spend_limits:
get:
description: >-
Get a Card's available spend limit, which is based on the spend limit configured on the Card and the
amount already spent over the spend limit's duration. For example, if the Card has a monthly spend
limit of $1000 configured, and has spent $600 in the last month, the available spend limit returned
would be $400.
operationId: getCardSpendLimits
parameters:
- $ref: '#/components/parameters/cardToken'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/CardSpendLimits'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Get card's available spend limit
tags:
- Card
/v1/card_bulk_orders:
get:
description: List bulk orders for physical card shipments **[BETA]**
operationId: getCardBulkOrders
parameters:
- $ref: '#/components/parameters/beginTime'
- $ref: '#/components/parameters/endTime'
- $ref: '#/components/parameters/endingBefore'
- $ref: '#/components/parameters/pageSize'
- $ref: '#/components/parameters/startingAfter'
responses:
'200':
content:
application/json:
schema:
properties:
data:
items:
$ref: '#/components/schemas/bulk-order-response'
type: array
has_more:
description: More data exists.
type: boolean
required:
- data
- has_more
type: object
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: List bulk orders
tags:
- Card Bulk Orders
post:
description: >-
Create a new bulk order for physical card shipments **[BETA]**. Cards can be added to the order via
the POST /v1/cards endpoint by specifying the bulk_order_token. Lock the order via PATCH
/v1/card_bulk_orders/{bulk_order_token} to prepare for shipment. Please work with your Customer
Success Manager and card personalization bureau to ensure bulk shipping is supported for your program.
operationId: postCardBulkOrder
requestBody:
content:
application/json:
example:
shipping_address:
address1: 123 Main Street
city: NEW YORK
country: USA
first_name: Johnny
last_name: Appleseed
postal_code: '10001'
state: NY
shipping_method: BULK_EXPEDITED
customer_product_id: custom-card-design-123
schema:
$ref: '#/components/schemas/create-bulk-order-request'
required: true
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/bulk-order-response'
description: Created
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Create bulk order
tags:
- Card Bulk Orders
/v1/card_bulk_orders/{bulk_order_token}:
get:
description: Retrieve a specific bulk order by token **[BETA]**
operationId: getCardBulkOrder
parameters:
- description: Globally unique identifier for the bulk order
in: path
name: bulk_order_token
required: true
schema:
format: uuid
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/bulk-order-response'
description: OK
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Get bulk order
tags:
- Card Bulk Orders
patch:
description: >-
Update a bulk order **[BETA]**. Primarily used to lock the order, preventing additional cards from
being added
operationId: patchCardBulkOrder
parameters:
- description: Globally unique identifier for the bulk order
in: path
name: bulk_order_token
required: true
schema:
format: uuid
type: string
requestBody:
content:
application/json:
example:
status: LOCKED
schema:
$ref: '#/components/schemas/update-bulk-order-request'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/bulk-order-response'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Update bulk order
tags:
- Card Bulk Orders
/v1/digital_card_art:
get:
description: List digital card art.
operationId: getDigitalCardArt
parameters:
- $ref: '#/components/parameters/endingBefore'
- $ref: '#/components/parameters/pageSize'
- $ref: '#/components/parameters/startingAfter'
responses:
'200':
content:
application/json:
schema:
properties:
data:
items:
$ref: '#/components/schemas/DigitalCardArt'
type: array
has_more:
description: More data exists.
type: boolean
required:
- data
- has_more
type: object
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: List digital card art
tags:
- Tokenization
/v1/digital_card_art/{digital_card_art_token}:
get:
description: Get digital card art by token.
operationId: getDigitalCardArtByToken
parameters:
- description: >-
Specifies the digital card art to be displayed in the user’s digital wallet after tokenization.
This artwork must be approved by Mastercard and configured by Lithic to use. See [Flexible Card
Art Guide](https://docs.lithic.com/docs/about-digital-wallets#flexible-card-art).
in: path
name: digital_card_art_token
required: true
schema:
format: uuid
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/DigitalCardArt'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Get digital card art by token
tags:
- Tokenization
/v1/disputes:
get:
description: List chargeback requests.
operationId: getDisputes
parameters:
- description: Filter by status.
in: query
name: status
required: false
schema:
enum:
- ARBITRATION
- CASE_CLOSED
- CASE_WON
- NEW
- PENDING_CUSTOMER
- PREARBITRATION
- REPRESENTMENT
- SUBMITTED
type: string
- description: Transaction tokens to filter by.
explode: false
in: query
name: transaction_tokens
required: false
schema:
items:
format: uuid
type: string
maxItems: 50
type: array
style: form
- $ref: '#/components/parameters/beginTime'
- $ref: '#/components/parameters/endTime'
- $ref: '#/components/parameters/endingBefore'
- $ref: '#/components/parameters/pageSize'
- $ref: '#/components/parameters/startingAfter'
responses:
'200':
content:
application/json:
schema:
properties:
data:
items:
$ref: '#/components/schemas/dispute-v1'
type: array
has_more:
description: More data exists.
type: boolean
required:
- data
- has_more
type: object
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: List chargeback requests
tags:
- Chargeback
post:
description: Request a chargeback.
operationId: postDisputes
requestBody:
content:
application/json:
examples:
initiateDispute:
summary: Request chargeback
value:
amount: 10000
customer_filed_date: '2021-06-28T22:53:15Z'
reason: FRAUD_CARD_PRESENT
transaction_token: 12345624-aa69-4cbc-a946-30d90181b621
schema:
properties:
amount:
description: Amount for chargeback
type: integer
customer_filed_date:
description: Date the customer filed the chargeback request
format: date-time
type: string
customer_note:
description: Customer description
maximum: 5000
type: string
reason:
description: Reason for chargeback
enum:
- ATM_CASH_MISDISPENSE
- CANCELLED
- DUPLICATED
- FRAUD_CARD_NOT_PRESENT
- FRAUD_CARD_PRESENT
- FRAUD_OTHER
- GOODS_SERVICES_NOT_AS_DESCRIBED
- GOODS_SERVICES_NOT_RECEIVED
- INCORRECT_AMOUNT
- MISSING_AUTH
- OTHER
- PROCESSING_ERROR
- RECURRING_TRANSACTION_NOT_CANCELLED
- REFUND_NOT_PROCESSED
type: string
transaction_token:
description: Transaction for chargeback
format: uuid
type: string
required:
- amount
- reason
- transaction_token
type: object
required: true
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/dispute-v1'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Request chargeback
tags:
- Chargeback
/v1/disputes/{dispute_token}:
delete:
description: Withdraw chargeback request.
operationId: deleteDisputeByToken
parameters:
- $ref: '#/components/parameters/disputeToken'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/dispute-v1'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Withdraw chargeback request
tags:
- Chargeback
get:
description: Get chargeback request.
operationId: getDisputeByToken
parameters:
- $ref: '#/components/parameters/disputeToken'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/dispute-v1'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Get chargeback request
tags:
- Chargeback
patch:
description: Update chargeback request. Can only be modified if status is `NEW`.
operationId: updateDisputeByToken
parameters:
- $ref: '#/components/parameters/disputeToken'
requestBody:
content:
application/json:
schema:
properties:
amount:
description: Amount for chargeback
type: integer
customer_filed_date:
description: Date the customer filed the chargeback request
format: date-time
type: string
customer_note:
description: Customer description
type: string
reason:
description: Reason for chargeback
enum:
- ATM_CASH_MISDISPENSE
- CANCELLED
- DUPLICATED
- FRAUD_CARD_NOT_PRESENT
- FRAUD_CARD_PRESENT
- FRAUD_OTHER
- GOODS_SERVICES_NOT_AS_DESCRIBED
- GOODS_SERVICES_NOT_RECEIVED
- INCORRECT_AMOUNT
- MISSING_AUTH
- OTHER
- PROCESSING_ERROR
- RECURRING_TRANSACTION_NOT_CANCELLED
- REFUND_NOT_PROCESSED
type: string
type: object
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/dispute-v1'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Update chargeback request
tags:
- Chargeback
/v1/disputes/{dispute_token}/evidences:
get:
description: List evidence for a chargeback request.
operationId: getDisputeEvidences
parameters:
- $ref: '#/components/parameters/beginTime'
- $ref: '#/components/parameters/disputeToken'
- $ref: '#/components/parameters/endTime'
- $ref: '#/components/parameters/endingBefore'
- $ref: '#/components/parameters/pageSize'
- $ref: '#/components/parameters/startingAfter'
responses:
'200':
content:
application/json:
schema:
properties:
data:
items:
$ref: '#/components/schemas/dispute-evidence'
type: array
has_more:
description: More data exists.
type: boolean
required:
- data
- has_more
type: object
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: List evidence
tags:
- Chargeback
post:
description: >
Use this endpoint to upload evidence for a chargeback request. It will return a URL to upload your
documents to. The URL will expire in 30 minutes.
Uploaded documents must either be a `jpg`, `png` or `pdf` file, and each must be less than 5 GiB.
operationId: postEvidenceDocument
parameters:
- $ref: '#/components/parameters/disputeToken'
requestBody:
content:
application/json:
schema:
properties:
filename:
description: Filename of the evidence.
type: string
type: object
required: false
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/dispute-evidence'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Upload evidence
tags:
- Chargeback
/v1/disputes/{dispute_token}/evidences/{evidence_token}:
delete:
description: >-
Soft delete evidence for a chargeback request. Evidence will not be reviewed or submitted by Lithic
after it is withdrawn.
operationId: deleteDisputeEvidenceByToken
parameters:
- $ref: '#/components/parameters/disputeEvidenceToken'
- $ref: '#/components/parameters/disputeToken'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/dispute-evidence'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Delete evidence
tags:
- Chargeback
get:
description: Get evidence for a chargeback request.
operationId: getDisputeEvidenceByToken
parameters:
- $ref: '#/components/parameters/disputeEvidenceToken'
- $ref: '#/components/parameters/disputeToken'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/dispute-evidence'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Get evidence
tags:
- Chargeback
/v1/embed/card:
get:
description: >
Handling full card PANs and CVV codes requires that you comply with the Payment Card Industry Data
Security Standards (PCI DSS). Some clients choose to reduce their compliance obligations by leveraging
our embedded card UI solution documented below.
In this setup, PANs and CVV codes are presented to the end-user via a card UI that we provide,
optionally styled in the customer's branding using a specified css stylesheet. A user's browser makes
the request directly to api.lithic.com, so card PANs and CVVs never touch the API customer's servers
while full card data is displayed to their end-users. The response contains an HTML document (see
Embedded Card UI or Changelog for upcoming changes in January). This means that the url for the
request can be inserted straight into the `src` attribute of an iframe.
```html
<iframe id="card-iframe"
src="https://sandbox.lithic.com/v1/embed/card?embed_request=eyJjc3MiO...;hmac=r8tx1..."
allow="clipboard-write" class="content"></iframe>
```
You should compute the request payload on the server side. You can render it (or the whole iframe) on
the server or make an ajax call from your front end code, but **do not ever embed your API key into
front end code, as doing so introduces a serious security vulnerability**.
operationId: getEmbedCard
parameters:
- description: A base64 encoded JSON string of an EmbedRequest to specify which card to load.
in: query
name: embed_request
required: true
schema:
type: string
- description: SHA256 HMAC of the embed_request JSON string with base64 digest.
in: query
name: hmac
required: true
schema:
type: string
responses:
'200':
content:
text/html:
examples:
html:
summary: Card UI
value: >
<html>
<head>
<link rel="stylesheet" type="text/css"
href="https://demo.lithic.com/backend/embedded.css">
<style>
#alert { display: none; }
</style>
<script type="text/javascript">
var timeout;
function clearAlertDelay() {
clearTimeout(timeout);
var messageDiv = document.getElementById('alert');
timeout = window.setTimeout(
function() {
messageDiv.className = "empty";
messageDiv.innerText = "";
},
1200
);
}
function copySuccess(divId) {
var messageDiv = document.getElementById('alert');
messageDiv.innerText = divId + " copied to clipboard";
messageDiv.className = "success";
console.log('Copying to clipboard was successful!');
clearAlertDelay();
}
function copyFailed(divId) {
var messageDiv = document.getElementById('alert');
messageDiv.innerText = "error copying " + divId;
messageDiv.className = "error";
console.error('Copying to clipboard failed');
clearAlertDelay();
}
function copyToClip(divId) {
var messageDiv = document.getElementById('alert');
var copyEl = document.getElementById(divId);
var copyText = copyEl.textContent;
navigator.clipboard.writeText(copyText)
.then(function () {
copySuccess(divId);
clearAlertDelay();
})
.catch(function(err) {
try {
var copied = false;
if (document.createRange) {
range = document.createRange();
range.selectNode(copyEl)
select = window.getSelection();
select.removeAllRanges();
select.addRange(range);
copied = document.execCommand('copy');
select.removeAllRanges();
}
else {
range = document.body.createTextRange();
range.moveToElementText(copyEl);
range.select();
copied = document.execCommand('copy');
}
if (copied) {
copySuccess(divId);
}
else {
copyFailed(divId);
}
}
catch (err) {
copyFailed(divId);
}
clearAlertDelay();
})
}
</script>
</head>
<body>
<div id="card">
<div id="pan" onclick="copyToClip('pan')">9999<span class='pan-separator'></span>9999<span class='pan-separator'></span>9999<span class='pan-separator'></span>9999</div>
<div id="expiry">
<span id="month" onclick="copyToClip('month')">08</span>
<span id="separator">/</span>
<span id="year" onclick="copyToClip('year')">27</span>
</div>
<div id="cvv" onclick="copyToClip('cvv')">574</div>
<div id="alert" class="empty"></div>
</div>
</body>
</html>
schema:
type: string
description: >
The endpoint returns an HTML document similar to the one below. It is up to the API client to
provide css styles for these elements in the EmbedRequest. You can always rely on the `card`,
`pan`, `expiry`, `cvv`, and `alert` ids, as well as the `pan-separator` class. You shouldn't make
any other assumptions about the structure of the document as it could change at any time.
Note that using the default style sheet there is no visual indication that copying is happening
on-click, and you may need to add on-click styling yourself.
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Embedded card UI
tags:
- Card
/v1/fraud/transactions/{transaction_token}:
get:
description: |
Retrieve a fraud report for a specific transaction identified by its unique transaction token.
summary: Get a fraud report for a transaction
operationId: getFraudReport
tags:
- Fraud Report
parameters:
- required: true
schema:
title: Transaction Token
type: string
format: uuid
name: transaction_token
description: The token of the transaction that the enhanced data is associated with.
in: path
example: 00000000-0000-0000-0000-000000000000
responses:
'200':
description: Fraud report for the specified transaction.
content:
application/json:
schema:
$ref: '#/components/schemas/fraud-report-response'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
post:
description: >
Report fraud for a specific transaction token by providing details such as fraud type, fraud status,
and any additional comments.
summary: Create or update a fraud report for a transaction
operationId: createUpdateFraudReport
tags:
- Fraud Report
parameters:
- required: true
schema:
title: Transaction Token
type: string
format: uuid
name: transaction_token
description: The token of the transaction that the enhanced data is associated with.
in: path
example: 00000000-0000-0000-0000-000000000000
requestBody:
required: true
description: The details of the fraud report to create or update.
content:
application/json:
schema:
$ref: '#/components/schemas/fraud-report-request'
responses:
'200':
description: The created or updated fraud report.
content:
application/json:
schema:
$ref: '#/components/schemas/fraud-report-response'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
/v1/transactions/{transaction_token}/enhanced_commercial_data:
get:
description: Get all L2/L3 enhanced commercial data associated with a transaction. Not available in sandbox.
summary: List enhanced commercial data
operationId: listEnhancedTransactionData
tags:
- Transaction
parameters:
- required: true
schema:
title: Transaction Token
type: string
format: uuid
name: transaction_token
description: The token of the transaction that the enhanced data is associated with.
in: path
example: 00000000-0000-0000-0000-000000000000
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/EnhancedDataListResponse'
examples:
listEnhancedTransactionDataResponse:
value:
data:
- token: fda41769-2a3f-5532-898f-0d2034f2da85
transaction_token: 6b79924e-0f01-4bdf-9485-9f6da44b6be2
event_token: 49bbd49c-dfe1-56db-86ad-98c7c2bd75e4
common:
customer_reference_number: null
merchant_reference_number: null
order_date: null
line_items: []
tax:
merchant_tax_id: '521236050'
amount: null
exempt: null
fleet:
- service_type: SELF_SERVICE
driver_number: null
vehicle_number: '012345'
odometer: 12345
amount_totals:
gross_sale: 104
discount: null
net_sale: 104
fuel:
quantity: '0.24300'
type: PREMIUM_SUPER
unit_of_measure: GALLONS
unit_price: 4300
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
/v1/transactions/{transaction_token}/expire_authorization:
post:
summary: Expire an authorization
description: Expire authorization
operationId: expireAuthorization
tags:
- Transaction
parameters:
- required: true
schema:
title: Transaction Token
type: string
format: uuid
name: transaction_token
description: The token of the transaction to expire.
in: path
example: 00000000-0000-0000-0000-000000000000
responses:
'202':
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
/v1/transactions/events/{event_token}/enhanced_commercial_data:
get:
description: Get L2/L3 enhanced commercial data associated with a transaction event. Not available in sandbox.
summary: Get enhanced commercial data
operationId: getEnhancedTransactionData
tags:
- Transaction
parameters:
- required: true
schema:
title: Event Token
type: string
format: uuid
name: event_token
description: The token of the transaction event that the enhanced data is associated with.
in: path
example: 00000000-0000-0000-0000-000000000000
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/enhanced-data'
examples:
getEnhancedTransactionDataResponse:
value:
token: fda41769-2a3f-5532-898f-0d2034f2da85
transaction_token: 6b79924e-0f01-4bdf-9485-9f6da44b6be2
event_token: 49bbd49c-dfe1-56db-86ad-98c7c2bd75e4
common:
customer_reference_number: null
merchant_reference_number: null
order_date: null
line_items: []
tax:
merchant_tax_id: '521236050'
amount: null
exempt: null
fleet:
- service_type: SELF_SERVICE
driver_number: null
vehicle_number: '012345'
odometer: 12345
amount_totals:
gross_sale: 104
discount: null
net_sale: 104
fuel:
quantity: '0.24300'
type: PREMIUM_SUPER
unit_of_measure: GALLONS
unit_price: 4300
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
/v1/event_subscriptions:
get:
description: List all the event subscriptions.
operationId: getEventSubscriptions
parameters:
- $ref: '#/components/parameters/endingBefore'
- $ref: '#/components/parameters/pageSize'
- $ref: '#/components/parameters/startingAfter'
responses:
'200':
content:
application/json:
example:
data:
- description: A subscription for all events
disabled: false
token: ep_1srOrx2ZWZBpBUvZwXKQmoEYga1
url: https://example.com/webhook
has_more: false
schema:
properties:
data:
items:
$ref: '#/components/schemas/EventSubscription'
type: array
has_more:
type: boolean
required:
- data
- has_more
type: object
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: List event subscriptions
tags:
- Event
post:
description: Create a new event subscription.
operationId: createEventSubscription
requestBody:
content:
application/json:
schema:
properties:
description:
description: Event subscription description.
type: string
disabled:
default: false
description: Whether the event subscription is active (false) or inactive (true).
type: boolean
event_types:
description: >-
Indicates types of events that will be sent to this subscription. If left blank, all types
will be sent.
items:
$ref: '#/components/schemas/event_type'
type: array
url:
description: URL to which event webhooks will be sent. URL must be a valid HTTPS address.
format: uri
type: string
required:
- url
type: object
responses:
'201':
content:
application/json:
example:
description: A subscription for all events
disabled: false
token: ep_1srOrx2ZWZBpBUvZwXKQmoEYga1
url: https://example.com/webhook
event_types:
- dispute.updated
schema:
$ref: '#/components/schemas/EventSubscription'
description: Created
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Create event subscription
tags:
- Event
/v1/event_subscriptions/{event_subscription_token}:
delete:
description: Delete an event subscription.
operationId: deleteEventSubscription
parameters:
- in: path
name: event_subscription_token
required: true
schema:
type: string
requestBody:
content:
application/json: {}
responses:
'204':
description: No Content
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Delete event subscription
tags:
- Event
get:
description: Get an event subscription.
operationId: getEventSubscription
parameters:
- in: path
name: event_subscription_token
required: true
schema:
type: string
responses:
'200':
content:
application/json:
example:
description: A subscription for all events
disabled: false
token: ep_1srOrx2ZWZBpBUvZwXKQmoEYga1
url: https://example.com/webhook
event_types:
- dispute.updated
schema:
$ref: '#/components/schemas/EventSubscription'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Get event subscription
tags:
- Event
patch:
description: Update an event subscription.
operationId: updateEventSubscription
parameters:
- in: path
name: event_subscription_token
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
properties:
description:
description: Event subscription description.
type: string
disabled:
default: false
description: Whether the event subscription is active (false) or inactive (true).
type: boolean
event_types:
description: >-
Indicates types of events that will be sent to this subscription. If left blank, all types
will be sent.
items:
$ref: '#/components/schemas/event_type'
type: array
url:
description: URL to which event webhooks will be sent. URL must be a valid HTTPS address.
format: uri
type: string
required:
- url
type: object
responses:
'200':
content:
application/json:
example:
description: A subscription for all events
disabled: false
token: ep_1srOrx2ZWZBpBUvZwXKQmoEYga1
url: https://example.com/webhook
event_types:
- dispute.updated
schema:
$ref: '#/components/schemas/EventSubscription'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Update event subscription
tags:
- Event
/v1/event_subscriptions/{event_subscription_token}/attempts:
get:
description: List all the message attempts for a given event subscription.
operationId: getMessageAttemptsForEventSubscription
parameters:
- in: query
name: status
schema:
enum:
- FAILED
- PENDING
- SENDING
- SUCCESS
type: string
- $ref: '#/components/parameters/beginTime'
- $ref: '#/components/parameters/endTime'
- $ref: '#/components/parameters/endingBefore'
- $ref: '#/components/parameters/eventSubscriptionToken'
- $ref: '#/components/parameters/pageSize'
- $ref: '#/components/parameters/startingAfter'
responses:
'200':
content:
application/json:
schema:
properties:
data:
items:
$ref: '#/components/schemas/MessageAttempt'
type: array
has_more:
type: boolean
required:
- data
- has_more
type: object
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: List message attempts for an event subscription
tags:
- Event
/v1/event_subscriptions/{event_subscription_token}/recover:
post:
description: Resend all failed messages since a given time.
operationId: recoverEventSubscription
parameters:
- in: path
name: event_subscription_token
required: true
schema:
type: string
- $ref: '#/components/parameters/beginTime'
- $ref: '#/components/parameters/endTime'
requestBody:
content:
application/json: {}
responses:
'202':
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Resend failed messages
tags:
- Event
/v1/event_subscriptions/{event_subscription_token}/replay_missing:
post:
description: >
Replays messages to the endpoint. Only messages that were created after `begin` will be sent. Messages
that were previously sent to the endpoint are not resent.
Message will be retried if endpoint responds with a non-2xx status code. See [Retry
Schedule](https://docs.lithic.com/docs/events-api#retry-schedule) for details.
operationId: replayMissingEventSubscription
parameters:
- in: path
name: event_subscription_token
required: true
schema:
type: string
- $ref: '#/components/parameters/beginTime'
- $ref: '#/components/parameters/endTime'
responses:
'202':
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Replay missing messages
tags:
- Event
/v1/event_subscriptions/{event_subscription_token}/secret:
get:
description: Get the secret for an event subscription.
operationId: getEventSubscriptionSecret
parameters:
- in: path
name: event_subscription_token
required: true
schema:
type: string
responses:
'200':
content:
application/json:
example:
secret: whsec_C2FVsBQIhrscChlQIMA
schema:
properties:
secret:
description: The secret for the event subscription.
type: string
type: object
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Get event subscription secret
tags:
- Event
/v1/event_subscriptions/{event_subscription_token}/secret/rotate:
post:
description: |
Rotate the secret for an event subscription. The previous secret will be valid for the next 24 hours.
operationId: rotateEventSubscriptionSecret
parameters:
- in: path
name: event_subscription_token
required: true
schema:
type: string
responses:
'204':
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Rotate event subscription secret
tags:
- Event
/v1/events:
get:
description: List all events.
operationId: getEvents
parameters:
- description: Event types to filter events by.
explode: false
in: query
name: event_types
required: false
schema:
items:
$ref: '#/components/schemas/event_type'
maxLength: 10
type: array
style: form
- description: Whether to include the event payload content in the response.
in: query
name: with_content
required: false
schema:
type: boolean
- $ref: '#/components/parameters/beginTime'
- $ref: '#/components/parameters/endTime'
- $ref: '#/components/parameters/endingBefore'
- $ref: '#/components/parameters/pageSize'
- $ref: '#/components/parameters/startingAfter'
responses:
'200':
content:
application/json:
example:
data:
- created: '2020-07-08T17:57:36Z'
event_type: dispute.updated
payload: {}
token: msg_1srOrx2ZWZBpBUvZwXKQmoEYga1
has_more: false
schema:
properties:
data:
items:
$ref: '#/components/schemas/Event'
type: array
has_more:
type: boolean
required:
- data
- has_more
type: object
description: OK
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: List events
tags:
- Event
/v1/events/{event_token}:
get:
description: Get an event.
operationId: getEvent
parameters:
- in: path
name: event_token
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Event'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Get event
tags:
- Event
/v1/events/{event_token}/attempts:
get:
description: List all the message attempts for a given event.
operationId: getMessageAttemptsForEvent
parameters:
- in: query
name: status
schema:
enum:
- FAILED
- PENDING
- SENDING
- SUCCESS
type: string
- $ref: '#/components/parameters/beginTime'
- $ref: '#/components/parameters/endTime'
- $ref: '#/components/parameters/endingBefore'
- $ref: '#/components/parameters/eventToken'
- $ref: '#/components/parameters/pageSize'
- $ref: '#/components/parameters/startingAfter'
responses:
'200':
content:
application/json:
schema:
properties:
data:
items:
$ref: '#/components/schemas/MessageAttempt'
type: array
has_more:
type: boolean
required:
- data
- has_more
type: object
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: List message attempts for an event
tags:
- Event
/v1/events/{event_token}/event_subscriptions/{event_subscription_token}/resend:
post:
description: Resend an event to an event subscription.
operationId: resendEvent
parameters:
- in: path
name: event_subscription_token
required: true
schema:
type: string
- in: path
name: event_token
required: true
schema:
type: string
requestBody:
content:
application/json: {}
responses:
'202':
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Resend event
tags:
- Event
/v1/external_bank_accounts:
get:
description: List all the external bank accounts for the provided search criteria.
operationId: searchExternalBankAccounts
parameters:
- in: query
name: account_token
required: false
schema:
format: uuid
title: Account Token
type: string
- in: query
name: account_types
required: false
schema:
items:
$ref: '#/components/schemas/account_type'
x-stainless-naming:
java:
type_name: AccountType
title: Account Types
type: array
- in: query
name: countries
required: false
schema:
items:
type: string
title: Countries
type: array
- in: query
name: owner_types
required: false
schema:
items:
$ref: '#/components/schemas/owner_type'
title: Owner Types
type: array
- in: query
name: states
required: false
schema:
items:
$ref: '#/components/schemas/account_state'
x-stainless-naming:
java:
type_name: AccountState
title: Account States
type: array
- in: query
name: verification_states
required: false
schema:
items:
$ref: '#/components/schemas/verification_state'
title: Verification States
type: array
- $ref: '#/components/parameters/endingBefore'
- $ref: '#/components/parameters/pageSize'
- $ref: '#/components/parameters/startingAfter'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/bank_accounts_api_response'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: List external bank accounts
tags:
- External Bank Account
post:
description: Creates an external bank account within a program or Lithic account.
operationId: createExternalBankAccount
requestBody:
content:
application/json:
examples:
createBankAccountViaMicroDeposits:
summary: Add external bank account via Micro Deposit Verification
value:
account_number: '13719713158835300'
address:
address1: 5 Broad Street
city: New York
country: USA
postal_code: '10001'
state: NY
country: USA
currency: USD
name: John Does Checking
financial_account_token: dabadb3b-700c-41e3-8801-d5dfc84ebea0
owner: John Doe
owner_type: BUSINESS
routing_number: '011103093'
type: CHECKING
verification_method: MICRO_DEPOSIT
createBankAccountViaPrenote:
summary: Add external bank account via Prenote Verification
value:
account_number: '13719713158835300'
address:
address1: 5 Broad Street
city: New York
country: USA
postal_code: '10001'
state: NY
country: USA
currency: USD
name: John Does Checking
financial_account_token: dabadb3b-700c-41e3-8801-d5dfc84ebea0
owner: John Doe
owner_type: BUSINESS
routing_number: '011103093'
type: CHECKING
verification_method: PRENOTE
schema:
discriminator:
propertyName: verification_method
mapping:
MICRO_DEPOSIT: '#/components/schemas/bank_verified_create_bank_account_api_request'
PRENOTE: '#/components/schemas/bank_verified_create_bank_account_api_request'
EXTERNALLY_VERIFIED: '#/components/schemas/externally_verified_create_bank_account_api_request'
UNVERIFIED: '#/components/schemas/unverified_create_bank_account_api_request'
oneOf:
- $ref: '#/components/schemas/bank_verified_create_bank_account_api_request'
- $ref: '#/components/schemas/externally_verified_create_bank_account_api_request'
- $ref: '#/components/schemas/unverified_create_bank_account_api_request'
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/bank_account_api_response_unlinked'
description: Created
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'409':
content:
application/json:
schema:
$ref: '#/components/schemas/create_external_bank_account_error_response'
description: Conflict
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Create external bank account
tags:
- External Bank Account
/v1/external_bank_accounts/{external_bank_account_token}:
get:
description: Get the external bank account by token.
operationId: getExternalBankAccountByToken
parameters:
- in: path
name: external_bank_account_token
required: true
schema:
format: uuid
title: External Bank Account Token
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/bank_account_api_response_unlinked'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Get external bank account by token
tags:
- External Bank Account
patch:
description: Update the external bank account by token.
operationId: patchExternalBankAccountByToken
parameters:
- in: path
name: external_bank_account_token
required: true
schema:
format: uuid
title: External Bank Account Token
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/update_bank_account_api_request'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/bank_account_api_response_unlinked'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Update external bank account
tags:
- External Bank Account
/v1/external_bank_accounts/{external_bank_account_token}/micro_deposits:
post:
description: Verify the external bank account by providing the micro deposit amounts.
operationId: verifyExternalBankAccountByMicroDeposits
parameters:
- in: path
name: external_bank_account_token
required: true
schema:
format: uuid
title: External Bank Account Token
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/micro_deposit_verification_request'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/bank_account_api_response_unlinked'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Verify external bank account via micro deposit amounts
tags:
- External Bank Account
/v1/external_bank_accounts/{external_bank_account_token}/retry_micro_deposits:
post:
description: Retry external bank account micro deposit verification.
operationId: retryMicroDeposit
parameters:
- in: path
name: external_bank_account_token
required: true
schema:
format: uuid
title: External Bank Account Token
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/retry_micro_deposit_verification_request'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/bank_account_api_response_unlinked'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Retry external bank account via micro deposit
tags:
- External Bank Account
/v1/external_bank_accounts/{external_bank_account_token}/retry_prenote:
post:
description: Retry external bank account prenote verification.
operationId: retryPrenote
parameters:
- in: path
name: external_bank_account_token
required: true
schema:
format: uuid
title: External Bank Account Token
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/retry_prenote_verification_request'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/bank_account_api_response'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Retry external bank account via prenote
tags:
- External Bank Account
/v1/external_bank_accounts/{external_bank_account_token}/set_verification_method:
post:
description: |
Update the verification method for an external bank account. Verification method can only be updated
if the `verification_state` is `PENDING`.
operationId: setVerificationMethod
parameters:
- in: path
name: external_bank_account_token
required: true
schema:
format: uuid
title: External Bank Account Token
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/set_verification_method_request'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/bank_account_api_response'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Set verification method
tags:
- External Bank Account
/v1/external_bank_accounts/{external_bank_account_token}/unpause:
post:
description: |
Unpause an external bank account
operationId: unpauseExternalBankAccount
parameters:
- in: path
name: external_bank_account_token
required: true
schema:
format: uuid
title: External Bank Account Token
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/bank_account_api_response'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Unpause external bank account
tags:
- External Bank Account
/v1/credit_products/{credit_product_token}/extended_credit:
get:
description: Get the extended credit for a given credit product under a program
operationId: getExtendedCredit
parameters:
- description: Credit Product Token
in: path
name: credit_product_token
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/extended_credit'
description: OK
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Get extended credit
tags:
- Credit Product
/v1/credit_products/{credit_product_token}/prime_rates:
get:
operationId: getPrimeRates
parameters:
- description: Globally unique identifier for credit products.
in: path
name: credit_product_token
required: true
schema:
description: Globally unique identifier for credit products.
title: Credit Product Token
type: string
- in: query
name: starting_after
required: false
schema:
type: string
format: date
description: The effective date that the prime rate starts after
- in: query
name: ending_before
required: false
schema:
type: string
format: date
description: The effective date that the prime rates ends before
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/prime_rates_response'
description: Successful Response
summary: Get Credit Product Prime Rates
tags:
- Credit Product
post:
operationId: createPrimeRates
parameters:
- description: Globally unique identifier for credit products.
in: path
name: credit_product_token
required: true
schema:
description: Globally unique identifier for credit products.
title: Credit Product Token
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/interest_rate'
required: true
responses:
'202':
description: Successful Response
summary: Post Credit Product Prime Rate
tags:
- Credit Product
/v1/financial_accounts:
get:
description: Retrieve information on your financial accounts including routing and account number.
operationId: getFinancialAccounts
parameters:
- description: List financial accounts for a given account_token or business_account_token
in: query
name: account_token
schema:
format: uuid
type: string
- description: List financial accounts for a given business_account_token
in: query
name: business_account_token
schema:
format: uuid
type: string
- description: List financial accounts of a given type
in: query
name: type
schema:
enum:
- ISSUING
- OPERATING
- RESERVE
- SECURITY
- EARLY_DIRECT_DEPOSIT_FLOAT
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/financial-accounts-response'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: List financial accounts
tags:
- Financial Account
post:
description: Create a new financial account
operationId: createFinancialAccount
parameters:
- $ref: '#/components/parameters/idempotencyKey'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateFinancialAccountRequest'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/financial-account-response'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Create financial account
tags:
- Financial Account
/v1/financial_accounts/{financial_account_token}:
get:
description: Get a financial account
operationId: getFinancialAccountByToken
parameters:
- in: path
name: financial_account_token
required: true
schema:
format: uuid
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/financial-account-response'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Get financial account
tags:
- Financial Account
patch:
description: Update a financial account
operationId: updateFinancialAccountByToken
parameters:
- in: path
name: financial_account_token
required: true
schema:
format: uuid
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateFinancialAccountRequest'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/financial-account-response'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Update financial account
tags:
- Financial Account
/v1/financial_accounts/{financial_account_token}/balances:
get:
description: Get the balances for a given financial account.
operationId: getBalance
parameters:
- description: UTC date of the balance to retrieve. Defaults to latest available balance
in: query
name: balance_date
schema:
format: date-time
type: string
- description: >
Balance after a given financial event occured.
For example, passing the event_token of a $5 CARD_CLEARING financial event will return a balance
decreased by $5
in: query
name: last_transaction_event_token
schema:
format: uuid
type: string
- $ref: '#/components/parameters/financialAccountToken'
responses:
'200':
content:
application/json:
schema:
properties:
data:
items:
$ref: '#/components/schemas/financial-account-balance'
type: array
has_more:
description: More data exists.
type: boolean
required:
- data
- has_more
type: object
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Get balances
tags:
- Balance
/v1/financial_accounts/{financial_account_token}/credit_configuration:
get:
description: Get an Account's credit configuration
operationId: getAccountCreditConfiguration
parameters:
- $ref: '#/components/parameters/financialAccountToken'
summary: Get account credit configuration
tags:
- Financial Account
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/financial-account-credit-config-response'
patch:
description: Update an account's credit configuration
operationId: patchAccountCreditConfiguration
summary: Update account credit configuration
tags:
- Financial Account
parameters:
- $ref: '#/components/parameters/financialAccountToken'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/financial-account-credit-config-request'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/financial-account-credit-config-response'
/v1/financial_accounts/{financial_account_token}/financial_transactions:
get:
description: List the financial transactions for a given financial account.
operationId: getFinancialTransactions
parameters:
- description: Financial Transaction category to be returned.
in: query
name: category
schema:
enum:
- ACH
- CARD
- INTERNAL
- TRANSFER
type: string
- description: Financial Transaction result to be returned.
in: query
name: result
schema:
enum:
- APPROVED
- DECLINED
type: string
- description: Financial Transaction status to be returned.
in: query
name: status
schema:
enum:
- DECLINED
- EXPIRED
- PENDING
- RETURNED
- SETTLED
- VOIDED
type: string
- $ref: '#/components/parameters/beginTime'
- $ref: '#/components/parameters/endTime'
- $ref: '#/components/parameters/endingBefore'
- $ref: '#/components/parameters/financialAccountToken'
- $ref: '#/components/parameters/startingAfter'
responses:
'200':
content:
application/json:
schema:
properties:
data:
items:
$ref: '#/components/schemas/financial-account-transaction'
type: array
has_more:
description: More data exists.
type: boolean
required:
- data
- has_more
type: object
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: List financial transactions
tags:
- Financial Account
/v1/financial_accounts/{financial_account_token}/financial_transactions/{financial_transaction_token}:
get:
description: Get the financial transaction for the provided token.
operationId: getFinancialTransactionByToken
parameters:
- $ref: '#/components/parameters/financialAccountToken'
- $ref: '#/components/parameters/financialTransactionToken'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/financial-account-transaction'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Get financial transaction
tags:
- Financial Account
/v1/financial_accounts/{financial_account_token}/register_account_number:
post:
description: Register account number
operationId: registerAccountNumber
parameters:
- $ref: '#/components/parameters/financialAccountToken'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/register_account_number_request'
responses:
'200':
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Register Account Number
tags:
- Financial Account
/v1/financial_accounts/{financial_account_token}/holds:
get:
description: List holds for a financial account.
operationId: getFinancialAccountHolds
parameters:
- description: Globally unique identifier for the financial account.
in: path
name: financial_account_token
required: true
schema:
format: uuid
type: string
- description: Hold status to filter by.
in: query
name: status
required: false
schema:
$ref: '#/components/schemas/hold_status'
- $ref: '#/components/parameters/beginTime'
- $ref: '#/components/parameters/endingBefore'
- $ref: '#/components/parameters/endTime'
- $ref: '#/components/parameters/pageSize'
- $ref: '#/components/parameters/startingAfter'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/holds_response'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: List holds
tags:
- Hold
post:
description: |
Create a hold on a financial account. Holds reserve funds by moving them
from available to pending balance. They can be resolved via settlement
(linked to a payment or book transfer), voiding, or expiration.
operationId: createHold
parameters:
- description: Globally unique identifier for the financial account.
in: path
name: financial_account_token
required: true
schema:
format: uuid
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/create_hold_request'
required: true
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/hold_transaction'
description: Created
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Create hold
tags:
- Hold
/v1/holds/{hold_token}:
get:
description: Get hold by token.
operationId: getHold
parameters:
- description: Globally unique identifier for the hold.
in: path
name: hold_token
required: true
schema:
format: uuid
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/hold_transaction'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Get hold
tags:
- Hold
/v1/holds/{hold_token}/void:
post:
description: |
Void an active hold. This returns the held funds from pending back to
available balance. Only holds in PENDING status can be voided.
operationId: voidHold
parameters:
- description: Globally unique identifier for the hold.
in: path
name: hold_token
required: true
schema:
format: uuid
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/void_hold_request'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/hold_transaction'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Void hold
tags:
- Hold
/v1/financial_accounts/{financial_account_token}/statements:
get:
description: List the statements for a given financial account.
operationId: getStatements
parameters:
- description: Date string in RFC 3339 format. Only entries created after the specified date will be included.
in: query
name: begin
required: false
schema:
description: Date string in RFC 3339 format. Only entries created after the specified date will be included.
format: date
title: Begin
type: string
- description: Date string in RFC 3339 format. Only entries created before the specified date will be included.
in: query
name: end
required: false
schema:
description: Date string in RFC 3339 format. Only entries created before the specified date will be included.
format: date
title: End
type: string
- description: >-
A cursor representing an item's token before which a page of results should end. Used to retrieve
the previous page of results before this item.
in: query
name: ending_before
required: false
schema:
description: >-
A cursor representing an item's token before which a page of results should end. Used to
retrieve the previous page of results before this item.
title: Ending Before
type: string
- description: Globally unique identifier for financial account.
in: path
name: financial_account_token
required: true
schema:
description: Globally unique identifier for financial account.
format: uuid
title: Financial Account Token
type: string
- description: Page size (for pagination).
in: query
name: page_size
required: false
schema:
default: 50
description: Page size (for pagination).
maximum: 100
minimum: 1
title: Page Size
type: integer
- description: >-
A cursor representing an item's token after which a page of results should begin. Used to retrieve
the next page of results after this item.
in: query
name: starting_after
required: false
schema:
description: >-
A cursor representing an item's token after which a page of results should begin. Used to
retrieve the next page of results after this item.
title: Starting After
type: string
- description: Whether to include the initial statement. It is not included by default.
in: query
name: include_initial_statements
required: false
schema:
description: Whether to include the initial statement. It is not included by default.
title: Include Initial Statements
type: boolean
default: false
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/statements_response'
description: OK
summary: List statements
tags:
- Statements
/v1/financial_accounts/{financial_account_token}/statements/{statement_token}:
get:
description: Get a specific statement for a given financial account.
operationId: getStatement
parameters:
- description: Globally unique identifier for financial account.
in: path
name: financial_account_token
required: true
schema:
description: Globally unique identifier for financial account.
format: uuid
title: Financial Account Token
type: string
- description: Globally unique identifier for statements.
in: path
name: statement_token
required: true
schema:
description: Globally unique identifier for statements.
title: Statement Token
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/statement_response'
description: OK
summary: Get statement by token
tags:
- Statements
/v1/financial_accounts/{financial_account_token}/statements/{statement_token}/line_items:
get:
description: List the line items for a given statement within a given financial account.
operationId: getStatementLineItems
parameters:
- description: >-
A cursor representing an item's token before which a page of results should end. Used to retrieve
the previous page of results before this item.
in: query
name: ending_before
required: false
schema:
description: >-
A cursor representing an item's token before which a page of results should end. Used to
retrieve the previous page of results before this item.
title: Ending Before
type: string
- description: Globally unique identifier for financial account.
in: path
name: financial_account_token
required: true
schema:
description: Globally unique identifier for financial account.
format: uuid
title: Financial Account Token
type: string
- description: Page size (for pagination).
in: query
name: page_size
required: false
schema:
default: 50
description: Page size (for pagination).
maximum: 100
minimum: 1
title: Page Size
type: integer
- description: >-
A cursor representing an item's token after which a page of results should begin. Used to retrieve
the next page of results after this item.
in: query
name: starting_after
required: false
schema:
description: >-
A cursor representing an item's token after which a page of results should begin. Used to
retrieve the next page of results after this item.
title: Starting After
type: string
- description: Globally unique identifier for statements.
in: path
name: statement_token
required: true
schema:
description: Globally unique identifier for statements.
title: Statement Token
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/statement_line_items_response'
description: OK
summary: List line items for a statement
tags:
- Statements
/v1/financial_accounts/{financial_account_token}/loan_tapes:
get:
description: List the loan tapes for a given financial account.
operationId: getLoanTapes
parameters:
- description: Date string in RFC 3339 format. Only entries created after the specified date will be included.
in: query
name: begin
required: false
schema:
description: Date string in RFC 3339 format. Only entries created after the specified date will be included.
format: date
title: Begin
type: string
- description: Date string in RFC 3339 format. Only entries created before the specified date will be included.
in: query
name: end
required: false
schema:
description: Date string in RFC 3339 format. Only entries created before the specified date will be included.
format: date
title: End
type: string
- description: >-
A cursor representing an item's token before which a page of results should end. Used to retrieve
the previous page of results before this item.
in: query
name: ending_before
required: false
schema:
description: >-
A cursor representing an item's token before which a page of results should end. Used to
retrieve the previous page of results before this item.
title: Ending Before
type: string
- description: Globally unique identifier for financial account.
in: path
name: financial_account_token
required: true
schema:
description: Globally unique identifier for financial account.
format: uuid
title: Financial Account Token
type: string
- description: Page size (for pagination).
in: query
name: page_size
required: false
schema:
default: 50
description: Page size (for pagination).
maximum: 100
minimum: 1
title: Page Size
type: integer
- description: >-
A cursor representing an item's token after which a page of results should begin. Used to retrieve
the next page of results after this item.
in: query
name: starting_after
required: false
schema:
description: >-
A cursor representing an item's token after which a page of results should begin. Used to
retrieve the next page of results after this item.
title: Starting After
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/loan_tapes_response'
description: OK
summary: List loan tapes
tags:
- Statements
/v1/financial_accounts/{financial_account_token}/loan_tapes/{loan_tape_token}:
get:
description: Get a specific loan tape for a given financial account.
operationId: getLoanTape
parameters:
- description: Globally unique identifier for financial account.
in: path
name: financial_account_token
required: true
schema:
description: Globally unique identifier for financial account.
format: uuid
title: Financial Account Token
type: string
- description: Globally unique identifier for loan tape.
in: path
name: loan_tape_token
required: true
schema:
description: Globally unique identifier for loan tape.
title: Loan Tape Token
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/loan_tape_response'
description: OK
summary: Get loan tape by token
tags:
- Statements
/v1/financial_accounts/{financial_account_token}/loan_tape_configuration:
get:
description: Get the loan tape configuration for a given financial account.
operationId: getLoanTapeConfiguration
parameters:
- description: Globally unique identifier for financial account.
in: path
name: financial_account_token
required: true
schema:
description: Globally unique identifier for financial account.
format: uuid
title: Financial Account Token
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/loan_tape_configuration'
description: OK
summary: Get loan tape configuration
tags:
- Statements
/v1/financial_accounts/{financial_account_token}/interest_tier_schedule:
get:
description: |-
List interest tier schedules for a financial account with optional date filtering.
If no date parameters are provided, returns all tier schedules.
If date parameters are provided, uses filtering to return matching schedules (max 100).
- for_date: Returns exact match (takes precedence over other dates)
- before_date: Returns schedules with effective_date <= before_date
- after_date: Returns schedules with effective_date >= after_date
- Both before_date and after_date: Returns schedules in range
operationId: listInterestTierSchedules
parameters:
- description: Return schedules with effective_date >= after_date (ISO format YYYY-MM-DD)
in: query
name: after_date
required: false
schema:
format: date
type: string
- description: Return schedules with effective_date <= before_date (ISO format YYYY-MM-DD)
in: query
name: before_date
required: false
schema:
format: date
type: string
- description: Globally unique identifier for financial account
in: path
name: financial_account_token
required: true
schema:
format: uuid
type: string
- description: Return schedule with effective_date == for_date (ISO format YYYY-MM-DD)
in: query
name: for_date
required: false
schema:
format: date
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/tier_schedule_response'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: List interest tier schedules
tags:
- Statements
post:
description: Create a new interest tier schedule entry for a supported financial account
operationId: createInterestTierSchedule
parameters:
- description: Globally unique identifier for financial account
in: path
name: financial_account_token
required: true
schema:
format: uuid
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/tier_schedule_entry'
required: true
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/tier_schedule_entry'
description: Created
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Create interest tier schedule
tags:
- Statements
/v1/financial_accounts/{financial_account_token}/interest_tier_schedule/{effective_date}:
delete:
description: >-
Delete an interest tier schedule entry.
Returns:
- 400 Bad Request: Invalid effective_date format OR attempting to delete the earliest
tier schedule entry for a non-PENDING account
- 404 Not Found: Tier schedule entry not found for the given effective_date OR ledger account not
found
Note: PENDING accounts can delete the earliest tier schedule entry (account hasn't opened yet).
Active/non-PENDING accounts cannot delete the earliest entry to prevent orphaning the account.
If the deleted tier schedule has a past effective_date and the account is ACTIVE,
the loan tape rebuild configuration will be updated to trigger rebuilds from that date.
operationId: deleteInterestTierSchedule
parameters:
- description: Effective date in ISO format (YYYY-MM-DD)
in: path
name: effective_date
required: true
schema:
format: date
type: string
- description: Globally unique identifier for financial account
in: path
name: financial_account_token
required: true
schema:
format: uuid
type: string
responses:
'204':
description: No Content
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Delete interest tier schedule
tags:
- Statements
get:
description: Get a specific interest tier schedule by effective date
operationId: getInterestTierSchedule
parameters:
- description: Effective date in ISO format (YYYY-MM-DD)
in: path
name: effective_date
required: true
schema:
format: date
type: string
- description: Globally unique identifier for financial account
in: path
name: financial_account_token
required: true
schema:
format: uuid
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/tier_schedule_entry'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Get interest tier schedule
tags:
- Statements
put:
description: Update an existing interest tier schedule
operationId: updateInterestTierSchedule
parameters:
- description: Effective date in ISO format (YYYY-MM-DD)
in: path
name: effective_date
required: true
schema:
format: date
type: string
- description: Globally unique identifier for financial account
in: path
name: financial_account_token
required: true
schema:
format: uuid
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/update_tier_schedule_entry_request'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/tier_schedule_entry'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Update interest tier schedule
tags:
- Statements
/v1/financial_accounts/{financial_account_token}/update_status:
post:
description: Update financial account status
operationId: updateFinancialAccountStatus
summary: Update financial account status
tags:
- Financial Account
parameters:
- $ref: '#/components/parameters/financialAccountToken'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/update-financial-account-status-request'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/financial-account-response'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
/v1/account_activity:
get:
operationId: listAccountActivity
summary: List Account Activity
description: Retrieve a list of transactions across all public accounts.
parameters:
- name: status
in: query
description: Filter by transaction status
schema:
enum:
- DECLINED
- EXPIRED
- PENDING
- RETURNED
- REVERSED
- SETTLED
- VOIDED
- name: result
in: query
description: Filter by transaction result
schema:
enum:
- APPROVED
- DECLINED
- name: financial_account_token
in: query
description: Filter by financial account token
schema:
type: string
format: uuid
- name: business_account_token
in: query
description: Filter by business account token
schema:
type: string
format: uuid
- name: account_token
in: query
description: Filter by account token
schema:
type: string
format: uuid
- name: category
in: query
description: Filter by transaction category
schema:
$ref: '#/components/schemas/transaction_category'
- $ref: '#/components/parameters/beginTime'
- $ref: '#/components/parameters/endingBefore'
- $ref: '#/components/parameters/endTime'
- $ref: '#/components/parameters/pageSize'
- $ref: '#/components/parameters/startingAfter'
responses:
'200':
description: Successful response with unified transaction data
content:
application/json:
schema:
$ref: '#/components/schemas/base-transactions-response'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/error'
tags:
- Financial Account
/v1/account_activity/{transaction_token}:
get:
operationId: getAccountActivity
summary: Get Single Transaction from Account Activity
description: Retrieve a single transaction
parameters:
- name: transaction_token
in: path
required: true
description: The unique identifier for the transaction
schema:
type: string
format: uuid
responses:
'200':
description: Successful response with the requested account activity
content:
application/json:
schema:
$ref: '#/components/schemas/base-transaction-response'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/error'
tags:
- Financial Account
/v1/payments:
get:
description: List all the payments for the provided search criteria.
operationId: searchPayments
parameters:
- in: query
name: financial_account_token
required: false
schema:
format: uuid
title: Financial Account Token
type: string
- in: query
name: business_account_token
required: false
schema:
format: uuid
title: Business Account Token
type: string
- in: query
name: account_token
required: false
schema:
format: uuid
title: Account Token
type: string
- in: query
name: result
required: false
schema:
enum:
- APPROVED
- DECLINED
title: Result
type: string
- in: query
name: status
required: false
schema:
enum:
- DECLINED
- PENDING
- RETURNED
- SETTLED
title: Status
type: string
- in: query
name: category
required: false
schema:
enum:
- ACH
title: Category
type: string
- $ref: '#/components/parameters/beginTime'
- $ref: '#/components/parameters/endTime'
- $ref: '#/components/parameters/endingBefore'
- $ref: '#/components/parameters/pageSize'
- $ref: '#/components/parameters/startingAfter'
responses:
'200':
content:
application/json:
schema:
properties:
data:
items:
$ref: '#/components/schemas/payment-transaction'
type: array
has_more:
description: More data exists.
type: boolean
required:
- data
- has_more
type: object
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: List payments
tags:
- Payment
post:
description: Initiates a payment between a financial account and an external bank account.
operationId: createPayment
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreatePaymentRequest'
responses:
'202':
content:
application/json:
schema:
$ref: '#/components/schemas/PostPaymentResponse'
description: Created
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Create payment
tags:
- Payment
/v1/payments/{payment_token}:
get:
description: Get the payment by token.
operationId: getPaymentByToken
parameters:
- in: path
name: payment_token
required: true
schema:
format: uuid
title: Payment Token
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/payment-transaction'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Get payment by token
tags:
- Payment
/v1/payments/{payment_token}/retry:
post:
description: Retry an origination which has been returned.
operationId: retryPayment
parameters:
- in: path
name: payment_token
required: true
schema:
format: uuid
title: Payment Token
type: string
responses:
'202':
content:
application/json:
schema:
$ref: '#/components/schemas/PostPaymentResponse'
description: Accepted
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Retry payment
tags:
- Payment
/v1/payments/{payment_token}/return:
post:
description: >
Return an ACH payment with a specified return reason code. Returns must be initiated
within the time window specified by NACHA rules for each return code (typically 2 banking
days for most codes, 60 calendar days for unauthorized debits). For a complete list of
return codes and their meanings, see the [ACH Return Reasons
documentation](https://docs.lithic.com/docs/ach-overview#ach-return-reasons).
Note:
* This endpoint does not modify the state of the financial account associated with the payment. If you would like to change the account state, use the [Update financial account status](https://docs.lithic.com/reference/updatefinancialaccountstatus) endpoint.
* By default this endpoint is not enabled for your account. Please contact your implementations manager to enable this feature.
operationId: returnPayment
parameters:
- in: path
name: payment_token
required: true
schema:
format: uuid
title: Payment Token
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/payment_return_request'
responses:
'202':
content:
application/json:
schema:
$ref: '#/components/schemas/payment-transaction'
description: Accepted
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
message:
type: string
description: >
| Message | Description |
|---|---|
| Invalid account | The financial account token provided does not exist or is invalid |
| Invalid return reason code: {code} | The return reason code provided is not a valid
NACHA return code |
| Return code RXX cannot be used for X accounts (SEC code: XYZ) | The return code is not
valid for the account type (consumer vs non-consumer) |
| Return window expired. RXX must be initiated within {time_window}. Transaction posted
{days} days ago. | The return is being initiated outside the allowed time window for the
return code |
| date_of_death is required for return reason code RXX | The return code (R14 or R15)
requires a date_of_death parameter |
| date_of_death must be in YYYY-MM-DD format, got: {date} | The date_of_death parameter
is not in the correct format |
'401':
$ref: '#/components/responses/Unauthorized'
'404':
description: Not Found
content:
application/json:
schema:
type: object
properties:
message:
type: string
description: >
| Message | Description |
|---|---|
| Transaction not found for this instance | The payment token does not correspond to a
transaction for this account |
'412':
description: Precondition Failed
content:
application/json:
schema:
type: object
properties:
message:
type: string
description: >
| Message | Description |
|---|---|
| Could only return ACH receipt | The transaction is not an ACH receipt (credit or
debit) |
| Cannot return an ACH receipt that has already been returned | A return has already
been initiated for this payment |
| Cannot return an ACH receipt that has not yet settled | The payment must be settled
before it can be returned |
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Return payment
tags:
- Payment
/v1/reports/settlement/details/{report_date}:
get:
description: List details.
operationId: getSettlementDetails
parameters:
- description: Date of the settlement report to retrieve. Not available in sandbox.
example: '2023-09-01'
in: path
name: report_date
required: true
schema:
format: date
type: string
- $ref: '#/components/parameters/endingBefore'
- description: Number of records per page.
in: query
name: page_size
schema:
type: integer
minimum: 1
maximum: 500
default: 50
- $ref: '#/components/parameters/startingAfter'
responses:
'200':
content:
application/json:
example:
data:
- account_token: 6c25d6a4-4ff3-46f0-8f9b-f2cbb7e20e09
card_program_token: 62135b36-324f-443a-a630-bab38fe86868
card_token: 047298ea-5789-46e4-95fa-154aeeab6af3
created: '2023-06-17T13:00:29.979106'
currency: USD
disputes_gross_amount: 0
event_tokens:
- 8fce9192-41ff-4a7a-8359-bd33b3e0a7c9
institution: '00001'
interchange_fee_extended_precision: -70000
interchange_gross_amount: -7
network: VISA
other_fees_details: {}
other_fees_gross_amount: 0
report_date: '2023-06-16'
settlement_date: '2023-06-16'
token: e34a817f-119d-4976-9fb3-8b020b8bbec3
transaction_token: 0e98152b-3753-4a17-bfe2-c6f575c83b85
transactions_gross_amount: 1900
type: CLEARING
updated: '2023-06-17T13:00:29.979106'
has_more: false
schema:
properties:
data:
items:
$ref: '#/components/schemas/SettlementDetail'
type: array
has_more:
description: More data exists.
type: boolean
required:
- data
- has_more
type: object
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: List settlement details
tags:
- Settlement Report
/v1/reports/settlement/summary/{report_date}:
get:
description: Get the settlement report for a specified report date. Not available in sandbox.
operationId: getSummary
parameters:
- description: Date of the settlement report to retrieve.
example: '2023-09-01'
in: path
name: report_date
required: true
schema:
format: date
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/settlement-report'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Get settlement summary
tags:
- Settlement Report
/v1/reports/settlement/network_totals:
get:
description: List network total records with optional filters. Not available in sandbox.
operationId: listNetworkTotals
parameters:
- description: >-
Singular report date to filter on (YYYY-MM-DD). Cannot be populated in conjunction with
report_date_begin or report_date_end.
in: query
name: report_date
schema:
format: date
type: string
- description: Earliest report date to filter on, inclusive (YYYY-MM-DD).
in: query
name: report_date_begin
schema:
format: date
type: string
- description: Latest report date to filter on, inclusive (YYYY-MM-DD).
in: query
name: report_date_end
schema:
format: date
type: string
- description: Network to filter on.
in: query
name: network
schema:
type: string
enum:
- VISA
- MASTERCARD
- MAESTRO
- INTERLINK
- description: Institution ID to filter on.
in: query
name: institution_id
schema:
type: string
- description: Settlement institution ID to filter on.
in: query
name: settlement_institution_id
schema:
type: string
- description: >-
Datetime in RFC 3339 format. Only entries created after the specified time will be included. UTC
time zone.
in: query
name: begin
schema:
format: date-time
type: string
- description: >-
Datetime in RFC 3339 format. Only entries created before the specified time will be included. UTC
time zone.
in: query
name: end
schema:
format: date-time
type: string
- description: Number of records per page.
in: query
name: page_size
schema:
type: integer
minimum: 1
maximum: 100
default: 50
- description: >-
A cursor representing an item's token after which a page of results should begin. Used to retrieve
the next page of results after this item.
in: query
name: starting_after
schema:
type: string
format: uuid
- description: >-
A cursor representing an item's token before which a page of results should end. Used to retrieve
the previous page of results before this item.
in: query
name: ending_before
schema:
type: string
format: uuid
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/network_totals_list'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: List network totals
tags:
- Settlement Report
/v1/reports/settlement/network_totals/{token}:
get:
description: Retrieve a specific network total record by token. Not available in sandbox.
operationId: getNetworkTotal
parameters:
- description: Token of the network total record to retrieve
in: path
name: token
required: true
schema:
type: string
format: uuid
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/network_total'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Get network total
tags:
- Settlement Report
/v1/responder_endpoints:
delete:
operationId: deleteResponderEndpoint
parameters:
- description: The type of the endpoint.
in: query
name: type
required: true
schema:
enum:
- AUTH_STREAM_ACCESS
- THREE_DS_DECISIONING
- TOKENIZATION_DECISIONING
type: string
responses:
'200':
content: {}
description: Endpoint disenrolled successfully
summary: Disenroll a responder endpoint
tags:
- Responder Endpoints
get:
operationId: getResponderEndpoints
parameters:
- description: The type of the endpoint.
in: query
name: type
required: true
schema:
enum:
- AUTH_STREAM_ACCESS
- THREE_DS_DECISIONING
- TOKENIZATION_DECISIONING
type: string
responses:
'200':
content:
application/json:
schema:
properties:
enrolled:
description: True if the instance has an endpoint enrolled.
type: boolean
url:
description: The URL of the currently enrolled endpoint or null.
format: uri
type:
- string
- 'null'
type: object
description: Responder endpoint status
summary: Check the status of a responder endpoint
tags:
- Responder Endpoints
post:
operationId: postResponderEndpoints
requestBody:
content:
application/json:
schema:
properties:
type:
description: The type of the endpoint.
enum:
- AUTH_STREAM_ACCESS
- THREE_DS_DECISIONING
- TOKENIZATION_DECISIONING
type: string
url:
description: The URL for the responder endpoint (must be http(s)).
format: uri
type: string
type: object
required: true
responses:
'200':
content:
application/json:
schema:
properties:
enrolled:
description: True if the endpoint was enrolled successfully.
type: boolean
type: object
description: Endpoint enrolled successfully
summary: Enroll a responder endpoint
tags:
- Responder Endpoints
/v1/simulate/authorization_advice:
post:
description: >
Simulates an authorization advice from the card network as if it came from a merchant acquirer. An
authorization advice changes the pending amount of the transaction.
operationId: postSimulateAuthorizationAdvice
requestBody:
content:
application/json:
examples:
simulateAuthorizationAdvice:
summary: Simulate an authorization
value:
amount: 3831
token: fabd829d-7f7b-4432-a8f2-07ea4889aaac
schema:
properties:
amount:
description: >-
Amount (in cents) to authorize. This amount will override the transaction's amount that
was originally set by /v1/simulate/authorize.
minimum: 0
maximum: 2000000000
type: integer
token:
description: The transaction token returned from the /v1/simulate/authorize. response.
format: uuid
type: string
required:
- amount
- token
type: object
required: true
responses:
'201':
content:
application/json:
example:
debugging_request_id: d31645af-da9e-4952-b7dc-3ffb06618b39
token: fabd829d-7f7b-4432-a8f2-07ea4889aaac
schema:
properties:
debugging_request_id:
description: Debugging request ID to share with Lithic Support team.
format: uuid
type: string
token:
description: A unique token to reference this transaction.
format: uuid
type: string
type: object
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'422':
$ref: '#/components/responses/SimulateAuthorizationFailure'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Simulate authorization advice
tags:
- Transaction
/v1/simulate/authorize:
post:
description: >
Simulates an authorization request from the card network as if it came from a merchant acquirer.
If you are configured for ASA, simulating authorizations requires your ASA client to be set up
properly, i.e. be able to respond to the ASA request with a valid JSON. For users that are not
configured for ASA, a daily transaction limit of $5000 USD is applied by default. You can update this
limit via the [update account](https://docs.lithic.com/reference/patchaccountbytoken) endpoint.
operationId: postSimulateAuthorize
requestBody:
content:
application/json:
examples:
simulateAuthorization:
summary: Simulate an authorization
value:
amount: 3831
descriptor: COFFEE SHOP
merchant_acceptor_city: LOS ANGELES
merchant_acceptor_state: CA
merchant_acceptor_country: USA
pan: '4111111289144142'
simulateBalanceInquiry:
summary: Simulate a balance inquiry
value:
amount: 0
descriptor: NEIGHBORHOOD ATM
pan: '4111111289144142'
status: BALANCE_INQUIRY
simulateFinancialCreditAuthorization:
summary: Simulate a financial credit authorization
value:
amount: 3831
descriptor: COFFEE SHOP
pan: '4111111289144142'
status: FINANCIAL_CREDIT_AUTHORIZATION
schema:
properties:
amount:
description: >-
Amount (in cents) to authorize. For credit authorizations and financial credit
authorizations, any value entered will be converted into a negative amount in the
simulated transaction. For example, entering 100 in this field will result in a -100
amount in the transaction. For balance inquiries, this field must be set to 0.
minimum: 0
maximum: 2000000000
type: integer
descriptor:
description: Merchant descriptor.
example: COFFEE SHOP
maxLength: 25
minLength: 1
type: string
mcc:
description: >
Merchant category code for the transaction to be simulated. A four-digit number listed in
ISO 18245.
Supported merchant category codes can be found
[here](https://docs.lithic.com/docs/transactions#merchant-category-codes-mccs).
example: '5812'
type: string
merchant_acceptor_id:
description: Unique identifier to identify the payment card acceptor.
example: OODKZAPJVN4YS7O
maxLength: 15
minLength: 1
type: string
merchant_acceptor_city:
description: Merchant acceptor city
example: LOS ANGELES
maxLength: 13
type: string
merchant_acceptor_state:
description: Merchant acceptor state/province (ISO 3166-2 subdivision code)
example: CA
maxLength: 3
type: string
merchant_acceptor_country:
description: Merchant acceptor country code (ISO 3166-1 alpha-3)
example: USA
maxLength: 3
minLength: 3
type: string
merchant_amount:
description: >-
Amount of the transaction to be simulated in currency specified in merchant_currency,
including any acquirer fees.
type: integer
merchant_currency:
description: >-
3-character alphabetic ISO 4217 currency code. Note: Simulator only accepts USD, GBP, EUR
and defaults to GBP if another ISO 4217 code is provided
example: GBP
type: string
pan:
description: Sixteen digit card number.
example: '4111111289144142'
maxLength: 16
minLength: 16
type: string
partial_approval_capable:
description: |
Set to true if the terminal is capable of partial approval otherwise false.
Partial approval is when part of a transaction is approved and another
payment must be used for the remainder.
type: boolean
pin:
description: Simulate entering a PIN. If omitted, PIN check will not be performed.
example: '1234'
maxLength: 12
minLength: 4
type: string
status:
default: AUTHORIZATION
description: >
Type of event to simulate.
* `AUTHORIZATION` is a dual message purchase authorization, meaning a subsequent clearing
step is required to settle the transaction.
* `BALANCE_INQUIRY` is a $0 authorization requesting the balance held on the card, and is
most often observed when a cardholder requests to view a card's balance at an ATM.
* `CREDIT_AUTHORIZATION` is a dual message request from a merchant to authorize a refund,
meaning a subsequent clearing step is required to settle the transaction.
* `FINANCIAL_AUTHORIZATION` is a single message request from a merchant to debit funds
immediately (such as an ATM withdrawal), and no subsequent clearing is required to settle
the transaction.
* `FINANCIAL_CREDIT_AUTHORIZATION` is a single message request from a merchant to credit
funds immediately, and no subsequent clearing is required to settle the transaction.
enum:
- AUTHORIZATION
- BALANCE_INQUIRY
- CREDIT_AUTHORIZATION
- FINANCIAL_AUTHORIZATION
- FINANCIAL_CREDIT_AUTHORIZATION
example: AUTHORIZATION
type: string
required:
- amount
- descriptor
- pan
type: object
required: true
responses:
'201':
content:
application/json:
example:
debugging_request_id: d31645af-da9e-4952-b7dc-3ffb06618b39
token: fabd829d-7f7b-4432-a8f2-07ea4889aaac
schema:
properties:
debugging_request_id:
description: Debugging request ID to share with Lithic Support team.
format: uuid
type: string
token:
description: >-
A unique token to reference this transaction with later calls to void or clear the
authorization.
format: uuid
type: string
type: object
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'422':
$ref: '#/components/responses/SimulateAuthorizationFailure'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Simulate authorization
tags:
- Transaction
/v1/simulate/clearing:
post:
description: >
Clears an existing authorization, either debit or credit. After this event, the transaction
transitions from `PENDING` to `SETTLED` status.
If `amount` is not set, the full amount of the transaction will be cleared. Transactions that have
already cleared, either partially or fully, cannot be cleared again using this endpoint.
operationId: postSimulateClearing
requestBody:
content:
application/json:
examples:
simulateClear:
summary: Simulate clearing a transaction
value:
amount: 0
token: fabd829d-7f7b-4432-a8f2-07ea4889aaac
schema:
properties:
amount:
description: >
Amount (in cents) to clear. Typically this will match the amount in the original
authorization, but can be higher or lower. The sign of this amount will automatically
match the sign of the original authorization's amount. For example, entering 100 in this
field will result in a -100 amount in the transaction, if the original authorization is a
credit authorization.
If `amount` is not set, the full amount of the transaction will be cleared. Transactions
that have already cleared, either partially or fully, cannot be cleared again using this
endpoint.
maximum: 2000000000
type: integer
token:
description: The transaction token returned from the /v1/simulate/authorize response.
format: uuid
type: string
required:
- token
type: object
required: true
responses:
'201':
content:
application/json:
example:
debugging_request_id: 3ec51ef1-b68d-4243-be6c-2204229b09cf
schema:
properties:
debugging_request_id:
description: Debugging request ID to share with Lithic Support team.
format: uuid
type: string
type: object
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Simulate clearing
tags:
- Transaction
/v1/simulate/credit_authorization_advice:
post:
description: |
Simulates a credit authorization advice from the card network.
This message indicates that the network approved a credit authorization on your behalf.
operationId: postSimulateCreditAuthorizationAdvice
requestBody:
content:
application/json:
examples:
simulateCreditAuthorizationAdvice:
summary: Simulate a credit authorization advice
value:
amount: 3831
descriptor: COFFEE SHOP
merchant_acceptor_id: XRKGDPOWEWQRRWU
merchant_acceptor_city: SEATTLE
merchant_acceptor_state: WA
merchant_acceptor_country: USA
pan: '4111111289144142'
schema:
properties:
amount:
description: >-
Amount (in cents). Any value entered will be converted into a negative amount in the
simulated transaction. For example, entering 100 in this field will appear as a -100
amount in the transaction.
minimum: 0
maximum: 2000000000
type: integer
descriptor:
description: Merchant descriptor.
example: COFFEE SHOP
maxLength: 25
minLength: 1
type: string
mcc:
description: >
Merchant category code for the transaction to be simulated. A four-digit number listed in
ISO 18245.
Supported merchant category codes can be found
[here](https://docs.lithic.com/docs/transactions#merchant-category-codes-mccs).
example: '5812'
type: string
merchant_acceptor_id:
description: Unique identifier to identify the payment card acceptor.
example: XRKGDPOWEWQRRWU
maxLength: 15
minLength: 1
type: string
merchant_acceptor_city:
description: Merchant acceptor city
example: SEATTLE
maxLength: 13
type: string
merchant_acceptor_state:
description: Merchant acceptor state/province (ISO 3166-2 subdivision code)
example: WA
maxLength: 3
type: string
merchant_acceptor_country:
description: Merchant acceptor country code (ISO 3166-1 alpha-3)
example: USA
maxLength: 3
minLength: 3
type: string
pan:
description: Sixteen digit card number.
example: '4111111289144142'
maxLength: 16
minLength: 16
type: string
required:
- amount
- descriptor
- pan
type: object
required: true
responses:
'201':
content:
application/json:
example:
debugging_request_id: d31645af-da9e-4952-b7dc-3ffb06618b39
token: fabd829d-7f7b-4432-a8f2-07ea4889aaac
schema:
properties:
debugging_request_id:
description: Debugging request ID to share with Lithic Support team.
format: uuid
type: string
token:
description: A unique token to reference this transaction.
format: uuid
type: string
type: object
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'422':
$ref: '#/components/responses/SimulateAuthorizationFailure'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Simulate credit authorization advice
tags:
- Transaction
/v1/simulate/event_subscriptions/{event_subscription_token}/send_example:
post:
description: Send an example message for event.
operationId: sendEventSubscriptionExample
parameters:
- in: path
name: event_subscription_token
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
properties:
event_type:
description: Event type to send example message for.
$ref: '#/components/schemas/event_type'
type: object
responses:
'202':
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Send event type example message
tags:
- Event
/v1/simulate/payments/receipt:
post:
description: Simulates a receipt of a Payment.
operationId: simulatePaymentsReceipt
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/simulate_receipt_request'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/simulate_payment_response'
description: Created
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Simulate receipt
tags:
- Payment
/v1/simulate/payments/release:
post:
description: Simulates a release of a Payment.
operationId: simulatePaymentsRelease
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/simulate_origination_release_request'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/simulate_payment_response'
description: Created
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Simulate release payment
tags:
- Payment
/v1/simulate/payments/return:
post:
description: Simulates a return of a Payment.
operationId: simulatePaymentsReturn
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/simulate_origination_return_request'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/simulate_payment_response'
description: Created
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Simulate return payment
tags:
- Payment
/v1/simulate/payments/{payment_token}/action:
post:
description: Simulate payment lifecycle event
operationId: simulatePaymentAction
parameters:
- in: path
name: payment_token
required: true
schema:
format: uuid
title: Payment Token
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/simulate_action_request'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/simulate_payment_response'
description: Created
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Simulate payment lifecycle event
tags:
- Payment
/v1/simulate/return:
post:
description: >
Returns, or refunds, an amount back to a card. Returns simulated via this endpoint clear immediately,
without prior authorization, and result in a `SETTLED` transaction status.
operationId: postSimulateReturn
requestBody:
content:
application/json:
examples:
simulateReturn:
summary: Simulate a return
value:
amount: 3831
descriptor: COFFEE SHOP
pan: '4111111289144142'
schema:
properties:
amount:
description: Amount (in cents) to authorize.
minimum: 0
maximum: 2000000000
type: integer
descriptor:
description: Merchant descriptor.
example: COFFEE SHOP
maxLength: 25
minLength: 1
type: string
pan:
description: Sixteen digit card number.
example: '4111111289144142'
maxLength: 16
minLength: 16
type: string
required:
- amount
- descriptor
- pan
type: object
required: true
responses:
'201':
content:
application/json:
example:
debugging_request_id: d31645af-da9e-4952-b7dc-3ffb06618b39
token: fabd829d-7f7b-4432-a8f2-07ea4889aaac
schema:
properties:
debugging_request_id:
description: Debugging request ID to share with Lithic Support team.
format: uuid
type: string
token:
description: A unique token to reference this transaction.
format: uuid
type: string
type: object
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Simulate return
tags:
- Transaction
/v1/simulate/return_reversal:
post:
description: >
Reverses a return, i.e. a credit transaction with a `SETTLED` status. Returns can be financial credit
authorizations, or credit authorizations that have cleared.
operationId: postSimulateReturnReversal
requestBody:
content:
application/json:
examples:
simulateReturnReversal:
summary: Simulate a return reversal
value:
token: fabd829d-7f7b-4432-a8f2-07ea4889aaac
schema:
properties:
token:
description: The transaction token returned from the /v1/simulate/authorize response.
format: uuid
type: string
required:
- token
type: object
required: true
responses:
'201':
content:
application/json:
example:
debugging_request_id: d31645af-da9e-4952-b7dc-3ffb06618b39
schema:
properties:
debugging_request_id:
description: Debugging request ID to share with Lithic Support team.
format: uuid
type: string
type: object
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Simulate return reversal
tags:
- Transaction
/v1/simulate/tokenizations:
post:
description: >
This endpoint is used to simulate a card's tokenization in the Digital Wallet and merchant
tokenization ecosystem.
operationId: postSimulateTokenizations
requestBody:
content:
application/json:
examples:
simulateTokenizations:
summary: Simulates a card's tokenization
value:
account_score: 5
cvv: '776'
device_score: 5
expiration_date: 08/29
pan: '4111111289144142'
tokenization_source: APPLE_PAY
wallet_recommended_decision: APPROVED
schema:
properties:
account_score:
default: 5
description: >-
The account score (1-5) that represents how the Digital Wallet's view on how reputable an
end user's account is.
type: integer
cvv:
description: The three digit cvv for the card.
example: '776'
maxLength: 3
minLength: 3
type: string
device_score:
default: 5
description: >-
The device score (1-5) that represents how the Digital Wallet's view on how reputable an
end user's device is.
type: integer
entity:
description: >-
Optional field to specify the token requestor name for a merchant token simulation.
Ignored when tokenization_source is not MERCHANT.
type: string
expiration_date:
description: The expiration date of the card in 'MM/YY' format.
maxLength: 5
minLength: 5
type: string
pan:
description: The sixteen digit card number.
example: '4111111289144142'
maxLength: 16
minLength: 16
type: string
tokenization_source:
description: The source of the tokenization request.
enum:
- APPLE_PAY
- GOOGLE
- SAMSUNG_PAY
- MERCHANT
type: string
wallet_recommended_decision:
default: APPROVED
description: The decision that the Digital Wallet's recommend
enum:
- APPROVED
- DECLINED
- REQUIRE_ADDITIONAL_AUTHENTICATION
type: string
required:
- cvv
- expiration_date
- pan
- tokenization_source
type: object
required: true
responses:
'201':
content:
application/json:
example:
account_token: 61c3acef-3c2c-4d61-9352-941397b92ca3
card_token: 16a410c9-7f5c-43e9-8108-bb8a72c063f7
created_at: '2023-08-28T15:57:14.578051'
events:
- created_at: '2023-09-13T16:01:13.643241'
result: TOKEN_ACTIVATED
token: a690b617-d3d4-4976-82f6-901f817ad98a
type: TOKENIZATION_UPDATED
- created_at: '2023-09-13T16:01:13.643241'
result: APPROVED
token: 2b2a1038-45f3-42e4-98bb-e745be3f1de1
type: TOKENIZATION_AUTHORIZATION
status: ACTIVE
token: 3e9a10da-11be-4a62-a510-d43548bfcec1
tokenization_channel: DIGITAL_WALLET
token_requestor_name: APPLE_PAY
token_unique_reference: DM4MMC0000332872ef1029f38fa0184b5c9260383da192b22
dpan: '5489123487251234'
payment_account_reference_id: 50019T0AL7DEFGJ4AGGT8BQDOABCD
updated_at: '2023-08-28T15:57:14.578051'
schema:
$ref: '#/components/schemas/tokenization'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Simulate a card's tokenization
tags:
- Tokenization
/v1/simulate/void:
post:
description: >
Voids a pending authorization. If `amount` is not set, the full amount will be voided. Can be used on
partially voided transactions but not partially cleared transactions. _Simulating an authorization
expiry on credit authorizations or credit authorization advice is not currently supported but will be
added soon._
operationId: postSimulateVoid
requestBody:
content:
application/json:
examples:
simulateAuthorizationExpiry:
summary: Simulate expiring a transaction
value:
amount: 100
token: fabd829d-7f7b-4432-a8f2-07ea4889aaac
type: AUTHORIZATION_EXPIRY
simulateAuthorizationReversal:
summary: Simulate reversing a transaction
value:
amount: 100
token: fabd829d-7f7b-4432-a8f2-07ea4889aaac
type: AUTHORIZATION_REVERSAL
schema:
properties:
amount:
description: >-
Amount (in cents) to void. Typically this will match the amount in the original
authorization, but can be less. Applies to authorization reversals only. An authorization
expiry will always apply to the full pending amount.
minimum: 0
maximum: 2000000000
type: integer
token:
description: The transaction token returned from the /v1/simulate/authorize response.
format: uuid
type: string
type:
default: AUTHORIZATION_REVERSAL
description: |
Type of event to simulate. Defaults to `AUTHORIZATION_REVERSAL`.
* `AUTHORIZATION_EXPIRY` indicates authorization has expired and been reversed by Lithic.
* `AUTHORIZATION_REVERSAL` indicates authorization was reversed by the merchant.
enum:
- AUTHORIZATION_EXPIRY
- AUTHORIZATION_REVERSAL
example: AUTHORIZATION_EXPIRY
type: string
required:
- token
type: object
required: true
responses:
'201':
content:
application/json:
example:
debugging_request_id: 3ec51ef1-b68d-4243-be6c-2204229b09cf
schema:
properties:
debugging_request_id:
description: Debugging request ID to share with Lithic Support team.
format: uuid
type: string
type: object
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Simulate void
tags:
- Transaction
/v1/simulate/account_holders/enrollment_review:
post:
summary: Simulate an account holder's enrollment review
description: ' Simulates an enrollment review for an account holder. This endpoint is only applicable for workflows that may required intervention such as `KYB_BASIC`. '
operationId: simulateAccountHolderEnrollmentReview
requestBody:
content:
application/json:
examples:
simulateAcceptedReviewRequest:
summary: Simulate an accepted enrollment review request
value:
account_holder_token: 1415964d-4400-4d79-9fb3-eee0faaee4e4
status: ACCEPTED
status_reasons: []
simulateRejectedReviewRequest:
summary: Simulate a rejected enrollment review request
value:
account_holder_token: b8d0cdd2-182c-4623-b104-9f50808b8373
status: REJECTED
status_reasons:
- PRIMARY_BUSINESS_ENTITY_ID_VERIFICATION_FAILURE
simulatePendingReviewRequest:
summary: Simulate a pending review enrollment review request
value:
account_holder_token: b8d0cdd2-182c-4623-b104-9f50808b8373
status: PENDING_REVIEW
status_reasons:
- CONTROL_PERSON_NAME_VERIFICATION_FAILURE
schema:
$ref: '#/components/schemas/simulate-enrollment-review-request'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/account-holder-response'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
'429':
$ref: '#/components/responses/TooManyRequests'
tags:
- Account Holder
/v1/simulate/account_holders/enrollment_document_review:
post:
summary: Simulate an account holder document upload's review
description: Simulates a review for an account holder document upload.
operationId: simulateAccountHolderEnrollmentDocumentReview
requestBody:
content:
application/json:
examples:
simulateUploadedReviewRequest:
summary: Simulate an uploaded enrollment document upload review request
value:
document_upload_token: b11cd67b-0a52-4180-8365-314f3def5426
status: UPLOADED
simulateAcceptedReviewRequest:
summary: Simulate an accepted enrollment document upload review request
value:
document_upload_token: 70bde493-66a7-454b-8e79-51a0d976a7d2
status: ACCEPTED
simulateRejectedReviewRequest:
summary: Simulate a rejected enrollment document upload review request
value:
document_upload_token: 30a8fff6-941f-4143-9b7b-e7ac4cbeb91f
status: REJECTED
status_reason: DOCUMENT_MISSING_REQUIRED_DATA
simulatePartialApprovalReviewRequest:
summary: Simulates a partial approval enrollment document upload review request
value:
document_upload_token: 30a8fff6-941f-4143-9b7b-e7ac4cbeb91f
status: PARTIAL_APPROVAL
status_reason: DOCUMENT_MISSING_REQUIRED_DATA
accepted_entity_status_reasons:
- PRIMARY_BUSINESS_ENTITY_ID_VERIFICATION_FAILURE
schema:
$ref: '#/components/schemas/simulate-enrollment-document-review-request'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/document'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
'429':
$ref: '#/components/responses/TooManyRequests'
tags:
- Account Holder
/v1/status:
get:
description: Status of api
operationId: getStatus
responses:
'200':
content:
application/json:
schema:
properties:
message:
type: string
type: object
description: Endpoint for users to check whether they can reach the api.
security: []
summary: API status check
tags:
- Status
/v1/three_ds_authentication/simulate:
post:
description: >-
Simulates a 3DS authentication request from the payment network as if it came from an ACS. If you're
configured for 3DS Customer Decisioning, simulating authentications requires your customer decisioning
endpoint to be set up properly (respond with a valid JSON). If the authentication decision is to
challenge, ensure that the account holder associated with the card transaction has a valid phone
number configured to receive the OTP code via SMS.
operationId: postSimulateAuthentication
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/simulate-authentication-request'
required: true
responses:
'201':
content:
application/json:
example:
token: fabd829d-7f7b-4432-a8f2-07ea4889aaac
schema:
properties:
token:
description: Globally unique identifier for the 3DS authentication.
format: uuid
type: string
type: object
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Simulate 3DS authentication
tags:
- 3DS
/v1/three_ds_decisioning/simulate/enter_otp:
post:
description: >-
Endpoint for simulating entering OTP into 3DS Challenge UI. A call to
[/v1/three_ds_authentication/simulate](https://docs.lithic.com/reference/postsimulateauthentication)
that resulted in triggered SMS-OTP challenge must precede. Only a single attempt is supported; upon
entering OTP, the challenge is either approved or declined.
requestBody:
content:
application/json:
example:
token: fabd829d-7f7b-4432-a8f2-07ea4889aaac
otp: '123456'
schema:
properties:
token:
description: >-
A unique token returned as part of a /v1/three_ds_authentication/simulate call that
resulted in PENDING_CHALLENGE authentication result.
format: uuid
type: string
otp:
description: The OTP entered by the cardholder
example: '123456'
type: string
required:
- token
- otp
responses:
'200':
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Simulate entering OTP into 3DS Challenge UI
tags:
- 3DS
/v1/three_ds_authentication/{three_ds_authentication_token}:
get:
description: Get 3DS Authentication by token
operationId: getThreeDsAuthenticationByToken
parameters:
- description: Globally unique identifier for the 3DS authentication.
in: path
name: three_ds_authentication_token
required: true
schema:
format: uuid
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/authentication'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Get 3DS authentication
tags:
- 3DS
/v1/three_ds_decisioning/secret:
get:
description: >
Retrieve the 3DS Decisioning HMAC secret key. If one does not exist for your program yet, calling this
endpoint will create one for you. The headers (which you can use to verify 3DS Decisioning requests)
will begin appearing shortly after calling this endpoint for the first time. See [this
page](https://docs.lithic.com/docs/3ds-decisioning#3ds-decisioning-hmac-secrets) for more detail about
verifying 3DS Decisioning requests.
operationId: getThreeDsDecisioningSecret
responses:
'200':
content:
application/json:
schema:
properties:
secret:
description: The 3DS Decisioning HMAC secret
example: whsec_1NDsYinMGr951KuDEaj78VtWzlyPaOnwUVagFiWIPJs=
type: string
type: object
description: OK
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Retrieve the 3DS Decisioning HMAC secret key
tags:
- 3DS
/v1/three_ds_decisioning/secret/rotate:
post:
description: >
Generate a new 3DS Decisioning HMAC secret key. The old secret key will be deactivated 24 hours after
a successful request to this endpoint. Make a [`GET
/three_ds_decisioning/secret`](https://docs.lithic.com/reference/getthreedsdecisioningsecret) request
to retrieve the new secret key.
operationId: rotateThreeDsDecisioningSecret
responses:
'204':
description: We have successfully rotated the secret key.
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Rotate the 3DS Decisioning HMAC secret key
tags:
- 3DS
/v1/three_ds_decisioning/challenge_response:
post:
description: >-
Card program's response to a 3DS Challenge Request.
Challenge Request is emitted as a webhook
[three_ds_authentication.challenge](https://docs.lithic.com/reference/post_three-ds-authentication-challenge)
and your Card Program needs to be configured with Out of Band (OOB) Challenges in order to receive it
(see https://docs.lithic.com/docs/3ds-challenge-flow for more information).
summary: Respond to a Challenge Request
security:
- ApiKeyAuth: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/challenge-response'
responses:
'200':
description: Challenge Response was received and forwarded to the ACS
'400':
description: Invalid request body
'404':
description: The provided token was not found
'422':
description: >-
Challenge Response could not be actioned because a response was already set, or the status was
updated by the upstream 3DS Service
content:
application/json:
schema:
$ref: '#/components/schemas/challenge-response-unprocessable'
'500':
description: Lithic Error
tags:
- 3DS
/v1/tokenization_decisioning/secret:
get:
description: >
Retrieve the Tokenization Decisioning secret key. If one does not exist your program yet, calling this
endpoint will create one for you. The headers of the Tokenization Decisioning request will contain a
hmac signature which you can use to verify requests originate from Lithic. See [this
page](https://docs.lithic.com/docs/events-api#verifying-webhooks) for more detail about verifying
Tokenization Decisioning requests.
operationId: getTokenizationDecisioningSecret
responses:
'200':
content:
application/json:
schema:
properties:
secret:
description: The Tokenization Decisioning HMAC secret
example: whsec_1NDsYinMGr951KuDEaj78VtWzlyPaOnwUVagFiWIPJs=
type: string
type: object
description: OK
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Retrieve the Tokenization Decisioning HMAC secret key
tags:
- Tokenization
/v1/tokenization_decisioning/secret/rotate:
post:
description: >
Generate a new Tokenization Decisioning secret key. The old Tokenization Decisioning secret key will
be deactivated 24 hours after a successful request to this endpoint.
operationId: rotateTokenizationDecisioningSecret
responses:
'200':
content:
application/json:
schema:
properties:
secret:
description: The new Tokenization Decisioning HMAC secret
example: whsec_1NDsYinMGr951KuDEaj78VtWzlyPaOnwUVagFiWIPJs=
type: string
type: object
description: OK
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Rotate the Tokenization Decisioning HMAC secret key
tags:
- Tokenization
/v1/tokenizations:
get:
description: List card tokenizations
operationId: getTokenizations
parameters:
- description: Filters for tokenizations associated with a specific account.
in: query
name: account_token
schema:
format: uuid
type: string
- description: Filter for tokenizations created after this date.
in: query
name: begin
schema:
format: date
type: string
- description: Filters for tokenizations associated with a specific card.
in: query
name: card_token
schema:
format: uuid
type: string
- description: Filter for tokenizations created before this date.
in: query
name: end
schema:
format: date
type: string
- description: >-
Filter for tokenizations by tokenization channel. If this is not specified, only DIGITAL_WALLET
tokenizations will be returned.
in: query
name: tokenization_channel
schema:
enum:
- DIGITAL_WALLET
- MERCHANT
- ALL
type: string
- $ref: '#/components/parameters/endingBefore'
- $ref: '#/components/parameters/pageSize'
- $ref: '#/components/parameters/startingAfter'
responses:
'200':
content:
application/json:
example:
data:
- account_token: 61c3acef-3c2c-4d61-9352-941397b92ca3
card_token: 16a410c9-7f5c-43e9-8108-bb8a72c063f7
created_at: '2023-08-28T15:57:14.578051'
events:
- created_at: '2023-09-13T16:01:13.643241'
result: TOKEN_ACTIVATED
token: a690b617-d3d4-4976-82f6-901f817ad98a
type: TOKENIZATION_UPDATED
- created_at: '2023-09-13T16:01:13.643241'
result: APPROVED
token: 2b2a1038-45f3-42e4-98bb-e745be3f1de1
type: TOKENIZATION_AUTHORIZATION
tokenization_decline_reasons: []
tokenization_tfa_reasons: []
rule_results: []
status: ACTIVE
token: 3e9a10da-11be-4a62-a510-d43548bfcec1
token_requestor_name: APPLE_PAY
token_unique_reference: DM4MMC0000332872ef1029f38fa0184b5c9260383da192b22
tokenization_channel: DIGITAL_WALLET
dpan: '5489123487251234'
device_id: ba6f05c312d4a5789b2e04f05c1f9d3b81GJ4AG1
payment_account_reference_id: 50019T0AL7DEFGJ4AGGT8BQDOABCD
updated_at: '2023-08-28T15:57:14.578051'
has_more: false
schema:
properties:
data:
items:
$ref: '#/components/schemas/tokenization'
type: array
has_more:
type: boolean
type: object
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Get a card's tokenizations
tags:
- Tokenization
/v1/tokenizations/{tokenization_token}:
get:
description: Get tokenization
operationId: getTokenization
parameters:
- description: Tokenization token
in: path
name: tokenization_token
required: true
schema:
format: uuid
type: string
responses:
'200':
content:
application/json:
example:
account_token: 61c3acef-3c2c-4d61-9352-941397b92ca3
card_token: 16a410c9-7f5c-43e9-8108-bb8a72c063f7
created_at: '2023-08-28T15:57:14.578051'
events:
- created_at: '2023-09-13T16:01:13.643241'
result: TOKEN_ACTIVATED
token: a690b617-d3d4-4976-82f6-901f817ad98a
type: TOKENIZATION_UPDATED
- created_at: '2023-09-13T16:01:13.643241'
result: APPROVED
token: 2b2a1038-45f3-42e4-98bb-e745be3f1de1
type: TOKENIZATION_AUTHORIZATION
tokenization_decline_reasons: []
tokenization_tfa_reasons: []
rule_results: []
status: ACTIVE
token: 3e9a10da-11be-4a62-a510-d43548bfcec1
token_requestor_name: APPLE_PAY
token_unique_reference: DM4MMC0000332872ef1029f38fa0184b5c9260383da192b22
tokenization_channel: DIGITAL_WALLET
dpan: '5489123487251234'
device_id: ba6f05c312d4a5789b2e04f05c1f9d3b81GJ4AG1
payment_account_reference_id: 50019T0AL7DEFGJ4AGGT8BQDOABCD
updated_at: '2023-08-28T15:57:14.578051'
schema:
$ref: '#/components/schemas/tokenization'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Get a single card tokenization
tags:
- Tokenization
/v1/tokenizations/{tokenization_token}/pause:
post:
description: >-
This endpoint is used to ask the card network to pause a tokenization. A successful response indicates
that the request was successfully delivered to the card network. When the card network pauses the
tokenization, the state will be updated and a tokenization.updated event will be sent. The endpoint
may only be used on tokenizations with status `ACTIVE`.
A paused token will prevent merchants from sending authorizations, and is a temporary status that can
be changed.
Reach out at [lithic.com/contact](https://lithic.com/contact) for more information.
operationId: pauseTokenization
parameters:
- description: Tokenization token
in: path
name: tokenization_token
required: true
schema:
format: uuid
type: string
responses:
'200':
content: {}
description: Pause tokenization request successfully delivered to the card network.
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Pause a card tokenization
tags:
- Tokenization
/v1/tokenizations/{tokenization_token}/unpause:
post:
description: >-
This endpoint is used to ask the card network to unpause a tokenization. A successful response
indicates that the request was successfully delivered to the card network. When the card network
unpauses the tokenization, the state will be updated and a tokenization.updated event will be sent.
The endpoint may only be used on tokenizations with status `PAUSED`.
This will put the tokenization in an active state, and transactions may resume.
Reach out at [lithic.com/contact](https://lithic.com/contact) for more information.
operationId: unpauseTokenization
parameters:
- description: Tokenization token
in: path
name: tokenization_token
required: true
schema:
format: uuid
type: string
responses:
'200':
content: {}
description: Unpause tokenization request successfully delivered to the card network.
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Unpause a card tokenization
tags:
- Tokenization
/v1/tokenizations/{tokenization_token}/deactivate:
post:
description: >-
This endpoint is used to ask the card network to deactivate a tokenization. A successful response
indicates that the request was successfully delivered to the card network. When the card network
deactivates the tokenization, the state will be updated and a tokenization.updated event will be sent.
Authorizations attempted with a deactivated tokenization will be blocked and will not be forwarded to
Lithic from the network. Deactivating the token is a permanent operation. If the target is a digital
wallet tokenization, it will be removed from its device.
Reach out at [lithic.com/contact](https://lithic.com/contact) for more information.
operationId: deactivateTokenization
parameters:
- description: Tokenization token
in: path
name: tokenization_token
required: true
schema:
format: uuid
type: string
responses:
'200':
content: {}
description: Deactivate tokenization request successfully delivered to the card network.
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Deactivate a card tokenization
tags:
- Tokenization
/v1/tokenizations/{tokenization_token}/activate:
post:
description: >-
This endpoint is used to ask the card network to activate a tokenization. A successful response
indicates that the request was successfully delivered to the card network. When the card network
activates the tokenization, the state will be updated and a tokenization.updated event will be sent.
The endpoint may only be used on digital wallet tokenizations with status `INACTIVE`,
`PENDING_ACTIVATION`, or `PENDING_2FA`.
This will put the tokenization in an active state, and transactions will be allowed.
Reach out at [lithic.com/contact](https://lithic.com/contact) for more information.
operationId: activateTokenization
parameters:
- description: Tokenization token
in: path
name: tokenization_token
required: true
schema:
format: uuid
type: string
responses:
'200':
content: {}
description: Activate tokenization request successfully delivered to the card network.
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Activate a card tokenization
tags:
- Tokenization
/v1/tokenizations/{tokenization_token}/resend_activation_code:
post:
description: >-
This endpoint is used to ask the card network to send another activation code to a cardholder that has
already tried tokenizing a card. A successful response indicates that the request was successfully
delivered to the card network.
The endpoint may only be used on Mastercard digital wallet tokenizations with status `INACTIVE`,
`PENDING_ACTIVATION`, or `PENDING_2FA`. The network will send a new activation code to the one of the
contact methods provided in the initial tokenization flow. If a user fails to enter the code correctly
3 times, the contact method will not be eligible for resending the activation code, and the cardholder
must restart the provision process.
Reach out at [lithic.com/contact](https://lithic.com/contact) for more information.
operationId: resendActivationCodeForTokenization
parameters:
- description: Tokenization token
in: path
name: tokenization_token
required: true
schema:
format: uuid
type: string
requestBody:
content:
application/json:
examples:
resendActivationCodeSms:
summary: Resend activation code to SMS contact method
value:
activation_method_type: TEXT_TO_CARDHOLDER_NUMBER
schema:
properties:
activation_method_type:
description: >-
The communication method that the user has selected to use to receive the authentication
code.
Supported Values: Sms = "TEXT_TO_CARDHOLDER_NUMBER". Email = "EMAIL_TO_CARDHOLDER_ADDRESS"
enum:
- EMAIL_TO_CARDHOLDER_ADDRESS
- TEXT_TO_CARDHOLDER_NUMBER
type: string
responses:
'200':
content: {}
description: Resend activation code request successfully delivered to the card network.
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Resend activation code for a card tokenization
tags:
- Tokenization
/v1/tokenizations/{tokenization_token}/update_digital_card_art:
post:
description: >-
This endpoint is used update the digital card art for a digital wallet tokenization. A successful
response indicates that the card network has updated the tokenization's art, and the tokenization's
`digital_cart_art_token` field was updated.
The endpoint may not be used on tokenizations with status `DEACTIVATED`.
Note that this updates the art for one specific tokenization, not all tokenizations for a card. New
tokenizations for a card will be created with the art referenced in the card object's
`digital_card_art_token` field.
Reach out at [lithic.com/contact](https://lithic.com/contact) for more information.
operationId: updateDigitalCardArtForTokenization
parameters:
- description: Tokenization token
in: path
name: tokenization_token
required: true
schema:
format: uuid
type: string
requestBody:
content:
application/json:
schema:
properties:
digital_card_art_token:
description: >-
Specifies the digital card art to be displayed in the user’s digital wallet for a
tokenization. This artwork must be approved by the network and configured by Lithic to
use. See [Flexible Card Art
Guide](https://docs.lithic.com/docs/about-digital-wallets#flexible-card-art).
example: 5e9483eb-8103-4e16-9794-2106111b2eca
format: uuid
type: string
responses:
'200':
content:
application/json:
example:
account_token: 61c3acef-3c2c-4d61-9352-941397b92ca3
card_token: 16a410c9-7f5c-43e9-8108-bb8a72c063f7
created_at: '2023-08-28T15:57:14.578051'
digital_card_art_token: 0ca42d08-12ae-4bc6-bd00-787e6df53cff
events:
- created_at: '2023-09-13T16:01:13.643241'
result: TOKEN_ACTIVATED
token: a690b617-d3d4-4976-82f6-901f817ad98a
type: TOKENIZATION_UPDATED
- created_at: '2023-09-13T16:01:13.643241'
result: APPROVED
token: 2b2a1038-45f3-42e4-98bb-e745be3f1de1
type: TOKENIZATION_AUTHORIZATION
status: ACTIVE
token: 3e9a10da-11be-4a62-a510-d43548bfcec1
token_requestor_name: APPLE_PAY
token_unique_reference: DM4MMC0000332872ef1029f38fa0184b5c9260383da192b22
dpan: '5489123487251234'
device_id: ba6f05c312d4a5789b2e04f05c1f9d3b81GJ4AG1
payment_account_reference_id: 50019T0AL7DEFGJ4AGGT8BQDOABCD
updated_at: '2023-08-28T15:57:14.578051'
tokenization_channel: DIGITAL_WALLET
schema:
$ref: '#/components/schemas/tokenization'
description: Card art successfully updated at the network and Lithic levels.
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Update digital card art for a card tokenization
tags:
- Tokenization
/v1/transactions:
get:
description: >
List card transactions. All amounts are in the smallest unit of their respective currency (e.g., cents
for USD) and inclusive of any acquirer fees.
operationId: getTransactions
parameters:
- description: |
Filters for transactions associated with a specific account.
in: query
name: account_token
schema:
format: uuid
type: string
- description: Filters for transactions associated with a specific card.
in: query
name: card_token
schema:
format: uuid
type: string
- description: Filters for transactions using transaction result field. Can filter by `APPROVED`, and `DECLINED`.
in: query
name: result
schema:
enum:
- APPROVED
- DECLINED
type: string
- in: query
description: Filters for transactions using transaction status field.
name: status
required: false
schema:
$ref: '#/components/schemas/card_transaction_status_filter'
- $ref: '#/components/parameters/beginTime'
- $ref: '#/components/parameters/endTime'
- $ref: '#/components/parameters/endingBefore'
- $ref: '#/components/parameters/pageSize'
- $ref: '#/components/parameters/startingAfter'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/list_transactions_response'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: List card transactions
tags:
- Transaction
/v1/transactions/{transaction_token}:
get:
description: >
Get a specific card transaction. All amounts are in the smallest unit of their respective currency
(e.g., cents for USD).
operationId: getTransactionByToken
parameters:
- $ref: '#/components/parameters/transactionToken'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/card_transaction'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Get card transaction
tags:
- Transaction
/v1/transfer:
post:
deprecated: true
description: Transfer funds between two financial accounts or between a financial account and card
operationId: postTransfer
requestBody:
content:
application/json:
schema:
properties:
amount:
description: >-
Amount to be transferred in the currency’s smallest unit (e.g., cents for USD). This
should always be a positive value.
type: integer
from:
description: >-
Globally unique identifier for the financial account or card that will send the funds.
Accepted type dependent on the program's use case.
format: uuid
type: string
memo:
description: Optional descriptor for the transfer.
type: string
to:
description: >-
Globally unique identifier for the financial account or card that will receive the funds.
Accepted type dependent on the program's use case.
format: uuid
type: string
token:
description: >-
Customer-provided token that will serve as an idempotency token. This token will become
the transaction token.
format: uuid
type: string
required:
- amount
- from
- to
type: object
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Transfer'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Transfer funds within Lithic
tags:
- Book Transfer
/v1/transfer_limits:
get:
description: Get transfer limits for a specified date
operationId: getTransferLimits
parameters:
- description: Date for which to retrieve transfer limits (ISO 8601 format)
example: '2025-11-10'
in: query
name: date
required: false
schema:
format: date
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/transfer_limits_response'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Get transfer limits
tags:
- Transfer Limits
/v1/book_transfers:
get:
description: List book transfers
parameters:
- description: Book Transfer category to be returned.
in: query
name: category
schema:
$ref: '#/components/schemas/book_transfer_category'
- description: >-
Globally unique identifier for the financial account or card that will send the funds. Accepted
type dependent on the program's use case.
in: query
name: financial_account_token
schema:
format: uuid
type: string
- in: query
name: business_account_token
required: false
schema:
format: uuid
title: Business Account Token
type: string
- in: query
name: account_token
required: false
schema:
format: uuid
title: Account Token
type: string
- description: Book transfer result to be returned.
in: query
name: result
schema:
enum:
- APPROVED
- DECLINED
type: string
- description: Book transfer status to be returned.
in: query
name: status
schema:
enum:
- DECLINED
- SETTLED
type: string
- $ref: '#/components/parameters/beginTime'
- $ref: '#/components/parameters/endingBefore'
- $ref: '#/components/parameters/endTime'
- $ref: '#/components/parameters/pageSize'
- $ref: '#/components/parameters/startingAfter'
operationId: getBookTransfers
responses:
'200':
content:
application/json:
schema:
properties:
data:
items:
$ref: '#/components/schemas/book-transfer-transaction'
title: Data
type: array
has_more:
title: More data exists
type: boolean
required:
- data
- has_more
type: object
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: List book transfers
tags:
- Book Transfer
post:
description: Book transfer funds between two financial accounts or between a financial account and card
operationId: postBookTransfers
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/create_book_transfer_request'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/book-transfer-transaction'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Create book transfer
tags:
- Book Transfer
/v1/book_transfers/{book_transfer_token}:
get:
description: Get book transfer by token
parameters:
- description: Id of the book transfer to retrieve
in: path
name: book_transfer_token
required: true
schema:
format: uuid
type: string
operationId: getBookTransfer
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/book-transfer-transaction'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Get book transfer by token
tags:
- Book Transfer
/v1/book_transfers/{book_transfer_token}/retry:
post:
description: Retry a book transfer that has been declined
parameters:
- description: Token of the book transfer to retry
in: path
name: book_transfer_token
required: true
schema:
format: uuid
type: string
operationId: retryBookTransfer
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/retry_book_transfer_request'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/book-transfer-transaction'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Retry book transfer
tags:
- Book Transfer
/v1/book_transfers/{book_transfer_token}/reverse:
post:
description: Reverse a book transfer
parameters:
- description: Id of the book transfer to retrieve
in: path
name: book_transfer_token
required: true
schema:
format: uuid
type: string
operationId: reverseBookTransfer
requestBody:
content:
application/json:
schema:
properties:
memo:
description: Optional descriptor for the reversal.
type: string
maxLength: 512
type: object
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/book-transfer-transaction'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Reverse book transfer
tags:
- Book Transfer
/v1/external_payments:
get:
description: List external payments
parameters:
- description: External Payment category to be returned.
in: query
name: category
schema:
$ref: '#/components/schemas/external_payment_category'
- description: >-
Globally unique identifier for the financial account or card that will send the funds. Accepted
type dependent on the program's use case.
in: query
name: financial_account_token
schema:
format: uuid
type: string
- in: query
name: business_account_token
required: false
schema:
format: uuid
title: Business Account Token
type: string
- description: External Payment result to be returned.
in: query
name: result
schema:
$ref: '#/components/schemas/transaction_result'
- description: Book transfer status to be returned.
in: query
name: status
schema:
$ref: '#/components/schemas/transaction_status'
- $ref: '#/components/parameters/beginTime'
- $ref: '#/components/parameters/endingBefore'
- $ref: '#/components/parameters/endTime'
- $ref: '#/components/parameters/pageSize'
- $ref: '#/components/parameters/startingAfter'
operationId: getExternalPayments
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/external_payments_response'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: List external payments
tags:
- External Payments
post:
description: Create external payment
operationId: postExternalPayments
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/create_external_payment_request'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/external_payment_response'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Create external payment
tags:
- External Payments
/v1/external_payments/{external_payment_token}:
get:
description: Get external payment
parameters:
- description: Globally unique identifier for the external payment
in: path
name: external_payment_token
required: true
schema:
format: uuid
type: string
operationId: getExternalPayment
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/external_payment_response'
description: OK
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Get external payment
tags:
- External Payments
/v1/external_payments/{external_payment_token}/settle:
post:
description: Settle external payment
parameters:
- description: Globally unique identifier for the external payment
in: path
name: external_payment_token
required: true
schema:
format: uuid
type: string
operationId: settleExternalPayment
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/external_payment_action_with_progress_to_request'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/external_payment_response'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Settle external payment
tags:
- External Payments
/v1/external_payments/{external_payment_token}/release:
post:
description: Release external payment
parameters:
- description: Globally unique identifier for the external payment
in: path
name: external_payment_token
required: true
schema:
format: uuid
type: string
operationId: releaseExternalPayment
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/external_payment_action_request'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/external_payment_response'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Release external payment
tags:
- External Payments
/v1/external_payments/{external_payment_token}/cancel:
post:
description: Cancel external payment
parameters:
- description: Globally unique identifier for the external payment
in: path
name: external_payment_token
required: true
schema:
format: uuid
type: string
operationId: cancelExternalPayment
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/external_payment_action_request'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/external_payment_response'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Cancel external payment
tags:
- External Payments
/v1/external_payments/{external_payment_token}/reverse:
post:
description: Reverse external payment
parameters:
- description: Globally unique identifier for the external payment
in: path
name: external_payment_token
required: true
schema:
format: uuid
type: string
operationId: reverseExternalPayment
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/external_payment_action_request'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/external_payment_response'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Reverse external payment
tags:
- External Payments
/v1/management_operations:
get:
description: List management operations
parameters:
- description: Management operation category to be returned.
in: query
name: category
schema:
$ref: '#/components/schemas/management_operation_category'
- description: >-
Globally unique identifier for the financial account. Accepted type dependent on the program's use
case.
in: query
name: financial_account_token
schema:
format: uuid
type: string
- in: query
name: business_account_token
required: false
schema:
format: uuid
title: Business Account Token
type: string
- description: Management operation status to be returned.
in: query
name: status
schema:
$ref: '#/components/schemas/transaction_status'
- $ref: '#/components/parameters/beginTime'
- $ref: '#/components/parameters/endingBefore'
- $ref: '#/components/parameters/endTime'
- $ref: '#/components/parameters/pageSize'
- $ref: '#/components/parameters/startingAfter'
operationId: getManagementOperations
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/management_operation_transactions_response'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: List management operations
tags:
- Management Operations
post:
description: Create management operation
operationId: postManagementOperations
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/create_management_operation_request'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/management_operation_transaction'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Create management operation
tags:
- Management Operations
/v1/management_operations/{management_operation_token}:
get:
description: Get management operation
parameters:
- description: Globally unique identifier for the management operation
in: path
name: management_operation_token
required: true
schema:
format: uuid
type: string
operationId: getManagementOperation
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/management_operation_transaction'
description: OK
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Get management operation
tags:
- Management Operations
/v1/management_operations/{management_operation_token}/reverse:
post:
description: Reverse a management operation
parameters:
- description: Globally unique identifier for the management operation
in: path
name: management_operation_token
required: true
schema:
format: uuid
type: string
operationId: reverseManagementOperation
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/management_operation_action_request'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/management_operation_transaction'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Reverse management operation
tags:
- Management Operations
/v1/network_programs:
get:
description: List network programs.
operationId: getNetworkPrograms
parameters:
- description: Page size (for pagination).
in: query
name: page_size
schema:
default: 50
maximum: 100
minimum: 1
type: integer
- description: >-
Date string in RFC 3339 format. Only entries created after the specified time will be included.
UTC time zone.
in: query
name: begin
schema:
format: date-time
type: string
- description: >-
Date string in RFC 3339 format. Only entries created before the specified time will be included.
UTC time zone.
in: query
name: end
schema:
format: date-time
type: string
responses:
'200':
content:
application/json:
schema:
properties:
data:
items:
$ref: '#/components/schemas/NetworkProgram'
type: array
has_more:
description: Whether there are more network programs to be retrieved.
type: boolean
required:
- data
- has_more
type: object
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: List network programs
tags:
- Network Program
/v1/network_programs/{network_program_token}:
get:
description: Get network program.
operationId: getNetworkProgram
parameters:
- description: Globally unique identifier for the network program.
in: path
name: network_program_token
required: true
schema:
format: uuid
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/NetworkProgram'
examples:
getNetworkProgramResponse:
value:
token: 94644cff-d693-4881-b472-3a51e742ea47
registered_program_identification_number: '00000000'
name: Visa Signature Preferred Credit Card
default_product_code: D
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Get network program
tags:
- Network Program
/v1/funding_events:
get:
description: Get all funding events for program
operationId: getFundingEvents
parameters:
- description: >-
A cursor representing an item's token before which a page of results should end. Used to retrieve
the previous page of results before this item.
in: query
name: ending_before
required: false
schema:
type: string
format: uuid
- description: Page size (for pagination).
in: query
name: page_size
schema:
default: 50
maximum: 100
minimum: 1
type: integer
- description: >-
A cursor representing an item's token after which a page of results should begin. Used to retrieve
the next page of results after this item.
in: query
name: starting_after
required: false
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/funding_event_responses'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: List funding events
tags:
- Funding Events
/v1/funding_events/{funding_event_token}:
get:
description: Get funding event for program by id
operationId: getFundingEventById
parameters:
- description: Globally unique identifier for funding event.
in: path
name: funding_event_token
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/funding_event_response'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Get funding event by ID
tags:
- Funding Events
/v1/funding_events/{funding_event_token}/details:
get:
description: Get funding event details by id
operationId: getFundingEventDetailsById
parameters:
- description: Globally unique identifier for funding event.
in: path
name: funding_event_token
required: true
schema:
format: uuid
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/funding_event_details_response'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Get funding event details
tags:
- Funding Events
/v2/disputes:
get:
description: Returns a paginated list of disputes.
operationId: getDisputesV2
parameters:
- description: RFC 3339 timestamp for filtering by created date, inclusive.
in: query
name: begin
required: false
schema:
format: date-time
type: string
- description: RFC 3339 timestamp for filtering by created date, inclusive.
in: query
name: end
required: false
schema:
format: date-time
type: string
- description: Number of items to return.
in: query
name: page_size
required: false
schema:
default: 50
maximum: 100
minimum: 1
type: integer
- description: >-
A cursor representing an item's token after which a page of results should begin. Used to retrieve
the next page of results after this item.
in: query
name: starting_after
required: false
schema:
type: string
- description: >-
A cursor representing an item's token before which a page of results should end. Used to retrieve
the previous page of results before this item.
in: query
name: ending_before
required: false
schema:
type: string
- description: >-
Filter by the token of the transaction being disputed. Corresponds with
transaction_series.related_transaction_token in the Dispute.
in: query
name: disputed_transaction_token
required: false
schema:
format: uuid
type: string
- description: Filter by card token.
in: query
name: card_token
required: false
schema:
format: uuid
type: string
- description: Filter by account token.
in: query
name: account_token
required: false
schema:
format: uuid
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/disputes-response'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: List disputes
tags:
- Managed Disputes
/v2/disputes/{dispute_token}:
get:
description: Retrieves a specific dispute by its token.
operationId: getDisputeByTokenV2
parameters:
- description: Token of the dispute to retrieve.
in: path
name: dispute_token
required: true
schema:
format: uuid
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/dispute'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
summary: Retrieve a dispute
tags:
- Managed Disputes
components:
parameters:
webhookId:
in: header
name: webhook-id
description: Webhook ID
schema:
type: string
format: uuid
example: 65a9dad4-1b60-4686-83fd-65b25078a4b4
webhookTimestamp:
in: header
name: webhook-timestamp
description: Unix timestamp used for HMAC verification
schema:
type: integer
example: 1698031907
webhookSignature:
in: header
name: webhook-signature
description: >-
A list of HMAC signatures encoded in Base64 and separated by spaces. Can contain multiple HMAC
signatures as a result of key rotation.
schema:
type: string
example: v1,g0hM9SsE+OTPJTGt/tmIKtSyZlE3uFJELVlNIOLJ1OE= v1,bm9ldHUjKzFob2VudXRob2VodWUzMjRvdWVvdW9ldQo=
endingBefore:
description: >-
A cursor representing an item's token before which a page of results should end. Used to retrieve the
previous page of results before this item.
in: query
name: ending_before
required: false
schema:
type: string
startingAfter:
description: >-
A cursor representing an item's token after which a page of results should begin. Used to retrieve the
next page of results after this item.
in: query
name: starting_after
required: false
schema:
type: string
beginTime:
description: >-
Date string in RFC 3339 format. Only entries created after the specified time will be included. UTC
time zone.
in: query
name: begin
schema:
format: date-time
type: string
endTime:
description: >-
Date string in RFC 3339 format. Only entries created before the specified time will be included. UTC
time zone.
in: query
name: end
schema:
format: date-time
type: string
accountHolderTokenPath:
description: Globally unique identifier for the account holder.
examples:
accountHolderTokenExample:
summary: A sample account holder token
value: 65db64b2-ae89-491a-97d9-f64788f8b2ab
in: path
name: account_holder_token
required: true
schema:
format: uuid
type: string
accountHolderToken:
description: Globally unique identifier for the account holder.
examples:
accountHolderTokenExample:
summary: A sample account holder token
value: 65db64b2-ae89-491a-97d9-f64788f8b2ab
in: path
name: account_holder_token
required: true
schema:
format: uuid
type: string
documentToken:
description: Globally unique identifier for the document.
examples:
documentTokenExample:
summary: A sample document token
value: 76ca80c3-bf90-491a-97d9-f64788f8b2ab
in: path
name: document_token
required: true
schema:
format: uuid
type: string
entityTokenPath:
description: Globally unique identifier for the entity.
examples:
entityTokenExample:
summary: A sample entity token
value: 4e541f1a-bf90-491a-97d9-f64788f8b2ab
in: path
name: entity_token
required: true
schema:
format: uuid
type: string
pageSize:
description: Page size (for pagination).
in: query
name: page_size
schema:
default: 50
maximum: 100
minimum: 1
type: integer
accountToken:
description: Globally unique identifier for account.
examples:
accountTokenExample:
summary: A sample account token
value: d86a0a4d-7459-471a-83b4-431136320828
in: path
name: account_token
required: true
schema:
format: uuid
type: string
EndingBefore:
description: >-
A cursor representing an item's token before which a page of results should end. Used to retrieve the
previous page of results before this item.
in: query
name: ending_before
required: false
schema:
type: string
format: uuid
PageSize:
description: Page size (for pagination).
in: query
name: page_size
schema:
default: 50
maximum: 100
minimum: 1
type: integer
StartingAfter:
description: >-
A cursor representing an item's token after which a page of results should begin. Used to retrieve the
next page of results after this item.
in: query
name: starting_after
required: false
schema:
type: string
format: uuid
AuthRuleToken:
name: auth_rule_token
in: path
required: true
schema:
type: string
format: uuid
AuthRuleBacktestToken:
name: auth_rule_backtest_token
in: path
required: true
schema:
type: string
format: uuid
cardProgramTokenPath:
description: Globally unique identifier for the card program.
examples:
cardProgramTokenExample:
summary: A sample card program token
value: 65db64b2-ae89-491a-97d9-f64788f8b2ab
in: path
name: card_program_token
required: true
schema:
format: uuid
type: string
idempotencyKey:
description: Idempotency key for the request
in: header
name: Idempotency-Key
schema:
type: string
format: uuid
example: 65a9dad4-1b60-4686-83fd-65b25078a4b4
cardToken:
examples:
cardTokenExample:
summary: A sample card token
value: 73ca53a1-ae89-491a-97d9-f64788f8b2ab
in: path
name: card_token
required: true
schema:
format: uuid
type: string
financialTransactionToken:
description: Globally unique identifier for financial transaction token.
examples:
financialTransactionTokenExample:
summary: A sample financial transaction token
value: 18394f8e-711b-4b3e-ae21-d35a9eafe7d1
in: path
name: financial_transaction_token
required: true
schema:
format: uuid
type: string
cardTokenDigitalWallet:
description: The unique token of the card to add to the device's digital wallet.
examples:
cardTokenExample:
summary: A sample card token
value: 73ca53a1-ae89-491a-97d9-f64788f8b2ab
in: path
name: card_token
required: true
schema:
format: uuid
type: string
disputeToken:
examples:
disputeTokenExample:
summary: A sample chargeback request token
value: 73ca53a1-ae89-491a-97d9-f64788f8b2ab
in: path
name: dispute_token
required: true
schema:
format: uuid
type: string
disputeEvidenceToken:
examples:
disputeEvidenceExample:
summary: A sample evidence token
value: 73ca53a1-ae89-491a-97d9-f64788f8b2ab
in: path
name: evidence_token
required: true
schema:
format: uuid
type: string
eventSubscriptionToken:
in: path
name: event_subscription_token
required: true
schema:
type: string
eventToken:
in: path
name: event_token
required: true
schema:
type: string
financialAccountToken:
description: Globally unique identifier for financial account.
examples:
financialAccountTokenExample:
summary: A sample financial account token
value: 3fa85f64-5717-4562-b3fc-2c963f66afa6
in: path
name: financial_account_token
required: true
schema:
format: uuid
type: string
transactionToken:
description: Globally unique identifier for the transaction.
examples:
transactionTokenExample:
summary: A sample transaction token
value: 84bc53a1-bf91-502b-97d9-f75888f8b2ab
in: path
name: transaction_token
required: true
schema:
format: uuid
type: string
securitySchemes:
ApiKeyAuth:
in: header
name: Authorization
type: apiKey
schemas:
Address:
properties:
address1:
description: Valid deliverable address (no PO boxes).
example: 123 Old Forest Way
type: string
address2:
description: Unit or apartment number (if applicable).
type: string
city:
description: Name of city.
example: Omaha
type: string
country:
description: >-
Valid country code, entered in uppercase ISO 3166-1 alpha-3 three-character format. Only USA is
currently supported for all workflows. KYC_EXEMPT supports CAN additionally.
example: USA
type: string
postal_code:
description: >-
Valid postal code. USA postal codes (ZIP codes) are supported, entered as a five-digit postal code
or nine-digit postal code (ZIP+4) using the format 12345-1234. KYC_EXEMPT supports Canadian
postal codes.
example: '68022'
type: string
state:
description: >-
Valid state code. USA state codes are supported, entered in uppercase ISO 3166-2 two-character
format. KYC_EXEMPT supports Canadian province codes.
example: NE
type: string
required:
- address1
- city
- country
- postal_code
- state
type: object
AccountHolderIndividualResponse:
description: >-
Information about an individual associated with an account holder. A subset of the information
provided via KYC. For example, we do not return the government id.
properties:
address:
$ref: '#/components/schemas/Address'
description: Individual's current address
dob:
description: Individual's date of birth, as an RFC 3339 date.
example: '1991-03-08 08:00:00'
type: string
email:
description: Individual's email address.
example: tom@middle-earth.com
type: string
first_name:
description: Individual's first name, as it appears on government-issued identity documents.
example: Tom
type: string
last_name:
description: Individual's last name, as it appears on government-issued identity documents.
example: Bombadil
type: string
phone_number:
description: Individual's phone number, entered in E.164 format.
example: '+15555555555'
type: string
entity_token:
description: Globally unique identifier for the entity.
type: string
format: uuid
type: object
required:
- address
- dob
- email
- first_name
- last_name
- phone_number
- entity_token
AccountHolderBusinessResponse:
properties:
address:
$ref: '#/components/schemas/Address'
description: >
Business's physical address - PO boxes, UPS drops, and FedEx drops are not acceptable; APO/FPO are
acceptable.
dba_business_name:
description: Any name that the business operates under that is not its legal business name (if applicable).
type: string
government_id:
description: >
Government-issued identification number. US Federal Employer Identification Numbers (EIN) are
currently supported, entered as full nine-digits, with or without hyphens.
example: 114-123-1513
type: string
legal_business_name:
description: Legal (formal) business name.
example: Acme, Inc.
type: string
parent_company:
description: Parent company name (if applicable).
type: string
phone_numbers:
description: One or more of the business's phone number(s), entered as a list in E.164 format.
items:
description: Business phone number, entered in E.164 format.
example: '+15555555555'
type: string
minItems: 1
type: array
entity_token:
description: Globally unique identifier for the entity.
type: string
format: uuid
required:
- address
- government_id
- dba_business_name
- legal_business_name
- phone_numbers
- entity_token
type: object
AccountHolderVerificationApplication:
description: Represents the status of an identity verification application for an account holder
properties:
created:
description: Timestamp of when the application was created.
format: date-time
type: string
status:
description: |
KYC and KYB evaluation states.
Note:
* `PENDING_REVIEW` is only applicable for the `KYB_BASIC` workflow.
enum:
- ACCEPTED
- PENDING_REVIEW
- PENDING_DOCUMENT
- PENDING_RESUBMIT
- REJECTED
type: string
status_reasons:
description: Reason for the evaluation status.
items:
enum:
- ADDRESS_VERIFICATION_FAILURE
- AGE_THRESHOLD_FAILURE
- COMPLETE_VERIFICATION_FAILURE
- DOB_VERIFICATION_FAILURE
- ID_VERIFICATION_FAILURE
- MAX_DOCUMENT_ATTEMPTS
- MAX_RESUBMISSION_ATTEMPTS
- NAME_VERIFICATION_FAILURE
- OTHER_VERIFICATION_FAILURE
- RISK_THRESHOLD_FAILURE
- WATCHLIST_ALERT_FAILURE
type: string
type: array
updated:
description: Timestamp of when the application was last updated.
format: date-time
type: string
type: object
required-document:
title: Account Holder Required Document
type: object
properties:
entity_token:
type: string
format: uuid
description: Globally unique identifier for an entity.
valid_documents:
type: array
description: A list of valid documents that will satisfy the KYC requirements for the specified entity.
items:
type: string
description: The name of a required document.
status_reasons:
type: array
description: Provides the status reasons that will be satisfied by providing one of the valid documents.
items:
type: string
description: An account holder's status reason
required:
- entity_token
- valid_documents
- status_reasons
AccountHolder:
properties:
account_token:
description: Globally unique identifier for the account.
format: uuid
type: string
beneficial_owner_individuals:
description: >-
Only present when user_type == "BUSINESS".
You must submit a list of all direct and indirect individuals with 25% or more ownership in the
company. A maximum of 4 beneficial owners can be submitted. If no individual owns 25% of the
company you do not need to send beneficial owner information.
See [FinCEN
requirements](https://www.fincen.gov/sites/default/files/shared/CDD_Rev6.7_Sept_2017_Certificate.pdf)
(Section I) for more background on individuals that should be included.
items:
$ref: '#/components/schemas/AccountHolderIndividualResponse'
minItems: 0
type: array
business_account_token:
description: >-
Only applicable for customers using the KYC-Exempt workflow to enroll authorized users of
businesses. Pass the account_token of the enrolled business associated with the AUTHORIZED_USER in
this field.
format: uuid
type: string
business_entity:
$ref: '#/components/schemas/AccountHolderBusinessResponse'
description: >-
Only present when user_type == "BUSINESS". Information about the business for which the account is
being opened and KYB is being run.
control_person:
$ref: '#/components/schemas/AccountHolderIndividualResponse'
description: >
Only present when user_type == "BUSINESS".
An individual with significant responsibility for managing the legal entity (e.g., a Chief
Executive Officer, Chief Financial Officer, Chief Operating Officer,
Managing Member, General Partner, President, Vice President, or Treasurer). This can be an
executive, or someone who will have program-wide access
to the cards that Lithic will provide. In some cases, this individual could also be a beneficial
owner listed above.
created:
description: Timestamp of when the account holder was created.
format: date-time
type: string
email:
description: >
(Deprecated. Use control_person.email when user_type == "BUSINESS". Use individual.phone_number
when user_type == "INDIVIDUAL".)
Primary email of Account Holder.
example: '+15555555555'
type: string
exemption_type:
description: The type of KYC exemption for a KYC-Exempt Account Holder.
enum:
- AUTHORIZED_USER
- PREPAID_CARD_USER
type: string
external_id:
description: >-
Customer-provided token that indicates a relationship with an object outside of the Lithic
ecosystem.
type: string
individual:
$ref: '#/components/schemas/AccountHolderIndividualResponse'
description: >-
Only present when user_type == "INDIVIDUAL". Information about the individual for which the
account is being opened and KYC is being run.
naics_code:
description: >-
Only present when user_type == "BUSINESS". 6-digit North American Industry Classification System
(NAICS) code for the business.
type: string
nature_of_business:
description: Only present when user_type == "BUSINESS". User-submitted description of the business.
type: string
phone_number:
description: >
(Deprecated. Use control_person.phone_number when user_type == "BUSINESS". Use
individual.phone_number when user_type == "INDIVIDUAL".)
Primary phone of Account Holder, entered in E.164 format.
example: '+15555555555'
type: string
status:
description: |
(Deprecated. Use verification_application.status instead)
KYC and KYB evaluation states.
Note:
* `PENDING_REVIEW` is only applicable for the `KYB_BASIC` workflow.
enum:
- ACCEPTED
- PENDING_REVIEW
- PENDING_DOCUMENT
- PENDING_RESUBMIT
- REJECTED
type: string
status_reasons:
description: |
(Deprecated. Use verification_application.status_reasons)
Reason for the evaluation status.
items:
enum:
- ADDRESS_VERIFICATION_FAILURE
- AGE_THRESHOLD_FAILURE
- COMPLETE_VERIFICATION_FAILURE
- DOB_VERIFICATION_FAILURE
- ID_VERIFICATION_FAILURE
- MAX_DOCUMENT_ATTEMPTS
- MAX_RESUBMISSION_ATTEMPTS
- NAME_VERIFICATION_FAILURE
- OTHER_VERIFICATION_FAILURE
- RISK_THRESHOLD_FAILURE
- WATCHLIST_ALERT_FAILURE
type: string
type: array
token:
description: Globally unique identifier for the account holder.
format: uuid
type: string
user_type:
description: >-
The type of Account Holder. If the type is "INDIVIDUAL", the "individual" attribute will be
present.
If the type is "BUSINESS" then the "business_entity", "control_person",
"beneficial_owner_individuals", "naics_code", "nature_of_business", and "website_url" attributes
will be present.
enum:
- BUSINESS
- INDIVIDUAL
type: string
verification_application:
$ref: '#/components/schemas/AccountHolderVerificationApplication'
description: Information about the most recent identity verification attempt
required_documents:
description: >-
Only present for "KYB_BASIC" workflow. A list of documents required for the account holder to be
approved.
type: array
items:
$ref: '#/components/schemas/required-document'
website_url:
description: Only present when user_type == "BUSINESS". Business's primary website.
type: string
required:
- token
- created
type: object
error:
type: object
properties:
debugging_request_id:
type: string
format: uuid
description: Identifier to help debug an error.
message:
type: string
description: Explanation of error response.
required:
- debugging_request_id
- message
Individual:
properties:
address:
$ref: '#/components/schemas/Address'
description: >
Individual's current address - PO boxes, UPS drops, and FedEx drops are not acceptable; APO/FPO
are acceptable. Only USA addresses are currently supported.
dob:
description: Individual's date of birth, as an RFC 3339 date.
example: '1991-03-08 08:00:00'
type: string
email:
description: >
Individual's email address.
If utilizing Lithic for chargeback processing, this customer email address may be used to
communicate dispute status and resolution.
example: tom@middle-earth.com
type: string
first_name:
description: Individual's first name, as it appears on government-issued identity documents.
example: Tom
type: string
government_id:
description: >
Government-issued identification number (required for identity verification and compliance with
banking regulations). Social Security Numbers (SSN) and Individual Taxpayer Identification Numbers
(ITIN) are currently supported, entered as full nine-digits, with or without hyphens
example: 111-23-1412
type: string
last_name:
description: Individual's last name, as it appears on government-issued identity documents.
example: Bombadil
type: string
phone_number:
description: |
Individual's phone number, entered in E.164 format.
example: '+15555555555'
type: string
type: object
KybIndividual:
allOf:
- $ref: '#/components/schemas/Individual'
- required:
- address
- dob
- email
- first_name
- government_id
- last_name
type: object
description: Individuals associated with a KYB application. Phone number is optional.
BusinessEntity:
properties:
address:
$ref: '#/components/schemas/Address'
description: >
Business's physical address - PO boxes, UPS drops, and FedEx drops are not acceptable; APO/FPO are
acceptable.
dba_business_name:
description: Any name that the business operates under that is not its legal business name (if applicable).
type: string
government_id:
description: >
Government-issued identification number. US Federal Employer Identification Numbers (EIN) are
currently supported, entered as full nine-digits, with or without hyphens.
example: 114-123-1513
type: string
legal_business_name:
description: Legal (formal) business name.
example: Acme, Inc.
type: string
parent_company:
description: Parent company name (if applicable).
type: string
phone_numbers:
description: One or more of the business's phone number(s), entered as a list in E.164 format.
items:
description: Business phone number, entered in E.164 format.
example: '+15555555555'
type: string
minItems: 1
type: array
required:
- address
- government_id
- legal_business_name
- phone_numbers
type: object
Kyb:
properties:
beneficial_owner_individuals:
description: >-
You must submit a list of all direct and indirect individuals with 25% or more ownership in the
company. A maximum of 4 beneficial owners can be submitted. If no individual owns 25% of the
company you do not need to send beneficial owner information.
See [FinCEN
requirements](https://www.fincen.gov/sites/default/files/shared/CDD_Rev6.7_Sept_2017_Certificate.pdf)
(Section I) for more background on individuals that should be included.
items:
$ref: '#/components/schemas/KybIndividual'
minItems: 0
type: array
business_entity:
$ref: '#/components/schemas/BusinessEntity'
description: Information for business for which the account is being opened and KYB is being run.
control_person:
$ref: '#/components/schemas/KybIndividual'
description: >
An individual with significant responsibility for managing the legal entity (e.g., a Chief
Executive Officer, Chief Financial Officer, Chief Operating Officer,
Managing Member, General Partner, President, Vice President, or Treasurer). This can be an
executive, or someone who will have program-wide access
to the cards that Lithic will provide. In some cases, this individual could also be a beneficial
owner listed above.
See [FinCEN
requirements](https://www.fincen.gov/sites/default/files/shared/CDD_Rev6.7_Sept_2017_Certificate.pdf)
(Section II) for more background.
external_id:
description: A user provided id that can be used to link an account holder with an external system
type: string
kyb_passed_timestamp:
description: >
An RFC 3339 timestamp indicating when precomputed KYB was completed on the business with a pass
result.
This field is required only if workflow type is `KYB_BYO`.
example: '2018-05-29T21:16:05Z'
type: string
naics_code:
description: 6-digit North American Industry Classification System (NAICS) code for the business.
example: '541512'
type: string
nature_of_business:
description: >-
Short description of the company's line of business (i.e., what does the company do?). Values
longer than 255 characters will be truncated before KYB verification
example: Software company selling solutions to the restaurant industry
type: string
tos_timestamp:
description: >-
An RFC 3339 timestamp indicating when the account holder accepted the applicable legal agreements
(e.g., cardholder terms) as agreed upon during API customer's implementation with Lithic.
example: '2018-05-29T21:16:05Z'
type: string
website_url:
description: Company website URL.
example: www.mybusiness.com
type: string
workflow:
description: Specifies the type of KYB workflow to run.
enum:
- KYB_BASIC
- KYB_BYO
type: string
required:
- beneficial_owner_individuals
- business_entity
- control_person
- nature_of_business
- tos_timestamp
- workflow
type: object
KybDelegatedIndividual:
allOf:
- $ref: '#/components/schemas/Individual'
- required:
- first_name
- last_name
type: object
description: Individuals associated with a KYB_DELEGATED application. Only first and last name are required.
KybDelegatedBusinessEntity:
properties:
address:
$ref: '#/components/schemas/Address'
description: >
Business's physical address - PO boxes, UPS drops, and FedEx drops are not acceptable; APO/FPO are
acceptable.
dba_business_name:
description: Any name that the business operates under that is not its legal business name (if applicable).
type: string
government_id:
description: >
Government-issued identification number. US Federal Employer Identification Numbers (EIN) are
currently supported, entered as full nine-digits, with or without hyphens.
example: 114-123-1513
type: string
legal_business_name:
description: Legal (formal) business name.
example: Acme, Inc.
type: string
parent_company:
description: Parent company name (if applicable).
type: string
phone_numbers:
description: One or more of the business's phone number(s), entered as a list in E.164 format.
items:
description: Business phone number, entered in E.164 format.
example: '+15555555555'
type: string
minItems: 1
type: array
required:
- address
- legal_business_name
type: object
KybDelegated:
properties:
beneficial_owner_individuals:
description: >-
You can submit a list of all direct and indirect individuals with 25% or more ownership in the
company. A maximum of 4 beneficial owners can be submitted. If no individual owns 25% of the
company you do not need to send beneficial owner information.
See [FinCEN
requirements](https://www.fincen.gov/sites/default/files/shared/CDD_Rev6.7_Sept_2017_Certificate.pdf)
(Section I) for more background on individuals that should be included.
items:
$ref: '#/components/schemas/KybDelegatedIndividual'
minItems: 0
type: array
business_entity:
$ref: '#/components/schemas/KybDelegatedBusinessEntity'
description: Information for business for which the account is being opened.
control_person:
$ref: '#/components/schemas/KybDelegatedIndividual'
description: >
An individual with significant responsibility for managing the legal entity (e.g., a Chief
Executive Officer, Chief Financial Officer, Chief Operating Officer,
Managing Member, General Partner, President, Vice President, or Treasurer). This can be an
executive, or someone who will have program-wide access
to the cards that Lithic will provide. In some cases, this individual could also be a beneficial
owner listed above.
See [FinCEN
requirements](https://www.fincen.gov/sites/default/files/shared/CDD_Rev6.7_Sept_2017_Certificate.pdf)
(Section II) for more background.
external_id:
description: A user provided id that can be used to link an account holder with an external system
type: string
naics_code:
description: 6-digit North American Industry Classification System (NAICS) code for the business.
example: '541512'
type: string
nature_of_business:
description: >-
Short description of the company's line of business (i.e., what does the company do?). Values
longer than 255 characters will be truncated before KYB verification
example: Software company selling solutions to the restaurant industry
type: string
tos_timestamp:
description: >-
An RFC 3339 timestamp indicating when the account holder accepted the applicable legal agreements
(e.g., cardholder terms) as agreed upon during API customer's implementation with Lithic.
example: '2022-03-08 08:00:00'
type: string
website_url:
description: Company website URL.
example: www.mybusiness.com
type: string
workflow:
description: Specifies the type of KYB workflow to run.
enum:
- KYB_DELEGATED
type: string
required:
- business_entity
type: object
KycIndividual:
allOf:
- $ref: '#/components/schemas/Individual'
- required:
- address
- dob
- email
- first_name
- government_id
- last_name
- phone_number
type: object
description: Individuals associated with a KYC application.
x-stainless-naming:
java:
type_name: Individual
Kyc:
properties:
external_id:
description: A user provided id that can be used to link an account holder with an external system
type: string
individual:
$ref: '#/components/schemas/KycIndividual'
description: Information on individual for whom the account is being opened and KYC is being run.
kyc_passed_timestamp:
description: >
An RFC 3339 timestamp indicating when precomputed KYC was completed on the individual with a pass
result.
This field is required only if workflow type is `KYC_BYO`.
type: string
tos_timestamp:
description: >-
An RFC 3339 timestamp indicating when the account holder accepted the applicable legal agreements
(e.g., cardholder terms) as agreed upon during API customer's implementation with Lithic.
type: string
workflow:
description: Specifies the type of KYC workflow to run.
enum:
- KYC_BASIC
- KYC_BYO
type: string
required:
- individual
- tos_timestamp
- workflow
type: object
KycExempt:
properties:
address:
$ref: '#/components/schemas/Address'
description: >
KYC Exempt user's current address - PO boxes, UPS drops, and FedEx drops are not acceptable;
APO/FPO are acceptable.
business_account_token:
description: >-
Only applicable for customers using the KYC-Exempt workflow to enroll authorized users of
businesses. Pass the account_token of the enrolled business associated with the AUTHORIZED_USER in
this field.
type: string
email:
description: The KYC Exempt user's email
type: string
external_id:
description: A user provided id that can be used to link an account holder with an external system
type: string
first_name:
description: The KYC Exempt user's first name
type: string
kyc_exemption_type:
description: Specifies the type of KYC Exempt user
enum:
- AUTHORIZED_USER
- PREPAID_CARD_USER
type: string
last_name:
description: The KYC Exempt user's last name
type: string
phone_number:
description: The KYC Exempt user's phone number, entered in E.164 format.
type: string
workflow:
description: Specifies the workflow type. This must be 'KYC_EXEMPT'
enum:
- KYC_EXEMPT
type: string
required:
- address
- email
- first_name
- kyc_exemption_type
- last_name
- phone_number
- workflow
type: object
status-reasons:
title: KYC/KYB Status Reasons
description: Status Reasons for KYC/KYB enrollment states
type: string
enum:
- ADDRESS_VERIFICATION_FAILURE
- AGE_THRESHOLD_FAILURE
- COMPLETE_VERIFICATION_FAILURE
- DOB_VERIFICATION_FAILURE
- ID_VERIFICATION_FAILURE
- MAX_DOCUMENT_ATTEMPTS
- MAX_RESUBMISSION_ATTEMPTS
- NAME_VERIFICATION_FAILURE
- OTHER_VERIFICATION_FAILURE
- RISK_THRESHOLD_FAILURE
- WATCHLIST_ALERT_FAILURE
- PRIMARY_BUSINESS_ENTITY_ID_VERIFICATION_FAILURE
- PRIMARY_BUSINESS_ENTITY_ADDRESS_VERIFICATION_FAILURE
- PRIMARY_BUSINESS_ENTITY_NAME_VERIFICATION_FAILURE
- PRIMARY_BUSINESS_ENTITY_BUSINESS_OFFICERS_NOT_MATCHED
- PRIMARY_BUSINESS_ENTITY_SOS_FILING_INACTIVE
- PRIMARY_BUSINESS_ENTITY_SOS_NOT_MATCHED
- PRIMARY_BUSINESS_ENTITY_CMRA_FAILURE
- PRIMARY_BUSINESS_ENTITY_WATCHLIST_FAILURE
- PRIMARY_BUSINESS_ENTITY_REGISTERED_AGENT_FAILURE
- CONTROL_PERSON_BLOCKLIST_ALERT_FAILURE
- CONTROL_PERSON_ID_VERIFICATION_FAILURE
- CONTROL_PERSON_DOB_VERIFICATION_FAILURE
- CONTROL_PERSON_NAME_VERIFICATION_FAILURE
address-patch:
title: Address
type: object
properties:
address1:
description: Valid deliverable address (no PO boxes).
example: 123 Old Forest Way
type: string
address2:
description: Unit or apartment number (if applicable).
type: string
city:
description: Name of city.
example: Omaha
type: string
country:
description: >-
Valid country code. Only USA is currently supported, entered in uppercase ISO 3166-1 alpha-3
three-character format.
example: USA
type: string
postal_code:
description: >-
Valid postal code. Only USA ZIP codes are currently supported, entered as a five-digit ZIP or
nine-digit ZIP+4.
example: '68022'
type: string
state:
description: >-
Valid state code. Only USA state codes are currently supported, entered in uppercase ISO 3166-2
two-character format.
example: NE
type: string
individual-patch:
title: Individual
type: object
properties:
entity_token:
type: string
format: uuid
description: Globally unique identifier for an entity.
address:
$ref: '#/components/schemas/address-patch'
description: >-
Individual's current address - PO boxes, UPS drops, and FedEx drops are not acceptable; APO/FPO
are acceptable. Only USA addresses are currently supported.
dob:
type: string
example: '1991-03-08 08:00:00'
description: Individual's date of birth, as an RFC 3339 date.
email:
type: string
example: tom@middle-earth.com
description: >-
Individual's email address. If utilizing Lithic for chargeback processing, this customer email
address may be used to communicate dispute status and resolution.
first_name:
type: string
example: Tom
description: Individual's first name, as it appears on government-issued identity documents.
last_name:
type: string
example: Bombadil
description: Individual's last name, as it appears on government-issued identity documents.
phone_number:
type: string
example: '+15555555555'
description: Individual's phone number, entered in E.164 format.
government_id:
type: string
example: 111-23-1412
description: >-
Government-issued identification number (required for identity verification and compliance with
banking regulations). Social Security Numbers (SSN) and Individual Taxpayer Identification Numbers
(ITIN) are currently supported, entered as full nine-digits, with or without hyphens
writeOnly: true
kyb-individual-patch:
title: KYB Individual
type: object
description: Individuals associated with a KYB application. Phone number is optional.
allOf:
- $ref: '#/components/schemas/individual-patch'
- required:
- entity_token
kyb-business-entity-patch:
title: KYB Business Entity
type: object
properties:
entity_token:
type: string
format: uuid
description: Globally unique identifier for an entity.
address:
$ref: '#/components/schemas/address-patch'
description: >-
Business''s physical address - PO boxes, UPS drops, and FedEx drops are not acceptable; APO/FPO
are acceptable.
dba_business_name:
description: Any name that the business operates under that is not its legal business name (if applicable).
type: string
government_id:
description: >-
Government-issued identification number. US Federal Employer Identification Numbers (EIN) are
currently supported, entered as full nine-digits, with or without hyphens.
example: 114-123-1513
type: string
legal_business_name:
description: Legal (formal) business name.
example: Acme, Inc.
type: string
parent_company:
description: Parent company name (if applicable).
type: string
phone_numbers:
description: One or more of the business's phone number(s), entered as a list in E.164 format.
items:
description: Business phone number, entered in E.164 format.
example: '+15555555555'
type: string
minItems: 1
type: array
required:
- entity_token
kyb-patch-request:
title: Business Patch Request
type: object
description: The KYB request payload for updating a business.
properties:
beneficial_owner_individuals:
description: >-
You must submit a list of all direct and indirect individuals with 25% or more ownership in the
company. A maximum of 4 beneficial owners can be submitted. If no individual owns 25% of the
company you do not need to send beneficial owner information. See [FinCEN
requirements](https://www.fincen.gov/sites/default/files/shared/CDD_Rev6.7_Sept_2017_Certificate.pdf)
(Section I) for more background on individuals that should be included.
items:
$ref: '#/components/schemas/kyb-individual-patch'
minItems: 0
type: array
business_entity:
description: Information for business for which the account is being opened and KYB is being run.
$ref: '#/components/schemas/kyb-business-entity-patch'
control_person:
description: >-
An individual with significant responsibility for managing the legal entity (e.g., a Chief
Executive Officer, Chief Financial Officer, Chief Operating Officer, Managing Member, General
Partner, President, Vice President, or Treasurer). This can be an executive, or someone who will
have program-wide access to the cards that Lithic will provide. In some cases, this individual
could also be a beneficial owner listed above. See [FinCEN
requirements](https://www.fincen.gov/sites/default/files/shared/CDD_Rev6.7_Sept_2017_Certificate.pdf)
(Section II) for more background.
$ref: '#/components/schemas/kyb-individual-patch'
external_id:
description: A user provided id that can be used to link an account holder with an external system
type: string
naics_code:
description: 6-digit North American Industry Classification System (NAICS) code for the business.
example: '541512'
type: string
nature_of_business:
description: >-
Short description of the company's line of business (i.e., what does the company do?). Values
longer than 255 characters will be truncated before KYB verification
example: Software company selling solutions to the restaurant industry
type: string
website_url:
description: Company website URL.
example: www.mybusiness.com
type: string
kyc-individual-patch:
title: Individuals associated with a KYC application.
type: object
allOf:
- $ref: '#/components/schemas/individual-patch'
- required:
- entity_token
kyc-patch-request:
title: Individual Patch Request
type: object
description: The KYC request payload for updating an account holder.
properties:
individual:
$ref: '#/components/schemas/kyc-individual-patch'
description: Information on the individual for whom the account is being opened and KYC is being run.
external_id:
description: A user provided id that can be used to link an account holder with an external system
type: string
patch-request:
title: Legacy Patch Request
type: object
description: The legacy request for updating an account holder.
properties:
email:
description: >-
Allowed for all Account Holders. Account holder's email address. The primary purpose of this field
is for cardholder identification and verification during the digital wallet tokenization process.
type: string
phone_number:
description: >-
Allowed for all Account Holders. Account holder's phone number, entered in E.164 format. The
primary purpose of this field is for cardholder identification and verification during the digital
wallet tokenization process.
type: string
address:
description: 'Allowed for: KYC-Exempt, BYO-KYC, BYO-KYB.'
$ref: '#/components/schemas/address-patch'
business_account_token:
description: >-
Allowed for: KYC-Exempt, BYO-KYC. The token of the business account to which the account holder is
associated.
type: string
first_name:
description: Allowed for KYC-Exempt, BYO-KYC. Account holder's first name.
type: string
last_name:
description: Allowed for KYC-Exempt, BYO-KYC. Account holder's last name.
type: string
legal_business_name:
description: Allowed for BYO-KYB. Legal business name of the account holder.
type: string
status:
title: KYC/KYB Status
description: Enrollment status for KYC/KYB
type: string
enum:
- ACCEPTED
- PENDING_DOCUMENT
- PENDING_RESUBMIT
- REJECTED
verification-application:
title: Verification Application
type: object
description: Represents the status of an identity verification application for an account holder
properties:
created:
type: string
format: date-time
description: Timestamp of when the application was created.
status:
description: |-
KYC and KYB evaluation states.
Note: `PENDING_RESUBMIT` and `PENDING_DOCUMENT` are only applicable for the `ADVANCED` workflow.
$ref: '#/components/schemas/status'
status_reasons:
type: array
items:
$ref: '#/components/schemas/status-reasons'
description: Reason for the evaluation status.
updated:
type: string
format: date-time
description: Timestamp of when the application was last updated.
ky_passed_at:
type: string
format: date-time
description: >-
Timestamp of when the application passed the verification process. Only present if `status` is
`ACCEPTED`
required:
- created
- status
- status_reasons
- updated
address:
title: Address
type: object
properties:
address1:
description: Valid deliverable address (no PO boxes).
example: 123 Old Forest Way
type: string
address2:
description: Unit or apartment number (if applicable).
type: string
city:
description: Name of city.
example: Omaha
type: string
country:
description: >-
Valid country code. Only USA is currently supported, entered in uppercase ISO 3166-1 alpha-3
three-character format.
example: USA
type: string
postal_code:
description: >-
Valid postal code. Only USA ZIP codes are currently supported, entered as a five-digit ZIP or
nine-digit ZIP+4.
example: '68022'
type: string
state:
description: >-
Valid state code. Only USA state codes are currently supported, entered in uppercase ISO 3166-2
two-character format.
example: NE
type: string
required:
- address1
- city
- country
- postal_code
- state
individual:
title: Individual
type: object
properties:
address:
$ref: '#/components/schemas/address'
description: >-
Individual's current address - PO boxes, UPS drops, and FedEx drops are not acceptable; APO/FPO
are acceptable. Only USA addresses are currently supported.
dob:
type: string
example: '1991-03-08 08:00:00'
description: Individual's date of birth, as an RFC 3339 date.
email:
type: string
example: tom@middle-earth.com
description: >-
Individual's email address. If utilizing Lithic for chargeback processing, this customer email
address may be used to communicate dispute status and resolution.
first_name:
type: string
example: Tom
description: Individual's first name, as it appears on government-issued identity documents.
last_name:
type: string
example: Bombadil
description: Individual's last name, as it appears on government-issued identity documents.
phone_number:
type: string
example: '+15555555555'
description: Individual's phone number, entered in E.164 format.
government_id:
type: string
example: 111-23-1412
description: >-
Government-issued identification number (required for identity verification and compliance with
banking regulations). Social Security Numbers (SSN) and Individual Taxpayer Identification Numbers
(ITIN) are currently supported, entered as full nine-digits, with or without hyphens
writeOnly: true
kyb-business-entity:
title: KYB Business Entity
type: object
properties:
address:
$ref: '#/components/schemas/address'
description: >-
Business''s physical address - PO boxes, UPS drops, and FedEx drops are not acceptable; APO/FPO
are acceptable.
dba_business_name:
description: Any name that the business operates under that is not its legal business name (if applicable).
type: string
government_id:
description: >-
Government-issued identification number. US Federal Employer Identification Numbers (EIN) are
currently supported, entered as full nine-digits, with or without hyphens.
example: 114-123-1513
type: string
legal_business_name:
description: Legal (formal) business name.
example: Acme, Inc.
type: string
parent_company:
description: Parent company name (if applicable).
type: string
phone_numbers:
description: One or more of the business's phone number(s), entered as a list in E.164 format.
items:
description: Business phone number, entered in E.164 format.
example: '+15555555555'
type: string
minItems: 1
type: array
required:
- address
- government_id
- legal_business_name
- phone_numbers
kyb-kyc-patch-response:
title: Business/Individual Patch Response
type: object
properties:
token:
description: Globally unique identifier for the account holder.
type: string
format: uuid
account_token:
description: Globally unique identifier for the account.
type: string
format: uuid
business_account_token:
description: >-
Only applicable for customers using the KYC-Exempt workflow to enroll authorized users of
businesses. Pass the account_token of the enrolled business associated with the AUTHORIZED_USER in
this field.
type:
- string
- 'null'
format: uuid
created:
description: Timestamp of when the account holder was created.
type: string
format: date-time
exemption_type:
description: >-
The type of KYC exemption for a KYC-Exempt Account Holder. "None" if the account holder is not
KYC-Exempt.
type: string
enum:
- AUTHORIZED_USER
- PREPAID_CARD_USER
external_id:
description: >-
Customer-provided token that indicates a relationship with an object outside of the Lithic
ecosystem.
type: string
user_type:
description: >-
The type of Account Holder. If the type is "INDIVIDUAL", the "individual" attribute will be
present.
If the type is "BUSINESS" then the "business_entity", "control_person",
"beneficial_owner_individuals",
"naics_code", "nature_of_business", and "website_url" attributes will be present.
type: string
enum:
- BUSINESS
- INDIVIDUAL
verification_application:
$ref: '#/components/schemas/verification-application'
description: Information about the most recent identity verification attempt
individual:
$ref: '#/components/schemas/individual'
description: >-
Only present when user_type == "INDIVIDUAL". Information about the individual for which the
account is being opened and KYC is being run.
business_entity:
$ref: '#/components/schemas/kyb-business-entity'
description: >-
Only present when user_type == "BUSINESS". Information about the business for which the account is
being opened and KYB is being run.
beneficial_owner_individuals:
description: >-
Only present when user_type == "BUSINESS". You must submit a list of all direct and indirect
individuals with 25% or more ownership in the company. A maximum of 4 beneficial owners can be
submitted. If no individual owns 25% of the company you do not need to send beneficial owner
information. See [FinCEN
requirements](https://www.fincen.gov/sites/default/files/shared/CDD_Rev6.7_Sept_2017_Certificate.pdf)
(Section I) for more background on individuals that should be included.
type: array
items:
$ref: '#/components/schemas/individual'
minItems: 0
control_person:
$ref: '#/components/schemas/individual'
description: >-
Only present when user_type == "BUSINESS".
An individual with significant responsibility for managing the legal entity (e.g., a Chief
Executive Officer, Chief Financial Officer, Chief Operating Officer,
Managing Member, General Partner, President, Vice President, or Treasurer). This can be an
executive, or someone who will have program-wide access
to the cards that Lithic will provide. In some cases, this individual could also be a beneficial
owner listed above.
naics_code:
description: >-
Only present when user_type == "BUSINESS". 6-digit North American Industry Classification System
(NAICS) code for the business.
type: string
nature_of_business:
description: Only present when user_type == "BUSINESS". User-submitted description of the business.
type: string
website_url:
description: Only present when user_type == "BUSINESS". Business's primary website.
type: string
email:
description: |
(Deprecated. Use control_person.email when user_type == "BUSINESS".
Use individual.phone_number when user_type == "INDIVIDUAL".)
Primary email of Account Holder.
type: string
phone_number:
description: |
(Deprecated. Use control_person.phone_number when user_type == "BUSINESS".
Use individual.phone_number when user_type == "INDIVIDUAL".)
Primary phone of Account Holder, entered in E.164 format.
type: string
status:
description: |+
(Deprecated. Use verification_application.status instead)
KYC and KYB evaluation states.
Note: `PENDING_RESUBMIT` and `PENDING_DOCUMENT` are only applicable for the `ADVANCED` workflow.
$ref: '#/components/schemas/status'
status_reasons:
description: |-
(Deprecated. Use verification_application.status_reasons)
Reason for the evaluation status.
type: array
items:
$ref: '#/components/schemas/status-reasons'
required_documents:
description: >-
Only present for "KYB_BASIC" and "KYC_ADVANCED" workflows. A list of documents required for the
account holder to be approved.
type: array
items:
$ref: '#/components/schemas/required-document'
patch-response:
title: Legacy Patch Response
type: object
properties:
token:
description: The token for the account holder that was updated
type: string
email:
description: The email for the account holder
type: string
phone_number:
description: The phone_number for the account holder
type: string
business_account_token:
description: The token for the business account that the account holder is associated with
type:
- string
- 'null'
address:
description: The address for the account holder
$ref: '#/components/schemas/address'
first_name:
description: The first name for the account holder
type: string
last_name:
description: The last name for the account holder
type: string
legal_business_name:
description: The legal business name for the account holder
type: string
document-type:
title: Account Holder document types
description: Type of documentation to be submitted for verification of an account holder
type: string
enum:
- DRIVERS_LICENSE
- PASSPORT
- PASSPORT_CARD
- EIN_LETTER
- TAX_RETURN
- OPERATING_AGREEMENT
- CERTIFICATE_OF_FORMATION
- CERTIFICATE_OF_GOOD_STANDING
- ARTICLES_OF_INCORPORATION
- ARTICLES_OF_ORGANIZATION
- BYLAWS
- GOVERNMENT_BUSINESS_LICENSE
- PARTNERSHIP_AGREEMENT
- SS4_FORM
- BANK_STATEMENT
- UTILITY_BILL_STATEMENT
- SSN_CARD
- ITIN_LETTER
- FINCEN_BOI_REPORT
document-upload-status:
title: Account holder document upload status
description: Status of an account holder's document upload.
type: string
enum:
- ACCEPTED
- REJECTED
- PENDING_UPLOAD
- UPLOADED
- PARTIAL_APPROVAL
document-upload-status-reasons:
title: Account holder document upload status reasons
description: The status reasons for an account holder document upload that is not ACCEPTED
type: string
enum:
- DOCUMENT_MISSING_REQUIRED_DATA
- DOCUMENT_UPLOAD_TOO_BLURRY
- FILE_SIZE_TOO_LARGE
- INVALID_DOCUMENT_TYPE
- INVALID_DOCUMENT_UPLOAD
- INVALID_ENTITY
- DOCUMENT_EXPIRED
- DOCUMENT_ISSUED_GREATER_THAN_30_DAYS
- DOCUMENT_TYPE_NOT_SUPPORTED
- UNKNOWN_FAILURE_REASON
- UNKNOWN_ERROR
document:
title: Account Holder KYC Document
type: object
description: |-
Describes the document and the required document image uploads
required to re-run KYC
examples:
- account_holder_token: aab6ad9a-3630-4cd0-bbec-1a0fa5c7e149
token: f41c975e-cad8-4e4f-a5cb-cef92ed91083
document_type: EIN_LETTER
entity_token: b50a84c9-8e86-4016-b1c7-0b9f71d4bb84
required_document_uploads:
- image_type: FRONT
status: PENDING_UPLOAD
status_reasons: []
upload_url: https://lithic-document-verification-uploads.com
token: e254beee-67db-4d8c-b610-306ee07de886
accepted_entity_status_reasons: []
rejected_entity_status_reasons: []
created: '2024-09-18T12:34:56Z'
updated: '2024-09-18T12:34:56Z'
properties:
token:
type: string
format: uuid
description: Globally unique identifier for the document.
account_holder_token:
type: string
format: uuid
description: Globally unique identifier for the account holder.
document_type:
$ref: '#/components/schemas/document-type'
entity_token:
type: string
format: uuid
description: Globally unique identifier for an entity.
required_document_uploads:
type: array
description: Represents a single image of the document to upload.
items:
type: object
description: Represents a single image of the document to upload.
properties:
image_type:
type: string
enum:
- FRONT
- BACK
description: Type of image to upload.
status:
$ref: '#/components/schemas/document-upload-status'
status_reasons:
description: Reasons for document image upload status.
type: array
items:
$ref: '#/components/schemas/document-upload-status-reasons'
upload_url:
type: string
description: >-
URL to upload document image to.
Note that the upload URLs expire after 7 days. If an upload URL expires, you can
refresh the URLs by retrieving the document upload from `GET
/account_holders/{account_holder_token}/documents`.
token:
type: string
format: uuid
description: Globally unique identifier for the document upload.
accepted_entity_status_reasons:
description: >-
A list of status reasons associated with a KYB account holder that have been satisfied by
the document upload
type: array
items:
type: string
rejected_entity_status_reasons:
description: >-
A list of status reasons associated with a KYB account holder that have not been satisfied
by the document upload
type: array
items:
type: string
created:
type: string
format: date-time
description: When the document upload was created
updated:
type: string
format: date-time
description: When the document upload was last updated
required:
- image_type
- status
- status_reasons
- upload_url
- token
- created
- updated
- accepted_entity_status_reasons
- rejected_entity_status_reasons
required:
- account_holder_token
- document_type
- entity_token
- required_document_uploads
- token
entity-type:
title: Account Holder Entity Type
description: The type of entity associated with an account holder
type: string
enum:
- BENEFICIAL_OWNER_INDIVIDUAL
- CONTROL_PERSON
create-entity-request:
title: Account Holder Entity Create Request
description: >-
Request body for creating a new beneficial owner or replacing the control person entity on an existing
KYB account holder.
allOf:
- $ref: '#/components/schemas/individual'
- type: object
properties:
type:
$ref: '#/components/schemas/entity-type'
description: The type of entity to create on the account holder
required:
- type
- first_name
- last_name
- dob
- email
- phone_number
- government_id
- address
entity-status:
title: Account Holder Entity Status
description: The status of an entity associated with an account holder
type: string
enum:
- ACCEPTED
- INACTIVE
- PENDING_REVIEW
- REJECTED
create-entity-response:
title: Account Holder Entity Create Response
type: object
description: >-
Response body for creating a new beneficial owner or replacing the control person entity on an
existing KYB account holder.
properties:
account_holder_token:
type: string
format: uuid
description: Globally unique identifier for the account holder
created:
type: string
format: date-time
description: Timestamp of when the entity was created
status:
$ref: '#/components/schemas/entity-status'
description: Entity verification status
status_reasons:
type: array
description: Reason for the evaluation status
items:
$ref: '#/components/schemas/status-reasons'
required_documents:
type: array
description: A list of documents required for the entity to be approved
items:
$ref: '#/components/schemas/required-document'
token:
type: string
format: uuid
description: Globally unique identifier for the entity
required:
- account_holder_token
- created
- status
- status_reasons
- token
- required_documents
entity-response:
title: Account Holder Entity
type: object
description: Information about an entity associated with an account holder
properties:
account_holder_token:
type: string
format: uuid
description: Globally unique identifier for the account holder
token:
type: string
format: uuid
description: Globally unique identifier for the entity
type:
$ref: '#/components/schemas/entity-type'
description: The type of entity
status:
$ref: '#/components/schemas/entity-status'
description: The status of the entity
first_name:
type:
- string
- 'null'
description: Individual's first name, as it appears on government-issued identity documents
example: Tom
last_name:
type:
- string
- 'null'
description: Individual's last name, as it appears on government-issued identity documents
example: Bombadil
email:
type:
- string
- 'null'
description: Individual's email address
example: tom@middle-earth.com
phone_number:
type:
- string
- 'null'
description: Individual's phone number, entered in E.164 format
example: '+15555555555'
dob:
type:
- string
- 'null'
description: Individual's date of birth, as an RFC 3339 date
example: '1991-03-08 08:00:00'
address:
$ref: '#/components/schemas/address'
description: Individual's current address
required:
- account_holder_token
- token
- type
- status
- first_name
- last_name
- email
- phone_number
- dob
- address
AccountConfiguration:
properties:
account_holder:
properties:
business_account_token:
description: >-
Only applicable for customers using the KYC-Exempt workflow to enroll authorized users of
businesses. Account_token of the enrolled business associated with an enrolled AUTHORIZED_USER
individual.
example: e87db14a-4abf-4901-adad-5d5c9f46aff2
type: string
email:
description: Email address.
example: jack@lithic.com
type: string
phone_number:
description: Phone number of the individual.
example: '+15555555555'
type: string
token:
description: Globally unique identifier for the account holder.
example: 95e5f1b7-cfd5-4520-aa3c-2451bab8608d
type: string
required:
- business_account_token
- email
- phone_number
- token
type: object
auth_rule_tokens:
description: >-
List of identifiers for the Auth Rule(s) that are applied on the account.
This field is deprecated and will no longer be populated in the `account_holder` object. The key
will be removed from the schema in a future release. Use the `/auth_rules` endpoints to fetch Auth
Rule information instead.
items:
type: string
type: array
deprecated: true
cardholder_currency:
description: 3-character alphabetic ISO 4217 code for the currency of the cardholder.
example: USD
type: string
spend_limit:
description: >
Spend limit information for the user containing the daily, monthly, and lifetime spend limit of
the account. Any charges to a card owned by this account will be declined once their transaction
volume has surpassed the value in the applicable time limit (rolling). A lifetime limit of 0
indicates that the lifetime limit feature is disabled.
properties:
daily:
description: Daily spend limit (in cents).
example: 10000
minimum: 0
type: integer
lifetime:
description: Total spend limit over account lifetime (in cents).
example: 100000
minimum: 0
type: integer
monthly:
description: Monthly spend limit (in cents).
example: 40000
minimum: 0
type: integer
required:
- daily
- lifetime
- monthly
type: object
state:
description: >-
Account state:
* `ACTIVE` - Account is able to transact and create new cards.
* `PAUSED` - Account will not be able to transact or create new cards. It can be set back
to `ACTIVE`.
* `CLOSED` - Account will not be able to transact or create new cards. `CLOSED` accounts
are unable to be transitioned to `ACTIVE` or `PAUSED` states. Accounts can be manually set to
`CLOSED`, or this can be done by Lithic due to failure to pass KYB/KYC or for risk/compliance
reasons. Please contact [support@lithic.com](mailto:support@lithic.com) if you believe this was
done by mistake.
enum:
- ACTIVE
- PAUSED
- CLOSED
type: string
substatus:
description: >
Account state substatus values:
* `FRAUD_IDENTIFIED` - The account has been recognized as being created or used with stolen or
fabricated identity information, encompassing both true identity theft and synthetic identities.
* `SUSPICIOUS_ACTIVITY` - The account has exhibited suspicious behavior, such as unauthorized
access or fraudulent transactions, necessitating further investigation.
* `RISK_VIOLATION` - The account has been involved in deliberate misuse by the legitimate account
holder. Examples include disputing valid transactions without cause, falsely claiming non-receipt
of goods, or engaging in intentional bust-out schemes to exploit account services.
* `END_USER_REQUEST` - The account holder has voluntarily requested the closure of the account for
personal reasons. This encompasses situations such as bankruptcy, other financial considerations,
or the account holder's death.
* `ISSUER_REQUEST` - The issuer has initiated the closure of the account due to business strategy,
risk management, inactivity, product changes, regulatory concerns, or violations of terms and
conditions.
* `NOT_ACTIVE` - The account has not had any transactions or payment activity within a specified
period. This status applies to accounts that are paused or closed due to inactivity.
* `INTERNAL_REVIEW` - The account is temporarily paused pending further internal review. In future
implementations, this status may prevent clients from activating the account via APIs until the
review is completed.
* `OTHER` - The reason for the account's current status does not fall into any of the above
categories. A comment should be provided to specify the particular reason.
enum:
- FRAUD_IDENTIFIED
- SUSPICIOUS_ACTIVITY
- RISK_VIOLATION
- END_USER_REQUEST
- ISSUER_REQUEST
- NOT_ACTIVE
- INTERNAL_REVIEW
- OTHER
type: string
comment:
description: Additional context or information related to the account.
type: string
token:
description: >
Globally unique identifier for the account. This is the same as the account_token returned by the
enroll endpoint. If using this parameter, do not include pagination.
example: b68b7424-aa69-4cbc-a946-30d90181b621
format: uuid
type: string
verification_address:
properties:
address1:
description: Valid deliverable address (no PO boxes).
example: 124 Old Forest Way
type: string
address2:
description: Unit or apartment number (if applicable).
example: Apt 21
type: string
city:
description: City name.
example: Seattle
type: string
country:
description: Country name. Only USA is currently supported.
example: USA
type: string
postal_code:
description: >-
Valid postal code. Only USA postal codes (ZIP codes) are currently supported, entered as a
five-digit postal code or nine-digit postal code (ZIP+4) using the format 12345-1234.
example: '98109'
type: string
state:
description: >-
Valid state code. Only USA state codes are currently supported, entered in uppercase ISO
3166-2 two-character format.
example: WA
type: string
required:
- address1
- city
- country
- postal_code
- state
type: object
deprecated: true
created:
description: Timestamp of when the account was created.
format: date-time
type:
- string
- 'null'
required:
- spend_limit
- state
- token
- created
type: object
AccountSpendLimits:
properties:
available_spend_limit:
properties:
daily:
description: >-
The available spend limit (in cents) relative to the daily limit configured on the Account
(e.g. 100000 would be a $1,000 limit).
example: 100000
type: integer
lifetime:
description: The available spend limit (in cents) relative to the lifetime limit configured on the Account.
example: 300000
type: integer
monthly:
description: The available spend limit (in cents) relative to the monthly limit configured on the Account.
example: 200000
type: integer
type: object
spend_limit:
properties:
daily:
description: The configured daily spend limit (in cents) on the Account.
example: 500000
type: integer
lifetime:
description: The configured lifetime spend limit (in cents) on the Account.
example: 500000
type: integer
monthly:
description: The configured monthly spend limit (in cents) on the Account.
example: 500000
type: integer
type: object
spend_velocity:
properties:
daily:
description: Current daily spend velocity (in cents) on the Account. Present if daily spend limit is set.
example: 40000
type: integer
lifetime:
description: >-
Current lifetime spend velocity (in cents) on the Account. Present if lifetime spend limit is
set.
example: 20000
type: integer
monthly:
description: >-
Current monthly spend velocity (in cents) on the Account. Present if monthly spend limit is
set.
example: 30000
type: integer
type: object
required:
- available_spend_limit
type: object
event-stream:
title: Event Stream Types
type: string
enum:
- AUTHORIZATION
- THREE_DS_AUTHENTICATION
- TOKENIZATION
- ACH_CREDIT_RECEIPT
- ACH_DEBIT_RECEIPT
description: The event stream during which the rule will be evaluated.
auth-rule-token:
title: Auth Rule Token
description: Auth Rule Token
type: string
format: uuid
auth-rule-state:
title: Auth Rule State
type: string
description: The state of the Auth Rule
enum:
- ACTIVE
- INACTIVE
program-level:
title: Auth Rule Program Level Parameter
type: boolean
description: Whether the Auth Rule applies to all authorizations on the card program.
card-tokens:
title: Auth Rule Card Tokens
description: Card tokens to which the Auth Rule applies.
type: array
items:
type: string
format: uuid
excluded-card-tokens:
title: Auth Rule Excluded Card Tokens
description: Card tokens to which the Auth Rule does not apply.
type: array
items:
type: string
format: uuid
excluded-account-tokens:
title: Auth Rule Excluded Account Tokens
description: Account tokens to which the Auth Rule does not apply.
type: array
items:
type: string
format: uuid
excluded-business-account-tokens:
title: Auth Rule Excluded Business Account Tokens
description: Business account tokens to which the Auth Rule does not apply.
type: array
items:
type: string
format: uuid
account-tokens:
title: Auth Rule Account Tokens
description: Account tokens to which the Auth Rule applies.
type: array
items:
type: string
format: uuid
business-account-tokens:
title: Auth Rule Business Account Tokens
description: Business Account tokens to which the Auth Rule applies.
type: array
items:
type: string
format: uuid
auth-rule-type:
title: Auth Rule Types
type: string
enum:
- CONDITIONAL_BLOCK
- VELOCITY_LIMIT
- MERCHANT_LOCK
- CONDITIONAL_ACTION
- TYPESCRIPT_CODE
description: >-
The type of Auth Rule. For certain rule types, this determines the event stream during which it will
be evaluated. For rules that can be applied to one of several event streams, the effective one is
defined by the separate `event_stream` field.
- `CONDITIONAL_BLOCK`: Deprecated. Use `CONDITIONAL_ACTION` instead. AUTHORIZATION event stream.
- `VELOCITY_LIMIT`: AUTHORIZATION event stream.
- `MERCHANT_LOCK`: AUTHORIZATION event stream.
- `CONDITIONAL_ACTION`: AUTHORIZATION, THREE_DS_AUTHENTICATION, TOKENIZATION, ACH_CREDIT_RECEIPT, or
ACH_DEBIT_RECEIPT event stream.
- `TYPESCRIPT_CODE`: AUTHORIZATION, THREE_DS_AUTHENTICATION, TOKENIZATION, ACH_CREDIT_RECEIPT, or
ACH_DEBIT_RECEIPT event stream.
conditional-operation:
title: Conditional Operation
type: string
description: The operation to apply to the attribute
enum:
- IS_ONE_OF
- IS_NOT_ONE_OF
- MATCHES
- DOES_NOT_MATCH
- IS_EQUAL_TO
- IS_NOT_EQUAL_TO
- IS_GREATER_THAN
- IS_GREATER_THAN_OR_EQUAL_TO
- IS_LESS_THAN
- IS_LESS_THAN_OR_EQUAL_TO
- IS_AFTER
- IS_BEFORE
- CONTAINS_ANY
- CONTAINS_ALL
- CONTAINS_NONE
conditional-value:
title: Conditional Value
anyOf:
- title: Regex
type: string
description: A regex string, to be used with `MATCHES` or `DOES_NOT_MATCH`
- title: Number
type: integer
format: int64
description: >-
A number, to be used with `IS_GREATER_THAN`, `IS_GREATER_THAN_OR_EQUAL_TO`, `IS_LESS_THAN`,
`IS_LESS_THAN_OR_EQUAL_TO`, `IS_EQUAL_TO`, or `IS_NOT_EQUAL_TO`
- title: List of Strings
type: array
minItems: 1
items:
type: string
description: An array of strings, to be used with `IS_ONE_OF` or `IS_NOT_ONE_OF`
- title: Timestamp
type: string
format: date-time
description: A timestamp, to be used with `IS_AFTER` or `IS_BEFORE`
conditional-block-parameters:
title: Conditional Block Parameters
deprecated: true
description: 'Deprecated: Use CONDITIONAL_ACTION instead.'
type: object
properties:
conditions:
type: array
items:
type: object
properties:
attribute:
type: string
description: >-
The attribute to target.
The following attributes may be targeted:
* `MCC`: A four-digit number listed in ISO 18245. An MCC is used to classify a business by
the types of goods or services it provides.
* `COUNTRY`: Country of entity of card acceptor. Possible values are: (1) all ISO 3166-1
alpha-3 country codes, (2) QZZ for Kosovo, and (3) ANT for Netherlands Antilles.
* `CURRENCY`: 3-character alphabetic ISO 4217 code for the merchant currency of the
transaction.
* `MERCHANT_ID`: Unique alphanumeric identifier for the payment card acceptor (merchant).
* `DESCRIPTOR`: Short description of card acceptor.
* `LIABILITY_SHIFT`: Indicates whether chargeback liability shift to the issuer applies to
the transaction. Valid values are `NONE`, `3DS_AUTHENTICATED`, or `TOKEN_AUTHENTICATED`.
* `PAN_ENTRY_MODE`: The method by which the cardholder's primary account number (PAN) was
entered. Valid values are `AUTO_ENTRY`, `BAR_CODE`, `CONTACTLESS`, `ECOMMERCE`,
`ERROR_KEYED`, `ERROR_MAGNETIC_STRIPE`, `ICC`, `KEY_ENTERED`, `MAGNETIC_STRIPE`, `MANUAL`,
`OCR`, `SECURE_CARDLESS`, `UNSPECIFIED`, `UNKNOWN`, `CREDENTIAL_ON_FILE`, or `ECOMMERCE`.
* `TRANSACTION_AMOUNT`: The base transaction amount (in cents) plus the acquirer fee field
in the settlement/cardholder billing currency. This is the amount the issuer should
authorize against unless the issuer is paying the acquirer fee on behalf of the cardholder.
* `RISK_SCORE`: Network-provided score assessing risk level associated with a given
authorization. Scores are on a range of 0-999, with 0 representing the lowest risk and 999
representing the highest risk. For Visa transactions, where the raw score has a range of
0-99, Lithic will normalize the score by multiplying the raw score by 10x.
* `CARD_TRANSACTION_COUNT_15M`: The number of transactions on the card in the trailing 15
minutes before the authorization.
* `CARD_TRANSACTION_COUNT_1H`: The number of transactions on the card in the trailing hour
up and until the authorization.
* `CARD_TRANSACTION_COUNT_24H`: The number of transactions on the card in the trailing 24
hours up and until the authorization.
* `CARD_STATE`: The current state of the card associated with the transaction. Valid values
are `CLOSED`, `OPEN`, `PAUSED`, `PENDING_ACTIVATION`, `PENDING_FULFILLMENT`.
* `PIN_ENTERED`: Indicates whether a PIN was entered during the transaction. Valid values
are `TRUE`, `FALSE`.
* `PIN_STATUS`: The current state of card's PIN. Valid values are `NOT_SET`, `OK`,
`BLOCKED`.
* `WALLET_TYPE`: For transactions using a digital wallet token, indicates the source of the
token. Valid values are `APPLE_PAY`, `GOOGLE_PAY`, `SAMSUNG_PAY`, `MASTERPASS`, `MERCHANT`,
`OTHER`, `NONE`.
* `ADDRESS_MATCH`: Lithic's evaluation result comparing transaction's address data with the
cardholder KYC data if it exists. Valid values are `MATCH`, `MATCH_ADDRESS_ONLY`,
`MATCH_ZIP_ONLY`,`MISMATCH`,`NOT_PRESENT`.
enum:
- MCC
- COUNTRY
- CURRENCY
- MERCHANT_ID
- DESCRIPTOR
- LIABILITY_SHIFT
- PAN_ENTRY_MODE
- TRANSACTION_AMOUNT
- RISK_SCORE
- CARD_TRANSACTION_COUNT_15M
- CARD_TRANSACTION_COUNT_1H
- CARD_TRANSACTION_COUNT_24H
- CARD_STATE
- PIN_ENTERED
- PIN_STATUS
- WALLET_TYPE
- ADDRESS_MATCH
operation:
$ref: '#/components/schemas/conditional-operation'
value:
$ref: '#/components/schemas/conditional-value'
required:
- attribute
- operation
- value
required:
- conditions
velocity-scope:
title: Velocity Limits Scope
type: string
enum:
- CARD
- ACCOUNT
description: The scope the velocity is calculated for
velocity-limit-period:
title: Velocity Limit Period
oneOf:
- title: Trailing Window Object
type: object
properties:
duration:
type: integer
description: >-
The size of the trailing window to calculate Spend Velocity over in seconds. The minimum value
is 10 seconds, and the maximum value is 2678400 seconds (31 days).
minimum: 10
maximum: 2678400
type:
type: string
const: CUSTOM
required:
- duration
- type
- title: Fixed Window Day
type: object
description: Velocity over the current day since 00:00 / 12 AM in Eastern Time
properties:
type:
type: string
const: DAY
required:
- type
- title: Fixed Window Week
type: object
description: Velocity over the current week since 00:00 / 12 AM in Eastern Time on specified `day_of_week`
properties:
type:
type: string
const: WEEK
day_of_week:
type: integer
description: >-
The day of the week to start the week from. Following ISO-8601, 1 is Monday and 7 is Sunday.
Defaults to Monday if not specified.
minimum: 1
maximum: 7
default: 1
required:
- type
- title: Fixed Window Month
type: object
description: Velocity over the current month since 00:00 / 12 AM in Eastern Time on specified `day_of_month`.
properties:
type:
type: string
const: MONTH
day_of_month:
type: integer
description: >-
The day of the month to start from. Accepts values from 1 to 31, and will reset at the end of
the month if the day exceeds the number of days in the month. Defaults to the 1st of the month
if not specified.
minimum: 1
maximum: 31
default: 1
required:
- type
- title: Fixed Window Year
type: object
description: >-
Velocity over the current year since 00:00 / 12 AM in Eastern Time on specified `month` and
`day_of_month`. This validates the month and day of the year to start from is a real date. In the
event that February 29th is selected, in non-leap years, the window will start from February 28th.
properties:
type:
type: string
const: YEAR
day_of_month:
type: integer
description: The day of the month to start from. Defaults to the 1st of the month if not specified.
minimum: 1
maximum: 31
default: 1
month:
type: integer
description: >-
The month to start from. 1 is January and 12 is December. Defaults to January if not
specified.
minimum: 1
maximum: 12
default: 1
required:
- type
velocity-limit-filters:
title: Velocity Limits Filters
type: object
properties:
include_mccs:
anyOf:
- title: Null (include all MCCs)
type: 'null'
description: Include all MCCs into the velocity computation.
- title: List of MCCs
type: array
minItems: 1
items:
type: string
pattern: ^[0-9]{4}$
example: '5542'
description: >-
Merchant Category Codes to include in the velocity calculation. Transactions not matching this
MCC will not be included in the calculated velocity.
exclude_mccs:
anyOf:
- title: Null (do not exclude any MCCs)
type: 'null'
description: Do not exclude any MCCs from the velocity computation.
- title: List of MCCs
type: array
minItems: 1
items:
type: string
pattern: ^[0-9]{4}$
example: '5542'
description: >-
Merchant Category Codes to exclude from the velocity calculation. Transactions matching this
MCC will be excluded from the calculated velocity.
include_countries:
anyOf:
- title: Null (include all countries)
type: 'null'
description: Include all countries into the velocity computation.
- title: List of Country Codes
type: array
minItems: 1
items:
type: string
pattern: ^[A-Z]{3}$
example: USD
description: >-
ISO-3166-1 alpha-3 Country Codes to include in the velocity calculation. Transactions not
matching any of the provided will not be included in the calculated velocity.
exclude_countries:
anyOf:
- title: Null (do not exclude any countries)
type: 'null'
description: Do not exclude any countries from the velocity computation.
- title: List of Country Codes
type: array
minItems: 1
items:
type: string
pattern: ^[A-Z]{3}$
example: USD
description: >-
ISO-3166-1 alpha-3 Country Codes to exclude from the velocity calculation. Transactions
matching any of the provided will be excluded from the calculated velocity.
include_pan_entry_modes:
anyOf:
- title: Null (include all PAN entry modes)
type: 'null'
description: Include all PAN entry modes into the velocity computation.
- title: List of PAN Entry Modes
type: array
minItems: 1
items:
type: string
enum:
- AUTO_ENTRY
- BAR_CODE
- CONTACTLESS
- CREDENTIAL_ON_FILE
- ECOMMERCE
- ERROR_KEYED
- ERROR_MAGNETIC_STRIPE
- ICC
- KEY_ENTERED
- MAGNETIC_STRIPE
- MANUAL
- OCR
- SECURE_CARDLESS
- UNSPECIFIED
- UNKNOWN
description: >-
PAN entry modes to include in the velocity calculation. Transactions not matching any of the
provided will not be included in the calculated velocity.
velocity-limit-parameters:
title: Velocity Limit Parameters
type: object
properties:
scope:
$ref: '#/components/schemas/velocity-scope'
period:
$ref: '#/components/schemas/velocity-limit-period'
filters:
$ref: '#/components/schemas/velocity-limit-filters'
limit_amount:
anyOf:
- title: Null (no amount limit)
type: 'null'
description: No velocity limit on amount is applied to the transaction.
- title: Limit
type: integer
format: int64
minimum: 0
description: >-
The maximum amount of spend velocity allowed in the period in minor units (the smallest unit
of a currency, e.g. cents for USD). Transactions exceeding this limit will be declined.
example: 10000
limit_count:
anyOf:
- title: Null (no limit)
type: 'null'
description: No limit on the number of velocity impacting events is applied.
- title: Limit
type: integer
format: int64
minimum: 0
description: >-
The number of spend velocity impacting transactions may not exceed this limit in the period.
Transactions exceeding this limit will be declined.
A spend velocity impacting transaction is a transaction that has been authorized, and
optionally settled, or a force post (a transaction that settled without prior authorization).
required:
- scope
- period
merchant-lock-parameters:
title: Merchant Lock Inputs
type: object
properties:
merchants:
type: array
items:
type: object
properties:
merchant_id:
type: string
description: >-
Unique alphanumeric identifier for the payment card acceptor (merchant). This attribute
specifies the merchant entity that will be locked or referenced for authorization rules.
descriptor:
type: string
description: >-
Short description of the merchant, often used to provide more human-readable context about
the transaction merchant. This is typically the name or label shown on transaction
summaries.
comment:
type: string
description: A comment or explanation about the merchant, used internally for rule management purposes.
oneOf:
- required:
- merchant_id
- required:
- descriptor
description: >-
Represents a specific merchant lock based on their ID or descriptor. Each merchant object allows
transaction rules to work at a granular level and requires at least one of merchant_id or
descriptor.
description: >-
A list of merchant locks defining specific merchants or groups of merchants (based on descriptors
or IDs) that the lock applies to.
required:
- merchants
authentication-3ds-action:
title: Authentication (3DS) Action
type: string
enum:
- DECLINE
- CHALLENGE
conditional-3ds-action-parameters:
title: Conditional Action (3DS) Parameters
type: object
properties:
action:
description: The action to take if the conditions are met.
$ref: '#/components/schemas/authentication-3ds-action'
conditions:
type: array
items:
type: object
properties:
attribute:
type: string
description: >-
The attribute to target.
The following attributes may be targeted:
* `MCC`: A four-digit number listed in ISO 18245. An MCC is used to classify a business by
the types of goods or services it provides.
* `COUNTRY`: Country of entity of card acceptor. Possible values are: (1) all ISO 3166-1
alpha-3 country codes, (2) QZZ for Kosovo, and (3) ANT for Netherlands Antilles.
* `CURRENCY`: 3-character alphabetic ISO 4217 code for the merchant currency of the
transaction.
* `MERCHANT_ID`: Unique alphanumeric identifier for the payment card acceptor (merchant).
* `DESCRIPTOR`: Short description of card acceptor.
* `TRANSACTION_AMOUNT`: The base transaction amount (in cents) plus the acquirer fee field
in the settlement/cardholder billing currency. This is the amount the issuer should
authorize against unless the issuer is paying the acquirer fee on behalf of the cardholder.
* `RISK_SCORE`: Mastercard only: Assessment by the network of the authentication risk level,
with a higher value indicating a higher amount of risk.
* `MESSAGE_CATEGORY`: The category of the authentication being processed.
* `ADDRESS_MATCH`: Lithic's evaluation result comparing transaction's address data with the
cardholder KYC data if it exists. Valid values are `MATCH`, `MATCH_ADDRESS_ONLY`,
`MATCH_ZIP_ONLY`,`MISMATCH`,`NOT_PRESENT`.
enum:
- MCC
- COUNTRY
- CURRENCY
- MERCHANT_ID
- DESCRIPTOR
- TRANSACTION_AMOUNT
- RISK_SCORE
- MESSAGE_CATEGORY
- ADDRESS_MATCH
operation:
$ref: '#/components/schemas/conditional-operation'
value:
$ref: '#/components/schemas/conditional-value'
required:
- attribute
- operation
- value
required:
- action
- conditions
authorization-action:
title: Authorization Action
type: string
enum:
- DECLINE
- CHALLENGE
conditional-authorization-action-parameters:
title: Conditional Action (Authorization) Parameters
type: object
properties:
action:
description: The action to take if the conditions are met.
$ref: '#/components/schemas/authorization-action'
conditions:
type: array
items:
type: object
properties:
attribute:
type: string
description: >-
The attribute to target.
The following attributes may be targeted:
* `MCC`: A four-digit number listed in ISO 18245. An MCC is used to classify a business by
the types of goods or services it provides.
* `COUNTRY`: Country of entity of card acceptor. Possible values are: (1) all ISO 3166-1
alpha-3 country codes, (2) QZZ for Kosovo, and (3) ANT for Netherlands Antilles.
* `CURRENCY`: 3-character alphabetic ISO 4217 code for the merchant currency of the
transaction.
* `MERCHANT_ID`: Unique alphanumeric identifier for the payment card acceptor (merchant).
* `DESCRIPTOR`: Short description of card acceptor.
* `LIABILITY_SHIFT`: Indicates whether chargeback liability shift to the issuer applies to
the transaction. Valid values are `NONE`, `3DS_AUTHENTICATED`, or `TOKEN_AUTHENTICATED`.
* `PAN_ENTRY_MODE`: The method by which the cardholder's primary account number (PAN) was
entered. Valid values are `AUTO_ENTRY`, `BAR_CODE`, `CONTACTLESS`, `ECOMMERCE`,
`ERROR_KEYED`, `ERROR_MAGNETIC_STRIPE`, `ICC`, `KEY_ENTERED`, `MAGNETIC_STRIPE`, `MANUAL`,
`OCR`, `SECURE_CARDLESS`, `UNSPECIFIED`, `UNKNOWN`, `CREDENTIAL_ON_FILE`, or `ECOMMERCE`.
* `TRANSACTION_AMOUNT`: The base transaction amount (in cents) plus the acquirer fee field
in the settlement/cardholder billing currency. This is the amount the issuer should
authorize against unless the issuer is paying the acquirer fee on behalf of the cardholder.
* `CASH_AMOUNT`: The cash amount of the transaction in minor units (cents). This represents
the amount of cash being withdrawn or advanced.
* `RISK_SCORE`: Network-provided score assessing risk level associated with a given
authorization. Scores are on a range of 0-999, with 0 representing the lowest risk and 999
representing the highest risk. For Visa transactions, where the raw score has a range of
0-99, Lithic will normalize the score by multiplying the raw score by 10x.
* `CARD_TRANSACTION_COUNT_15M`: The number of transactions on the card in the trailing 15
minutes before the authorization.
* `CARD_TRANSACTION_COUNT_1H`: The number of transactions on the card in the trailing hour
up and until the authorization.
* `CARD_TRANSACTION_COUNT_24H`: The number of transactions on the card in the trailing 24
hours up and until the authorization.
* `CARD_STATE`: The current state of the card associated with the transaction. Valid values
are `CLOSED`, `OPEN`, `PAUSED`, `PENDING_ACTIVATION`, `PENDING_FULFILLMENT`.
* `PIN_ENTERED`: Indicates whether a PIN was entered during the transaction. Valid values
are `TRUE`, `FALSE`.
* `PIN_STATUS`: The current state of card's PIN. Valid values are `NOT_SET`, `OK`,
`BLOCKED`.
* `WALLET_TYPE`: For transactions using a digital wallet token, indicates the source of the
token. Valid values are `APPLE_PAY`, `GOOGLE_PAY`, `SAMSUNG_PAY`, `MASTERPASS`, `MERCHANT`,
`OTHER`, `NONE`.
* `TRANSACTION_INITIATOR`: The entity that initiated the transaction indicates the source of
the token. Valid values are `CARDHOLDER`, `MERCHANT`, `UNKNOWN`.
* `ADDRESS_MATCH`: Lithic's evaluation result comparing transaction's address data with the
cardholder KYC data if it exists. Valid values are `MATCH`, `MATCH_ADDRESS_ONLY`,
`MATCH_ZIP_ONLY`,`MISMATCH`,`NOT_PRESENT`.
* `SERVICE_LOCATION_STATE`: The state/province code (ISO 3166-2) where the cardholder
received the service, e.g. "NY". When a service location is present in the network data, the
service location state is used. Otherwise, falls back to the card acceptor state.
* `SERVICE_LOCATION_POSTAL_CODE`: The postal code where the cardholder received the service,
e.g. "10001". When a service location is present in the network data, the service location
postal code is used. Otherwise, falls back to the card acceptor postal code.
* `CARD_AGE`: The age of the card in seconds at the time of the authorization.
* `ACCOUNT_AGE`: The age of the account holder's account in seconds at the time of the
authorization.
enum:
- MCC
- COUNTRY
- CURRENCY
- MERCHANT_ID
- DESCRIPTOR
- LIABILITY_SHIFT
- PAN_ENTRY_MODE
- TRANSACTION_AMOUNT
- CASH_AMOUNT
- RISK_SCORE
- CARD_TRANSACTION_COUNT_15M
- CARD_TRANSACTION_COUNT_1H
- CARD_TRANSACTION_COUNT_24H
- CARD_STATE
- PIN_ENTERED
- PIN_STATUS
- WALLET_TYPE
- TRANSACTION_INITIATOR
- ADDRESS_MATCH
- SERVICE_LOCATION_STATE
- SERVICE_LOCATION_POSTAL_CODE
- CARD_AGE
- ACCOUNT_AGE
operation:
$ref: '#/components/schemas/conditional-operation'
value:
$ref: '#/components/schemas/conditional-value'
required:
- attribute
- operation
- value
required:
- action
- conditions
ach-action:
title: ACH Action
oneOf:
- title: Approve Action (ACH)
type: object
properties:
type:
type: string
enum:
- APPROVE
description: Approve the ACH transaction
required:
- type
- title: Return Action
type: object
properties:
type:
type: string
enum:
- RETURN
description: Return the ACH transaction
code:
type: string
description: >-
NACHA return code to use when returning the transaction. Note that the list of available
return codes is subject to an allowlist configured at the program level
enum:
- R01
- R02
- R03
- R04
- R05
- R06
- R07
- R08
- R09
- R10
- R11
- R12
- R13
- R14
- R15
- R16
- R17
- R18
- R19
- R20
- R21
- R22
- R23
- R24
- R25
- R26
- R27
- R28
- R29
- R30
- R31
- R32
- R33
- R34
- R35
- R36
- R37
- R38
- R39
- R40
- R41
- R42
- R43
- R44
- R45
- R46
- R47
- R50
- R51
- R52
- R53
- R61
- R62
- R67
- R68
- R69
- R70
- R71
- R72
- R73
- R74
- R75
- R76
- R77
- R80
- R81
- R82
- R83
- R84
- R85
required:
- type
- code
conditional-ach-action-parameters:
title: Conditional Action (ACH) Parameters
type: object
properties:
action:
description: The action to take if the conditions are met.
$ref: '#/components/schemas/ach-action'
conditions:
type: array
items:
type: object
properties:
attribute:
type: string
description: >-
The attribute to target.
The following attributes may be targeted:
* `COMPANY_NAME`: The name of the company initiating the ACH transaction.
* `COMPANY_ID`: The company ID (also known as Standard Entry Class (SEC) Company ID) of the
entity initiating the ACH transaction.
* `TIMESTAMP`: The timestamp of the ACH transaction in ISO 8601 format.
* `TRANSACTION_AMOUNT`: The amount of the ACH transaction in minor units (cents).
* `SEC_CODE`: Standard Entry Class code indicating the type of ACH transaction. Valid values
include PPD (Prearranged Payment and Deposit Entry), CCD (Corporate Credit or Debit Entry),
WEB (Internet-Initiated/Mobile Entry), TEL (Telephone-Initiated Entry), and others.
* `MEMO`: Optional memo or description field included with the ACH transaction.
enum:
- COMPANY_NAME
- COMPANY_ID
- TIMESTAMP
- TRANSACTION_AMOUNT
- SEC_CODE
- MEMO
operation:
$ref: '#/components/schemas/conditional-operation'
value:
$ref: '#/components/schemas/conditional-value'
required:
- attribute
- operation
- value
required:
- action
- conditions
tokenization-action:
title: Tokenization Action
oneOf:
- title: Decline Action (Tokenization)
type: object
properties:
type:
type: string
enum:
- DECLINE
description: Decline the tokenization request
reason:
type: string
description: Reason code for declining the tokenization request
enum:
- ACCOUNT_SCORE_1
- DEVICE_SCORE_1
- ALL_WALLET_DECLINE_REASONS_PRESENT
- WALLET_RECOMMENDED_DECISION_RED
- CVC_MISMATCH
- CARD_EXPIRY_MONTH_MISMATCH
- CARD_EXPIRY_YEAR_MISMATCH
- CARD_INVALID_STATE
- CUSTOMER_RED_PATH
- INVALID_CUSTOMER_RESPONSE
- NETWORK_FAILURE
- GENERIC_DECLINE
- DIGITAL_CARD_ART_REQUIRED
required:
- type
- title: Require TFA Action
type: object
properties:
type:
type: string
enum:
- REQUIRE_TFA
description: Require two-factor authentication for the tokenization request
reason:
type: string
description: Reason code for requiring two-factor authentication
enum:
- WALLET_RECOMMENDED_TFA
- SUSPICIOUS_ACTIVITY
- DEVICE_RECENTLY_LOST
- TOO_MANY_RECENT_ATTEMPTS
- TOO_MANY_RECENT_TOKENS
- TOO_MANY_DIFFERENT_CARDHOLDERS
- OUTSIDE_HOME_TERRITORY
- HAS_SUSPENDED_TOKENS
- HIGH_RISK
- ACCOUNT_SCORE_LOW
- DEVICE_SCORE_LOW
- CARD_STATE_TFA
- HARDCODED_TFA
- CUSTOMER_RULE_TFA
- DEVICE_HOST_CARD_EMULATION
required:
- type
conditional-tokenization-action-parameters:
title: Conditional Action (Tokenization) Parameters
type: object
properties:
action:
description: The action to take if the conditions are met.
$ref: '#/components/schemas/tokenization-action'
conditions:
type: array
items:
type: object
properties:
attribute:
type: string
description: >-
The attribute to target.
The following attributes may be targeted:
* `TIMESTAMP`: The timestamp of the tokenization request in ISO 8601 format.
* `TOKENIZATION_CHANNEL`: The channel through which the tokenization request was initiated.
Valid values are `DIGITAL_WALLET`, `MERCHANT`.
* `TOKENIZATION_SOURCE`: The source of the tokenization request. Valid values are
`ACCOUNT_ON_FILE`, `MANUAL_PROVISION`, `PUSH_PROVISION`, `CHIP_DIP`, `CONTACTLESS_TAP`,
`TOKEN`, `UNKNOWN`.
* `TOKEN_REQUESTOR_NAME`: The name of the entity requesting the token. Valid values are
`ALT_ID`, `AMAZON_ONE`, `AMERICAN_EXPRESS_TOKEN_SERVICE`, `ANDROID_PAY`, `APPLE_PAY`,
`FACEBOOK`, `FITBIT_PAY`, `GARMIN_PAY`, `GOOGLE_PAY`, `GOOGLE_VCN`, `ISSUER_HCE`,
`MICROSOFT_PAY`, `NETFLIX`, `SAMSUNG_PAY`, `UNKNOWN`, `VISA_CHECKOUT`.
* `WALLET_ACCOUNT_SCORE`: Risk score for the account in the digital wallet. Numeric value
where lower numbers indicate higher risk (e.g., 1 = high risk, 2 = medium risk).
* `WALLET_DEVICE_SCORE`: Risk score for the device in the digital wallet. Numeric value
where lower numbers indicate higher risk (e.g., 1 = high risk, 2 = medium risk).
* `WALLET_RECOMMENDED_DECISION`: The decision recommended by the digital wallet provider.
Valid values include APPROVE, DECLINE, REQUIRE_ADDITIONAL_AUTHENTICATION.
* `WALLET_RECOMMENDATION_REASONS`: List of reasons provided by the digital wallet provider
for the recommended decision. Valid values are:
- Common: `ACCOUNT_CARD_TOO_NEW`, `ACCOUNT_RECENTLY_CHANGED`, `ACCOUNT_TOO_NEW`, `ACCOUNT_TOO_NEW_SINCE_LAUNCH`, `DEVICE_RECENTLY_LOST`, `HAS_SUSPENDED_TOKENS`, `HIGH_RISK`, `INACTIVE_ACCOUNT`, `LOW_ACCOUNT_SCORE`, `LOW_DEVICE_SCORE`, `OUTSIDE_HOME_TERRITORY`, `SUSPICIOUS_ACTIVITY`, `TOO_MANY_DIFFERENT_CARDHOLDERS`, `TOO_MANY_RECENT_ATTEMPTS`, `TOO_MANY_RECENT_TOKENS`, `UNABLE_TO_ASSESS`
- Visa only: `ACCOUNT_DATA_RECENTLY_CHANGED`, `ACCOUNT_PAN_PAIRING_TOO_NEW`, `LOW_TRANSACTION_VOLUME`, `USER_ACCOUNT_DEVICE_TOO_NEW`, `WALLET_ACCOUNT_TOO_NEW`
- Amex only: `DEVICE_USING_VPN_PROXY`, `EXCESSIVE_BILLING_NAME_ATTEMPTS_MODERATE`, `EXCESSIVE_BILLING_NAME_ATTEMPTS_SEVERE`, `EXCESSIVE_CARD_PROVISION_ATTEMPTS_MODERATE`, `EXCESSIVE_CARD_PROVISION_ATTEMPTS_SEVERE`, `EXCESSIVE_WALLET_RESETS`, `EXCESSIVE_ZIP_ATTEMPTS_MODERATE`, `EXCESSIVE_ZIP_ATTEMPTS_SEVERE`, `USER_ID_CARD_PAIRING_TOO_NEW`, `USER_ID_DEVICE_ID_PAIRING_TOO_NEW`, `USER_ID_OS_ID_PAIRING_TOO_NEW`, `USER_ID_TOO_NEW`
* `TOKEN_REQUESTOR_ID`: Unique identifier for the entity requesting the token.
* `WALLET_TOKEN_STATUS`: The current status of the wallet token.
* `CARD_STATE`: The state of the card being tokenized. Valid values are `CLOSED`, `OPEN`,
`PAUSED`, `PENDING_ACTIVATION`, `PENDING_FULFILLMENT`.
enum:
- TIMESTAMP
- TOKENIZATION_CHANNEL
- TOKENIZATION_SOURCE
- TOKEN_REQUESTOR_NAME
- WALLET_ACCOUNT_SCORE
- WALLET_DEVICE_SCORE
- WALLET_RECOMMENDED_DECISION
- WALLET_RECOMMENDATION_REASONS
- TOKEN_REQUESTOR_ID
- WALLET_TOKEN_STATUS
- CARD_STATE
operation:
$ref: '#/components/schemas/conditional-operation'
value:
$ref: '#/components/schemas/conditional-value'
required:
- attribute
- operation
- value
required:
- action
- conditions
rule-feature:
title: Rule Feature
description: >-
A feature made available to the rule. The `name` field is the variable name used in the rule function
signature. The `type` field determines which data the feature provides to the rule at evaluation time.
- `AUTHORIZATION`: The authorization request being evaluated. Only available for AUTHORIZATION event
stream rules.
- `AUTHENTICATION`: The 3DS authentication request being evaluated. Only available for
THREE_DS_AUTHENTICATION event stream rules.
- `TOKENIZATION`: The tokenization request being evaluated. Only available for TOKENIZATION event
stream rules.
- `ACH_RECEIPT`: The ACH receipt being evaluated. Only available for ACH_CREDIT_RECEIPT and
ACH_DEBIT_RECEIPT event stream rules.
- `CARD`: The card associated with the event. Available for AUTHORIZATION and THREE_DS_AUTHENTICATION
event stream rules.
- `ACCOUNT_HOLDER`: The account holder associated with the card. Available for AUTHORIZATION and
THREE_DS_AUTHENTICATION event stream rules.
- `IP_METADATA`: IP address metadata for the request. Available for THREE_DS_AUTHENTICATION event
stream rules.
- `SPEND_VELOCITY`: Spend velocity data for the card or account. Requires `scope`, `period`, and
optionally `filters` to configure the velocity calculation. Available for AUTHORIZATION event stream
rules.
allOf:
- type: object
properties:
name:
type: string
description: The variable name for this feature in the rule function signature
required:
- name
- oneOf:
- title: Authorization Feature
type: object
properties:
type:
type: string
const: AUTHORIZATION
required:
- type
- title: Authentication Feature
type: object
properties:
type:
type: string
const: AUTHENTICATION
required:
- type
- title: Tokenization Feature
type: object
properties:
type:
type: string
const: TOKENIZATION
required:
- type
- title: ACH Receipt Feature
type: object
properties:
type:
type: string
const: ACH_RECEIPT
required:
- type
- title: Card Feature
type: object
properties:
type:
type: string
const: CARD
required:
- type
- title: Account Holder Feature
type: object
properties:
type:
type: string
const: ACCOUNT_HOLDER
required:
- type
- title: IP Metadata Feature
type: object
properties:
type:
type: string
const: IP_METADATA
required:
- type
- title: Spend Velocity Feature
type: object
properties:
type:
type: string
const: SPEND_VELOCITY
scope:
$ref: '#/components/schemas/velocity-scope'
period:
$ref: '#/components/schemas/velocity-limit-period'
filters:
$ref: '#/components/schemas/velocity-limit-filters'
required:
- type
- scope
- period
discriminator:
propertyName: type
typescript-code-parameters:
title: TypeScript Code Parameters
description: Parameters for defining a TypeScript code rule
type: object
properties:
features:
type: array
description: Features available to the TypeScript code at evaluation time
items:
$ref: '#/components/schemas/rule-feature'
code:
type: string
description: >-
The TypeScript source code of the rule. Must define a `rule()` function that accepts the declared
features as positional arguments (in the same order as the `features` array) and returns an array
of actions.
required:
- features
- code
auth-rule-parameters:
title: Auth Rule Parameters
description: Parameters for the Auth Rule
anyOf:
- $ref: '#/components/schemas/conditional-block-parameters'
- $ref: '#/components/schemas/velocity-limit-parameters'
- $ref: '#/components/schemas/merchant-lock-parameters'
- $ref: '#/components/schemas/conditional-3ds-action-parameters'
- $ref: '#/components/schemas/conditional-authorization-action-parameters'
- $ref: '#/components/schemas/conditional-ach-action-parameters'
- $ref: '#/components/schemas/conditional-tokenization-action-parameters'
- $ref: '#/components/schemas/typescript-code-parameters'
auth-rule-version-id:
title: Auth Rule Version
type: integer
description: The version of the rule, this is incremented whenever the rule's parameters change.
readOnly: true
current-version:
title: Auth Rule Current Version
anyOf:
- type: 'null'
description: No current version.
- type: object
properties:
parameters:
$ref: '#/components/schemas/auth-rule-parameters'
version:
$ref: '#/components/schemas/auth-rule-version-id'
required:
- parameters
- version
draft-version:
title: Auth Rule Draft Version
anyOf:
- type: 'null'
description: No draft version.
- type: object
properties:
parameters:
$ref: '#/components/schemas/auth-rule-parameters'
version:
$ref: '#/components/schemas/auth-rule-version-id'
state:
type: string
enum:
- PENDING
- SHADOWING
- ERROR
description: >-
The state of the draft version. Most rules are created synchronously and the state is
immediately `SHADOWING`. Rules backed by TypeScript code are compiled asynchronously — the
state starts as `PENDING` and transitions to `SHADOWING` on success or `ERROR` on failure.
- `PENDING`: Compilation of the rule is in progress (TypeScript rules only).
- `SHADOWING`: The draft version is ready and evaluating in shadow mode alongside the current
active version. It can be promoted to the active version.
- `ERROR`: Compilation of the rule failed. Check the `error` field for details.
error:
type:
- string
- 'null'
description: >-
An error message if the draft version failed compilation. Populated when `state` is `ERROR`,
`null` otherwise.
required:
- parameters
- version
- state
- error
auth-rule-name:
title: Auth Rule Name
description: Auth Rule Name
anyOf:
- type: 'null'
- type: string
maxLength: 1024
auth-rule:
title: Auth Rule
type: object
properties:
token:
$ref: '#/components/schemas/auth-rule-token'
state:
$ref: '#/components/schemas/auth-rule-state'
program_level:
$ref: '#/components/schemas/program-level'
card_tokens:
$ref: '#/components/schemas/card-tokens'
excluded_card_tokens:
$ref: '#/components/schemas/excluded-card-tokens'
excluded_account_tokens:
$ref: '#/components/schemas/excluded-account-tokens'
excluded_business_account_tokens:
$ref: '#/components/schemas/excluded-business-account-tokens'
account_tokens:
$ref: '#/components/schemas/account-tokens'
business_account_tokens:
$ref: '#/components/schemas/business-account-tokens'
type:
$ref: '#/components/schemas/auth-rule-type'
current_version:
$ref: '#/components/schemas/current-version'
draft_version:
$ref: '#/components/schemas/draft-version'
name:
$ref: '#/components/schemas/auth-rule-name'
event_stream:
$ref: '#/components/schemas/event-stream'
lithic_managed:
type: boolean
description: >-
Indicates whether this auth rule is managed by Lithic. If true, the rule cannot be modified or
deleted by the user
required:
- token
- state
- program_level
- card_tokens
- account_tokens
- business_account_tokens
- type
- current_version
- draft_version
- name
- event_stream
- lithic_managed
Error:
type: object
properties:
error:
type: string
example: Invalid input
create-auth-rule-request:
title: Auth Rule Parameters
type: object
anyOf:
- title: Account Level Rule
properties:
account_tokens:
$ref: '#/components/schemas/account-tokens'
business_account_tokens:
$ref: '#/components/schemas/business-account-tokens'
type:
$ref: '#/components/schemas/auth-rule-type'
parameters:
$ref: '#/components/schemas/auth-rule-parameters'
name:
$ref: '#/components/schemas/auth-rule-name'
event_stream:
$ref: '#/components/schemas/event-stream'
required:
- type
- parameters
- title: Card Level Rule
properties:
card_tokens:
$ref: '#/components/schemas/card-tokens'
type:
$ref: '#/components/schemas/auth-rule-type'
parameters:
$ref: '#/components/schemas/auth-rule-parameters'
name:
$ref: '#/components/schemas/auth-rule-name'
event_stream:
$ref: '#/components/schemas/event-stream'
required:
- type
- parameters
- card_tokens
- title: Program Level Rule
properties:
program_level:
$ref: '#/components/schemas/program-level'
excluded_card_tokens:
$ref: '#/components/schemas/excluded-card-tokens'
excluded_account_tokens:
$ref: '#/components/schemas/excluded-account-tokens'
excluded_business_account_tokens:
$ref: '#/components/schemas/excluded-business-account-tokens'
type:
$ref: '#/components/schemas/auth-rule-type'
parameters:
$ref: '#/components/schemas/auth-rule-parameters'
name:
$ref: '#/components/schemas/auth-rule-name'
event_stream:
$ref: '#/components/schemas/event-stream'
required:
- type
- parameters
- program_level
patch-auth-rule-request:
title: Auth Rule Patch Request
type: object
properties:
state:
description: >-
The desired state of the Auth Rule.
Note that only deactivating an Auth Rule through this endpoint is supported at this time. If you
need to (re-)activate an Auth Rule the /promote endpoint should be used to promote a draft to the
currently active version.
type: string
const: INACTIVE
name:
$ref: '#/components/schemas/auth-rule-name'
anyOf:
- title: Account Level Rule
type: object
properties:
account_tokens:
$ref: '#/components/schemas/account-tokens'
business_account_tokens:
$ref: '#/components/schemas/business-account-tokens'
- title: Card Level Rule
type: object
properties:
card_tokens:
$ref: '#/components/schemas/card-tokens'
- title: Program Level Rule
type: object
properties:
program_level:
$ref: '#/components/schemas/program-level'
excluded_card_tokens:
$ref: '#/components/schemas/excluded-card-tokens'
excluded_account_tokens:
$ref: '#/components/schemas/excluded-account-tokens'
excluded_business_account_tokens:
$ref: '#/components/schemas/excluded-business-account-tokens'
spend-feature-state:
title: Spend Feature State
type: object
properties:
scope:
$ref: '#/components/schemas/velocity-scope'
period:
$ref: '#/components/schemas/velocity-limit-period'
filters:
$ref: '#/components/schemas/velocity-limit-filters'
value:
type: object
properties:
amount:
type: integer
minimum: 0
description: |-
Amount (in cents) for the given Auth Rule that is used as input for calculating the rule.
For Velocity Limit rules this would be the calculated Velocity.
For Conditional Rules using CARD_TRANSACTION_COUNT_* this will be 0
count:
type: integer
minimum: 0
description: Number of velocity impacting transactions matching the given scope, period and filters
required:
- amount
- count
required:
- scope
- period
- filters
- value
auth-rule-feature-state:
title: Auth Rule Feature State
type: object
properties:
evaluated:
type: string
format: date-time
description: Timestamp at which the Features were evaluated
features:
type: array
items:
oneOf:
- $ref: '#/components/schemas/spend-feature-state'
description: Calculated Features used for evaluation of the provided Auth Rule
required:
- evaluated
- features
auth-rule-version-state:
title: Auth Rule Version State
description: The current state of this version.
type: string
enum:
- ACTIVE
- SHADOW
- INACTIVE
auth-rule-version:
title: Auth Rule Version
type: object
properties:
version:
$ref: '#/components/schemas/auth-rule-version-id'
state:
$ref: '#/components/schemas/auth-rule-version-state'
parameters:
$ref: '#/components/schemas/auth-rule-parameters'
created:
description: Timestamp of when this version was created.
type: string
format: date-time
required:
- version
- state
- parameters
- created
detailed_result:
example: APPROVED
title: Detailed Result
type: string
enum:
- ACCOUNT_DAILY_SPEND_LIMIT_EXCEEDED
- ACCOUNT_DELINQUENT
- ACCOUNT_INACTIVE
- ACCOUNT_LIFETIME_SPEND_LIMIT_EXCEEDED
- ACCOUNT_MONTHLY_SPEND_LIMIT_EXCEEDED
- ACCOUNT_PAUSED
- ACCOUNT_UNDER_REVIEW
- ADDRESS_INCORRECT
- APPROVED
- AUTH_RULE_ALLOWED_COUNTRY
- AUTH_RULE_ALLOWED_MCC
- AUTH_RULE_BLOCKED_COUNTRY
- AUTH_RULE_BLOCKED_MCC
- AUTH_RULE
- CARD_CLOSED
- CARD_CRYPTOGRAM_VALIDATION_FAILURE
- CARD_EXPIRED
- CARD_EXPIRY_DATE_INCORRECT
- CARD_INVALID
- CARD_NOT_ACTIVATED
- CARD_PAUSED
- CARD_PIN_INCORRECT
- CARD_RESTRICTED
- CARD_SECURITY_CODE_INCORRECT
- CARD_SPEND_LIMIT_EXCEEDED
- CONTACT_CARD_ISSUER
- CUSTOMER_ASA_TIMEOUT
- CUSTOM_ASA_RESULT
- DECLINED
- DO_NOT_HONOR
- DRIVER_NUMBER_INVALID
- FORMAT_ERROR
- INSUFFICIENT_FUNDING_SOURCE_BALANCE
- INSUFFICIENT_FUNDS
- LITHIC_SYSTEM_ERROR
- LITHIC_SYSTEM_RATE_LIMIT
- MALFORMED_ASA_RESPONSE
- MERCHANT_INVALID
- MERCHANT_LOCKED_CARD_ATTEMPTED_ELSEWHERE
- MERCHANT_NOT_PERMITTED
- OVER_REVERSAL_ATTEMPTED
- PIN_BLOCKED
- PROGRAM_CARD_SPEND_LIMIT_EXCEEDED
- PROGRAM_SUSPENDED
- PROGRAM_USAGE_RESTRICTION
- REVERSAL_UNMATCHED
- SECURITY_VIOLATION
- SINGLE_USE_CARD_REATTEMPTED
- SUSPECTED_FRAUD
- TRANSACTION_INVALID
- TRANSACTION_NOT_PERMITTED_TO_ACQUIRER_OR_TERMINAL
- TRANSACTION_NOT_PERMITTED_TO_ISSUER_OR_CARDHOLDER
- TRANSACTION_PREVIOUSLY_COMPLETED
- UNAUTHORIZED_MERCHANT
- VEHICLE_NUMBER_INVALID
- CARDHOLDER_CHALLENGED
- CARDHOLDER_CHALLENGE_FAILED
result-authorization-action:
title: Authorization Action (Result)
oneOf:
- title: Decline Action (Authorization)
type: object
properties:
type:
type: string
enum:
- DECLINE
code:
$ref: '#/components/schemas/detailed_result'
description: The detailed result code explaining the specific reason for the decline
required:
- type
- code
- title: Challenge Action (Authorization)
type: object
properties:
type:
type: string
enum:
- CHALLENGE
required:
- type
result-authentication-3ds-action:
title: Authentication (3DS) Action (Result)
type: object
properties:
type:
$ref: '#/components/schemas/authentication-3ds-action'
required:
- type
report-stats:
title: Auth Rule Report Statistics
type: object
properties:
action_counts:
type: object
description: >-
A mapping of action types to the number of times that action was returned by this rule during the
relevant period. Actions are the possible outcomes of a rule evaluation, such as DECLINE,
CHALLENGE, REQUIRE_TFA, etc. In case rule didn't trigger any action, it's counted under NO_ACTION
key.
additionalProperties:
type: integer
approved:
type: integer
deprecated: true
description: >-
The total number of historical transactions approved by this rule during the relevant period, or
the number of transactions that would have been approved if the rule was evaluated in shadow mode.
declined:
type: integer
deprecated: true
description: >-
The total number of historical transactions declined by this rule during the relevant period, or
the number of transactions that would have been declined if the rule was evaluated in shadow mode.
challenged:
type: integer
deprecated: true
description: >-
The total number of historical transactions challenged by this rule during the relevant period, or
the number of transactions that would have been challenged if the rule was evaluated in shadow
mode. Currently applicable only for 3DS Auth Rules.
examples:
type: array
description: Example events and their outcomes.
items:
type: object
properties:
event_token:
type: string
format: uuid
description: The event token.
timestamp:
type: string
format: date-time
description: The timestamp of the event.
actions:
type: array
description: The actions taken by the rule for this event.
items:
oneOf:
- $ref: '#/components/schemas/result-authorization-action'
- $ref: '#/components/schemas/result-authentication-3ds-action'
- $ref: '#/components/schemas/tokenization-action'
- $ref: '#/components/schemas/ach-action'
approved:
type: boolean
deprecated: true
description: Whether the rule would have approved the request.
decision:
type: string
deprecated: true
enum:
- APPROVED
- DECLINED
- CHALLENGED
description: The decision made by the rule for this event.
report-stats-v2:
title: Auth Rule Version Report Statistics
type: object
properties:
version:
description: The rule version number.
type: integer
state:
description: The evaluation mode of this version during the reported period.
$ref: '#/components/schemas/auth-rule-version-state'
action_counts:
type: object
description: >-
A mapping of action types to the number of times that action was returned by this version during
the relevant period. Actions are the possible outcomes of a rule evaluation, such as DECLINE,
CHALLENGE, REQUIRE_TFA, etc. In case rule didn't trigger any action, it's counted under NO_ACTION
key.
additionalProperties:
type: integer
examples:
type: array
description: Example events and their outcomes for this version.
items:
type: object
properties:
event_token:
type: string
format: uuid
description: The event token.
timestamp:
type: string
format: date-time
description: The timestamp of the event.
actions:
type: array
description: The actions taken by this version for this event.
items:
oneOf:
- $ref: '#/components/schemas/result-authorization-action'
- $ref: '#/components/schemas/result-authentication-3ds-action'
- $ref: '#/components/schemas/tokenization-action'
- $ref: '#/components/schemas/ach-action'
required:
- event_token
- timestamp
- actions
required:
- version
- state
- action_counts
- examples
performance-report-v2:
title: Auth Rule Performance Report V2
type: object
properties:
auth_rule_token:
$ref: '#/components/schemas/auth-rule-token'
begin:
description: The start date (UTC) of the report.
type: string
format: date
end:
description: The end date (UTC) of the report.
type: string
format: date
daily_statistics:
description: Daily evaluation statistics for the Auth Rule.
type: array
items:
type: object
properties:
date:
description: The date (UTC) for which the statistics are reported.
type: string
format: date
current_version_statistics:
description: Detailed statistics for the current version of the rule.
type:
- object
- 'null'
$ref: '#/components/schemas/report-stats'
draft_version_statistics:
description: Detailed statistics for the draft version of the rule.
type:
- object
- 'null'
$ref: '#/components/schemas/report-stats'
versions:
description: Statistics for each version of the rule that was evaluated during the reported day.
type: array
items:
$ref: '#/components/schemas/report-stats-v2'
required:
- date
- current_version_statistics
- draft_version_statistics
- versions
required:
- auth_rule_token
- begin
- end
- daily_statistics
backtest-token:
title: Auth Rule Backtest Token
description: Auth Rule Backtest Token
type: string
format: uuid
backtest-simulation-parameters:
title: Backtest Simulation Parameters
type: object
properties:
start:
type: string
format: date-time
description: The start time of the simulation
end:
type: string
format: date-time
description: The end time of the simulation
required:
- start
- end
backtest-status:
title: Backtest Status
description: Status of a backtest job
type: string
enum:
- PENDING
- RUNNING
- SUCCESS
- FAILURE
backtest-list-item:
title: Backtest List Item
type: object
properties:
backtest_token:
$ref: '#/components/schemas/backtest-token'
simulation_parameters:
$ref: '#/components/schemas/backtest-simulation-parameters'
status:
$ref: '#/components/schemas/backtest-status'
created:
type: string
format: date-time
description: Timestamp of when the backtest was created
required:
- backtest_token
- simulation_parameters
- status
- created
backtest-request:
title: Backtest Request Parameters
type: object
properties:
start:
type: string
format: date-time
description: The start time of the backtest.
end:
type: string
format: date-time
description: The end time of the backtest.
backtest-stats:
title: Auth Rule Backtest Statistics
type: object
properties:
version:
$ref: '#/components/schemas/auth-rule-version-id'
approved:
type: integer
description: >-
The total number of historical transactions approved by this rule during the backtest period, or
the number of transactions that would have been approved if the rule was evaluated in shadow mode.
declined:
type: integer
description: >-
The total number of historical transactions declined by this rule during the backtest period, or
the number of transactions that would have been declined if the rule was evaluated in shadow mode.
challenged:
type: integer
description: >-
The total number of historical transactions challenged by this rule during the backtest period, or
the number of transactions that would have been challenged if the rule was evaluated in shadow
mode. Currently applicable only for 3DS Auth Rules.
examples:
type: array
description: Example events and their outcomes.
items:
type: object
properties:
event_token:
type: string
format: uuid
description: The event token.
timestamp:
type: string
format: date-time
description: The timestamp of the event.
decision:
type: string
enum:
- APPROVED
- DECLINED
- CHALLENGED
description: The decision made by the rule for this event.
backtest-results:
title: Auth Rules Backtest Results
type: object
properties:
backtest_token:
$ref: '#/components/schemas/backtest-token'
simulation_parameters:
$ref: '#/components/schemas/backtest-simulation-parameters'
results:
type: object
properties:
current_version:
anyOf:
- type: 'null'
description: No results available for the current version.
- $ref: '#/components/schemas/backtest-stats'
draft_version:
anyOf:
- type: 'null'
description: No results available for the draft version.
- $ref: '#/components/schemas/backtest-stats'
required:
- backtest_token
- simulation_parameters
- results
action_explanation:
type: object
properties:
explanation:
type: string
description: Optional explanation for why this action was taken
auth-rule-result:
title: Auth Rule Result
description: Result of an Auth Rule evaluation
type: object
properties:
token:
type: string
format: uuid
description: Globally unique identifier for the evaluation
auth_rule_token:
type: string
format: uuid
description: The Auth Rule token
event_token:
type: string
format: uuid
description: Token of the event that triggered the evaluation
evaluation_time:
type: string
format: date-time
description: Timestamp of the rule evaluation
rule_version:
type: integer
description: Version of the rule that was evaluated
mode:
$ref: '#/components/schemas/auth-rule-state'
oneOf:
- title: Authorization Result
properties:
event_stream:
const: AUTHORIZATION
description: The event stream during which the rule was evaluated
actions:
type: array
description: Actions returned by the rule evaluation
items:
allOf:
- $ref: '#/components/schemas/result-authorization-action'
- $ref: '#/components/schemas/action_explanation'
required:
- token
- auth_rule_token
- event_token
- evaluation_time
- rule_version
- mode
- actions
- event_stream
- title: Authentication (3DS) Result
properties:
event_stream:
const: THREE_DS_AUTHENTICATION
description: The event stream during which the rule was evaluated
actions:
type: array
description: Actions returned by the rule evaluation
items:
allOf:
- $ref: '#/components/schemas/result-authentication-3ds-action'
- $ref: '#/components/schemas/action_explanation'
required:
- token
- auth_rule_token
- event_token
- evaluation_time
- rule_version
- mode
- actions
- event_stream
- title: Tokenization Result
properties:
event_stream:
const: TOKENIZATION
description: The event stream during which the rule was evaluated
actions:
type: array
description: Actions returned by the rule evaluation
items:
allOf:
- $ref: '#/components/schemas/tokenization-action'
- $ref: '#/components/schemas/action_explanation'
required:
- token
- auth_rule_token
- event_token
- evaluation_time
- rule_version
- mode
- actions
- event_stream
- title: ACH Result
properties:
event_stream:
type: string
enum:
- ACH_CREDIT_RECEIPT
- ACH_DEBIT_RECEIPT
description: The event stream during which the rule was evaluated
actions:
type: array
description: Actions returned by the rule evaluation
items:
allOf:
- $ref: '#/components/schemas/ach-action'
- $ref: '#/components/schemas/action_explanation'
required:
- token
- auth_rule_token
- event_token
- evaluation_time
- rule_version
- mode
- actions
- event_stream
$defs:
action_explanation:
type: object
properties:
explanation:
type: string
description: Optional explanation for why this action was taken
balance:
description: Balance
properties:
available_amount:
description: Funds available for spend in the currency's smallest unit (e.g., cents for USD)
type: integer
created:
description: Date and time for when the balance was first created.
format: date-time
type: string
currency:
description: 3-character alphabetic ISO 4217 code for the local currency of the balance.
type: string
financial_account_token:
description: Globally unique identifier for the financial account that holds this balance.
example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
format: uuid
type: string
financial_account_type:
description: Type of financial account.
enum:
- ISSUING
- OPERATING
- RESERVE
- SECURITY
type: string
last_transaction_event_token:
description: Globally unique identifier for the last financial transaction event that impacted this balance.
format: uuid
type: string
last_transaction_token:
description: Globally unique identifier for the last financial transaction that impacted this balance.
format: uuid
type: string
pending_amount:
description: >-
Funds not available for spend due to card authorizations or pending ACH release. Shown in the
currency's smallest unit (e.g., cents for USD).
type: integer
total_amount:
description: The sum of available and pending balance in the currency's smallest unit (e.g., cents for USD).
type: integer
updated:
description: Date and time for when the balance was last updated.
format: date-time
type: string
required:
- available_amount
- created
- currency
- financial_account_token
- financial_account_type
- last_transaction_event_token
- last_transaction_token
- pending_amount
- total_amount
- updated
type: object
CardProgram:
properties:
account_level_management_enabled:
description: >-
Whether the card program is participating in Account Level Management. Currently applicable to
Visa card programs only.
type: boolean
cardholder_currency:
description: 3-character alphabetic ISO 4217 code for the currency of the cardholder.
example: USD
type: string
created:
description: Timestamp of when the card program was created.
format: date-time
type: string
name:
description: The name of the card program.
example: My Prepaid Program
type: string
pan_range_end:
description: The first digits of the card number that this card program ends with.
example: '52304803'
type: string
pan_range_start:
description: The first digits of the card number that this card program starts with.
example: '52304803'
type: string
settlement_currencies:
description: >-
List of 3-character alphabetic ISO 4217 codes for the currencies that the card program supports
for settlement.
example:
- USD
- CAD
items:
type: string
type: array
token:
description: Globally unique identifier.
format: uuid
type: string
required:
- account_level_management_enabled
- created
- name
- pan_range_end
- pan_range_start
- token
type: object
funding_account:
description: Funding account for a card
type: object
properties:
account_name:
description: Account name identifying the funding source. This may be `null`.
type: string
created:
description: >-
An RFC 3339 string representing when this funding source was added to the Lithic account. This may
be `null`. UTC time zone.
format: date-time
type: string
last_four:
description: >-
The last 4 digits of the account (e.g. bank account, debit card) associated with this
FundingAccount. This may be null.
maxLength: 4
minLength: 4
type: string
nickname:
description: The nickname given to the `FundingAccount` or `null` if it has no nickname.
maxLength: 255
minLength: 1
type: string
state:
description: >-
State of funding source. Funding source states: * `ENABLED` - The funding account is available to
use for card creation and transactions. * `PENDING` - The funding account is still being verified
e.g. bank micro-deposits verification. * `DELETED` - The founding account has been deleted.
enum:
- DELETED
- ENABLED
- PENDING
type: string
token:
description: A globally unique identifier for this FundingAccount.
format: uuid
type: string
type:
description: >-
Types of funding source: * `DEPOSITORY_CHECKING` - Bank checking account. * `DEPOSITORY_SAVINGS` -
Bank savings account.
enum:
- DEPOSITORY_CHECKING
- DEPOSITORY_SAVINGS
type: string
required:
- created
- last_four
- state
- token
- type
spend_limit_duration:
description: >-
Spend limit duration values:
* `ANNUALLY` - Card will authorize transactions up to spend limit for the trailing year.
* `FOREVER` - Card will authorize only up to spend limit for the entire lifetime of the card.
* `MONTHLY` - Card will authorize transactions up to spend limit for the trailing month. To support
recurring monthly payments, which can occur on different day every month, the time window we consider
for monthly velocity starts 6 days after the current calendar date one month prior.
* `TRANSACTION` - Card will authorize multiple transactions if each individual transaction is under
the spend limit.
type: string
enum:
- ANNUALLY
- FOREVER
- MONTHLY
- TRANSACTION
non_pci_card_response:
description: Card details without PCI information
type: object
properties:
account_token:
description: Globally unique identifier for the account to which the card belongs.
example: f3f4918c-dee9-464d-a819-4aa42901d624
type: string
auth_rule_tokens:
description: >-
List of identifiers for the Auth Rule(s) that are applied on the card. This field is deprecated
and will no longer be populated in the `Card` object. The key will be removed from the schema in a
future release. Use the `/auth_rules` endpoints to fetch Auth Rule information instead.
items:
type: string
type: array
deprecated: true
card_program_token:
description: Globally unique identifier for the card program on which the card exists.
example: 5e9483eb-8103-4e16-9794-2106111b2eca
type: string
bulk_order_token:
description: >-
Globally unique identifier for the bulk order associated with this card. Only applicable to
physical cards that are part of a bulk shipment
example: 5e9483eb-8103-4e16-9794-2106111b2eca
format: uuid
type:
- string
- 'null'
replacement_for:
description: >-
If the card is a replacement for another card, the globally unique identifier for the card that
was replaced.
example: 5e9483eb-8103-4e16-9794-2106111b2eca
type:
- string
- 'null'
cardholder_currency:
description: 3-character alphabetic ISO 4217 code for the currency of the cardholder.
example: USD
type: string
created:
description: An RFC 3339 timestamp for when the card was created. UTC time zone.
example: '2021-06-28T22:53:15Z'
format: date-time
type: string
digital_card_art_token:
description: >-
Specifies the digital card art to be displayed in the user's digital wallet after tokenization.
This artwork must be approved by Mastercard and configured by Lithic to use.
example: 5e9483eb-8103-4e16-9794-2106111b2eca
type: string
exp_month:
description: Two digit (MM) expiry month.
example: '06'
maxLength: 2
minLength: 2
type: string
exp_year:
description: Four digit (yyyy) expiry year.
example: '2027'
maxLength: 4
minLength: 4
type: string
funding:
description: 'Deprecated: Funding account for the card.'
$ref: '#/components/schemas/funding_account'
hostname:
description: Hostname of card's locked merchant (will be empty if not applicable).
type: string
last_four:
description: Last four digits of the card number.
maxLength: 4
minLength: 4
type: string
memo:
description: Friendly name to identify the card.
example: New Card
type: string
network_program_token:
description: >-
Globally unique identifier for the card's network program. Null if the card is not associated with
a network program. Currently applicable to Visa cards participating in Account Level Management
only
example: 5e9483eb-8103-4e16-9794-2106111b2eca
type:
- string
- 'null'
pending_commands:
description: >-
Indicates if there are offline PIN changes pending card interaction with an offline PIN terminal.
Possible commands are: CHANGE_PIN, UNBLOCK_PIN. Applicable only to cards issued in markets
supporting offline PINs.
items:
type: string
type: array
pin_status:
description: Indicates if a card is blocked due a PIN status issue (e.g. excessive incorrect attempts).
enum:
- OK
- BLOCKED
- NOT_SET
type: string
product_id:
description: >-
Only applicable to cards of type `PHYSICAL`. This must be configured with Lithic before use.
Specifies the configuration (i.e., physical card art) that the card should be manufactured with.
example: '1'
type: string
spend_limit:
description: >-
Amount (in cents) to limit approved authorizations (e.g. 100000 would be a $1,000 limit).
Transaction requests above the spend limit will be declined.
example: 1000
type: integer
spend_limit_duration:
$ref: '#/components/schemas/spend_limit_duration'
state:
description: >-
Card state values: * `CLOSED` - Card will no longer approve authorizations. Closing a card cannot
be undone. * `OPEN` - Card will approve authorizations (if they match card and account
parameters). * `PAUSED` - Card will decline authorizations, but can be resumed at a later time. *
`PENDING_FULFILLMENT` - The initial state for cards of type `PHYSICAL`. The card is provisioned
pending manufacturing and fulfillment. Cards in this state can accept authorizations for
e-commerce purchases, but not for "Card Present" purchases where the physical card itself is
present. * `PENDING_ACTIVATION` - At regular intervals, cards of type `PHYSICAL` in state
`PENDING_FULFILLMENT` are sent to the card production warehouse and updated to state
`PENDING_ACTIVATION`. Similar to `PENDING_FULFILLMENT`, cards in this state can be used for
e-commerce transactions or can be added to mobile wallets. API clients should update the card's
state to `OPEN` only after the cardholder confirms receipt of the card. In sandbox, the same daily
batch fulfillment occurs, but no cards are actually manufactured.
enum:
- CLOSED
- OPEN
- PAUSED
- PENDING_ACTIVATION
- PENDING_FULFILLMENT
type: string
substatus:
description: >-
Card state substatus values: * `LOST` - The physical card is no longer in the cardholder's
possession due to being lost or never received by the cardholder. * `COMPROMISED` - Card
information has been exposed, potentially leading to unauthorized access. This may involve
physical card theft, cloning, or online data breaches. * `DAMAGED` - The physical card is not
functioning properly, such as having chip failures or a demagnetized magnetic stripe. *
`END_USER_REQUEST` - The cardholder requested the closure of the card for reasons unrelated to
fraud or damage, such as switching to a different product or closing the account. *
`ISSUER_REQUEST` - The issuer closed the card for reasons unrelated to fraud or damage, such as
account inactivity, product or policy changes, or technology upgrades. * `NOT_ACTIVE` - The card
hasn’t had any transaction activity for a specified period, applicable to statuses like `PAUSED`
or `CLOSED`. * `SUSPICIOUS_ACTIVITY` - The card has one or more suspicious transactions or
activities that require review. This can involve prompting the cardholder to confirm legitimate
use or report confirmed fraud. * `INTERNAL_REVIEW` - The card is temporarily paused pending
further internal review. * `EXPIRED` - The card has expired and has been closed without being
reissued. * `UNDELIVERABLE` - The card cannot be delivered to the cardholder and has been
returned. * `OTHER` - The reason for the status does not fall into any of the above categories. A
comment can be provided to specify the reason.
enum:
- LOST
- COMPROMISED
- DAMAGED
- END_USER_REQUEST
- ISSUER_REQUEST
- NOT_ACTIVE
- SUSPICIOUS_ACTIVITY
- INTERNAL_REVIEW
- EXPIRED
- UNDELIVERABLE
- OTHER
type: string
comment:
description: Additional context or information related to the card.
type: string
token:
description: Globally unique identifier.
example: 7ef7d65c-9023-4da3-b113-3b8583fd7951
type: string
type:
description: >-
Card types: * `VIRTUAL` - Card will authorize at any merchant and can be added to a digital wallet
like Apple Pay or Google Pay (if the card program is digital wallet-enabled). * `PHYSICAL` -
Manufactured and sent to the cardholder. We offer white label branding, credit, ATM, PIN debit,
chip/EMV, NFC and magstripe functionality. * `SINGLE_USE` - Card is closed upon first successful
authorization. * `MERCHANT_LOCKED` - Card is locked to the first merchant that successfully
authorizes the card. * `UNLOCKED` - *[Deprecated]* Similar behavior to VIRTUAL cards, please use
VIRTUAL instead. * `DIGITAL_WALLET` - *[Deprecated]* Similar behavior to VIRTUAL cards, please use
VIRTUAL instead.
enum:
- MERCHANT_LOCKED
- PHYSICAL
- SINGLE_USE
- VIRTUAL
- UNLOCKED
- DIGITAL_WALLET
type: string
required:
- account_token
- card_program_token
- created
- funding
- last_four
- pin_status
- spend_limit
- spend_limit_duration
- state
- token
- type
Carrier:
properties:
qr_code_url:
description: >-
QR code URL to display on the card carrier. The `qr_code_url` field requires your domain to be
allowlisted by Lithic before use. Contact Support to configure your QR code domain
type: string
type: object
ShippingAddress:
properties:
address1:
description: Valid USPS routable address.
example: 5 Broad Street
maxLength: 40
minLength: 1
type: string
address2:
description: Unit number (if applicable).
example: Unit 25A
maxLength: 40
minLength: 1
type: string
city:
description: City
example: NEW YORK
maxLength: 30
minLength: 1
type: string
country:
description: Uppercase ISO 3166-1 alpha-3 three character abbreviation.
example: USA
maxLength: 3
minLength: 3
type: string
email:
description: >-
Email address to be contacted for expedited shipping process purposes. Required if
`shipping_method` is `EXPEDITED`.
example: johnny@appleseed.com
maxLength: 50
minLength: 5
type: string
first_name:
description: >-
Customer's first name. This will be the first name printed on the physical card. The combined
length of `first_name` and `last_name` may not exceed 25 characters.
example: Michael
maxLength: 24
minLength: 1
type: string
last_name:
description: >-
Customer's surname (family name). This will be the last name printed on the physical card. The
combined length of `first_name` and `last_name` may not exceed 25 characters.
example: Bluth
maxLength: 24
minLength: 1
type: string
line2_text:
description: >-
Text to be printed on line two of the physical card. Use of this field requires additional
permissions.
example: The Bluth Company
maxLength: 26
minLength: 0
type: string
phone_number:
description: >-
Cardholder's phone number in E.164 format to be contacted for expedited shipping process purposes.
Required if `shipping_method` is `EXPEDITED`.
example: '+15555555555'
maxLength: 16
minLength: 8
type: string
postal_code:
description: >-
Postal code (formerly zipcode). For US addresses, either five-digit postal code or nine-digit
postal code (ZIP+4) using the format 12345-1234.
example: 10001-1809
maxLength: 12
minLength: 1
type: string
state:
description: >-
Uppercase ISO 3166-2 two character abbreviation for US and CA. Optional with a limit of 24
characters for other countries.
example: NY
maxLength: 24
minLength: 0
type: string
required:
- address1
- city
- country
- first_name
- last_name
- postal_code
- state
type: object
pci_card_response:
description: Card details with potentially PCI sensitive information for Enterprise customers
allOf:
- $ref: '#/components/schemas/non_pci_card_response'
- type: object
properties:
pan:
description: >-
Primary Account Number (PAN) (i.e. the card number). Customers must be PCI compliant to have
PAN returned as a field in production. Please contact support@lithic.com for questions.
example: '4111111289144142'
maxLength: 16
minLength: 16
type: string
cvv:
description: Three digit cvv printed on the back of the card.
example: '776'
maxLength: 3
minLength: 3
type: string
examples:
- pan: '4111111289144142'
cvv: '776'
financial-account-balance:
title: Financial Account Balance
description: Balance of a Financial Account
properties:
available_amount:
description: Funds available for spend in the currency's smallest unit (e.g., cents for USD)
type: integer
created:
description: Date and time for when the balance was first created.
format: date-time
type: string
currency:
description: 3-character alphabetic ISO 4217 code for the local currency of the balance.
type: string
token:
description: Globally unique identifier for the financial account that holds this balance.
example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
format: uuid
type: string
type:
description: Type of financial account.
enum:
- ISSUING
- OPERATING
- RESERVE
- SECURITY
type: string
last_transaction_event_token:
description: Globally unique identifier for the last financial transaction event that impacted this balance.
format: uuid
type: string
last_transaction_token:
description: Globally unique identifier for the last financial transaction that impacted this balance.
format: uuid
type: string
pending_amount:
description: >-
Funds not available for spend due to card authorizations or pending ACH release. Shown in the
currency's smallest unit (e.g., cents for USD).
type: integer
total_amount:
description: The sum of available and pending balance in the currency's smallest unit (e.g., cents for USD).
type: integer
updated:
description: Date and time for when the balance was last updated.
format: date-time
type: string
required:
- available_amount
- created
- currency
- token
- type
- last_transaction_event_token
- last_transaction_token
- pending_amount
- total_amount
- updated
type: object
financial_event_type:
title: Financial Event Type
type: string
enum:
- ACH_ORIGINATION_CANCELLED
- ACH_ORIGINATION_INITIATED
- ACH_ORIGINATION_PROCESSED
- ACH_ORIGINATION_RELEASED
- ACH_ORIGINATION_REJECTED
- ACH_ORIGINATION_REVIEWED
- ACH_ORIGINATION_SETTLED
- ACH_RECEIPT_PROCESSED
- ACH_RECEIPT_RELEASED
- ACH_RECEIPT_SETTLED
- ACH_RETURN_INITIATED
- ACH_RETURN_PROCESSED
- ACH_RETURN_REJECTED
- ACH_RETURN_SETTLED
- AUTHORIZATION
- AUTHORIZATION_ADVICE
- AUTHORIZATION_EXPIRY
- AUTHORIZATION_REVERSAL
- BALANCE_INQUIRY
- BILLING_ERROR
- BILLING_ERROR_REVERSAL
- CARD_TO_CARD
- CASH_BACK
- CASH_BACK_REVERSAL
- CLEARING
- COLLECTION
- CORRECTION_CREDIT
- CORRECTION_DEBIT
- CREDIT_AUTHORIZATION
- CREDIT_AUTHORIZATION_ADVICE
- CURRENCY_CONVERSION
- CURRENCY_CONVERSION_REVERSAL
- DISPUTE_WON
- EXTERNAL_ACH_CANCELED
- EXTERNAL_ACH_INITIATED
- EXTERNAL_ACH_RELEASED
- EXTERNAL_ACH_REVERSED
- EXTERNAL_ACH_SETTLED
- EXTERNAL_CHECK_CANCELED
- EXTERNAL_CHECK_INITIATED
- EXTERNAL_CHECK_RELEASED
- EXTERNAL_CHECK_REVERSED
- EXTERNAL_CHECK_SETTLED
- EXTERNAL_FEDNOW_CANCELED
- EXTERNAL_FEDNOW_INITIATED
- EXTERNAL_FEDNOW_RELEASED
- EXTERNAL_FEDNOW_REVERSED
- EXTERNAL_FEDNOW_SETTLED
- EXTERNAL_RTP_CANCELED
- EXTERNAL_RTP_INITIATED
- EXTERNAL_RTP_RELEASED
- EXTERNAL_RTP_REVERSED
- EXTERNAL_RTP_SETTLED
- EXTERNAL_TRANSFER_CANCELED
- EXTERNAL_TRANSFER_INITIATED
- EXTERNAL_TRANSFER_RELEASED
- EXTERNAL_TRANSFER_REVERSED
- EXTERNAL_TRANSFER_SETTLED
- EXTERNAL_WIRE_CANCELED
- EXTERNAL_WIRE_INITIATED
- EXTERNAL_WIRE_RELEASED
- EXTERNAL_WIRE_REVERSED
- EXTERNAL_WIRE_SETTLED
- FINANCIAL_AUTHORIZATION
- FINANCIAL_CREDIT_AUTHORIZATION
- INTEREST
- INTEREST_REVERSAL
- INTERNAL_ADJUSTMENT
- LATE_PAYMENT
- LATE_PAYMENT_REVERSAL
- LOSS_WRITE_OFF
- PROVISIONAL_CREDIT
- PROVISIONAL_CREDIT_REVERSAL
- SERVICE
- RETURN
- RETURN_REVERSAL
- TRANSFER
- TRANSFER_INSUFFICIENT_FUNDS
- RETURNED_PAYMENT
- RETURNED_PAYMENT_REVERSAL
- LITHIC_NETWORK_PAYMENT
- ANNUAL
- ANNUAL_REVERSAL
- QUARTERLY
- QUARTERLY_REVERSAL
- MONTHLY
- MONTHLY_REVERSAL
financial_event:
title: Financial Event
description: Financial Event
type: object
properties:
amount:
description: Amount of the financial event that has been settled in the currency's smallest unit (e.g., cents).
type: integer
created:
description: Date and time when the financial event occurred. UTC time zone.
type: string
format: date-time
result:
description: >-
APPROVED financial events were successful while DECLINED financial events were declined by user,
Lithic, or the network.
type: string
enum:
- APPROVED
- DECLINED
token:
description: Globally unique identifier.
type: string
format: uuid
type:
$ref: '#/components/schemas/financial_event_type'
financial-account-transaction:
properties:
category:
description: |
Status types:
* `CARD` - Issuing card transaction.
* `ACH` - Transaction over ACH.
* `INTERNAL` - Transaction for internal adjustment.
* `TRANSFER` - Internal transfer of funds between financial accounts in your program.
enum:
- ACH
- CARD
- INTERNAL
- TRANSFER
type: string
created:
description: Date and time when the financial transaction first occurred. UTC time zone.
format: date-time
type: string
currency:
description: 3-character alphabetic ISO 4217 code for the settling currency of the transaction.
type: string
descriptor:
description: >-
A string that provides a description of the financial transaction; may be useful to display to
users.
type: string
events:
description: A list of all financial events that have modified this financial transaction.
items:
$ref: '#/components/schemas/financial_event'
type: array
pending_amount:
description: >
Pending amount of the transaction in the currency's smallest unit (e.g., cents), including any
acquirer fees.
The value of this field will go to zero over time once the financial transaction is settled.
type: integer
result:
description: >-
APPROVED transactions were successful while DECLINED transactions were declined by user, Lithic,
or the network.
enum:
- APPROVED
- DECLINED
type: string
settled_amount:
description: >-
Amount of the transaction that has been settled in the currency's smallest unit (e.g., cents),
including any acquirer fees. This may change over time.
type: integer
status:
description: |
Status types:
* `DECLINED` - The transaction was declined.
* `EXPIRED` - The authorization as it has passed its expiration time. Card transaction only.
* `PENDING` - The transaction is expected to settle.
* `RETURNED` - The transaction has been returned.
* `SETTLED` - The transaction is completed.
* `VOIDED` - The transaction was voided. Card transaction only.
enum:
- DECLINED
- EXPIRED
- PENDING
- RETURNED
- SETTLED
- VOIDED
type: string
token:
description: Globally unique identifier.
format: uuid
type: string
updated:
description: Date and time when the financial transaction was last updated. UTC time zone.
format: date-time
type: string
required:
- category
- created
- currency
- descriptor
- events
- pending_amount
- result
- settled_amount
- status
- token
- updated
type: object
WebPushProvisioningResponseHeader:
properties:
kid:
description: The ID for the JWS Public Key of the key pair used to generate the signature.
example: 8dc7aed4-29e3-41e4-9cdb-673a05e6615c
type: string
WebPushProvisioningResponseJws:
properties:
header:
$ref: '#/components/schemas/WebPushProvisioningResponseHeader'
description: >-
JWS unprotected headers containing header parameters that aren't integrity-protected by the JWS
signature.
protected:
description: >-
Base64url encoded JWS protected headers containing the header parameters that are
integrity-protected by the JWS signature.
example: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9
type: string
payload:
description: Base64url encoded JSON object containing the provisioning payload.
example: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9
type: string
signature:
description: Base64url encoded signature of the JWS object.
example: SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
type: string
type: object
AppleWebPushProvisioningResponse:
properties:
jws:
$ref: '#/components/schemas/WebPushProvisioningResponseJws'
description: JWS object required for handoff to Apple's script.
state:
description: A unique identifier for the JWS object.
example: 3cc4c292-727b-4ca8-b9a8-f96c15485f4e
type: string
required:
- jws
- state
type: object
GoogleWebPushProvisioningResponse:
properties:
google_opc:
description: A base64 encoded and encrypted payload representing card data for the Google Pay UWPP FPAN flow.
example: WW91ciBTdHJpbmcgSGVyZQ==
type: string
tsp_opc:
description: >-
A base64 encoded and encrypted payload representing card data for the Google Pay UWPP tokenization
flow.
example: WW91ciBTdHJpbmcgSGVyZQ==
type: string
type: object
not:
properties:
jws: {}
required:
- jws
WebPushProvisioningResponse:
oneOf:
- $ref: '#/components/schemas/AppleWebPushProvisioningResponse'
- $ref: '#/components/schemas/GoogleWebPushProvisioningResponse'
CardSpendLimits:
properties:
available_spend_limit:
properties:
annually:
description: >-
The available spend limit (in cents) relative to the annual limit configured on the Card (e.g.
100000 would be a $1,000 limit).
example: 200000
type: integer
forever:
description: The available spend limit (in cents) relative to the forever limit configured on the Card.
example: 300000
type: integer
monthly:
description: The available spend limit (in cents) relative to the monthly limit configured on the Card.
example: 200000
type: integer
type: object
spend_limit:
properties:
annually:
description: The configured annual spend limit (in cents) on the Card.
example: 500000
type: integer
forever:
description: The configured forever spend limit (in cents) on the Card.
example: 500000
type: integer
monthly:
description: The configured monthly spend limit (in cents) on the Card.
example: 500000
type: integer
type: object
spend_velocity:
properties:
annually:
description: Current annual spend velocity (in cents) on the Card. Present if annual spend limit is set.
example: 300000
type: integer
forever:
description: Current forever spend velocity (in cents) on the Card. Present if forever spend limit is set.
example: 200000
type: integer
monthly:
description: Current monthly spend velocity (in cents) on the Card. Present if monthly spend limit is set.
example: 300000
type: integer
type: object
required:
- available_spend_limit
type: object
bulk-order-response:
$schema: https://json-schema.org/draft/2020-12/schema
title: Bulk Order Response
description: Represents a bulk order for physical card shipments
type: object
properties:
token:
description: Globally unique identifier for the bulk order
example: 7ef7d65c-9023-4da3-b113-3b8583fd7951
format: uuid
type: string
status:
description: >-
Status of the bulk order. OPEN indicates the order is accepting cards. LOCKED indicates the order
is finalized and no more cards can be added
enum:
- OPEN
- LOCKED
type: string
shipping_address:
description: Shipping address for all cards in this bulk order
type: object
shipping_method:
description: Shipping method for all cards in this bulk order
enum:
- BULK_EXPEDITED
type: string
customer_product_id:
description: >-
Customer-specified product configuration for physical card manufacturing. This must be configured
with Lithic before use
example: custom-card-design-123
type:
- string
- 'null'
card_tokens:
description: List of card tokens associated with this bulk order
type: array
items:
type: string
format: uuid
created:
description: An RFC 3339 timestamp for when the bulk order was created. UTC time zone
example: '2021-06-28T22:53:15Z'
format: date-time
type: string
updated:
description: An RFC 3339 timestamp for when the bulk order was last updated. UTC time zone
example: '2021-06-28T22:53:15Z'
format: date-time
type: string
required:
- token
- status
- shipping_address
- shipping_method
- customer_product_id
- card_tokens
- created
- updated
create-bulk-order-request:
$schema: https://json-schema.org/draft/2020-12/schema
title: Create Bulk Order Request
description: >-
Request to create a new bulk order for physical card shipments. Please work with your Customer Success
Manager and card personalization bureau to ensure bulk shipping is supported for your program.
type: object
properties:
shipping_address:
description: Shipping address for all cards in this bulk order
type: object
shipping_method:
description: Shipping method for all cards in this bulk order
enum:
- BULK_EXPEDITED
type: string
customer_product_id:
description: >-
Customer-specified product configuration for physical card manufacturing. This must be configured
with Lithic before use
example: custom-card-design-123
type: string
required:
- shipping_address
- shipping_method
- customer_product_id
update-bulk-order-request:
$schema: https://json-schema.org/draft/2020-12/schema
title: Update Bulk Order Request
description: Request to update a bulk order, primarily to lock it
type: object
properties:
status:
description: Status to update the bulk order to. Use LOCKED to finalize the order
enum:
- LOCKED
type: string
required:
- status
DigitalCardArt:
properties:
card_program_token:
description: Globally unique identifier for the card program.
format: uuid
type: string
created:
description: Timestamp of when card art was created.
format: date-time
type: string
description:
description: Description of the card art.
type: string
is_card_program_default:
description: Whether the card art is the default card art to be added upon tokenization.
type: boolean
is_enabled:
description: Whether the card art is enabled.
type: boolean
network:
description: Card network.
enum:
- MASTERCARD
- VISA
type: string
token:
description: Globally unique identifier for the card art.
format: uuid
type: string
required:
- card_program_token
- created
- description
- is_enabled
- network
- token
type: object
dispute-v1:
title: Dispute
description: Dispute.
properties:
amount:
description: Amount under dispute. May be different from the original transaction amount.
type: integer
arbitration_date:
description: Date dispute entered arbitration.
format: date-time
type:
- string
- 'null'
created:
description: Timestamp of when first Dispute was reported.
format: date-time
type: string
customer_filed_date:
description: Date that the dispute was filed by the customer making the dispute.
format: date-time
type:
- string
- 'null'
customer_note:
description: End customer description of the reason for the dispute.
maxLength: 10000
type:
- string
- 'null'
network_claim_ids:
description: Unique identifiers for the dispute from the network.
oneOf:
- type: array
items:
type: string
- type: 'null'
network_filed_date:
description: Date that the dispute was submitted to the network.
format: date-time
type:
- string
- 'null'
network_reason_code:
description: Network reason code used to file the dispute.
type:
- string
- 'null'
prearbitration_date:
description: Date dispute entered pre-arbitration.
format: date-time
type:
- string
- 'null'
primary_claim_id:
description: >-
Unique identifier for the dispute from the network. If there are multiple, this will be the first
claim id set by the network
type:
- string
- 'null'
reason:
description: |
Dispute reason:
* `ATM_CASH_MISDISPENSE`: ATM cash misdispense.
* `CANCELLED`: Transaction was cancelled by the customer.
* `DUPLICATED`: The transaction was a duplicate.
* `FRAUD_CARD_NOT_PRESENT`: Fraudulent transaction, card not present.
* `FRAUD_CARD_PRESENT`: Fraudulent transaction, card present.
* `FRAUD_OTHER`: Fraudulent transaction, other types such as questionable merchant activity.
* `GOODS_SERVICES_NOT_AS_DESCRIBED`: The goods or services were not as described.
* `GOODS_SERVICES_NOT_RECEIVED`: The goods or services were not received.
* `INCORRECT_AMOUNT`: The transaction amount was incorrect.
* `MISSING_AUTH`: The transaction was missing authorization.
* `OTHER`: Other reason.
* `PROCESSING_ERROR`: Processing error.
* `REFUND_NOT_PROCESSED`: The refund was not processed.
* `RECURRING_TRANSACTION_NOT_CANCELLED`: The recurring transaction was not cancelled.
enum:
- ATM_CASH_MISDISPENSE
- CANCELLED
- DUPLICATED
- FRAUD_CARD_NOT_PRESENT
- FRAUD_CARD_PRESENT
- FRAUD_OTHER
- GOODS_SERVICES_NOT_AS_DESCRIBED
- GOODS_SERVICES_NOT_RECEIVED
- INCORRECT_AMOUNT
- MISSING_AUTH
- OTHER
- PROCESSING_ERROR
- RECURRING_TRANSACTION_NOT_CANCELLED
- REFUND_NOT_PROCESSED
type: string
representment_date:
description: Date the representment was received.
format: date-time
type:
- string
- 'null'
resolution_date:
description: Date that the dispute was resolved.
format: date-time
type:
- string
- 'null'
resolution_note:
description: Note by Dispute team on the case resolution.
maxLength: 10000
type:
- string
- 'null'
resolution_reason:
description: |
Reason for the dispute resolution:
* `CASE_LOST`: This case was lost at final arbitration.
* `NETWORK_REJECTED`: Network rejected.
* `NO_DISPUTE_RIGHTS_3DS`: No dispute rights, 3DS.
* `NO_DISPUTE_RIGHTS_BELOW_THRESHOLD`: No dispute rights, below threshold.
* `NO_DISPUTE_RIGHTS_CONTACTLESS`: No dispute rights, contactless.
* `NO_DISPUTE_RIGHTS_HYBRID`: No dispute rights, hybrid.
* `NO_DISPUTE_RIGHTS_MAX_CHARGEBACKS`: No dispute rights, max chargebacks.
* `NO_DISPUTE_RIGHTS_OTHER`: No dispute rights, other.
* `PAST_FILING_DATE`: Past filing date.
* `PREARBITRATION_REJECTED`: Prearbitration rejected.
* `PROCESSOR_REJECTED_OTHER`: Processor rejected, other.
* `REFUNDED`: Refunded.
* `REFUNDED_AFTER_CHARGEBACK`: Refunded after chargeback.
* `WITHDRAWN`: Withdrawn.
* `WON_ARBITRATION`: Won arbitration.
* `WON_FIRST_CHARGEBACK`: Won first chargeback.
* `WON_PREARBITRATION`: Won prearbitration.
enum:
- CASE_LOST
- NETWORK_REJECTED
- NO_DISPUTE_RIGHTS_3DS
- NO_DISPUTE_RIGHTS_BELOW_THRESHOLD
- NO_DISPUTE_RIGHTS_CONTACTLESS
- NO_DISPUTE_RIGHTS_HYBRID
- NO_DISPUTE_RIGHTS_MAX_CHARGEBACKS
- NO_DISPUTE_RIGHTS_OTHER
- PAST_FILING_DATE
- PREARBITRATION_REJECTED
- PROCESSOR_REJECTED_OTHER
- REFUNDED
- REFUNDED_AFTER_CHARGEBACK
- WITHDRAWN
- WON_ARBITRATION
- WON_FIRST_CHARGEBACK
- WON_PREARBITRATION
- null
type:
- string
- 'null'
status:
description: |
Status types:
* `NEW` - New dispute case is opened.
* `PENDING_CUSTOMER` - Lithic is waiting for customer to provide more information.
* `SUBMITTED` - Dispute is submitted to the card network.
* `REPRESENTMENT` - Case has entered second presentment.
* `PREARBITRATION` - Case has entered prearbitration.
* `ARBITRATION` - Case has entered arbitration.
* `CASE_WON` - Case was won and credit will be issued.
* `CASE_CLOSED` - Case was lost or withdrawn.
enum:
- ARBITRATION
- CASE_CLOSED
- CASE_WON
- NEW
- PENDING_CUSTOMER
- PREARBITRATION
- REPRESENTMENT
- SUBMITTED
type: string
token:
description: Globally unique identifier.
format: uuid
type: string
transaction_token:
description: >-
The transaction that is being disputed. A transaction can only be disputed once but may have
multiple dispute cases.
format: uuid
type: string
required:
- amount
- arbitration_date
- created
- customer_filed_date
- customer_note
- network_claim_ids
- network_filed_date
- network_reason_code
- prearbitration_date
- primary_claim_id
- reason
- representment_date
- resolution_date
- resolution_note
- resolution_reason
- status
- token
- transaction_token
type: object
dispute-evidence:
title: Dispute Evidence
description: Dispute evidence.
properties:
created:
description: Timestamp of when dispute evidence was created.
format: date-time
type: string
dispute_token:
description: Dispute token evidence is attached to.
format: uuid
type: string
download_url:
description: URL to download evidence. Only shown when `upload_status` is `UPLOADED`.
type: string
filename:
description: File name of evidence. Recommended to give the dispute evidence a human-readable identifier.
type: string
token:
description: Globally unique identifier.
format: uuid
type: string
upload_status:
description: |
Upload status types:
* `DELETED` - Evidence was deleted.
* `ERROR` - Evidence upload failed.
* `PENDING` - Evidence is pending upload.
* `REJECTED` - Evidence was rejected.
* `UPLOADED` - Evidence was uploaded.
enum:
- DELETED
- ERROR
- PENDING
- REJECTED
- UPLOADED
type: string
upload_url:
description: URL to upload evidence. Only shown when `upload_status` is `PENDING`.
type: string
required:
- created
- dispute_token
- token
- upload_status
type: object
fraud-report-response:
title: Fraud Report Response
type: object
properties:
transaction_token:
type: string
format: uuid
description: The universally unique identifier (UUID) associated with the transaction being reported.
fraud_status:
type: string
enum:
- SUSPECTED_FRAUD
- FRAUDULENT
- NOT_FRAUDULENT
- NO_REPORTED_FRAUD
description: |-
The fraud status of the transaction, string (enum) supporting the following values:
- `SUSPECTED_FRAUD`: The transaction is suspected to be fraudulent, but this hasn’t been confirmed.
- `FRAUDULENT`: The transaction is confirmed to be fraudulent. A transaction may immediately be moved into this state, or be graduated into this state from the `SUSPECTED_FRAUD` state.
- `NOT_FRAUDULENT`: The transaction is (explicitly) marked as not fraudulent. A transaction may immediately be moved into this state, or be graduated into this state from the `SUSPECTED_FRAUD` state.
- `NO_REPORTED_FRAUD`: Indicates that no fraud report exists for the transaction. It is the default state for transactions that have not been analyzed or associated with any known fraudulent activity.
fraud_type:
type: string
enum:
- FIRST_PARTY_FRAUD
- ACCOUNT_TAKEOVER
- CARD_COMPROMISED
- IDENTITY_THEFT
- CARDHOLDER_MANIPULATION
description: >-
Specifies the type or category of fraud that the transaction is suspected or confirmed to involve,
string (enum) supporting the following values:
- `FIRST_PARTY_FRAUD`: First-party fraud occurs when a legitimate account or cardholder intentionally misuses financial services for personal gain. This includes actions such as disputing legitimate transactions to obtain a refund, abusing return policies, or defaulting on credit obligations without intent to repay.
- `ACCOUNT_TAKEOVER`: Account takeover fraud occurs when a fraudster gains unauthorized access to an existing account, modifies account settings, and carries out fraudulent transactions.
- `CARD_COMPROMISED`: Card compromised fraud occurs when a fraudster gains access to card details without taking over the account, such as through physical card theft, cloning, or online data breaches.
- `IDENTITY_THEFT`: Identity theft fraud occurs when a fraudster uses stolen personal information, such as Social Security numbers or addresses, to open accounts, apply for loans, or conduct financial transactions in someone's name.
- `CARDHOLDER_MANIPULATION`: This type of fraud occurs when a fraudster manipulates or coerces a legitimate cardholder into unauthorized transactions, often through social engineering tactics.
comment:
type: string
description: Provides additional context or details about the fraud report.
created_at:
type: string
format: date-time
description: Timestamp representing when the fraud report was created.
updated_at:
type: string
format: date-time
description: Timestamp representing the last update to the fraud report.
required:
- transaction_token
- fraud_status
fraud-report-request:
title: Fraud Report Parameters
type: object
properties:
fraud_status:
type: string
enum:
- SUSPECTED_FRAUD
- FRAUDULENT
- NOT_FRAUDULENT
description: |-
The fraud status of the transaction, string (enum) supporting the following values:
- `SUSPECTED_FRAUD`: The transaction is suspected to be fraudulent, but this hasn’t been confirmed.
- `FRAUDULENT`: The transaction is confirmed to be fraudulent. A transaction may immediately be moved into this state, or be graduated into this state from the `SUSPECTED_FRAUD` state.
- `NOT_FRAUDULENT`: The transaction is (explicitly) marked as not fraudulent. A transaction may immediately be moved into this state, or be graduated into this state from the `SUSPECTED_FRAUD` state.
fraud_type:
type: string
enum:
- FIRST_PARTY_FRAUD
- ACCOUNT_TAKEOVER
- CARD_COMPROMISED
- IDENTITY_THEFT
- CARDHOLDER_MANIPULATION
description: >-
Specifies the type or category of fraud that the transaction is suspected or confirmed to involve,
string (enum) supporting the following values:
- `FIRST_PARTY_FRAUD`: First-party fraud occurs when a legitimate account or cardholder intentionally misuses financial services for personal gain. This includes actions such as disputing legitimate transactions to obtain a refund, abusing return policies, or defaulting on credit obligations without intent to repay.
- `ACCOUNT_TAKEOVER`: Account takeover fraud occurs when a fraudster gains unauthorized access to an existing account, modifies account settings, and carries out fraudulent transactions.
- `CARD_COMPROMISED`: Card compromised fraud occurs when a fraudster gains access to card details without taking over the account, such as through physical card theft, cloning, or online data breaches.
- `IDENTITY_THEFT`: Identity theft fraud occurs when a fraudster uses stolen personal information, such as Social Security numbers or addresses, to open accounts, apply for loans, or conduct financial transactions in someone's name.
- `CARDHOLDER_MANIPULATION`: This type of fraud occurs when a fraudster manipulates or coerces a legitimate cardholder into unauthorized transactions, often through social engineering tactics.
comment:
type: string
description: >-
Optional field providing additional information or context about why the transaction is considered
fraudulent.
required:
- fraud_status
tax-exempt-indicator:
title: TaxExemptIndicator
description: A flag indicating whether the transaction is tax exempt or not.
type:
- string
- 'null'
enum:
- TAX_INCLUDED
- TAX_NOT_INCLUDED
- NOT_SUPPORTED
- null
tax-data:
title: TaxData
type: object
properties:
amount:
title: Amount
description: The amount of tax collected.
type:
- integer
- 'null'
exempt:
title: Exempt
$ref: '#/components/schemas/tax-exempt-indicator'
merchant_tax_id:
title: Merchant Tax ID
description: The tax ID of the merchant.
type:
- string
- 'null'
line-item:
title: LineItem
description: An L2/L3 enhanced commercial data line item.
type: object
properties:
product_code:
title: Product Code
description: An identifier for the item purchased.
type:
- string
- 'null'
description:
title: Description
description: A human-readable description of the item.
type:
- string
- 'null'
quantity:
title: Quantity
description: The quantity of the item purchased.
type:
- string
- 'null'
amount:
title: Amount
description: The price of the item purchased in merchant currency.
type:
- string
- 'null'
common-data:
title: CommonData
required:
- tax
- line_items
type: object
properties:
customer_reference_number:
title: Customer Reference Number
description: A customer identifier.
type:
- string
- 'null'
merchant_reference_number:
title: Merchant Reference Number
description: A merchant identifier.
type:
- string
- 'null'
order_date:
title: Order Date
description: The date of the order.
type:
- string
- 'null'
format: date
tax:
$ref: '#/components/schemas/tax-data'
line_items:
title: Line Items
type: array
items:
$ref: '#/components/schemas/line-item'
service-type:
title: FuelServiceType
description: The type of fuel service procured in a fleet transaction.
enum:
- UNKNOWN
- UNDEFINED
- SELF_SERVICE
- FULL_SERVICE
- NON_FUEL_ONLY
fuel-type:
title: FuelType
description: The type of fuel purchased.
type:
- string
- 'null'
enum:
- UNKNOWN
- REGULAR
- MID_PLUS
- PREMIUM_SUPER
- MID_PLUS_2
- PREMIUM_SUPER_2
- ETHANOL_5_7_BLEND
- MID_PLUS_ETHANOL_5_7_PERCENT_BLEND
- PREMIUM_SUPER_ETHANOL_5_7_PERCENT_BLEND
- ETHANOL_7_7_PERCENT_BLEND
- MID_PLUS_ETHANOL_7_7_PERCENT_BLEND
- GREEN_GASOLINE_REGULAR
- GREEN_GASOLINE_MID_PLUS
- GREEN_GASOLINE_PREMIUM_SUPER
- REGULAR_DIESEL_2
- PREMIUM_DIESEL_2
- REGULAR_DIESEL_1
- COMPRESSED_NATURAL_GAS
- LIQUID_PROPANE_GAS
- LIQUID_NATURAL_GAS
- E_85
- REFORMULATED_1
- REFORMULATED_2
- REFORMULATED_3
- REFORMULATED_4
- REFORMULATED_5
- DIESEL_OFF_ROAD_1_AND_2_NON_TAXABLE
- DIESEL_OFF_ROAD_NON_TAXABLE
- BIODIESEL_BLEND_OFF_ROAD_NON_TAXABLE
- UNDEFINED_FUEL
- RACING_FUEL
- MID_PLUS_2_10_PERCENT_BLEND
- PREMIUM_SUPER_2_10_PERCENT_BLEND
- MID_PLUS_ETHANOL_2_15_PERCENT_BLEND
- PREMIUM_SUPER_ETHANOL_2_15_PERCENT_BLEND
- PREMIUM_SUPER_ETHANOL_7_7_PERCENT_BLEND
- REGULAR_ETHANOL_10_PERCENT_BLEND
- MID_PLUS_ETHANOL_10_PERCENT_BLEND
- PREMIUM_SUPER_ETHANOL_10_PERCENT_BLEND
- B2_DIESEL_BLEND_2_PERCENT_BIODIESEL
- B5_DIESEL_BLEND_5_PERCENT_BIODIESEL
- B10_DIESEL_BLEND_10_PERCENT_BIODIESEL
- B11_DIESEL_BLEND_11_PERCENT_BIODIESEL
- B15_DIESEL_BLEND_15_PERCENT_BIODIESEL
- B20_DIESEL_BLEND_20_PERCENT_BIODIESEL
- B100_DIESEL_BLEND_100_PERCENT_BIODIESEL
- B1_DIESEL_BLEND_1_PERCENT_BIODIESEL
- ADDITIZED_DIESEL_2
- ADDITIZED_DIESEL_3
- RENEWABLE_DIESEL_R95
- RENEWABLE_DIESEL_BIODIESEL_6_20_PERCENT
- DIESEL_EXHAUST_FLUID
- PREMIUM_DIESEL_1
- REGULAR_ETHANOL_15_PERCENT_BLEND
- MID_PLUS_ETHANOL_15_PERCENT_BLEND
- PREMIUM_SUPER_ETHANOL_15_PERCENT_BLEND
- PREMIUM_DIESEL_BLEND_LESS_THAN_20_PERCENT_BIODIESEL
- PREMIUM_DIESEL_BLEND_GREATER_THAN_20_PERCENT_BIODIESEL
- B75_DIESEL_BLEND_75_PERCENT_BIODIESEL
- B99_DIESEL_BLEND_99_PERCENT_BIODIESEL
- MISCELLANEOUS_FUEL
- JET_FUEL
- AVIATION_FUEL_REGULAR
- AVIATION_FUEL_PREMIUM
- AVIATION_FUEL_JP8
- AVIATION_FUEL_4
- AVIATION_FUEL_5
- BIOJET_DIESEL
- AVIATION_BIOFUEL_GASOLINE
- MISCELLANEOUS_AVIATION_FUEL
- MARINE_FUEL_1
- MARINE_FUEL_2
- MARINE_FUEL_3
- MARINE_FUEL_4
- MARINE_FUEL_5
- MARINE_OTHER
- MARINE_DIESEL
- MISCELLANEOUS_MARINE_FUEL
- KEROSENE_LOW_SULFUR
- WHITE_GAS
- HEATING_OIL
- OTHER_FUEL_NON_TAXABLE
- KEROSENE_ULTRA_LOW_SULFUR
- KEROSENE_LOW_SULFUR_NON_TAXABLE
- KEROSENE_ULTRA_LOW_SULFUR_NON_TAXABLE
- EVC_1_LEVEL_1_CHARGE_110V_15_AMP
- EVC_2_LEVEL_2_CHARGE_240V_15_40_AMP
- EVC_3_LEVEL_3_CHARGE_480V_3_PHASE_CHARGE
- BIODIESEL_BLEND_2_PERCENT_OFF_ROAD_NON_TAXABLE
- BIODIESEL_BLEND_5_PERCENT_OFF_ROAD_NON_TAXABLE
- BIODIESEL_BLEND_10_PERCENT_OFF_ROAD_NON_TAXABLE
- BIODIESEL_BLEND_11_PERCENT_OFF_ROAD_NON_TAXABLE
- BIODIESEL_BLEND_15_PERCENT_OFF_ROAD_NON_TAXABLE
- BIODIESEL_BLEND_20_PERCENT_OFF_ROAD_NON_TAXABLE
- DIESEL_1_OFF_ROAD_NON_TAXABLE
- DIESEL_2_OFF_ROAD_NON_TAXABLE
- DIESEL_1_PREMIUM_OFF_ROAD_NON_TAXABLE
- DIESEL_2_PREMIUM_OFF_ROAD_NON_TAXABLE
- ADDITIVE_DOSAGE
- ETHANOL_BLENDS_E16_E84
- LOW_OCTANE_UNL
- BLENDED_DIESEL_1_AND_2
- OFF_ROAD_REGULAR_NON_TAXABLE
- OFF_ROAD_MID_PLUS_NON_TAXABLE
- OFF_ROAD_PREMIUM_SUPER_NON_TAXABLE
- OFF_ROAD_MID_PLUS_2_NON_TAXABLE
- OFF_ROAD_PREMIUM_SUPER_2_NON_TAXABLE
- RECREATIONAL_FUEL_90_OCTANE
- HYDROGEN_H35
- HYDROGEN_H70
- RENEWABLE_DIESEL_R95_OFF_ROAD_NON_TAXABLE
- BIODIESEL_BLEND_1_PERCENT_OFF_ROAD_NON_TAXABLE
- BIODIESEL_BLEND_75_PERCENT_OFF_ROAD_NON_TAXABLE
- BIODIESEL_BLEND_99_PERCENT_OFF_ROAD_NON_TAXABLE
- BIODIESEL_BLEND_100_PERCENT_OFF_ROAD_NON_TAXABLE
- RENEWABLE_DIESEL_BIODIESEL_6_20_PERCENT_OFF_ROAD_NON_TAXABLE
- MISCELLANEOUS_OTHER_FUEL
- null
fuel-unit-of-measure:
title: FuelUnitOfMeasure
description: Unit of measure for fuel disbursement.
type:
- string
- 'null'
enum:
- GALLONS
- LITERS
- POUNDS
- KILOGRAMS
- IMPERIAL_GALLONS
- NOT_APPLICABLE
- UNKNOWN
- null
fuel-data:
title: FuelData
type: object
properties:
type:
$ref: '#/components/schemas/fuel-type'
quantity:
title: Quantity
description: The quantity of fuel purchased.
type:
- string
- 'null'
unit_price:
title: Unit Price
description: The price per unit of fuel.
type:
- integer
- 'null'
unit_of_measure:
$ref: '#/components/schemas/fuel-unit-of-measure'
amount-totals:
title: AmountTotals
type: object
properties:
gross_sale:
title: Gross Sale
description: The gross sale amount.
type:
- integer
- 'null'
discount:
title: Discount
description: The discount applied to the gross sale amount.
type:
- integer
- 'null'
net_sale:
title: Net Sale
description: The amount after discount.
type:
- integer
- 'null'
fleet:
title: Fleet
required:
- fuel
- amount_totals
type: object
properties:
service_type:
description: The type of fuel service.
$ref: '#/components/schemas/service-type'
odometer:
title: Odometer
description: The odometer reading entered into the terminal at the time of sale.
type:
- integer
- 'null'
vehicle_number:
title: Vehicle Number
description: The vehicle number entered into the terminal at the time of sale, with leading zeros stripped.
type:
- string
- 'null'
driver_number:
title: Driver Number
description: The driver number entered into the terminal at the time of sale, with leading zeros stripped.
type:
- string
- 'null'
fuel:
$ref: '#/components/schemas/fuel-data'
amount_totals:
$ref: '#/components/schemas/amount-totals'
enhanced-data:
title: EnhancedData
required:
- token
- transaction_token
- event_token
- common
- fleet
type: object
properties:
token:
title: Token
description: A unique identifier for the enhanced commercial data.
type: string
format: uuid
transaction_token:
title: Transaction Token
description: The token of the transaction that the enhanced data is associated with.
type: string
format: uuid
event_token:
title: Event Token
description: The token of the event that the enhanced data is associated with.
type: string
format: uuid
common:
$ref: '#/components/schemas/common-data'
fleet:
title: Fleet
type: array
items:
$ref: '#/components/schemas/fleet'
EnhancedDataListResponse:
title: EnhancedDataListResponse
required:
- data
type: object
properties:
data:
title: Data
type: array
items:
$ref: '#/components/schemas/enhanced-data'
event_type:
type: string
enum:
- account_holder_document.updated
- account_holder.created
- account_holder.updated
- account_holder.verification
- auth_rules.backtest_report.created
- balance.updated
- book_transfer_transaction.created
- book_transfer_transaction.updated
- card_transaction.enhanced_data.created
- card_transaction.enhanced_data.updated
- card_transaction.updated
- card.converted
- card.created
- card.reissued
- card.renewed
- card.shipped
- card.updated
- digital_wallet.tokenization_result
- digital_wallet.tokenization_two_factor_authentication_code
- digital_wallet.tokenization_two_factor_authentication_code_sent
- digital_wallet.tokenization_updated
- dispute_evidence.upload_failed
- dispute_transaction.created
- dispute_transaction.updated
- dispute.updated
- external_bank_account.created
- external_bank_account.updated
- external_payment.created
- external_payment.updated
- financial_account.created
- financial_account.updated
- funding_event.created
- internal_transaction.created
- internal_transaction.updated
- loan_tape.created
- loan_tape.updated
- management_operation.created
- management_operation.updated
- network_total.created
- network_total.updated
- payment_transaction.created
- payment_transaction.updated
- settlement_report.updated
- statements.created
- three_ds_authentication.challenge
- three_ds_authentication.created
- three_ds_authentication.updated
- tokenization.approval_request
- tokenization.result
- tokenization.two_factor_authentication_code
- tokenization.two_factor_authentication_code_sent
- tokenization.updated
description: >
The type of event that occurred. Possible values:
- account_holder_document.updated: Occurs when an account holder's document upload status has been
updated
- account_holder.created: Occurs when a new account_holder is created.
- account_holder.updated: Occurs when an account_holder is updated.
- account_holder.verification: Occurs when an asynchronous account_holder's verification is completed.
- auth_rules.backtest_report.created: Auth Rules backtest report created.
- balance.updated: Financial Account Balance Update
- book_transfer_transaction.created: Occurs when a book transfer transaction is created.
- book_transfer_transaction.updated: Occurs when a book transfer transaction is updated.
- card_transaction.enhanced_data.created: Occurs when L2/L3 enhanced commercial data is processed for
a transaction event.
- card_transaction.enhanced_data.updated: Occurs when L2/L3 enhanced commercial data is reprocessed
for a transaction event.
- card_transaction.updated: Occurs when a card transaction happens.
- card.converted: Occurs when a card is converted from virtual to physical cards.
- card.created: Occurs when a new card is created.
- card.reissued: Occurs when a card is reissued.
- card.renewed: Occurs when a card is renewed.
- card.shipped: Occurs when a card is shipped.
- card.updated: Occurs when a card is updated.
- digital_wallet.tokenization_result: Occurs when a tokenization request succeeded or failed.
This event will be deprecated in the future. We recommend using `tokenization.result` instead.
- digital_wallet.tokenization_two_factor_authentication_code: Occurs when a tokenization request 2FA
code is sent to the Lithic customer for self serve delivery.
This event will be deprecated in the future. We recommend using
`tokenization.two_factor_authentication_code` instead.
- digital_wallet.tokenization_two_factor_authentication_code_sent: Occurs when a tokenization request
2FA code is sent to our downstream messaging providers for delivery.
This event will be deprecated in the future. We recommend using
`tokenization.two_factor_authentication_code_sent` instead.
- digital_wallet.tokenization_updated: Occurs when a tokenization's status has changed.
This event will be deprecated in the future. We recommend using `tokenization.updated` instead.
- dispute_evidence.upload_failed: Occurs when a dispute evidence upload fails.
- dispute_transaction.created: Occurs when a new dispute transaction is created
- dispute_transaction.updated: Occurs when a dispute transaction is updated
- dispute.updated: Occurs when a dispute is updated.
- external_bank_account.created: Occurs when an external bank account is created.
- external_bank_account.updated: Occurs when an external bank account is updated.
- external_payment.created: Occurs when an external payment is created.
- external_payment.updated: Occurs when an external payment is updated.
- financial_account.created: Occurs when a financial account is created.
- financial_account.updated: Occurs when a financial account is updated.
- funding_event.created: Occurs when a funding event is created.
- internal_transaction.created: Occurs when an internal adjustment is created.
- internal_transaction.updated: Occurs when an internal adjustment is updated.
- loan_tape.created: Occurs when a loan tape is created.
- loan_tape.updated: Occurs when a loan tape is updated.
- management_operation.created: Occurs when an management operation is created.
- management_operation.updated: Occurs when an management operation is updated.
- network_total.created: Occurs when a network total is created.
- network_total.updated: Occurs when a network total is updated.
- payment_transaction.created: Occurs when a payment transaction is created.
- payment_transaction.updated: Occurs when a payment transaction is updated.
- settlement_report.updated: Occurs when a settlement report is created or updated.
- statements.created: Occurs when a statement has been created
- three_ds_authentication.challenge: The `three_ds_authentication.challenge` event. Upon receiving
this request, the Card Program should issue its own challenge to the cardholder. After a cardholder
challenge is successfully completed, the Card Program needs to respond back to Lithic by call to
[/v1/three_ds_decisioning/challenge_response](https://docs.lithic.com/reference/post_v1-three-ds-decisioning-challenge-response).
Then the cardholder must navigate back to the merchant checkout flow to complete the transaction. Some
merchants will include an `app_requestor_url` for app-based purchases; Lithic recommends triggering a
redirect to that URL after the cardholder completes an app-based challenge.
- three_ds_authentication.created: Occurs when a 3DS authentication is created.
- three_ds_authentication.updated: Occurs when a 3DS authentication is updated (eg. challenge is
completed).
- tokenization.approval_request: Occurs when a tokenization approval request is made.
- tokenization.result: Occurs when a tokenization request succeeded or failed.
- tokenization.two_factor_authentication_code: Occurs when a tokenization request 2FA code is sent to
the Lithic customer for self serve delivery.
- tokenization.two_factor_authentication_code_sent: Occurs when a tokenization request 2FA code is
sent to our downstream messaging providers for delivery.
- tokenization.updated: Occurs when a tokenization's status has changed.
EventSubscription:
description: A subscription to specific event types.
properties:
description:
description: A description of the subscription.
type: string
disabled:
description: Whether the subscription is disabled.
type: boolean
event_types:
items:
$ref: '#/components/schemas/event_type'
type:
- 'null'
- array
token:
description: Globally unique identifier.
example: ep_1srOrx2ZWZBpBUvZwXKQmoEYga1
type: string
url:
format: uri
type: string
required:
- description
- disabled
- token
- url
type: object
MessageAttempt:
description: A subscription to specific event types.
properties:
created:
description: |
An RFC 3339 timestamp for when the event was created. UTC time zone.
If no timezone is specified, UTC will be used.
format: date-time
type: string
event_subscription_token:
description: Globally unique identifier.
example: ep_1srOrx2ZWZBpBUvZwXKQmoEYga1
type: string
event_token:
description: Globally unique identifier.
example: msg_1srOrx2ZWZBpBUvZwXKQmoEYga1
type: string
response:
description: The response body from the event subscription's URL.
type: string
response_status_code:
description: The response status code from the event subscription's URL.
type: integer
status:
description: The status of the event attempt.
enum:
- FAILED
- PENDING
- SENDING
- SUCCESS
type: string
token:
description: Globally unique identifier.
example: atmpt_1srOrx2ZWZBpBUvZwXKQmoEYga2
type: string
url:
format: uri
type: string
required:
- created
- event_subscription_token
- event_token
- response
- response_status_code
- status
- token
- url
type: object
Event:
description: A single event that affects the transaction state and lifecycle.
properties:
created:
description: |
An RFC 3339 timestamp for when the event was created. UTC time zone.
If no timezone is specified, UTC will be used.
format: date-time
type: string
event_type:
$ref: '#/components/schemas/event_type'
payload:
type: object
additionalProperties: true
example: {}
token:
description: Globally unique identifier.
example: msg_1srOrx2ZWZBpBUvZwXKQmoEYga1
type: string
required:
- created
- event_type
- payload
- token
type: object
owner_type:
type: string
enum:
- INDIVIDUAL
- BUSINESS
title: Owner Type
account_state:
type: string
enum:
- ENABLED
- CLOSED
- PAUSED
title: Account State
x-stainless-naming:
java:
type_name: State
verification_state:
type: string
enum:
- PENDING
- ENABLED
- FAILED_VERIFICATION
- INSUFFICIENT_FUNDS
title: Verification State
verification_method:
type: string
enum:
- MANUAL
- MICRO_DEPOSIT
- PRENOTE
- EXTERNALLY_VERIFIED
- UNVERIFIED
title: Verification Method
external_bank_account_address:
title: External Bank Account Address
type: object
properties:
address1:
type: string
minLength: 1
maxLength: 40
address2:
type:
- string
- 'null'
minLength: 1
maxLength: 40
city:
type: string
minLength: 1
maxLength: 40
state:
type: string
minLength: 2
maxLength: 2
postal_code:
type: string
minLength: 5
maxLength: 10
pattern: ^[0-9]{5}(-[0-9]{4})?$
example: '11201'
country:
type: string
minLength: 3
maxLength: 3
pattern: ^[A-Z]{3}$
example: USD
required:
- address1
- city
- state
- postal_code
- country
bank_account_api_response:
title: Bank Account Api Response
type: object
properties:
token:
description: >-
A globally unique identifier for this record of an external bank account association. If a program
links an external bank account to more than one end-user or to both the program and the end-user,
then Lithic will return each record of the association
type: string
format: uuid
owner:
description: >-
Legal Name of the business or individual who owns the external account. This will appear in
statements
type: string
routing_number:
description: Routing Number
type: string
last_four:
description: The last 4 digits of the bank account. Derived by Lithic from the account number passed
type: string
name:
description: The nickname for this External Bank Account
type:
- string
- 'null'
currency:
description: currency of the external account 3-character alphabetic ISO 4217 code
type: string
country:
description: >-
The country that the bank account is located in using ISO 3166-1. We will only accept USA bank
accounts e.g., USA
type: string
account_token:
description: >-
Indicates which Lithic account the external account is associated with. For external accounts that
are associated with the program, account_token field returned will be null
type:
- string
- 'null'
format: uuid
created:
description: An ISO 8601 string representing when this funding source was added to the Lithic account.
type: string
format: date-time
company_id:
description: Optional field that helps identify bank accounts in receipts
type:
- string
- 'null'
dob:
description: Date of Birth of the Individual that owns the external bank account
title: Date of Birth
type:
- string
- 'null'
format: date
doing_business_as:
description: Doing Business As
type:
- string
- 'null'
user_defined_id:
description: User Defined ID
title: User Defined ID
type:
- string
- 'null'
verification_failed_reason:
description: >-
Optional free text description of the reason for the failed verification. For ACH micro-deposits
returned, this field will display the reason return code sent by the ACH network
type:
- string
- 'null'
verification_attempts:
description: The number of attempts at verification
type: integer
financial_account_token:
description: The financial account token of the operating account to fund the micro deposits
type:
- string
- 'null'
format: uuid
type:
description: Account Type
$ref: '#/components/schemas/account_type'
verification_method:
description: Verification Method
$ref: '#/components/schemas/verification_method'
owner_type:
description: Owner Type
$ref: '#/components/schemas/owner_type'
state:
description: Account State
$ref: '#/components/schemas/account_state'
verification_state:
description: Verification State
$ref: '#/components/schemas/verification_state'
address:
description: Address
oneOf:
- type: 'null'
- $ref: '#/components/schemas/external_bank_account_address'
required:
- token
- type
- verification_method
- owner_type
- owner
- state
- verification_state
- routing_number
- last_four
- currency
- country
- created
- verification_attempts
bank_accounts_api_response:
title: Bank Accounts Api Response
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/bank_account_api_response_unlinked'
has_more:
type: boolean
required:
- data
- has_more
bank_verified_verification_method:
type: string
enum:
- MICRO_DEPOSIT
- PRENOTE
title: Bank Verified Verification Methods
bank_verified_create_bank_account_api_request:
title: Bank Verified Create Bank Account Api Request
type: object
properties:
verification_method:
description: Verification Method
$ref: '#/components/schemas/verification_method'
owner_type:
description: Owner Type
$ref: '#/components/schemas/owner_type'
owner:
description: >-
Legal Name of the business or individual who owns the external account. This will appear in
statements
type: string
minLength: 1
maxLength: 100
pattern: ^[!-~ ]*$
account_token:
description: >-
Indicates which Lithic account the external account is associated with. For external accounts that
are associated with the program, account_token field returned will be null
type: string
format: uuid
company_id:
description: Optional field that helps identify bank accounts in receipts
type: string
minLength: 1
maxLength: 10
pattern: ^[a-zA-Z0-9]*$
doing_business_as:
description: Doing Business As
type: string
minLength: 1
maxLength: 40
dob:
description: Date of Birth of the Individual that owns the external bank account
title: Date of Birth
type: string
format: date
user_defined_id:
description: User Defined ID
title: User Defined ID
type: string
minLength: 1
maxLength: 256
type:
description: Account Type
$ref: '#/components/schemas/account_type'
x-stainless-naming:
java:
type_name: AccountType
routing_number:
description: Routing Number
type: string
minLength: 9
maxLength: 9
pattern: ^[0-9]{9}$
example: '123456789'
account_number:
description: Account Number
type: string
minLength: 1
maxLength: 17
pattern: ^[0-9-]{1,17}$
example: '12345678901234567'
name:
description: The nickname for this External Bank Account
type: string
minLength: 1
maxLength: 50
pattern: ^[!-~ ]*$
country:
description: >-
The country that the bank account is located in using ISO 3166-1. We will only accept USA bank
accounts e.g., USA
type: string
minLength: 3
maxLength: 3
pattern: ^[A-Z]{3}$
example: USD
currency:
description: currency of the external account 3-character alphabetic ISO 4217 code
type: string
minLength: 3
maxLength: 3
pattern: ^[A-Z]{3}$
example: USD
verification_enforcement:
type: boolean
default: true
address:
description: Address
$ref: '#/components/schemas/external_bank_account_address'
financial_account_token:
description: The financial account token of the operating account to fund the micro deposits
type: string
format: uuid
required:
- type
- routing_number
- account_number
- country
- currency
- verification_method
- owner_type
- owner
- financial_account_token
externally_verified_verification_method:
type: string
enum:
- EXTERNALLY_VERIFIED
title: Externally Verified Verification Methods
externally_verified_create_bank_account_api_request:
title: Externally Verified Create Bank Account Api Request
type: object
properties:
verification_method:
description: Verification Method
$ref: '#/components/schemas/externally_verified_verification_method'
owner_type:
description: Owner Type
$ref: '#/components/schemas/owner_type'
owner:
description: >-
Legal Name of the business or individual who owns the external account. This will appear in
statements
type: string
minLength: 1
maxLength: 100
pattern: ^[!-~ ]*$
account_token:
description: >-
Indicates which Lithic account the external account is associated with. For external accounts that
are associated with the program, account_token field returned will be null
type: string
format: uuid
company_id:
description: Optional field that helps identify bank accounts in receipts
type: string
minLength: 1
maxLength: 10
pattern: ^[a-zA-Z0-9]*$
doing_business_as:
description: Doing Business As
type: string
minLength: 1
maxLength: 40
dob:
description: Date of Birth of the Individual that owns the external bank account
title: Date of Birth
type: string
format: date
user_defined_id:
description: User Defined ID
title: User Defined ID
type: string
minLength: 1
maxLength: 256
type:
description: Account Type
$ref: '#/components/schemas/account_type'
routing_number:
description: Routing Number
type: string
minLength: 9
maxLength: 9
pattern: ^[0-9]{9}$
example: '123456789'
account_number:
description: Account Number
type: string
minLength: 1
maxLength: 17
pattern: ^[0-9-]{1,17}$
example: '12345678901234567'
name:
description: The nickname for this External Bank Account
type: string
minLength: 1
maxLength: 50
pattern: ^[!-~ ]*$
country:
description: >-
The country that the bank account is located in using ISO 3166-1. We will only accept USA bank
accounts e.g., USA
type: string
minLength: 3
maxLength: 3
pattern: ^[A-Z]{3}$
example: USD
currency:
description: currency of the external account 3-character alphabetic ISO 4217 code
type: string
minLength: 3
maxLength: 3
pattern: ^[A-Z]{3}$
example: USD
address:
description: Address
$ref: '#/components/schemas/external_bank_account_address'
required:
- type
- routing_number
- account_number
- country
- currency
- verification_method
- owner_type
- owner
unverified_verification_method:
type: string
enum:
- UNVERIFIED
title: Unverified Verification Methods
unverified_create_bank_account_api_request:
title: Unverified Create Bank Account Api Request
type: object
properties:
verification_method:
description: Verification Method
$ref: '#/components/schemas/unverified_verification_method'
owner_type:
description: Owner Type
$ref: '#/components/schemas/owner_type'
owner:
description: >-
Legal Name of the business or individual who owns the external account. This will appear in
statements
type: string
minLength: 1
maxLength: 100
pattern: ^[!-~ ]*$
account_token:
description: >-
Indicates which Lithic account the external account is associated with. For external accounts that
are associated with the program, account_token field returned will be null
type: string
format: uuid
company_id:
description: Optional field that helps identify bank accounts in receipts
type: string
minLength: 1
maxLength: 10
pattern: ^[a-zA-Z0-9]*$
doing_business_as:
description: Doing Business As
type: string
minLength: 1
maxLength: 40
dob:
description: Date of Birth of the Individual that owns the external bank account
title: Date of Birth
type: string
format: date
user_defined_id:
description: User Defined ID
title: User Defined ID
type: string
minLength: 1
maxLength: 256
type:
description: Account Type
$ref: '#/components/schemas/account_type'
routing_number:
description: Routing Number
type: string
minLength: 9
maxLength: 9
pattern: ^[0-9]{9}$
example: '123456789'
account_number:
description: Account Number
type: string
minLength: 1
maxLength: 17
pattern: ^[0-9-]{1,17}$
example: '12345678901234567'
name:
description: The nickname for this External Bank Account
type: string
minLength: 1
maxLength: 50
pattern: ^[!-~ ]*$
country:
description: >-
The country that the bank account is located in using ISO 3166-1. We will only accept USA bank
accounts e.g., USA
type: string
minLength: 3
maxLength: 3
pattern: ^[A-Z]{3}$
example: USD
currency:
description: currency of the external account 3-character alphabetic ISO 4217 code
type: string
minLength: 3
maxLength: 3
pattern: ^[A-Z]{3}$
example: USD
address:
description: Address
$ref: '#/components/schemas/external_bank_account_address'
required:
- type
- routing_number
- account_number
- country
- currency
- verification_method
- owner_type
- owner
create_external_bank_account_error_response_context:
title: Create External Bank Account Api Response Context
type: object
properties:
existing_token:
type: string
format: uuid
description: The existing external bank account token.
required:
- existing_token
create_external_bank_account_error_response:
title: Create External Bank Account Api Response
type: object
properties:
debugging_request_id:
type: string
format: uuid
description: Identifier to help debug an error.
message:
type: string
description: Explanation of error response.
context:
description: context
$ref: '#/components/schemas/create_external_bank_account_error_response_context'
required:
- debugging_request_id
- message
- context
account_type_external:
type: string
enum:
- CHECKING
- SAVINGS
title: Account Type External
update_bank_account_api_request:
title: Update Bank Account Api Request
type: object
properties:
owner:
description: >-
Legal Name of the business or individual who owns the external account. This will appear in
statements
type: string
minLength: 1
maxLength: 100
pattern: ^[!-~ ]*$
owner_type:
description: Owner Type
$ref: '#/components/schemas/owner_type'
name:
description: The nickname for this External Bank Account
type: string
minLength: 1
maxLength: 50
pattern: ^[!-~ ]*$
company_id:
description: Optional field that helps identify bank accounts in receipts
type: string
minLength: 1
maxLength: 10
pattern: ^[a-zA-Z0-9]*$
address:
description: Address
$ref: '#/components/schemas/external_bank_account_address'
dob:
description: Date of Birth of the Individual that owns the external bank account
title: Date of Birth
type: string
format: date
doing_business_as:
description: Doing Business As
type: string
minLength: 1
maxLength: 40
user_defined_id:
description: User Defined ID
title: User Defined ID
type: string
minLength: 1
maxLength: 256
type:
$ref: '#/components/schemas/account_type_external'
micro_deposit_verification_request:
title: Micro Deposit Verification Request
type: object
properties:
micro_deposits:
type: array
title: Micro Deposits
maxItems: 2
minItems: 2
items:
type: integer
required:
- micro_deposits
retry_micro_deposit_verification_request:
title: Retry Micro Deposit Verification Request
type: object
properties:
financial_account_token:
type: string
format: uuid
retry_prenote_verification_request:
title: Retry Prenote Verification Request
type: object
properties:
financial_account_token:
type: string
format: uuid
set_verification_method_allowed_verification_methods:
type: string
enum:
- MICRO_DEPOSIT
- PRENOTE
- EXTERNALLY_VERIFIED
title: Set Verification Method Allowed Verification Methods
set_verification_method_request:
title: Set Verification Method Request
type: object
properties:
verification_method:
description: The verification method to set for the external bank account
type: string
$ref: '#/components/schemas/set_verification_method_allowed_verification_methods'
financial_account_token:
description: >-
The financial account token of the operating account to fund the micro deposits. Required when
verification_method is MICRO_DEPOSIT or PRENOTE.
type: string
format: uuid
required:
- verification_method
extended_credit:
title: Extended Credit
type: object
properties:
credit_extended:
type: integer
required:
- credit_extended
interest_rate:
title: Interest Rate
type: object
properties:
effective_date:
type: string
format: date
description: Date the rate goes into effect
rate:
type: string
description: The rate in decimal format
required:
- effective_date
- rate
prime_rates_response:
title: Prime Rates Response
type: object
properties:
data:
description: List of prime rates
type: array
items:
$ref: '#/components/schemas/interest_rate'
has_more:
description: Whether there are more prime rates
type: boolean
required:
- data
- has_more
instance-financial-account-type:
title: Instance Financial Account Type
description: Type of instance financial account
type: string
enum:
- ISSUING
- RESERVE
- OPERATING
- CHARGED_OFF_FEES
- CHARGED_OFF_INTEREST
- CHARGED_OFF_PRINCIPAL
- SECURITY
- PROGRAM_RECEIVABLES
- COLLECTION
- PROGRAM_BANK_ACCOUNTS_PAYABLE
- EARLY_DIRECT_DEPOSIT_FLOAT
account-financial-account-type:
title: Account Financial Account Type
description: Type of account financial account
type: string
enum:
- ISSUING
- OPERATING
financial-account-status:
title: Financial Account Status
description: Status of the financial account
type: string
enum:
- OPEN
- CLOSED
- SUSPENDED
- PENDING
financial-account-substatus:
title: Financial Account Substatus
description: Substatus for the financial account
type: string
enum:
- CHARGED_OFF_DELINQUENT
- CHARGED_OFF_FRAUD
- END_USER_REQUEST
- BANK_REQUEST
- DELINQUENT
- INTEREST_AND_FEES_PAUSED
auto-collection-configuration-response:
title: Auto Collection Configuration Response
type: object
properties:
auto_collection_enabled:
type: boolean
description: If auto collection is enabled for this account
required:
- auto_collection_enabled
financial-account-credit-config:
title: Financial Account Credit Config
type:
- object
- 'null'
properties:
credit_limit:
type:
- integer
- 'null'
external_bank_account_token:
type:
- string
- 'null'
format: uuid
credit_product_token:
type:
- string
- 'null'
description: Globally unique identifier for the credit product
tier:
type:
- string
- 'null'
description: Tier assigned to the financial account
auto_collection_configuration:
oneOf:
- type: 'null'
- $ref: '#/components/schemas/auto-collection-configuration-response'
required:
- credit_limit
- external_bank_account_token
- credit_product_token
- tier
- auto_collection_configuration
financial-account-response:
title: Financial Account Response
type: object
properties:
token:
type: string
description: Globally unique identifier for the account
example: b68b7424-aa69-4cbc-a946-30d90181b621
format: uuid
created:
type: string
format: date-time
updated:
type: string
format: date-time
type:
anyOf:
- $ref: '#/components/schemas/instance-financial-account-type'
- $ref: '#/components/schemas/account-financial-account-type'
routing_number:
type:
- string
- 'null'
account_number:
type:
- string
- 'null'
nickname:
type:
- string
- 'null'
account_token:
type:
- string
- 'null'
format: uuid
status:
$ref: '#/components/schemas/financial-account-status'
substatus:
oneOf:
- type: 'null'
- $ref: '#/components/schemas/financial-account-substatus'
user_defined_status:
type:
- string
- 'null'
description: User-defined status for the financial account
is_for_benefit_of:
type: boolean
description: Whether financial account is for the benefit of another entity
credit_configuration:
$ref: '#/components/schemas/financial-account-credit-config'
required:
- token
- created
- updated
- type
- nickname
- is_for_benefit_of
- account_token
- credit_configuration
- status
- substatus
- user_defined_status
financial-accounts-response:
title: Financial Accounts Response
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/financial-account-response'
has_more:
type: boolean
required:
- data
- has_more
CreateFinancialAccountRequest:
properties:
account_token:
format: uuid
title: Account token to create the new account under
type: string
nickname:
maxLength: 256
title: Nickname of the financial account
type: string
type:
enum:
- OPERATING
title: Account Type
type: string
is_for_benefit_of:
title: Is For Benefit Of
type: boolean
required:
- nickname
- type
title: CreateFinancialAccountRequest
type: object
UpdateFinancialAccountRequest:
properties:
nickname:
maxLength: 256
title: Nickname
type: string
title: UpdateFinancialAccountRequest
type: object
financial-account-credit-config-response:
title: Financial Account Credit Configuration Response
type: object
properties:
account_token:
type: string
description: Globally unique identifier for the account
example: b68b7424-aa69-4cbc-a946-30d90181b621
format: uuid
credit_limit:
type:
- integer
- 'null'
external_bank_account_token:
type:
- string
- 'null'
format: uuid
credit_product_token:
type:
- string
- 'null'
description: Globally unique identifier for the credit product
tier:
type:
- string
- 'null'
description: Tier assigned to the financial account
auto_collection_configuration:
$ref: '#/components/schemas/auto-collection-configuration-response'
required:
- account_token
- credit_limit
- external_bank_account_token
- credit_product_token
- tier
- auto_collection_configuration
auto-collection-configuration-request:
title: Auto Collection Configuration Request
type: object
properties:
auto_collection_enabled:
type: boolean
description: If auto collection is enabled for this account
required: []
financial-account-credit-config-request:
title: Financial Account Credit Configuration Request
type: object
properties:
credit_limit:
type: integer
minimum: 0
external_bank_account_token:
type: string
format: uuid
credit_product_token:
type: string
description: Globally unique identifier for the credit product
tier:
type: string
description: Tier to assign to a financial account
minLength: 1
auto_collection_configuration:
$ref: '#/components/schemas/auto-collection-configuration-request'
required: []
register_account_number_request:
title: Register Account Number Request
type: object
properties:
account_number:
type: string
required:
- account_number
hold_status:
title: Hold Status
description: Status of a hold transaction
type: string
enum:
- PENDING
- SETTLED
- EXPIRED
- VOIDED
transaction_status:
title: Transaction Status
type: string
enum:
- PENDING
- SETTLED
- DECLINED
- REVERSED
- CANCELED
- RETURNED
base_transaction:
title: base_transaction
description: Base class for all transaction types in the ledger service
type: object
properties:
status:
$ref: '#/components/schemas/transaction_status'
description: The status of the transaction
token:
type: string
description: Unique identifier for the transaction
format: uuid
created:
type: string
description: ISO 8601 timestamp of when the transaction was created
format: date-time
updated:
type: string
description: ISO 8601 timestamp of when the transaction was last updated
format: date-time
required:
- status
- token
- created
- updated
transaction_result:
title: Transaction Result
type: string
enum:
- APPROVED
- DECLINED
hold_event_type:
title: Hold Event Type
description: Type of hold lifecycle event
type: string
enum:
- HOLD_INITIATED
- HOLD_VOIDED
- HOLD_EXPIRED
- HOLD_SETTLED
detailed_results:
title: Detailed Results
type: string
enum:
- APPROVED
- INSUFFICIENT_FUNDS
hold_event:
title: Hold Event
description: Event representing a lifecycle change to a hold
type: object
properties:
token:
type: string
format: uuid
type:
$ref: '#/components/schemas/hold_event_type'
result:
$ref: '#/components/schemas/transaction_result'
detailed_results:
type: array
items:
$ref: '#/components/schemas/detailed_results'
amount:
type: integer
description: Amount in cents
created:
type: string
format: date-time
memo:
type:
- string
- 'null'
settling_transaction_token:
type:
- string
- 'null'
format: uuid
description: Transaction token of the payment that settled this hold (only populated for HOLD_SETTLED events)
required:
- token
- type
- result
- detailed_results
- amount
- created
- memo
- settling_transaction_token
hold_transaction:
title: Hold Transaction
description: >-
A hold transaction representing reserved funds on a financial account. Holds move funds from available
to pending balance in anticipation of future payments. They can be resolved via settlement (linked to
payment), manual release, or expiration.
allOf:
- $ref: '#/components/schemas/base_transaction'
- type: object
properties:
family:
type: string
const: HOLD
description: HOLD - Hold Transaction
result:
$ref: '#/components/schemas/transaction_result'
status:
$ref: '#/components/schemas/hold_status'
financial_account_token:
type: string
format: uuid
pending_amount:
type: integer
description: Current pending amount (0 when resolved)
currency:
type: string
events:
type: array
items:
$ref: '#/components/schemas/hold_event'
user_defined_id:
type:
- string
- 'null'
expiration_datetime:
type:
- string
- 'null'
format: date-time
description: When the hold will auto-expire if not resolved
required:
- family
- result
- status
- financial_account_token
- pending_amount
- currency
- events
- user_defined_id
- expiration_datetime
holds_response:
title: Holds Response
description: Paginated response containing hold transactions
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/hold_transaction'
has_more:
type: boolean
required:
- data
- has_more
create_hold_request:
title: Create Hold Request
description: Request to create a new hold on a financial account
type: object
properties:
amount:
type: integer
minimum: 1
description: Amount to hold in cents
memo:
type:
- string
- 'null'
description: Reason for the hold
token:
type: string
format: uuid
description: Customer-provided token for idempotency. Becomes the hold token.
expiration_datetime:
type: string
format: date-time
description: When the hold should auto-expire
user_defined_id:
type: string
description: User-provided identifier for the hold
required:
- amount
void_hold_request:
title: Void Hold Request
description: Request to void an active hold
type: object
properties:
memo:
type:
- string
- 'null'
description: Reason for voiding the hold
payment_details:
title: Payment Details
description: Breakdown of payments
type: object
patternProperties:
^.*$:
type: object
patternProperties:
^.*$:
type: integer
description: Amount in cents for this payment category and event type combination
additionalProperties: false
additionalProperties: false
debit_details:
title: Debit Details
description: Breakdown of debits
type: object
patternProperties:
^.*$:
type: object
patternProperties:
^.*$:
type: integer
description: Amount in cents for this debit category and event type combination
additionalProperties: false
additionalProperties: false
credit_details:
title: Credit Details
description: Breakdown of credits
type: object
patternProperties:
^.*$:
type: object
patternProperties:
^.*$:
type: integer
description: Amount in cents for this credit category and event type combination
additionalProperties: false
additionalProperties: false
statement_totals:
title: Statement Totals
type: object
properties:
payments:
type: integer
description: Any funds transfers which affective the balance in cents
payment_details:
$ref: '#/components/schemas/payment_details'
purchases:
type: integer
description: Net card transaction volume less any cash advances in cents
fees:
type: integer
description: Volume of debit management operation transactions less any interest in cents
debits:
type: integer
description: Volume of debit management operation transactions less any interest in cents
debit_details:
$ref: '#/components/schemas/debit_details'
credits:
type: integer
description: Volume of credit management operation transactions less any balance transfers in cents
credit_details:
$ref: '#/components/schemas/credit_details'
interest:
type: integer
description: Interest accrued in cents
cash_advances:
type: integer
description: ATM and cashback transactions in cents
balance_transfers:
type: integer
description: Opening balance transferred from previous account in cents
required:
- payments
- purchases
- fees
- debits
- credits
- interest
- cash_advances
- balance_transfers
period_state:
type: string
enum:
- STANDARD
- PROMO
- PENALTY
title: Period State
financial_account_state:
title: Financial Account State
description: Information about the financial account state
type: object
properties:
status:
$ref: '#/components/schemas/financial-account-status'
substatus:
oneOf:
- $ref: '#/components/schemas/financial-account-substatus'
- type: 'null'
required:
- status
account_standing:
title: Account Standing
type: object
properties:
period_state:
$ref: '#/components/schemas/period_state'
period_number:
description: Current overall period number
type: integer
consecutive_minimum_payments_made:
description: Number of consecutive minimum payments made
type: integer
consecutive_minimum_payments_missed:
description: Number of consecutive minimum payments missed
type: integer
consecutive_full_payments_made:
description: Number of consecutive full payments made
type: integer
days_past_due:
description: Number of days past due
type: integer
has_grace:
description: Whether the account currently has grace or not
type: boolean
financial_account_state:
$ref: '#/components/schemas/financial_account_state'
required:
- period_state
- period_number
- consecutive_minimum_payments_made
- consecutive_minimum_payments_missed
- consecutive_full_payments_made
- days_past_due
- has_grace
- financial_account_state
amount_due:
title: Amount Due
type: object
properties:
amount:
description: >-
Payment due at the end of the billing period in cents. Negative amount indicates something is
owed. If the amount owed is positive there was a net credit. If auto-collections are enabled this
is the amount that will be requested on the payment due date
type: integer
past_due:
description: Amount past due for statement in cents
type: integer
required:
- amount
- past_due
payoff_details:
title: Payoff Details
description: Details on number and size of payments to pay off balance
type: object
properties:
minimum_payment_months:
description: >-
The number of months it would take to pay off the balance in full by only paying the minimum
payment. "NA" will signal negative or zero amortization
type: string
minimum_payment_total:
description: >-
The sum of all interest and principal paid, in cents, when only paying minimum monthly payment.
"NA" will signal negative or zero amortization
type: string
payoff_period_length_months:
description: Number of months to full pay off
type:
- integer
- 'null'
payoff_period_monthly_payment_amount:
description: >-
The amount needed to be paid, in cents, each month in order to pay off current balance in the
payoff period
type:
- integer
- 'null'
payoff_period_payment_total:
description: The sum of all interest and principal paid, in cents, when paying off in the payoff period
type:
- integer
- 'null'
required:
- minimum_payment_months
- minimum_payment_total
- payoff_period_length_months
- payoff_period_monthly_payment_amount
- payoff_period_payment_total
interest_calculation_method:
type: string
enum:
- DAILY
- AVERAGE_DAILY
title: Interest Calculation method
category_details:
title: Category Details
type: object
properties:
purchases:
type: string
cash_advances:
type: string
balance_transfers:
type: string
required:
- purchases
- cash_advances
- balance_transfers
interest_details:
title: Interest Details
type: object
properties:
prime_rate:
type:
- string
- 'null'
interest_calculation_method:
$ref: '#/components/schemas/interest_calculation_method'
effective_apr:
$ref: '#/components/schemas/category_details'
interest_for_period:
$ref: '#/components/schemas/category_details'
daily_balance_amounts:
$ref: '#/components/schemas/category_details'
minimum_interest_charged:
type:
- integer
- 'null'
actual_interest_charged:
type:
- integer
- 'null'
required:
- prime_rate
- interest_calculation_method
- effective_apr
- interest_for_period
- actual_interest_charged
- daily_balance_amounts
statement_type:
type: string
enum:
- INITIAL
- PERIOD_END
- FINAL
title: Statement Type
statement_response:
title: Statement Response
type: object
properties:
token:
type: string
description: Globally unique identifier for a statement
title: Statement Token
financial_account_token:
description: Globally unique identifier for a financial account
type: string
format: uuid
statement_start_date:
description: Date when the billing period began
type: string
format: date
statement_end_date:
description: Date when the billing period ended
type: string
format: date
next_statement_end_date:
description: Date when the next billing period will end
type: string
format: date
payment_due_date:
oneOf:
- type: 'null'
- description: Date when the payment is due
type: string
format: date
next_payment_due_date:
description: Date when the next payment is due
type: string
format: date
days_in_billing_cycle:
description: Number of days in the billing cycle
type: integer
credit_limit:
description: This is the maximum credit balance extended by the lender in cents
type: integer
available_credit:
description: Amount of credit available to spend in cents
type: integer
starting_balance:
description: Balance at the start of the billing period
type: integer
ending_balance:
description: >-
Balance at the end of the billing period. For charge cards, this should be the same at the
statement amount due in cents
type: integer
period_totals:
$ref: '#/components/schemas/statement_totals'
ytd_totals:
$ref: '#/components/schemas/statement_totals'
created:
description: Timestamp of when the statement was created
type: string
format: date-time
updated:
description: Timestamp of when the statement was updated
type: string
format: date-time
credit_product_token:
description: Globally unique identifier for a credit product
type: string
account_standing:
$ref: '#/components/schemas/account_standing'
amount_due:
$ref: '#/components/schemas/amount_due'
payoff_details:
oneOf:
- type: 'null'
- $ref: '#/components/schemas/payoff_details'
interest_details:
anyOf:
- type: 'null'
- $ref: '#/components/schemas/interest_details'
statement_type:
$ref: '#/components/schemas/statement_type'
required:
- token
- financial_account_token
- statement_start_date
- statement_end_date
- payment_due_date
- days_in_billing_cycle
- credit_limit
- available_credit
- starting_balance
- ending_balance
- amount_due
- period_totals
- ytd_totals
- created
- updated
- credit_product_token
- account_standing
- statement_type
statements_response:
title: Statements Response
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/statement_response'
has_more:
type: boolean
required:
- data
- has_more
transaction_category:
title: Transaction Category
description: >-
Note: Inbound wire transfers are coming soon (availability varies by partner bank). The WIRE category
is a preview. To learn more, contact your customer success manager.
type: string
enum:
- ACH
- WIRE
- BALANCE_OR_FUNDING
- FEE
- REWARD
- ADJUSTMENT
- DERECOGNITION
- DISPUTE
- CARD
- EXTERNAL_ACH
- EXTERNAL_CHECK
- EXTERNAL_FEDNOW
- EXTERNAL_RTP
- EXTERNAL_TRANSFER
- EXTERNAL_WIRE
- MANAGEMENT_ADJUSTMENT
- MANAGEMENT_DISPUTE
- MANAGEMENT_FEE
- MANAGEMENT_REWARD
- MANAGEMENT_DISBURSEMENT
- HOLD
- PROGRAM_FUNDING
statement_line_item_response:
title: Statement Line Item Response
type: object
properties:
token:
type: string
description: Globally unique identifier for a Statement Line Item
financial_account_token:
description: Globally unique identifier for a financial account
type: string
format: uuid
card_token:
description: Globally unique identifier for a card
type: string
format: uuid
financial_transaction_token:
description: Globally unique identifier for a financial transaction
type: string
format: uuid
financial_transaction_event_token:
description: Globally unique identifier for a financial transaction event
type: string
format: uuid
category:
$ref: '#/components/schemas/transaction_category'
event_type:
$ref: '#/components/schemas/financial_event_type'
event_subtype:
type:
- string
- 'null'
description: Subtype of the event that generated the line items
loan_tape_date:
type:
- string
- 'null'
format: date
description: Date of the loan tape that generated this line item
effective_date:
description: Date that the transaction effected the account balance
type: string
format: date
descriptor:
type: string
amount:
type: integer
description: Transaction amount in cents
currency:
type: string
description: 3-character alphabetic ISO 4217 code for the settling currency of the transaction
created:
type: string
format: date-time
description: Timestamp of when the line item was generated
required:
- token
- financial_account_token
- financial_transaction_token
- financial_transaction_event_token
- category
- event_type
- effective_date
- amount
- currency
- created
statement_line_items_response:
title: Statement Line Items Response
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/statement_line_item_response'
has_more:
type: boolean
required:
- data
- has_more
category_balances:
title: Category Balances
type: object
properties:
interest:
type: integer
principal:
type: integer
fees:
type: integer
required:
- interest
- principal
- fees
balances:
title: Balances
type: object
properties:
past_due:
description: Amount not paid off on previous due dates
$ref: '#/components/schemas/category_balances'
due:
description: >-
Amount due for the prior billing cycle. Any amounts not fully paid off on this due date will be
considered past due the next day
$ref: '#/components/schemas/category_balances'
past_statements_due:
description: Amount due for the past billing cycles.
$ref: '#/components/schemas/category_balances'
next_statement_due:
description: >-
Amount due for the current billing cycle. Any amounts not paid off by early payments or credits
will be considered due at the end of the current billing period
$ref: '#/components/schemas/category_balances'
required:
- past_due
- due
- past_statements_due
- next_statement_due
payment_allocation:
title: Payment Allocation
type: object
properties:
interest:
type: integer
description: Amount allocated to interest in cents
principal:
type: integer
description: Amount allocated to principal in cents
fees:
type: integer
description: Amount allocated to fees in cents
interest_details:
anyOf:
- type: 'null'
- $ref: '#/components/schemas/category_details'
principal_details:
anyOf:
- type: 'null'
- $ref: '#/components/schemas/category_details'
fee_details:
anyOf:
- type: 'null'
- $ref: '#/components/schemas/category_details'
required:
- interest
- principal
- fees
- interest_details
- principal_details
- fee_details
balance_details:
title: Balance Details
type: object
properties:
amount:
type: integer
remaining:
type: integer
required:
- amount
- remaining
loan_tape_response:
title: Loan Tape Response
type: object
properties:
token:
type: string
description: Globally unique identifier for a loan tape
title: Loan Tape Token
financial_account_token:
description: Globally unique identifier for a financial account
type: string
format: uuid
date:
description: Date of transactions that this loan tape covers
type: string
format: date
created:
description: Timestamp of when the loan tape was created
type: string
format: date-time
updated:
description: Timestamp of when the loan tape was updated
type: string
format: date-time
version:
description: Version number of the loan tape. This starts at 1
type: integer
ytd_totals:
$ref: '#/components/schemas/statement_totals'
period_totals:
$ref: '#/components/schemas/statement_totals'
day_totals:
$ref: '#/components/schemas/statement_totals'
balances:
$ref: '#/components/schemas/balances'
starting_balance:
description: Balance at the start of the day
type: integer
ending_balance:
description: Balance at the end of the day
type: integer
credit_limit:
description: >-
For prepay accounts, this is the minimum prepay balance that must be maintained. For charge card
accounts, this is the maximum credit balance extended by a lender
type: integer
available_credit:
description: Amount of credit available to spend in cents
type: integer
excess_credits:
description: >-
Excess credits in the form of provisional credits, payments, or purchase refunds. If positive, the
account is in net credit state with no outstanding balances. An overpayment could land an account
in this state
type: integer
account_standing:
$ref: '#/components/schemas/account_standing'
credit_product_token:
description: Globally unique identifier for a credit product
type: string
tier:
description: Interest tier to which this account belongs to
type:
- string
- 'null'
payment_allocation:
$ref: '#/components/schemas/payment_allocation'
minimum_payment_balance:
$ref: '#/components/schemas/balance_details'
previous_statement_balance:
$ref: '#/components/schemas/balance_details'
interest_details:
anyOf:
- type: 'null'
- $ref: '#/components/schemas/interest_details'
required:
- token
- financial_account_token
- date
- created
- updated
- version
- ytd_totals
- period_totals
- day_totals
- credit_limit
- excess_credits
- account_standing
- credit_product_token
- payment_allocation
- balances
- minimum_payment_balance
- previous_statement_balance
- starting_balance
- ending_balance
- available_credit
- interest_details
loan_tapes_response:
title: Loan Tapes Response
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/loan_tape_response'
has_more:
type: boolean
required:
- data
- has_more
loan_tape_rebuild_configuration:
title: Loan Tape Rebuild Configuration
description: Configuration for building loan tapes
type: object
properties:
rebuild_needed:
type: boolean
description: Whether the account's loan tapes need to be rebuilt or not
rebuild_from:
type: string
format: date
description: Date from which to start rebuilding from if the account requires a rebuild
last_rebuild:
type: string
format: date
description: The date for which the account's loan tapes were last rebuilt
required:
- rebuild_needed
loan_tape_configuration:
title: Loan Tape Configuration
description: Configuration for loan tapes
type: object
properties:
instance_token:
type: string
format: uuid
financial_account_token:
type: string
format: uuid
credit_product_token:
type: string
loan_tape_rebuild_configuration:
$ref: '#/components/schemas/loan_tape_rebuild_configuration'
tier_schedule_changed_at:
type: string
format: date-time
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
required:
- instance_token
- financial_account_token
- created_at
- updated_at
category_tier:
title: Category Tier
description: Rate and rate cap for interest on a category
type: object
properties:
rate:
type: string
description: Interest rate for this category, e.g. '0.0525' for 5.25%
cap_rate:
type: string
description: Maximum interest rate for this category, e.g. '0.0525' for 5.25%
tier_schedule_entry:
title: Tier Schedule Entry
description: Entry in the Tier Schedule of an account
type: object
properties:
tier_name:
type: string
description: Name of a tier contained in the credit product. Mutually exclusive with tier_rates
effective_date:
type: string
format: date
description: Date the tier should be effective in YYYY-MM-DD format
tier_rates:
type: object
patternProperties:
^.*$:
$ref: '#/components/schemas/category_tier'
description: Custom rates per category. Mutually exclusive with tier_name
penalty_rates:
type: object
patternProperties:
^.*$:
$ref: '#/components/schemas/category_tier'
description: Custom rates per category for penalties
credit_product_token:
type: string
description: Globally unique identifier for a credit product
required:
- effective_date
- credit_product_token
tier_schedule_response:
title: Tier Schedule Response
description: Tier Schedule of the given account. Only applicable for credit products with v2 configuration
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/tier_schedule_entry'
has_more:
type: boolean
required:
- data
- has_more
update_tier_schedule_entry_request:
title: Update Tier Schedule Entry Request
description: Entry in the Tier Schedule of an account
type: object
properties:
tier_name:
type: string
description: Name of a tier contained in the credit product. Mutually exclusive with tier_rates
tier_rates:
type: object
patternProperties:
^.*$:
$ref: '#/components/schemas/category_tier'
description: Custom rates per category. Mutually exclusive with tier_name
penalty_rates:
type: object
patternProperties:
^.*$:
$ref: '#/components/schemas/category_tier'
description: Custom rates per category for penalties
update-financial-account-substatus:
title: Update Financial Account Substatus
description: Substatus for the financial account
type: string
enum:
- CHARGED_OFF_FRAUD
- END_USER_REQUEST
- BANK_REQUEST
- CHARGED_OFF_DELINQUENT
- INTEREST_AND_FEES_PAUSED
update-financial-account-status-request:
title: Update financial account status request
type: object
properties:
status:
$ref: '#/components/schemas/financial-account-status'
substatus:
oneOf:
- type: 'null'
- $ref: '#/components/schemas/update-financial-account-substatus'
user_defined_status:
type: string
description: User-defined status for the financial account
pattern: ^[A-Z0-9_ ]*$
maxLength: 100
required:
- status
- substatus
examples:
- status: CLOSED
substatus: END_USER_REQUEST
financial-transaction:
title: Financial Transaction
description: Financial transaction with inheritance from unified base transaction
allOf:
- $ref: '#/components/schemas/base_transaction'
- type: object
properties:
family:
type: string
const: INTERNAL
description: INTERNAL - Financial Transaction
category:
$ref: '#/components/schemas/transaction_category'
description: Transaction category
result:
$ref: '#/components/schemas/transaction_result'
description: Transaction result
currency:
type: string
description: Currency of the transaction, represented in ISO 4217 format
example: USD
settled_amount:
type: integer
description: Settled amount in cents
example: 200
pending_amount:
type: integer
description: Pending amount in cents
example: 500
events:
type: array
items:
$ref: '#/components/schemas/financial_event'
description: List of transaction events
descriptor:
type: string
description: Transaction descriptor
financial_account_token:
type: string
format: uuid
description: Financial account token associated with the transaction
example: 0cc87075-57cf-4607-8722-f42e2cb2c0cd
required:
- category
- currency
- family
- result
- settled_amount
- pending_amount
- events
- descriptor
- financial_account_token
book_transfer_category:
title: Book Transfer Category
type: string
enum:
- ADJUSTMENT
- BALANCE_OR_FUNDING
- DERECOGNITION
- DISPUTE
- FEE
- INTERNAL
- REWARD
- PROGRAM_FUNDING
- TRANSFER
book_transfer_type:
type: string
enum:
- ATM_BALANCE_INQUIRY
- ATM_WITHDRAWAL
- ATM_DECLINE
- INTERNATIONAL_ATM_WITHDRAWAL
- INACTIVITY
- STATEMENT
- MONTHLY
- QUARTERLY
- ANNUAL
- CUSTOMER_SERVICE
- ACCOUNT_MAINTENANCE
- ACCOUNT_ACTIVATION
- ACCOUNT_CLOSURE
- CARD_REPLACEMENT
- CARD_DELIVERY
- CARD_CREATE
- CURRENCY_CONVERSION
- INTEREST
- LATE_PAYMENT
- BILL_PAYMENT
- CASH_BACK
- ACCOUNT_TO_ACCOUNT
- CARD_TO_CARD
- DISBURSE
- BILLING_ERROR
- LOSS_WRITE_OFF
- EXPIRED_CARD
- EARLY_DERECOGNITION
- ESCHEATMENT
- INACTIVITY_FEE_DOWN
- PROVISIONAL_CREDIT
- DISPUTE_WON
- SERVICE
- TRANSFER
- COLLECTION
description: Type of the book transfer
title: Book Transfer Type
book_transfer_detailed_results:
title: Book Transfer Detailed Results
type: string
enum:
- APPROVED
- FUNDS_INSUFFICIENT
book_transfer_event:
title: Book Transfer Event
description: Book transfer Event
type: object
properties:
amount:
description: Amount of the financial event that has been settled in the currency's smallest unit (e.g., cents).
type: integer
type:
$ref: '#/components/schemas/book_transfer_type'
result:
description: >-
APPROVED financial events were successful while DECLINED financial events were declined by user,
Lithic, or the network.
type: string
enum:
- APPROVED
- DECLINED
created:
description: Date and time when the financial event occurred. UTC time zone.
type: string
format: date-time
token:
description: Globally unique identifier.
type: string
format: uuid
subtype:
description: The program specific subtype code for the specified category/type.
type: string
memo:
description: Memo for the transfer.
type: string
detailed_results:
type: array
items:
$ref: '#/components/schemas/book_transfer_detailed_results'
required:
- amount
- type
- result
- created
- token
- subtype
- memo
- detailed_results
transaction_series:
title: Transaction Series
type: object
properties:
type:
type: string
example: FEE
related_transaction_token:
oneOf:
- type: string
format: uuid
example: 123e4567-e89b-12d3-a456-426614174000
- type: 'null'
related_transaction_event_token:
oneOf:
- type: string
format: uuid
example: 123e4567-e89b-12d3-a456-426614174000
- type: 'null'
required:
- type
- related_transaction_token
- related_transaction_event_token
external_resource_type:
title: ExternalResourceType
type: string
enum:
- STATEMENT
- COLLECTION
- DISPUTE
- UNKNOWN
description: Type of external resource associated with the management operation
external_resource:
title: ExternalResource
type: object
required:
- external_resource_type
- external_resource_token
properties:
external_resource_type:
$ref: '#/components/schemas/external_resource_type'
external_resource_token:
type: string
description: Token identifying the external resource
external_resource_sub_token:
type: string
description: Token identifying the external resource sub-resource
description: External resource associated with the management operation
additionalProperties: false
book-transfer-transaction:
title: Book Transfer Transaction
description: Book transfer transaction
allOf:
- $ref: '#/components/schemas/base_transaction'
- type: object
properties:
family:
type: string
const: TRANSFER
description: TRANSFER - Book Transfer Transaction
result:
$ref: '#/components/schemas/transaction_result'
category:
$ref: '#/components/schemas/book_transfer_category'
currency:
type: string
description: 3-character alphabetic ISO 4217 code for the settling currency of the transaction
example: USD
settled_amount:
type: integer
description: Amount of the transaction that has been settled in the currency's smallest unit (e.g., cents)
example: 500
pending_amount:
type: integer
description: >
Pending amount of the transaction in the currency's smallest unit (e.g., cents), including any
acquirer fees.
The value of this field will go to zero over time once the financial transaction is settled.
example: 1000
events:
type: array
items:
$ref: '#/components/schemas/book_transfer_event'
description: A list of all financial events that have modified this transfer
from_financial_account_token:
type: string
format: uuid
description: >-
Globally unique identifier for the financial account or card that will send the funds.
Accepted type dependent on the program's use case
to_financial_account_token:
type: string
format: uuid
description: >-
Globally unique identifier for the financial account or card that will receive the funds.
Accepted type dependent on the program's use case
external_id:
description: External ID defined by the customer
oneOf:
- type: string
- type: 'null'
transaction_series:
description: A series of transactions that are grouped together
oneOf:
- $ref: '#/components/schemas/transaction_series'
- type: 'null'
external_resource:
description: An external resource associated with the transfer
oneOf:
- $ref: '#/components/schemas/external_resource'
- type: 'null'
required:
- family
- result
- category
- currency
- settled_amount
- pending_amount
- events
- from_financial_account_token
- to_financial_account_token
currency:
description: 3-character alphabetic ISO 4217 currency
example: USD
title: Currency
type: string
transaction_amounts:
title: Transaction Amounts
type: object
properties:
cardholder:
properties:
amount:
description: The estimated settled amount of the transaction in the cardholder billing currency.
type: integer
example: -1000
conversion_rate:
description: The exchange rate used to convert the merchant amount to the cardholder billing amount.
type: string
example: '1.000000'
currency:
$ref: '#/components/schemas/currency'
type: object
required:
- amount
- conversion_rate
- currency
hold:
properties:
amount:
description: The pending amount of the transaction in the anticipated settlement currency.
type: integer
example: 0
currency:
$ref: '#/components/schemas/currency'
type: object
required:
- amount
- currency
merchant:
properties:
amount:
description: The settled amount of the transaction in the merchant currency.
type: integer
example: -1000
currency:
$ref: '#/components/schemas/currency'
type: object
required:
- amount
- currency
settlement:
properties:
amount:
description: The settled amount of the transaction in the settlement currency.
type: integer
example: -1000
currency:
$ref: '#/components/schemas/currency'
type: object
required:
- amount
- currency
required:
- cardholder
- hold
- merchant
- settlement
avs:
title: Address Verification Service
type: object
properties:
address:
description: Cardholder address
type: string
zipcode:
description: Cardholder ZIP code
type: string
required:
- address
- zipcode
cardholder_authentication:
title: Cardholder Authentication
type: object
properties:
authentication_result:
description: Indicates the outcome of the 3DS authentication process.
enum:
- ATTEMPTS
- DECLINE
- NONE
- SUCCESS
example: SUCCESS
type: string
authentication_method:
description: Indicates the method used to authenticate the cardholder.
enum:
- FRICTIONLESS
- CHALLENGE
- NONE
example: FRICTIONLESS
type: string
decision_made_by:
description: Indicates which party made the 3DS authentication decision.
enum:
- CUSTOMER_RULES
- CUSTOMER_ENDPOINT
- LITHIC_DEFAULT
- LITHIC_RULES
- NETWORK
- UNKNOWN
example: LITHIC_RULES
type: string
liability_shift:
description: |
Indicates whether chargeback liability shift applies to the transaction. Possible enum values:
* `3DS_AUTHENTICATED`: The transaction was fully authenticated through a 3-D Secure flow, chargeback liability shift applies.
* `NONE`: Chargeback liability shift has not shifted to the issuer, i.e. the merchant is liable.
* `TOKEN_AUTHENTICATED`: The transaction was a tokenized payment with validated cryptography, possibly recurring. Chargeback liability shift to the issuer applies.
example: 3DS_AUTHENTICATED
enum:
- 3DS_AUTHENTICATED
- TOKEN_AUTHENTICATED
- NONE
type: string
three_ds_authentication_token:
oneOf:
- type: 'null'
description: 3DS authentication token not available.
- type: string
example: a6e372d0-b40a-43eb-b0d1-4e1aebef5875
format: uuid
description: >-
Unique identifier you can use to match a given 3DS authentication (available via the
three_ds_authentication.created event webhook) and the transaction. Note that in cases where
liability shift does not occur, this token is matched to the transaction on a best-effort
basis.
required:
- authentication_result
- authentication_method
- decision_made_by
- liability_shift
- three_ds_authentication_token
account_type:
type: string
enum:
- CHECKING
- SAVINGS
title: Searchable Account Type
x-stainless-naming:
java:
type_name: AccountType
transaction_event_amounts:
title: Transaction Event Amounts
type: object
properties:
cardholder:
type: object
properties:
amount:
description: Amount of the event in the cardholder billing currency.
type: integer
example: 1000
conversion_rate:
description: Exchange rate used to convert the merchant amount to the cardholder billing amount.
type: string
example: '1.000000'
currency:
$ref: '#/components/schemas/currency'
required:
- amount
- conversion_rate
- currency
merchant:
type: object
properties:
amount:
description: Amount of the event in the merchant currency.
type: integer
example: 1000
currency:
$ref: '#/components/schemas/currency'
required:
- amount
- currency
settlement:
type:
- object
- 'null'
properties:
amount:
description: >-
Amount of the event, if it is financial, in the settlement currency. Non-financial events do
not contain this amount because they do not move funds.
type: integer
example: 1000
conversion_rate:
description: Exchange rate used to convert the merchant amount to the settlement amount.
type: string
example: '1.000000'
currency:
$ref: '#/components/schemas/currency'
required:
- amount
- conversion_rate
- currency
required:
- cardholder
- merchant
- settlement
network_info:
title: Network Information
oneOf:
- type: 'null'
- type: object
description: >-
Information provided by the card network in each event. This includes common identifiers shared
between you, Lithic, the card network and in some cases the acquirer. These identifiers often link
together events within the same transaction lifecycle and can be used to locate a particular
transaction, such as during processing of disputes. Not all fields are available in all events, and
the presence of these fields is dependent on the card network and the event type. If the field is
populated by the network, we will pass it through as is unless otherwise specified. Please consult the
official network documentation for more details about these fields and how to use them.
properties:
acquirer:
properties:
acquirer_reference_number:
description: >-
Identifier assigned by the acquirer, applicable to dual-message transactions only. The
acquirer reference number (ARN) is only populated once a transaction has been cleared, and it
is not available in all transactions (such as automated fuel dispenser transactions). A single
transaction can contain multiple ARNs if the merchant sends multiple clearings.
oneOf:
- type: 'null'
- type: string
retrieval_reference_number:
description: Identifier assigned by the acquirer.
oneOf:
- type: 'null'
- type: string
oneOf:
- type: 'null'
- type: object
required:
- acquirer_reference_number
- retrieval_reference_number
amex:
properties:
transaction_id:
description: >-
Identifier assigned by American Express to link original messages to subsequent messages.
Guaranteed by American Express to be unique for each original authorization and financial
authorization.
oneOf:
- type: 'null'
- type: string
original_transaction_id:
description: >-
Identifier assigned by American Express. Matches the `transaction_id` of a prior related
event. May be populated in incremental authorizations (authorization requests that augment a
previously authorized amount), authorization advices, financial authorizations, and clearings.
oneOf:
- type: 'null'
- type: string
oneOf:
- type: 'null'
- type: object
required:
- transaction_id
- original_transaction_id
mastercard:
properties:
banknet_reference_number:
description: >-
Identifier assigned by Mastercard. Guaranteed by Mastercard to be unique for any transaction
within a specific financial network on any processing day.
oneOf:
- type: 'null'
- type: string
switch_serial_number:
description: Identifier assigned by Mastercard, applicable to single-message transactions only.
oneOf:
- type: 'null'
- type: string
original_banknet_reference_number:
description: >-
Identifier assigned by Mastercard. Matches the `banknet_reference_number` of a prior related
event. May be populated in authorization reversals, incremental authorizations (authorization
requests that augment a previously authorized amount), automated fuel dispenser authorization
advices and clearings, and financial authorizations. If the original banknet reference number
contains all zeroes, then no actual reference number could be found by the network or
acquirer. If Mastercard converts a transaction from dual-message to single-message, such as
for certain ATM transactions, it will populate the original banknet reference number in the
resulting financial authorization with the banknet reference number of the initial
authorization, which Lithic does not receive.
oneOf:
- type: 'null'
- type: string
original_switch_serial_number:
description: >-
Identifier assigned by Mastercard. Matches the `switch_serial_number` of a prior related
event. May be populated in returns and return reversals. Applicable to single-message
transactions only.
oneOf:
- type: 'null'
- type: string
oneOf:
- type: 'null'
- type: object
required:
- banknet_reference_number
- switch_serial_number
- original_banknet_reference_number
- original_switch_serial_number
visa:
properties:
transaction_id:
description: >-
Identifier assigned by Visa to link original messages to subsequent messages. Guaranteed by
Visa to be unique for each original authorization and financial authorization.
oneOf:
- type: 'null'
- type: string
original_transaction_id:
description: >-
Identifier assigned by Visa. Matches the `transaction_id` of a prior related event. May be
populated in incremental authorizations (authorization requests that augment a previously
authorized amount), authorization advices, financial authorizations, and clearings.
oneOf:
- type: 'null'
- type: string
oneOf:
- type: 'null'
- type: object
required:
- transaction_id
- original_transaction_id
required:
- acquirer
- amex
- mastercard
- visa
mastercard_network_specific_data:
title: Mastercard Network Specific Data
type: object
properties:
transaction_type_identifier:
oneOf:
- type: 'null'
description: Transaction type identifier not available.
- type: string
description: Indicates the type of additional transaction purpose.
minLength: 3
maxLength: 3
ecommerce_security_level_indicator:
oneOf:
- type: 'null'
description: Electronic commerce security level indicator not available.
- type: string
description: Indicates the electronic commerce security level and UCAF collection.
minLength: 3
maxLength: 3
on_behalf_service_result:
oneOf:
- type: 'null'
description: On-behalf service result not available.
- type: array
items:
type: object
properties:
service:
type: string
description: Indicates the service performed on the transaction.
minLength: 2
maxLength: 2
result_1:
type: string
description: Indicates the results of the service processing.
minLength: 1
maxLength: 1
result_2:
type: string
description: Identifies the results of the service processing.
minLength: 1
maxLength: 1
required:
- service
- result_1
- result_2
description: >-
The On-behalf Service performed on the transaction and the results. Contains all applicable,
on-behalf service results that were performed on a given transaction.
maxItems: 10
required:
- transaction_type_identifier
- ecommerce_security_level_indicator
- on_behalf_service_result
visa_network_specific_data:
title: Visa Network Specific Data
type: object
properties:
business_application_identifier:
oneOf:
- type: 'null'
description: Business application identifier not available.
- type: string
description: >-
Identifies the purpose or category of a transaction, used to classify and process transactions
according to Visa’s rules.
minLength: 2
maxLength: 2
required:
- business_application_identifier
network_specific_data:
title: Network Specific Data
type: object
properties:
mastercard:
$ref: '#/components/schemas/mastercard_network_specific_data'
visa:
$ref: '#/components/schemas/visa_network_specific_data'
required:
- mastercard
- visa
rule_result:
title: Detailed Rule Result
type: object
properties:
auth_rule_token:
description: >-
The Auth Rule Token associated with the rule from which the decline originated. If this is set to
null, then the decline was not associated with a customer-configured Auth Rule. This may happen in
cases where a transaction is declined due to a Lithic-configured security or compliance rule, for
example.
oneOf:
- type: 'null'
- type: string
format: uuid
result:
description: The detailed_result associated with this rule's decline.
$ref: '#/components/schemas/detailed_result'
name:
description: The name for the rule, if any was configured.
oneOf:
- type: 'null'
- type: string
explanation:
description: A human-readable explanation outlining the motivation for the rule's decline.
oneOf:
- type: 'null'
- type: string
required:
- auth_rule_token
- explanation
- name
- result
decline_result:
example: APPROVED
title: Result of the transaction
type: string
enum:
- ACCOUNT_PAUSED
- ACCOUNT_STATE_TRANSACTION_FAIL
- APPROVED
- BANK_CONNECTION_ERROR
- BANK_NOT_VERIFIED
- CARD_CLOSED
- CARD_PAUSED
- DECLINED
- FRAUD_ADVICE
- IGNORED_TTL_EXPIRY
- SUSPECTED_FRAUD
- INACTIVE_ACCOUNT
- INCORRECT_PIN
- INVALID_CARD_DETAILS
- INSUFFICIENT_FUNDS
- INSUFFICIENT_FUNDS_PRELOAD
- INVALID_TRANSACTION
- MERCHANT_BLACKLIST
- ORIGINAL_NOT_FOUND
- PREVIOUSLY_COMPLETED
- SINGLE_USE_RECHARGED
- SWITCH_INOPERATIVE_ADVICE
- UNAUTHORIZED_MERCHANT
- UNKNOWN_HOST_TIMEOUT
- USER_TRANSACTION_LIMIT
transaction_event:
title: Transaction Event
type: object
properties:
account_type:
$ref: '#/components/schemas/account_type'
amount:
description: Amount of the event in the settlement currency.
example: 1000
type: integer
deprecated: true
amounts:
$ref: '#/components/schemas/transaction_event_amounts'
created:
description: RFC 3339 date and time this event entered the system. UTC time zone.
example: '2023-09-26T21:14:28.637Z'
format: date-time
type: string
network_info:
$ref: '#/components/schemas/network_info'
network_specific_data:
$ref: '#/components/schemas/network_specific_data'
detailed_results:
items:
$ref: '#/components/schemas/detailed_result'
type: array
rule_results:
items:
$ref: '#/components/schemas/rule_result'
type: array
effective_polarity:
description: Indicates whether the transaction event is a credit or debit to the account.
example: DEBIT
enum:
- CREDIT
- DEBIT
type: string
result:
$ref: '#/components/schemas/decline_result'
token:
description: Transaction event identifier.
example: 0c2adae9-f535-4505-8c35-421dad9bd0b6
format: uuid
type: string
type:
description: Type of transaction event
example: CLEARING
enum:
- AUTHORIZATION
- AUTHORIZATION_ADVICE
- AUTHORIZATION_EXPIRY
- AUTHORIZATION_REVERSAL
- BALANCE_INQUIRY
- CLEARING
- CORRECTION_CREDIT
- CORRECTION_DEBIT
- CREDIT_AUTHORIZATION
- CREDIT_AUTHORIZATION_ADVICE
- FINANCIAL_AUTHORIZATION
- FINANCIAL_CREDIT_AUTHORIZATION
- RETURN
- RETURN_REVERSAL
type: string
required:
- amount
- amounts
- created
- detailed_results
- effective_polarity
- result
- token
- type
- rule_results
- network_info
merchant:
title: Merchant
type: object
properties:
acceptor_id:
description: Unique alphanumeric identifier for the payment card acceptor (merchant).
example: '333301802529120'
type: string
acquiring_institution_id:
description: Unique numeric identifier of the acquiring institution.
example: '191231'
type: string
city:
description: >-
City of card acceptor. Note that in many cases, particularly in card-not-present transactions,
merchants may send through a phone number or URL in this field.
example: NEW YORK
type: string
country:
description: >-
Country or entity of card acceptor. Possible values are: (1) all ISO 3166-1 alpha-3 country codes,
(2) QZZ for Kosovo, and (3) ANT for Netherlands Antilles.
example: USA
type: string
descriptor:
description: Short description of card acceptor.
example: COFFEE SHOP
type: string
mcc:
description: >-
Merchant category code (MCC). A four-digit number listed in ISO 18245. An MCC is used to classify
a business by the types of goods or services it provides.
example: '5812'
type: string
state:
description: Geographic state of card acceptor.
example: NY
type: string
required:
- acceptor_id
- acquiring_institution_id
- city
- country
- descriptor
- mcc
- state
transaction_merchant:
title: Transaction Merchant
description: Merchant information including full location details.
allOf:
- $ref: '#/components/schemas/merchant'
- type: object
properties:
postal_code:
description: Postal code of card acceptor.
example: '10001'
type:
- string
- 'null'
street_address:
description: Street address of card acceptor.
example: 123 MAIN ST
type:
- string
- 'null'
phone_number:
description: Phone number of card acceptor.
example: '5551234567'
type:
- string
- 'null'
required:
- postal_code
- street_address
- phone_number
service_location:
title: Service Location
description: >-
Where the cardholder received the service, when different from the card acceptor location. This is
populated from network data elements such as Mastercard DE-122 SE1 SF9-14 and Visa F34 DS02.
type: object
properties:
street_address:
description: Street address of service location.
type:
- string
- 'null'
city:
description: City of service location.
type:
- string
- 'null'
state:
description: State/province code of service location, ISO 3166-2.
type:
- string
- 'null'
country:
description: Country code of service location, ISO 3166-1 alpha-3.
type:
- string
- 'null'
postal_code:
description: Postal code of service location.
type:
- string
- 'null'
required:
- street_address
- city
- state
- country
- postal_code
merchant_currency:
title: Merchant Currency
description: 3-character alphabetic ISO 4217 code for the local currency of the transaction.
example: USD
type: string
network_risk_score:
title: Network Risk Score
type:
- integer
- 'null'
description: >-
Network-provided score assessing risk level associated with a given authorization. Scores are on a
range of 0-999, with 0 representing the lowest risk and 999 representing the highest risk. For Visa
transactions, where the raw score has a range of 0-99, Lithic will normalize the score by multiplying
the raw score by 10x.
pos_entry_mode:
title: Point of Sale Entry Mode
type: object
properties:
card:
type: string
enum:
- NOT_PRESENT
- PREAUTHORIZED
- PRESENT
- UNKNOWN
description: Card presence indicator
cardholder:
type: string
enum:
- DEFERRED_BILLING
- ELECTRONIC_ORDER
- INSTALLMENT
- MAIL_ORDER
- NOT_PRESENT
- PREAUTHORIZED
- PRESENT
- REOCCURRING
- TELEPHONE_ORDER
- UNKNOWN
description: Cardholder presence indicator
pan:
type: string
enum:
- AUTO_ENTRY
- BAR_CODE
- CONTACTLESS
- CREDENTIAL_ON_FILE
- ECOMMERCE
- ERROR_KEYED
- ERROR_MAGNETIC_STRIPE
- ICC
- KEY_ENTERED
- MAGNETIC_STRIPE
- MANUAL
- OCR
- SECURE_CARDLESS
- UNKNOWN
- UNSPECIFIED
description: Method of entry for the PAN
pin_entered:
type: boolean
description: Indicates whether the cardholder entered the PIN. True if the PIN was entered.
required:
- card
- cardholder
- pan
- pin_entered
pos_terminal:
title: Point of Sale Terminal
type: object
properties:
attended:
description: True if a clerk is present at the sale.
type: boolean
card_retention_capable:
description: True if the terminal is capable of retaining the card.
type: boolean
on_premise:
description: True if the sale was made at the place of business (vs. mobile).
type: boolean
operator:
description: The person that is designated to swipe the card
enum:
- ADMINISTRATIVE
- CARDHOLDER
- CARD_ACCEPTOR
- UNKNOWN
type: string
partial_approval_capable:
type: boolean
description: >-
True if the terminal is capable of partial approval. Partial approval is when part of a
transaction is approved and another payment must be used for the remainder. Example scenario: A
$40 transaction is attempted on a prepaid card with a $25 balance. If partial approval is enabled,
$25 can be authorized, at which point the POS will prompt the user for an additional payment of
$15.
pin_capability:
description: Status of whether the POS is able to accept PINs
enum:
- CAPABLE
- INOPERATIVE
- NOT_CAPABLE
- UNSPECIFIED
type: string
acceptor_terminal_id:
description: >-
Uniquely identifies a terminal at the card acceptor location of acquiring institutions or merchant
POS Systems
type:
- string
- 'null'
type:
description: POS Type
enum:
- ADMINISTRATIVE
- ATM
- AUTHORIZATION
- COUPON_MACHINE
- DIAL_TERMINAL
- ECOMMERCE
- ECR
- FUEL_MACHINE
- HOME_TERMINAL
- MICR
- OFF_PREMISE
- PAYMENT
- PDA
- PHONE
- POINT
- POS_TERMINAL
- PUBLIC_UTILITY
- SELF_SERVICE
- TELEVISION
- TELLER
- TRAVELERS_CHECK_MACHINE
- VENDING
- VOICE
- UNKNOWN
type: string
required:
- attended
- card_retention_capable
- on_premise
- operator
- partial_approval_capable
- pin_capability
- type
pos:
title: Point of Sale
type: object
properties:
entry_mode:
$ref: '#/components/schemas/pos_entry_mode'
terminal:
$ref: '#/components/schemas/pos_terminal'
required:
- entry_mode
- terminal
token_info:
title: Token Info
type:
- object
- 'null'
properties:
wallet_type:
description: >-
The wallet_type field will indicate the source of the token. Possible token sources include
digital wallets (Apple, Google, or Samsung Pay), merchant tokenization, and “other” sources like
in-flight commerce. Masterpass is not currently supported and is included for future use.
enum:
- APPLE_PAY
- GOOGLE_PAY
- MASTERPASS
- MERCHANT
- OTHER
- SAMSUNG_PAY
type: string
required:
- wallet_type
tags:
title: Tags
description: >-
Key-value pairs for tagging resources. Tags allow you to associate arbitrary metadata with a resource
for your own purposes.
type: object
additionalProperties:
type: string
example:
risk-level: high
card_transaction:
title: Card Transaction
type: object
properties:
acquirer_fee:
description: >-
Fee assessed by the merchant and paid for by the cardholder in the smallest unit of the currency.
Will be zero if no fee is assessed. Rebates may be transmitted as a negative value to indicate
credited fees.
example: 0
type:
- integer
- 'null'
acquirer_reference_number:
description: >-
Unique identifier assigned to a transaction by the acquirer that can be used in dispute and
chargeback filing. This field has been deprecated in favor of the `acquirer_reference_number` that
resides in the event-level `network_info`.
example: '12345678987654321234567'
maxLength: 23
minLength: 23
type:
- string
- 'null'
deprecated: true
account_token:
description: The token for the account associated with this transaction.
example: bd5e5649-1be8-4117-9bc5-3268258d1417
format: uuid
type: string
amount:
description: >-
When the transaction is pending, this represents the authorization amount of the transaction in
the anticipated settlement currency. Once the transaction has settled, this field represents the
settled amount in the settlement currency.
example: 1000
type: integer
deprecated: true
amounts:
$ref: '#/components/schemas/transaction_amounts'
authorization_amount:
description: The authorization amount of the transaction in the anticipated settlement currency.
example: 1000
type:
- integer
- 'null'
deprecated: true
authorization_code:
description: A fixed-width 6-digit numeric identifier that can be used to identify a transaction with networks.
example: '123456'
maxLength: 6
minLength: 6
type:
- string
- 'null'
avs:
oneOf:
- type: 'null'
- $ref: '#/components/schemas/avs'
card_token:
description: Token for the card used in this transaction.
example: 19c22c47-7a75-43ee-9891-595419830f7e
format: uuid
type: string
cardholder_authentication:
oneOf:
- type: 'null'
- $ref: '#/components/schemas/cardholder_authentication'
created:
description: Date and time when the transaction first occurred. UTC time zone.
example: '2023-09-26T21:14:28.637Z'
format: date-time
type: string
events:
items:
$ref: '#/components/schemas/transaction_event'
type: array
financial_account_token:
oneOf:
- type: 'null'
- format: uuid
type: string
merchant:
$ref: '#/components/schemas/transaction_merchant'
service_location:
oneOf:
- type: 'null'
- $ref: '#/components/schemas/service_location'
merchant_amount:
description: Analogous to the 'amount', but in the merchant currency.
example: 1000
type:
- integer
- 'null'
deprecated: true
merchant_authorization_amount:
description: Analogous to the 'authorization_amount', but in the merchant currency.
example: 1000
type:
- integer
- 'null'
deprecated: true
merchant_currency:
deprecated: true
$ref: '#/components/schemas/merchant_currency'
network:
description: >-
Card network of the authorization. Value is `UNKNOWN` when Lithic cannot determine the network
code from the upstream provider.
enum:
- AMEX
- INTERLINK
- MAESTRO
- MASTERCARD
- UNKNOWN
- VISA
example: MASTERCARD
type:
- string
- 'null'
network_risk_score:
$ref: '#/components/schemas/network_risk_score'
result:
$ref: '#/components/schemas/decline_result'
pos:
$ref: '#/components/schemas/pos'
settled_amount:
title: Settled Amount
description: The settled amount of the transaction in the settlement currency.
type: integer
example: 1000
deprecated: true
status:
description: Status of the transaction.
enum:
- DECLINED
- EXPIRED
- PENDING
- SETTLED
- VOIDED
example: SETTLED
type: string
token:
description: Globally unique identifier.
format: uuid
type: string
token_info:
oneOf:
- type: 'null'
- $ref: '#/components/schemas/token_info'
tags:
$ref: '#/components/schemas/tags'
updated:
description: Date and time when the transaction last updated. UTC time zone.
example: '2023-09-26T21:14:28.637Z'
format: date-time
type: string
required:
- acquirer_fee
- acquirer_reference_number
- account_token
- amount
- amounts
- authorization_amount
- authorization_code
- avs
- card_token
- cardholder_authentication
- created
- financial_account_token
- merchant_amount
- merchant_authorization_amount
- merchant_currency
- merchant
- service_location
- network
- network_risk_score
- result
- pos
- settled_amount
- status
- tags
- token
- token_info
- updated
examples:
- account_token: db3942f0-0627-4887-a190-1ea83b46d091
acquirer_fee: 0
acquirer_reference_number: null
amount: 1800
amounts:
cardholder:
amount: 0
conversion_rate: '1.000000'
currency: USD
hold:
amount: -1800
currency: USD
merchant:
amount: 0
currency: USD
settlement:
amount: 0
currency: USD
authorization_amount: 1800
authorization_code: '071471'
avs:
zipcode: '95006'
address: 123 Evergreen Terrace
card_token: aac502f9-aecc-458a-954e-4bcf6edb6123
cardholder_authentication:
liability_shift: 3DS_AUTHENTICATED
authentication_result: SUCCESS
authentication_method: FRICTIONLESS
three_ds_authentication_token: fc60d37d-95f7-419c-b628-dd9fbf9d80d0
decision_made_by: NETWORK
created: '2023-08-03T18:42:30Z'
events:
- amount: 1800
amounts:
cardholder:
amount: 1800
conversion_rate: '1.000000'
currency: USD
merchant:
amount: 1800
currency: USD
settlement: null
created: '2023-08-03T18:42:30Z'
detailed_results:
- APPROVED
effective_polarity: DEBIT
network_info:
acquirer:
acquirer_reference_number: null
retrieval_reference_number: '064386558597'
amex: null
mastercard:
banknet_reference_number: U1HSCJ
switch_serial_number: null
original_banknet_reference_number: null
original_switch_serial_number: null
visa: null
result: APPROVED
rule_results: []
token: bbbf1e86-322d-11ee-9779-00505685a123
type: AUTHORIZATION
financial_account_token: a3b113e8-01fe-42d3-b900-b9adf3f15496
merchant:
acceptor_id: '452322000053360'
acquiring_institution_id: '333301802529120'
city: gosq.com
country: USA
descriptor: SQ *SOMA EATS
mcc: '5812'
state: CA
postal_code: '94107'
street_address: null
phone_number: null
service_location: null
merchant_amount: 1800
merchant_authorization_amount: 1800
merchant_currency: USD
network: MASTERCARD
network_risk_score: 5
pos:
entry_mode:
card: NOT_PRESENT
cardholder: NOT_PRESENT
pan: ECOMMERCE
pin_entered: false
terminal:
attended: false
card_retention_capable: false
on_premise: false
operator: UNKNOWN
partial_approval_capable: false
pin_capability: NOT_CAPABLE
type: UNKNOWN
result: APPROVED
settled_amount: 0
status: PENDING
tags:
risk-level: high
token: c30c2182-1e69-4e0d-b40f-eec0d2a19123
token_info:
wallet_type: APPLE_PAY
updated: '2023-08-03T18:42:30Z'
card-transaction:
title: Card Transaction
description: Card transaction with ledger base properties
allOf:
- $ref: '#/components/schemas/base_transaction'
- $ref: '#/components/schemas/card_transaction'
- type: object
properties:
family:
type: string
const: CARD
description: CARD - Card Transaction
required:
- family
wire_party_details:
title: Wire Party Details
type: object
properties:
name:
type:
- string
- 'null'
description: Name of the person or company
account_number:
type:
- string
- 'null'
description: Account number
agent_name:
type:
- string
- 'null'
description: Name of the financial institution
agent_id:
type:
- string
- 'null'
description: Routing number or BIC of the financial institution
required: []
AchMethodAttributes:
type: object
properties:
sec_code:
type: string
enum:
- CCD
- PPD
- WEB
- TEL
- CIE
- CTX
description: SEC code for ACH transaction
return_reason_code:
type:
- string
- 'null'
description: Return reason code if the transaction was returned
ach_hold_period:
type:
- integer
- 'null'
minimum: 0
description: Number of days the ACH transaction is on hold
retries:
type:
- integer
- 'null'
minimum: 0
description: Number of retries attempted
company_id:
type:
- string
- 'null'
description: Company ID for the ACH transaction
receipt_routing_number:
type:
- string
- 'null'
description: Receipt routing number
trace_numbers:
type: array
items:
type: string
default: []
description: Trace numbers for the ACH transaction
addenda:
type:
- string
- 'null'
description: Addenda information
override_company_name:
type:
- string
- 'null'
maxLength: 512
description: Value to override the configured company name with. Can only be used if allowed to override
required:
- sec_code
WireMethodAttributes:
type: object
properties:
wire_network:
type: string
enum:
- FEDWIRE
- SWIFT
description: Type of wire transfer
wire_message_type:
type:
- string
- 'null'
description: Type of wire message
debtor:
$ref: '#/components/schemas/wire_party_details'
creditor:
$ref: '#/components/schemas/wire_party_details'
message_id:
type:
- string
- 'null'
description: >-
Point to point reference identifier, as assigned by the instructing party, used for tracking the
message through the Fedwire system
remittance_information:
type:
- string
- 'null'
description: Payment details or invoice reference
required:
- wire_network
- wire_message_type
payment_event_type:
title: Payment Event Type
description: >-
Note: Inbound wire transfers are coming soon (availability varies by partner bank). Wire-related event
types below are a preview. To learn more, contact your customer success manager.
Event types:
ACH events:
* `ACH_ORIGINATION_INITIATED` - ACH origination received and pending approval/release from an ACH
hold.
* `ACH_ORIGINATION_REVIEWED` - ACH origination has completed the review process.
* `ACH_ORIGINATION_CANCELLED` - ACH origination has been cancelled.
* `ACH_ORIGINATION_PROCESSED` - ACH origination has been processed and sent to the Federal Reserve.
* `ACH_ORIGINATION_SETTLED` - ACH origination has settled.
* `ACH_ORIGINATION_RELEASED` - ACH origination released from pending to available balance.
* `ACH_ORIGINATION_REJECTED` - ACH origination was rejected and not sent to the Federal Reserve.
* `ACH_RECEIPT_PROCESSED` - ACH receipt pending release from an ACH holder.
* `ACH_RECEIPT_SETTLED` - ACH receipt funds have settled.
* `ACH_RECEIPT_RELEASED` - ACH receipt released from pending to available balance.
* `ACH_RECEIPT_RELEASED_EARLY` - ACH receipt released early from pending to available balance.
* `ACH_RETURN_INITIATED` - ACH initiated return for an ACH receipt.
* `ACH_RETURN_PROCESSED` - ACH receipt returned by the Receiving Depository Financial Institution.
* `ACH_RETURN_SETTLED` - ACH return settled by the Receiving Depository Financial Institution.
* `ACH_RETURN_REJECTED` - ACH return was rejected by the Receiving Depository Financial Institution.
Wire transfer events:
* `WIRE_TRANSFER_INBOUND_RECEIVED` - Inbound wire transfer received from the Federal Reserve and
pending release to available balance.
* `WIRE_TRANSFER_INBOUND_SETTLED` - Inbound wire transfer funds released from pending to available
balance.
* `WIRE_TRANSFER_INBOUND_BLOCKED` - Inbound wire transfer blocked and funds frozen for regulatory
review.
Wire return events:
* `WIRE_RETURN_OUTBOUND_INITIATED` - Outbound wire return initiated to return funds from an inbound
wire transfer.
* `WIRE_RETURN_OUTBOUND_SENT` - Outbound wire return sent to the Federal Reserve and pending
acceptance.
* `WIRE_RETURN_OUTBOUND_SETTLED` - Outbound wire return accepted by the Federal Reserve and funds
returned to sender.
* `WIRE_RETURN_OUTBOUND_REJECTED` - Outbound wire return rejected by the Federal Reserve.
type: string
enum:
- ACH_ORIGINATION_CANCELLED
- ACH_ORIGINATION_INITIATED
- ACH_ORIGINATION_PROCESSED
- ACH_ORIGINATION_REJECTED
- ACH_ORIGINATION_RELEASED
- ACH_ORIGINATION_REVIEWED
- ACH_ORIGINATION_SETTLED
- ACH_RECEIPT_PROCESSED
- ACH_RECEIPT_RELEASED
- ACH_RECEIPT_RELEASED_EARLY
- ACH_RECEIPT_SETTLED
- ACH_RETURN_INITIATED
- ACH_RETURN_PROCESSED
- ACH_RETURN_REJECTED
- ACH_RETURN_SETTLED
- WIRE_TRANSFER_INBOUND_RECEIVED
- WIRE_TRANSFER_INBOUND_SETTLED
- WIRE_TRANSFER_INBOUND_BLOCKED
- WIRE_RETURN_OUTBOUND_INITIATED
- WIRE_RETURN_OUTBOUND_SENT
- WIRE_RETURN_OUTBOUND_SETTLED
- WIRE_RETURN_OUTBOUND_REJECTED
payment_event:
title: Payment Event
description: >-
Note: Inbound wire transfers are coming soon (availability varies by partner bank). Wire-related
fields below are a preview. To learn more, contact your customer success manager.
Payment Event
type: object
properties:
amount:
description: Amount of the financial event that has been settled in the currency's smallest unit (e.g., cents).
type: integer
created:
description: Date and time when the financial event occurred. UTC time zone.
type: string
format: date-time
detailed_results:
description: More detailed reasons for the event
type: array
items:
type: string
enum:
- APPROVED
- DECLINED
- FUNDS_INSUFFICIENT
- ACCOUNT_INVALID
- PROGRAM_TRANSACTION_LIMIT_EXCEEDED
- PROGRAM_DAILY_LIMIT_EXCEEDED
- PROGRAM_MONTHLY_LIMIT_EXCEEDED
result:
description: >-
APPROVED financial events were successful while DECLINED financial events were declined by user,
Lithic, or the network.
type: string
enum:
- APPROVED
- DECLINED
token:
description: Globally unique identifier.
type: string
format: uuid
type:
$ref: '#/components/schemas/payment_event_type'
external_id:
description: |
Payment event external ID. For ACH transactions, this is the ACH trace number.
For inbound wire transfers, this is the IMAD (Input Message Accountability Data).
type:
- string
- 'null'
required:
- amount
- created
- result
- token
- type
related_account_tokens:
title: Related Account Tokens
description: Account tokens related to a payment transaction
type: object
properties:
business_account_token:
type:
- string
- 'null'
format: uuid
title: Business Account Token
description: Globally unique identifier for the business account
account_token:
type:
- string
- 'null'
format: uuid
title: Account Token
description: Globally unique identifier for the account
required:
- business_account_token
- account_token
transfer_type:
type: string
enum:
- ORIGINATION_CREDIT
- ORIGINATION_DEBIT
- RECEIPT_CREDIT
- RECEIPT_DEBIT
- WIRE_INBOUND_PAYMENT
- WIRE_INBOUND_ADMIN
- WIRE_OUTBOUND_PAYMENT
- WIRE_OUTBOUND_ADMIN
- WIRE_INBOUND_DRAWDOWN_REQUEST
title: Transfer Type
payment-transaction:
title: Payment Transaction
description: Payment transaction
definitions:
AchMethodAttributes:
type: object
properties:
sec_code:
type: string
enum:
- CCD
- PPD
- WEB
- TEL
- CIE
- CTX
description: SEC code for ACH transaction
return_reason_code:
type:
- string
- 'null'
description: Return reason code if the transaction was returned
ach_hold_period:
type:
- integer
- 'null'
minimum: 0
description: Number of days the ACH transaction is on hold
retries:
type:
- integer
- 'null'
minimum: 0
description: Number of retries attempted
company_id:
type:
- string
- 'null'
description: Company ID for the ACH transaction
receipt_routing_number:
type:
- string
- 'null'
description: Receipt routing number
trace_numbers:
type: array
items:
type: string
default: []
description: Trace numbers for the ACH transaction
addenda:
type:
- string
- 'null'
description: Addenda information
override_company_name:
type:
- string
- 'null'
maxLength: 512
description: Value to override the configured company name with. Can only be used if allowed to override
required:
- sec_code
WireMethodAttributes:
type: object
properties:
wire_network:
type: string
enum:
- FEDWIRE
- SWIFT
description: Type of wire transfer
wire_message_type:
type:
- string
- 'null'
description: Type of wire message
debtor:
$ref: '#/components/schemas/wire_party_details'
creditor:
$ref: '#/components/schemas/wire_party_details'
message_id:
type:
- string
- 'null'
description: >-
Point to point reference identifier, as assigned by the instructing party, used for tracking
the message through the Fedwire system
remittance_information:
type:
- string
- 'null'
description: Payment details or invoice reference
required:
- wire_network
- wire_message_type
allOf:
- $ref: '#/components/schemas/base_transaction'
- type: object
properties:
family:
type: string
const: PAYMENT
description: PAYMENT - Payment Transaction
category:
$ref: '#/components/schemas/transaction_category'
description: Transaction category
currency:
type: string
description: Currency of the transaction in ISO 4217 format
example: USD
result:
$ref: '#/components/schemas/transaction_result'
description: Transaction result
method_attributes:
oneOf:
- $ref: '#/components/schemas/AchMethodAttributes'
- $ref: '#/components/schemas/WireMethodAttributes'
description: Method-specific attributes
financial_account_token:
type: string
format: uuid
description: Financial account token
external_bank_account_token:
type:
- string
- 'null'
format: uuid
description: External bank account token
direction:
type: string
enum:
- CREDIT
- DEBIT
description: Transfer direction
source:
type: string
enum:
- LITHIC
- EXTERNAL
- CUSTOMER
description: Transaction source
method:
type: string
enum:
- ACH_NEXT_DAY
- ACH_SAME_DAY
- WIRE
description: Transfer method
settled_amount:
type: integer
description: Settled amount in cents
example: 500
pending_amount:
type: integer
description: Pending amount in cents
example: 200
events:
type: array
items:
$ref: '#/components/schemas/payment_event'
description: List of transaction events
descriptor:
type: string
description: Transaction descriptor
user_defined_id:
type:
- string
- 'null'
description: User-defined identifier
expected_release_date:
type:
- string
- 'null'
format: date
description: Expected release date for the transaction
related_account_tokens:
oneOf:
- $ref: '#/components/schemas/related_account_tokens'
- type: 'null'
description: Related account tokens for the transaction
type:
$ref: '#/components/schemas/transfer_type'
required:
- category
- result
- method_attributes
- family
- financial_account_token
- direction
- source
- method
- settled_amount
- pending_amount
- events
- descriptor
- related_account_tokens
examples:
- family: PAYMENT
status: PENDING
token: bd4efddb-771b-49e3-9af9-49b077ab5eb8
created: '2025-10-27T20:12:22Z'
updated: '2025-10-27T20:12:25Z'
category: ACH
result: APPROVED
method_attributes:
sec_code: CCD
return_reason_code: null
ach_hold_period: 1
retries: 0
company_id: '1111111111'
receipt_routing_number: null
trace_numbers: []
addenda: null
financial_account_token: 35b0c466-a3e3-519a-9549-ead6a6a2277d
external_bank_account_token: feb4fee1-2414-4c38-a5f6-9deac293c8f4
direction: CREDIT
source: LITHIC
method: ACH_NEXT_DAY
settled_amount: 0
pending_amount: -1588
currency: USD
events:
- amount: -1588
type: ACH_ORIGINATION_INITIATED
result: APPROVED
created: '2025-10-27T20:12:22Z'
token: 327dccc3-fe42-54d2-962c-7f8135805464
detailed_results:
- APPROVED
- amount: -1588
type: ACH_ORIGINATION_REVIEWED
result: APPROVED
created: '2025-10-27T20:12:25Z'
token: f9165477-7cfc-53c6-98f1-84e9ec856a60
detailed_results:
- APPROVED
descriptor: ach_origination_credit
user_defined_id: null
expected_release_date: null
related_account_tokens: null
type: ORIGINATION_CREDIT
- family: PAYMENT
status: PENDING
token: cb35759d-8c18-4b7f-bb91-7c37936662c2
created: '2025-10-27T20:12:15Z'
updated: '2025-10-27T20:12:18Z'
category: ACH
result: APPROVED
method_attributes:
sec_code: CCD
return_reason_code: null
ach_hold_period: 2
retries: 0
company_id: '1111111111'
receipt_routing_number: null
trace_numbers: []
addenda: null
financial_account_token: f012262b-d18f-5c26-ad63-a09a11e633a6
external_bank_account_token: feb4fee1-2414-4c38-a5f6-9deac293c8f4
direction: DEBIT
source: LITHIC
method: ACH_NEXT_DAY
settled_amount: 0
pending_amount: 1588
currency: USD
events:
- amount: 1588
type: ACH_ORIGINATION_INITIATED
result: APPROVED
created: '2025-10-27T20:12:15Z'
token: 38dc6bc5-d18f-594e-9ab9-ef1cfdcfbf82
detailed_results:
- APPROVED
- amount: 1588
type: ACH_ORIGINATION_REVIEWED
result: APPROVED
created: '2025-10-27T20:12:18Z'
token: e466f34a-d648-5a8f-8bc7-1d4d1e703db3
detailed_results:
- APPROVED
descriptor: ach_origination_debit
user_defined_id: null
expected_release_date: null
related_account_tokens:
business_account_token: null
account_token: d11bca22-39e2-475c-bbb3-6ba21e38b0d3
type: ORIGINATION_DEBIT
- family: PAYMENT
status: SETTLED
token: dd72f435-9633-46f3-b871-47d4af684654
created: '2024-10-08T21:39:27Z'
updated: '2024-10-08T21:39:28Z'
category: ACH
result: APPROVED
method_attributes:
sec_code: CCD
return_reason_code: null
ach_hold_period: 2
retries: 0
company_id: '1111111111'
receipt_routing_number: '1234567890'
trace_numbers:
- '316779406684861'
addenda: null
financial_account_token: 0d6b1b9f-b90f-5f03-9c45-8930d5a6aac0
external_bank_account_token: null
direction: DEBIT
source: LITHIC
method: ACH_SAME_DAY
settled_amount: 1000
pending_amount: 0
currency: USD
events:
- amount: 1000
type: ACH_RECEIPT_PROCESSED
result: APPROVED
created: '2024-10-08T21:39:27Z'
token: 99ff8ea0-2355-57fc-aa9d-0e953f64ba4f
detailed_results:
- APPROVED
- amount: 1000
type: ACH_RECEIPT_SETTLED
result: APPROVED
created: '2024-10-08T21:39:28Z'
token: 33d0ae98-310c-5b50-a012-1bcd8edb9254
detailed_results:
- APPROVED
descriptor: ach_receipt_credit
user_defined_id: null
expected_release_date: null
related_account_tokens: null
type: RECEIPT_CREDIT
external_payment_category:
title: External Payment Category
type: string
enum:
- EXTERNAL_WIRE
- EXTERNAL_ACH
- EXTERNAL_CHECK
- EXTERNAL_FEDNOW
- EXTERNAL_RTP
- EXTERNAL_TRANSFER
external_payment_event_type:
title: External Payment Event Type
type: string
enum:
- EXTERNAL_WIRE_INITIATED
- EXTERNAL_WIRE_CANCELED
- EXTERNAL_WIRE_SETTLED
- EXTERNAL_WIRE_REVERSED
- EXTERNAL_WIRE_RELEASED
- EXTERNAL_ACH_INITIATED
- EXTERNAL_ACH_CANCELED
- EXTERNAL_ACH_SETTLED
- EXTERNAL_ACH_REVERSED
- EXTERNAL_ACH_RELEASED
- EXTERNAL_TRANSFER_INITIATED
- EXTERNAL_TRANSFER_CANCELED
- EXTERNAL_TRANSFER_SETTLED
- EXTERNAL_TRANSFER_REVERSED
- EXTERNAL_TRANSFER_RELEASED
- EXTERNAL_CHECK_INITIATED
- EXTERNAL_CHECK_CANCELED
- EXTERNAL_CHECK_SETTLED
- EXTERNAL_CHECK_REVERSED
- EXTERNAL_CHECK_RELEASED
- EXTERNAL_FEDNOW_INITIATED
- EXTERNAL_FEDNOW_CANCELED
- EXTERNAL_FEDNOW_SETTLED
- EXTERNAL_FEDNOW_REVERSED
- EXTERNAL_FEDNOW_RELEASED
- EXTERNAL_RTP_INITIATED
- EXTERNAL_RTP_CANCELED
- EXTERNAL_RTP_SETTLED
- EXTERNAL_RTP_REVERSED
- EXTERNAL_RTP_RELEASED
external_payment_event:
title: External Payment Event
type: object
properties:
amount:
type: integer
type:
$ref: '#/components/schemas/external_payment_event_type'
result:
$ref: '#/components/schemas/transaction_result'
detailed_results:
type: array
items:
$ref: '#/components/schemas/detailed_results'
created:
type: string
format: date-time
token:
type: string
format: uuid
memo:
type: string
effective_date:
type: string
format: date
required:
- amount
- type
- result
- detailed_results
- created
- token
- memo
- effective_date
external_payment_direction:
title: External Payment Direction
type: string
enum:
- DEPOSIT
- WITHDRAWAL
external_payment_response:
title: External Payment Response
allOf:
- $ref: '#/components/schemas/base_transaction'
- type: object
properties:
family:
type: string
const: EXTERNAL_PAYMENT
description: EXTERNAL_PAYMENT - External Payment Response
result:
$ref: '#/components/schemas/transaction_result'
category:
$ref: '#/components/schemas/external_payment_category'
settled_amount:
type: integer
pending_amount:
type: integer
currency:
type: string
events:
type: array
items:
$ref: '#/components/schemas/external_payment_event'
user_defined_id:
type:
- string
- 'null'
financial_account_token:
type: string
format: uuid
payment_type:
$ref: '#/components/schemas/external_payment_direction'
required:
- result
- category
- family
- settled_amount
- pending_amount
- currency
- events
- financial_account_token
- payment_type
management_operation_category:
title: Management Operation Category
type: string
enum:
- MANAGEMENT_FEE
- MANAGEMENT_DISPUTE
- MANAGEMENT_REWARD
- MANAGEMENT_ADJUSTMENT
- MANAGEMENT_DISBURSEMENT
management_operation_event_type:
title: Management Operation Event Type
type: string
enum:
- LOSS_WRITE_OFF
- CASH_BACK
- CASH_BACK_REVERSAL
- CURRENCY_CONVERSION
- CURRENCY_CONVERSION_REVERSAL
- INTEREST
- INTEREST_REVERSAL
- LATE_PAYMENT
- LATE_PAYMENT_REVERSAL
- BILLING_ERROR
- BILLING_ERROR_REVERSAL
- PROVISIONAL_CREDIT
- PROVISIONAL_CREDIT_REVERSAL
- RETURNED_PAYMENT
- RETURNED_PAYMENT_REVERSAL
- DISPUTE_WON
- DISPUTE_WON_REVERSAL
- DISBURSE
- DISBURSE_REVERSAL
- ANNUAL
- ANNUAL_REVERSAL
- QUARTERLY
- QUARTERLY_REVERSAL
- MONTHLY
- MONTHLY_REVERSAL
management_operation_event:
title: Management Operation Event
type: object
properties:
amount:
type: integer
type:
$ref: '#/components/schemas/management_operation_event_type'
subtype:
type:
- string
- 'null'
result:
$ref: '#/components/schemas/transaction_result'
detailed_results:
type: array
items:
$ref: '#/components/schemas/detailed_results'
created:
type: string
format: date-time
token:
type: string
format: uuid
memo:
type: string
effective_date:
type: string
format: date
required:
- amount
- type
- result
- detailed_results
- created
- token
- memo
- effective_date
management_operation_direction:
title: Management Operation Direction
type: string
enum:
- CREDIT
- DEBIT
management_operation_transaction:
title: Management Operation Transaction
allOf:
- $ref: '#/components/schemas/base_transaction'
- type: object
properties:
family:
type: string
const: MANAGEMENT_OPERATION
description: MANAGEMENT_OPERATION - Management Operation Transaction
result:
$ref: '#/components/schemas/transaction_result'
category:
$ref: '#/components/schemas/management_operation_category'
settled_amount:
type: integer
pending_amount:
type: integer
currency:
type: string
events:
type: array
items:
$ref: '#/components/schemas/management_operation_event'
user_defined_id:
type:
- string
- 'null'
financial_account_token:
type: string
format: uuid
direction:
$ref: '#/components/schemas/management_operation_direction'
transaction_series:
oneOf:
- $ref: '#/components/schemas/transaction_series'
- type: 'null'
external_resource:
oneOf:
- $ref: '#/components/schemas/external_resource'
- type: 'null'
required:
- result
- category
- family
- settled_amount
- pending_amount
- currency
- events
- financial_account_token
- direction
- transaction_series
base-transaction-response:
title: Transaction Response
description: >-
Response containing multiple transaction types. The `family` field determines which transaction type
is returned: INTERNAL returns FinancialTransaction, TRANSFER returns BookTransferTransaction, CARD
returns CardTransaction, PAYMENT returns PaymentTransaction, EXTERNAL_PAYMENT returns
ExternalPaymentResponse, MANAGEMENT_OPERATION returns ManagementOperationTransaction, and HOLD returns
HoldTransaction
discriminator:
propertyName: family
mapping:
INTERNAL: '#/components/schemas/financial-transaction'
TRANSFER: '#/components/schemas/book-transfer-transaction'
CARD: '#/components/schemas/card-transaction'
PAYMENT: '#/components/schemas/payment-transaction'
EXTERNAL_PAYMENT: '#/components/schemas/external_payment_response'
MANAGEMENT_OPERATION: '#/components/schemas/management_operation_transaction'
HOLD: '#/components/schemas/hold_transaction'
oneOf:
- $ref: '#/components/schemas/financial-transaction'
- $ref: '#/components/schemas/book-transfer-transaction'
- $ref: '#/components/schemas/card-transaction'
- $ref: '#/components/schemas/payment-transaction'
- $ref: '#/components/schemas/external_payment_response'
- $ref: '#/components/schemas/management_operation_transaction'
- $ref: '#/components/schemas/hold_transaction'
base-transactions-response:
title: Activity Response
description: A response containing a list of transactions
type: object
properties:
has_more:
type: boolean
description: Indicates if there are more transactions available for pagination
data:
type: array
items:
$ref: '#/components/schemas/base-transaction-response'
PaymentMethodRequestAttributes:
properties:
sec_code:
enum:
- CCD
- PPD
- WEB
title: SEC Code
type: string
ach_hold_period:
description: Number of days to hold the ACH payment
example: 0
minimum: 0
title: ACH Hold Period
type: integer
addenda:
title: Addenda
type:
- string
- 'null'
required:
- sec_code
title: PaymentMethodRequestAttributes
type: object
CreatePaymentRequest:
properties:
amount:
minimum: 1
title: Amount
type: integer
external_bank_account_token:
format: uuid
title: External Bank Account Token
type: string
financial_account_token:
format: uuid
title: Financial Account Token
type: string
memo:
maxLength: 512
pattern: ^[0-9A-Za-z \x20-\x7e\x40-\xff]*$
title: Memo
type: string
method:
enum:
- ACH_NEXT_DAY
- ACH_SAME_DAY
title: Payment Method
type: string
method_attributes:
$ref: '#/components/schemas/PaymentMethodRequestAttributes'
token:
description: >-
Customer-provided token that will serve as an idempotency token. This token will become the
transaction token.
format: uuid
title: Token
type: string
type:
enum:
- COLLECTION
- PAYMENT
title: Payment Type
type: string
user_defined_id:
maxLength: 512
title: User Defined Id
type: string
hold:
description: Optional hold to settle when this payment is initiated.
type: object
properties:
token:
description: Token of the hold to settle when this payment is initiated.
format: uuid
type: string
required:
- token
required:
- amount
- external_bank_account_token
- financial_account_token
- method
- method_attributes
- type
title: CreatePaymentRequest
type: object
PostPaymentResponse:
allOf:
- $ref: '#/components/schemas/payment-transaction'
- properties:
balance:
$ref: '#/components/schemas/balance'
type: object
title: PostPaymentResponse
payment_return_request:
title: Payment Return Request
description: Request to return an ACH payment
type: object
properties:
financial_account_token:
type: string
format: uuid
description: Globally unique identifier for the financial account
return_reason_code:
type: string
pattern: ^R(0[1-9]|[1-4][0-9]|5[0-3]|8[0-5])$
description: >-
ACH return reason code indicating the reason for returning the payment. Supported codes include
R01-R53 and R80-R85. For a complete list of return codes and their meanings, see [ACH Return
Reasons](https://docs.lithic.com/docs/ach-overview#ach-return-reasons)
example: R01
memo:
type:
- string
- 'null'
maxLength: 10
description: Optional memo for the return. Limited to 10 characters
addenda:
type:
- string
- 'null'
maxLength: 44
description: Optional additional information about the return. Limited to 44 characters
date_of_death:
type:
- string
- 'null'
format: date
description: >-
Date of death in YYYY-MM-DD format. Required when using return codes **R14** (representative payee
deceased) or **R15** (beneficiary or account holder deceased)
example: '2025-01-15'
required:
- financial_account_token
- return_reason_code
SettlementDetail:
properties:
account_token:
description: Globally unique identifier denoting the account that the associated transaction occurred on.
example: e34a817f-119d-4976-9fb3-8b020b8bbec3
format: uuid
type: string
card_program_token:
description: Globally unique identifier denoting the card program that the associated transaction occurred on.
example: e34a817f-119d-4976-9fb3-8b020b8bbec3
format: uuid
type: string
card_token:
description: Globally unique identifier denoting the card that the associated transaction occurred on.
example: e34a817f-119d-4976-9fb3-8b020b8bbec3
format: uuid
type: string
created:
description: Date and time when the transaction first occurred. UTC time zone.
example: '2023-06-01T00:00:00'
format: date-time
type: string
currency:
description: Three-character alphabetic ISO 4217 code.
example: USD
maxLength: 3
minLength: 3
type: string
disputes_gross_amount:
description: The total gross amount of disputes settlements.
example: 0
type: integer
event_tokens:
description: Globally unique identifiers denoting the Events associated with this settlement.
example:
- e34a817f-119d-4976-9fb3-8b020b8bbec3
items:
type: string
type: array
fee_description:
description: Network's description of a fee, only present on records with type `FEE`.
example: 'INTERCHANGE COMPLIANCE ADJUSTMENT FOR : 11/12/24'
type: string
institution:
description: The most granular ID the network settles with (e.g., ICA for Mastercard, FTSRE for Visa).
example: '00001'
type: string
interchange_fee_extended_precision:
description: The total amount of interchange in six-digit extended precision.
example: -70000
type: integer
interchange_gross_amount:
description: The total amount of interchange.
example: -7
type: integer
network:
description: Card network where the transaction took place.
enum:
- INTERLINK
- MAESTRO
- MASTERCARD
- UNKNOWN
- VISA
example: MASTERCARD
type: string
other_fees_details:
description: The total gross amount of other fees by type.
properties:
ISA:
title: ISA
type: integer
type: object
other_fees_gross_amount:
description: Total amount of gross other fees outside of interchange.
example: 0
type: integer
report_date:
description: Date of when the report was first generated.
example: '2023-06-01'
type: string
settlement_date:
description: >-
Date of when money movement is triggered for the transaction. One exception applies - for
Mastercard dual message settlement, this is the settlement advisement date, which is distinct from
the date of money movement.
example: '2023-06-01'
type: string
token:
description: Globally unique identifier denoting the Settlement Detail.
example: e34a817f-119d-4976-9fb3-8b020b8bbec3
format: uuid
type: string
transaction_token:
description: Globally unique identifier denoting the associated Transaction object.
example: e34a817f-119d-4976-9fb3-8b020b8bbec3
format: uuid
type: string
transactions_gross_amount:
description: The total amount of settlement impacting transactions (excluding interchange, fees, and disputes).
example: 1900
type: integer
type:
description: The type of settlement record.
enum:
- ADJUSTMENT
- ARBITRATION
- CHARGEBACK
- CLEARING
- COLLABORATION
- FEE
- FINANCIAL
- NON-FINANCIAL
- PREARBITRATION
- REPRESENTMENT
example: CLEARING
type: string
updated:
description: Date and time when the transaction first occurred. UTC time zone.
example: '2023-06-01T00:00:00'
format: date-time
type: string
required:
- account_token
- card_program_token
- card_token
- created
- currency
- disputes_gross_amount
- event_tokens
- institution
- interchange_fee_extended_precision
- interchange_gross_amount
- network
- other_fees_details
- other_fees_gross_amount
- report_date
- settlement_date
- token
- transaction_token
- transactions_gross_amount
- type
- updated
type: object
settlement-summary-details:
title: settlement Summary Details
properties:
currency:
description: 3-character alphabetic ISO 4217 code.
example: USD
maxLength: 3
minLength: 3
type: string
disputes_gross_amount:
description: The total gross amount of disputes settlements.
example: 0
type: integer
institution:
description: The most granular ID the network settles with (e.g., ICA for Mastercard, FTSRE for Visa).
example: '00001'
type: string
interchange_gross_amount:
description: The total amount of interchange.
example: -7
type: integer
network:
description: Card network where the transaction took place
enum:
- INTERLINK
- MAESTRO
- MASTERCARD
- UNKNOWN
- VISA
example: MASTERCARD
type: string
other_fees_gross_amount:
description: Total amount of gross other fees outside of interchange.
example: 0
type: integer
settled_net_amount:
description: The total net amount of cash moved. (net value of settled_gross_amount, interchange, fees).
example: 1893
type: integer
transactions_gross_amount:
description: The total amount of settlement impacting transactions (excluding interchange, fees, and disputes).
example: 1900
type: integer
type: object
settlement-report:
title: Settlement Report
properties:
created:
description: Date and time when the transaction first occurred. UTC time zone.
example: '2023-06-01T00:00:00'
format: date-time
type: string
currency:
description: >-
3-character alphabetic ISO 4217 code. (This field is deprecated and will be removed in a future
version of the API.)
example: USD
maxLength: 3
minLength: 3
type: string
deprecated: true
details:
items:
$ref: '#/components/schemas/settlement-summary-details'
type: array
disputes_gross_amount:
description: >-
The total gross amount of disputes settlements. (This field is deprecated and will be removed in a
future version of the API. To compute total amounts, Lithic recommends that customers sum the
relevant settlement amounts found within `details`.)
example: 0
type: integer
deprecated: true
interchange_gross_amount:
description: >-
The total amount of interchange. (This field is deprecated and will be removed in a future version
of the API. To compute total amounts, Lithic recommends that customers sum the relevant settlement
amounts found within `details`.)
example: -7
type: integer
deprecated: true
is_complete:
description: Indicates that all data expected on the given report date is available.
type: boolean
other_fees_gross_amount:
description: >-
Total amount of gross other fees outside of interchange. (This field is deprecated and will be
removed in a future version of the API. To compute total amounts, Lithic recommends that customers
sum the relevant settlement amounts found within `details`.)
example: 0
type: integer
deprecated: true
report_date:
description: Date of when the report was first generated.
example: '2023-06-01'
type: string
settled_net_amount:
description: >-
The total net amount of cash moved. (net value of settled_gross_amount, interchange, fees). (This
field is deprecated and will be removed in a future version of the API. To compute total amounts,
Lithic recommends that customers sum the relevant settlement amounts found within `details`.)
example: 1893
type: integer
deprecated: true
transactions_gross_amount:
description: >-
The total amount of settlement impacting transactions (excluding interchange, fees, and disputes).
(This field is deprecated and will be removed in a future version of the API. To compute total
amounts, Lithic recommends that customers sum the relevant settlement amounts found within
`details`.)
example: 1900
type: integer
deprecated: true
updated:
description: Date and time when the transaction first occurred. UTC time zone.
example: '2023-06-01T00:00:00'
format: date-time
type: string
required:
- created
- currency
- details
- disputes_gross_amount
- interchange_gross_amount
- is_complete
- other_fees_gross_amount
- report_date
- settled_net_amount
- transactions_gross_amount
- updated
type: object
network_total:
title: Network Total
type: object
required:
- token
- network
- institution_id
- settlement_institution_id
- settlement_service
- report_date
- currency
- is_complete
- amounts
- created
- updated
properties:
token:
type: string
format: uuid
description: Globally unique identifier.
network:
type: string
enum:
- AMEX
- VISA
- MASTERCARD
- MAESTRO
- INTERLINK
description: Card network where the transaction took place. AMEX, VISA, MASTERCARD, MAESTRO, or INTERLINK.
institution_id:
type: string
description: >-
The institution that activity occurred on. For Mastercard: ICA (Interbank Card Association). For
Maestro: institution ID. For Visa: lowest level SRE (Settlement Reporting Entity).
settlement_institution_id:
type: string
description: >-
The institution responsible for settlement. For Mastercard: same as `institution_id`. For Maestro:
billing ICA. For Visa: Funds Transfer SRE (FTSRE).
settlement_service:
type: string
description: Settlement service.
report_date:
type: string
format: date
description: Date that the network total record applies to. YYYY-MM-DD format.
cycle:
type: integer
description: The clearing cycle that the network total record applies to. Mastercard only.
currency:
type: string
description: 3-character alphabetic ISO 4217 code.
is_complete:
type: boolean
description: >-
Indicates that all settlement records related to this Network Total are available in the details
endpoint.
amounts:
type: object
required:
- gross_settlement
- interchange_fees
- net_settlement
properties:
gross_settlement:
type: integer
description: Total settlement amount excluding interchange, in currency's smallest unit.
interchange_fees:
type: integer
description: Interchange amount, in currency's smallest unit.
visa_charges:
type: integer
description: Charges specific to Visa/Interlink, in currency's smallest unit.
net_settlement:
type: integer
description: >-
`gross_settlement` net of `interchange_fees` and `visa_charges` (if applicable), in currency's
smallest unit.
created:
type: string
format: date-time
description: RFC 3339 timestamp for when the record was created. UTC time zone.
updated:
type: string
format: date-time
description: RFC 3339 timestamp for when the record was last updated. UTC time zone.
examples:
- token: 12cf7505-06a8-435e-b1c7-4c430d02f6c3
network: VISA
institution_id: '1000000000'
settlement_institution_id: '1000000001'
settlement_service: '015'
report_date: '2025-02-25'
currency: CAD
is_complete: true
amounts:
gross_settlement: 100
interchange_fees: -25
visa_charges: 10
net_settlement: 85
created: '2025-02-25T13:07:31.419631Z'
updated: '2025-02-25T13:07:31.419631Z'
network_totals_list:
title: Network Totals Response
type: object
required:
- data
- has_more
properties:
data:
type: array
items:
$ref: '#/components/schemas/network_total'
has_more:
description: Indicates whether there are more network total records to be retrieved.
type: boolean
examples:
- data:
- token: 12cf7505-06a8-435e-b1c7-4c430d02f6c3
network: VISA
institution_id: '1000000000'
settlement_institution_id: '1000000001'
settlement_service: '015'
report_date: '2025-02-25'
currency: CAD
is_complete: true
amounts:
gross_settlement: 100
interchange_fees: -25
visa_charges: 10
net_settlement: 85
created: '2025-02-25T13:07:31.419631Z'
updated: '2025-02-25T13:07:31.419631Z'
- token: 0604c316-17f0-456d-9ac7-7d94252acb1a
network: INTERLINK
institution_id: '1000000000'
settlement_institution_id: '1000000001'
settlement_service: '001'
report_date: '2025-02-25'
currency: USD
is_complete: true
amounts:
gross_settlement: 200
interchange_fees: -50
visa_charges: 10
net_settlement: 160
created: '2025-02-25T13:07:31.419631Z'
updated: '2025-02-25T13:07:31.419631Z'
- token: 700a1c78-04ed-47e2-8160-b1e18914ec7b
network: MASTERCARD
institution_id: '031511'
settlement_institution_id: '031511'
settlement_service: US00000001
report_date: '2025-02-25'
currency: USD
cycle: 1
is_complete: false
amounts:
gross_settlement: 100
interchange_fees: -25
net_settlement: 75
created: '2025-02-25T13:07:31.419631Z'
updated: '2025-02-25T13:07:31.419631Z'
- token: e05d5448-210e-4cc3-bd0d-d54d3c6c9a9f
network: MASTERCARD
institution_id: '031511'
settlement_institution_id: '031511'
settlement_service: US00000001
report_date: '2025-02-25'
currency: USD
cycle: 2
is_complete: true
amounts:
gross_settlement: 100
interchange_fees: -25
net_settlement: 75
created: '2025-02-25T13:07:31.419631Z'
updated: '2025-02-25T13:07:31.419631Z'
has_more: false
simulate_receipt_request:
title: Simulate Receipt Request
type: object
properties:
financial_account_token:
description: Financial Account Token
type: string
format: uuid
token:
description: Customer-generated payment token used to uniquely identify the simulated payment
type: string
format: uuid
receipt_type:
description: Receipt Type
type: string
enum:
- RECEIPT_CREDIT
- RECEIPT_DEBIT
amount:
description: Amount
type: integer
minimum: 0
memo:
description: Memo
type: string
required:
- financial_account_token
- token
- receipt_type
- amount
result:
type: string
enum:
- APPROVED
- DECLINED
title: Result
simulate_payment_response:
title: Simulate Payment Response
type: object
properties:
result:
description: Request Result
$ref: '#/components/schemas/result'
transaction_event_token:
description: Transaction Event Token
type: string
format: uuid
debugging_request_id:
description: Debugging Request Id
type: string
format: uuid
required:
- result
- transaction_event_token
- debugging_request_id
simulate_origination_release_request:
title: Simulate Origination Release Request
type: object
properties:
payment_token:
description: Payment Token
type: string
format: uuid
required:
- payment_token
simulate_origination_return_request:
title: Simulate Origination Return Request
type: object
properties:
payment_token:
description: Payment Token
type: string
format: uuid
return_reason_code:
description: Return Reason Code
type: string
default: R01
pattern: ^R[0-9][0-9]$
example: R12
required:
- payment_token
supported_simulation_types:
type: string
enum:
- ACH_ORIGINATION_REVIEWED
- ACH_ORIGINATION_RELEASED
- ACH_ORIGINATION_PROCESSED
- ACH_ORIGINATION_SETTLED
- ACH_RECEIPT_SETTLED
- ACH_RECEIPT_RELEASED
- ACH_RECEIPT_RELEASED_EARLY
- ACH_RETURN_INITIATED
- ACH_RETURN_PROCESSED
- ACH_RETURN_SETTLED
title: Supported Simulation Types
supported_simulation_decline_reasons:
type: string
enum:
- PROGRAM_TRANSACTION_LIMIT_EXCEEDED
- PROGRAM_DAILY_LIMIT_EXCEEDED
- PROGRAM_MONTHLY_LIMIT_EXCEEDED
title: Supported Simulation Decline Reasons
simulate_action_request:
title: Simulate Action Request
type: object
properties:
event_type:
description: Event Type
$ref: '#/components/schemas/supported_simulation_types'
return_reason_code:
description: Return Reason Code
type: string
decline_reason:
description: Decline reason
$ref: '#/components/schemas/supported_simulation_decline_reasons'
return_addenda:
description: Return Addenda
type: string
date_of_death:
description: Date of Death for ACH Return
type: string
format: date
required:
- event_type
tokenization-event-outcome:
title: Tokenization Event Outcome
description: Enum representing the result of the tokenization event
type: string
enum:
- APPROVED
- DECLINED
- NOTIFICATION_DELIVERED
- REQUIRE_ADDITIONAL_AUTHENTICATION
- TOKEN_ACTIVATED
- TOKEN_CREATED
- TOKEN_DEACTIVATED
- TOKEN_DELETED_FROM_CONSUMER_APP
- TOKEN_INACTIVE
- TOKEN_STATE_UNKNOWN
- TOKEN_SUSPENDED
- TOKEN_UPDATED
tokenization-decline-reason:
title: Tokenization Decline Reason
description: Reason code for why a tokenization was declined
type: string
enum:
- ACCOUNT_SCORE_1
- DEVICE_SCORE_1
- ALL_WALLET_DECLINE_REASONS_PRESENT
- WALLET_RECOMMENDED_DECISION_RED
- CVC_MISMATCH
- CARD_EXPIRY_MONTH_MISMATCH
- CARD_EXPIRY_YEAR_MISMATCH
- CARD_INVALID_STATE
- CUSTOMER_RED_PATH
- INVALID_CUSTOMER_RESPONSE
- NETWORK_FAILURE
- GENERIC_DECLINE
- DIGITAL_CARD_ART_REQUIRED
tokenization-tfa-reason:
title: Tokenization TFA Reason
description: Reason code for why a tokenization required two-factor authentication
type: string
enum:
- WALLET_RECOMMENDED_TFA
- SUSPICIOUS_ACTIVITY
- DEVICE_RECENTLY_LOST
- TOO_MANY_RECENT_ATTEMPTS
- TOO_MANY_RECENT_TOKENS
- TOO_MANY_DIFFERENT_CARDHOLDERS
- OUTSIDE_HOME_TERRITORY
- HAS_SUSPENDED_TOKENS
- HIGH_RISK
- ACCOUNT_SCORE_LOW
- DEVICE_SCORE_LOW
- CARD_STATE_TFA
- HARDCODED_TFA
- CUSTOMER_RULE_TFA
- DEVICE_HOST_CARD_EMULATION
tokenization-rule-result:
title: Tokenization Rule Result
type: object
properties:
auth_rule_token:
description: >-
The Auth Rule Token associated with the rule. If this is set to null, then the result was not
associated with a customer-configured rule. This may happen in cases where a tokenization is
declined or requires TFA due to a Lithic-configured security or compliance rule, for example.
oneOf:
- type: 'null'
- type: string
format: uuid
result:
description: The result associated with this rule
type: string
enum:
- APPROVED
- DECLINED
- REQUIRE_TFA
- ERROR
name:
description: The name for the rule, if any was configured
oneOf:
- type: 'null'
- type: string
explanation:
description: A human-readable explanation outlining the motivation for the rule's result
oneOf:
- type: 'null'
- type: string
required:
- auth_rule_token
- result
- name
- explanation
tokenization-event:
title: Tokenization Event
properties:
created_at:
description: Date and time when the tokenization event first occurred. UTC time zone.
format: date-time
type: string
result:
$ref: '#/components/schemas/tokenization-event-outcome'
token:
description: Globally unique identifier for a Tokenization Event
format: uuid
type: string
type:
description: Enum representing the type of tokenization event that occurred
enum:
- TOKENIZATION_2FA
- TOKENIZATION_AUTHORIZATION
- TOKENIZATION_DECISIONING
- TOKENIZATION_ELIGIBILITY_CHECK
- TOKENIZATION_UPDATED
type: string
tokenization_decline_reasons:
description: List of reasons why the tokenization was declined
type: array
items:
$ref: '#/components/schemas/tokenization-decline-reason'
tokenization_tfa_reasons:
description: List of reasons why two-factor authentication was required
type: array
items:
$ref: '#/components/schemas/tokenization-tfa-reason'
rule_results:
description: Results from rules that were evaluated for this tokenization
type: array
items:
$ref: '#/components/schemas/tokenization-rule-result'
tokenization:
title: Tokenization
properties:
account_token:
description: The account token associated with the card being tokenized.
format: uuid
type: string
card_token:
description: The card token associated with the card being tokenized.
format: uuid
type: string
created_at:
description: Date and time when the tokenization first occurred. UTC time zone.
format: date-time
type: string
device_id:
description: The device identifier associated with the tokenization.
type:
- string
- 'null'
digital_card_art_token:
description: >-
Specifies the digital card art displayed in the user's digital wallet after tokenization. This
will be null if the tokenization was created without an associated digital card art. See [Flexible
Card Art Guide](https://docs.lithic.com/docs/about-digital-wallets#flexible-card-art).
format: uuid
type:
- string
- 'null'
events:
description: A list of events related to the tokenization.
items:
$ref: '#/components/schemas/tokenization-event'
type: array
status:
description: The status of the tokenization request
enum:
- ACTIVE
- DEACTIVATED
- INACTIVE
- PAUSED
- PENDING_2FA
- PENDING_ACTIVATION
- UNKNOWN
type: string
token:
description: Globally unique identifier for a Tokenization
format: uuid
type: string
token_requestor_name:
description: >-
The entity that requested the tokenization. For digital wallets, this will be one of the defined
wallet types. For merchant tokenizations, this will be a free-form merchant name string.
anyOf:
- title: Digital wallet type
description: Digital wallet type
enum:
- AMAZON_ONE
- ANDROID_PAY
- APPLE_PAY
- FACEBOOK
- FITBIT_PAY
- GARMIN_PAY
- GOOGLE_PAY
- MICROSOFT_PAY
- NETFLIX
- SAMSUNG_PAY
- UNKNOWN
- VISA_CHECKOUT
type: string
- title: Merchant name
description: Merchant name for merchant tokenizations
type: string
token_unique_reference:
description: The network's unique reference for the tokenization.
type: string
dpan:
description: The dynamic pan assigned to the token by the network.
type:
- string
- 'null'
payment_account_reference_id:
description: The network's unique reference for the card that is tokenized.
type:
- string
- 'null'
tokenization_channel:
description: The channel through which the tokenization was made.
enum:
- DIGITAL_WALLET
- MERCHANT
type: string
updated_at:
description: Latest date and time when the tokenization was updated. UTC time zone.
format: date-time
type: string
required:
- account_token
- card_token
- created_at
- status
- token
- token_requestor_name
- token_unique_reference
- dpan
- tokenization_channel
- updated_at
type: object
simulate-enrollment-review-request:
title: Simulate account holder enrollment review request body
type: object
properties:
account_holder_token:
description: The account holder which to perform the simulation upon.
type: string
status:
description: An account holder's status for use within the simulation.
type: string
enum:
- ACCEPTED
- REJECTED
- PENDING_REVIEW
status_reasons:
description: >-
Status reason that will be associated with the simulated account holder status. Only required for
a `REJECTED` status.
type: array
items:
type: string
enum:
- PRIMARY_BUSINESS_ENTITY_ID_VERIFICATION_FAILURE
- PRIMARY_BUSINESS_ENTITY_ADDRESS_VERIFICATION_FAILURE
- PRIMARY_BUSINESS_ENTITY_NAME_VERIFICATION_FAILURE
- PRIMARY_BUSINESS_ENTITY_BUSINESS_OFFICERS_NOT_MATCHED
- PRIMARY_BUSINESS_ENTITY_SOS_FILING_INACTIVE
- PRIMARY_BUSINESS_ENTITY_SOS_NOT_MATCHED
- PRIMARY_BUSINESS_ENTITY_CMRA_FAILURE
- PRIMARY_BUSINESS_ENTITY_WATCHLIST_FAILURE
- PRIMARY_BUSINESS_ENTITY_REGISTERED_AGENT_FAILURE
- CONTROL_PERSON_BLOCKLIST_ALERT_FAILURE
- CONTROL_PERSON_ID_VERIFICATION_FAILURE
- CONTROL_PERSON_DOB_VERIFICATION_FAILURE
- CONTROL_PERSON_NAME_VERIFICATION_FAILURE
- BENEFICIAL_OWNER_INDIVIDUAL_DOB_VERIFICATION_FAILURE
- BENEFICIAL_OWNER_INDIVIDUAL_BLOCKLIST_ALERT_FAILURE
- BENEFICIAL_OWNER_INDIVIDUAL_ID_VERIFICATION_FAILURE
- BENEFICIAL_OWNER_INDIVIDUAL_NAME_VERIFICATION_FAILURE
account-holder-response:
title: Account Holder
type: object
properties:
token:
description: Globally unique identifier for the account holder.
type: string
format: uuid
account_token:
description: Globally unique identifier for the account.
type: string
format: uuid
business_account_token:
description: >-
Only applicable for customers using the KYC-Exempt workflow to enroll authorized users of
businesses. Pass the account_token of the enrolled business associated with the AUTHORIZED_USER in
this field.
type:
- string
- 'null'
format: uuid
created:
description: Timestamp of when the account holder was created.
type: string
format: date-time
exemption_type:
description: >-
The type of KYC exemption for a KYC-Exempt Account Holder. "None" if the account holder is not
KYC-Exempt.
type: string
enum:
- AUTHORIZED_USER
- PREPAID_CARD_USER
external_id:
description: >-
Customer-provided token that indicates a relationship with an object outside of the Lithic
ecosystem.
type: string
user_type:
description: >-
The type of Account Holder. If the type is "INDIVIDUAL", the "individual" attribute will be
present.
If the type is "BUSINESS" then the "business_entity", "control_person",
"beneficial_owner_individuals",
"naics_code", "nature_of_business", and "website_url" attributes will be present.
type: string
enum:
- BUSINESS
- INDIVIDUAL
verification_application:
$ref: '#/components/schemas/verification-application'
description: Information about the most recent identity verification attempt
individual:
$ref: '#/components/schemas/individual'
description: >-
Only present when user_type == "INDIVIDUAL". Information about the individual for which the
account is being opened and KYC is being run.
business_entity:
$ref: '#/components/schemas/kyb-business-entity'
description: >-
Only present when user_type == "BUSINESS". Information about the business for which the account is
being opened and KYB is being run.
beneficial_owner_individuals:
description: >-
Only present when user_type == "BUSINESS". You must submit a list of all direct and indirect
individuals with 25% or more ownership in the company. A maximum of 4 beneficial owners can be
submitted. If no individual owns 25% of the company you do not need to send beneficial owner
information. See [FinCEN
requirements](https://www.fincen.gov/sites/default/files/shared/CDD_Rev6.7_Sept_2017_Certificate.pdf)
(Section I) for more background on individuals that should be included.
type: array
items:
$ref: '#/components/schemas/individual'
minItems: 0
control_person:
$ref: '#/components/schemas/individual'
description: >-
Only present when user_type == "BUSINESS".
An individual with significant responsibility for managing the legal entity (e.g., a Chief
Executive Officer, Chief Financial Officer, Chief Operating Officer,
Managing Member, General Partner, President, Vice President, or Treasurer). This can be an
executive, or someone who will have program-wide access
to the cards that Lithic will provide. In some cases, this individual could also be a beneficial
owner listed above.
naics_code:
description: >-
Only present when user_type == "BUSINESS". 6-digit North American Industry Classification System
(NAICS) code for the business.
type: string
nature_of_business:
description: Only present when user_type == "BUSINESS". User-submitted description of the business.
type: string
website_url:
description: Only present when user_type == "BUSINESS". Business's primary website.
type: string
email:
description: |
(Deprecated. Use control_person.email when user_type == "BUSINESS".
Use individual.phone_number when user_type == "INDIVIDUAL".)
Primary email of Account Holder.
type: string
phone_number:
description: |
(Deprecated. Use control_person.phone_number when user_type == "BUSINESS".
Use individual.phone_number when user_type == "INDIVIDUAL".)
Primary phone of Account Holder, entered in E.164 format.
type: string
status:
description: |+
(Deprecated. Use verification_application.status instead)
KYC and KYB evaluation states.
Note: `PENDING_RESUBMIT` and `PENDING_DOCUMENT` are only applicable for the `ADVANCED` workflow.
$ref: '#/components/schemas/status'
status_reasons:
description: |-
(Deprecated. Use verification_application.status_reasons)
Reason for the evaluation status.
type: array
items:
$ref: '#/components/schemas/status-reasons'
required_documents:
description: >-
Only present for "KYB_BASIC" and "KYC_ADVANCED" workflows. A list of documents required for the
account holder to be approved.
type: array
items:
$ref: '#/components/schemas/required-document'
simulate-enrollment-document-review-request:
title: Simulate account holder enrollment document review request body
type: object
properties:
document_upload_token:
description: The account holder document upload which to perform the simulation upon.
type: string
status:
description: An account holder document's upload status for use within the simulation.
type: string
enum:
- UPLOADED
- ACCEPTED
- REJECTED
- PARTIAL_APPROVAL
status_reason:
$ref: '#/components/schemas/document-upload-status-reasons'
description: >-
Status reason that will be associated with the simulated account holder status. Only required for
a `REJECTED` status or `PARTIAL_APPROVAL` status.
accepted_entity_status_reasons:
description: A list of status reasons associated with a KYB account holder in PENDING_REVIEW
type: array
items:
type: string
required:
- document_upload_token
- status
simulate-authentication-request:
title: 3DS Simulation Request object
type: object
description: Request object for simulating a 3DS authentication
properties:
merchant:
type: object
description: Merchant information for the simulated transaction
properties:
country:
type: string
description: Country of the address provided by the cardholder in ISO 3166-1 alpha-3 format (e.g. USA)
example: USA
id:
type: string
description: >-
Unique identifier to identify the payment card acceptor. Corresponds to `merchant_acceptor_id`
in authorization.
example: OODKZAPJVN4YS7O
maxLength: 15
minLength: 1
mcc:
type: string
description: >-
Merchant category code for the transaction to be simulated. A four-digit number listed in ISO
18245. Supported merchant category codes can be found
[here](https://docs.lithic.com/docs/transactions#merchant-category-codes-mccs).
example: '5812'
name:
type: string
description: >-
Merchant descriptor, corresponds to `descriptor` in authorization. If CHALLENGE keyword is
included, Lithic will trigger a challenge.
example: COFFEE SHOP
maxLength: 25
minLength: 1
required:
- country
- id
- mcc
- name
pan:
type: string
description: Sixteen digit card number.
example: '4111111289144142'
maxLength: 16
minLength: 16
transaction:
type: object
description: Transaction details for the simulation
properties:
amount:
type: integer
description: Amount (in cents) to authenticate.
minimum: 0
currency:
type: string
description: 3-character alphabetic ISO 4217 currency code.
example: GBP
required:
- amount
- currency
card_expiry_check:
type: string
description: >-
When set will use the following values as part of the Simulated Authentication. When not set
defaults to MATCH
enum:
- MATCH
- MISMATCH
- NOT_PRESENT
required:
- merchant
- pan
- transaction
address_match_result:
title: Address Match Result
description: >-
Lithic's evaluation result comparing the transaction's address data with the cardholder KYC data if it
exists. In the event Lithic does not have any Cardholder KYC data, or the transaction does not contain
any address data, NOT_PRESENT will be returned
type: string
enum:
- MATCH
- MATCH_ADDRESS_ONLY
- MATCH_ZIP_ONLY
- MISMATCH
- NOT_PRESENT
authentication:
title: 3DS Authentication object
type: object
description: Represents a 3DS authentication
properties:
account_type:
type:
- string
- 'null'
description: Type of account/card that is being used for the transaction. Maps to EMV 3DS field `acctType`.
enum:
- CREDIT
- DEBIT
- NOT_APPLICABLE
- null
additional_data:
type:
- object
- 'null'
description: >-
Object containing additional data about the 3DS request that is beyond the EMV 3DS standard spec
(e.g., specific fields that only certain card networks send but are not required across all 3DS
requests).
properties:
network_decision:
type:
- string
- 'null'
description: >-
Mastercard only: Indicates whether the network would have considered the authentication
request to be low risk or not.
enum:
- LOW_RISK
- NOT_LOW_RISK
- null
network_risk_score:
type:
- integer
- 'null'
description: >-
Mastercard only: Assessment by the network of the authentication risk level, with a higher
value indicating a higher amount of risk. Permitted values: Integer between 0-950, in
increments of 50.
required: []
app:
type:
- object
- 'null'
description: >-
Object containing data about the app used in the e-commerce transaction. Present if the channel is
'APP_BASED'.
properties:
device_info:
type:
- string
- 'null'
description: Raw device information - base64-encoded JSON object. Maps to EMV 3DS field `deviceInfo`.
ip:
type: string
description: IP address of the device.
x-stainless-naming:
go:
property_name: Ip
platform:
type:
- string
- 'null'
description: 'Device platform: Android, iOS, Windows, etc.'
device:
type:
- string
- 'null'
description: 'Device model: e.g. "Apple iPhone 16".'
os:
type:
- string
- 'null'
description: 'Operating System: e.g. "Android 12", "iOS 17.1".'
locale:
type:
- string
- 'null'
description: 'Device locale: e.g. "en-US".'
time_zone:
type:
- string
- 'null'
description: Time zone offset in minutes between UTC and device local time.
screen_width:
type:
- integer
- 'null'
description: Screen width in pixels.
screen_height:
type:
- integer
- 'null'
description: Screen height in pixels.
latitude:
type:
- number
- 'null'
description: Latitude coordinate of current device location.
minimum: -90
maximum: 90
longitude:
type:
- number
- 'null'
description: Longitude coordinate of current device location.
minimum: -180
maximum: 180
required: []
authentication_request_type:
type:
- string
- 'null'
description: >-
Type of authentication request - i.e., the type of transaction or interaction is causing the
merchant to request an authentication. Maps to EMV 3DS field `threeDSRequestorAuthenticationInd`.
enum:
- ADD_CARD
- BILLING_AGREEMENT
- DELAYED_SHIPMENT
- EMV_TOKEN_CARDHOLDER_VERIFICATION
- INSTALLMENT_TRANSACTION
- MAINTAIN_CARD
- PAYMENT_TRANSACTION
- RECURRING_TRANSACTION
- SPLIT_PAYMENT
- SPLIT_SHIPMENT
- null
authentication_result:
type:
- string
description: Indicates the outcome of the 3DS authentication process.
enum:
- DECLINE
- SUCCESS
- PENDING_CHALLENGE
- PENDING_DECISION
browser:
type:
- object
- 'null'
description: >-
Object containing data about the browser used in the e-commerce transaction. Present if the
channel is 'BROWSER'.
properties:
accept_header:
type:
- string
- 'null'
description: >-
Content of the HTTP accept headers as sent from the cardholder's browser to the 3DS requestor
(e.g., merchant or digital wallet).
ip:
description: >-
IP address of the browser as returned by the HTTP headers to the 3DS requestor (e.g., merchant
or digital wallet). Maps to EMV 3DS field `browserIP`.
type: string
nullable: true
x-stainless-naming:
go:
property_name: Ip
java_enabled:
type:
- boolean
- 'null'
description: >-
Indicates whether the cardholder's browser has the ability to execute Java. Maps to EMV 3DS
field `browserJavaEnabled`.
javascript_enabled:
type:
- boolean
- 'null'
description: >-
Indicates whether the cardholder's browser has the ability to execute JavaScript. Maps to EMV
3DS field `browserJavascriptEnabled`.
language:
type:
- string
- 'null'
description: >-
Language of the cardholder's browser as defined in IETF BCP47. Maps to EMV 3DS field
`browserLanguage`.
time_zone:
type:
- string
- 'null'
description: >-
Time zone offset in minutes between UTC and browser local time. Maps to EMV 3DS field
`browserTz`.
user_agent:
type:
- string
- 'null'
description: Content of the HTTP user-agent header. Maps to EMV 3DS field `browserUserAgent`.
required: []
card_expiry_check:
type: string
description: >-
Indicates whether the expiration date provided by the cardholder during checkout matches Lithic's
record of the card's expiration date.
enum:
- MATCH
- MISMATCH
- NOT_PRESENT
card_token:
type: string
description: >-
Globally unique identifier for the card on which the 3DS authentication has occurred. Permitted
values: 36-digit version 4 UUID (including hyphens).
format: uuid
cardholder:
type: object
description: Object containing data about the cardholder provided during the transaction.
properties:
address_match:
type:
- boolean
- 'null'
description: >-
Indicates whether the shipping address and billing address provided by the cardholder are the
same. This value - and assessment of whether the addresses match - is provided directly in the
3DS request and is not determined by Lithic. Maps to EMV 3DS field `addrMatch`.
address_on_file_match:
$ref: '#/components/schemas/address_match_result'
billing_address:
type: object
description: Object containing data on the billing address provided during the transaction.
properties:
address1:
type:
- string
- 'null'
description: First line of the street address provided by the cardholder.
address2:
type:
- string
- 'null'
description: Second line of the street address provided by the cardholder.
address3:
type:
- string
- 'null'
description: Third line of the street address provided by the cardholder.
city:
type:
- string
- 'null'
description: City of the address provided by the cardholder.
country:
type:
- string
- 'null'
description: Country of the address provided by the cardholder in ISO 3166-1 alpha-3 format (e.g. USA)
minLength: 3
maxLength: 3
postal_code:
type:
- string
- 'null'
description: Postal code (e.g., ZIP code) of the address provided by the cardholder
email:
type:
- string
- 'null'
description: >-
Email address that is either provided by the cardholder or is on file with the merchant in a
3RI request. Maps to EMV 3DS field `email`.
maxLength: 254
minLength: 1
name:
type:
- string
- 'null'
description: Name of the cardholder. Maps to EMV 3DS field `cardholderName`.
maxLength: 45
minLength: 1
phone_number_home:
type:
- string
- 'null'
description: >-
Home phone number in E.164 format provided by the cardholder. Maps to EMV 3DS fields
`homePhone.cc` and `homePhone.subscriber`.
maxLength: 16
minLength: 1
phone_number_mobile:
type:
- string
- 'null'
description: >-
Mobile/cell phone number in E.164 format provided by the cardholder. Maps to EMV 3DS fields
`mobilePhone.cc` and `mobilePhone.subscriber`.
maxLength: 16
minLength: 1
phone_number_work:
type:
- string
- 'null'
description: >-
Work phone number in E.164 format provided by the cardholder. Maps to EMV 3DS fields
`workPhone.cc` and `workPhone.subscriber`.
maxLength: 16
minLength: 1
shipping_address:
type: object
description: Object containing data on the shipping address provided during the transaction.
properties:
address1:
type:
- string
- 'null'
description: First line of the street address provided by the cardholder.
address2:
type:
- string
- 'null'
description: Second line of the street address provided by the cardholder.
address3:
type:
- string
- 'null'
description: Third line of the street address provided by the cardholder.
city:
type:
- string
- 'null'
description: City of the address provided by the cardholder.
country:
type:
- string
- 'null'
description: Country of the address provided by the cardholder in ISO 3166-1 alpha-3 format (e.g. USA)
minLength: 3
maxLength: 3
postal_code:
type:
- string
- 'null'
description: Postal code (e.g., ZIP code) of the address provided by the cardholder
required: []
challenge_metadata:
type:
- object
- 'null'
description: Metadata about the challenge method and delivery. Only present when a challenge is triggered.
properties:
method_type:
type: string
enum:
- SMS_OTP
- OUT_OF_BAND
description: The type of challenge method used for authentication.
phone_number:
type:
- string
- 'null'
description: The phone number used for delivering the OTP. Relevant only for SMS_OTP method.
status:
type: string
enum:
- SUCCESS
- PENDING
- SMS_DELIVERY_FAILED
- CARDHOLDER_TIMEOUT
- CANCELED_VIA_CHALLENGE_UI
- CANCELED_OOB
- ATTEMPTS_EXCEEDED
- ABORTED
- ERROR
description: >-
Indicates the status of the challenge
* SUCCESS - Cardholder completed the challenge successfully
* PENDING - Challenge was issued to the cardholder and was not completed yet
* SMS_DELIVERY_FAILED - Lithic confirmed undeliverability of the SMS to the provided phone
number. Relevant only for SMS_OTP method
* CARDHOLDER_TIMEOUT - Cardholder failed to complete the challenge within the given challenge
TTL
* CANCELED_VIA_CHALLENGE_UI - Cardholder canceled the challenge by selecting "cancel" on the
challenge UI
* CANCELED_OOB - Cardholder canceled the challenge out of band
* ATTEMPTS_EXCEEDED - Cardholder failed the challenge by either entering an incorrect OTP more
than the allowed number of times or requesting a new OTP more than the allowed number of times
* ABORTED - Merchant aborted authentication after a challenge was requested
* ERROR - The challenge failed for a reason different than those documented
required:
- method_type
- status
challenge_orchestrated_by:
type:
- string
- 'null'
description: >-
Entity that orchestrates the challenge. This won't be set for authentications for which a decision
has not yet been made (e.g. in-flight customer decisioning request).
enum:
- LITHIC
- CUSTOMER
- NO_CHALLENGE
- null
channel:
type: string
description: Channel in which the authentication occurs. Maps to EMV 3DS field `deviceChannel`.
enum:
- APP_BASED
- BROWSER
- THREE_DS_REQUESTOR_INITIATED
created:
type: string
description: >-
Date and time when the authentication was created in Lithic's system. Permitted values: Date
string in the ISO 8601 format yyyy-MM-dd'T'hh:mm:ssZ.
format: date-time
decision_made_by:
type:
- string
- 'null'
description: >-
Entity that made the authentication decision. This won't be set for authentications for which a
decision has not yet been made (e.g. in-flight customer decisioning request).
enum:
- LITHIC_RULES
- LITHIC_DEFAULT
- CUSTOMER_RULES
- CUSTOMER_ENDPOINT
- NETWORK
- UNKNOWN
- null
merchant:
type: object
description: Object containing data about the merchant involved in the e-commerce transaction.
properties:
country:
type:
- string
- 'null'
description: >-
Country code of the merchant requesting 3DS authentication. Maps to EMV 3DS field
`merchantCountryCode`. Permitted values: ISO 3166-1 alpha-3 country code (e.g., USA). May not
be present for non-payment authentications.
minLength: 3
maxLength: 3
id:
type:
- string
- 'null'
description: >-
Merchant identifier as assigned by the acquirer. Maps to EMV 3DS field `acquirerMerchantId`.
May not be present for non-payment authentications.
mcc:
type:
- string
- 'null'
description: >-
Merchant category code assigned to the merchant that describes its business activity type.
Maps to EMV 3DS field `mcc`. May not be present for non-payment authentications.
minLength: 4
maxLength: 4
name:
type:
- string
- 'null'
description: >-
Name of the merchant. Maps to EMV 3DS field `merchantName`. May not be present for non-payment
authentications.
risk_indicator:
type: object
description: >-
Object containing additional data indicating additional risk factors related to the e-commerce
transaction.
properties:
delivery_email_address:
type:
- string
- 'null'
description: >-
In transactions with electronic delivery, email address to which merchandise is delivered.
Maps to EMV 3DS field `deliveryEmailAddress`.
delivery_time_frame:
type:
- string
- 'null'
description: The delivery time frame for the merchandise. Maps to EMV 3DS field `deliveryTimeframe`.
enum:
- ELECTRONIC_DELIVERY
- OVERNIGHT_SHIPPING
- SAME_DAY_SHIPPING
- TWO_DAY_OR_MORE_SHIPPING
- null
gift_card_amount:
type:
- integer
- 'null'
description: >-
In prepaid or gift card purchase transactions, purchase amount total in major units (e.g.,
a purchase of USD $205.10 would be 205). Maps to EMV 3DS field `giftCardAmount`.
gift_card_count:
type:
- integer
- 'null'
description: >-
In prepaid or gift card purchase transactions, count of individual prepaid or gift
cards/codes purchased. Maps to EMV 3DS field `giftCardCount`.
gift_card_currency:
type:
- string
- 'null'
description: >-
In prepaid or gift card purchase transactions, currency code of the gift card. Maps to EMV
3DS field `giftCardCurr`. Permitted values: ISO 4217 three-character currency code (e.g.,
USD).
minLength: 3
maxLength: 3
order_availability:
type:
- string
- 'null'
description: >-
Indicates whether the purchase is for merchandise that is available now or at a future
date. Maps to EMV 3DS field `preOrderPurchaseInd`.
enum:
- FUTURE_AVAILABILITY
- MERCHANDISE_AVAILABLE
- null
pre_order_available_date:
type:
- string
- 'null'
description: >-
In pre-order purchase transactions, the expected date that the merchandise will be
available. Maps to EMV 3DS field `preOrderDate`. Permitted values: Date string in the ISO
8601 format yyyy-MM-dd'T'hh:mm:ssZ
format: date-time
reorder_items:
type:
- string
- 'null'
description: >-
Indicates whether the cardholder is reordering previously purchased merchandise. Maps to
EMV 3DS field `reorderItemsInd`.
enum:
- FIRST_TIME_ORDERED
- REORDERED
- null
shipping_method:
type:
- string
- 'null'
description: >-
Shipping method that the cardholder chose for the transaction. If purchase includes one or
more item, this indicator is used for the physical goods; if the purchase only includes
digital goods, this indicator is used to describe the most expensive item purchased. Maps
to EMV 3DS field `shipIndicator`.
enum:
- DIGITAL_GOODS
- LOCKER_DELIVERY
- OTHER
- PICK_UP_AND_GO_DELIVERY
- SHIP_TO_BILLING_ADDRESS
- SHIP_TO_NON_BILLING_ADDRESS
- SHIP_TO_OTHER_VERIFIED_ADDRESS
- SHIP_TO_STORE
- TRAVEL_AND_EVENT_TICKETS
- null
required: []
required:
- risk_indicator
message_category:
type: string
description: >-
Either PAYMENT_AUTHENTICATION or NON_PAYMENT_AUTHENTICATION. For NON_PAYMENT_AUTHENTICATION,
additional_data and transaction fields are not populated.
enum:
- NON_PAYMENT_AUTHENTICATION
- PAYMENT_AUTHENTICATION
three_ds_requestor_challenge_indicator:
type: string
description: >-
Indicates whether a challenge is requested for this transaction
* `NO_PREFERENCE` - No Preference
* `NO_CHALLENGE_REQUESTED` - No Challenge Requested
* `CHALLENGE_PREFERENCE` - Challenge requested (3DS Requestor preference)
* `CHALLENGE_MANDATE` - Challenge requested (Mandate)
* `NO_CHALLENGE_RISK_ALREADY_ASSESSED` - No Challenge requested (Transactional risk analysis is
already performed)
* `DATA_SHARE_ONLY` - No Challenge requested (Data Share Only)
* `OTHER` - Other indicators not captured by above. These are rarely used
enum:
- NO_PREFERENCE
- NO_CHALLENGE_REQUESTED
- CHALLENGE_PREFERENCE
- CHALLENGE_MANDATE
- NO_CHALLENGE_RISK_ALREADY_ASSESSED
- DATA_SHARE_ONLY
- OTHER
three_ri_request_type:
type:
- string
- 'null'
description: >-
Type of 3DS Requestor Initiated (3RI) request — i.e., a 3DS authentication that takes place at the
initiation of the merchant rather than the cardholder. The most common example of this is where a
merchant is authenticating before billing for a recurring transaction such as a pay TV
subscription or a utility bill. Maps to EMV 3DS field `threeRIInd`.
enum:
- ACCOUNT_VERIFICATION
- ADD_CARD
- BILLING_AGREEMENT
- CARD_SECURITY_CODE_STATUS_CHECK
- DELAYED_SHIPMENT
- DEVICE_BINDING_STATUS_CHECK
- INSTALLMENT_TRANSACTION
- MAIL_ORDER
- MAINTAIN_CARD_INFO
- OTHER_PAYMENT
- RECURRING_TRANSACTION
- SPLIT_PAYMENT
- SPLIT_SHIPMENT
- TELEPHONE_ORDER
- TOP_UP
- TRUST_LIST_STATUS_CHECK
- null
token:
type: string
description: >-
Globally unique identifier for the 3DS authentication. Permitted values: 36-digit version 4 UUID
(including hyphens).
format: uuid
transaction:
type:
- object
- 'null'
description: >-
Object containing data about the e-commerce transaction for which the merchant is requesting
authentication.
properties:
amount:
type: number
description: >-
Amount of the purchase in minor units of currency with all punctuation removed. Maps to EMV
3DS field `purchaseAmount`.
cardholder_amount:
type:
- number
- 'null'
description: >-
Approximate amount of the purchase in minor units of cardholder currency. Derived from
`amount` using a daily conversion rate.
currency:
type: string
description: >-
Currency of the purchase. Maps to EMV 3DS field `purchaseCurrency`. Permitted values: ISO 4217
three-character currency code (e.g., USD).
minLength: 3
maxLength: 3
currency_exponent:
type: number
description: >-
Minor units of currency, as specified in ISO 4217 currency exponent. Maps to EMV 3DS field
`purchaseExponent`.
date_time:
type: string
description: >-
Date and time when the authentication was generated by the merchant/acquirer's 3DS server.
Maps to EMV 3DS field `purchaseDate`. Permitted values: Date string in the ISO 8601 format
yyyy-MM-dd'T'hh:mm:ssZ.
format: date-time
type:
type:
- string
- 'null'
description: >-
Type of the transaction for which a 3DS authentication request is occurring. Maps to EMV 3DS
field `transType`.
enum:
- ACCOUNT_FUNDING
- CHECK_ACCEPTANCE
- GOODS_SERVICE_PURCHASE
- PREPAID_ACTIVATION_AND_LOAD
- QUASI_CASH_TRANSACTION
- null
required:
- amount
- cardholder_amount
- currency
- currency_exponent
- date_time
- type
required:
- account_type
- authentication_result
- card_expiry_check
- card_token
- cardholder
- channel
- created
- merchant
- message_category
- three_ds_requestor_challenge_indicator
- token
challenge-response:
title: Challenge Response object
type: object
description: Response from Card Program to a 3DS Authentication challenge
properties:
token:
type: string
description: >-
Globally unique identifier for 3DS Authentication that resulted in PENDING_CHALLENGE
authentication result.
format: uuid
challenge_response:
type: string
description: Whether the Cardholder has approved or declined the issued Challenge
enum:
- APPROVE
- DECLINE_BY_CUSTOMER
required:
- token
- challenge_response
challenge-response-unprocessable:
title: Challenge Response Unprocessable
type: object
description: >-
Error response when a challenge cannot be completed because it has already been marked complete.
Common causes include challenge timeout, too many attempts, or cancellation. Refer to the message
parameter for the specific reason
properties:
message:
type: string
description: Error message explaining why the challenge could not be completed
required:
- message
card_transaction_status_filter:
title: Card Transaction Status Filter
type: string
enum:
- PENDING
- VOIDED
- SETTLED
- DECLINED
- EXPIRED
list_transactions_response:
title: List Transactions Response
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/card_transaction'
has_more:
description: Indicates whether there are more transactions to be retrieved.
type: boolean
examples:
- data:
- account_token: db3942f0-0627-4887-a190-1ea83b46d091
acquirer_fee: 0
acquirer_reference_number: null
amount: 1800
amounts:
cardholder:
amount: 0
conversion_rate: '1.000000'
currency: USD
hold:
amount: -1800
currency: USD
merchant:
amount: 0
currency: USD
settlement:
amount: 0
currency: USD
authorization_amount: 1800
authorization_code: '071471'
avs:
zipcode: '95006'
address: 123 Evergreen Terrace
card_token: aac502f9-aecc-458a-954e-4bcf6edb6123
cardholder_authentication:
liability_shift: 3DS_AUTHENTICATED
authentication_result: SUCCESS
authentication_method: FRICTIONLESS
three_ds_authentication_token: fc60d37d-95f7-419c-b628-dd9fbf9d80d0
decision_made_by: NETWORK
created: '2023-08-03T18:42:30Z'
events:
- amount: 1800
amounts:
cardholder:
amount: 1800
conversion_rate: '1.000000'
currency: USD
merchant:
amount: 1800
currency: USD
settlement: null
created: '2023-08-03T18:42:30Z'
detailed_results:
- APPROVED
effective_polarity: DEBIT
network_info:
acquirer:
acquirer_reference_number: null
retrieval_reference_number: '064386558597'
amex: null
mastercard:
banknet_reference_number: U1HSCJ
switch_serial_number: null
original_banknet_reference_number: null
original_switch_serial_number: null
visa: null
result: APPROVED
rule_results: []
token: bbbf1e86-322d-11ee-9779-00505685a123
type: AUTHORIZATION
financial_account_token: a3b113e8-01fe-42d3-b900-b9adf3f15496
merchant:
acceptor_id: '452322000053360'
acquiring_institution_id: '333301802529120'
city: gosq.com
country: USA
descriptor: SQ *SOMA EATS
mcc: '5812'
state: CA
postal_code: '94107'
street_address: null
phone_number: null
service_location: null
merchant_amount: 1800
merchant_authorization_amount: 1800
merchant_currency: USD
network: MASTERCARD
network_risk_score: 5
pos:
entry_mode:
card: NOT_PRESENT
cardholder: NOT_PRESENT
pan: ECOMMERCE
pin_entered: false
terminal:
attended: false
card_retention_capable: false
on_premise: false
operator: UNKNOWN
partial_approval_capable: false
pin_capability: NOT_CAPABLE
type: UNKNOWN
result: APPROVED
settled_amount: 0
status: PENDING
tags:
risk-level: high
token: c30c2182-1e69-4e0d-b40f-eec0d2a19123
token_info:
wallet_type: APPLE_PAY
updated: '2023-08-03T18:42:30Z'
has_more: false
Transfer:
properties:
category:
description: |
Status types:
* `TRANSFER` - Internal transfer of funds between financial accounts in your program.
enum:
- TRANSFER
type: string
created:
description: Date and time when the transfer occurred. UTC time zone.
format: date-time
type: string
currency:
description: 3-character alphabetic ISO 4217 code for the settling currency of the transaction.
type: string
descriptor:
description: A string that provides a description of the transfer; may be useful to display to users.
type: string
events:
description: A list of all financial events that have modified this trasnfer.
items:
$ref: '#/components/schemas/financial_event'
type: array
from_balance:
description: The updated balance of the sending financial account.
items:
$ref: '#/components/schemas/balance'
type: array
pending_amount:
description: >
Pending amount of the transaction in the currency's smallest unit (e.g., cents), including any
acquirer fees.
The value of this field will go to zero over time once the financial transaction is settled.
type: integer
result:
description: >-
APPROVED transactions were successful while DECLINED transactions were declined by user, Lithic,
or the network.
enum:
- APPROVED
- DECLINED
type: string
settled_amount:
description: Amount of the transaction that has been settled in the currency's smallest unit (e.g., cents).
type: integer
status:
description: |
Status types:
* `DECLINED` - The transfer was declined.
* `EXPIRED` - The transfer was held in pending for too long and expired.
* `PENDING` - The transfer is pending release from a hold.
* `SETTLED` - The transfer is completed.
* `VOIDED` - The transfer was reversed before it settled.
enum:
- DECLINED
- EXPIRED
- PENDING
- SETTLED
- VOIDED
type: string
to_balance:
description: The updated balance of the receiving financial account.
items:
$ref: '#/components/schemas/balance'
type: array
token:
description: Globally unique identifier for the transfer event.
format: uuid
type: string
updated:
description: Date and time when the financial transaction was last updated. UTC time zone.
format: date-time
type: string
type: object
limit_with_progress:
title: Limit With Progress
type: object
properties:
limit:
description: The limit amount
type: integer
minimum: 0
amount_originated:
description: Amount originated towards limit
type: integer
minimum: 0
required:
- limit
directional_limits:
title: Directional Limits
type: object
properties:
credit:
description: Credit limits
$ref: '#/components/schemas/limit_with_progress'
debit:
description: Debit limits
$ref: '#/components/schemas/limit_with_progress'
required:
- credit
- debit
transfer_limit_item:
title: Transfer Limit Item
type: object
properties:
company_id:
description: Company ID
type: string
is_fbo:
description: Whether the company is a FBO; based on the company ID prefix
type: boolean
date:
description: The date for the limit view (ISO format)
type: string
format: date
program_limit_per_transaction:
description: Program transaction limits
$ref: '#/components/schemas/directional_limits'
daily_limit:
description: Daily limits with progress
$ref: '#/components/schemas/directional_limits'
monthly_limit:
description: Monthly limits with progress
$ref: '#/components/schemas/directional_limits'
required:
- company_id
- is_fbo
- date
- program_limit_per_transaction
- daily_limit
- monthly_limit
transfer_limits_response:
title: Transfer Limits Response
type: object
properties:
data:
description: List of transfer limits
type: array
items:
$ref: '#/components/schemas/transfer_limit_item'
has_more:
description: Whether there are more transfer limits
type: boolean
required:
- data
- has_more
on_closed_account:
title: On Closed Account
description: What to do if the financial account is closed when posting an operation
type: string
enum:
- FAIL
- USE_SUSPENSE
default: FAIL
create_book_transfer_request:
title: Create Book Transfer Request
type: object
properties:
amount:
description: >-
Amount to be transferred in the currency's smallest unit (e.g., cents for USD). This should always
be a positive value.
type: integer
minimum: 1
category:
$ref: '#/components/schemas/book_transfer_category'
from_financial_account_token:
description: >-
Globally unique identifier for the financial account or card that will send the funds. Accepted
type dependent on the program's use case.
format: uuid
type: string
memo:
description: Optional descriptor for the transfer.
type: string
maxLength: 512
subtype:
description: The program specific subtype code for the specified category/type.
type: string
to_financial_account_token:
description: >-
Globally unique identifier for the financial account or card that will receive the funds. Accepted
type dependent on the program's use case.
format: uuid
type: string
token:
description: >-
Customer-provided token that will serve as an idempotency token. This token will become the
transaction token.
format: uuid
type: string
type:
$ref: '#/components/schemas/book_transfer_type'
external_id:
description: External ID defined by the customer
type: string
on_closed_account:
$ref: '#/components/schemas/on_closed_account'
hold_token:
description: Token of an existing hold to settle when this transfer is initiated
format: uuid
type: string
required:
- amount
- category
- from_financial_account_token
- subtype
- to_financial_account_token
- type
retry_book_transfer_request:
title: Retry Book Transfer Request
type: object
properties:
retry_token:
description: >-
Customer-provided token that will serve as an idempotency token. This token will become the
transaction token.
format: uuid
type: string
required:
- retry_token
external_payments_response:
title: External Payments Response
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/external_payment_response'
has_more:
type: boolean
required:
- data
- has_more
external_payment_progress_to:
title: External Payment Progress To
type: string
enum:
- SETTLED
- RELEASED
create_external_payment_request:
title: Create External Payment Request
type: object
properties:
category:
$ref: '#/components/schemas/external_payment_category'
financial_account_token:
type: string
format: uuid
amount:
type: integer
memo:
type: string
user_defined_id:
type: string
effective_date:
type: string
format: date
token:
description: >-
Customer-provided token that will serve as an idempotency token. This token will become the
transaction token.
type: string
format: uuid
payment_type:
$ref: '#/components/schemas/external_payment_direction'
progress_to:
$ref: '#/components/schemas/external_payment_progress_to'
required:
- category
- financial_account_token
- amount
- effective_date
- payment_type
external_payment_action_with_progress_to_request:
title: External Payment Action with Progress to Request
type: object
properties:
memo:
type: string
effective_date:
type: string
format: date
progress_to:
$ref: '#/components/schemas/external_payment_progress_to'
required:
- effective_date
external_payment_action_request:
title: External Payment Action Request
type: object
properties:
memo:
type: string
effective_date:
type: string
format: date
required:
- effective_date
management_operation_transactions_response:
title: Management Operation Transactions Response
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/management_operation_transaction'
has_more:
type: boolean
required:
- data
- has_more
create_management_operation_request:
title: Create Management Operation Request
type: object
properties:
category:
$ref: '#/components/schemas/management_operation_category'
event_type:
$ref: '#/components/schemas/management_operation_event_type'
subtype:
type: string
financial_account_token:
type: string
format: uuid
amount:
type: integer
minimum: 1
memo:
type: string
user_defined_id:
type: string
effective_date:
type: string
format: date
token:
description: >-
Customer-provided token that will serve as an idempotency token. This token will become the
transaction token.
type: string
format: uuid
direction:
$ref: '#/components/schemas/management_operation_direction'
on_closed_account:
$ref: '#/components/schemas/on_closed_account'
required:
- category
- event_type
- financial_account_token
- amount
- effective_date
- direction
management_operation_action_request:
title: Management Operation Action Request
type: object
properties:
memo:
type: string
effective_date:
type: string
format: date
required:
- effective_date
NetworkProgram:
properties:
token:
description: Lithic-generated unique identifier for the program
format: uuid
type: string
registered_program_identification_number:
description: RPIN value assigned by the network.
type: string
name:
description: The name of the network program.
type: string
default_product_code:
description: Network product ID associated with this program.
type: string
required:
- token
- registered_program_identification_number
- name
- default_product_code
type: object
funding_event_settlement:
title: Funding Event Settlement
type: object
properties:
settled_gross_amount:
type: integer
format: int64
network_settlement_date:
type: string
example: '2024-01-01'
format: date
required:
- settled_gross_amount
- network_settlement_date
funding_event_response:
title: Funding Event Response
type: object
properties:
token:
description: Unique token ID
type: string
example: b68b7424-aa69-4cbc-a946-30d90181b621
format: uuid
collection_tokens:
description: >-
IDs of collections, further information can be gathered from the appropriate collection API based
on collection_resource_type
type: array
items:
type: string
example: b68b7424-aa69-4cbc-a946-30d90181b621
format: uuid
previous_high_watermark:
description: Time of the previous high watermark
type: string
example: '2024-01-01T00:00:00Z'
format: date-time
high_watermark:
description: Time of the high watermark
type: string
example: '2024-01-01T00:00:00Z'
format: date-time
collection_resource_type:
description: Collection resource type
type: string
example: PAYMENT
enum:
- BOOK_TRANSFER
- PAYMENT
network_settlement_summary:
description: Network settlement summary breakdown by network settlement date
type: array
items:
$ref: '#/components/schemas/funding_event_settlement'
created:
description: Time of the creation
type: string
example: '2024-01-01T00:00:00Z'
format: date-time
updated:
description: Time of the update
type: string
example: '2024-01-01T00:00:00Z'
format: date-time
required:
- token
- previous_high_watermark
- high_watermark
- collection_resource_type
- created
- updated
- network_settlement_summary
- collection_tokens
funding_event_responses:
title: Funding Event Responses
type: object
properties:
data:
type: array
description: Funding Event Response
items:
$ref: '#/components/schemas/funding_event_response'
has_more:
type: boolean
required:
- data
- has_more
funding_event_details_response:
title: Funding Event Details Response
type: object
properties:
token:
description: Unique token ID
type: string
example: b68b7424-aa69-4cbc-a946-30d90181b621
format: uuid
settlement_summary_url:
description: URL of the settlement summary
type: string
format: uri
settlement_details_url:
description: URL of the settlement details
type: string
format: uri
required:
- token
- settlement_details_url
- settlement_summary_url
transaction-series:
title: Transaction Series
description: >-
Contains identifiers for the transaction and specific event within being disputed; null if no
transaction can be identified
type: object
properties:
type:
description: >-
The type of transaction series associating the dispute and the original transaction. Always set to
DISPUTE
type: string
enum:
- DISPUTE
related_transaction_token:
description: Token of the original transaction being disputed, in UUID format
type: string
format: uuid
related_transaction_event_token:
description: >-
Token of the specific event in the original transaction being disputed, in UUID format; null if no
event can be identified
oneOf:
- type: string
format: uuid
- type: 'null'
required:
- type
- related_transaction_token
- related_transaction_event_token
liability-allocation:
title: Liability Allocation
description: Current breakdown of how liability is allocated for the disputed amount
type: object
properties:
original_amount:
description: The initial amount disputed
type: integer
recovered_amount:
description: The amount that has been recovered from the merchant through the dispute process
type: integer
written_off_amount:
description: The amount the issuer has chosen to write off
type: integer
denied_amount:
description: The amount that has been denied to the cardholder
type: integer
remaining_amount:
description: Any disputed amount that is still outstanding, i.e. has not been recovered, written off, or denied
type: integer
required:
- original_amount
- recovered_amount
- written_off_amount
- denied_amount
- remaining_amount
workflow-event-data:
title: Workflow Event Data
description: Details specific to workflow events
type: object
properties:
type:
description: Event type discriminator
type: string
const: WORKFLOW
stage:
description: Current stage of the dispute workflow
type: string
enum:
- CLAIM
action:
description: Action taken in this stage
type: string
enum:
- OPENED
- CLOSED
- REOPENED
reason:
description: Reason for the action
type:
- string
- 'null'
amount:
description: Amount in minor units
type:
- integer
- 'null'
disposition:
description: Dispute resolution outcome
type:
- string
- 'null'
enum:
- WON
- LOST
- PARTIALLY_WON
- WITHDRAWN
- DENIED
- null
required:
- type
- stage
- action
- reason
- amount
- disposition
financial-event-data:
title: Financial Event Data
description: Details specific to financial events
type: object
properties:
type:
description: Event type discriminator
type: string
const: FINANCIAL
stage:
description: Stage at which the financial event occurred
type: string
enum:
- CHARGEBACK
- REPRESENTMENT
- PREARBITRATION
- ARBITRATION
- COLLABORATION
amount:
description: Amount in minor units
type: integer
polarity:
description: Direction of funds flow
type: string
enum:
- CREDIT
- DEBIT
required:
- type
- stage
- amount
- polarity
cardholder-liability-event-data:
title: Cardholder Liability Event Data
description: Details specific to cardholder liability events
type: object
properties:
type:
description: Event type discriminator
type: string
const: CARDHOLDER_LIABILITY
action:
description: Action taken regarding cardholder liability
type: string
enum:
- PROVISIONAL_CREDIT_GRANTED
- PROVISIONAL_CREDIT_REVERSED
- WRITTEN_OFF
amount:
description: Amount in minor units
type: integer
reason:
description: Reason for the action
type: string
required:
- type
- action
- amount
- reason
event:
title: Event
description: Event that occurred in the dispute lifecycle
type: object
properties:
token:
description: Unique identifier for the event, in UUID format
type: string
format: uuid
type:
description: Type of event
type: string
enum:
- WORKFLOW
- FINANCIAL
- CARDHOLDER_LIABILITY
created:
description: When the event occurred
type: string
format: date-time
data:
description: Details specific to the event type
oneOf:
- $ref: '#/components/schemas/workflow-event-data'
- $ref: '#/components/schemas/financial-event-data'
- $ref: '#/components/schemas/cardholder-liability-event-data'
discriminator:
propertyName: type
required:
- token
- type
- created
- data
dispute:
title: Dispute
description: The Dispute object tracks the progression of a dispute throughout its lifecycle.
type: object
properties:
case_id:
description: Identifier assigned by the network for this dispute.
type:
- string
- 'null'
token:
description: Token assigned by Lithic for the dispute, in UUID format.
type: string
format: uuid
card_token:
description: Token for the card used in the dispute, in UUID format.
type: string
format: uuid
account_token:
description: Token for the account associated with the dispute, in UUID format.
type: string
format: uuid
network:
description: Card network handling the dispute.
type: string
enum:
- VISA
- MASTERCARD
currency:
description: Three-letter ISO 4217 currency code.
type: string
pattern: ^[A-Z]{3}$
example: USD
created:
description: When the dispute was created.
type: string
format: date-time
updated:
description: When the dispute was last updated.
type: string
format: date-time
merchant:
$ref: '#/components/schemas/merchant'
transaction_series:
oneOf:
- $ref: '#/components/schemas/transaction-series'
- type: 'null'
liability_allocation:
$ref: '#/components/schemas/liability-allocation'
status:
description: Current status of the dispute.
type:
- string
- 'null'
enum:
- OPEN
- CLOSED
- null
disposition:
description: Dispute resolution outcome
type:
- string
- 'null'
enum:
- WON
- LOST
- PARTIALLY_WON
- WITHDRAWN
- DENIED
- null
events:
description: Chronological list of events that have occurred in the dispute lifecycle
type: array
items:
$ref: '#/components/schemas/event'
required:
- case_id
- token
- card_token
- account_token
- network
- currency
- created
- updated
- merchant
- transaction_series
- liability_allocation
- status
- disposition
- events
disputes-response:
title: Disputes Response
description: Response for listing disputes
type: object
properties:
data:
description: Array of dispute objects
type: array
items:
$ref: '#/components/schemas/dispute'
has_more:
description: Whether there are more results available
type: boolean
required:
- data
- has_more
account-holder-created:
title: Account Holder Created
examples:
- account_token: 00000000-0000-0000-0000-000000000001
created: '2023-09-26 16:41:40.530987'
status: ACCEPTED
status_reason: []
token: 00000000-0000-0000-0000-000000000001
required_documents: []
- account_token: 00000000-0000-0000-0000-000000000001
created: '2023-09-26 16:41:40.530987'
status: PENDING_REVIEW
status_reason:
- PRIMARY_BUSINESS_ENTITY_ADDRESS_VERIFICATION_FAILURE
token: 00000000-0000-0000-0000-000000000001
required_documents:
- entity_token: 83cf25ae-c14f-4d10-9fa2-0119f36c7286
status_reasons:
- PRIMARY_BUSINESS_ENTITY_ADDRESS_VERIFICATION_FAILURE
valid_documents:
- EIN_LETTER
- TAX_RETURN
- CERTIFICATE_OF_GOOD_STANDING
- ARTICLES_OF_INCORPORATION
- ARTICLES_OF_ORGANIZATION
- CERTIFICATE_OF_FORMATION
- BYLAWS
- GOVERNMENT_BUSINESS_LICENSE
- PARTNERSHIP_AGREEMENT
- BANK_STATEMENT
- UTILITY_BILL_STATEMENT
properties:
account_token:
description: The token of the account that was created.
example: 00000000-0000-0000-0000-000000000001
format: uuid
type: string
created:
description: When the account_holder was created
format: date-time
type: string
status:
description: The status of the account_holder that was created.
enum:
- ACCEPTED
- PENDING_REVIEW
example: ACCEPTED
type: string
status_reason:
items:
description: >-
If status is not ACCEPTED, status_reason provides the reasons an account_holder is REJECTED or
PENDING_REVIEW.
type: string
type: array
token:
description: The token of the account_holder that was created.
example: 00000000-0000-0000-0000-000000000001
format: uuid
type: string
required_documents:
type: array
items:
$ref: '#/components/schemas/required-document'
type: object
account-holder-updated:
title: Account Holder Updated
oneOf:
- title: KYB Payload
description: KYB payload for an updated account holder.
type: object
properties:
token:
description: The token of the account_holder that was created.
example: 00000000-0000-0000-0000-000000000001
format: uuid
type: string
update_request:
type: object
description: Original request to update the account holder.
properties:
beneficial_owner_individuals:
description: >-
You must submit a list of all direct and indirect individuals with 25% or more ownership
in the company. A maximum of 4 beneficial owners can be submitted. If no individual owns
25% of the company you do not need to send beneficial owner information.
See [FinCEN
requirements](https://www.fincen.gov/sites/default/files/shared/CDD_Rev6.7_Sept_2017_Certificate.pdf)
(Section I) for more background on individuals that should be included.
items:
$ref: '#/components/schemas/individual'
minItems: 0
type: array
business_entity:
description: Information for business for which the account is being opened and KYB is being run.
$ref: '#/components/schemas/kyb-business-entity'
control_person:
description: >-
An individual with significant responsibility for managing the legal entity (e.g., a Chief
Executive Officer, Chief Financial Officer, Chief Operating Officer, Managing Member,
General Partner, President, Vice President, or Treasurer). This can be an executive, or
someone who will have program-wide access to the cards that Lithic will provide. In some
cases, this individual could also be a beneficial owner listed above. See [FinCEN
requirements](https://www.fincen.gov/sites/default/files/shared/CDD_Rev6.7_Sept_2017_Certificate.pdf)
(Section II) for more background.
$ref: '#/components/schemas/individual'
external_id:
description: A user provided id that can be used to link an account holder with an external system
type: string
naics_code:
description: >-
6-digit North American Industry Classification System (NAICS) code for the business. Only
present if naics_code was included in the update request.
example: '541512'
type: string
nature_of_business:
description: >-
Short description of the company's line of business (i.e., what does the company do?). Values
longer than 255 characters will be truncated before KYB verification
example: Software company selling solutions to the restaurant industry
type: string
website_url:
description: Company website URL.
example: www.mybusiness.com
type: string
required:
- token
- update_request
additionalProperties: false
- title: KYC Payload
description: KYC payload for an updated account holder.
type: object
properties:
token:
description: The token of the account_holder that was created.
example: 00000000-0000-0000-0000-000000000001
format: uuid
type: string
update_request:
type: object
description: Original request to update the account holder.
properties:
individual:
$ref: '#/components/schemas/individual'
description: Information on the individual for whom the account is being opened and KYC is being run.
external_id:
description: A user provided id that can be used to link an account holder with an external system
type: string
required:
- token
- update_request
additionalProperties: false
- title: Legacy Payload
description: Legacy payload for an updated account holder.
type: object
properties:
business_account_token:
description: If applicable, represents the business account token associated with the account_holder.
example: 00000000-0000-0000-0000-000000000001
format: uuid
type:
- string
- 'null'
created:
description: When the account_holder updated event was created
format: date-time
type: string
email:
description: >-
If updated, the newly updated email associated with the account_holder otherwise the existing
email is provided.
example: johnny@lithic.com
type: string
external_id:
description: If applicable, represents the external_id associated with the account_holder.
example: 00000000-0000-0000-0000-000000000001
type:
- string
- 'null'
first_name:
description: If applicable, represents the account_holder's first name.
example: Johnny
type: string
last_name:
description: If applicable, represents the account_holder's last name.
example: Appleseed
type: string
legal_business_name:
description: If applicable, represents the account_holder's business name.
example: Lithic
type: string
phone_number:
description: >-
If updated, the newly updated phone_number associated with the account_holder otherwise the
existing phone_number is provided.
example: '+15555555555'
type: string
token:
description: The token of the account_holder that was created.
example: 00000000-0000-0000-0000-000000000001
format: uuid
type: string
required:
- token
account-holder-verification:
title: Account Holder Verification
examples:
- account_token: 00000000-0000-0000-0000-000000000001
created: '2023-09-26 16:41:40.530938'
status: ACCEPTED
status_reasons: []
token: 00000000-0000-0000-0000-000000000001
properties:
account_token:
description: The token of the account being verified.
example: 00000000-0000-0000-0000-000000000001
format: uuid
type: string
created:
description: When the account_holder verification status was updated
format: date-time
type: string
status:
description: The status of the account_holder that was created
enum:
- ACCEPTED
- PENDING_REVIEW
- REJECTED
example: ACCEPTED
type: string
status_reasons:
items:
description: >-
If status is not ACCEPTED, status_reasons provides the reasons an account_holder was REJECTED or
is PENDING_REVIEW.
type: string
type: array
token:
description: The token of the account_holder being verified.
example: 00000000-0000-0000-0000-000000000001
format: uuid
type: string
type: object
account-holder-document-updated:
title: Account Holder Document Updated
examples:
- account_holder_token: 2b52494a-ae73-4ab1-97e8-2dd1d51d18b0
created: '2023-09-26 16:41:40.530987'
document_type: EIN_LETTER
entity_token: c5f2d594-d957-4781-8877-fbea31f5944a
required_document_uploads:
- accepted_entity_status_reasons: []
created: '2024-08-05 20:48:51.746833'
image_type: FRONT
rejected_entity_status_reasons: []
status: UPLOADED
status_reasons: []
token: 9e1d69a1-377b-463a-b991-01b3c81519b6
updated: '2024-08-05 21:08:23.635573'
- accepted_entity_status_reasons: []
created: '2024-08-04 01:32:44.113765'
image_type: FRONT
rejected_entity_status_reasons:
- PRIMARY_BUSINESS_ENTITY_ADDRESS_VERIFICATION_FAILURE
status: REJECTED
status_reasons:
- DOCUMENT_MISSING_REQUIRED_DATA
token: 9e1d69a1-377b-463a-b991-01b3c81519b6
updated: '2024-08-04 02:18:47.113773'
token: 9175a05c-a9da-4082-8e14-9296427ebba7
properties:
account_holder_token:
description: The token of the account_holder that the document belongs to
example: 2b52494a-ae73-4ab1-97e8-2dd1d51d18b0
format: uuid
type: string
created:
description: When the account_holder was created
format: date-time
type: string
document_type:
$ref: '#/components/schemas/document-type'
entity_token:
description: The token of the entity that the document belongs to
example: c5f2d594-d957-4781-8877-fbea31f5944a
format: uuid
type: string
required_document_uploads:
items:
description: A document upload that belongs to the overall account holder document
properties:
created:
description: When the document upload was created
format: date-time
type: string
image_type:
description: The type of image that was uploaded
enum:
- FRONT
- BACK
type: string
status:
description: The status of the document upload
$ref: '#/components/schemas/document-upload-status'
status_reasons:
items:
description: If status is REJECTED, status_reasons provides the reasons the document was rejected.
type: string
type: array
accepted_entity_status_reasons:
items:
description: >-
A list of status reasons associated with a KYB account holder that have been satisfied by
the document upload
type: string
type: array
rejected_entity_status_reasons:
items:
description: >-
A list of status reasons associated with a KYB account holder that have not been satisfied
by the document upload
type: string
type: array
token:
description: The token of the document upload
format: uuid
type: string
updated:
description: When the document upload was last updated
format: date-time
type: string
type: array
token:
description: The token of the account holder document
example: 9175a05c-a9da-4082-8e14-9296427ebba7
format: uuid
type: string
type: object
asa_network_specific_data_mastercard:
type: object
properties:
transaction_type_identifier:
oneOf:
- type: 'null'
description: Transaction type identifier not available.
- type: string
description: Indicates the type of additional transaction purpose.
minLength: 3
maxLength: 3
ecommerce_security_level_indicator:
oneOf:
- type: 'null'
description: Electronic commerce security level indicator not available.
- type: string
description: Indicates the electronic commerce security level and UCAF collection.
minLength: 3
maxLength: 3
on_behalf_service_result:
oneOf:
- type: 'null'
description: On-behalf service result not available.
- type: array
items:
type: object
properties:
service:
type: string
description: Indicates the service performed on the transaction.
minLength: 2
maxLength: 2
result_1:
type: string
description: Indicates the results of the service processing.
minLength: 1
maxLength: 1
result_2:
type: string
description: Identifies the results of the service processing.
minLength: 1
maxLength: 1
required:
- service
- result_1
- result_2
description: >-
The On-behalf Service performed on the transaction and the results. Contains all applicable,
on-behalf service results that were performed on a given transaction.
maxItems: 10
asa_network_specific_data_visa:
type: object
properties:
business_application_identifier:
oneOf:
- type: 'null'
description: Business application identifier not available.
- type: string
description: >-
Identifies the purpose or category of a transaction, used to classify and process transactions
according to Visa’s rules.
minLength: 2
maxLength: 2
card-type:
type: string
enum:
- SINGLE_USE
- MERCHANT_LOCKED
- UNLOCKED
- PHYSICAL
- DIGITAL_WALLET
- VIRTUAL
asa_request_card:
description: Card object in ASA
type: object
properties:
hostname:
description: Hostname of card’s locked merchant (will be empty if not applicable)
type: string
last_four:
description: Last four digits of the card number
type: string
memo:
description: >-
Customizable name to identify the card. We recommend against using this field to store JSON data
as it can cause unexpected behavior.
type: string
spend_limit:
description: >-
Amount (in cents) to limit approved authorizations. Purchase requests above the spend limit will
be declined (refunds and credits will be approved).
Note that while spend limits are enforced based on authorized and settled volume on a card, they
are not recommended to be used for balance or reconciliation-level accuracy. Spend limits also
cannot block force posted charges (i.e., when a merchant sends a clearing message without a prior
authorization).
type: integer
format: int64
spend_limit_duration:
description: >-
Note that to support recurring monthly payments, which can occur on different day every month, the
time window we consider for MONTHLY velocity starts 6 days after the current calendar date one
month prior.
type: string
enum:
- ANNUALLY
- FOREVER
- MONTHLY
- TRANSACTION
state:
type: string
enum:
- CLOSED
- OPEN
- PAUSED
- PENDING_ACTIVATION
- PENDING_FULFILLMENT
type:
$ref: '#/components/schemas/card-type'
token:
description: Globally unique identifier for the card.
type: string
format: uuid
asa_request_pos_entry_mode:
description: POS > Entry Mode object in ASA
type: object
properties:
card:
description: Card Presence Indicator
type: string
enum:
- PRESENT
- NOT_PRESENT
- UNKNOWN
cardholder:
description: Cardholder Presence Indicator
type: string
enum:
- DEFERRED_BILLING
- ELECTRONIC_ORDER
- INSTALLMENT
- MAIL_ORDER
- NOT_PRESENT
- PRESENT
- REOCCURRING
- TELEPHONE_ORDER
- UNKNOWN
pan:
description: Method of entry for the PAN
type: string
enum:
- AUTO_ENTRY
- BAR_CODE
- CONTACTLESS
- ECOMMERCE
- ERROR_KEYED
- ERROR_MAGNETIC_STRIPE
- ICC
- KEY_ENTERED
- MAGNETIC_STRIPE
- MANUAL
- OCR
- SECURE_CARDLESS
- UNSPECIFIED
- UNKNOWN
- CREDENTIAL_ON_FILE
- ECOMMERCE
pin_entered:
type: boolean
description: Indicates whether the cardholder entered the PIN. True if the PIN was entered.
asa_pos_terminal:
title: Point of Sale Terminal
type: object
properties:
acceptor_terminal_id:
description: >-
Uniquely identifies a terminal at the card acceptor location of acquiring institutions or merchant
POS Systems. Left justified with trailing spaces.
type:
- string
- 'null'
minLength: 8
maxLength: 8
pattern: ^[a-zA-Z0-9 ]*$
attended:
description: True if a clerk is present at the sale.
type: boolean
card_retention_capable:
description: True if the terminal is capable of retaining the card.
type: boolean
on_premise:
description: True if the sale was made at the place of business (vs. mobile).
type: boolean
operator:
description: The person that is designated to swipe the card
enum:
- ADMINISTRATIVE
- CARDHOLDER
- CARD_ACCEPTOR
- UNKNOWN
type: string
partial_approval_capable:
type: boolean
description: >-
True if the terminal is capable of partial approval. Partial approval is when part of a
transaction is approved and another payment must be used for the remainder. Example scenario: A
$40 transaction is attempted on a prepaid card with a $25 balance. If partial approval is enabled,
$25 can be authorized, at which point the POS will prompt the user for an additional payment of
$15.
pin_capability:
description: Status of whether the POS is able to accept PINs
enum:
- CAPABLE
- INOPERATIVE
- NOT_CAPABLE
- UNSPECIFIED
type: string
type:
description: POS Type
enum:
- ADMINISTRATIVE
- ATM
- AUTHORIZATION
- COUPON_MACHINE
- DIAL_TERMINAL
- ECOMMERCE
- ECR
- FUEL_MACHINE
- HOME_TERMINAL
- MICR
- OFF_PREMISE
- PAYMENT
- PDA
- PHONE
- POINT
- POS_TERMINAL
- PUBLIC_UTILITY
- SELF_SERVICE
- TELEVISION
- TELLER
- TRAVELERS_CHECK_MACHINE
- VENDING
- VOICE
- UNKNOWN
type: string
required:
- attended
- card_retention_capable
- on_premise
- operator
- partial_approval_capable
- pin_capability
- type
$id: https://lithic.com/schemas/common/2024-01-15/card_transaction/asa_pos_terminal.json
converted_amount:
title: Converted Amount
type: object
properties:
amount:
description: Amount in the smallest unit of the applicable currency (e.g., cents)
type: integer
conversion_rate:
description: Exchange rate used for currency conversion
type: string
example: '1.000000'
currency:
$ref: '#/components/schemas/currency'
required:
- amount
- conversion_rate
- currency
amount:
title: Amount
type: object
properties:
amount:
description: Amount in the smallest unit of the applicable currency (e.g., cents)
type: integer
currency:
$ref: '#/components/schemas/currency'
required:
- amount
- currency
asa_request_status:
type: string
description: >-
The type of authorization request that this request is for. Note that `CREDIT_AUTHORIZATION` and
`FINANCIAL_CREDIT_AUTHORIZATION` is only available to users with credit decisioning via ASA enabled.
enum:
- AUTHORIZATION
- CREDIT_AUTHORIZATION
- FINANCIAL_AUTHORIZATION
- FINANCIAL_CREDIT_AUTHORIZATION
- BALANCE_INQUIRY
asa_request_fleet_info:
title: Fleet Info
description: Optional Object containing information if the Card is a part of a Fleet managed program
type:
- object
- 'null'
properties:
driver_number:
oneOf:
- type: 'null'
description: 'Driver Number was not provided as part of the transaction '
- type: string
description: Number representing the driver
vehicle_number:
oneOf:
- type: 'null'
description: Vehicle Number was not provided as part of the transaction
- type: string
description: Number associated with the vehicle
fleet_restriction_code:
type: string
description: >-
Code indicating which restrictions, if any, there are on purchase. This is configured at a program
level and is a static configuration, and does not change on a request to request basis
enum:
- NO_RESTRICTIONS
- FUEL_ONLY
fleet_prompt_code:
type: string
description: >-
Code indicating what the driver was prompted to enter at time of purchase. This is configured at a
program level and is a static configuration, and does not change on a request to request basis
enum:
- NO_PROMPT
- VEHICLE_NUMBER
- DRIVER_NUMBER
required:
- fleet_restriction_code
- fleet_prompt_code
asa_network_specific_data:
title: Network Specific Data
description: >-
Contains raw data provided by the card network, including attributes that provide further context
about the authorization. If populated by the network, data is organized by Lithic and passed through
without further modification. Please consult the official network documentation for more details about
these values and how to use them. This object is only available to certain programs- contact your
Customer Success Manager to discuss enabling access.
type:
- object
- 'null'
properties:
mastercard:
oneOf:
- type: 'null'
description: There was no Mastercard-specific data available for this transaction.
- $ref: '#/components/schemas/asa_network_specific_data_mastercard'
visa:
oneOf:
- type: 'null'
description: There was no Visa-specific data available for this transaction.
- $ref: '#/components/schemas/asa_network_specific_data_visa'
asa-request:
description: The Auth Stream Access request payload that was sent to the ASA responder.
type: object
properties:
merchant:
$ref: '#/components/schemas/transaction_merchant'
service_location:
oneOf:
- type: 'null'
- $ref: '#/components/schemas/service_location'
avs:
type: object
properties:
address:
description: Cardholder address
type: string
zipcode:
description: Cardholder ZIP code
type: string
address_on_file_match:
$ref: '#/components/schemas/address_match_result'
required:
- address_on_file_match
- address
- zipcode
card:
$ref: '#/components/schemas/asa_request_card'
cardholder_authentication:
$ref: '#/components/schemas/cardholder_authentication'
pos:
type: object
properties:
entry_mode:
$ref: '#/components/schemas/asa_request_pos_entry_mode'
terminal:
$ref: '#/components/schemas/asa_pos_terminal'
amount:
type: integer
format: int64
deprecated: true
description: >-
Deprecated, use `amounts`. Authorization amount of the transaction (in cents), including any
acquirer fees. The contents of this field are identical to `authorization_amount`.
acquirer_fee:
type: integer
format: int64
description: >-
Fee (in cents) assessed by the merchant and paid for by the cardholder. Will be zero if no fee is
assessed. Rebates may be transmitted as a negative value to indicate credited fees.
authorization_amount:
type: integer
format: int64
deprecated: true
description: >-
Deprecated, use `amounts`. The base transaction amount (in cents) plus the acquirer fee field.
This is the amount the issuer should authorize against unless the issuer is paying the acquirer
fee on behalf of the cardholder.
cardholder_currency:
type: string
deprecated: true
description: Deprecated, use `amounts`. 3-character alphabetic ISO 4217 code for cardholder's billing currency.
cash_amount:
type: integer
format: int64
description: >-
The portion of the transaction requested as cash back by the cardholder, and does not include any
acquirer fees. The amount field includes the purchase amount, the requested cash back amount, and
any acquirer fees.
If no cash back was requested, the value of this field will be 0, and the field will always be
present.
cashback:
type: integer
format: int64
description: Deprecated, use `cash_amount`.
token_info:
$ref: '#/components/schemas/token_info'
ttl:
description: 'Deprecated: approximate time-to-live for the authorization.'
type: string
format: date-time
conversion_rate:
deprecated: true
description: >-
Deprecated, use `amounts`. If the transaction was requested in a currency other than the
settlement currency, this field will be populated to indicate the rate used to translate the
merchant_amount to the amount (i.e., `merchant_amount` x `conversion_rate` = `amount`). Note that
the `merchant_amount` is in the local currency and the amount is in the settlement currency.
type: number
created:
type: string
format: date-time
description: Date and time when the transaction first occurred in UTC.
merchant_amount:
type: integer
format: int64
deprecated: true
description: >-
Deprecated, use `amounts`. The amount that the merchant will receive, denominated in
`merchant_currency` and in the smallest currency unit. Note the amount includes `acquirer_fee`,
similar to `authorization_amount`. It will be different from `authorization_amount` if the
merchant is taking payment in a different currency.
merchant_currency:
deprecated: true
allOf:
- $ref: '#/components/schemas/merchant_currency'
description: Deprecated, use `amounts`.
network:
type: string
description: Card network of the authorization.
enum:
- AMEX
- INTERLINK
- MAESTRO
- MASTERCARD
- UNKNOWN
- VISA
network_risk_score:
$ref: '#/components/schemas/network_risk_score'
settled_amount:
type: integer
format: int64
deprecated: true
description: >-
Deprecated, use `amounts`. Amount (in cents) of the transaction that has been settled, including
any acquirer fees.
amounts:
description: >-
Structured amounts for this authorization. The `cardholder` and `merchant` amounts reflect the
original network authorization values. For programs with hold adjustments enabled (e.g., automated
fuel dispensers or tipping MCCs), the `hold` amount may exceed the `cardholder` and `merchant`
amounts to account for anticipated final transaction amounts such as tips or fuel fill-ups
type: object
properties:
cardholder:
$ref: '#/components/schemas/converted_amount'
merchant:
$ref: '#/components/schemas/amount'
settlement:
oneOf:
- type: 'null'
- $ref: '#/components/schemas/amount'
hold:
oneOf:
- type: 'null'
- $ref: '#/components/schemas/amount'
required:
- cardholder
- merchant
- settlement
- hold
status:
$ref: '#/components/schemas/asa_request_status'
token:
description: The provisional transaction group uuid associated with the authorization
type: string
format: uuid
event_token:
description: >-
The event token associated with the authorization. This field is only set for programs enrolled
into the beta.
type: string
format: uuid
fleet_info:
$ref: '#/components/schemas/asa_request_fleet_info'
network_specific_data:
$ref: '#/components/schemas/asa_network_specific_data'
account_type:
$ref: '#/components/schemas/account_type'
transaction_initiator:
type: string
description: The entity that initiated the transaction.
enum:
- CARDHOLDER
- MERCHANT
- UNKNOWN
latest_challenge:
description: The latest Authorization Challenge that was issued to the cardholder for this merchant.
type: object
properties:
status:
type: string
enum:
- COMPLETED
- PENDING
- EXPIRED
- ERROR
description: |-
The status of the Authorization Challenge
* `COMPLETED` - Challenge was successfully completed by the cardholder
* `PENDING` - Challenge is still open
* `EXPIRED` - Challenge has expired without being completed
* `ERROR` - There was an error processing the challenge
phone_number:
type: string
description: The phone number used for sending Authorization Challenge SMS.
completed_at:
type: string
format: date-time
description: >-
The date and time when the Authorization Challenge was completed in UTC. Present only if the
status is `COMPLETED`.
required:
- status
- phone_number
required:
- acquirer_fee
- amount
- amounts
- authorization_amount
- avs
- card
- cardholder_currency
- cash_amount
- created
- merchant
- service_location
- merchant_amount
- merchant_currency
- settled_amount
- status
- token
- transaction_initiator
$defs:
asa_request_status:
type: string
description: >-
The type of authorization request that this request is for. Note that `CREDIT_AUTHORIZATION` and
`FINANCIAL_CREDIT_AUTHORIZATION` is only available to users with credit decisioning via ASA
enabled.
enum:
- AUTHORIZATION
- CREDIT_AUTHORIZATION
- FINANCIAL_AUTHORIZATION
- FINANCIAL_CREDIT_AUTHORIZATION
- BALANCE_INQUIRY
asa_request_pos_entry_mode:
description: POS > Entry Mode object in ASA
type: object
properties:
card:
description: Card Presence Indicator
type: string
enum:
- PRESENT
- NOT_PRESENT
- UNKNOWN
cardholder:
description: Cardholder Presence Indicator
type: string
enum:
- DEFERRED_BILLING
- ELECTRONIC_ORDER
- INSTALLMENT
- MAIL_ORDER
- NOT_PRESENT
- PRESENT
- REOCCURRING
- TELEPHONE_ORDER
- UNKNOWN
pan:
description: Method of entry for the PAN
type: string
enum:
- AUTO_ENTRY
- BAR_CODE
- CONTACTLESS
- ECOMMERCE
- ERROR_KEYED
- ERROR_MAGNETIC_STRIPE
- ICC
- KEY_ENTERED
- MAGNETIC_STRIPE
- MANUAL
- OCR
- SECURE_CARDLESS
- UNSPECIFIED
- UNKNOWN
- CREDENTIAL_ON_FILE
- ECOMMERCE
pin_entered:
type: boolean
description: Indicates whether the cardholder entered the PIN. True if the PIN was entered.
asa_request_fleet_info:
title: Fleet Info
description: Optional Object containing information if the Card is a part of a Fleet managed program
type:
- object
- 'null'
properties:
driver_number:
oneOf:
- type: 'null'
description: 'Driver Number was not provided as part of the transaction '
- type: string
description: Number representing the driver
vehicle_number:
oneOf:
- type: 'null'
description: Vehicle Number was not provided as part of the transaction
- type: string
description: Number associated with the vehicle
fleet_restriction_code:
type: string
description: >-
Code indicating which restrictions, if any, there are on purchase. This is configured at a
program level and is a static configuration, and does not change on a request to request basis
enum:
- NO_RESTRICTIONS
- FUEL_ONLY
fleet_prompt_code:
type: string
description: >-
Code indicating what the driver was prompted to enter at time of purchase. This is configured
at a program level and is a static configuration, and does not change on a request to request
basis
enum:
- NO_PROMPT
- VEHICLE_NUMBER
- DRIVER_NUMBER
required:
- fleet_restriction_code
- fleet_prompt_code
asa_network_specific_data:
title: Network Specific Data
description: >-
Contains raw data provided by the card network, including attributes that provide further context
about the authorization. If populated by the network, data is organized by Lithic and passed
through without further modification. Please consult the official network documentation for more
details about these values and how to use them. This object is only available to certain programs-
contact your Customer Success Manager to discuss enabling access.
type:
- object
- 'null'
properties:
mastercard:
oneOf:
- type: 'null'
description: There was no Mastercard-specific data available for this transaction.
- $ref: '#/components/schemas/asa_network_specific_data_mastercard'
visa:
oneOf:
- type: 'null'
description: There was no Visa-specific data available for this transaction.
- $ref: '#/components/schemas/asa_network_specific_data_visa'
asa_network_specific_data_mastercard:
type: object
properties:
transaction_type_identifier:
oneOf:
- type: 'null'
description: Transaction type identifier not available.
- type: string
description: Indicates the type of additional transaction purpose.
minLength: 3
maxLength: 3
ecommerce_security_level_indicator:
oneOf:
- type: 'null'
description: Electronic commerce security level indicator not available.
- type: string
description: Indicates the electronic commerce security level and UCAF collection.
minLength: 3
maxLength: 3
on_behalf_service_result:
oneOf:
- type: 'null'
description: On-behalf service result not available.
- type: array
items:
type: object
properties:
service:
type: string
description: Indicates the service performed on the transaction.
minLength: 2
maxLength: 2
result_1:
type: string
description: Indicates the results of the service processing.
minLength: 1
maxLength: 1
result_2:
type: string
description: Identifies the results of the service processing.
minLength: 1
maxLength: 1
required:
- service
- result_1
- result_2
description: >-
The On-behalf Service performed on the transaction and the results. Contains all
applicable, on-behalf service results that were performed on a given transaction.
maxItems: 10
asa_network_specific_data_visa:
type: object
properties:
business_application_identifier:
oneOf:
- type: 'null'
description: Business application identifier not available.
- type: string
description: >-
Identifies the purpose or category of a transaction, used to classify and process
transactions according to Visa’s rules.
minLength: 2
maxLength: 2
asa_request_card:
description: Card object in ASA
type: object
properties:
hostname:
description: Hostname of card’s locked merchant (will be empty if not applicable)
type: string
last_four:
description: Last four digits of the card number
type: string
memo:
description: >-
Customizable name to identify the card. We recommend against using this field to store JSON
data as it can cause unexpected behavior.
type: string
spend_limit:
description: >-
Amount (in cents) to limit approved authorizations. Purchase requests above the spend limit
will be declined (refunds and credits will be approved).
Note that while spend limits are enforced based on authorized and settled volume on a card,
they are not recommended to be used for balance or reconciliation-level accuracy. Spend limits
also cannot block force posted charges (i.e., when a merchant sends a clearing message without
a prior authorization).
type: integer
format: int64
spend_limit_duration:
description: >-
Note that to support recurring monthly payments, which can occur on different day every month,
the time window we consider for MONTHLY velocity starts 6 days after the current calendar date
one month prior.
type: string
enum:
- ANNUALLY
- FOREVER
- MONTHLY
- TRANSACTION
state:
type: string
enum:
- CLOSED
- OPEN
- PAUSED
- PENDING_ACTIVATION
- PENDING_FULFILLMENT
type:
$ref: '#/components/schemas/card-type'
token:
description: Globally unique identifier for the card.
type: string
format: uuid
asa-response:
description: >-
The Auth Stream Access response payload that an ASA responder may respond with in response to a
request.
type: object
properties:
result:
description: >-
Result of the Authorization decision. Provide `APPROVED` to accept the authorization. Any other
response will decline the authorization. Result `CHALLENGE` is valid only for cardholder-initiated
transactions. If a value not present in the enumeration is returned the transaction will be
declined with the `CUSTOM_ASA_RESULT` detailed result.
type: string
enum:
- APPROVED
- AVS_INVALID
- CARD_PAUSED
- INSUFFICIENT_FUNDS
- UNAUTHORIZED_MERCHANT
- VELOCITY_EXCEEDED
- DRIVER_NUMBER_INVALID
- VEHICLE_NUMBER_INVALID
- SUSPECTED_FRAUD
- CHALLENGE
token:
type: string
description: The transaction token from the ASA request.
format: uuid
approved_amount:
type: integer
format: int64
description: >-
The amount approved for the transaction. Note that setting this implies a partial approval. This
property should not be present if the intention is to fully approve the transaction. See:
https://docs.lithic.com/docs/partial-approval#partial-approval
avs_result:
description: >-
The ASA responder may return an address verification (AVS) match indicator for evaluation by the
acquirer. The merchant can choose whether to proceed with the transaction in the case of an
approval with AVS failure. When they do not, this typically appears as a subsequent
AUTHORIZATION_REVERSAL event following the AUTHORIZATION. Note that AVS data submitted by
merchants can be variable in quality, and we recommend card programs exercise adjust their
decisioning logic accordingly.
type: string
enum:
- FAIL
- MATCH
- MATCH_ADDRESS_ONLY
- MATCH_ZIP_ONLY
balance:
description: >-
Respective available amount and settled amount values (in cents). These values can be used by
merchants for authorization decisions as well as balance display at point of sale or ATM.
type: object
properties:
amount:
oneOf:
- type: integer
format: int64
description: The balance held on the card.
- type: 'null'
available:
oneOf:
- type: integer
format: int64
description: >-
The balance available for the cardholder to spend. This is calculated as the settled
amount minus any pending authorizations on the card.
- type: 'null'
challenge_phone_number:
type: string
description: >-
The phone number to use for sending an Authorization Challenge SMS. Relevant only when the result
is `CHALLENGE`. The expected format is E.164 without hyphens. For example, "+15555555555" for a US
phone number.
required:
- result
backtest-report:
title: Auth Rules Backtest Report
description: Webhook payload for the auth_rules.backtest_report.created event.
allOf:
- $ref: '#/components/schemas/backtest-results'
balance-updated:
title: Balance Updated
examples:
- data:
- available_amount: 10000
created: '2023-09-14T12:52:44Z'
currency: USD
last_transaction_event_token: 10265fe1-7058-451a-bfdf-db6f0ece177c
last_transaction_token: 1e338050-295e-477b-884a-4f87d7d4b648
pending_amount: 0
token: 1e338050-295e-477b-884a-4f87d7d4b648
total_amount: 10000
type: ISSUING
updated: '2023-09-14T12:52:44Z'
properties:
data:
items:
$ref: '#/components/schemas/financial-account-balance'
type: array
required:
- data
type: object
book-transfer-transaction-created:
title: Book Transfer Transaction Created
allOf:
- $ref: '#/components/schemas/book-transfer-transaction'
examples:
- family: TRANSFER
category: BALANCE_OR_FUNDING
created: '2023-09-14T12:52:44Z'
currency: USD
events:
- amount: 4103
created: '2023-09-14T12:52:44Z'
result: APPROVED
token: f274f723-b156-5b15-a96d-5ba8d5241b09
type: ACCOUNT_TO_ACCOUNT
subtype: CUSTOM
detailed_results:
- APPROVED
memo: Fund account
from_financial_account_token: b05c313e-35db-4b47-a33b-7b268d72b1f5
to_financial_account_token: 39ec6bf0-c101-520e-965a-a4fffce1d755
pending_amount: 0
result: APPROVED
settled_amount: 4103
status: SETTLED
token: 147595d7-45f4-4c91-a950-3436d16847e5
updated: '2023-09-14T12:52:44Z'
book-transfer-transaction-updated:
title: Book Transfer Transaction Updated
allOf:
- $ref: '#/components/schemas/book-transfer-transaction'
examples:
- family: TRANSFER
category: BALANCE_OR_FUNDING
created: '2023-09-14T12:52:44Z'
currency: USD
events:
- amount: 4103
created: '2023-09-14T12:52:44Z'
result: APPROVED
token: f274f723-b156-5b15-a96d-5ba8d5241b09
type: ACCOUNT_TO_ACCOUNT
subtype: CUSTOM
detailed_results:
- APPROVED
memo: Fund account
- amount: -4103
created: '2023-09-14T12:52:44Z'
result: APPROVED
token: f274f723-b156-5b15-a96d-5ba8d5241b09
type: ACCOUNT_TO_ACCOUNT
subtype: CUSTOM
detailed_results:
- APPROVED
memo: Fund account
from_financial_account_token: b05c313e-35db-4b47-a33b-7b268d72b1f5
to_financial_account_token: 39ec6bf0-c101-520e-965a-a4fffce1d755
pending_amount: 0
result: APPROVED
settled_amount: 0
status: REVERSED
token: 147595d7-45f4-4c91-a950-3436d16847e5
updated: '2023-09-14T12:52:44Z'
card-created:
title: Card Created
examples:
- card_token: 00000000-0000-0000-0000-000000000001
replacement_for: 00000000-0000-0000-0000-000000000000
properties:
card_token:
description: The token of the card that was created.
example: 00000000-0000-0000-0000-000000000001
format: uuid
type: string
replacement_for:
description: The token of the card that was replaced, if the new card is a replacement card.
example: 00000000-0000-0000-0000-000000000000
format: uuid
type:
- string
- 'null'
required:
- card_token
type: object
card-converted:
title: Card Converted
examples:
- card_token: 00000000-0000-0000-0000-000000000001
properties:
card_token:
description: The token of the card that was created.
example: 00000000-0000-0000-0000-000000000001
format: uuid
type: string
required:
- card_token
type: object
card-renewed:
title: Card Renewed
examples:
- card_token: 00000000-0000-0000-0000-000000000001
exp_month: '01'
exp_year: '2030'
previous_exp_month: '01'
previous_exp_year: '2024'
properties:
card_token:
description: The token of the card that was renewed.
example: 00000000-0000-0000-0000-000000000001
format: uuid
type: string
exp_month:
description: The new expiration month of the card.
example: '01'
type: string
exp_year:
description: The new expiration year of the card.
example: '2030'
type: string
previous_exp_month:
description: The previous expiration month of the card.
example: '01'
type: string
previous_exp_year:
description: The previous expiration year of the card.
example: '2024'
type: string
type: object
card-reissued:
title: Card Reissued
examples:
- card_token: 00000000-0000-0000-0000-000000000001
properties:
card_token:
description: The token of the card that was reissued.
example: 00000000-0000-0000-0000-000000000001
format: uuid
type: string
type: object
card-shipped:
title: Card Shipped
examples:
- card_token: 00000000-0000-0000-0000-000000000001
shipping_method: USPS without tracking envelope
tracking_number: 1Z9999999999999999
bulk_order_token: null
properties:
card_token:
description: The token of the card that was shipped.
example: 00000000-0000-0000-0000-000000000001
format: uuid
type: string
bulk_order_token:
description: The token of the bulk order associated with this card shipment, if applicable.
example: 00000000-0000-0000-0000-000000000002
format: uuid
type:
- string
- 'null'
shipping_method:
description: The specific shipping method used to ship the card.
enum:
- Ex-US expedited with tracking
- Ex-US standard with tracking
- Ex-US standard without tracking
- FedEx 2 days
- FedEx express
- FedEx overnight
- USPS priority
- USPS with tracking
- USPS without tracking envelope
- USPS without tracking envelope non-machine
- USPS without tracking flat
example: USPS without tracking envelope
type: string
tracking_number:
description: The tracking number of the shipment.
example: 1Z9999999999999999
type:
- string
- 'null'
required:
- card_token
- bulk_order_token
- shipping_method
- tracking_number
type: object
card-updated:
title: Card Updated
examples:
- previous_fields:
state: PAUSED
state: OPEN
card_token: 00000000-0000-0000-0000-000000000000
properties:
previous_fields:
description: The previous values of the fields that were updated.
example:
state: PAUSED
type: object
state:
description: The current state of the card.
example: OPEN
type: string
card_token:
description: The token of the card that was updated.
example: 00000000-0000-0000-0000-000000000000
format: uuid
type: string
required:
- previous_fields
- state
- card_token
type: object
card-transaction-enhanced-data-created:
title: Card Transaction Enhanced Data Created
allOf:
- $ref: '#/components/schemas/enhanced-data'
examples:
- token: fda41769-2a3f-5532-898f-0d2034f2da85
transaction_token: 6b79924e-0f01-4bdf-9485-9f6da44b6be2
event_token: 49bbd49c-dfe1-56db-86ad-98c7c2bd75e4
common:
customer_reference_number: null
merchant_reference_number: null
order_date: null
line_items: []
tax:
merchant_tax_id: '521236050'
amount: null
exempt: null
fleet:
- service_type: SELF_SERVICE
driver_number: null
vehicle_number: '012345'
odometer: 12345
amount_totals:
gross_sale: 104
discount: null
net_sale: 104
fuel:
quantity: '0.24300'
type: PREMIUM_SUPER
unit_of_measure: GALLONS
unit_price: 4300
card-transaction-enhanced-data-updated:
title: Card Transaction Enhanced Data Updated
allOf:
- $ref: '#/components/schemas/enhanced-data'
examples:
- token: fda41769-2a3f-5532-898f-0d2034f2da85
transaction_token: 6b79924e-0f01-4bdf-9485-9f6da44b6be2
event_token: 49bbd49c-dfe1-56db-86ad-98c7c2bd75e4
common:
customer_reference_number: null
merchant_reference_number: null
order_date: null
line_items: []
tax:
merchant_tax_id: '521236050'
amount: null
exempt: null
fleet:
- service_type: SELF_SERVICE
driver_number: null
vehicle_number: '012345'
odometer: 12345
amount_totals:
gross_sale: 104
discount: null
net_sale: 104
fuel:
quantity: '0.24300'
type: PREMIUM_SUPER
unit_of_measure: GALLONS
unit_price: 4300
device:
type: object
properties:
imei:
description: >-
The IMEI number of the device being provisioned. For Amex, this field contains device ID instead
as IMEI is not provided
example: '123456789012345'
maxLength: 64
type:
- string
- 'null'
ip_address:
description: The IP address of the device initiating the request
example: 1.1.1.1
maxLength: 64
type:
- string
- 'null'
location:
description: Latitude and longitude where the device is located during the authorization attempt
example: 37.3860517/-122.0838511
maxLength: 64
type:
- string
- 'null'
required:
- imei
- ip_address
- location
wallet-decisioning-info:
type: object
properties:
account_score:
description: Score given to the account by the Wallet Provider
example: '100'
maxLength: 64
type:
- string
- 'null'
device_score:
description: Score given to the device by the Wallet Provider
example: '100'
maxLength: 64
type:
- string
- 'null'
recommendation_reasons:
description: Reasons provided to the Wallet Provider on how the recommended decision was reached
type:
- array
- 'null'
items:
type: string
recommended_decision:
description: The decision recommended by the Wallet Provider
example: Decision1
maxLength: 64
type:
- string
- 'null'
required:
- account_score
- device_score
- recommended_decision
tokenization-request-base:
description: Base properties shared by both tokenization decisioning requests (with response) and without
type: object
properties:
account_token:
description: Unique identifier for the user tokenizing a card
example: 00000000-0000-0000-0000-000000000002
type: string
card_token:
description: Unique identifier for the card being tokenized
example: 00000000-0000-0000-0000-000000000001
type: string
created:
description: Indicate when the request was received from Mastercard or Visa
format: date-time
type: string
device:
$ref: '#/components/schemas/device'
issuer_decision:
description: >-
Whether Lithic decisioned on the token, and if so, what the decision was.
APPROVED/VERIFICATION_REQUIRED/DENIED.
enum:
- APPROVED
- DENIED
- VERIFICATION_REQUIRED
example: APPROVED
type: string
tokenization_channel:
description: The channel through which the tokenization was made.
enum:
- DIGITAL_WALLET
- MERCHANT
example: DIGITAL_WALLET
type: string
tokenization_source:
description: The source of the tokenization.
enum:
- ACCOUNT_ON_FILE
- CONTACTLESS_TAP
- MANUAL_PROVISION
- PUSH_PROVISION
- TOKEN
- UNKNOWN
example: PUSH_PROVISION
type: string
tokenization_token:
description: Unique identifier for the digital wallet token attempt
type: string
wallet_decisioning_info:
$ref: '#/components/schemas/wallet-decisioning-info'
required:
- account_token
- card_token
- created
- issuer_decision
- tokenization_channel
- tokenization_token
- wallet_decisioning_info
digital-wallet-token-metadata:
description: Contains the metadata for the digital wallet being tokenized.
type: object
properties:
payment_account_info:
description: Contains the information of the account responsible for the payment.
type: object
properties:
account_holder_data:
description: >-
Additional information that can be used to identify the account holder, such as name, address,
etc
type: object
properties:
phone_number:
description: >-
The phone number, may contain country code along with phone number when countryDialInCode
is not present
type:
- string
- 'null'
maxLength: 20
pan_unique_reference:
description: Reference to the PAN that is unique per Wallet Provider
type:
- string
- 'null'
maxLength: 64
payment_account_reference:
description: The unique account reference assigned to the PAN
type:
- string
- 'null'
maxLength: 29
token_unique_reference:
description: >-
A unique reference assigned following the allocation of a token used to identify the token for
the duration of its lifetime.
type:
- string
- 'null'
maxLength: 64
required:
- account_holder_data
payment_app_instance_id:
description: The identifier of the Payment App instance within a device that will be provisioned with a token
type:
- string
- 'null'
maxLength: 48
status:
description: The current status of the digital wallet token. Pending or declined.
type: string
token_requestor_id:
description: The party that requested the digitization
type: string
minLength: 11
maxLength: 11
token_requestor_name:
description: Human-readable name of the wallet that the token_requestor_id maps to.
type: string
enum:
- AMAZON_ONE
- ANDROID_PAY
- APPLE_PAY
- FACEBOOK
- FITBIT_PAY
- GARMIN_PAY
- GOOGLE_PAY
- MICROSOFT_PAY
- NETFLIX
- SAMSUNG_PAY
- UNKNOWN
- VISA_CHECKOUT
example: APPLE_PAY
required:
- payment_account_info
- status
customer-tokenization-decision:
description: Contains the metadata for the customer tokenization decision.
type: object
properties:
latency:
description: Time in ms it took for the customer's URL to respond
example: '100'
type: string
outcome:
description: The outcome of the customer's decision
enum:
- APPROVED
- DECLINED
- ERROR
- INVALID_RESPONSE
- REQUIRE_ADDITIONAL_AUTHENTICATION
- TIMEOUT
example: APPROVED
type: string
responder_url:
description: The customer's subscribed URL
example: https://example.com
type: string
response_code:
description: The response code that the customer provided
example: '123456'
type: string
required:
- outcome
- responder_url
digital-wallet-tokenization-approval-request:
description: >-
Payload for digital wallet tokenization approval requests. Used for both the decisioning responder
request (sent to the customer's endpoint for a real-time decision) and the subsequent webhook event
(sent after the decision is made). Fields like customer_tokenization_decision,
tokenization_decline_reasons, tokenization_tfa_reasons, and rule_results are only populated in the
webhook event, not in the initial decisioning request.
allOf:
- $ref: '#/components/schemas/tokenization-request-base'
- type: object
properties:
digital_wallet_token_metadata:
$ref: '#/components/schemas/digital-wallet-token-metadata'
customer_tokenization_decision:
description: >-
The customer's tokenization decision outcome. Only populated in webhook events (after
decisioning), not in the initial decisioning request
oneOf:
- type: 'null'
- $ref: '#/components/schemas/customer-tokenization-decision'
event_type:
description: The name of this event
enum:
- digital_wallet.tokenization_approval_request
example: digital_wallet.tokenization_approval_request
type: string
tokenization_decline_reasons:
description: >-
List of reasons why the tokenization was declined. Only populated in webhook events, not in
the initial decisioning request
type: array
items:
$ref: '#/components/schemas/tokenization-decline-reason'
tokenization_tfa_reasons:
description: >-
List of reasons why two-factor authentication was required. Only populated in webhook events,
not in the initial decisioning request
type: array
items:
$ref: '#/components/schemas/tokenization-tfa-reason'
rule_results:
description: >-
Results from rules that were evaluated for this tokenization. Only populated in webhook
events, not in the initial decisioning request
type: array
items:
$ref: '#/components/schemas/tokenization-rule-result'
required:
- digital_wallet_token_metadata
- event_type
examples:
- account_token: 00000000-0000-0000-0000-000000000002
card_token: 00000000-0000-0000-0000-000000000001
created: '2023-09-18T12:34:56Z'
device:
imei: '123456789012345'
ip_address: 1.1.1.1
location: 37.3860517/-122.0838511
digital_wallet_token_metadata:
payment_account_info:
account_holder_data:
phone_number: '+15555555555'
pan_unique_reference: pan_unique_ref_1234567890123456789012345678
payment_account_reference: ref_1234567890123456789012
token_unique_reference: token_unique_ref_1234567890123456789012345678
payment_app_instance_id: app_instance_123456789012345678901234567890
status: Pending
token_requestor_id: '12345678901'
token_requestor_name: APPLE_PAY
event_type: digital_wallet.tokenization_approval_request
issuer_decision: APPROVED
tokenization_channel: DIGITAL_WALLET
tokenization_source: PUSH_PROVISION
tokenization_token: tok_1234567890abcdef
wallet_decisioning_info:
account_score: '100'
device_score: '100'
recommendation_reasons:
- Reason1
recommended_decision: Decision1
- account_token: 00000000-0000-0000-0000-000000000002
card_token: 00000000-0000-0000-0000-000000000001
created: '2023-09-18T12:34:56Z'
customer_tokenization_decision:
latency: '100'
outcome: APPROVED
responder_url: https://example.com
response_code: '123456'
device:
imei: '123456789012345'
ip_address: 1.1.1.1
location: 37.3860517/-122.0838511
digital_wallet_token_metadata:
payment_account_info:
account_holder_data:
phone_number: '+15555555555'
pan_unique_reference: pan_unique_ref_1234567890123456789012345678
payment_account_reference: ref_1234567890123456789012
token_unique_reference: token_unique_ref_1234567890123456789012345678
payment_app_instance_id: app_instance_123456789012345678901234567890
status: Pending
token_requestor_id: '12345678901'
token_requestor_name: APPLE_PAY
event_type: digital_wallet.tokenization_approval_request
issuer_decision: APPROVED
tokenization_channel: DIGITAL_WALLET
tokenization_source: PUSH_PROVISION
tokenization_token: tok_1234567890abcdef
wallet_decisioning_info:
account_score: '100'
device_score: '100'
recommendation_reasons:
- Reason1
recommended_decision: Decision1
tokenization_decline_reasons:
- ACCOUNT_SCORE_1
tokenization_tfa_reasons: []
rule_results:
- auth_rule_token: 550e8400-e29b-41d4-a716-446655440003
result: DECLINED
name: CustomerAccountRule
explanation: Account risk too high
tokenization-decisioning-response:
description: >-
The response payload that a Tokenization Decisioning responder may respond with in response to a
request.
type: object
properties:
tokenization_decision:
description: The decision for tokenization
type: string
enum:
- APPROVE
- AUTHENTICATE
- DECLINE
example: APPROVE
phone_number:
description: >-
Phone number of the end user attempting a tokenization. Lithic must pass this to the card networks
to pass to the wallets to display for the user as they select an authentication option in their
digital wallet. Lithic will always default to using this value for authentication over the account
holder information on file. E.164 format without hyphens. For example, "+15555555555" for a US
phone number.
type: string
example: '15555555555'
email:
description: >-
Email address of the end user attempting a tokenization to be used for authentication. Lithic must
pass this to the card networks to pass to the wallets to display for the user as they select an
authentication option in their digital wallet. Lithic will always default to using this value for
authentication over the account holder information on file. Permitted values: Valid email address.
For example, "johnny@appleseed.com".
type: string
format: email
example: test@example.com
mobile_application_name:
description: >-
Name of the mobile application that the digital wallet will open for the end user to complete
authentication. For example, "Wells Fargo".
type: string
example: Wells Fargo
required:
- tokenization_decision
- phone_number
- email
- mobile_application_name
examples:
- tokenization_decision: AUTHENTICATE
phone_number: '+15555555555'
email: test@example.com
mobile_application_name: Wells Fargo
digital-wallet-tokenization-result:
title: Digital Wallet Tokenization Result
examples:
- account_token: 00000000-0000-0000-0000-000000000002
card_token: 00000000-0000-0000-0000-000000000001
created: '2020-01-01T00:00:00Z'
tokenization_result_details:
issuer_decision: APPROVED
tokenization_decline_reasons:
- ACCOUNT_SCORE_1
- DEVICE_SCORE_1
wallet_decision: APPROVED
tokenization_token: 00000000-0000-0000-0000-000000000003
properties:
account_token:
description: Account token
example: 00000000-0000-0000-0000-000000000002
type: string
card_token:
description: Card token
example: 00000000-0000-0000-0000-000000000001
type: string
created:
description: Created date
example: '2020-01-01T00:00:00Z'
format: date-time
type: string
tokenization_result_details:
additionalProperties: false
description: The result of the tokenization request.
properties:
customer_decision:
description: The customer's tokenization decision if applicable.
type:
- string
- 'null'
issuer_decision:
description: Lithic's tokenization decision.
type: string
token_activated_date_time:
description: An RFC 3339 timestamp indicating when the tokenization succeeded.
example: '2020-01-01T00:00:00Z'
format: date-time
type:
- string
- 'null'
tokenization_decline_reasons:
description: List of reasons why the tokenization was declined
example:
- ACCOUNT_SCORE_1
- DEVICE_SCORE_1
items:
enum:
- ACCOUNT_SCORE_1
- ALL_WALLET_DECLINE_REASONS_PRESENT
- CARD_EXPIRY_MONTH_MISMATCH
- CARD_EXPIRY_YEAR_MISMATCH
- CARD_INVALID_STATE
- CUSTOMER_RED_PATH
- CVC_MISMATCH
- DEVICE_SCORE_1
- GENERIC_DECLINE
- INVALID_CUSTOMER_RESPONSE
- NETWORK_FAILURE
- WALLET_RECOMMENDED_DECISION_RED
type: string
type: array
tokenization_tfa_reasons:
description: List of reasons why two-factor authentication was required
type: array
items:
$ref: '#/components/schemas/tokenization-tfa-reason'
rule_results:
description: Results from rules that were evaluated for this tokenization
type: array
items:
$ref: '#/components/schemas/tokenization-rule-result'
wallet_decision:
description: The wallet's recommended decision.
example: APPROVED
type:
- string
- 'null'
required:
- issuer_decision
- tokenization_decline_reasons
type: object
tokenization_token:
description: Tokenization token
example: 00000000-0000-0000-0000-000000000003
type: string
required:
- account_token
- card_token
- created
- tokenization_result_details
- tokenization_token
type: object
digital-wallet-tokenization-two-factor-authentication-code:
title: Digital Wallet Tokenization Two Factor Authentication Code
description: Self Serve 2FA Code Schema
examples:
- account_token: 00000000-0000-0000-0000-000000000002
activation_method:
type: TEXT_TO_CARDHOLDER_NUMBER
value: '+15555555555'
authentication_code: '123456'
card_token: 00000000-0000-0000-0000-000000000001
created: '2020-01-01T00:00:00Z'
tokenization_token: 00000000-0000-0000-0000-000000000003
properties:
account_token:
description: Unique identifier for the user tokenizing a card
example: 00000000-0000-0000-0000-000000000002
type: string
activation_method:
description: ''
properties:
type:
description: |-
The communication method that the user has selected to use to receive the authentication code.
Supported Values: Sms = "TEXT_TO_CARDHOLDER_NUMBER". Email = "EMAIL_TO_CARDHOLDER_ADDRESS"
enum:
- EMAIL_TO_CARDHOLDER_ADDRESS
- TEXT_TO_CARDHOLDER_NUMBER
example: TEXT_TO_CARDHOLDER_NUMBER
type: string
value:
description: >-
The location where the user wants to receive the authentication code.
The format depends on the ActivationMethod.Type field. If Type is Email, the Value will be the
email address. If the Type is Sms, the Value will be the phone number.
example: '+15555555555'
type: string
required:
- type
- value
type: object
authentication_code:
description: Authentication code to provide to the user tokenizing a card.
example: '123456'
type: string
card_token:
description: Unique identifier for the card being tokenized
example: 00000000-0000-0000-0000-000000000001
type: string
created:
description: Indicate when the request was received from Mastercard or Visa
example: '2020-01-01T00:00:00Z'
format: date-time
title: Created
type: string
tokenization_token:
description: Unique identifier for the tokenization
example: 00000000-0000-0000-0000-000000000003
type: string
required:
- account_token
- activation_method
- authentication_code
- card_token
- created
- tokenization_token
type: object
digital-wallet-tokenization-two-factor-authentication-code-sent:
title: Digital Wallet Tokenization Two Factor Authentication Code Sent
description: 2FA Code Sent Schema
examples:
- account_token: 00000000-0000-0000-0000-000000000002
activation_method:
type: TEXT_TO_CARDHOLDER_NUMBER
value: '+15555555555'
card_token: 00000000-0000-0000-0000-000000000001
created: '2020-01-01T00:00:00Z'
tokenization_token: 00000000-0000-0000-0000-000000000003
properties:
account_token:
description: Unique identifier for the user tokenizing a card
example: 00000000-0000-0000-0000-000000000002
type: string
activation_method:
description: ''
properties:
type:
description: |-
The communication method that the user has selected to use to receive the authentication code.
Supported Values: Sms = "TEXT_TO_CARDHOLDER_NUMBER". Email = "EMAIL_TO_CARDHOLDER_ADDRESS"
enum:
- EMAIL_TO_CARDHOLDER_ADDRESS
- TEXT_TO_CARDHOLDER_NUMBER
example: TEXT_TO_CARDHOLDER_NUMBER
type: string
value:
description: >-
The location to which the authentication code was sent.
The format depends on the ActivationMethod.Type field. If Type is Email, the Value will be the
email address. If the Type is Sms, the Value will be the phone number.
example: '+15555555555'
type: string
required:
- type
- value
type: object
card_token:
description: Unique identifier for the card being tokenized
example: 00000000-0000-0000-0000-000000000001
type: string
created:
description: Indicate when the request was received from Mastercard or Visa
example: '2020-01-01T00:00:00Z'
format: date-time
title: Created
type: string
tokenization_token:
description: Unique identifier for the tokenization
example: 00000000-0000-0000-0000-000000000003
type: string
required:
- account_token
- activation_method
- card_token
- created
- tokenization_token
type: object
digital-wallet-tokenization-updated:
title: Digital Wallet Tokenization Updated
examples:
- account_token: 00000000-0000-0000-0000-000000000002
card_token: 00000000-0000-0000-0000-000000000001
created: '2023-09-13T16:05:09.893241'
tokenization:
account_token: 61c3acef-3c2c-4d61-9352-941397b92ca3
card_token: 16a410c9-7f5c-43e9-8108-bb8a72c063f7
tokenization_channel: DIGITAL_WALLET
created_at: '2023-09-13T15:30:11.948371'
events:
- created_at: '2023-09-13T16:05:09.893241'
result: TOKEN_ACTIVATED
token: a690b617-d3d4-4976-82f6-901f817ad98a
type: TOKENIZATION_UPDATED
- created_at: '2023-09-13T16:01:13.643241'
result: APPROVED
token: 2b2a1038-45f3-42e4-98bb-e745be3f1de1
type: TOKENIZATION_AUTHORIZATION
status: ACTIVE
token: 3e9a10da-11be-4a62-a510-d43548bfcec1
token_requestor_name: APPLE_PAY
token_unique_reference: DM4MMC0000332872ef1029f38fa0184b5c9260383da192b22
dpan: '5489123487251234'
device_id: ba6f05c312d4a5789b2e04f05c1f9d3b81GJ4AG1
payment_account_reference_id: 50019T0AL7DEFGJ4AGGT8BQDOABCD
updated_at: '2023-09-13T16:05:09.893241'
properties:
account_token:
description: Account token
example: 00000000-0000-0000-0000-000000000002
type: string
card_token:
description: Card token
example: 00000000-0000-0000-0000-000000000001
type: string
created:
description: Created date
example: '2020-01-01T00:00:00Z'
format: date-time
type: string
tokenization:
$ref: '#/components/schemas/tokenization'
required:
- account_token
- card_token
- created
- tokenization
type: object
dispute-updated:
title: Dispute Updated
allOf:
- $ref: '#/components/schemas/dispute-v1'
examples:
- amount: 200
arbitration_date: null
created: '2023-07-19T18:39:34.768Z'
customer_filed_date: '2023-07-20T09:00:00Z'
customer_note: I didn't receive the goods.
network_claim_ids:
- CLAIM-001
network_filed_date: '2023-07-21T11:00:00Z'
network_reason_code: '4808'
prearbitration_date: null
primary_claim_id: CLAIM-001
reason: GOODS_SERVICES_NOT_RECEIVED
representment_date: null
resolution_date: null
resolution_note: null
resolution_reason: null
status: SUBMITTED
token: b24230fa-181e-4b31-9a5c-276747e619a0
transaction_token: 12345624-aa69-4cbc-a946-30d90181b621
dispute-evidence-upload-failed:
title: Dispute Evidence Upload Failed
allOf:
- $ref: '#/components/schemas/dispute-evidence'
examples:
- created: '2023-07-19T18:39:34.768Z'
dispute_token: f7a74167-d6d5-4f7d-8501-36df11ba371b
token: 48b8e42c-a645-44f6-8604-20c3127e9008
upload_status: REJECTED
funding_events_created_webhook:
title: Funding Event Webhook
type: object
allOf:
- $ref: '#/components/schemas/funding_event_response'
properties:
event_type:
type: string
enum:
- funding_event.created
required:
- event_type
internal_adjustment_event:
title: Internal Adjustment Event
type: object
properties:
amount:
type: integer
type:
type: string
enum:
- INTERNAL_ADJUSTMENT
result:
$ref: '#/components/schemas/transaction_result'
created:
type: string
format: date-time
token:
type: string
format: uuid
required:
- amount
- type
- result
- created
- token
internal_adjustment_transaction:
title: Internal Adjustment Transaction
type: object
properties:
token:
type: string
format: uuid
result:
$ref: '#/components/schemas/transaction_result'
category:
type: string
enum:
- INTERNAL
status:
$ref: '#/components/schemas/transaction_status'
settled_amount:
type: integer
pending_amount:
type: integer
currency:
type: string
events:
type: array
items:
$ref: '#/components/schemas/internal_adjustment_event'
created:
type: string
format: date-time
updated:
type: string
format: date-time
descriptor:
type: string
required:
- token
- result
- category
- status
- settled_amount
- pending_amount
- currency
- events
- created
- updated
- descriptor
payment-transaction-created:
title: Payment Transaction Created
allOf:
- $ref: '#/components/schemas/payment-transaction'
examples:
- category: ACH
family: PAYMENT
created: '2023-09-14T12:52:44Z'
currency: USD
descriptor: custom description
direction: DEBIT
events:
- amount: 4103
created: '2023-09-14T12:52:44Z'
result: APPROVED
token: f274f723-b156-5b15-a96d-5ba8d5241b09
type: ACH_ORIGINATION_INITIATED
external_bank_account_token: b05c313e-35db-4b47-a33b-7b268d72b1f5
financial_account_token: 39ec6bf0-c101-520e-965a-a4fffce1d755
related_account_tokens: null
method: ACH_NEXT_DAY
method_attributes:
retries: 0
return_reason_code: null
sec_code: CCD
pending_amount: 4103
result: APPROVED
settled_amount: 0
source: CUSTOMER
status: PENDING
token: 147595d7-45f4-4c91-a950-3436d16847e5
type: ORIGINATION_DEBIT
updated: '2023-09-14T12:52:44Z'
user_defined_id: null
payment-transaction-updated:
title: Payment Transaction Updated
allOf:
- $ref: '#/components/schemas/payment-transaction'
examples:
- category: ACH
family: PAYMENT
created: '2023-09-14T12:52:44Z'
currency: USD
descriptor: custom description
direction: DEBIT
events:
- amount: 4103
created: '2023-09-14T12:52:44Z'
result: APPROVED
token: f274f723-b156-5b15-a96d-5ba8d5241b09
type: ACH_ORIGINATION_INITIATED
- amount: 4103
created: '2023-09-14T12:52:46Z'
result: APPROVED
token: 95719c03-7eb8-560b-9843-39da92df5231
type: ACH_ORIGINATION_PROCESSED
- amount: 4103
created: '2023-09-14T12:52:47Z'
result: APPROVED
token: 87fea0af-931f-5e80-a9cf-a243aa71b89d
type: ACH_ORIGINATION_RELEASED
external_bank_account_token: b05c313e-35db-4b47-a33b-7b268d72b1f5
financial_account_token: 39ec6bf0-c101-520e-965a-a4fffce1d755
related_account_tokens: null
method: ACH_NEXT_DAY
method_attributes:
retries: 0
return_reason_code: null
sec_code: CCD
addenda: null
pending_amount: 0
result: APPROVED
settled_amount: 4103
source: CUSTOMER
status: SETTLED
token: 147595d7-45f4-4c91-a950-3436d16847e5
updated: '2023-09-14T12:52:47Z'
user_defined_id: null
statements_created_webhook:
title: Statement Webhook
type: object
allOf:
- $ref: '#/components/schemas/statement_response'
properties:
event_type:
type: string
enum:
- statements.created
required:
- event_type
challenge:
title: 3DS Challenge object
type: object
description: Represents a challenge object for 3DS authentication
properties:
challenge_method_type:
type: string
description: The type of challenge method issued to the cardholder
enum:
- OUT_OF_BAND
start_time:
type: string
description: ISO-8601 time at which the challenge has started
format: date-time
expiry_time:
type: string
description: ISO-8601 time at which the challenge expires
format: date-time
app_requestor_url:
type:
- string
- 'null'
description: >-
Fully qualified app URL of the merchant app. This should be used to redirect the cardholder back
to the merchant app after completing an app-based challenge. This URL will only be populated if
the 3DS Requestor App is provided to the 3DS SDK.
format: uri
required:
- challenge_method_type
- start_time
- expiry_time
challenge-event:
title: 3DS Challenge webhook event
type: object
description: Represents a challenge event that is emitted after issuing a 3DS challenge
properties:
authentication_object:
$ref: '#/components/schemas/authentication'
challenge:
$ref: '#/components/schemas/challenge'
event_type:
const: three_ds_authentication.challenge
required:
- authentication_object
- challenge
- event_type
tokenization-approval-request:
description: An event webhook (no responder) to inform that a Tokenization Request was decisioned on.
allOf:
- $ref: '#/components/schemas/tokenization-request-base'
- type: object
properties:
token_metadata:
$ref: '#/components/schemas/digital-wallet-token-metadata'
customer_tokenization_decision:
oneOf:
- type: 'null'
- $ref: '#/components/schemas/customer-tokenization-decision'
event_type:
description: The name of this event
enum:
- tokenization.approval_request
example: tokenization.approval_request
type: string
tokenization_decline_reasons:
description: List of reasons why the tokenization was declined
type: array
items:
$ref: '#/components/schemas/tokenization-decline-reason'
tokenization_tfa_reasons:
description: List of reasons why two-factor authentication was required
type: array
items:
$ref: '#/components/schemas/tokenization-tfa-reason'
rule_results:
description: Results from rules that were evaluated for this tokenization
type: array
items:
$ref: '#/components/schemas/tokenization-rule-result'
required:
- customer_tokenization_decision
- event_type
- token_metadata
examples:
- account_token: 00000000-0000-0000-0000-000000000002
card_token: 00000000-0000-0000-0000-000000000001
created: '2023-09-18T12:34:56Z'
customer_tokenization_decision:
latency: '100'
outcome: APPROVED
responder_url: https://example.com
response_code: '123456'
device:
imei: '123456789012345'
ip_address: 1.1.1.1
location: 37.3860517/-122.0838511
token_metadata:
payment_account_info:
account_holder_data:
phone_number: '+15555555555'
pan_unique_reference: pan_unique_ref_1234567890123456789012345678
payment_account_reference: ref_1234567890123456789012
token_unique_reference: token_unique_ref_1234567890123456789012345678
payment_app_instance_id: app_instance_123456789012345678901234567890
status: Pending
token_requestor_id: '12345678901'
token_requestor_name: APPLE_PAY
event_type: tokenization.approval_request
issuer_decision: APPROVED
tokenization_channel: DIGITAL_WALLET
tokenization_source: PUSH_PROVISION
tokenization_token: tok_1234567890abcdef
wallet_decisioning_info:
account_score: '100'
device_score: '100'
recommendation_reasons:
- Reason1
recommended_decision: Decision1
tokenization_decline_reasons: []
tokenization_tfa_reasons:
- WALLET_RECOMMENDED_TFA
rule_results:
- auth_rule_token: 550e8400-e29b-41d4-a716-446655440001
result: REQUIRE_TFA
name: CustomerRiskRule
explanation: High risk transaction detected
tokenization-result:
title: Tokenization Result
examples:
- account_token: 00000000-0000-0000-0000-000000000002
card_token: 00000000-0000-0000-0000-000000000001
created: '2020-01-01T00:00:00Z'
tokenization_result_details:
issuer_decision: APPROVED
tokenization_decline_reasons:
- ACCOUNT_SCORE_1
- DEVICE_SCORE_1
wallet_decision: APPROVED
tokenization_token: 00000000-0000-0000-0000-000000000003
properties:
account_token:
description: Account token
example: 00000000-0000-0000-0000-000000000002
type: string
card_token:
description: Card token
example: 00000000-0000-0000-0000-000000000001
type: string
created:
description: Created date
example: '2020-01-01T00:00:00Z'
format: date-time
type: string
tokenization_result_details:
additionalProperties: false
description: The result of the tokenization request.
properties:
customer_decision:
description: The customer's tokenization decision if applicable.
type:
- string
- 'null'
issuer_decision:
description: Lithic's tokenization decision.
type: string
token_activated_date_time:
description: An RFC 3339 timestamp indicating when the tokenization succeeded.
example: '2020-01-01T00:00:00Z'
format: date-time
type:
- string
- 'null'
tokenization_decline_reasons:
description: List of reasons why the tokenization was declined
example:
- ACCOUNT_SCORE_1
- DEVICE_SCORE_1
items:
enum:
- ACCOUNT_SCORE_1
- ALL_WALLET_DECLINE_REASONS_PRESENT
- CARD_EXPIRY_MONTH_MISMATCH
- CARD_EXPIRY_YEAR_MISMATCH
- CARD_INVALID_STATE
- CUSTOMER_RED_PATH
- CVC_MISMATCH
- DEVICE_SCORE_1
- GENERIC_DECLINE
- INVALID_CUSTOMER_RESPONSE
- NETWORK_FAILURE
- WALLET_RECOMMENDED_DECISION_RED
type: string
type: array
tokenization_tfa_reasons:
description: List of reasons why two-factor authentication was required
type: array
items:
$ref: '#/components/schemas/tokenization-tfa-reason'
rule_results:
description: Results from rules that were evaluated for this tokenization
type: array
items:
$ref: '#/components/schemas/tokenization-rule-result'
wallet_decision:
description: The wallet's recommended decision.
example: APPROVED
type:
- string
- 'null'
required:
- issuer_decision
- tokenization_decline_reasons
type: object
tokenization_token:
description: Tokenization token
example: 00000000-0000-0000-0000-000000000003
type: string
required:
- account_token
- card_token
- created
- tokenization_result_details
- tokenization_token
type: object
tokenization-two-factor-authentication-code:
title: Tokenization Two Factor Authentication Code
description: Self Serve 2FA Code Schema
examples:
- account_token: 00000000-0000-0000-0000-000000000002
activation_method:
type: TEXT_TO_CARDHOLDER_NUMBER
value: '+15555555555'
authentication_code: '123456'
card_token: 00000000-0000-0000-0000-000000000001
created: '2020-01-01T00:00:00Z'
tokenization_token: 00000000-0000-0000-0000-000000000003
properties:
account_token:
description: Unique identifier for the user tokenizing a card
example: 00000000-0000-0000-0000-000000000002
type: string
activation_method:
description: ''
properties:
type:
description: |-
The communication method that the user has selected to use to receive the authentication code.
Supported Values: Sms = "TEXT_TO_CARDHOLDER_NUMBER". Email = "EMAIL_TO_CARDHOLDER_ADDRESS"
enum:
- EMAIL_TO_CARDHOLDER_ADDRESS
- TEXT_TO_CARDHOLDER_NUMBER
example: TEXT_TO_CARDHOLDER_NUMBER
type: string
value:
description: >-
The location where the user wants to receive the authentication code.
The format depends on the ActivationMethod.Type field. If Type is Email, the Value will be the
email address. If the Type is Sms, the Value will be the phone number.
example: '+15555555555'
type: string
required:
- type
- value
type: object
authentication_code:
description: Authentication code to provide to the user tokenizing a card.
example: '123456'
type: string
card_token:
description: Unique identifier for the card being tokenized
example: 00000000-0000-0000-0000-000000000001
type: string
created:
description: Indicate when the request was received from Mastercard or Visa
example: '2020-01-01T00:00:00Z'
format: date-time
title: Created
type: string
tokenization_token:
description: Unique identifier for the tokenization
example: 00000000-0000-0000-0000-000000000003
type: string
required:
- account_token
- activation_method
- authentication_code
- card_token
- created
- tokenization_token
type: object
tokenization-two-factor-authentication-code-sent:
title: Tokenization Two Factor Authentication Code Sent
description: 2FA Code Sent Schema
examples:
- account_token: 00000000-0000-0000-0000-000000000002
activation_method:
type: TEXT_TO_CARDHOLDER_NUMBER
value: '+15555555555'
card_token: 00000000-0000-0000-0000-000000000001
created: '2020-01-01T00:00:00Z'
tokenization_token: 00000000-0000-0000-0000-000000000003
properties:
account_token:
description: Unique identifier for the user tokenizing a card
example: 00000000-0000-0000-0000-000000000002
type: string
activation_method:
description: ''
properties:
type:
description: |-
The communication method that the user has selected to use to receive the authentication code.
Supported Values: Sms = "TEXT_TO_CARDHOLDER_NUMBER". Email = "EMAIL_TO_CARDHOLDER_ADDRESS"
enum:
- EMAIL_TO_CARDHOLDER_ADDRESS
- TEXT_TO_CARDHOLDER_NUMBER
example: TEXT_TO_CARDHOLDER_NUMBER
type: string
value:
description: >-
The location to which the authentication code was sent.
The format depends on the ActivationMethod.Type field. If Type is Email, the Value will be the
email address. If the Type is Sms, the Value will be the phone number.
example: '+15555555555'
type: string
required:
- type
- value
type: object
card_token:
description: Unique identifier for the card being tokenized
example: 00000000-0000-0000-0000-000000000001
type: string
created:
description: Indicate when the request was received from Mastercard or Visa
example: '2020-01-01T00:00:00Z'
format: date-time
title: Created
type: string
tokenization_token:
description: Unique identifier for the tokenization
example: 00000000-0000-0000-0000-000000000003
type: string
required:
- account_token
- activation_method
- card_token
- created
- tokenization_token
type: object
tokenization-updated:
title: Tokenization Updated
examples:
- account_token: 00000000-0000-0000-0000-000000000002
card_token: 00000000-0000-0000-0000-000000000001
created: '2023-09-13T16:05:09.893241'
tokenization:
account_token: 61c3acef-3c2c-4d61-9352-941397b92ca3
card_token: 16a410c9-7f5c-43e9-8108-bb8a72c063f7
tokenization_channel: DIGITAL_WALLET
created_at: '2023-09-13T15:30:11.948371'
events:
- created_at: '2023-09-13T16:05:09.893241'
result: TOKEN_ACTIVATED
token: a690b617-d3d4-4976-82f6-901f817ad98a
type: TOKENIZATION_UPDATED
- created_at: '2023-09-13T16:01:13.643241'
result: APPROVED
token: 2b2a1038-45f3-42e4-98bb-e745be3f1de1
type: TOKENIZATION_AUTHORIZATION
status: ACTIVE
token: 3e9a10da-11be-4a62-a510-d43548bfcec1
token_requestor_name: APPLE_PAY
token_unique_reference: DM4MMC0000332872ef1029f38fa0184b5c9260383da192b22
dpan: '5489123487251234'
device_id: ba6f05c312d4a5789b2e04f05c1f9d3b81GJ4AG1
payment_account_reference_id: 50019T0AL7DEFGJ4AGGT8BQDOABCD
updated_at: '2023-09-13T16:05:09.893241'
properties:
account_token:
description: Account token
example: 00000000-0000-0000-0000-000000000002
type: string
card_token:
description: Card token
example: 00000000-0000-0000-0000-000000000001
type: string
created:
description: Created date
example: '2020-01-01T00:00:00Z'
format: date-time
type: string
tokenization:
$ref: '#/components/schemas/tokenization'
required:
- account_token
- card_token
- created
- tokenization
type: object
three-ds-decisioning:
title: 3DS Decision Response object
type: object
description: Information on whether the Authentication should be approved, declined or challenged.
properties:
three_ds_authentication_decision:
type: string
description: >-
* `APPROVE` - Approve the 3DS Transaction and proceed to Authorization
* `DECLINE` - Decline the 3DS Transaction ending the transaction
* `CHALLENGE_REQUESTED` - Conditional Approval for the 3DS Transaction where a follow-up Challenge
will be triggered to further authenticate the Cardholder
enum:
- APPROVE
- DECLINE
- CHALLENGE_REQUESTED
oob_url:
type: string
description: >-
URL which may be used in the presentation of a 3DS Challenge UI to the cardholder. This value will
be used by the ACS as the OOB App URL. When applicable, this URL may be used for automatic app
switching or rendered directly as an element in the Challenge UI.
This field is only used with CHALLENGE_REQUESTED decision and when customer orchestrates the 3DS
challenge on their own.
required:
- three_ds_authentication_decision
bank_account_api_response_unlinked:
title: Bank Account Api Response
type: object
properties:
token:
description: >-
A globally unique identifier for this record of an external bank account association. If a program
links an external bank account to more than one end-user or to both the program and the end-user,
then Lithic will return each record of the association
type: string
format: uuid
owner:
description: >-
Legal Name of the business or individual who owns the external account. This will appear in
statements
type: string
routing_number:
description: Routing Number
type: string
last_four:
description: The last 4 digits of the bank account. Derived by Lithic from the account number passed
type: string
name:
description: The nickname for this External Bank Account
type:
- string
- 'null'
currency:
description: currency of the external account 3-character alphabetic ISO 4217 code
type: string
country:
description: >-
The country that the bank account is located in using ISO 3166-1. We will only accept USA bank
accounts e.g., USA
type: string
account_token:
description: >-
Indicates which Lithic account the external account is associated with. For external accounts that
are associated with the program, account_token field returned will be null
type:
- string
- 'null'
format: uuid
created:
description: An ISO 8601 string representing when this funding source was added to the Lithic account.
type: string
format: date-time
company_id:
description: Optional field that helps identify bank accounts in receipts
type:
- string
- 'null'
dob:
description: Date of Birth of the Individual that owns the external bank account
title: Date of Birth
type:
- string
- 'null'
format: date
doing_business_as:
description: Doing Business As
type:
- string
- 'null'
user_defined_id:
description: User Defined ID
title: User Defined ID
type:
- string
- 'null'
verification_failed_reason:
description: >-
Optional free text description of the reason for the failed verification. For ACH micro-deposits
returned, this field will display the reason return code sent by the ACH network
type:
- string
- 'null'
verification_attempts:
description: The number of attempts at verification
type: integer
financial_account_token:
description: The financial account token of the operating account to fund the micro deposits
type:
- string
- 'null'
format: uuid
type:
description: Account Type
$ref: '#/components/schemas/account_type'
verification_method:
title: Verification Method
description: Verification Method
type: string
enum:
- MANUAL
- MICRO_DEPOSIT
- PLAID
- PRENOTE
owner_type:
title: Owner Type
description: Owner Type
type: string
enum:
- BUSINESS
- INDIVIDUAL
state:
description: Account State
$ref: '#/components/schemas/account_state'
x-stainless-naming:
java:
type_name: State
verification_state:
description: Verification State
$ref: '#/components/schemas/verification_state'
address:
description: Address
oneOf:
- type: 'null'
- $ref: '#/components/schemas/external_bank_account_address'
required:
- token
- type
- verification_method
- owner_type
- owner
- state
- verification_state
- routing_number
- last_four
- currency
- country
- created
- verification_attempts
responses:
Unauthorized:
content:
application/json:
schema:
$ref: '#/components/schemas/error'
description: >
| | |
|---|---|
| User has not been authenticated | Invalid or missing API key |
| API key is not active | The API key used is no longer active |
| Could not find API key | The API key provided is not associated with any user |
| Please provide API key in Authorization header | The Authorization header is not in the request |
| Please provide API key in the form Authorization: [api-key] | The Authorization header is not
formatted properly |
| Insufficient privileges. Issuing API key required | Write access requires an Issuing API key. Reach
out at [lithic.com/contact](https://lithic.com/contact) |
| Insufficient privileges to create virtual cards. | Creating virtual cards requires an additional
privilege | Reach out at [lithic.com/contact](https://lithic.com/contact) |
TooManyRequests:
content:
application/json:
schema:
$ref: '#/components/schemas/error'
description: |
Client has exceeded the number of allowed requests in a given time period.
| | |
|---|---|
| Rate limited, too many requests per second | User has exceeded their per second rate limit |
| Rate limited, reached daily limit | User has exceeded their daily rate limit |
| Rate limited, too many keys tried | One IP has queried too many different API keys |
BadRequest:
content:
application/json:
schema:
$ref: '#/components/schemas/error'
description: A parameter in the query given in the request does not match the valid queries for the endpoint.
NotFound:
content:
application/json:
schema:
$ref: '#/components/schemas/error'
description: The specified resource was not found.
UnprocessableEntity:
content:
application/json:
schema:
$ref: '#/components/schemas/error'
description: Unprocessable entity.
Conflict:
content:
application/json:
schema:
$ref: '#/components/schemas/error'
description: The request could not be completed due to a conflict with the current state of the target resource.
Forbidden:
content:
application/json:
schema:
$ref: '#/components/schemas/error'
description: |
Client is not authorized to call the endpoint
responses-BadRequest:
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
responses-NotFound:
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
AuthRule:
description: Auth Rule
content:
application/json:
schema:
$ref: '#/components/schemas/auth-rule'
SimulateAuthorizationFailure:
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/error'
- properties:
token:
description: A unique token to reference this transaction.
example: b68ba424-ab69-4cbc-a946-30d90181b621
format: uuid
type: string
type: object
description: Unprocessable Entity.
webhooks:
account_holder.created:
post:
description: Occurs when a new account_holder is created.
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: account_holder.created
example: account_holder.created
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/account-holder-created'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: account_holder.created
tags:
- Event Types
account_holder.updated:
post:
description: Occurs when an account_holder is updated.
requestBody:
content:
application/json:
examples:
kybExample:
summary: KYB Payload Example
value:
event_type: account_holder.updated
token: 00000000-0000-0000-0000-000000000001
update_request:
business_entity:
government_id: 111-23-1413
legal_business_name: Acme, Inc.
phone_numbers:
- '+15555555555'
address:
address1: 123 Main St
city: Anytown
country: USA
state: CA
postal_code: '61023'
control_person:
address:
address1: 451 New Forest Way
city: Springfield
country: USA
state: IL
postal_code: '68022'
website_url: https://www.mynewbusiness.com
kycExample:
summary: KYC Payload Example
value:
event_type: account_holder.updated
token: 00000000-0000-0000-0000-000000000001
update_request:
individual:
address:
address1: 451 New Forest Way
city: Springfield
country: USA
state: IL
postal_code: '68022'
phone_number: '+15555555555'
first_name: John
last_name: Appleseed
legacyExample:
summary: Legacy Payload Example
value:
event_type: account_holder.updated
business_account_token: null
created: '2023-09-26 16:41:40.530938'
email: john@lithic.com
external_id: null
first_name: John
last_name: Appleseed
phone_number: '+15555555555'
token: 00000000-0000-0000-0000-000000000001
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: account_holder.updated
example: account_holder.updated
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/account-holder-updated'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: account_holder.updated
tags:
- Event Types
account_holder.verification:
post:
description: Occurs when an asynchronous account_holder's verification is completed.
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: account_holder.verification
example: account_holder.verification
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/account-holder-verification'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: account_holder.verification
tags:
- Event Types
account_holder_document.updated:
post:
description: Occurs when an account holder's document upload status has been updated
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: account_holder_document.updated
example: account_holder_document.updated
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/account-holder-document-updated'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: account_holder_document.updated
tags:
- Event Types
card_authorization.approval_request:
post:
description: Auth Stream Access Request
parameters:
- $ref: '#/components/parameters/webhookId'
- $ref: '#/components/parameters/webhookTimestamp'
- $ref: '#/components/parameters/webhookSignature'
requestBody:
content:
application/json:
schema:
allOf:
- type: object
properties:
event_type:
type: string
const: card_authorization.approval_request
example: card_authorization.approval_request
required:
- event_type
- $ref: '#/components/schemas/asa-request'
responses:
'200':
description: Return a HTTP 200 status to indicate that the ASA responder was able to handle the request.
content:
application/json:
schema:
$ref: '#/components/schemas/asa-response'
5XX:
description: >-
Return a HTTP 5XX response to indicate processing failure. This will cause Lithic to immediately
retry the request once.
summary: Auth Stream Access Request
tags:
- Auth Stream Access (ASA)
auth_rules.backtest_report.created:
post:
description: Auth Rules backtest report created.
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: auth_rules.backtest_report.created
example: auth_rules.backtest_report.created
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/backtest-report'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: auth_rules.backtest_report.created
tags:
- Event Types
balance.updated:
post:
description: Financial Account Balance Update
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: balance.updated
example: balance.updated
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/balance-updated'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: balance.updated
tags:
- Event Types
book_transfer_transaction.created:
post:
description: Occurs when a book transfer transaction is created.
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: book_transfer_transaction.created
example: book_transfer_transaction.created
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/book-transfer-transaction-created'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: book_transfer_transaction.created
tags:
- Event Types
book_transfer_transaction.updated:
post:
description: Occurs when a book transfer transaction is updated.
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: book_transfer_transaction.updated
example: book_transfer_transaction.updated
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/book-transfer-transaction-updated'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: book_transfer_transaction.updated
tags:
- Event Types
card.created:
post:
description: Occurs when a new card is created.
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: card.created
example: card.created
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/card-created'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: card.created
tags:
- Event Types
card.converted:
post:
description: Occurs when a card is converted from virtual to physical cards.
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: card.converted
example: card.converted
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/card-converted'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: card.converted
tags:
- Event Types
card.renewed:
post:
description: Occurs when a card is renewed.
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: card.renewed
example: card.renewed
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/card-renewed'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: card.renewed
tags:
- Event Types
card.reissued:
post:
description: Occurs when a card is reissued.
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: card.reissued
example: card.reissued
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/card-reissued'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: card.reissued
tags:
- Event Types
card.shipped:
post:
description: Occurs when a card is shipped.
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: card.shipped
example: card.shipped
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/card-shipped'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: card.shipped
tags:
- Event Types
card.updated:
post:
description: Occurs when a card is updated.
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: card.updated
example: card.updated
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/card-updated'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: card.updated
tags:
- Event Types
card_transaction.updated:
post:
description: Occurs when a card transaction happens.
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: card_transaction.updated
example: card_transaction.updated
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/card_transaction'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: card_transaction.updated
tags:
- Event Types
card_transaction.enhanced_data.created:
post:
description: Occurs when L2/L3 enhanced commercial data is processed for a transaction event.
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: card_transaction.enhanced_data.created
example: card_transaction.enhanced_data.created
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/card-transaction-enhanced-data-created'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: card_transaction.enhanced_data.created
tags:
- Event Types
card_transaction.enhanced_data.updated:
post:
description: Occurs when L2/L3 enhanced commercial data is reprocessed for a transaction event.
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: card_transaction.enhanced_data.updated
example: card_transaction.enhanced_data.updated
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/card-transaction-enhanced-data-updated'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: card_transaction.enhanced_data.updated
tags:
- Event Types
digital_wallet.tokenization_approval_request:
post:
description: >-
Tokenization Customer Decisioning Request. Use `tokenization.approval_request` for notification
webhooks.
parameters:
- $ref: '#/components/parameters/webhookId'
- $ref: '#/components/parameters/webhookTimestamp'
- $ref: '#/components/parameters/webhookSignature'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/digital-wallet-tokenization-approval-request'
responses:
'200':
description: >-
Return a HTTP 200 status to indicate that the Tokenization Responder was able to handle the
request.
content:
application/json:
schema:
$ref: '#/components/schemas/tokenization-decisioning-response'
summary: Tokenization Decisioning Request
tags:
- Tokenization
digital_wallet.tokenization_result:
post:
description: |-
Occurs when a tokenization request succeeded or failed.
This event will be deprecated in the future. We recommend using `tokenization.result` instead.
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: digital_wallet.tokenization_result
example: digital_wallet.tokenization_result
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/digital-wallet-tokenization-result'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: digital_wallet.tokenization_result
tags:
- Event Types
digital_wallet.tokenization_two_factor_authentication_code:
post:
description: >-
Occurs when a tokenization request 2FA code is sent to the Lithic customer for self serve delivery.
This event will be deprecated in the future. We recommend using
`tokenization.two_factor_authentication_code` instead.
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: digital_wallet.tokenization_two_factor_authentication_code
example: digital_wallet.tokenization_two_factor_authentication_code
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/digital-wallet-tokenization-two-factor-authentication-code'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: digital_wallet.tokenization_two_factor_authentication_code
tags:
- Event Types
digital_wallet.tokenization_two_factor_authentication_code_sent:
post:
description: >-
Occurs when a tokenization request 2FA code is sent to our downstream messaging providers for
delivery.
This event will be deprecated in the future. We recommend using
`tokenization.two_factor_authentication_code_sent` instead.
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: digital_wallet.tokenization_two_factor_authentication_code_sent
example: digital_wallet.tokenization_two_factor_authentication_code_sent
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/digital-wallet-tokenization-two-factor-authentication-code-sent'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: digital_wallet.tokenization_two_factor_authentication_code_sent
tags:
- Event Types
digital_wallet.tokenization_updated:
post:
description: |-
Occurs when a tokenization's status has changed.
This event will be deprecated in the future. We recommend using `tokenization.updated` instead.
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: digital_wallet.tokenization_updated
example: digital_wallet.tokenization_updated
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/digital-wallet-tokenization-updated'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: digital_wallet.tokenization_updated
tags:
- Event Types
dispute.updated:
post:
description: Occurs when a dispute is updated.
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: dispute.updated
example: dispute.updated
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/dispute-updated'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: dispute.updated
tags:
- Event Types
dispute_evidence.upload_failed:
post:
description: Occurs when a dispute evidence upload fails.
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: dispute_evidence.upload_failed
example: dispute_evidence.upload_failed
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/dispute-evidence-upload-failed'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: dispute_evidence.upload_failed
tags:
- Event Types
external_bank_account.created:
post:
description: Occurs when an external bank account is created.
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: external_bank_account.created
example: external_bank_account.created
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/bank_account_api_response'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: external_bank_account.created
tags:
- Event Types
external_bank_account.updated:
post:
description: Occurs when an external bank account is updated.
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: external_bank_account.updated
example: external_bank_account.updated
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/bank_account_api_response'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: external_bank_account.updated
tags:
- Event Types
external_payment.created:
post:
description: Occurs when an external payment is created.
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: external_payment.created
example: external_payment.created
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/external_payment_response'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: external_payment.created
tags:
- Event Types
external_payment.updated:
post:
description: Occurs when an external payment is updated.
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: external_payment.updated
example: external_payment.updated
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/external_payment_response'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: external_payment.updated
tags:
- Event Types
financial_account.created:
post:
description: Occurs when a financial account is created.
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: financial_account.created
example: financial_account.created
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/financial-account-response'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: financial_account.created
tags:
- Event Types
financial_account.updated:
post:
description: Occurs when a financial account is updated.
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: financial_account.updated
example: financial_account.updated
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/financial-account-response'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: financial_account.updated
tags:
- Event Types
funding_event.created:
post:
description: Occurs when a funding event is created.
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: funding_event.created
example: funding_event.created
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/funding_events_created_webhook'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: funding_event.created
tags:
- Event Types
loan_tape.created:
post:
description: Occurs when a loan tape is created.
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: loan_tape.created
example: loan_tape.created
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/loan_tape_response'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: loan_tape.created
tags:
- Event Types
loan_tape.updated:
post:
description: Occurs when a loan tape is updated.
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: loan_tape.updated
example: loan_tape.updated
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/loan_tape_response'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: loan_tape.updated
tags:
- Event Types
management_operation.created:
post:
description: Occurs when an management operation is created.
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: management_operation.created
example: management_operation.created
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/management_operation_transaction'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: management_operation.created
tags:
- Event Types
management_operation.updated:
post:
description: Occurs when an management operation is updated.
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: management_operation.updated
example: management_operation.updated
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/management_operation_transaction'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: management_operation.updated
tags:
- Event Types
internal_transaction.created:
post:
description: Occurs when an internal adjustment is created.
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: internal_transaction.created
example: internal_transaction.created
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/internal_adjustment_transaction'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: internal_transaction.created
tags:
- Event Types
internal_transaction.updated:
post:
description: Occurs when an internal adjustment is updated.
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: internal_transaction.updated
example: internal_transaction.updated
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/internal_adjustment_transaction'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: internal_transaction.updated
tags:
- Event Types
network_total.created:
post:
description: Occurs when a network total is created.
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: network_total.created
example: network_total.created
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/network_total'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: network_total.created
tags:
- Event Types
network_total.updated:
post:
description: Occurs when a network total is updated.
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: network_total.updated
example: network_total.updated
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/network_total'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: network_total.updated
tags:
- Event Types
payment_transaction.created:
post:
description: Occurs when a payment transaction is created.
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: payment_transaction.created
example: payment_transaction.created
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/payment-transaction-created'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: payment_transaction.created
tags:
- Event Types
payment_transaction.updated:
post:
description: Occurs when a payment transaction is updated.
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: payment_transaction.updated
example: payment_transaction.updated
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/payment-transaction-updated'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: payment_transaction.updated
tags:
- Event Types
settlement_report.updated:
post:
description: Occurs when a settlement report is created or updated.
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: settlement_report.updated
example: settlement_report.updated
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/settlement-report'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: settlement_report.updated
tags:
- Event Types
statements.created:
post:
description: Occurs when a statement has been created
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: statements.created
example: statements.created
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/statements_created_webhook'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: statements.created
tags:
- Event Types
three_ds_authentication.created:
post:
description: Occurs when a 3DS authentication is created.
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: three_ds_authentication.created
example: three_ds_authentication.created
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/authentication'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: three_ds_authentication.created
tags:
- Event Types
three_ds_authentication.updated:
post:
description: Occurs when a 3DS authentication is updated (eg. challenge is completed).
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: three_ds_authentication.updated
example: three_ds_authentication.updated
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/authentication'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: three_ds_authentication.updated
tags:
- Event Types
three_ds_authentication.challenge:
post:
description: >-
The `three_ds_authentication.challenge` event. Upon receiving this request, the Card Program should
issue its own challenge to the cardholder. After a cardholder challenge is successfully completed, the
Card Program needs to respond back to Lithic by call to
[/v1/three_ds_decisioning/challenge_response](https://docs.lithic.com/reference/post_v1-three-ds-decisioning-challenge-response).
Then the cardholder must navigate back to the merchant checkout flow to complete the transaction. Some
merchants will include an `app_requestor_url` for app-based purchases; Lithic recommends triggering a
redirect to that URL after the cardholder completes an app-based challenge.
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: three_ds_authentication.challenge
example: three_ds_authentication.challenge
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/challenge-event'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: three_ds_authentication.challenge
tags:
- Event Types
tokenization.approval_request:
post:
description: Occurs when a tokenization approval request is made.
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: tokenization.approval_request
example: tokenization.approval_request
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/tokenization-approval-request'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: tokenization.approval_request
tags:
- Event Types
tokenization.result:
post:
description: Occurs when a tokenization request succeeded or failed.
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: tokenization.result
example: tokenization.result
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/tokenization-result'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: tokenization.result
tags:
- Event Types
tokenization.two_factor_authentication_code:
post:
description: Occurs when a tokenization request 2FA code is sent to the Lithic customer for self serve delivery.
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: tokenization.two_factor_authentication_code
example: tokenization.two_factor_authentication_code
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/tokenization-two-factor-authentication-code'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: tokenization.two_factor_authentication_code
tags:
- Event Types
tokenization.two_factor_authentication_code_sent:
post:
description: >-
Occurs when a tokenization request 2FA code is sent to our downstream messaging providers for
delivery.
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: tokenization.two_factor_authentication_code_sent
example: tokenization.two_factor_authentication_code_sent
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/tokenization-two-factor-authentication-code-sent'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: tokenization.two_factor_authentication_code_sent
tags:
- Event Types
tokenization.updated:
post:
description: Occurs when a tokenization's status has changed.
requestBody:
content:
application/json:
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: tokenization.updated
example: tokenization.updated
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/tokenization-updated'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: tokenization.updated
tags:
- Event Types
three_ds_authentication.approval_request:
post:
description: >-
Webhook for Card Programs to decision on 3DS Authentication Request. See
https://docs.lithic.com/docs/3ds-decisioning for more details.
summary: 3DS Decisioning Request
requestBody:
content:
application/json:
schema:
allOf:
- type: object
properties:
event_type:
type: string
const: three_ds_authentication.approval_request
example: three_ds_authentication.approval_request
required:
- event_type
- $ref: '#/components/schemas/authentication'
responses:
'200':
description: Information on whether the Request was Approved/Declined and if a Challenge should be created.
content:
application/json:
schema:
$ref: '#/components/schemas/three-ds-decisioning'
tags:
- 3DS
dispute_transaction.created:
post:
description: Occurs when a new dispute transaction is created
requestBody:
content:
application/json:
examples:
disputeCreated:
summary: Dispute Transaction Created Example
value:
event_type: dispute_transaction.created
case_id: ROL12345
token: 123e4567-e89b-12d3-a456-426614174000
card_token: 78ddee49-4558-4a79-80ce-339e12cc141c
account_token: 82d7c408-2bbb-4f63-889a-8a2a2b1601af
network: VISA
currency: USD
created: '2024-02-07T10:00:00Z'
updated: '2024-02-07T10:00:00Z'
merchant:
acceptor_id: '174030075991'
acquiring_institution_id: '191231'
descriptor: COFFEE SHOP
mcc: '5812'
city: NEW YORK
state: NY
country: USA
transaction_series:
type: DISPUTE
related_transaction_token: 98765432-e89b-12d3-a456-426614174000
related_transaction_event_token: 7063f2ae-e806-44dd-9b1f-07e5df61e9e2
liability_allocation:
original_amount: 100000
recovered_amount: 0
written_off_amount: 0
denied_amount: 0
remaining_amount: 100000
disposition: null
status: OPEN
events:
- token: 7063f2ae-e806-44dd-9b1f-07e5df61e9e2
type: WORKFLOW
created: '2024-02-07T10:00:00Z'
data:
stage: CLAIM
type: WORKFLOW
action: OPENED
reason: Not Sent
amount: 100000
disposition: null
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: dispute_transaction.created
example: dispute_transaction.created
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/dispute'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: dispute_transaction.created
tags:
- Event Types
dispute_transaction.updated:
post:
description: Occurs when a dispute transaction is updated
requestBody:
content:
application/json:
examples:
disputeUpdated:
summary: Dispute Transaction Updated Example
value:
event_type: dispute_transaction.updated
case_id: ROL12345
token: 123e4567-e89b-12d3-a456-426614174000
card_token: 78ddee49-4558-4a79-80ce-339e12cc141c
account_token: 82d7c408-2bbb-4f63-889a-8a2a2b1601af
network: VISA
currency: USD
created: '2024-02-07T10:00:00Z'
updated: '2024-02-09T10:00:00Z'
merchant:
acceptor_id: '174030075991'
acquiring_institution_id: '191231'
descriptor: COFFEE SHOP
mcc: '5812'
city: NEW YORK
state: NY
country: USA
transaction_series:
type: DISPUTE
related_transaction_token: 98765432-e89b-12d3-a456-426614174000
related_transaction_event_token: 7063f2ae-e806-44dd-9b1f-07e5df61e9e2
liability_allocation:
original_amount: 100000
recovered_amount: 100000
written_off_amount: 0
denied_amount: 0
remaining_amount: 0
disposition: null
status: OPEN
events:
- token: 7063f2ae-e806-44dd-9b1f-07e5df61e9e2
type: WORKFLOW
created: '2024-02-07T10:00:00Z'
data:
stage: CLAIM
type: WORKFLOW
action: OPENED
reason: Not Sent
amount: 100000
disposition: null
- token: 5b4c53dd-f21d-40f6-bd16-37579b07d3d3
type: CARDHOLDER_LIABILITY
created: '2024-02-07T10:30:00Z'
data:
type: CARDHOLDER_LIABILITY
action: PROVISIONAL_CREDIT_GRANTED
amount: 100000
reason: Provisional Credit
- token: 23189e39-f3d3-4d14-bcdf-9c1c71135c17
type: FINANCIAL
created: '2024-02-09T10:00:00Z'
data:
stage: CHARGEBACK
type: FINANCIAL
amount: 100000
polarity: CREDIT
schema:
allOf:
- properties:
event_type:
description: The type of event that occurred.
const: dispute_transaction.updated
example: dispute_transaction.updated
type: string
type: object
required:
- event_type
- $ref: '#/components/schemas/dispute'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully
summary: dispute_transaction.updated
tags:
- Event Types
security:
- ApiKeyAuth: []