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

# Verify an Arc CCTP burn and start settlement

> Submit the confirmed Arc transaction hash after executing the order's
burn plan. COP By verifies the CCTP events against the order, then
starts the asynchronous CCTP, Squid, and Celo delivery flow.




## OpenAPI

````yaml /openapi.yaml post /api/integrations/settlements/orders/{orderId}/burn
openapi: 3.1.0
info:
  title: COP By Integrations API
  version: 0.1.0
  description: |
    Non-custodial Celo API for partners. Prepare swaps and BRE-B COP payouts;
    the user signs from their wallet. Confirm with the transaction hash.
servers:
  - url: https://api.copby.digitalcop.shop
    description: Production API
security:
  - bearerAuth: []
tags:
  - name: Settlement
    description: Quote Arc USDC and create settlement orders that deliver COPm on Celo
  - name: Swaps
    description: Prepare and confirm onchain COPm swaps
  - name: BRE-B
    description: Quote, KYC, and COP payouts via Bridge Bre-B
  - name: Webhooks
    description: >
      Bridge → COP By inbound callbacks, plus outbound partner payout webhooks
      (REQ-INT-WH-01).

      Partners configure URL + signing secret in the dashboard; deliveries are
      HMAC-signed.
paths:
  /api/integrations/settlements/orders/{orderId}/burn:
    post:
      tags:
        - Settlement
      summary: Verify an Arc CCTP burn and start settlement
      description: |
        Submit the confirmed Arc transaction hash after executing the order's
        burn plan. COP By verifies the CCTP events against the order, then
        starts the asynchronous CCTP, Squid, and Celo delivery flow.
      operationId: reportSettlementBurn
      parameters:
        - name: orderId
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReportSettlementBurnRequest'
            example:
              txHash: >-
                0x1111111111111111111111111111111111111111111111111111111111111111
      responses:
        '200':
          description: Verified burn and current settlement state
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SettlementBurnReported'
        '400':
          $ref: '#/components/responses/SettlementError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/SettlementError'
        '409':
          $ref: '#/components/responses/SettlementError'
        '429':
          $ref: '#/components/responses/SettlementError'
components:
  schemas:
    ReportSettlementBurnRequest:
      type: object
      required:
        - txHash
      properties:
        txHash:
          type: string
          pattern: ^0x[a-fA-F0-9]{64}$
    SettlementBurnReported:
      type: object
      required:
        - orderId
        - status
        - health
        - fundsStatus
      properties:
        orderId:
          type: string
        status:
          type: string
          enum:
            - BURNED
            - ATTESTED
            - MINTED
            - ROUTING
            - ROUTED
            - DELIVERED
        health:
          type: string
          enum:
            - HEALTHY
            - STUCK
        fundsStatus:
          type: string
          enum:
            - BURNED_ON_ARC
            - AWAITING_ATTESTATION
            - USDC_ON_ARBITRUM
            - IN_TRANSIT_TO_CELO
            - USDM_ON_CELO
            - COPM_ON_CELO
            - DELIVERED_TO_DESTINATION
    SettlementErrorBody:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
            - stage
            - fundsStatus
            - fundsMoved
            - retryable
            - nextAction
          properties:
            code:
              type: string
              enum:
                - INVALID_REQUEST
                - RATE_LIMITED
                - INVALID_AMOUNT
                - INVALID_SOURCE_ADDRESS
                - INVALID_DESTINATION_ADDRESS
                - BELOW_MINIMUM
                - ABOVE_MAXIMUM
                - QUOTE_EXPIRED
                - QUOTE_NOT_FOUND
                - ROUTE_UNAVAILABLE
                - SLIPPAGE_LIMIT_EXCEEDED
                - MENTO_CAPACITY_EXCEEDED
                - IDEMPOTENCY_CONFLICT
                - QUOTE_ALREADY_USED
                - INVALID_BURN
                - BURN_ALREADY_USED
                - INVALID_IDEMPOTENCY_KEY
                - ORDER_NOT_FOUND
                - PROVIDER_UNAVAILABLE
                - INTERNAL_ERROR
                - INTAKE_PAUSED
                - SETTLEMENT_ACCOUNT_INACTIVE
            message:
              type: string
            stage:
              type: string
            fundsStatus:
              type: string
            fundsMoved:
              type: boolean
            retryable:
              type: boolean
            nextAction:
              type: string
            requestId:
              type: string
  responses:
    SettlementError:
      description: Settlement lifecycle error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SettlementErrorBody'
    Unauthorized:
      description: Missing or invalid integration API key
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Integration API key. Send as `Bearer copby_live_pk_…`.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.