# Get past transactions

Endpoint: GET /people/{personId}/loans/{loanId}/migration/past-transaction
Version: 2025-03-26
Security: oauth2, bearerAuth, apiKeyHeader

## Path parameters:

  - `personId` (string, required)
    A Borrower's unique identifier, tied to a person or a business. Can be Peach or a lender's external identifier.

  - `loanId` (string, required)
    The unique identifier of the Loan we wish to retrieve. Can be
Peach or lender's external identifier.

## Query parameters:

  - `status` (array)

  - `paymentInstrumentId` (string)
    The payment instrument identifier.

  - `transactionType` (string)

  - `serviceCreditTypes` (array)

  - `toEffectiveDate` (string)
    Last day for which an object's effective date must match

  - `fromEffectiveDate` (string)
    First day for which an object's effective date must match

  - `limit` (integer)
    The maximum count of results to retrieve.

  - `startingAfter` (string)
    Return results starting after the provided object identifier.

  - `endingBefore` (string)
    Return results ending before the provided object identifier.

  - `sortBy` (array)
    The data attributes by which to sort the results.

## Response 200 fields (application/json):

  - `count` (integer)
    Number of items returned by the current request.

  - `nextUrl` (string)
    URL of the next set of results.

  - `previousUrl` (string)
    URL of the previous set of results.

  - `status` (integer)
    HTTP status code.

  - `total` (integer)
    Total number of items in this result.

  - `data` (array)

  - `data.migration` (object)
    Transaction migration related details. This object:
- Can be used only for transactions with an effective date before the "migration cutoff date".
- Can be used for lines that are migrated from another system to Peach. Don't use it for installment loan migration.
- Allows you to pass details on how a transaction was applied/allocated to draws.

For example:
Line of credit had three draws prior to the "migration cutoff date". Balances of draws were:
- Draw A: $650
- Draw B: $70
- Draw B: $0

A payment of $120 was processed. Using this object you can tell the system that $120 was waterfalled/allocated as following:
- Draw A split: $70
- Draw B split: $50
- Draw A split: $0

If you don't pass the `migration` object, then you won't be able to make the following status changes after the "migration cutoff date":
`pending` → `failed`
`succeeded` → `failed`

  - `data.migration.drawSplitDetails` (array)
    The transaction draw level split details are useful if the lender expects failures of previous successful transactions.
When a transaction is applied on the line of credit level, it flows according to the payment waterfall configuration across
multiple draws. At least one element in the `drawSplitDetails` array is required.

  - `data.migration.drawSplitDetails.drawAllocatedAmount` (number)
    The portion/split of the transaction `actualAmount` that was applied/allocated to the `originalDrawId` draw. The sum of all
`drawAllocatedAmount` must be equal to the transaction's `amount`.
If the transaction fails after the "migration cutoff date", the system will increase the applicable "originalDrawId" draw's
non-due principal balance and replay the line.

  - `data.migration.drawSplitDetails.originalDrawId` (string)
    The draw identifier. Can be Peach or lender's external identifier.
All past transactions prior to the "migration cutoff date" will be posted on the "migration" draw. After the "migration cutoff date",
a lender can have multiple draws (e.g. Purchases, Cash Withdrawals, etc.) Use this attribute to indicate the original draw ID that
the transaction was posted on in another system. In case of transaction failure after the "migration cutoff date", the `originalDrawId`
will be used to increase the draw's "non-due principal" balance.
Transactions can be posted on the line or draw level. If the transaction was originally posted on the draw level, choose one of the
post migration draws (e.g. Purchases).

