# Basics

Mandarin is a universal solution for working with online payments. Mandarin API is built on REST-principles. With it, you can accept payments from a bank card, receive a card token and use it for repeated debits, make refunds, make payments to cards, using a variety of options. The international payment systems MIR, Visa, MasterCard, UnionPay International (UPI) (opens new window) are supported.

API uses HTTPS and TLS protocol not lower than 1.2 (requests with HTTP or TLS 1.0, 1.1 will be rejected), and therefore suitable for development in any programming language that can work with HTTPS-libraries.

The API works with POST and GET requests. POST requests take arguments in JSON, GET requests work with query strings. The response will always be in JSON, regardless of the request type.

API is asynchronous (a small part of requests work synchronously): on your request you will synchronously receive payment (request) identifier, and then in asynchronous mode you will receive a callback-notification, including the payment (request) identifier received earlier, as well as the operation status and other data on it.

Diagram

The API is implemented in sandbox and production environments. The queries created in the test environment are never passed to banking information systems and therefore do not lead to real transactions. Also, in some cases, it is possible to work in the API production environment with motes that simulate the behavior of banking systems.