v1

latestOpenAPI 3.1.0Copyright Pismo2026-07-247702,7523.1 MB
Program attachment

Update deposit program attachment overrides

Partially updates deposit_configs.overrides and deposit_configs.interest_capitalization_mode on an active deposit program attachment. Each field follows three‑state PATCH rules, allowing values to be set, changed, or cleared. At the program level, the only supported override inside overrides is renewal_term.

  • Omitted: Keeps the current value
  • null: Removes the override; falls back through the cascade (product)
  • Value: Replaces the current value

NOTES:

  • At least one of deposit_configs.overrides or deposit_configs.interest_capitalization_mode must be provided.
  • Sending penalties inside overrides returns 400 EIBACC0317
  • Sending maturity_instructions inside overrides results in a 400 EIBACC0318 error. This field cannot be modified at the program level and must be configured on each account attachment instead.
  • An empty overrides envelope returns 400 EIBACC0315
  • renewal_term still requires ROLLOVER configured in maturity_instructions somewhere in the fallback sequence (400 EIBACC0310 otherwise)

This endpoint generates a Program attachment updated event.

patch/v1/deposits/programs/{programId}/attachment

Path parameters

programIdstring required

Program ID

Headers

AuthorizationTokenstring required

Account token. Token encoded with a Pismo account ID. Tokens can expire quickly, which can result in a 401 Unauthorized error.

Request body

Example request

{
  "deposit_configs": {
    "interest_capitalization_mode": "PAYOUT",
    "overrides": {
      "renewal_term": {
        "unit": "MONTHS",
        "value": 6,
        "renewal_calendar_maturity_date": "2027-05-22"
      }
    }
  }
}

Response

OK

product_type'deposit' | 'savings-account'

Product type.

product_idstring

Product identifier.

interest_plan_idstring

Interest rate plan ID. This corresponds to the ID you created using the Create interest plan version) endpoint.

attached_atstring date-time

Timestamp that indicates when the attach API call was called The datetime format follows the ISO 8601 standard yyyy-mm-ddThh:mm:ss.sssZ.

effective_datestring date

The effective date of the attachment in YYYY-MM-DD format This is the date when the attachment becomes valid. Maturity is calculated from this date. For attachments created in the past, the date defaults to the vaue of attached_at.

fee_model_idstring

Fee model identifier, if applicable.

interest_capitalization_mode'PAYOUT' | 'REINVEST'

Present only when this program attachment explicitly defines interest_capitalization_mode. If the field is missing, the Pismo platform applies PAYOUT as the default behavior. All accounts linked to the program inherit this value unless an account‑level configuration provides its own setting.

Example response

{
  "product_id": "2c336e9d-d04f-4fd0-8f6e-25808f48d70c",
  "interest_plan_id": "263d509a-d5d0-4b3a-b909-ce1b9174beff",
  "maturity_period": {
    "unit": "MONTHS",
    "value": 6,
    "calendar_maturity_date": "2027-06-15"
  },
  "attached_at": "2024-01-23T13:26:25.000Z",
  "effective_date": "2025-12-01",
  "fee_model_id": "fee-model-123",
  "payout_account": {
    "label": "My payout account",
    "type": "INTERNAL",
    "internal_account_id": 123456,
    "external_account": {
      "key": "value"
    }
  },
  "interest_capitalization_mode": "PAYOUT",
  "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"
    }
  }
}