---
title: "Shift transactions"
method: POST
path: "/statements-v2/v1/accounts/{accountId}/transactions/shifts"
tags: ["Transaction shift"]
---

# Shift transactions

`POST /statements-v2/v1/accounts/{accountId}/transactions/shifts`

## Request

- Base URL: `https://sandbox.pismolabs.io`
- URL: `https://sandbox.pismolabs.io/statements-v2/v1/accounts/{accountId}/transactions/shifts`
- Auth: HTTP bearer

Shift one or more transactions between open statements. For example, a transaction can be moved from a future statement to an earlier open statement. A transaction can also be moved to a statement farther in the future. A maximum of 24 shifts are allowed per request.

This endpoint generates an [Transaction updated](https://developers.pismo.io/events/docs/transaction-update-1) event for each transaction that is shifted. After all the transactions are successfully shifted, it generates a [Transactions shifted](https://developers.pismo.io/events/docs/balance-shift-transactions-1) event.

**Note:** This endpoint requires an account token - an access token encoded with a Pismo account ID. Tokens can expire quickly, which can result in a **401 Unauthorized** message.

## Path parameters

- `accountId` integer, required

## Request body

- TransactionShiftRequestBody: Resource that represents the performed request for transactions shift.
  - `tracking_id` string: Tracking identifier. Must consist of the characters [a-z,A-Z,0-9,-,:] with a range from 1 to 128. If a client clicks the button more than once when sending the command to shift transactions, the Pismo platform could create duplicate requests. The tracking identifier enables the platform to identify duplicates and ignore them.
  - `shifts` ShiftRequestItem[]
    - `transaction_id` integer: Transaction ID
    - `new_statement_id` integer: Indicates the ID of the statement to receive the transaction. This field cannot be present along with `desired_cycle_date`.
    - `desired_cycle_date` string, date: Indicates the desired cycle date. Format is yyyy-mm-dd. The statement to be used is the one with the closest cycle closing date (either the same date or the closest one in the future). This field cannot be present along with `new_statement_id`.

## Response `200`

OK - Indicates that the server accepted the request and created the resource.

- TransactionShiftResponseBody: Resource that represents the performed request for transactions shifts
  - `transaction_statement_shift_id` integer: ID of the shift operation performed
  - `desired_cycle_date` string, date: The desired cycle date. This is only present if the shift for the transaction is based on the cycle date. Format is yyyy-mm-dd.
  - `tracking_id` string: Tracking identifier. Must consist of the characters [a-z,A-Z,0-9,-,:] with a range from 1 to 128. If a client clicks the button more than once when sending the command to shift transactions, the Pismo platform could create duplicate requests. The tracking identifier enables the platform to identify duplicates and ignore them.
  - `shifts` ShiftResponseItem[]
    - `transaction_id` integer: Transaction ID
    - `old_statement_id` integer: ID of the source statement
    - `new_statement_id` integer: Indicates the ID of the statement to receive the transaction. This field cannot be present along with `desired_cycle_date`.
    - `desired_cycle_date` string, date: The desired cycle date. This is only present if the shift for the transaction is based on the cycle date. Format is yyyy-mm-dd.

## Other responses

- `400`: Bad Request
- `404`: NOT FOUND - Some transactions were not found for the account ID and this organization.
- `500`: Internal Server Error

---

[API](https://skmtc.dev/pismo/apis/revolving-credit-statements.md) - [All operations](https://skmtc.dev/pismo/apis/revolving-credit-statements/llms.txt) - [OpenAPI document](https://skmtc.dev/pismo/apis/revolving-credit-statements/revisions/09f552b0f850?raw)
