Deposit account open

Open deposit account

Creates or locates a transaction banking account and attaches a validated deposit product in a single request. When the operation succeeds, the Pismo platform generates the Deposit account opened and Account attached events.

This endpoint supports two scenarios:

  • Existing account: Provide both account.account_id and account.external_account_id. The Pismo platform locates the account via the transaction banking API and validates the IDs. If there is a mismatch, the request fails with a 400 error.

  • New account: Provide account.external_account_id and the account_creation object. The Pismo platform creates a new transaction banking account and attaches the deposit product. If the transaction banking API returns 409 because the account already exists, the Pismo platform locates the existing account and proceeds with product attachment.

Note: The deposit product must exist, be of type deposit, and have an ACTIVE status.

post/v1/deposits/accounts/open

Request

  • Base URL
    https://sandbox.pismolabs.io/savings-products
  • URL
    https://sandbox.pismolabs.io/savings-products/v1/deposits/accounts/open
  • Auth
    HTTP bearer

Request body

metadataobject

The metadata object contains user-defined key-value pairs that provide additional context or custom information.<br> Metadata content is not controlled by the Pismo platform and is instead controlled by the user.<br>

Note: This field must not be used to send Personally Identifiable Information (PII), Payment Card Industry (PCI) data, or any sensitive/regulated information. Metadata fields are intended for operational, non-sensitive data only. For sensitive data, use the specific parameters designed for that purpose. For more information, refer to Get started with Pismo APIs.

Example request

{
  "account": {
    "external_account_id": "ext-acct-001",
    "account_id": 123456
  },
  "deposit_attachment": {
    "product_id": "2c336e9d-d04f-4fd0-8f6e-25808f48d70c",
    "deposit_configs": {
      "maturity_period": {
        "unit": "MONTHS",
        "value": 6,
        "calendar_maturity_date": "2027-06-15"
      },
      "payout_account": {
        "label": "My payout account",
        "type": "INTERNAL",
        "internal_account_id": 123456,
        "external_account": {
          "key": "value"
        }
      },
      "interest_capitalization_mode": "REINVEST",
      "overrides": {
        "maturity_instructions": {
          "principal": "ROLLOVER",
          "interest": "PAY",
          "reason": "Customer preference at onboarding"
        },
        "renewal_term": {
          "unit": "MONTHS",
          "value": 6,
          "renewal_calendar_maturity_date": "2027-05-22"
        },
        "penalties": {
          "reason": "Q4 2026 VIP retention package",
          "withdrawal_fee": {
            "value": 1.5
          }
        }
      }
    }
  },
  "account_creation": {
    "program_id": 100,
    "division_code": "001",
    "applicant": {
      "document_number": "12345678900",
      "name": "John Doe"
    },
    "currency_code": "USD",
    "account_creation_datetime": "2026-06-24T14:49:36.017Z"
  },
  "metadata": {
    "key": "value"
  }
}

Response

Deposit account opened successfully

account_idinteger

Pismo account ID (new or existing)

external_account_idstring

External account ID

account_creation_datetimestring date-time

The date time the account was created, displayed in UTC. The date time format follows the ISO 8601 standard. Format = yyyy-mm-ddThh:mm:ss.sssZ.<br> minLength: 24 maxLength: 24

product_idstring

Product ID of the attached deposit product

Example response

{
  "account_id": 123456,
  "external_account_id": "ext-acct-001",
  "account_creation_datetime": "2026-06-24T14:49:36.000Z",
  "product_id": "2c336e9d-d04f-4fd0-8f6e-25808f48d70c",
  "deposit_configs": {
    "maturity_period": {
      "unit": "MONTHS",
      "value": 6,
      "calendar_maturity_date": "2027-06-15"
    },
    "renewal_term": {
      "unit": "MONTHS",
      "value": 6,
      "renewal_calendar_maturity_date": "2028-06-15"
    },
    "payout_account": {
      "label": "My payout account",
      "type": "INTERNAL",
      "internal_account_id": 123456,
      "external_account": {
        "key": "value"
      }
    },
    "maturity_instructions": {
      "principal": "ROLLOVER",
      "interest": "PAY",
      "reason": "Customer preference at onboarding"
    },
    "penalties": {
      "reason": "Q4 2026 VIP retention package",
      "withdrawal_fee": {
        "value": 1.5
      }
    },
    "interest_capitalization_mode": "REINVEST"
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.