# Execution Approval Expiry Time

Execution approval expiry time ensures the uniqueness of each transfer record, preventing processing transfer record from being exploit. If a transfer record is not broadcasted within the expiration time, it will be automatically cancelled. This measure is implemented as shown below.

1. **CoinSend Centre**\
   Added an Expiration Time field under CoinSend Centre > Dispatch Record > Approve (2nd-level). Default is 24 hours based on the time the record is approved. Adjustable up to 72 hours.<br>

   <figure><img src="/files/NMDRbJQrqElvj2pCLVLf" alt=""><figcaption></figcaption></figure>

   \
   Records not broadcast within the expiration time will be automatically canceled with status Canceled (Signature Invalid).<br>

   <figure><img src="/files/nZX4zfiTf9BJnXp3YsV7" alt=""><figcaption></figcaption></figure>

   <br>
2. **CoinSign App**\
   "Expiration Time" has added to the execution approval popup window.\
   \
   ![](/files/3og5pvAN2S74bjDUC24t)\ <br>
3. **v1/withdraw API endpoint**\
   \
   **IMPORTANT IF YOUR API INCLUDE approveSign**\
   Added the approveExpireTime parameter. Expiry time must be no more than 72 hours after the timestamp parameter, and it must be included when generating approveSign.,\
   \
   businessId=\<Business ID>\&deviceUuid=\<CoinSend UUID><mark style="background-color:yellow;">\&approveExpireTime=\<Execution approval expiry time (Unix timestamp, precise to seconds)></mark>

```json
{
"apiKey": "cd3f5575dc",
"submitAccount": "coinsdoTest",
"address": "TKU69qcQDEE7ertPpdaxoLGCTX4xR",
"amount": "616.616",
"coinsDoId": "3",
"businessId": "TRX_999",
"businessScene": "1",
"timestamp": "1622775712229",
"txMemo": "COINSDO TEST TRX",
"reviewUuid": "A65F7B1C-8FF8-4E0D-AE0BCB0F378B",
"reviewSign": "DXoICpzZN7/yoHCLbb32czn0Goq281qNNgcejzXPToGOJReA/wYMI0e3ikjAVxzXSDXImAFqslbjBbiR8PVnXImV6VBMYL5J3Lssfu4nZMPEPNgIFtAWlLk9drWoElGe/Ch6NaozD9VJx5xPNIPq7ErVwfeB+g2LM=",
"reviewRemark": "trx test",
"targetDeviceUuid": "2DEA1BEB-CFE9-4E1D-F983D84D2E4D",
"approveUuid": "BD9D4D2C-6689-4FE1-C9DA5A251A30",
"approveExpireTime": "1767433963", //UNIX timestamp format
"approveSign": "vPuFWmtV/KbemdN/5IqRhyfY63kp55H1WkUsesaJ1U5kV0oX3bn5U8iVEKGeAzA37s/jMBy8hq62r1fstvhZ6vcgX5FuqtvvL8fTOeRuK9v85e7FR/89U2Jm/KbVt0US2Xe1oQz2D7lDvFW15ZtSQdp8JoVA=", //include approveExpiryTime
"approveRemark": "trx test"
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://coinsdo.gitbook.io/docs/coinsend/how-to/execution-approval-expiry-time.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
