openapi: 3.0.3 info: title: Lithic 3DS Statements API description: The Lithic API is a card issuing and issuer-processor platform for issuing virtual and physical cards, authorizing and clearing transactions, moving money across ledgered financial accounts, and managing the full card lifecycle - KYC/KYB account holder onboarding, authorization rules and real-time Auth Stream Access (ASA) decisioning, disputes, tokenization into digital wallets, 3DS authentication, ACH payments, book transfers, external payments, settlement reporting, and fraud/transaction monitoring. This document curates the real, published Lithic OpenAPI 3.1 definitions (https://github.com/lithic-com/lithic-openapi) into the endpoint surface referenced by this apis.yml, expressed as OpenAPI 3.0.3 with lightweight response schemas. Requests are authenticated with an API key sent as the raw value of the Authorization header (not a Bearer token). version: 1.0.0 contact: name: Lithic url: https://www.lithic.com license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0.txt servers: - url: https://api.lithic.com description: Production - url: https://sandbox.lithic.com description: Sandbox (mirrors production functionality) security: - ApiKeyAuth: [] tags: - name: Statements description: Financial account statements, line items, and loan tapes for credit products. paths: /v1/financial_accounts/{financial_account_token}/statements: get: operationId: getStatements tags: - Statements summary: List statements description: List the statements for a given financial account. parameters: - name: financial_account_token in: path required: true description: Globally unique identifier for financial account. schema: type: string responses: '200': description: Successful response. content: application/json: schema: $ref: '#/components/schemas/Statements' '401': $ref: '#/components/responses/Unauthorized' '422': $ref: '#/components/responses/ValidationError' /v1/financial_accounts/{financial_account_token}/statements/{statement_token}: get: operationId: getStatement tags: - Statements summary: Get statement by token description: Get a specific statement for a given financial account. parameters: - name: financial_account_token in: path required: true description: Globally unique identifier for financial account. schema: type: string - name: statement_token in: path required: true description: Globally unique identifier for statements. schema: type: string responses: '200': description: Successful response. content: application/json: schema: $ref: '#/components/schemas/Statements' '401': $ref: '#/components/responses/Unauthorized' '422': $ref: '#/components/responses/ValidationError' /v1/financial_accounts/{financial_account_token}/statements/{statement_token}/line_items: get: operationId: getStatementLineItems tags: - Statements summary: List line items for a statement description: List the line items for a given statement within a given financial account. parameters: - name: financial_account_token in: path required: true description: Globally unique identifier for financial account. schema: type: string - name: statement_token in: path required: true description: Globally unique identifier for statements. schema: type: string responses: '200': description: Successful response. content: application/json: schema: $ref: '#/components/schemas/Statements' '401': $ref: '#/components/responses/Unauthorized' '422': $ref: '#/components/responses/ValidationError' /v1/financial_accounts/{financial_account_token}/loan_tapes: get: operationId: getLoanTapes tags: - Statements summary: List loan tapes description: List the loan tapes for a given financial account. parameters: - name: financial_account_token in: path required: true description: Globally unique identifier for financial account. schema: type: string responses: '200': description: Successful response. content: application/json: schema: $ref: '#/components/schemas/Statements' '401': $ref: '#/components/responses/Unauthorized' '422': $ref: '#/components/responses/ValidationError' /v1/financial_accounts/{financial_account_token}/loan_tapes/{loan_tape_token}: get: operationId: getLoanTape tags: - Statements summary: Get loan tape by token description: Get a specific loan tape for a given financial account. parameters: - name: financial_account_token in: path required: true description: Globally unique identifier for financial account. schema: type: string - name: loan_tape_token in: path required: true description: Globally unique identifier for loan tape. schema: type: string responses: '200': description: Successful response. content: application/json: schema: $ref: '#/components/schemas/Statements' '401': $ref: '#/components/responses/Unauthorized' '422': $ref: '#/components/responses/ValidationError' /v1/financial_accounts/{financial_account_token}/loan_tape_configuration: get: operationId: getLoanTapeConfiguration tags: - Statements summary: Get loan tape configuration description: Get the loan tape configuration for a given financial account. parameters: - name: financial_account_token in: path required: true description: Globally unique identifier for financial account. schema: type: string responses: '200': description: Successful response. content: application/json: schema: $ref: '#/components/schemas/Statements' '401': $ref: '#/components/responses/Unauthorized' '422': $ref: '#/components/responses/ValidationError' /v1/financial_accounts/{financial_account_token}/interest_tier_schedule: get: operationId: listInterestTierSchedules tags: - Statements summary: List interest tier schedules 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 dat' parameters: - name: financial_account_token in: path required: true description: Globally unique identifier for financial account schema: type: string responses: '200': description: Successful response. content: application/json: schema: $ref: '#/components/schemas/Statements' '401': $ref: '#/components/responses/Unauthorized' '422': $ref: '#/components/responses/ValidationError' post: operationId: createInterestTierSchedule tags: - Statements summary: Create interest tier schedule description: Create a new interest tier schedule entry for a supported financial account parameters: - name: financial_account_token in: path required: true description: Globally unique identifier for financial account schema: type: string requestBody: required: true content: application/json: schema: type: object additionalProperties: true responses: '200': description: Successful response. content: application/json: schema: $ref: '#/components/schemas/Statements' '401': $ref: '#/components/responses/Unauthorized' '422': $ref: '#/components/responses/ValidationError' /v1/financial_accounts/{financial_account_token}/interest_tier_schedule/{effective_date}: delete: operationId: deleteInterestTierSchedule tags: - Statements summary: Delete interest tier schedule 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: PENDI' parameters: - name: effective_date in: path required: true description: Effective date in ISO format (YYYY-MM-DD) schema: type: string - name: financial_account_token in: path required: true description: Globally unique identifier for financial account schema: type: string responses: '200': description: Successful response. content: application/json: schema: $ref: '#/components/schemas/Statements' '401': $ref: '#/components/responses/Unauthorized' '422': $ref: '#/components/responses/ValidationError' get: operationId: getInterestTierSchedule tags: - Statements summary: Get interest tier schedule description: Get a specific interest tier schedule by effective date parameters: - name: effective_date in: path required: true description: Effective date in ISO format (YYYY-MM-DD) schema: type: string - name: financial_account_token in: path required: true description: Globally unique identifier for financial account schema: type: string responses: '200': description: Successful response. content: application/json: schema: $ref: '#/components/schemas/Statements' '401': $ref: '#/components/responses/Unauthorized' '422': $ref: '#/components/responses/ValidationError' put: operationId: updateInterestTierSchedule tags: - Statements summary: Update interest tier schedule description: Update an existing interest tier schedule parameters: - name: effective_date in: path required: true description: Effective date in ISO format (YYYY-MM-DD) schema: type: string - name: financial_account_token in: path required: true description: Globally unique identifier for financial account schema: type: string requestBody: required: true content: application/json: schema: type: object additionalProperties: true responses: '200': description: Successful response. content: application/json: schema: $ref: '#/components/schemas/Statements' '401': $ref: '#/components/responses/Unauthorized' '422': $ref: '#/components/responses/ValidationError' components: schemas: Statements: type: object description: Financial account statements, line items, and loan tapes for credit products. properties: token: type: string format: uuid description: Globally unique identifier for the object. created: type: string format: date-time additionalProperties: true responses: ValidationError: description: The request failed validation. Unauthorized: description: Missing or invalid API key. securitySchemes: ApiKeyAuth: type: apiKey in: header name: Authorization description: Raw API secret key value (not prefixed with "Bearer").