Lorum Transactions API

The Transactions API from Lorum — 8 operation(s) for transactions.

OpenAPI Specification

lorum-transactions-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Fuse Accounts Transactions API
  description: 'Lorum (Fuse) clearing, settlement and treasury API: multi-currency accounts, payments, exchanges, transfers, customers/KYC, documents, batch payments and sandbox simulation. Harvested from the provider''s public ReadMe reference (per-operation OpenAPI definitions).'
  contact:
    name: Lorum
    url: https://docs.lorum.com
  license:
    name: Proprietary license
  version: 0.1.0
servers:
- url: https://api.fuse.me
  description: Production
- url: https://api-sandbox.fuse.me
  description: Sandbox
security:
- OAuth2: []
tags:
- name: Transactions
paths:
  /v1/transactions/batches/{batch_id}:
    get:
      tags:
      - Transactions
      summary: Get a single batch
      description: Get a single batch
      operationId: get_batch
      parameters:
      - name: batch_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Request to get batch completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Batch'
  /v1/transactions/{transaction_id}/documents:
    get:
      tags:
      - Transactions
      summary: Get linked documents for a transaction
      description: Get linked documents for a transaction
      operationId: get_documents_linked_to_transaction
      parameters:
      - name: transaction_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Successfully retrieved linked documents
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DocumentSummary'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Authentication error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Transaction not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
    post:
      tags:
      - Transactions
      summary: Link a document to a transaction
      description: Link a document to a transaction
      operationId: link_document_to_transaction
      parameters:
      - name: transaction_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LinkDocumentRequest'
        required: true
      responses:
        '200':
          description: Document successfully linked to transaction
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Authentication error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Transaction not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /v1/transactions/{transaction_id}:
    get:
      tags:
      - Transactions
      summary: Get a transaction
      description: Get a transaction
      operationId: get_transaction
      parameters:
      - name: transaction_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Successfully retrieved a transaction
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transaction'
  /v1/transactions/{transaction_id}/confirmation-letter:
    get:
      tags:
      - Transactions
      summary: Get transaction confirmation letter
      description: 'Get transaction confirmation letter

        This endpoint is used to get a transaction confirmation letter for outbound transactions.

        Confirmation letters are only available for transactions in a `submitted` or `executed` state.'
      operationId: get_transaction_confirmation_letter
      parameters:
      - name: transaction_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Transaction
          headers:
            content-disposition:
              schema:
                type: string
              description: Filename
            content-type:
              schema:
                type: string
              description: Document type
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
  /v1/transactions/batches:
    get:
      tags:
      - Transactions
      summary: List batches
      description: List batches
      operationId: list_batches
      parameters:
      - name: cursor
        in: query
        description: Optional cursor for pagination. Base64-encoded value of ListBatchesPageParams.
        required: false
        schema:
          type: string
      - name: page_size
        in: query
        description: Optional number of items to return per page. Default is typically used if not specified.
        required: false
        schema:
          type: integer
          format: int32
          minimum: 0
      - name: file_name
        in: query
        description: Optional filter to return only batches that match the entire or part of the file name.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Request to list batches completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListBatchesResponse'
  /v1/accounts/{account_id}/transactions:
    get:
      tags:
      - Transactions
      summary: List transactions for an account
      description: List transactions for an account
      operationId: list_customer_transactions
      parameters:
      - name: transaction_state
        in: query
        description: Filter transactions by state
        required: false
        schema:
          $ref: '#/components/schemas/TransactionState'
      - name: from
        in: query
        description: ISO 8601 combined date and time with time zone, that specifies the lower limit of the time window you want to fetch transactions for.
        required: false
        schema:
          type: string
          format: date-time
      - name: to
        in: query
        description: ISO 8601 combined date and time with time zone, that specifies the upper limit of the time window you want to fetch transactions for.
        required: false
        schema:
          type: string
          format: date-time
      - name: cursor
        in: query
        description: Cursor to the next page in the result set. If set all the other fields will be ignored.
        required: false
        schema:
          type:
          - string
          - 'null'
          format: string
      - name: page_size
        in: query
        description: Number of resource to return. Max 2000
        required: false
        schema:
          type: integer
          format: integer
          minimum: 0
      - name: account_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Successfully retrieved transactions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListTransactionsPagedResponse'
  /v1/transactions/batches/files:
    post:
      tags:
      - Transactions
      summary: Upload payment batch file.
      description: Upload payment batch file.
      operationId: post_batch_file
      parameters:
      - name: Idempotency-Key
        in: header
        description: Idempotency key to allow safe retrying of the operation. The value should be a unique UUID for each distinct operation. See our understanding idempotency guide for full details.
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UploadBatchFileRequest'
        required: true
      responses:
        '201':
          description: Batch file has successfully been created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UploadBatchFileResponse'
        '400':
          description: Unable to upload batch file due to bad data
  /v1/transactions:
    get:
      tags:
      - Transactions
      summary: Get all transactions across accounts
      description: Get all transactions across accounts
      operationId: public_list_all_transactions
      parameters:
      - name: batch_id
        in: query
        description: Filter transactions by batch ID
        required: false
        schema:
          type: string
          format: uuid
      - name: transaction_state
        in: query
        description: Filter transactions by state
        required: false
        schema:
          $ref: '#/components/schemas/TransactionState'
      - name: payment_type
        in: query
        description: Filter transactions payment type
        required: false
        schema:
          $ref: '#/components/schemas/PaymentTypeQuery'
      - name: customer_account_id
        in: query
        description: Filter transactions by customer account ID
        required: false
        schema:
          type: string
          format: uuid
      - name: from
        in: query
        description: ISO 8601 combined date and time with time zone, that specifies the lower limit of the time window you want to fetch transactions for.
        required: false
        schema:
          type: string
          format: date-time
      - name: to
        in: query
        description: ISO 8601 combined date and time with time zone, that specifies the upper limit of the time window you want to fetch transactions for.
        required: false
        schema:
          type: string
          format: date-time
      - name: reference
        in: query
        description: Filter transactions that match the part of the reference
        required: false
        schema:
          type: string
          format: string
      - name: external_id
        in: query
        description: Filter transactions that match the external ID
        required: false
        schema:
          type: string
          format: string
      - name: account_name
        in: query
        description: Filter transactions by account display name (substring match)
        required: false
        schema:
          type: string
          format: string
      - name: cursor
        in: query
        description: Cursor to the next page in the result set. If set all the other fields will be ignored.
        required: false
        schema:
          type:
          - string
          - 'null'
          format: string
      - name: page_size
        in: query
        description: Number of resource to return. Max 2000
        required: false
        schema:
          type: integer
          format: integer
          minimum: 0
      responses:
        '200':
          description: Successfully retrieved transactions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListTransactionsPagedResponse'
components:
  schemas:
    UploadBatchFileResponse:
      type: object
      description: Response to uploading a batch file.
      required:
      - batch_id
      properties:
        batch_id:
          type: string
          format: uuid
    UploadBatchFileRequest:
      type: object
      description: 'Request to upload a payments batch file.

        Note: `file` can contain up to 1000 payments.'
      required:
      - batch_type
      - file_name
      - file
      properties:
        batch_type:
          $ref: '#/components/schemas/BatchType'
          description: The type of batch being created.
        file:
          type: string
          format: binary
          description: CSV file contents.
        file_name:
          type: string
          description: The file name of the batch being uploaded.
    PaymentScheme:
      type: string
      enum:
      - uae_fts
      - uae_ipp
      - swift
      - fedwire
      - ach
      - sepa
      - sepa_instant
      - faster_payments
    PaymentTypeQuery:
      type: string
      enum:
      - Local
      - InternalTransfer
      - FXTransfer
      - LocalReturnPayment
      - Fee
    FxTransferTransactionState:
      type: string
      description: Internal transfer state
      enum:
      - Created
      - Submitted
      - Executed
      - Failed
      - Settled
    Address:
      type: object
      required:
      - line_1
      - country_code
      properties:
        country_code:
          type: string
          format: string
          maxLength: 2
          minLength: 2
        line_1:
          type: string
          format: string
          maxLength: 50
        line_2:
          type:
          - string
          - 'null'
          format: string
          description: '***optional*** for `AED` payments but ***mandatory*** for `USD` payments'
          maxLength: 50
        line_3:
          type:
          - string
          - 'null'
          format: string
          maxLength: 50
        line_4:
          type:
          - string
          - 'null'
          format: string
          maxLength: 50
    TransactionState:
      type: string
      description: Transaction State.
      enum:
      - Created
      - Submitted
      - Executed
      - Failed
      - Settled
    Batch:
      type: object
      required:
      - batch_id
      - file_name
      - record_count
      - status
      - created_at
      - total_instructed_amount
      - records
      properties:
        batch_id:
          type: string
          format: uuid
        created_at:
          type: string
          format: date-time
        file_name:
          type: string
        record_count:
          type: integer
          format: int32
          minimum: 0
        records:
          type: array
          items:
            $ref: '#/components/schemas/LocalPaymentRecord'
        status:
          $ref: '#/components/schemas/BatchStatus'
        total_instructed_amount:
          type: integer
          format: int64
          minimum: 0
    PurposeCode:
      type: string
      description: Enum representing different payment purposes.
      enum:
      - charity
      - commercial_investment
      - corporate_card
      - credit_card
      - dividend
      - family
      - financial_services
      - goods_sold
      - goods_bought
      - government
      - insurance
      - intergroup_transfer
      - intra_group_dividends
      - information_technology
      - leasing
      - loan_charges
      - merchant_settlement
      - mobile_wallet
      - non_resident_transfer_between_accounts
      - none
      - pension
      - personal_expenses
      - prepaid_cards
      - professional
      - rental
      - resident_transfer_between_accounts
      - salaries
      - tax
      - telecommunications
      - travel
      - utility_bill
    LocalPayment:
      type: object
      description: Payment
      required:
      - id
      - account_id
      - remitter
      - currency
      - external_reference
      - state
      - direction
      - instructed_amount
      - amount_with_fee
      - fee_amount
      - beneficiary
      - created_at
      - purpose
      properties:
        account_id:
          type: string
          format: uuid
          description: The account that the transaction applies to.
        amount_with_fee:
          type: integer
          format: int64
          description: The transaction amount including the fee char.
          minimum: 0
        authorised_at:
          type:
          - string
          - 'null'
          format: date-time
          description: When the transaction passed transaction monitoring checks.
        batch:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/transaction.Batch'
            description: 'If the payment was created from a batch file submission,

              this will contain references to the batch id and the payments

              sequence number within that batch.'
        beneficiary:
          $ref: '#/components/schemas/BeneficiaryDetails'
          description: 'When `direction` is `Inbound` it contains the account details of the remitter.

            When `direction` is `Outbound` it contains the account details of the beneficiary.'
        beneficiary_extra:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/BeneficiaryExtraDetails'
            description: 'When `direction` is `Outbound` it contains additional account details of the beneficiary.

              When `direction` is `Inbound` it is not set.'
        created_at:
          type: string
          format: date-time
          description: When the transaction was created.
        currency:
          $ref: '#/components/schemas/Currency'
          description: The transaction was made in this currency.
        direction:
          $ref: '#/components/schemas/Direction'
          description: Whether this transaction credited or debited funds in the account.
        executed_at:
          type:
          - string
          - 'null'
          format: date-time
          description: When the transaction was cleared by the bank.
        external_id:
          type:
          - string
          - 'null'
          description: The external ID set when creating the transaction.
        external_reference:
          type: string
          description: Transaction reference.
        failed_at:
          type:
          - string
          - 'null'
          format: date-time
          description: When the transaction was failed.
        failure_reason:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/PaymentFailure'
            description: Why the transaction was rejected.
        fee_amount:
          type: integer
          format: int64
          description: The fee amount charged for the payment.
          minimum: 0
        fee_source:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/FeeSourceRef'
            description: 'Where the fee was taken from.

              When `fee_amount` is 0, this field is not set.'
        id:
          type: string
          format: uuid
          description: Transaction id.
        instructed_amount:
          type: integer
          format: int64
          description: The transaction amount.
          minimum: 0
        purpose:
          $ref: '#/components/schemas/PurposeCode'
          description: The purpose of the payment (Outbound only).
        remitter:
          $ref: '#/components/schemas/RemitterDetails'
          description: The account that the transaction applies to.
        scheme:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/PaymentScheme'
            description: 'The payment scheme the payment was sent over.

              Only present if this is known.'
        state:
          $ref: '#/components/schemas/TransactionState'
          description: The state of the transaction.
        submitted_at:
          type:
          - string
          - 'null'
          format: date-time
          description: When the transaction was submitted to the bank.
    Cursor_String:
      type: object
      required:
      - size
      properties:
        next:
          type:
          - string
          - 'null'
        size:
          type: integer
          minimum: 0
    FxTransfer:
      type: object
      required:
      - id
      - account_id
      - external_reference
      - state
      - rate
      - direction
      - instructed_amount
      - currency
      - counterpart_amount
      - counterpart_currency
      - counterpart_account_id
      - created_at
      properties:
        account_id:
          type: string
          format: uuid
          description: The account that the transfer applies to.
        counterpart_account_id:
          type: string
          format: uuid
          description: 'When `direction` is `Inbound` it is the ID of the account that was debited

            When `direction` is ''Outbound'' it is the ID of the account that was credited'
        counterpart_amount:
          type: integer
          format: int64
          description: 'When `direction` is `Inbound` it is the counterpart transaction amount that was debited from the counterpart account.

            When `direction` is `Outbound` it is the counterpart transaction amount that was credited from the counterpart account.'
          minimum: 0
        counterpart_currency:
          $ref: '#/components/schemas/Currency'
          description: 'When `direction` is `Inbound` it is the currency of the counterpart transaction from counterpart account.

            When `direction` is `Outbound` it is the currency of the counterpart transaction into the counterpart account.'
        created_at:
          type: string
          format: date-time
          description: When the transaction was created.
        currency:
          $ref: '#/components/schemas/Currency'
          description: 'When `direction` is `Inbound` it is the currency for the amount credited into the account.

            When `direction` is `Outbound` it is the currency for the amount that was debited from the account.'
        direction:
          $ref: '#/components/schemas/Direction'
          description: Whether this transaction credits or debits the account.
        executed_at:
          type:
          - string
          - 'null'
          format: date-time
          description: When the transaction was cleared by the bank.
        external_reference:
          type: string
          description: User-friendly transaction reference.
        failed_at:
          type:
          - string
          - 'null'
          format: date-time
          description: When the transaction was failed.
        failure_reason:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/PaymentFailure'
            description: Why the transaction was rejected.
        id:
          type: string
          format: uuid
          description: Id of the transaction.
        instructed_amount:
          type: integer
          format: int64
          description: 'When `direction` is `Inbound` it is the amount that was credited into the account.

            When `direction` is `Outbound` it is the amount that was debited from the account.'
          minimum: 0
        rate:
          type: number
          format: float
          description: The exchange rate used for the transaction.
        state:
          $ref: '#/components/schemas/FxTransferTransactionState'
          description: Current state of the transaction.
        submitted_at:
          type:
          - string
          - 'null'
          format: date-time
          description: When the transaction was submitted to the bank.
    RemitterDetails:
      type: object
      description: Account details of the payment remitter.
      required:
      - name
      - identifier
      properties:
        identifier:
          $ref: '#/components/schemas/AccountDetailsIdentifier'
          description: External account identifier of the remitter account.
        name:
          type: string
          format: string
          description: Name of the remitter account.
          maxLength: 140
    FeeTargetRef:
      oneOf:
      - type: object
        required:
        - reference
        - type
        properties:
          reference:
            type: string
            format: uuid
          type:
            type: string
            enum:
            - Transaction
    Direction:
      type: string
      description: Transaction direction.
      enum:
      - Inbound
      - Outbound
    BeneficiaryDetails:
      type: object
      description: Account details of the payment beneficiary.
      required:
      - name
      - identifier
      properties:
        identifier:
          $ref: '#/components/schemas/AccountDetailsIdentifier'
          description: External account identifier of the beneficiary account.
        name:
          type: string
          format: string
          description: Name of the beneficiary account.
          maxLength: 140
    DocumentType:
      type: string
      description: Types of documents that can be uploaded for customers and transactions.
      enum:
      - passport
      - visa
      - national_id
      - trade_licence
      - commercial_licence
      - identity_verification_biometrics
      - incorporation_cert
      - incumbency_cert
      - memorandum_articles
      - bank_statement
      - photo
      - proof_of_address
      - regulatory_license
      - articles_of_association
      - source_of_funds
      - aml_cft_sanctions_ind_audit
      - aml_cft_sanctions_policy
      - compliance_officer_resume
      - financial_statements
      - share_certificate
      - corporate_resolution
      - wolfsberg_gcbddq
      - edd_concentration_form
      - other
    BeneficiaryExtraDetails:
      type: object
      description: Additional details of the beneficiary. It will be not set for inbound payments.
      properties:
        address:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/Address'
            description: Address of the beneficiary.
        bic_code:
          type:
          - string
          - 'null'
          format: string
          description: Bank identifier code (BIC) of the beneficiary.
    ScanDetails:
      type: object
      required:
      - sort_code
      - account_number
      properties:
        account_number:
          type: string
          format: string
          maxLength: 8
        sort_code:
          type: string
          format: string
          maxLength: 6
    InternalTransferTransactionState:
      type: string
      description: Internal transfer state
      enum:
      - Created
      - Booked
      - Failed
      - Settled
    BeneficiaryType:
      type: string
      enum:
      - individual
      - business
    Currency:
      type: string
      enum:
      - AED
      - USD
      - JOD
      - EGP
      - SAR
      - GBP
      - EUR
      - HKD
      - CNH
      - SGD
    FeeDebit:
      type: object
      required:
      - id
      - fee_target
      - amount
      - account_id
      - timestamp
      - currency
      properties:
        account_id:
          type: string
          format: uuid
        amount:
          type: integer
          format: int64
          minimum: 0
        currency:
          $ref: '#/components/schemas/Currency'
        fee_target:
          $ref: '#/components/schemas/FeeTargetRef'
        id:
          type: string
          format: uuid
        timestamp:
          type: string
          format: date-time
    Transaction:
      oneOf:
      - allOf:
        - $ref: '#/components/schemas/LocalPayment'
          description: Payment.
        - type: object
          required:
          - type
          properties:
            type:
              type: string
              enum:
              - local_payment
        description: Payment.
      - allOf:
        - $ref: '#/components/schemas/LocalReturnPayment'
          description: Payment that has been returned.
        - type: object
          required:
          - type
          properties:
            type:
              type: string
              enum:
              - local_return_payment
        description: Payment that has been returned.
      - allOf:
        - $ref: '#/components/schemas/InternalTransfer'
          description: Internal transfer - between two accounts.
        - type: object
          required:
          - type
          properties:
            type:
              type: string
              enum:
              - internal_transfer
        description: Internal transfer - between two accounts.
      - allOf:
        - $ref: '#/components/schemas/FxTransfer'
          description: Exchange transfer - between two accounts held in different currencies.
        - type: object
          required:
          - type
          properties:
            type:
              type: string
              enum:
              - f_x_transfer
        description: Exchange transfer - between two accounts held in different currencies.
      - allOf:
        - $ref: '#/components/schemas/FeeDebit'
          description: Fee debit
        - type: object
          required:
          - type
          properties:
            type:
              type: string
              enum:
              - fee_debit
        description: Fee debit
      description: Transaction Container.
    transaction.Batch:
      type: object
      required:
      - batch_id
      - batch_sequence_no
      properties:
        batch_id:
          type: string
          format: uuid
          description: Which batch the payment was created from.
        batch_sequence_no:
          type: integer
          format: int32
          description: The sequence number of the payment within that batch.
          minimum: 0
    ErrorResponse:
      type: object
      description: 'User-facing error type.


        This is the general error structure returned by all api routes.'
      required:
      - error
      - message
      - code
      properties:
        code:
          type: string
          description: Specific error code.
        error:
          type: string
          description: Soon to be deprecated.
        message:
          type: string
          description: Renaming of `error`. Human-readable description of the error.
    InternalTransfer:
      type: object
      description: Internal Transfer
      required:
      - id
      - account_id
      - currency
      - external_reference
      - state
      - direction
      - instructed_amount
      - counterpart_account_id
      - created_at
      properties:
        account_id:
          type: string
          format: uuid
          description: The account that the transfer applies to.
        counterpart_account_id:
          type: string
          format: uuid
          description: 'When `direction` is `Inbound` it contains the account id of the remitter.

            When `direction` is `Outbound` it contains the account id of the beneficiary.'
        created_at:
          type: string
          format: date-time
          description: When the transaction was created.
        currency:
          $ref: '#/components/schemas/Currency'
          description: Which currency the funds were transferred in.
        direction:
          $ref: '#/components/schemas/Direction'
          description: Whether this transaction credits or debits the account.
        external_id:
          type:
          - string
          - 'null'
          description: The external ID set when the internal transfer was created.
          maxLength: 36
        external_reference:
          type: string
          description: User-friendly transfer reference.
        failed_at:
          type:
          - string
          - 'null'
          format: date-time
          description: When the transaction failed.
        failure_reason:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/PaymentFailure'
       

# --- truncated at 32 KB (41 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/lorum/refs/heads/main/openapi/lorum-transactions-api-openapi.yml