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

# Arc to COPm settlement

> Quote USDC on Arc and create a settlement order that delivers COPm to a Celo wallet.

COP By prepares settlement orders that start with USDC on Arc and end with COPm at an EVM address on Celo.

```text theme={null}
Arc USDC
  → Circle CCTP Standard Transfer
  → Arbitrum USDC
  → Squid
  → Celo USDm
  → Mento
  → COPm destination
```

<Warning>
  The public API currently supports read-only quotes and order creation. Orders return
  `execution.mode: pending_burn_plan`; do not ask a user to approve or burn USDC until COP By
  enables the signed burn plan for your organization.
</Warning>

## Product rules

| Rule                            | Value                                          |
| ------------------------------- | ---------------------------------------------- |
| Source                          | USDC on Arc                                    |
| Destination                     | Any valid EVM address on Celo                  |
| Minimum principal               | 10 USDC                                        |
| Maximum principal               | 1,000 USDC                                     |
| Quote lifetime                  | 60 seconds                                     |
| COP By fee                      | 1% by default; configurable                    |
| Squid route slippage            | 3%                                             |
| Maximum accepted route variance | 4%                                             |
| Circle transfer                 | CCTP Standard Transfer with Forwarding Service |

The Circle forwarding fee is charged in addition to the principal. The quote returns both
`circleUpfrontFeeUsdc` and `totalDebitUsdc`. Squid costs remain included in the route output and
are not presented as a separate customer fee.

## Create a quote

```bash theme={null}
curl --request POST \
  --url https://api.copby.digitalcop.shop/api/integrations/settlements/quotes \
  --header 'Authorization: Bearer copby_live_pk_...' \
  --header 'Content-Type: application/json' \
  --data '{
    "sendAmountUsdc": "50",
    "sourceAddress": "0x2222222222222222222222222222222222222222",
    "destinationAddress": "0x3333333333333333333333333333333333333333"
  }'
```

`sendAmountUsdc` is the exact principal covered by the Circle quote. The user debit is:

```text theme={null}
totalDebitUsdc = sendAmountUsdc + circleUpfrontFeeUsdc
```

`copAmountMin` is the binding delivery floor. Create the order before `expiresAt`; otherwise request
a new quote.

## Create an order

Use a unique `Idempotency-Key` for every logical order. Retrying the same key and quote returns the
same order. Reusing the key for a different quote returns `IDEMPOTENCY_CONFLICT`.

```bash theme={null}
curl --request POST \
  --url https://api.copby.digitalcop.shop/api/integrations/settlements/orders \
  --header 'Authorization: Bearer copby_live_pk_...' \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: deposit-2026-09-23-001' \
  --data '{
    "quoteId": "qst_example",
    "reference": "customer-deposit-1042"
  }'
```

Creating an order does not move funds. The current response reports `IN_USER_WALLET` and
`pending_burn_plan`.

## Read an order

```bash theme={null}
curl --request GET \
  --url https://api.copby.digitalcop.shop/api/integrations/settlements/orders/ord_example \
  --header 'Authorization: Bearer copby_live_pk_...'
```

Orders are isolated by organization. An API key cannot read an order owned by another integration.

## Errors

Settlement errors include lifecycle context instead of a generic message:

```json theme={null}
{
  "error": {
    "code": "QUOTE_EXPIRED",
    "message": "La cotizacion expiro.",
    "stage": "CREATED",
    "fundsStatus": "IN_USER_WALLET",
    "fundsMoved": false,
    "retryable": true,
    "nextAction": "CREATE_NEW_QUOTE"
  }
}
```

Before the burn plan is enabled, `INTAKE_PAUSED` means no funds moved and the user still controls
their USDC. A route above the 4% guard returns `SLIPPAGE_LIMIT_EXCEEDED`; COP By does not proceed to
burn.

## Settlement boundary

COP By considers a settlement delivered only after COPm is verified at the requested Celo address.
Depositing those COPm into Neeru or another protocol is outside this settlement order and requires a
separate integration.

<Columns cols={2}>
  <Card title="Errors and lifecycle" icon="triangle-exclamation" href="/errors-lifecycle">
    Handle quote expiry, intake pauses, stuck orders, and safe retries.
  </Card>

  <Card title="API reference" icon="square-terminal" href="/api-reference">
    Inspect settlement request and response schemas.
  </Card>
</Columns>
