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 - 'null' 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 explode: false 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. style: form 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 transaction_token: d4e5f6a7-b8c9-0123-defa-234567890123 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/cards/{card_token}/signals: get: operationId: getCardSignals summary: Fetch card signals description: > Returns behavioral feature state derived from a card's transaction history. These signals expose the same data used by behavioral rule attributes (e.g. `AMOUNT_Z_SCORE` with `scope: CARD`, `IS_NEW_COUNTRY` with `scope: CARD`) and custom code `TRANSACTION_HISTORY_SIGNALS` features, allowing clients to inspect feature values before writing rules and debug rule behavior. tags: - Card parameters: - name: card_token in: path required: true schema: type: string format: uuid description: The token of the card to fetch signals for. responses: '200': description: Card Signals content: application/json: schema: $ref: '#/components/schemas/signals-response' '400': $ref: '#/components/responses/components-responses-BadRequest' '403': $ref: '#/components/responses/responses-Forbidden' '404': $ref: '#/components/responses/components-responses-NotFound' /v1/accounts/{account_token}/signals: get: operationId: getAccountSignals summary: Fetch account signals description: | Returns behavioral feature state derived from an account's transaction history. These signals expose the same data used by behavioral rule attributes (e.g. `AMOUNT_Z_SCORE` with `scope: ACCOUNT`, `IS_NEW_COUNTRY` with `scope: ACCOUNT`) and custom code `TRANSACTION_HISTORY_SIGNALS` features, allowing clients to inspect feature values before writing rules and debug rule behavior. Note: 3DS fields are not available at the account scope and will be null. tags: - Account parameters: - name: account_token in: path required: true schema: type: string format: uuid description: The token of the account to fetch signals for. responses: '200': description: Account Signals content: application/json: schema: $ref: '#/components/schemas/signals-response' '400': $ref: '#/components/responses/components-responses-BadRequest' '403': $ref: '#/components/responses/responses-Forbidden' '404': $ref: '#/components/responses/components-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 five years in the future will be generated. Five years is the maximum expiration date. 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 five years in the future will be generated. Five years is the maximum expiration date. 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` - Card will be shipped as part of a bulk fulfillment order. The shipping method and timeline are inherited from the parent bulk order. enum: - 2_DAY - BULK - 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` - Card will be shipped as part of a bulk fulfillment order. The shipping method and timeline are inherited from the parent bulk order. enum: - 2_DAY - BULK - 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 five years in the future will be generated. Five years is the maximum expiration date. 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 five years in the future will be generated. Five years is the maximum expiration date. 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` - Card will be shipped as part of a bulk fulfillment order. The shipping method and timeline are inherited from the parent bulk order. enum: - 2_DAY - BULK - 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` - Card will be shipped as part of a bulk fulfillment order. The shipping method and timeline are inherited from the parent bulk order. enum: - 2_DAY - BULK - 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 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. 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 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. 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 ``` 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: >
9999999999999999
08 / 27
574
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: - AMEX - 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. `null` 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 - 'null' 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 - CARD_TRANSACTION_UPDATE 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, ACH_DEBIT_RECEIPT, or CARD_TRANSACTION_UPDATE 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: type: - 'null' - 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: type: - 'null' - 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: type: - 'null' - 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: type: - 'null' - 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: type: - 'null' - 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_DECLINE_COUNT_15M`: The number of declined transactions on the card in the trailing 15 minutes before the authorization. * `CARD_DECLINE_COUNT_1H`: The number of declined transactions on the card in the trailing hour up and until the authorization. * `CARD_DECLINE_COUNT_24H`: The number of declined 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. * `AMOUNT_Z_SCORE`: The z-score of the transaction amount relative to the entity's transaction history. Null if fewer than 30 approved transactions in the specified window. Requires `parameters.scope` and `parameters.interval`. * `AVG_TRANSACTION_AMOUNT`: The average approved transaction amount for the entity over the specified window, in cents. Requires `parameters.scope` and `parameters.interval`. * `STDEV_TRANSACTION_AMOUNT`: The standard deviation of approved transaction amounts for the entity over the specified window, in cents. Null if fewer than 30 approved transactions in the specified window. Requires `parameters.scope` and `parameters.interval`. * `IS_NEW_COUNTRY`: Whether the transaction's merchant country has not been seen in the entity's transaction history. Valid values are `TRUE`, `FALSE`. Requires `parameters.scope`. * `IS_NEW_MCC`: Whether the transaction's MCC has not been seen in the entity's transaction history. Valid values are `TRUE`, `FALSE`. Requires `parameters.scope`. * `IS_FIRST_TRANSACTION`: Whether this is the first transaction for the entity. Valid values are `TRUE`, `FALSE`. Requires `parameters.scope`. * `CONSECUTIVE_DECLINES`: The number of consecutive declined transactions for the entity over the last 30 days (rolling). Requires `parameters.scope`. Not supported for `BUSINESS_ACCOUNT` scope. * `TIME_SINCE_LAST_TRANSACTION`: The number of days since the last approved transaction for the entity. Requires `parameters.scope`. * `DISTINCT_COUNTRY_COUNT`: The number of distinct merchant countries seen in the entity's transaction history. Requires `parameters.scope`. * `IS_NEW_MERCHANT`: Whether the card acceptor ID has not been seen in the card's approved transaction history (capped at the 1000 most recently seen merchants). Valid values are `TRUE`, `FALSE`. Card-scoped only; no `parameters` required. * `THREE_DS_SUCCESS_RATE`: The 3DS authentication success rate for the card, as a percentage from 0.0 to 100.0. Card-scoped only; no `parameters` required. 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_DECLINE_COUNT_15M - CARD_DECLINE_COUNT_1H - CARD_DECLINE_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 - AMOUNT_Z_SCORE - AVG_TRANSACTION_AMOUNT - STDEV_TRANSACTION_AMOUNT - IS_NEW_COUNTRY - IS_NEW_MCC - IS_FIRST_TRANSACTION - CONSECUTIVE_DECLINES - TIME_SINCE_LAST_TRANSACTION - DISTINCT_COUNTRY_COUNT - IS_NEW_MERCHANT - THREE_DS_SUCCESS_RATE parameters: type: object description: |- Additional parameters required for transaction history signal attributes. Required when `attribute` is one of `AMOUNT_Z_SCORE`, `AVG_TRANSACTION_AMOUNT`, `STDEV_TRANSACTION_AMOUNT`, `IS_NEW_COUNTRY`, `IS_NEW_MCC`, `IS_FIRST_TRANSACTION`, `CONSECUTIVE_DECLINES`, `TIME_SINCE_LAST_TRANSACTION`, or `DISTINCT_COUNTRY_COUNT`. Not used for other attributes. properties: scope: type: string description: The entity scope to evaluate the attribute against. enum: - CARD - ACCOUNT - BUSINESS_ACCOUNT interval: type: string description: >- The time window for statistical attributes (`AMOUNT_Z_SCORE`, `AVG_TRANSACTION_AMOUNT`, `STDEV_TRANSACTION_AMOUNT`). Use `LIFETIME` for all-time history or a specific window (`7D`, `30D`, `90D`). enum: - LIFETIME - 7D - 30D - 90D 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 card-transaction-update-action: title: Card Transaction Update Action oneOf: - title: Tag Action type: object properties: type: type: string enum: - TAG description: Tag the transaction with key-value metadata key: type: string description: The key of the tag to apply to the transaction value: type: string description: The value of the tag to apply to the transaction required: - type - key - value - title: Create Case Action type: object properties: type: type: string enum: - CREATE_CASE description: Create a case for the transaction scope: type: string enum: - CARD - ACCOUNT description: The scope of the case to create queue_token: type: string format: uuid description: The token of the queue to create the case in required: - type - scope - queue_token spend-velocity-filters: title: Spend Velocity Filters allOf: - $ref: '#/components/schemas/velocity-limit-filters' - type: object properties: include_tags: type: - 'null' - object additionalProperties: type: string description: >- Tag key-value pairs to include in the velocity calculation. Only transactions matching all specified tag key-value pairs will be included in the calculated velocity. exclude_tags: type: - 'null' - object additionalProperties: type: string description: >- Tag key-value pairs to exclude from the velocity calculation. Transactions matching all specified tag key-value pairs will be excluded from the calculated velocity. conditional-card-transaction-update-action-parameters: title: Conditional Action (Card Transaction Update) Parameters type: object properties: action: description: The action to take if the conditions are met. $ref: '#/components/schemas/card-transaction-update-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`: 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. * `TRANSACTION_STATUS`: The status of the transaction. Valid values are `PENDING`, `VOIDED`, `SETTLING`, `SETTLED`, `BOUNCED`, `RETURNED`, `DECLINED`, `EXPIRED`. * `LAST_EVENT_TYPE`: The type of the most recent event on the transaction. Valid values are `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`. * `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`, or `CREDENTIAL_ON_FILE`. * `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`. * `CARD_AGE`: The age of the card in seconds at the time of the transaction. * `ACCOUNT_AGE`: The age of the account in seconds at the time of the transaction. * `SPEND_VELOCITY_COUNT`: The number of transactions matching the specified filters within the given period. Requires `parameters` with `scope`, `period`, and optional `filters`. * `SPEND_VELOCITY_AMOUNT`: The total spend amount (in cents) of transactions matching the specified filters within the given period. Requires `parameters` with `scope`, `period`, and optional `filters`. enum: - MCC - COUNTRY - CURRENCY - MERCHANT_ID - DESCRIPTOR - TRANSACTION_AMOUNT - RISK_SCORE - TRANSACTION_STATUS - LAST_EVENT_TYPE - LIABILITY_SHIFT - PAN_ENTRY_MODE - WALLET_TYPE - CARD_AGE - ACCOUNT_AGE - SPEND_VELOCITY_COUNT - SPEND_VELOCITY_AMOUNT parameters: type: object description: |- Additional parameters for spend velocity attributes. Required when `attribute` is `SPEND_VELOCITY_COUNT` or `SPEND_VELOCITY_AMOUNT`. Not used for other attributes. properties: scope: type: string description: The entity scope to evaluate the attribute against. enum: - CARD - ACCOUNT - GLOBAL period: description: The time period over which to calculate the spend velocity. $ref: '#/components/schemas/velocity-limit-period' filters: $ref: '#/components/schemas/spend-velocity-filters' 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. - `TRANSACTION_HISTORY_SIGNALS`: Behavioral feature state derived from the entity's transaction history. Requires `scope` to specify whether to load card, account, or business account history. 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 - title: Transaction History Signals Feature type: object properties: type: type: string const: TRANSACTION_HISTORY_SIGNALS scope: type: string description: The entity scope to load transaction history signals for. enum: - CARD - ACCOUNT - BUSINESS_ACCOUNT required: - type - scope 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/conditional-card-transaction-update-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-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. transaction_token: type: - string - 'null' format: uuid description: The token of the transaction associated with the event 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 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 - 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. transaction_token: type: - string - 'null' format: uuid description: The token of the transaction associated with the event 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 transaction_token: type: - string - 'null' format: uuid description: The token of the transaction that triggered the rule evaluation 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 - transaction_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 - transaction_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 - transaction_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 - transaction_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 signals-response: title: Signals Response description: >- Behavioral feature state for a card or account derived from its transaction history. Derived statistical features (averages, standard deviations, z-scores) are computed using Welford's online algorithm over approved transactions. Average fields are null when fewer than 5 approved transactions have been recorded. Standard deviation fields are null when fewer than 30 approved transactions have been recorded. 3DS fields (`three_ds_success_rate`, `three_ds_success_count`, `three_ds_total_count`) are card-scoped and will be null for account responses. Raw fields (`seen_countries`, `seen_mccs`, `approved_txn_amount_m2`, etc.) are included so clients can compute their own transaction-specific derivations, such as checking whether a new transaction's country is in `seen_countries` to determine `is_new_country`, or computing a z-score using the raw mean and M2 values. type: object properties: avg_transaction_amount: type: - number - 'null' description: >- The average approved transaction amount over the entity's lifetime, in cents. Null if fewer than 5 approved transactions have been recorded. stdev_transaction_amount: type: - number - 'null' description: >- The standard deviation of approved transaction amounts over the entity's lifetime, in cents. Null if fewer than 30 approved transactions have been recorded. approved_txn_count: type: - integer - 'null' description: The total number of approved transactions over the entity's lifetime. avg_transaction_amount_7d: type: - number - 'null' description: >- The average approved transaction amount over the last 7 days, in cents. Null if fewer than 5 approved transactions in window. stdev_transaction_amount_7d: type: - number - 'null' description: >- The standard deviation of approved transaction amounts over the last 7 days, in cents. Null if fewer than 30 approved transactions in window. approved_txn_count_7d: type: - integer - 'null' description: The number of approved transactions in the last 7 days. avg_transaction_amount_30d: type: - number - 'null' description: >- The average approved transaction amount over the last 30 days, in cents. Null if fewer than 5 approved transactions in window. stdev_transaction_amount_30d: type: - number - 'null' description: >- The standard deviation of approved transaction amounts over the last 30 days, in cents. Null if fewer than 30 approved transactions in window. approved_txn_count_30d: type: - integer - 'null' description: The number of approved transactions in the last 30 days. avg_transaction_amount_90d: type: - number - 'null' description: >- The average approved transaction amount over the last 90 days, in cents. Null if fewer than 5 approved transactions in window. stdev_transaction_amount_90d: type: - number - 'null' description: >- The standard deviation of approved transaction amounts over the last 90 days, in cents. Null if fewer than 30 approved transactions in window. approved_txn_count_90d: type: - integer - 'null' description: The number of approved transactions in the last 90 days. is_first_transaction: type: - boolean - 'null' description: >- Whether the entity has no prior transaction history. Returns true if no history is found. Null if transaction history exists but a first transaction timestamp is unavailable. time_since_last_transaction_days: type: - number - 'null' description: The number of days since the last approved transaction on the entity. three_ds_success_rate: type: - number - 'null' description: >- The 3DS authentication success rate for the card, as a percentage from 0.0 to 100.0. Null for account responses. distinct_country_count: type: - integer - 'null' description: The number of distinct merchant countries seen in the entity's transaction history. distinct_mcc_count: type: - integer - 'null' description: The number of distinct MCCs seen in the entity's transaction history. seen_countries: type: - array - 'null' items: type: string description: >- The set of merchant countries seen in the entity's transaction history. Clients can use this to determine whether a new transaction's country is novel (i.e. compute `is_new_country`). seen_mccs: type: - array - 'null' items: type: string description: >- The set of MCCs seen in the entity's transaction history. Clients can use this to determine whether a new transaction's MCC is novel (i.e. compute `is_new_mcc`). seen_merchants: type: - array - 'null' items: type: string description: >- The set of card acceptor IDs seen in the card's approved transaction history, capped at the 1000 most recently seen. Null for account responses. Clients can use this to determine whether a new transaction's merchant is novel (i.e. compute `is_new_merchant`). first_txn_at: type: - string - 'null' format: date-time description: The timestamp of the first approved transaction for the entity, in ISO 8601 format. last_txn_approved_at: type: - string - 'null' format: date-time description: The timestamp of the most recent approved transaction for the entity, in ISO 8601 format. last_cp_country: type: - string - 'null' description: >- The merchant country of the last card-present transaction. Clients can use this together with `last_cp_timestamp` to detect impossible travel. last_cp_postal_code: type: - string - 'null' description: The merchant postal code of the last card-present transaction. last_cp_timestamp: type: - string - 'null' format: date-time description: The timestamp of the last card-present transaction, in ISO 8601 format. approved_txn_amount_m2: type: - number - 'null' description: >- The Welford M2 accumulator for lifetime approved transaction amounts. Used together with `avg_transaction_amount` and `approved_txn_count` to compute the z-score of a new transaction amount (variance = M2 / (count - 1)). approved_txn_amount_m2_7d: type: - number - 'null' description: The Welford M2 accumulator for approved transaction amounts over the last 7 days. approved_txn_amount_m2_30d: type: - number - 'null' description: The Welford M2 accumulator for approved transaction amounts over the last 30 days. approved_txn_amount_m2_90d: type: - number - 'null' description: The Welford M2 accumulator for approved transaction amounts over the last 90 days. three_ds_success_count: type: - integer - 'null' description: The number of successful 3DS authentications for the card. Null for account responses. three_ds_total_count: type: - integer - 'null' description: The total number of 3DS authentication attempts for the card. Null for account responses. required: - avg_transaction_amount - stdev_transaction_amount - approved_txn_count - avg_transaction_amount_7d - stdev_transaction_amount_7d - approved_txn_count_7d - avg_transaction_amount_30d - stdev_transaction_amount_30d - approved_txn_count_30d - avg_transaction_amount_90d - stdev_transaction_amount_90d - approved_txn_count_90d - is_first_transaction - time_since_last_transaction_days - three_ds_success_rate - distinct_country_count - distinct_mcc_count - seen_countries - seen_mccs - seen_merchants - first_txn_at - last_txn_approved_at - last_cp_country - last_cp_postal_code - last_cp_timestamp - approved_txn_amount_m2 - approved_txn_amount_m2_7d - approved_txn_amount_m2_30d - approved_txn_amount_m2_90d - three_ds_success_count - three_ds_total_count 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 - 'null' 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 - 'null' 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.' oneOf: - type: 'null' - $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 - 'null' 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 - 'null' 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. BULK_PRIORITY, BULK_2_DAY, and BULK_EXPRESS are only available with Perfect Plastic Printing enum: - BULK_EXPEDITED - BULK_PRIORITY - BULK_2_DAY - BULK_EXPRESS 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. BULK_PRIORITY, BULK_2_DAY, and BULK_EXPRESS are only available with Perfect Plastic Printing enum: - BULK_EXPEDITED - BULK_PRIORITY - BULK_2_DAY - BULK_EXPRESS 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_authorization.challenge_response - 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_authorization.challenge_response: Occurs when a cardholder responds to an SMS challenge during card authorization. - 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 - PROVISIONAL_CREDIT_ACCOUNT 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' statement_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 anyOf: - type: 'null' - 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 - DELINQUENT 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' required: - has_more - data 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' override_company_name: description: Value to override the configured company name with. Can only be used if allowed to override maxLength: 512 title: Override Company Name 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: >- Array of globally unique identifiers for the financial events that comprise this settlement. Use these tokens to access detailed event-level information. 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: - AMEX - 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. For settlement records with type `CLEARING`, `FINANCIAL`, or `NON-FINANCIAL`, this references a card transaction token. For settlement records with type `CHARGEBACK`, `REPRESENTMENT`, `PREARBITRATION`, `ARBITRATION`, or `COLLABORATION`, this references the dispute transaction token. May be null for certain settlement types. 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: - AMEX - 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. `null` if the account holder is not KYC-Exempt. type: - string - 'null' 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 required: - last_four - memo - spend_limit - spend_limit_duration - state - token - type properties: last_four: description: Last four digits of the card number type: string memo: description: Customizable name to identify the card 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: ^[ -~]*$ 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 required: - last_four - memo - spend_limit - spend_limit_duration - state - token - type properties: last_four: description: Last four digits of the card number type: string memo: description: Customizable name to identify the card 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 card-authorization-challenge-response: title: Card Authorization Challenge Response examples: - event_type: card_authorization.challenge_response event_token: 00000000-0000-0000-0000-000000000001 transaction_token: 00000000-0000-0000-0000-000000000002 card_token: 00000000-0000-0000-0000-000000000003 challenge_method: SMS response: APPROVE created: '2025-07-17T07:07:29Z' completed: '2025-07-17T07:08:15Z' properties: event_type: description: Event type const: card_authorization.challenge_response example: card_authorization.challenge_response type: string event_token: description: Globally unique identifier for the event example: 00000000-0000-0000-0000-000000000001 format: uuid type: string transaction_token: description: The token of the transaction associated with the authorization event being challenged example: 00000000-0000-0000-0000-000000000002 format: uuid type: - string - 'null' card_token: description: The token of the card associated with the challenge example: 00000000-0000-0000-0000-000000000003 format: uuid type: - string - 'null' challenge_method: description: The method used to deliver the challenge to the cardholder enum: - SMS example: SMS type: string response: description: The cardholder's response to the challenge enum: - APPROVE - DECLINE example: APPROVE type: string created: description: The timestamp of when the challenge was created example: '2025-07-17T07:07:29Z' format: date-time type: string completed: description: The timestamp of when the challenge was completed example: '2025-07-17T07:08:15Z' format: date-time type: - string - 'null' required: - event_type - event_token - transaction_token - card_token - challenge_method - response - created - completed type: object 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' components-responses-BadRequest: description: Bad Request content: application/json: schema: type: object properties: error: type: string responses-Forbidden: description: Forbidden content: application/json: schema: type: object properties: error: type: string components-responses-NotFound: description: Not Found content: application/json: schema: type: object properties: error: type: string 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) card_authorization.challenge_response: post: description: Occurs when a cardholder responds to an SMS challenge during card authorization. requestBody: content: application/json: schema: allOf: - properties: event_type: description: The type of event that occurred. const: card_authorization.challenge_response example: card_authorization.challenge_response type: string type: object required: - event_type - $ref: '#/components/schemas/card-authorization-challenge-response' responses: '200': description: Return a 200 status to indicate that the data was received successfully summary: card_authorization.challenge_response tags: - Event Types 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: []