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.