Lithic Management Operations API

The Management Operations API from Lithic — 3 operation(s) for management operations.

OpenAPI Specification

lithic-management-operations-api-openapi.yml Raw ↑
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 3DS Management Operations API
  version: 1.0.0
servers:
- description: Sandbox environment that provides key functionality mirroring production
  url: https://sandbox.lithic.com
security:
- ApiKeyAuth: []
tags:
- name: Management Operations
paths:
  /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
components:
  schemas:
    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
    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
    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
    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
    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
    transaction_status:
      title: Transaction Status
      type: string
      enum:
      - PENDING
      - SETTLED
      - DECLINED
      - REVERSED
      - CANCELED
      - RETURNED
    detailed_results:
      title: Detailed Results
      type: string
      enum:
      - APPROVED
      - INSUFFICIENT_FUNDS
    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
    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
    transaction_result:
      title: Transaction Result
      type: string
      enum:
      - APPROVED
      - DECLINED
    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
    management_operation_direction:
      title: Management Operation Direction
      type: string
      enum:
      - CREDIT
      - DEBIT
    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
    management_operation_action_request:
      title: Management Operation Action Request
      type: object
      properties:
        memo:
          type: string
        effective_date:
          type: string
          format: date
      required:
      - effective_date
    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
  responses:
    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.
    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 |

        '
  parameters:
    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
    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
    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
    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
    pageSize:
      description: Page size (for pagination).
      in: query
      name: page_size
      schema:
        default: 50
        maximum: 100
        minimum: 1
        type: integer
  securitySchemes:
    ApiKeyAuth:
      in: header
      name: Authorization
      type: apiKey