2026-11-02

Summary: Retirement products have a contract number, and contract is renamed to product_contract

Accounts

Retirement Product Contract Number

Each retirement product now has a contract_number. We use it in all communication with the ZfA. It is in the retirement product responses of POST /accounts/{account_id}/products, GET /accounts/{account_id}/products and GET /accounts/{account_id}/products/{id}. Retirement products that already exist also have a contract number.

When you create a retirement product, you can send your own contract number in the new optional contract_number field of the request. It can have 1 to 20 characters: ASCII letters, digits, dashes (-) and underscores (_). If you omit it, we generate a contract number. The contract number does not change after the retirement product is created.

The contract number must be unique over all retirement products, and upper and lower case are not distinguished. If another retirement product already uses the number, the request fails with 400 Bad Request.

Product Contract Field Renamed

The contract field of retirement products is renamed to product_contract, the same name as the GET /product_contracts endpoint. It is the identifier of the certified product contract that the retirement product is based on.

  • POST /accounts/{account_id}/products accepts the new product_contract field. The contract field is still accepted, but it is deprecated. If both fields are sent, product_contract is used.
  • The retirement product responses include both product_contract and contract, with the same value. contract is deprecated.

Please switch to product_contract. The contract field will be removed from the request and the responses in a future version. We will tell you the date before we remove it.