> ## Documentation Index
> Fetch the complete documentation index at: https://waasapi.uuwallet.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Insufficient Gas Notification Callback

`NOTIFY_NOT_ENOUGH_HOT_MONEY` (type=7)

When a withdrawal operation temporarily fails due to insufficient main coin balance in the hot wallet (insufficient Gas), WaaS notifies the merchant through this callback. This is a temporary failure state. **After the merchant replenishes the main coin balance in the hot wallet, this withdrawal order will automatically retry.**

### Key Points

1. **Insufficient Gas Fees**: Hot wallet lacks sufficient main coin to pay network transaction fees
2. **Funds Remain Frozen**: User withdrawal funds remain frozen
3. **Next Steps**: After replenishing main coin balance in hot wallet, WaaS automatically retries withdrawal

### Request Parameters

The request sent by WaaS is an **RSA-encrypted Base64 string**. Merchants need to decrypt to obtain business parameters:

<ResponseField name="Insufficient Gas Request Parameters" type="object">
  <Expandable title="View Full Parameter List">
    <ResponseField name="callBackId" type="String" required="Yes" example="250529528850002">
      Merchant must ensure the uniqueness of this callBackId. WaaS will actively callback the merchant carrying this parameter to notify which withdrawal order triggered the callback due to insufficient Gas.
    </ResponseField>
  </Expandable>
</ResponseField>

### Response Parameters

After processing the callback, merchants need to return a JSON-formatted response body. The `data` field must return an **RSA-encrypted Base64 string** (encrypted using the public key provided by WaaS), while other fields are in plain text:

<ResponseField name="Insufficient Gas Response Parameters" type="object">
  <Expandable title="View Full Parameter List">
    <ResponseField name="apiKey" type="String" required="Yes" example="88c47568-8d24-4983-9b4c-y1ec8b939e9b">
      Merchant's unique API identifier
    </ResponseField>

    <ResponseField name="data" type="String" required="Yes" example="i2H9eQf22gLnJoTeo1WbWVR6wmNv/Ryom5UjTPm4yM2aeuQUkpsErZAY...">
      Encrypted business data, e.g.: i2H9eQf22gLnJoTeo1WbWVR6wmNv (refer to example on right)

      Generated by encrypting the following raw business parameters:

      **requestUUID** (String) : Unique request identifier, merchant must return the same requestUUID in response to help WaaS confirm

      **tenantUserId** (String) : User ID initiating withdrawal (in merchant system, not WaaS system)

      **type** (Integer) : Callback type

      **trackingId** (String) : Business event identifier

      **callBackId** (String) : Callback ID
    </ResponseField>

    <ResponseField name="errCode" type="Integer" required="Yes" example="0">
      Global processing status code:
      `0`=Success, non-`0`=Failure
    </ResponseField>

    <ResponseField name="message" type="String" required="Yes" example="">
      Error details (required when failed):

      * Can return empty string when successful
      * Must describe specific error when failed
    </ResponseField>
  </Expandable>
</ResponseField>

***

<RequestExample>
  ```mdx Raw Request After Decryption theme={null}
  {
    "business": 0,
    "requestUUID": "5aceadbb-0783-4d38-895a-3418127c5f10",
    "tenantUserId": "1945",
    "callBackId": "250529528850002",
    "type": 7,
    "trackingId": "101934"
  }
  ```
</RequestExample>

<ResponseExample>
  ```mdx Response Parameter Structure After Decryption theme={null}
  {
    "apiKey": "88c47568-8d24-4983-9b4c-y1ec8b939e9b",
    "errCode": 0,
    "data": "{\"type\":7,\"callBackId\":\"250529528850002\",\"trackingId\":\"101934\",\"requestUUID\":\"5aceadbb-0783-4d38-895a-3418127c5f10\",\"tenantUserId\":\"1945\"}"
    "message": ""
  }
  ```
</ResponseExample>
