# Create savings plan Create savings plan Endpoint: POST /savings_plans Version: 1.75.0 Security: oauth-client-credentials ## Header parameters: - `upvest-client-id` (string, required) Tenant Client ID Example: "ebabcf4d-61c3-4942-875c-e265a7c2d062" - `authorization` (string, required) Bearer (access) token from the OAuth flow with correct scopes. https://datatracker.ietf.org/doc/html/rfc6750 Example: "Bearer c2VjcmV0Cg==" - `signature` (string, required) https://tools.ietf.org/id/draft-ietf-httpbis-message-signatures-01.html#name-the-signature-http-header - `signature-input` (string, required) https://tools.ietf.org/id/draft-ietf-httpbis-message-signatures-01.html#name-the-signature-input-http-he - `idempotency-key` (string, required) A UUID to be used as an idempotency key. This prevents a duplicate request from being replayed. https://docs.upvest.co/documentation/concepts/api_concepts/idempotency Example: "ccb07f42-4104-44ad-8e1f-c660bb7b269c" - `upvest-api-version` (string) Upvest API version (Note: Do not include quotation marks) Enum: "1" ## Request fields (application/json): - `user_id` (string, required) User unique identifier. - `account_id` (string, required) Account unique identifier. - `type` (string, required) Type of the Savings plan. * PORTFOLIO - * INSTRUMENT - Enum: "PORTFOLIO", "INSTRUMENT" - `cash_amount` (string, required) - `currency` (string, required) Alphabetic three-letter [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code. * EUR - Euro Enum: "EUR" - `start_date` (string, required) First date of the savings plan execution in YYYY-MM-DD format. - `period` (string, required) Unit of time. * WEEK - * MONTH - * YEAR - Enum: "WEEK", "MONTH", "YEAR" - `interval` (integer, required) Number of periods between executions - `name` (string) Savings plan name - `instrument_id` (any) Instrument unique identifier. - `instrument_id_type` (string) The type of the ID used in the request. * ISIN - International Securities Identification Number * WKN - German securities identification code Enum: "ISIN", "WKN" ## Response 202 fields (application/json): - `id` (string, required) - `user_id` (string, required) User unique identifier. - `account_id` (string, required) Account unique identifier. - `type` (string, required) Type of the Savings plan. * PORTFOLIO - * INSTRUMENT - Enum: "PORTFOLIO", "INSTRUMENT" - `cash_amount` (string, required) - `currency` (string, required) Alphabetic three-letter [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code. * EUR - Euro Enum: "EUR" - `start_date` (string, required) First date of the savings plan execution in YYYY-MM-DD format. - `period` (string, required) Unit of time. * WEEK - * MONTH - * YEAR - Enum: "WEEK", "MONTH", "YEAR" - `interval` (integer, required) Number of periods between executions - `created_at` (string, required) Date and time when the resource was created. [RFC 3339-5](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), [ISO8601 UTC](https://www.iso.org/iso-8601-date-and-time-format.html) - `updated_at` (string, required) Date and time when the resource was last updated. [RFC 3339-5](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), [ISO8601 UTC](https://www.iso.org/iso-8601-date-and-time-format.html) - `name` (string) Savings plan name - `instrument_id` (any) Instrument unique identifier. - `instrument_id_type` (string) The type of the ID used in the request. * ISIN - International Securities Identification Number * WKN - German securities identification code Enum: "ISIN", "WKN" - `status` (string) Status of a Savings Plan. * ACTIVE - * CANCELLED - Enum: "ACTIVE", "CANCELLED" ## Response 400 fields (application/problem+json): - `type` (string, required) URL to a document describing the error condition. - `status` (integer, required) Transmission of the HTTP status code so that all information can be found in one place, but also to correct changes in the status code due to the use of proxy servers. - `title` (string) A short, human-readable title for the general error type; the title should not change for given types. - `detail` (string) A human-readable description of the specific error. - `instance` (string) This optional key may be present, with a unique URI for the specific error; this will often point to an error log for that specific response. - `request_id` (string) Correlation ID for the original request. ## Response 401 fields (application/problem+json): - `type` (string, required) URL to a document describing the error condition. - `status` (integer, required) Transmission of the HTTP status code so that all information can be found in one place, but also to correct changes in the status code due to the use of proxy servers. - `title` (string) A short, human-readable title for the general error type; the title should not change for given types. - `detail` (string) A human-readable description of the specific error. - `instance` (string) This optional key may be present, with a unique URI for the specific error; this will often point to an error log for that specific response. - `request_id` (string) Correlation ID for the original request. ## Response 403 fields (application/problem+json): - `type` (string, required) URL to a document describing the error condition. - `status` (integer, required) Transmission of the HTTP status code so that all information can be found in one place, but also to correct changes in the status code due to the use of proxy servers. - `title` (string) A short, human-readable title for the general error type; the title should not change for given types. - `detail` (string) A human-readable description of the specific error. - `instance` (string) This optional key may be present, with a unique URI for the specific error; this will often point to an error log for that specific response. - `request_id` (string) Correlation ID for the original request. ## Response 404 fields (application/problem+json): - `type` (string, required) URL to a document describing the error condition. - `status` (integer, required) Transmission of the HTTP status code so that all information can be found in one place, but also to correct changes in the status code due to the use of proxy servers. - `title` (string) A short, human-readable title for the general error type; the title should not change for given types. - `detail` (string) A human-readable description of the specific error. - `instance` (string) This optional key may be present, with a unique URI for the specific error; this will often point to an error log for that specific response. - `request_id` (string) Correlation ID for the original request. ## Response 405 fields (application/problem+json): - `type` (string, required) URL to a document describing the error condition. - `status` (integer, required) Transmission of the HTTP status code so that all information can be found in one place, but also to correct changes in the status code due to the use of proxy servers. - `title` (string) A short, human-readable title for the general error type; the title should not change for given types. - `detail` (string) A human-readable description of the specific error. - `instance` (string) This optional key may be present, with a unique URI for the specific error; this will often point to an error log for that specific response. - `request_id` (string) Correlation ID for the original request. ## Response 406 fields (application/problem+json): - `type` (string, required) URL to a document describing the error condition. - `status` (integer, required) Transmission of the HTTP status code so that all information can be found in one place, but also to correct changes in the status code due to the use of proxy servers. - `title` (string) A short, human-readable title for the general error type; the title should not change for given types. - `detail` (string) A human-readable description of the specific error. - `instance` (string) This optional key may be present, with a unique URI for the specific error; this will often point to an error log for that specific response. - `request_id` (string) Correlation ID for the original request. ## Response 429 fields (application/problem+json): - `type` (string, required) URL to a document describing the error condition. - `status` (integer, required) Transmission of the HTTP status code so that all information can be found in one place, but also to correct changes in the status code due to the use of proxy servers. - `title` (string) A short, human-readable title for the general error type; the title should not change for given types. - `detail` (string) A human-readable description of the specific error. - `instance` (string) This optional key may be present, with a unique URI for the specific error; this will often point to an error log for that specific response. - `request_id` (string) Correlation ID for the original request. ## Response 500 fields (application/problem+json): - `type` (string, required) URL to a document describing the error condition. - `status` (integer, required) Transmission of the HTTP status code so that all information can be found in one place, but also to correct changes in the status code due to the use of proxy servers. - `title` (string) A short, human-readable title for the general error type; the title should not change for given types. - `detail` (string) A human-readable description of the specific error. - `instance` (string) This optional key may be present, with a unique URI for the specific error; this will often point to an error log for that specific response. - `request_id` (string) Correlation ID for the original request. ## Response 503 fields (application/problem+json): - `type` (string, required) URL to a document describing the error condition. - `status` (integer, required) Transmission of the HTTP status code so that all information can be found in one place, but also to correct changes in the status code due to the use of proxy servers. - `title` (string) A short, human-readable title for the general error type; the title should not change for given types. - `detail` (string) A human-readable description of the specific error. - `instance` (string) This optional key may be present, with a unique URI for the specific error; this will often point to an error log for that specific response. - `request_id` (string) Correlation ID for the original request. ## Response 504 fields (application/problem+json): - `type` (string, required) URL to a document describing the error condition. - `status` (integer, required) Transmission of the HTTP status code so that all information can be found in one place, but also to correct changes in the status code due to the use of proxy servers. - `title` (string) A short, human-readable title for the general error type; the title should not change for given types. - `detail` (string) A human-readable description of the specific error. - `instance` (string) This optional key may be present, with a unique URI for the specific error; this will often point to an error log for that specific response. - `request_id` (string) Correlation ID for the original request.