> For the complete documentation index, see [llms.txt](https://lumiwavelab.gitbook.io/internal-inno-platform-doc-kr/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://lumiwavelab.gitbook.io/internal-inno-platform-doc-kr/reference/api-reference-v2/inno-dashboard/swap/swap-2.md).

# Swap 요청\*

<mark style="color:green;">`POST`</mark> `https://{dashboard-domain}/v1.0/db/swap`

#### Headers

| Name                                            | Type   | Description                 |
| ----------------------------------------------- | ------ | --------------------------- |
| Authorization<mark style="color:red;">\*</mark> | string | Bearer {{web-access-token}} |
| Content-Type<mark style="color:red;">\*</mark>  | string | application/json            |

#### Request Body

| Name                    | Type    | Description                                                                                                                 |
| ----------------------- | ------- | --------------------------------------------------------------------------------------------------------------------------- |
| tx\_type                | int     | <p><strong>swap type</strong></p><p><strong>3: 포인트 -> 코인</strong></p><p><strong>4 : 코인 -> 포인트</strong><br>26 : 코인 -> 코인</p> |
|                         |         |                                                                                                                             |
| from\_point             | object  | 보낼 포인트 정보                                                                                                                   |
| app\_id                 | int64   | 앱 ID                                                                                                                        |
| point\_id               | int64   | 포인트 ID                                                                                                                      |
| adjust\_point\_quantity | int64   | <p>포인트 조정량</p><p>(포인트->코인 이면 음수)</p>                                                                                        |
|                         |         |                                                                                                                             |
| to\_point               | object  | 받을 포인트 정보                                                                                                                   |
| app\_id                 | int64   | 앱 ID                                                                                                                        |
| point\_id               | int64   | 포인트 ID                                                                                                                      |
| adjust\_point\_quantity | int64   | <p>포인트 조정량</p><p>(코인->코인 이면 양수</p>                                                                                          |
|                         |         |                                                                                                                             |
| from\_coin              | object  | 보낼 코인 정보                                                                                                                    |
| coin\_id                | int     | 코인ID                                                                                                                        |
| adjust\_coin\_quantity  | float64 | 코인 조정량 (음수)                                                                                                                 |
|                         |         |                                                                                                                             |
| to\_coin                | object  | 받을 코인 정보                                                                                                                    |
| coin\_id                | int     | 코인ID                                                                                                                        |
| adjust\_coin\_quantity  | float64 | 코인 조정량 (양수)                                                                                                                 |
|                         |         |                                                                                                                             |
| otp\_code               | string  | Authenticator 앱에서 발급 받은 6자리 OTP code                                                                                        |

{% tabs %}
{% tab title="200: OK 성공" %}

```javascript
{
    "return": 0,
    "message": "success",
    "value": {
        "au_id": 5,
        "from_point": {
            "mu_id": 0,
            "app_id": 0,
            "database_id": 0,
            "point_id": 0,
            "previous_point_quantity": 0,
            "adjust_point_quantity": 0,
            "point_quantity": 0
        },
        "to_point": {
            "mu_id": 0,
            "app_id": 0,
            "database_id": 0,
            "point_id": 0,
            "previous_point_quantity": 0,
            "adjust_point_quantity": 0,
            "point_quantity": 0
        },
        "from_coin": {
            "coin_id": 7,
            "coin_symbol": "SUI",
            "base_coin_id": 3,
            "base_coin_symbol": "SUI",
            "walletaddress": "0x40e6c9a38833fae2276c231fadcb1d133ce9e4258159292b1ccfc8553a0a1279",
            "to_wallet": "0xd61a033f4644551427a486c495bd91c25883fbac7ab37f2e871be43de3d01c21",
            "wallet_type_id": 2,
            "wallet_id": 100000152,
            "adjust_coin_quantity": -0.01,
            "token_tx_hash": "",
            "is_complete": false
        },
        "to_coin": {
            "coin_id": 1,
            "coin_symbol": "ONIT",
            "base_coin_id": 1,
            "base_coin_symbol": "ETH",
            "walletaddress": "0x38f998d033990a315b08AFc0F78059Fb7D11Dc4d",
            "to_wallet": "",
            "wallet_type_id": 1,
            "wallet_id": 100000112,
            "adjust_coin_quantity": 0.01,
            "token_tx_hash": "",
            "is_complete": false
        },
        "tx_type": 26,
        "swap_fee_coin_id": 4,
        "swap_fee_coin_symbol": "ETH",
        "swap_fee": 0.0003587810287,
        "swap_fee_string": "358781028700000",
        "swap_fee_string_d": "0.0003587810287",
        "to_wallet": "0xfc788F6956E98feb367b04f442F7CF8C771c25E9",
        "inno_uid": "Qf40Wch7uricUnCcZapBqntoEHgykf4cD/FlvEDlRUs=",
        "tx_id": 2000000000000000347,
        "create_at": 1720770698,
        "tx_hash": "",
        "is_fee_complete": false
    }
}
```

{% endtab %}

{% tab title="200: OK 진행 중인 swap 존재함" %}

```json
{
    "return": 12200,
    "message": "Transfer inprogress"
}
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Example Body \*" %}

```
{
    // "tx_type" : 3,
    // "otp_code" : "690455",
    // "from_point" : {
    //     "app_id" : 1,    
    //     "point_id" : 1,
    //     "adjust_point_quantity" : -10000
    // },
    // "to_coin" :{
    //     "coin_id" : 2,
    //     "adjust_coin_quantity" : 277
    // }

    // "tx_type" : 4,
    // "from_coin" :{
    //     "coin_id" : 7,
    //     "adjust_coin_quantity" : -277
    // },
    // "to_point": {
    //     "app_id": 1,
    //     "point_id": 1,
    //     "adjust_point_quantity": 9999
    // }

    "tx_type" : 26,
    "from_coin" :{
        "coin_id" : 7,
        "adjust_coin_quantity" : -0.01
    },
    "to_coin" :{
        "coin_id" : 1,
        "adjust_coin_quantity" : 0.01
    }
}

```

{% endtab %}

{% tab title="Response Value \*" %}

<table><thead><tr><th width="282.3333333333333">key</th><th width="150.4883720930233">data type</th><th>desc.</th></tr></thead><tbody><tr><td>au_id</td><td>int64</td><td>계정의 UID</td></tr><tr><td></td><td></td><td></td></tr><tr><td><mark style="background-color:green;"><strong>from_point</strong></mark></td><td>object</td><td>보낼 포인트 정보<br>(P2C 일때만 유효)</td></tr><tr><td>mu_id</td><td>int64</td><td>계정의 포인트 MUID</td></tr><tr><td>app_id</td><td>int64</td><td>앱 ID</td></tr><tr><td>database_id</td><td>int64</td><td>데이터베이스 ID</td></tr><tr><td>point_id</td><td>int64</td><td>포인트 ID</td></tr><tr><td>previous_point_quantity</td><td>int64</td><td>이전 포인트량</td></tr><tr><td>adjust_point_quantity</td><td>int64</td><td>감소 포인트량(항상 음수)</td></tr><tr><td>point_quantity</td><td>int64</td><td>최종 포인트량</td></tr><tr><td></td><td></td><td></td></tr><tr><td><mark style="background-color:green;"><strong>to_point</strong></mark></td><td>object</td><td>받을 포인트 정보<br>(C2P 일때만 유효)</td></tr><tr><td>mu_id</td><td>int64</td><td>계정의 포인트 MUID</td></tr><tr><td>app_id</td><td>int64</td><td>앱 ID</td></tr><tr><td>database_id</td><td>int64</td><td>데이터베이스 ID</td></tr><tr><td>point_id</td><td>int64</td><td>포인트 ID</td></tr><tr><td>previous_point_quantity</td><td>int64</td><td>이전 포인트량</td></tr><tr><td>adjust_point_quantity</td><td>int64</td><td>증가 포인트량(항상 양수)</td></tr><tr><td>point_quantity</td><td>int64</td><td>최종 포인트량</td></tr><tr><td></td><td></td><td></td></tr><tr><td><mark style="background-color:green;"><strong>from_coin</strong></mark></td><td>object</td><td>보낼 코인 정보<br>(C2P, C2C 일때만 유효)</td></tr><tr><td>coin_id</td><td>int64</td><td>보낼 코인 ID</td></tr><tr><td>coin_symbol</td><td>string</td><td>보낼 코인 심볼</td></tr><tr><td>base_coin_id</td><td>int64</td><td>보낼 코인의 베이스 코인 ID</td></tr><tr><td>base_coin_symbol</td><td>string</td><td>보낼 코인의 베이스 코인 심볼</td></tr><tr><td>walletaddress</td><td>string</td><td>지갑주소(유져지갑)</td></tr><tr><td>to_wallet</td><td>string</td><td>전송 타겟 지갑 주소(법인지갑)</td></tr><tr><td>wallet_type_id</td><td>int64</td><td>지갑 종류 ID</td></tr><tr><td>wallet_id</td><td>int64</td><td>지갑 ID</td></tr><tr><td>adjust_coin_quantity</td><td>float64</td><td>증감 코인량</td></tr><tr><td>token_tx_hash</td><td>string</td><td>전송 tx hash 정보</td></tr><tr><td>is_complete</td><td>bool</td><td>전송 완료 여부</td></tr><tr><td></td><td></td><td></td></tr><tr><td><mark style="background-color:green;"><strong>to_coin</strong></mark></td><td>object</td><td>받을 코인 정보<br>(P2C, C2C 일때만 유효)</td></tr><tr><td>coin_id</td><td>int64</td><td>받을 코인 ID</td></tr><tr><td>coin_symbol</td><td>string</td><td>받을 코인 심볼</td></tr><tr><td>base_coin_id</td><td>int64</td><td>받을 코인의 베이스 코인 ID</td></tr><tr><td>base_coin_symbol</td><td>string</td><td>받을 코인의 베이스 코인 심볼</td></tr><tr><td>walletaddress</td><td>string</td><td>지갑주소(유져지갑)</td></tr><tr><td>to_wallet</td><td>string</td><td><mark style="color:red;">unused</mark></td></tr><tr><td>wallet_type_id</td><td>int64</td><td>지갑 종류 ID</td></tr><tr><td>wallet_id</td><td>int64</td><td>지갑 ID</td></tr><tr><td>adjust_coin_quantity</td><td>float64</td><td>증감 코인량</td></tr><tr><td>token_tx_hash</td><td>string</td><td>전송 tx hash 정보</td></tr><tr><td>is_complete</td><td>bool</td><td>전송 완료 여부</td></tr><tr><td></td><td></td><td></td></tr><tr><td>tx_type</td><td>int64</td><td><p>Swap 타입</p><p>3: 포인트 -> 코인</p><p>4 : 코인 -> 포인트<br>26 : 코인 -> 코인</p></td></tr><tr><td>swap_fee_coin_id</td><td>int64</td><td>Swap을 위해 납부해야할 수수료 코인 ID (ETH, MATIC, SUI 코인 계열)</td></tr><tr><td>swap_fee_coin_symbol</td><td>string</td><td>swap을 위해 납부해야할 수수료 코인의 심볼 (ETH, MATIC, SUI 코인 계열)</td></tr><tr><td>swap_fee</td><td>float64</td><td>납부 해야할 수수료 (decimal 처리 되어 있음)</td></tr><tr><td>swap_fee_string</td><td>string</td><td><strong>swap_fee</strong> 의 string 형</td></tr><tr><td>swap_fee_string_d</td><td>string</td><td><strong>swap_fee_string</strong> 의 decimal 처리 값</td></tr><tr><td>to_wallet</td><td>string</td><td>수수료 전송 받을 지갑 주소 </td></tr><tr><td>inno_uid</td><td>string</td><td>INNO ID</td></tr><tr><td>tx_id</td><td>int64</td><td>Swap ID(swap 상태 변경 api 에 사용)</td></tr><tr><td>create_at</td><td>int64</td><td>생성 시간 (second)</td></tr><tr><td>tx_hash</td><td>string</td><td>수수료 전송 txhash</td></tr><tr><td>is_fee_complete</td><td>bool</td><td>수수료 전송 성공 여부</td></tr></tbody></table>
{% endtab %}

{% tab title="Example Curl" %}

```
curl --location --request POST 'https://localhost:51031/v1.0/db/swap' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhY2Nlc3NfdXVpZCI6ImRkYTExNTZiLTBlODUtNGQwMS04OTEzLTQwN2MxZWVkZTEzZSIsImF1X2lkIjoyNSwiZXhwIjoxNjQ2NDEwOTI0OTIyLCJpbm5vX3VpZCI6Ikprb1l1RnZFaEhIenVUYXBsNHlvN3M1SEx3Q08vOWVOSSs4c29icGJsRk1kdS8rNW9UTnNiSm91MHJpR1RnRUMiLCJsb2dpbl90eXBlIjo0fQ.8LT7xGi8KlUHBEvMBjAcry3lXz0jVg6UgdgP_6azJLY' \
--header 'Content-Type: application/json' \
--data-raw '{
    "event_id" : 3,
    "otp_code" : "690455",
    
    "point" : {
        "app_id" : 1,    
        "point_id" : 1,
        "adjust_point_quantity" : -50
    },
    "coin" :{
        "coin_id" : 2,
        "adjust_coin_quantity" : 50
    }
}'
```

{% endtab %}

{% tab title="Result Code" %}

<table><thead><tr><th width="219.33333333333331">return</th><th>message</th><th>desc.</th></tr></thead><tbody><tr><td>0</td><td>success</td><td>성공</td></tr><tr><td><strong>500</strong></td><td>internal server error</td><td>내부 서버 에러</td></tr><tr><td>32100</td><td>EventID is invalid</td><td>eventid 유효성 에러</td></tr><tr><td>32101</td><td>AppID is invalid</td><td>appid 유효성 에러</td></tr><tr><td>32102</td><td>PointID is invalid</td><td>pointid 유효성 에러</td></tr><tr><td>32103</td><td>point quantity is invalid</td><td>point 수량 유효성 에러</td></tr><tr><td>32104</td><td>CoinID is invalid</td><td>coinid 유효성 에러</td></tr><tr><td>32105</td><td>Coin quantity is invalid</td><td>coin 수량 유효성 에러</td></tr><tr><td>32106</td><td>Adjust quantity is invalid</td><td>adjust 수량 유효성 에러</td></tr><tr><td>32201</td><td>App point information does not exist</td><td>swap 하려는 app point 정보가 없음</td></tr><tr><td>32202</td><td>Unknown swap error</td><td>알 수 없는 Swap 에러</td></tr><tr><td><del>34004</del></td><td><del>GetMeCoinList DB Scan Error</del></td><td><del>내부 DB 에러</del></td></tr><tr><td>34005</td><td>GetListMembers DB Scan Error</td><td>내부 DB 에러</td></tr><tr><td><strong>34007</strong></td><td>db get account wallet list error.</td><td>내부 DB 에러</td></tr><tr><td><strong>34008</strong></td><td>do not exist wallet</td><td>보유하고 있는 지갑이 없다.</td></tr><tr><td><strong>36007</strong></td><td>lack of gas</td><td>수수료 부족</td></tr></tbody></table>
{% endtab %}
{% endtabs %}
