> For the complete documentation index, see [llms.txt](https://navixy.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://navixy.com/docs/navixy-api/user-api/resources/billing/payment_system.md).

# Payment system

The payment providers an account can pay through, and what a given payment would cost.

A payment system is a provider the account can pay through. The list operation reports which are available and how each is configured, and the estimate operation reports what a given payment would actually cost, including any provider fee, before the user commits to it.

## Payment system settings object

## The PaymentSystem object

```json
{"openapi":"3.1.0","info":{"title":"Navixy Platform API","version":"1.0.0"},"components":{"schemas":{"PaymentSystem":{"type":"object","description":"A payment system available to the user, with the settings its dealer configured.\n\nThe object is open: a payment system may return further properties specific to its type. `prices`, a map of product code to price, appears for `ios_inapp`. Stripe adds the `auto_payment_min`, `auto_payment_threshold_min` and `auto_payment_monthly_min` limits. Yandex adds `merchant_receipt_required` and, when that is set, `merchant_receipt`.","properties":{"type":{"type":"string","description":"Payment system type."},"url":{"type":"string","description":"URL to send payment information to."},"account":{"type":"string","description":"Optional. The dealer's account in the payment system, which is the eshopId for RBK and the merchant code for 2Checkout."},"currency":{"type":"string","description":"Three-letter ISO 4217 currency code."},"payment_code":{"type":"string","description":"Optional. Code for payments."},"subscription_code":{"type":"string","description":"Subscription code. For 2Checkout, formerly Avangate, this is the same as `payment_code` but for subscriptions."},"methods":{"type":"array","description":"Optional. Available payment methods. May be empty.","items":{"type":"string"}},"min_payment":{"type":"number","description":"Optional. Smallest amount this payment system accepts."},"max_payment":{"type":"number","description":"Optional. Largest amount this payment system accepts."},"auto_payments_enabled":{"type":"boolean","description":"Whether automatic payments are switched on for this payment system."}},"additionalProperties":true}}}}
```

## API actions

API base path: `/payment_system`.

Operations that list no errors of their own return only the [general error codes](/docs/navixy-api/general/errors.md#error-codes).

***

*Required sub-user rights:* `payment_create`.

## List payment systems

> List the payment systems available to the current user.\
> \
> Only systems enabled for the user's dealer and allowed for the user's legal type are returned, so an account with none configured gets an empty list rather than an error.\
> \
> Callable with an empty body. Also accepts GET.\
> \
> Requires the \`payment\_create\` right.

```json
{"openapi":"3.1.0","info":{"title":"Navixy Platform API","version":"1.0.0"},"tags":[{"name":"Billing","description":"Bills, payment systems, subscriptions, device plans and the transaction log. All resources under the /bill/, /payment_system/, /subscription/, /tariff/ and /transaction/ paths."}],"servers":[{"url":"https://api.eu.navixy.com/v2","description":"Navixy production server on European platform"},{"url":"https://api.us.navixy.com/v2","description":"Navixy production server on American platform"},{"url":"https://api.me.navixy.com/v2","description":"Navixy production server on Middle East platform"}],"security":[{"api_key":[]}],"components":{"securitySchemes":{"api_key":{"type":"apiKey","description":"Either a user session hash or an API key, with the \"NVX \" prefix, for example \"NVX 22eac1c27af4be7b9d04da2ce1af111b\". Obtain a session hash from the userAuth operation, or create an API key from the API keys operations. A small number of operations accept a session hash only and reject an API key with error code 4; each says so in its description.","name":"Authorization","in":"header"}},"schemas":{"PaymentSystem":{"type":"object","description":"A payment system available to the user, with the settings its dealer configured.\n\nThe object is open: a payment system may return further properties specific to its type. `prices`, a map of product code to price, appears for `ios_inapp`. Stripe adds the `auto_payment_min`, `auto_payment_threshold_min` and `auto_payment_monthly_min` limits. Yandex adds `merchant_receipt_required` and, when that is set, `merchant_receipt`.","properties":{"type":{"type":"string","description":"Payment system type."},"url":{"type":"string","description":"URL to send payment information to."},"account":{"type":"string","description":"Optional. The dealer's account in the payment system, which is the eshopId for RBK and the merchant code for 2Checkout."},"currency":{"type":"string","description":"Three-letter ISO 4217 currency code."},"payment_code":{"type":"string","description":"Optional. Code for payments."},"subscription_code":{"type":"string","description":"Subscription code. For 2Checkout, formerly Avangate, this is the same as `payment_code` but for subscriptions."},"methods":{"type":"array","description":"Optional. Available payment methods. May be empty.","items":{"type":"string"}},"min_payment":{"type":"number","description":"Optional. Smallest amount this payment system accepts."},"max_payment":{"type":"number","description":"Optional. Largest amount this payment system accepts."},"auto_payments_enabled":{"type":"boolean","description":"Whether automatic payments are switched on for this payment system."}},"additionalProperties":true}},"responses":{"ResponseError":{"description":"Error response object","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Always false."},"status":{"type":"object","description":"Error status. Present only when an error occurred.","properties":{"code":{"type":"integer","description":"An error code in this API, not an HTTP code."},"description":{"type":"string","description":"An error description."}}},"errors":{"type":"array","description":"Per-parameter detail, returned with validation failures such as error code 7. A parameter name here may be an internal field name rather than the documented parameter name.","items":{"type":"object","properties":{"parameter":{"type":"string","description":"Name of the parameter that failed validation."},"error":{"type":"string","description":"What was wrong with it."}}}}}}}}}}},"paths":{"/payment_system/list":{"post":{"tags":["Billing"],"summary":"List payment systems","description":"List the payment systems available to the current user.\n\nOnly systems enabled for the user's dealer and allowed for the user's legal type are returned, so an account with none configured gets an empty list rather than an error.\n\nCallable with an empty body. Also accepts GET.\n\nRequires the `payment_create` right.","operationId":"paymentSystemList","responses":{"200":{"description":"Available payment systems","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"`true` if request finished successfully.","readOnly":true},"list":{"type":"array","items":{"$ref":"#/components/schemas/PaymentSystem"}}}}}}},"400":{"description":"Bad request. The response body carries the API-level error code in `status.code`. Validation failures also include an `errors` array naming each offending parameter.","$ref":"#/components/responses/ResponseError"},"default":{"$ref":"#/components/responses/ResponseError"}}}}}}
```

#### Errors

These errors come in addition to the [general error codes](/docs/navixy-api/general/errors.md#error-codes):

* 201 - Not found in the database.

***

*Required sub-user rights:* `payment_create`.

## Get payment estimate

> Return an estimate of the monthly payment amount for the current user.\
> \
> Callable with an empty body. Also accepts GET.\
> \
> Requires the \`payment\_create\` right.

```json
{"openapi":"3.1.0","info":{"title":"Navixy Platform API","version":"1.0.0"},"tags":[{"name":"Billing","description":"Bills, payment systems, subscriptions, device plans and the transaction log. All resources under the /bill/, /payment_system/, /subscription/, /tariff/ and /transaction/ paths."}],"servers":[{"url":"https://api.eu.navixy.com/v2","description":"Navixy production server on European platform"},{"url":"https://api.us.navixy.com/v2","description":"Navixy production server on American platform"},{"url":"https://api.me.navixy.com/v2","description":"Navixy production server on Middle East platform"}],"security":[{"api_key":[]}],"components":{"securitySchemes":{"api_key":{"type":"apiKey","description":"Either a user session hash or an API key, with the \"NVX \" prefix, for example \"NVX 22eac1c27af4be7b9d04da2ce1af111b\". Obtain a session hash from the userAuth operation, or create an API key from the API keys operations. A small number of operations accept a session hash only and reject an API key with error code 4; each says so in its description.","name":"Authorization","in":"header"}},"responses":{"ResponseError":{"description":"Error response object","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Always false."},"status":{"type":"object","description":"Error status. Present only when an error occurred.","properties":{"code":{"type":"integer","description":"An error code in this API, not an HTTP code."},"description":{"type":"string","description":"An error description."}}},"errors":{"type":"array","description":"Per-parameter detail, returned with validation failures such as error code 7. A parameter name here may be an internal field name rather than the documented parameter name.","items":{"type":"object","properties":{"parameter":{"type":"string","description":"Name of the parameter that failed validation."},"error":{"type":"string","description":"What was wrong with it."}}}}}}}}}}},"paths":{"/payment_system/estimate/get":{"post":{"tags":["Billing"],"summary":"Get payment estimate","description":"Return an estimate of the monthly payment amount for the current user.\n\nCallable with an empty body. Also accepts GET.\n\nRequires the `payment_create` right.","operationId":"paymentSystemEstimateGet","responses":{"200":{"description":"The estimate","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"`true` if request finished successfully.","readOnly":true},"value":{"type":"number","description":"Estimated payment amount, rounded up to hundreds for rubles and to tens for other currencies."}}}}}},"400":{"description":"Bad request. The response body carries the API-level error code in `status.code`. Validation failures also include an `errors` array naming each offending parameter.","$ref":"#/components/responses/ResponseError"},"default":{"$ref":"#/components/responses/ResponseError"}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://navixy.com/docs/navixy-api/user-api/resources/billing/payment_system.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
