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

# Retry Partner Account Allowances

> Retries delegated-trading allowance recovery for a partner-created server-wallet sub-account. The retry takes a short wallet lock, re-checks live chain state, and submits only targets still missing. A `submitted` target means this retry request submitted a sponsored transaction or user operation.

<Info>
  Requires **HMAC authentication** with the `account_creation` and `delegated_signing` scopes. API key auth and Privy auth are not accepted.
</Info>

Retries delegated-trading allowance recovery for a partner-created server-wallet sub-account.

The retry operation:

* takes a short lock for the wallet

* re-checks live chain state before submitting

* submits only targets that are still missing

* returns `submitted` only 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.

```json theme={null}
{}
```

## Response

Returns the same shape as [Check Partner Account Allowances](/api-reference/partner-accounts/check-allowances).

```json theme={null}
{
  "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
    }
  ]
}
```

<Note>
  `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.
</Note>

## 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

```json theme={null}
{
  "message": "Allowance retry rate limited",
  "retryAfterSeconds": 30
}
```

### 409 example

```json theme={null}
{
  "message": "Allowance retry already running"
}
```

## Recommended flow

1. Poll [Check Partner Account Allowances](/api-reference/partner-accounts/check-allowances).
2. If `ready=true`, continue.
3. If targets are `missing` or `failed` and `retryable=true`, call this endpoint.
4. If this endpoint returns submitted targets, poll GET again after a short delay.
5. If `429`, wait `retryAfterSeconds`.
6. If `409`, wait briefly and call GET again.

## Example

```bash theme={null}
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 '{}'
```


## OpenAPI

````yaml POST /profiles/partner-accounts/{profileId}/allowances/retry
openapi: 3.0.0
info:
  title: Limitless Exchange API
  description: >-
    Production-ready REST API for prediction market trading, portfolio
    management, and market data on Limitless Exchange (Base L2).
  version: '1.0'
  contact:
    name: API Support
    url: https://limitless.exchange
    email: help@limitless.network
servers:
  - url: https://api.limitless.exchange
    description: Production API
security: []
tags:
  - name: Authentication
    description: User authentication and session management
  - name: Markets
    description: Browse, search, and analyze prediction markets
  - name: Market Navigation
    description: Navigation tree, market pages, and property filters
  - name: Trading
    description: Create, manage, and cancel orders
  - name: Portfolio
    description: Position tracking, trade history, and performance
  - name: API Tokens
    description: Scoped API token management for partner integrations
  - name: Partner Accounts
    description: Sub-account creation and allowance recovery for partner integrations
  - name: System
    description: Public API state and availability information
paths:
  /profiles/partner-accounts/{profileId}/allowances/retry:
    post:
      tags:
        - Partner Accounts
      summary: Retry partner account allowances
      description: >-
        Retries delegated-trading allowance recovery for a partner-created
        server-wallet sub-account. The retry takes a short wallet lock,
        re-checks live chain state, and submits only targets still missing. A
        `submitted` target means this retry request submitted a sponsored
        transaction or user operation.
      operationId: ProfileController_retryPartnerAccountAllowances
      parameters:
        - name: profileId
          in: path
          required: true
          schema:
            type: integer
          description: Partner sub-account profile ID for the server-wallet child account.
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
      responses:
        '200':
          description: Allowance state after retry submission attempts
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartnerAccountAllowanceResponse'
        '400':
          description: Invalid profile ID or non-server-wallet child profile
        '401':
          description: Missing or invalid HMAC authentication
        '403':
          description: >-
            Requires account_creation and delegated_signing scopes, and
            profileId must belong to the authenticated partner
        '404':
          description: Partner sub-account profile not found
        '409':
          description: Another retry is already running for this wallet
        '429':
          description: Retry is rate limited; response includes retryAfterSeconds
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartnerAllowanceRetryRateLimitError'
      security:
        - HmacAuth: []
components:
  schemas:
    PartnerAccountAllowanceResponse:
      type: object
      properties:
        profileId:
          type: integer
          description: Child/server-wallet profile ID being checked
          example: 4543
        partnerProfileId:
          type: integer
          description: Authenticated parent partner profile ID
          example: 4430
        chainId:
          type: integer
          description: Chain where allowance targets were checked
          example: 84532
        walletAddress:
          type: string
          description: Managed server-wallet address for the child profile
          example: '0x1a665817f063Ee15C6C2c05D4315982145825C3D'
        ready:
          type: boolean
          description: True when every target is confirmed on chain
          example: false
        summary:
          $ref: '#/components/schemas/PartnerAccountAllowanceSummary'
        targets:
          type: array
          items:
            $ref: '#/components/schemas/PartnerAccountAllowanceTarget'
      required:
        - profileId
        - partnerProfileId
        - chainId
        - walletAddress
        - ready
        - summary
        - targets
    PartnerAllowanceRetryRateLimitError:
      type: object
      properties:
        message:
          type: string
          example: Allowance retry rate limited
        retryAfterSeconds:
          type: integer
          description: Seconds to wait before retrying
          example: 30
      required:
        - message
        - retryAfterSeconds
    PartnerAccountAllowanceSummary:
      type: object
      properties:
        total:
          type: integer
          description: Total allowance target count
          example: 10
        confirmed:
          type: integer
          description: Targets confirmed on chain
          example: 2
        missing:
          type: integer
          description: Targets still missing
          example: 0
        submitted:
          type: integer
          description: Targets submitted by the current retry response
          example: 8
        failed:
          type: integer
          description: Targets whose latest live read or retry state failed
          example: 0
      required:
        - total
        - confirmed
        - missing
        - submitted
        - failed
    PartnerAccountAllowanceTarget:
      type: object
      properties:
        type:
          type: string
          enum:
            - USDC_ALLOWANCE
            - CTF_APPROVAL
          description: Allowance target category
          example: USDC_ALLOWANCE
        tokenAddress:
          type: string
          description: ERC20 or conditional-token contract address
          example: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
        spenderOrOperator:
          type: string
          description: Allowance spender or operator address
          example: '0x54d696A602343063000B25a51734E3BbE0Ec80a2'
        label:
          type: string
          description: Human-readable target label
          example: ctf-exchange
        requiredFor:
          type: string
          enum:
            - BUY
            - SELL
          description: Trading side that requires this target
          example: BUY
        confirmed:
          type: boolean
          description: Whether this target is confirmed on chain
          example: false
        status:
          type: string
          enum:
            - confirmed
            - missing
            - submitted
            - failed
          description: Current target status
          example: submitted
        transactionId:
          type: string
          nullable: true
          description: Sponsored transaction ID when submitted
          example: tx_abc123
        txHash:
          type: string
          nullable: true
          description: Transaction hash when available
          example: 0xabc123...
        userOperationHash:
          type: string
          nullable: true
          description: User operation hash when available
          example: 0xdef456...
        retryable:
          type: boolean
          description: Whether a retry request may attempt this target
          example: true
        errorCode:
          type: string
          nullable: true
          description: Machine-readable failure code
          example: RPC_READ_FAILED
        errorMessage:
          type: string
          nullable: true
          description: Human-readable failure message
      required:
        - type
        - tokenAddress
        - spenderOrOperator
        - label
        - requiredFor
        - confirmed
        - status
        - retryable
  securitySchemes:
    HmacAuth:
      type: apiKey
      in: header
      name: lmts-api-key
      description: >-
        Scoped API token with HMAC-SHA256 signing. Requires three headers:
        lmts-api-key (token ID), lmts-timestamp (ISO-8601), lmts-signature
        (Base64-encoded HMAC). See Authentication docs for details.

````