---
title: "Finish a CCTP transfer whose mint never landed"
method: POST
path: "/api/route/resume"
tags: ["routes"]
---

# Finish a CCTP transfer whose mint never landed

`POST /api/route/resume`

## Request

- Base URL: `https://api.anygas.xyz/svc`
- URL: `https://api.anygas.xyz/svc/api/route/resume`
- Auth: none declared

A CCTP transfer is two transactions: a burn on the source chain and a mint on the destination, separated by Circle's attestation (~15-25 min standard tier). This submits the mint. It is SAFE TO RETRY: CCTP nonces are single-use, so a replayed mint reverts and is reported as ALREADY_MINTED (funds delivered) rather than double-spending. robyn-cctp-mint runs this automatically every 2 minutes, so callers rarely need it. Rate limited to 6/min per IP because it spends Robyn gas, and concurrent resumes for the same route id return 409 rather than submitting a second transaction.

## Request body

- object
  - `id` string, required: route id from execute or /api/route/status

## Response `200`

Settled. code is MINTED, ALREADY_MINTED (Circle auto-relayer delivered first) or ALREADY_DONE.

## Other responses

- `404`: Unknown route id.
- `409`: Not settled yet (ATTESTATION_NOT_READY) or a resume for this id is already in progress. Funds are safe and the mint stays replayable.
- `422`: Route is not on the Circle CCTP rail.
- `429`: Rate limited.

---

[API](https://skmtc.dev/anygas/apis/robyn-anygas-api.md) · [All operations](https://skmtc.dev/anygas/apis/robyn-anygas-api/llms.txt) · [OpenAPI document](https://skmtc.dev/anygas/apis/robyn-anygas-api/revisions/9b7498be8304?raw)
