Money Transfer Payment Codes

The public merchant API uses the /payment/v1/money-transfers base path and the merchantId request header where indicated.

Create a Code

Send POST /payment/v1/money-transfers/code. The JSON body contains price (required, positive, maximum 2,000,000), currency (required by the DTO, default TRY), token (required), optional conversationId (maximum 255 characters), optional orderId (maximum 50 characters), and items (required, 1–250 payment items). Send merchantId in the header.

Retrieve a Code

Send POST /payment/v1/money-transfers/retrieve with token in the JSON body. This endpoint does not require the merchant header in the current controller.

Update a Code

Send POST /payment/v1/money-transfers/update with requestId and code in the body and merchantId in the header.

All three operations return requestId, code, token, and accountResult. The account result contains an accounts list whose entries contain iban, bankCode, and bankName.

The create DTO declares Bean Validation constraints, but the current controller methods do not annotate these request bodies with code>@Valid</code. Integrations should still follow the declared constraints; runtime enforcement should also be reviewed in the service.