Remit Core

Single integration point for cross-border remittances. Partners register, process, confirm, cancel and status-check CREDIT and DEBIT transfers; Remit Core handles routing, validation and interaction with national payment infrastructure. Also exposes FX conversion, recipient bank lookup by phone number, and partner balance. X-Api-Key header authentication; production connectivity is over IPSec.

Operations 9

POST /v1/register Transfer registration #
POST /v1/process Initiate transfer processing #
POST /v1/get_status Get transfer status #
POST /v1/confirm Confirm transfer #
POST /v1/resend_otp Resend OTP for transfer confirmation #
POST /v1/cancel Cancel transfer #
POST /v1/convert Convert amount and get exchange rate #
POST /info/v1/get_banks Get available recipient banks #
POST /info/v1/get_balance Get partner account balance #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/uzum-remit-core"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

uzum-remitcore-openapi.yaml Raw ↑
openapi: 3.0.0
info:
  title: Remit Core API
  version: 1.0.4
  description: >
    > **Remit Core** Partners should be aware that **new fields and/or values**
    may appear

    > in requests and responses over time.

    > Any unrecognised fields and/or values **must be ignored** if they are not
    relevant to the Partner.


    ---


    ## Overview


    **Remit Core** is a platform for processing cross-border money transfers.


    Partners integrate with Remit Core via API and initiate transfers.

    Remit Core handles all operational complexity: routing, validation, status
    tracking,

    and interaction with payment infrastructure. Partners do not need to deal
    with the specifics

    of national payment systems or differences in protocols.


    **For the Partner, Remit Core is the single integration point.** All
    interaction takes place

    through the API described in this document.


    ---


    ## Transfer Types


    Remit Core supports two transfer types:


    ### CREDIT Transfer *(primary scenario)*


    The Partner debits funds from the sender on their side;

    Remit Core credits funds to the recipient.


    ```

    Partner (debit) → Remit Core → Recipient (credit via Remit Core)

    ```


    For this transfer type, the key parameters are: the settlement currency with
    the Partner

    (debit currency - `senderCurrencyCode`) and the recipient's credit currency
    (`receiverCurrencyCode`).


    ### DEBIT Transfer *(limited scenario)*


    Remit Core debits funds from the sender;

    the Partner credits funds to the recipient on their side.


    ```

    Sender (debit via Remit Core) → Remit Core → Partner (credit)

    ```


    For this transfer type, the key parameters are: the sender's debit currency
    (`senderCurrencyCode`) and

    the settlement currency with the Partner (credit currency -
    `receiverCurrencyCode`).


    DEBIT transfers are used on a limited basis and require additional
    agreement.


    ---


    ## Payment Instruments


    A payment instrument is the details by which Remit Core identifies

    the sender (for debit) or the recipient (for credit).


    | Operation | Available instruments |

    |---|---|

    | Credit to recipient (CREDIT) | Card number; phone number + short bank code
    |

    | Debit from sender (DEBIT) | Card number |


    ---


    ## Authentication and Headers


    ### Required Header (all methods)


    | Header | Description |

    |---|---|

    | `X-Api-Key` | Partner key in UUID format. Issued upon onboarding to the
    platform. |


    ---


    ## Onboarding and Testing


    ### Network Connection (production environment)


    The **IPSec** protocol is used for connections in the production
    environment.


    Before integration:

    1. Complete the <a href='/remitcore/Sunnybox-IPsec.docx'>IPSec configuration
    form</a>.

    2. Provide your account manager with the IP addresses from which requests
    will be sent to Remit Core.


    The test environment is accessible directly from the Internet.


    ### Test Environment


    - **Base URL:** `https://remit-core.ipt-merch.com`

    - **Postman Collection for CREDIT transfers:** <a
    href='/remitcore/remitcore_postman_collection_credit.json'
    target='_blank'>download</a>

    - **Credentials** (`X-Api-Key` for the test environment): request from your
    account manager.


    ---


    ## Interaction Flow


    ### Optional Step: Currency Conversion - `POST /convert`


    Preliminary amount calculation and current exchange rate retrieval.


    - This method **does not create a transfer** - it is an informational
    request only.

    - Can be used by the Partner to display preliminary transfer terms to the
    end client.

    - **Not a required step** before `POST /register`.


    <a href='/img/remitcore/en_remitcore_convert.png' target='_blank'>
      <img src='/img/remitcore/en_remitcore_convert.png'/>
    </a>


    ---


    ### Optional Step: Get Available Recipient Banks - `POST /info/v1/get_banks`


    Returns a list of banks (short bank codes) where an active card was found
    for the specified recipient phone number.


    This method is needed **only when crediting by phone number** (payment
    instrument `PHONE`):

    in this case, a short bank code (`bankLabel`) must be provided alongside the
    phone number.

    The method allows the Partner to determine in advance which banks have an
    active card

    for the recipient, and to offer the client a choice.


    The list of bank names corresponding to short bank codes: <a
    href='/remitcore/en_bank_label_list_for_transfers.xlsx'
    target='_blank'>download</a>.


    - This method **does not create a transfer** - it is an auxiliary
    informational request.

    - **Not a required step**: if the Partner obtains the bank code by other
    means
      (e.g. the client selects the bank themselves), this method may be skipped.
    - Currently, only **Uzbekistan** (`UZB`) is supported as the recipient's
    country.


    **Typical use-case:**


    1. The client enters the recipient's phone number

    2. The Partner calls `POST /info/v1/get_banks` → receives the list of banks
    with active cards

    3. The client selects the necessary bank from the list

    4. The Partner sends `phoneNumber` + `bankLabel` in the `target` field when
    calling `POST /register`


    ---


    ### Main Transfer Flow


    #### CREDIT Transfer


    ```

    POST /register → POST /process

    ```


    A CREDIT transfer requires just two steps. Once `POST /process` completes
    successfully,

    Remit Core automatically credits the funds to the recipient.


    | Step | Method | Required | Description |

    |---|---|---|---|

    | 1 | `POST /register` | Required | Transfer registration: data validation
    and transfer entity creation |

    | 2 | `POST /process` | Required | Initiates transfer processing |


    ---


    #### DEBIT Transfer


    ```

    POST /register → POST /process → [POST /resend_otp] → [POST /confirm] →
    [POST /cancel]

    ```


    A DEBIT transfer may include additional confirmation steps:

    Remit Core initiates the debit from the sender, which may require
    confirmation via OTP or 3DS.


    | Step | Method | Required | Description |

    |---|---|---|---|

    | 1 | `POST /register` | Required | Transfer registration: data validation
    and transfer entity creation |

    | 2 | `POST /process` | Required | Initiates transfer processing |

    | 3 | `POST /resend_otp` | If needed | Resends OTP to the client if not
    received or not entered in time |

    | 4 | `POST /confirm` | If needed | Transfer confirmation via OTP or 3DS (if
    required for the operation) |

    | 5 | `POST /cancel` | If needed | Transfer cancellation |


    ---


    #### Common for Both Transfer Types


    The current transfer status can be requested at any time via `POST
    /get_status`.


    Remit Core also sends a **callback** with the final transfer result

    to the URL agreed upon during onboarding.


    #### Asynchronous Result (code 2000)


    In some cases, Remit Core cannot return the final result synchronously.

    In such cases, the method will return code **2000** ("Request accepted. Wait
    for operation processing information in Callback or request status").


    When this occurs, the Partner must either:

    - wait for the **callback** from Remit Core, **or**

    - poll the transfer status via `POST /get_status`.


    <a href='/img/remitcore/en_remitcore_transfer.png' target='_blank'>
      <img src='/img/remitcore/en_remitcore_transfer.png'/>
    </a>


    ---


    ## Transfer Status Model


    ### CREDIT Transfer


    <a href='/img/remitcore/remitcore_state_model_credit.png' target='_blank'>
      <img src='/img/remitcore/remitcore_state_model_credit.png'
           style="display: block; margin: 0 auto; max-width:70%; height: auto;"/>
    </a>


    | Status | Description |

    |---|---|

    | `INIT` | Transfer initiated - `POST /register` request received |

    | `REGISTERED` | Transfer successfully registered |

    | `PROCESSING` | Transfer is being processed - `POST /process` request
    received |

    | `SUCCESS` | Transfer successfully completed |

    | `FAILED` | Transfer rejected |

    | `CANCELLED` | Transfer cancelled (no further requests received to continue
    processing) |


    ---


    ### DEBIT Transfer


    <a href='/img/remitcore/remitcore_state_model_debit.png' target='_blank'>
      <img src='/img/remitcore/remitcore_state_model_debit.png'
           style="display: block; margin: 0 auto; max-width:70%; height: auto;"/>
    </a>


    | Status | Description |

    |---|---|

    | `INIT` | Transfer initiated - `POST /register` request received |

    | `REGISTERED` | Transfer successfully registered |

    | `PROCESSING` | Transfer is being processed - `POST /process` request
    received |

    | `CONFIRMATION` | Client confirmation required (OTP or 3DS) |

    | `CONFIRMING` | Confirmation in progress - `POST /confirm` request received
    |

    | `SUCCESS` | Transfer successfully completed |

    | `FAILED` | Transfer rejected |

    | `CANCELLING` | Cancellation in progress - `POST /cancel` request received
    |

    | `CANCELLING_FAILED` | Cancellation failed |

    | `CANCELLED` | Transfer cancelled (no further requests received to continue
    processing, or transfer is successfully cancelled after `POST /cancel`
    request) |


    ---


    ## Settlement Report


    Remit Core automatically generates a **daily settlement report** and sends
    it

    to the list of email addresses provided by the Partner in advance.


    ### File Format


    - Format: **CSV**

    - Delimiter: **`;`**

    - First row: field names

    - File name: `Remit_Core_transfers_YYYYMMDD.csv`, where `YYYYMMDD` is the
    export date


    ### Settlement Report Fields


    | Field | Description |

    |---|---|

    | `transfer_id` | Transfer identifier in Remit Core |

    | `transfer_created_at` | Transfer creation date and time |

    | `transfer_sender_amount` | Transfer amount in the sender's currency (minor
    units, excluding fee) |

    | `sender_currency` | Sender's currency (ISO 4217 alpha-3) |

    | `transfer_receiver_amount` | Transfer amount in the recipient's currency
    (minor units, excluding fee) |

    | `receiver_currency` | Recipient's currency (ISO 4217 alpha-3) |

    | `route_name` | Transfer direction |

    | `transfer_fee_amount` | Fee amount in the fee currency (minor units). May
    be negative (Partner reward) |

    | `fee_currency` | Fee currency (ISO 4217 alpha-3) |

    | `transaction_type` | Transfer type: CREDIT, DEBIT |

    | `transfer_exchange_rate` | Exchange rate fixed for the transfer (Sender's
    currency -> Recipient's currency) |

    | `payment_system` | Recipient's payment system for СREDIT transfer /
    Sender's payment system for DEBIT transfer (if applicable for payment
    instrument) |


    ### How the Partner is Reflected in the Settlement Report


    - For a **CREDIT transfer**, the Partner acts as the **sender**:
      `Sender_Currency` = `Fee_Currency` = settlement currency with the Partner.
    - For a **DEBIT transfer**, the Partner acts as the **recipient**:
      `Receiver_Currency` = `Fee_Currency` = settlement currency with the Partner.

    ---


    ## Country-Specific Transfer Details


    ### Uzbekistan


    <details>

    <summary><strong>Transfer Limits</strong></summary>


    Limits apply to cards issued in Uzbekistan.


    **By amount:**

    - Minimum transfer amount - 1 UZS

    - Single transaction limit - 18 749 999 UZS

    - Cumulative limit over the last 30 days - 9 999 USD


    **By number of transfers:**

    - Per day — maximum 5 transfers

    - Per month — maximum 150 transfers


    </details>


    <details>

    <summary><strong>Supported Card BINs</strong></summary>


    | Payment System | BINs |

    |---|---|

    | **UZCARD** | 5440, 5614, 6262, 6263, 6264, 8600 |

    | **HUMO** | 4008, 4027, 4062, 4067, 4073, 4097, 4198, 4294, 4728, 4790,
    5555, 9860 |

    | **Visa** | 49169903 |


    </details>
servers:
  - url: https://remit-core.ipt-merch.com
    description: Test environment
x-tagGroups:
  - name: API
    tags:
      - Transfer process
      - Information retrieval
tags:
  - name: Transfer process
    description: Methods used in the transfer process
  - name: Information retrieval
    description: Auxiliary Information Methods
paths:
  /v1/register:
    post:
      tags:
        - Transfer process
      summary: Transfer registration
      description: >
        Validates the request and registers a new transfer (creates a transfer
        entity).


        This is the **first required step** in the transfer flow. Upon
        successful registration,

        a `transferId` is returned - it must be used in all subsequent requests
        for this transfer.


        Applicable to both **CREDIT** and **DEBIT** transfer types.
      operationId: registerTransfer
      security:
        - XApiKeyAuth: []
      requestBody:
        description: >-
          Transfer registration parameters. Use `CreditTransferRequest` for
          CREDIT transfers and `DebitTransferRequest` for DEBIT transfers
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/CreditTransferRequest'
                - $ref: '#/components/schemas/DebitTransferRequest'
      responses:
        '200':
          description: >
            Successful response or business logic error.

            Check the `code` field to determine the outcome - code `0` indicates
            success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RegisterTransferResponse'
        '401':
          description: Authentication error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Authorization error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: >-
            Request validation error - invalid JSON, missing required fields, or
            constraint violations
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/422ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /v1/process:
    post:
      tags:
        - Transfer process
      summary: Initiate transfer processing
      description: >
        Initiates processing of a previously registered transfer.


        This is the **second required step** in the transfer flow, called after
        `POST /register`.

        The transfer must be in the status `REGISTERED` - only in that state it
        can be processed.


        Applicable to both **CREDIT** and **DEBIT** transfer types.


        Key response scenarios (excluding errors):

        - **code 0** - transfer processed successfully (**CREDIT** transfers)

        - **code 2000** - request accepted asynchronously; wait for a callback
        or poll `POST /get_status` (both **CREDIT** and **DEBIT** transfers)

        - **code 2001** - confirmation required (**DEBIT** transfers): 
           - for `confirmationType = OTP` submit the code via `POST /confirm`,
           - for `confirmationType = 3DS` confirmation is completed outside of Remit Core.
      operationId: processTransfer
      security:
        - XApiKeyAuth: []
      requestBody:
        description: Identifier of the transfer to process
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransferIdRequest'
      responses:
        '200':
          description: >
            Successful response, business logic error, or notification about
            required additional actions.

            Check the `code` field to determine the outcome
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/ProcessTransferResponse'
                  - $ref: >-
                      #/components/schemas/NeedConfirmationProcessTransferResponse
                  - $ref: '#/components/schemas/ProcessPendingTransferResponse'
        '401':
          description: Authentication error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Authorization error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: >-
            Request validation error - invalid JSON, missing required fields, or
            constraint violations
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/422ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      callbacks:
        TransferResultInfo:
          $ref: '#/components/callbacks/TransferResultInfo'
  /v1/get_status:
    post:
      tags:
        - Transfer process
      summary: Get transfer status
      description: >
        Returns the current status of a transfer.


        Can be called at any point in the transfer lifecycle. Particularly
        useful when

        `POST /process`, `POST /confirm` or `POST /cancel` returned **code
        2000** (asynchronous processing)

        and no callback has been received yet.


        The transfer can be identified by either `transferId` (Remit Core
        identifier)

        or `externalTransferId` (Partner's own identifier). At least one must be
        provided.


        Applicable to both **CREDIT** and **DEBIT** transfer types.
      operationId: getStatus
      security:
        - XApiKeyAuth: []
      requestBody:
        description: >-
          Transfer identifier - either `transferId` or `externalTransferId` must
          be provided
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StatusTransferRequest'
      responses:
        '200':
          description: >
            Successful response or business logic error.

            Check the `code` field to determine the outcome - code `0` indicates
            success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatusTransferResponse'
        '401':
          description: Authentication error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Authorization error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: >-
            Request validation error - invalid JSON, missing required fields, or
            constraint violations
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/422ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /v1/confirm:
    post:
      tags:
        - Transfer process
      summary: Confirm transfer
      description: >
        Confirms a transfer using a one-time password (OTP).


        The transfer must be in the status `CONFIRMATION` - only in that state
        it can be confirmed.


        Must be called when `POST /process` returns **code 2001** with
        `confirmationType = OTP`.

        The client receives the OTP via the channel configured for their card
        (e.g. SMS),

        and the Partner submits it using this method.


        Applicable to **DEBIT** transfers only.


        Key response scenarios (excluding errors):

        - **code 0** - transfer confirmed successfully 

        - **code 2000** - request accepted asynchronously; wait for a callback
        or poll `POST /get_status`

        - **code 3008** - OTP incorrect; need to resend code - use `POST
        /resend_otp` for the new one
      operationId: confirm
      security:
        - XApiKeyAuth: []
      requestBody:
        description: Transfer identifier and one-time password provided by the client
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConfirmTransferRequest'
      responses:
        '200':
          description: >
            Successful response, business logic error, or notification about
            required additional actions.

            Check the `code` field to determine the outcome
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/ConfirmTransferResponse'
                  - $ref: '#/components/schemas/ConfirmPendingTransferResponse'
        '401':
          description: Authentication error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Authorization error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: >-
            Request validation error - invalid JSON, missing required fields, or
            constraint violations
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/422ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      callbacks:
        TransferResultInfo:
          $ref: '#/components/callbacks/TransferResultInfo'
  /v1/resend_otp:
    post:
      tags:
        - Transfer process
      summary: Resend OTP for transfer confirmation
      description: >
        Requests a new one-time password (OTP) to be sent to the client.


        Use this method when `POST /process` returned **code 2001** with
        `confirmationType = OTP`

        and the client did not receive the OTP or the previous OTP has expired. 

        Or after an unsuccessful attempt of confirmation via `POST /confirm` (if
        received **code 3008**).


        The transfer must be in the status `CONFIRMATION`.


        Applicable to **DEBIT** transfers only.
      operationId: resendOtp
      security:
        - XApiKeyAuth: []
      requestBody:
        description: Identifier of the transfer for which to resend the OTP
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransferIdRequest'
      responses:
        '200':
          description: >
            Successful response or business logic error.

            Check the `code` field to determine the outcome - code `0` indicates
            success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResendOtpResponse'
        '401':
          description: Authentication error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Authorization error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: >-
            Request validation error - invalid JSON, missing required fields, or
            constraint violations
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/422ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /v1/cancel:
    post:
      tags:
        - Transfer process
      summary: Cancel transfer
      description: >
        Requests cancellation of a transfer that has been successfully processed
        (transfer must be in the status `SUCCESS`).


        The result may be synchronous or asynchronous (code `2000` - wait for a
        callback or poll `POST /get_status`).


        Applicable to **DEBIT** transfers only. Cancellation of CREDIT transfers
        is prohibited (code `8003`).
      operationId: cancel
      security:
        - XApiKeyAuth: []
      requestBody:
        description: Identifier of the transfer to cancel
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransferIdRequest'
      responses:
        '200':
          description: |
            Successful response or business logic error.
            Check the `code` field to determine the outcome
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/CancelTransferResponse'
                  - $ref: '#/components/schemas/CancelPendingTransferResponse'
        '401':
          description: Authentication error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Authorization error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: >-
            Request validation error - invalid JSON, missing required fields, or
            constraint violations
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/422ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      callbacks:
        TransferResultInfo:
          $ref: '#/components/callbacks/TransferResultInfo'
  /v1/convert:
    post:
      tags:
        - Information retrieval
      summary: Convert amount and get exchange rate
      description: >
        Returns the current exchange rate and calculates the transfer amount in
        the target currency.


        This method is **optional** and **informational** - it does not create a
        transfer

        and is not a required step before `POST /register`.

        It can be used to display preliminary transfer terms to the end client.


        Exactly one of the following fields must be provided:

        - `senderAmount` - to calculate the amount the recipient will receive

        - `receiverAmount` - to calculate the amount the sender needs to send
      operationId: convert
      security:
        - XApiKeyAuth: []
      requestBody:
        description: >-
          Currency pair and amount for conversion. Provide either `senderAmount`
          or `receiverAmount`, not both
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConvertRequest'
      responses:
        '200':
          description: >
            Successful response or business logic error.

            Check the `code` field to determine the outcome - code `0` indicates
            success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConvertResponse'
        '401':
          description: Authentication error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Authorization error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: >-
            Request validation error - invalid JSON, missing required fields, or
            constraint violations
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/422ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /info/v1/get_banks:
    post:
      tags:
        - Information retrieval
      summary: Get available recipient banks
      description: >
        Returns a list of banks (short bank codes) where an active card was
        found for the specified recipient phone number.


        This method is **optional** and **informational** - it does not create a
        transfer.


        Use this method when crediting by phone number (payment instrument
        `PHONE`):

        in this case, `phoneNumber` and `bankLabel` must both be provided in the
        `target` field

        of the `POST /register` request. This method helps determine which banks
        have an active card

        for the recipient, so the end client can choose the correct bank.


        Currently supported recipient country: **Uzbekistan** (`UZB`) only.
      operationId: getBanks
      security:
        - XApiKeyAuth: []
      requestBody:
        description: Recipient phone number and country code
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetBanksRequest'
      responses:
        '200':
          description: >
            Successful response or business logic error.

            Check the `code` field to determine the outcome - code `0` indicates
            success.

            The `banks` array may be empty if no active cards were found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetBanksResponse'
        '401':
          description: Authentication error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Authorization error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: >-
            Request validation error - invalid JSON, missing required fields, or
            constraint violations
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/422ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /info/v1/get_balance:
    post:
      tags:
        - Information retrieval
      summary: Get partner account balance
      description: >
        Returns the current balance of the partner's account as reflected in the
        core banking system (ABS) at the moment of the request.


        This method is **informational** - it does not create a transfer.


        The partner is identified by the `X-Api-Key` header, so no request
        parameters are required.

        The request body must be an empty JSON object `{}`.


        **Important:** depending on the ABS operational day cycle, some
        transactions of the current day

        may not yet be reflected in the returned balance. The finalised daily
        balance is available

        only after the ABS end-of-day processing completes.
      operationId: getBalance
      security:
        - XApiKeyAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: obj

# --- truncated at 32 KB (84 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/uzum/refs/heads/main/openapi/uzum-remitcore-openapi.yaml