Retry missing server-wallet approvals for a partner subaccount
curl --request POST \
--url https://api.limitless.exchange/profiles/partner-accounts/{profileId}/allowances/retryimport requests
url = "https://api.limitless.exchange/profiles/partner-accounts/{profileId}/allowances/retry"
response = requests.post(url)
print(response.text)const options = {method: 'POST'};
fetch('https://api.limitless.exchange/profiles/partner-accounts/{profileId}/allowances/retry', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.limitless.exchange/profiles/partner-accounts/{profileId}/allowances/retry",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.limitless.exchange/profiles/partner-accounts/{profileId}/allowances/retry"
req, _ := http.NewRequest("POST", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.limitless.exchange/profiles/partner-accounts/{profileId}/allowances/retry")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.limitless.exchange/profiles/partner-accounts/{profileId}/allowances/retry")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
response = http.request(request)
puts response.read_bodyPartner Accounts
Retry Partner Account Allowances
POST
/
profiles
/
partner-accounts
/
{profileId}
/
allowances
/
retry
Retry missing server-wallet approvals for a partner subaccount
curl --request POST \
--url https://api.limitless.exchange/profiles/partner-accounts/{profileId}/allowances/retryimport requests
url = "https://api.limitless.exchange/profiles/partner-accounts/{profileId}/allowances/retry"
response = requests.post(url)
print(response.text)const options = {method: 'POST'};
fetch('https://api.limitless.exchange/profiles/partner-accounts/{profileId}/allowances/retry', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.limitless.exchange/profiles/partner-accounts/{profileId}/allowances/retry",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.limitless.exchange/profiles/partner-accounts/{profileId}/allowances/retry"
req, _ := http.NewRequest("POST", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.limitless.exchange/profiles/partner-accounts/{profileId}/allowances/retry")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.limitless.exchange/profiles/partner-accounts/{profileId}/allowances/retry")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
response = http.request(request)
puts response.read_bodyRequires HMAC authentication with the
account_creation and delegated_signing scopes. API key auth and Privy auth are not accepted.- takes a short lock for the wallet
- re-checks live chain state before submitting
- submits only targets that are still missing
-
returns
submittedonly for targets this request submitted as a sponsored transaction or user operation -
Route:
POST /profiles/partner-accounts/:profileId/allowances/retry - Auth: HMAC api-token auth
-
Scopes:
account_creation+delegated_signing -
profileId: child/server-wallet profile id that belongs to the authenticated partner
Path parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
profileId | number | Yes | Partner sub-account profile id for the server-wallet child account. |
Request body
No request body is required.{}
Response
Returns the same shape as Check Partner Account Allowances.{
"profileId": 4543,
"partnerProfileId": 4430,
"chainId": 84532,
"walletAddress": "0x1a665817f063Ee15C6C2c05D4315982145825C3D",
"ready": false,
"summary": {
"total": 10,
"confirmed": 2,
"missing": 0,
"submitted": 8,
"failed": 0
},
"targets": [
{
"type": "USDC_ALLOWANCE",
"tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"spenderOrOperator": "0x54d696A602343063000B25a51734E3BbE0Ec80a2",
"label": "ctf-exchange",
"requiredFor": "BUY",
"confirmed": false,
"status": "submitted",
"transactionId": "tx_...",
"userOperationHash": "0x...",
"retryable": false
}
]
}
submitted does not mean the target is already confirmed on-chain. It means this retry request submitted a sponsored transaction or user operation. Poll the GET endpoint again after a short delay.Error responses
| Status | Meaning | Partner action |
|---|---|---|
429 | Retry is rate limited. Response includes retryAfterSeconds. | Wait retryAfterSeconds, then call GET again. |
409 | Another retry is already running for this wallet. | Wait briefly, then call GET again. |
429 example
{
"message": "Allowance retry rate limited",
"retryAfterSeconds": 30
}
409 example
{
"message": "Allowance retry already running"
}
Recommended flow
- Poll Check Partner Account Allowances.
- If
ready=true, continue. - If targets are
missingorfailedandretryable=true, call this endpoint. - If this endpoint returns submitted targets, poll GET again after a short delay.
- If
429, waitretryAfterSeconds. - If
409, wait briefly and call GET again.
Example
curl -X POST "https://api.limitless.exchange/profiles/partner-accounts/4543/allowances/retry" \
-H "content-type: application/json" \
-H "lmts-api-key: <tokenId>" \
-H "lmts-signature: <base64_hmac_sha256_signature>" \
-H "lmts-timestamp: <iso_8601_timestamp>" \
-d '{}'
Path Parameters
Response
200 - undefined