# 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": []
}
]
}
```