Пример запроса на вывод USDT GraphQL: ```graphql query findManyAssetPaymentMethod($asset: String, $userId: String, $type: TransferType!) { data: findManyAssetPaymentMethod(asset: $asset, userId: $userId, type: $type) { ...Select } } fragment Select on AssetPaymentMethod { code icon name description processor transferType asset Asset { code type } fields { name description label position type validators isRequired } messages { type header description } Product { minAmount maxAmount feeFixed feeRate } } ``` Variables: ```json { "asset": "USDT", "type": "Withdraw", "userId": "93adcb31-a266-4c6e-98e8-5fc574cd230d" } ``` Response: ```json { "data": { "data": [ { "code": "TEST", "icon": "https://raw.githubusercontent.com/user-dob/docker-microservices/master/wallet.svg", "name": "Test", "description": "", "processor": "test", "transferType": "Withdraw", "asset": "USDT", "Asset": { "code": "USDT", "type": "Crypto" }, "fields": [], "messages": [], "Product": { "minAmount": null, "maxAmount": null, "feeFixed": "0.0", "feeRate": "0.0" } }, { "code": "TRX", "icon": "https://raw.githubusercontent.com/user-dob/docker-microservices/master/wallet.svg", "name": "На кошелек TRC20", "description": "", "processor": "crypto-proxy", "transferType": "Withdraw", "asset": "USDT", "Asset": { "code": "USDT", "type": "Crypto" }, "fields": [ { "name": "address", "description": "Адрес", "label": "Адрес", "position": 0, "type": "string", "validators": [ { "type": "crypto-address", "message": "Адрес не действителен", "blockchain": "TRX" } ], "isRequired": true } ], "messages": [], "Product": { "minAmount": null, "maxAmount": null, "feeFixed": "0.0", "feeRate": "0.0" } }, { "code": "KUNA-PRO", "icon": "https://raw.githubusercontent.com/user-dob/docker-microservices/master/wallet.svg", "name": "Трансфер", "description": "", "processor": "kuna-pro", "transferType": "Withdraw", "asset": "USDT", "Asset": { "code": "USDT", "type": "Crypto" }, "fields": [ { "name": "to", "description": "Kuna Id получателя", "label": "Получатель", "position": 0, "type": "string", "validators": [ { "type": "regex", "regex": "^kunaid-.{3,10}$", "message": "Неверно введен kunaid" } ], "isRequired": true }, { "name": "comment", "description": "Публичный комментарий", "label": "Комментарий", "position": 1, "type": "string", "validators": [ { "type": "regex", "regex": "^.{1,160}$", "message": "Максимальная длинна 160 символов" } ], "isRequired": null } ], "messages": [], "Product": { "minAmount": null, "maxAmount": null, "feeFixed": null, "feeRate": null } }, { "code": "MIXO", "icon": "https://raw.githubusercontent.com/user-dob/docker-microservices/master/wallet.svg", "name": "Трансфер MIXO", "description": "", "processor": "mixo", "transferType": "Withdraw", "asset": "USDT", "Asset": { "code": "USDT", "type": "Crypto" }, "fields": [ { "name": "to", "description": "Номер телефона получателя", "label": "Получатель", "position": 0, "type": "string", "validators": [ { "type": "regex", "regex": "^\\+\\d{10,15}$", "message": "Неверно введен номер телефона" } ], "isRequired": true }, { "name": "comment", "description": "Публичный комментарий", "label": "Комментарий", "position": 1, "type": "string", "validators": [ { "type": "regex", "regex": "^.{1,160}$", "message": "Неверно введен номер телефона" } ], "isRequired": null } ], "messages": [], "Product": { "minAmount": null, "maxAmount": null, "feeFixed": null, "feeRate": null } }, { "code": "ETH", "icon": "https://raw.githubusercontent.com/user-dob/docker-microservices/master/wallet.svg", "name": "На кошелек ERC20", "description": "", "processor": "crypto-proxy", "transferType": "Withdraw", "asset": "USDT", "Asset": { "code": "USDT", "type": "Crypto" }, "fields": [ { "name": "address", "description": "Адрес", "label": "Адрес", "position": 0, "type": "string", "validators": [ { "type": "crypto-address", "message": "Адрес не действителен", "blockchain": "ETH" } ], "isRequired": true } ], "messages": [], "Product": { "minAmount": null, "maxAmount": null, "feeFixed": "0.0", "feeRate": "0.0" } }, { "code": "KUNA_CODE", "icon": "https://github.com/user-dob/docker-microservices/blob/master/kuna-code.png?raw=true", "name": "Kuna Code", "description": "", "processor": "code", "transferType": "Withdraw", "asset": "USDT", "Asset": { "code": "USDT", "type": "Crypto" }, "fields": [ { "name": "recipientId", "description": "Kuna Id получателя", "label": "Получатель", "position": 0, "type": "string", "validators": [ { "type": "regex", "regex": "^kunaid-.{3,10}$", "message": "" } ], "isRequired": null }, { "name": "nonRefundableBefore", "description": "Доверительный период", "label": "Доверительный период", "position": 1, "type": "date", "validators": [ { "type": "regex", "regex": "^.*$", "message": "" } ], "isRequired": null }, { "name": "comment", "description": "Публичный комментарий", "label": "Комментарий", "position": 2, "type": "string", "validators": [ { "type": "regex", "regex": "^.{1,160}$", "message": "" } ], "isRequired": null }, { "name": "privateComment", "description": "Приватный комментарий", "label": "Приватный комментарий", "position": 3, "type": "string", "validators": [ { "type": "regex", "regex": "^.{1,160}$", "message": "" } ], "isRequired": null }, { "name": "code", "description": "Kuna Code", "label": "Kuna Code", "position": 4, "type": "string", "validators": [], "isRequired": null } ], "messages": [], "Product": { "minAmount": null, "maxAmount": null, "feeFixed": "0.0", "feeRate": "0.0" } } ] } } ``` Вы получаете множество методов в результате. Вам нужны не все. Как мы с вами утвердили, в корне обьекта появится новое поле flowType с возможными значениями (сейчас его еще нет): INTERNAL INTERNAL_INVITE EXTERNAL_CRYPTO EXTERNAL_CRYPTO_MEMO EXTERNAL_FIAT Пока нет поля flowType, вы делаете такой маппинг, где ключ - будущее поле  flowType, а обьект - поля по которым вы ищете нужный payment method. ```json { "INTERNAL": { "processor" "mixo" }, "INTERNAL_INVITE": { "processor" "mixo" }, "EXTERNAL_CRYPTO": { "processor" "crypto-proxy" }, "EXTERNAL_CRYPTO_MEMO": { "processor" "crypto-proxy" }, "EXTERNAL_FIAT": { "processor" "corefy" } } ``` В INTERNAL методе вы можете игнорировать field comment, и не показывать его юзеру, так как это поле опционально. Методы EXTERNAL_CRYPTO_MEMO и EXTERNAL_CRYPTO вы пока маппите только по полю "processor": "crypto-proxy", так что вы не будете знать есть ли там мемо пока не переберёте "fields" и не найдете там поле "memo". Помню, мы с Владом договаривались про новое поле внутри каждого филда, которое отражает его тип ("memo", "address", "card_number"), сейчас этого нет, завязывайтесь на поле "name". -- То есть после маппинга вы вытащите такие методы: INTERNAL: вытаскиваете метод с процессором mixo. Он сейчас 1, и работает только с номером телефона, без куна-ид. INTERNAL_INVITE: вытаскивайте тот же самый метод с процессором mixo что и в INTERNAL. EXTERNAL_CRYPTO: вытаскивате 2 метода TRC и ERC. И в случае с USDT вы показываете на выбор юзеру только 2 метода на выбор. С другими монетами вы не будете давать юзеру никакого выбора.