# Attach deposit to account Attach a time deposit product to an account. This endpoint generates the [Account attached](https://developers.pismo.io/events/docs/deposit-product-account-attach-1) event. # OpenAPI definition ```json { "openapi": "3.0.3", "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": "Account attachment", "description": "Endpoints that manage account attachments to interest-bearing account products" } ], "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" } } }, "PayoutAccount": { "properties": { "label": { "type": "string", "description": "Label to identify the account.\n", "example": "My payout account" }, "type": { "type": "string", "description": "Payout account type, either `INTERNAL` or `EXTERNAL`.\n", "enum": [ "INTERNAL", "EXTERNAL" ], "example": "INTERNAL" }, "internal_account_id": { "type": "number", "description": "Internal account ID for the account that receives the payments.\nRequired for type `INTERNAL` and not allowed for `EXTERNAL`.\n", "example": 123456 }, "external_account": { "type": "object", "description": "Contains user-defined key-value pairs that identify the external account receiving the payments.\n You are responsible for this content, the platform does not control it.\n\n Required for type `EXTERNAL` and not allowed for `INTERNAL`.\n", "example": { "key": "value" } } }, "type": "object" }, "DepositConfigs": { "type": "object", "properties": { "maturity_date_days": { "type": "integer", "description": "Specify the number of days until an asset or investment matures.
\n- Provide either `maturity_date_days` or a specific `calendar_maturity_date`, but not both.\n- If you provide the number of days, the exact maturity date is calculated automatically. \n- If left blank, a default number of days is used.\n", "example": 365 }, "calendar_maturity_date": { "type": "string", "format": "date", "description": "The specific calendar date the asset or investment matures, format = `YYYY-MM-DD`.
\n", "example": "2026-10-07" }, "payout_account": { "$ref": "#/components/schemas/PayoutAccount" } } }, "DepositAttachRequest": { "type": "object", "required": [ "product_id" ], "properties": { "product_id": { "type": "string", "description": "Product identifier.", "example": "2c336e9d-d04f-4fd0-8f6e-25808f48d70c" }, "deposit_configs": { "$ref": "#/components/schemas/DepositConfigs" }, "metadata": { "type": "object", "description": "The metadata object contains user-defined key-value pairs that provide additional context or custom information.
\nThe platform has no control over its content, but rather controlled by the user.\n", "example": { "key": "value" } } } } }, "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": "EIBACC0078", "message": "Product not found." } } } } } }, "409Conflict": { "description": "Conflict.", "content": { "application/json": { "schema": { "oneOf": [ { "$ref": "#/components/schemas/ErrorResponse" } ] }, "examples": { "conflict": { "summary": "Conflict.", "value": { "code": "EIBACC0128", "message": "Product is already detached" } } } } } }, "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}/attach": { "post": { "tags": [ "Account attachment" ], "summary": "Attach deposit to account", "description": "Attach a time deposit product to an account.\nThis endpoint generates the [Account attached](https://developers.pismo.io/events/docs/deposit-product-account-attach-1) event.\n", "operationId": "interest-bearing-v1-deposit-attach-account", "parameters": [ { "$ref": "#/components/parameters/accountId" }, { "$ref": "#/components/parameters/authorizationTokenHeader" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DepositAttachRequest" } } } }, "responses": { "204": { "description": "Success - No Content" }, "400": { "$ref": "#/components/responses/400BadRequest" }, "404": { "$ref": "#/components/responses/404NotFound" }, "409": { "$ref": "#/components/responses/409Conflict" }, "500": { "$ref": "#/components/responses/500InternalServer" } } } } }, "security": [ { "BearerAuth": [] } ] } ```