---
updatedAt: 2026-05-20T21:14:58.000Z
agentTools:
  siteIndex: https://developers.pismo.io/llms.txt
  projectIndex: https://developers.pismo.io/pismo-docs/llms.txt
---

# Get cycle snapshot for deposit account

Return a consolidated point‑in‑time snapshot of a deposit account lifecycle, providing current and previous cycle details such as active and prior product attachments, key dates (cycle start, maturity, rollover), interest plan information, and principal context to support audit, statement, and reconciliation use cases.


# OpenAPI definition

```json
{
  "openapi": "3.1.0",
  "info": {
    "title": "Banking - Interest-bearing accounts",
    "version": "1.0.0",
    "description": "API for interest-bearing account functionality",
    "contact": {
      "name": "API Support",
      "url": "https://developers.pismo.io/support/"
    },
    "license": {
      "name": "Copyright Pismo"
    }
  },
  "servers": [
    {
      "url": "https://sandbox.pismolabs.io/savings-products",
      "description": "Sandbox API server for testing"
    }
  ],
  "tags": [
    {
      "name": "Deposit account lifecycle",
      "description": "Endpoints that allow consolidated, point‑in‑time snapshots of a deposit account lifecycle"
    }
  ],
  "components": {
    "parameters": {
      "accountId": {
        "description": "Account ID",
        "in": "path",
        "name": "accountId",
        "required": true,
        "schema": {
          "type": "integer"
        },
        "example": 123456
      }
    },
    "schemas": {
      "ErrorResponse": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "Error type code",
            "example": "EIBACC0003"
          },
          "details": {
            "type": "string",
            "description": "Error details",
            "example": "error EIBACC0008: Validation error [(Field 'Order' is invalid)]"
          },
          "message": {
            "description": "Error message",
            "example": "Bad Request",
            "type": "string"
          }
        }
      },
      "CycleSnapshotResponse": {
        "type": "object",
        "description": "Provides a point in time representation of a deposit account lifecycle. Includes the current state and the previous cycle’s key attributes, such as product and attachment references, interest plan context, lifecycle dates, and principal details. Supports audit, statement, and reconciliation workflows without requiring clients to reassemble the account’s history from individual events.\nThe lifecycle dates in this response (`cycle_start_date`, `current_calendar_maturity_date`, `current_rollover_date`, and the grace window) are anchored at 00:00 in the account’s division timezone. When the division has no timezone configured, they are resolved in UTC.\n",
        "properties": {
          "account_id": {
            "type": "integer",
            "description": "Deposit account ID",
            "example": 1234567
          },
          "status": {
            "type": "string",
            "enum": [
              "ACTIVE",
              "INACTIVE"
            ],
            "description": "Cycle status, this can be either `ACTIVE` or `INACTIVE`",
            "example": "ACTIVE"
          },
          "current_product_id": {
            "type": "string",
            "description": "Product ID currently attached to the account",
            "example": "ze2b8k77-f6a0-4ba4-890a-0dc23f13fhg4"
          },
          "current_attachment_id": {
            "type": "string",
            "description": "Current attachment ID",
            "example": "1234test"
          },
          "current_interest_plan_id": {
            "type": "string",
            "description": "Current interest plan ID",
            "example": "ee2b8b77-f6a0-4ba4-890a-0dc23f13fcb4"
          },
          "current_grace_period": {
            "type": "integer",
            "description": "Grace‑period duration in days for the current cycle. For non‑first cycles, the grace window opens at the start of the cycle, spanning `cycle_start_date`, `cycle_start_date` + `current_grace_period`. The first cycle does not include a grace window.",
            "example": 10
          },
          "current_rollover_date": {
            "type": "string",
            "format": "date-time",
            "description": "Date the current cycle rolls into the next one (`current_calendar_maturity_date` + 1 or the next cycle’s `cycle_start_date`). Rollover occurs at the maturity date, so grace no longer sits between maturity and rollover. Format = `yyyy-mm-ddThh:mm:ss.sssZ`.",
            "example": "2026-02-01T00:00:00Z"
          },
          "current_calendar_maturity_date": {
            "type": "string",
            "format": "date-time",
            "description": "Maturity date of the current cycle. Uses inclusive day count (day 1 is `cycle_start_date`). For the first cycle, the maturity date is `cycle_start_date` + term - 1. For a renewed cycle, the maturity date is `cycle_start_date` + `current_grace_period` + term - 1 because grace extends the cycle. Format = `yyyy-mm-ddThh:mm:ss.sssZ`.",
            "example": "2026-01-26T12:00:00Z"
          },
          "previous_product_id": {
            "type": "string",
            "description": "Previous product ID",
            "example": "ae2b8k77-f6a0-4ba4-890a-0dc23f13fcb4"
          },
          "previous_attachment_id": {
            "type": "string",
            "description": "Previous attachment ID",
            "example": "attach685"
          },
          "previous_interest_plan_id": {
            "type": "string",
            "description": "Previous interest plan ID",
            "example": "ee2b8b77-f6a0-4ba4-890a-0dc23f13fcb4"
          },
          "previous_grace_period": {
            "type": "integer",
            "description": "Previous grace period in days",
            "example": 5
          },
          "previous_calendar_maturity_date": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "Previous calendar maturity date. The datetime format follows the ISO 8601 standard `yyyy-mm-ddThh:mm:ss.sssZ`.",
            "example": "2025-12-01T00:00:00Z"
          },
          "cycle_start_date": {
            "type": "string",
            "format": "date-time",
            "description": "Cycle start date. The datetime format follows the ISO 8601 standard `yyyy-mm-ddThh:mm:ss.sssZ`.",
            "example": "2026-01-26T12:00:00Z"
          },
          "start_date": {
            "type": "string",
            "format": "date-time",
            "description": "Start date of the cycle. The datetime format follows the ISO 8601 standard `yyyy-mm-ddThh:mm:ss.sssZ`.",
            "example": "2024-12-01T00:00:00Z"
          }
        }
      }
    },
    "securitySchemes": {
      "BearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    },
    "responses": {
      "400BadRequest": {
        "description": "Bad request",
        "content": {
          "application/json": {
            "schema": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              ]
            },
            "examples": {
              "invalidRequestBody": {
                "summary": "Bad Request",
                "value": {
                  "code": "EIBACC0008",
                  "message": "Bad Request",
                  "details": "error EIBACC0008: Validation error [(Field 'Order' is invalid)]"
                }
              }
            }
          }
        }
      },
      "404NotFound": {
        "description": "Bad request",
        "content": {
          "application/json": {
            "schema": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              ]
            },
            "examples": {
              "invalidRequestBody": {
                "summary": "Bad Request",
                "value": {
                  "code": "EIBACC0064",
                  "message": "Product not found"
                }
              }
            }
          }
        }
      },
      "500InternalServer": {
        "description": "Internal error",
        "content": {
          "application/json": {
            "schema": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              ]
            },
            "examples": {
              "internalProcessingError": {
                "summary": "Internal processing error",
                "value": {
                  "code": "EIBACC0007",
                  "message": "Internal error",
                  "detail": "Internal error"
                }
              }
            }
          }
        }
      }
    }
  },
  "paths": {
    "/v1/deposits/accounts/{accountId}/cycle-snapshot": {
      "get": {
        "tags": [
          "Deposit account lifecycle"
        ],
        "summary": "Get cycle snapshot for deposit account",
        "description": "Return a consolidated point‑in‑time snapshot of a deposit account lifecycle, providing current and previous cycle details such as active and prior product attachments, key dates (cycle start, maturity, rollover), interest plan information, and principal context to support audit, statement, and reconciliation use cases.\n",
        "operationId": "interest-bearing-v1-get-cycle-snapshot",
        "parameters": [
          {
            "$ref": "#/components/parameters/accountId"
          }
        ],
        "responses": {
          "200": {
            "description": "Cycle snapshot returned successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CycleSnapshotResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          },
          "500": {
            "$ref": "#/components/responses/500InternalServer"
          }
        }
      }
    }
  },
  "security": [
    {
      "BearerAuth": []
    }
  ]
}
```