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

# Withdraw an information request

> Drop your own pending information request without deciding the case

`POST /api/v2/storefront/account-mappings/information-requests/{requestId}/withdraw`

Sometimes you no longer need what you asked for — the buyer resolved it another
way, you changed your mind about what evidence you need, or the request was a
mistake. This call drops the request without deciding the case: the case stays
open and returns to your queue, exactly like an expired request re-blocks on
you.

This is different from declining. Declining closes the whole case with no
grant. Withdrawing keeps the case open — you can still accept, link to an
existing account, ask again, or reject later.

Works whether the request is still live or has already expired. Once
withdrawn, the request can no longer be confirmed or resent — send a fresh
request if you still need something from the buyer.

## Request

<CodeGroup>
  ```bash curl theme={null}
  curl -X POST https://api.interchange.io/api/v2/storefront/account-mappings/information-requests/9931/withdraw \
    -H "Authorization: Bearer $SCOPE3_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{"reason": "No longer needed."}'
  ```
</CodeGroup>

## Parameters

| Field       | Type          | Required | Notes                                                                                                                       |
| ----------- | ------------- | -------- | --------------------------------------------------------------------------------------------------------------------------- |
| `requestId` | string (path) | Yes      | The information request's `id`, from the `request-information` response or the pending request on a review row.             |
| `reason`    | string        | No       | Optional free-text note (1–500 characters), recorded on the case's event history only — never stored on the request itself. |

## Response

`200 OK` with the withdrawn request:

```json theme={null}
{
  "id": "9931",
  "caseId": "4821",
  "status": "superseded",
  "message": "Please send your completed W-9 and a signed insertion order to finish setup.",
  "destinationUrl": "https://forms.example-seller.com/onboarding/w9",
  "url": "https://api.interchange.io/seller/acme-storefront/mcp/handoffs/kx9F2...",
  "expiresAt": "2026-09-15T00:00:00.000Z",
  "createdBy": "ops@example-seller.com",
  "confirmedBy": null,
  "confirmedAt": null,
  "createdAt": "2026-08-25T14:02:11.000Z"
}
```

## Errors

* `401 UNAUTHORIZED` — missing or invalid API key.
* `404 NOT_FOUND` — no pending information request with this id under your storefront (already confirmed, superseded, cancelled, or never existed).

See [Errors](/v2/reference/errors) for the full error contract.

## Related

<CardGroup cols={2}>
  <Card title="Request buyer information" href="/v2/storefront/buyer-account-mapping/tasks/request-buyer-information" icon="circle-question">
    Ask for information in the first place
  </Card>

  <Card title="Confirm buyer information" href="/v2/storefront/buyer-account-mapping/tasks/confirm-buyer-information" icon="circle-check">
    Record that the requested material arrived
  </Card>

  <Card title="Buyer Account Mapping" href="/v2/storefront/buyer-account-mapping" icon="diagram-project">
    The review queue this case comes from
  </Card>
</CardGroup>
