# Get cycle snapshot for deposit account Returns 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.0.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": "Cycle Snapshot", "description": "Endpoints that allow consolidated, point‑in‑time snapshots of an account lifecycle" } ], "components": { "parameters": { "authorizationTokenHeader": { "name": "AuthorizationToken", "in": "header", "schema": { "type": "string" }, "required": true, "description": "Account token. Token encoded with a Pismo account ID. Tokens can expire quickly, which can result in a 401 Unauthorized error.\n", "example": 1234 }, "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 snapshot of a deposit account lifecycle, including the current state\nand the previous cycle’s key attributes such as product and attachment references,\ninterest plan context, lifecycle dates, and principal details, allowing clients that rely on this data\nto handle audit, statement, and reconciliation tasks without having to rebuild the account’s history from individual events.\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": "Current grace period in days", "example": 10 }, "current_rollover_date": { "type": "string", "format": "date-time", "description": "Current rollover date, The datetime format follows the ISO 8601 standard `yyyy-mm-ddThh:mm:ss.sssZ`.", "example": "2026-02-01T00:00:00Z" }, "current_calendar_maturity_date": { "type": "string", "format": "date-time", "description": "Current calendar maturity date. The datetime format follows the ISO 8601 standard `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", "format": "date-time", "nullable": true, "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", "detail": "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": [ "Cycle Snapshot" ], "summary": "Get cycle snapshot for deposit account", "description": "Returns 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" }, { "$ref": "#/components/parameters/authorizationTokenHeader" } ], "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": [] } ] } ```