---
title: "Create Orchestration"
method: POST
path: "/orchestration/orchestrations"
tags: ["Orchestrations"]
---

# Create Orchestration

`POST /orchestration/orchestrations`

Creates a one-time orchestration that moves assets from a source profile to a destination.
Use this endpoint when funds already reside on the Paxos platform and need to be transferred or converted as part of a single workflow.

A request to create an orchestration can fail with one of the following
types of errors:
 - [Insufficient Funds](https://developer.paxos.com/docs/v2/problems/insufficient-funds)
   if the Profile (`profile_id`) has insufficient available balance to
   fund the execution.
 - [Already Exists](https://developer.paxos.com/docs/v2/problems/already-exists)
   if an orchestration with the same external ID (`ref_id`) has already been created.

## Request body

- CreateOrchestrationRequest
  - `identity_id` string
  - `account_id` string
  - `ref_id` string, required — A client or system-specified unique identifier for the orchestration - used for idempotency protection. Retries of a request should use the same ref_id to avoid duplicate transactions.
  - `source_asset` string, required
  - `destination_asset` string, required
  - `source_amount` string, decimal, required
  - `source` CreateOrchestrationRequestSource
    - `profile` CreateOrchestrationRequestProfileSource
      - `profile_id` string
  - `destination` CreateOrchestrationRequestDestination
    - `crypto` CreateOrchestrationRequestCryptoDestination
      - `address` string — The blockchain destination address. Specify together with `network` (and `identity_id` on the parent request for 3P integrations). These together identify a CryptoDestinationAddress whose travel rule metadata will be used.
      - `network` string — The blockchain network of the destination address.
      - `address_id` string — Deprecated. Specify `address` and `network` instead.
    - `fiat` CreateOrchestrationRequestFiatDestination
      - `bank_account_id` string
      - `memo` string
    - `profile` CreateOrchestrationRequestProfileDestination
      - `profile_id` string
  - `metadata` object

## Response `200`

A successful response.

- Orchestration — Orchestrations can be created directly via the CreateOrchestration endpoint, or indirectly by an incoming deposit which matches an OrchestrationRule previously defined with the CreateOrchestrationRule endpoint.
  - `id` string
  - `profile_id` string
  - `identity_id` string
  - `account_id` string
  - `customer_id` string
  - `ref_id` string — A client or system-specified unique identifier for the orchestration - used for idempotency protection. Retries of a request should use the same ref_id to avoid duplicate transactions. For system-initiated orchestrations generated by invocation of an orchestration rule, the ref_id is generated the system.
  - `source_asset` string
  - `destination_asset` string
  - `source_amount` string, decimal
  - `source_transfer` TransferDetails — TransferDetails refers to a specific Transfer and encodes its current status.
    - `transfer_id` string
    - `status` 'PENDING' | 'PROCESSING' | 'COMPLETED' | 'FAILED' — - PENDING: PENDING: a transfer is planned, but its resource_id is not yet known. - PROCESSING: PROCESSING: a transfer with `resource_id` is being processed. resource_id is guaranteed to be set if the status is PROCESSING. - COMPLETED: COMPLETED: a transfer with `resource_id` has successfully completed. - FAILED: FAILED: a transfer with `resource_id` has failed.
  - `destination_transfer` TransferDetails — TransferDetails refers to a specific Transfer and encodes its current status.
    - `transfer_id` string
    - `status` 'PENDING' | 'PROCESSING' | 'COMPLETED' | 'FAILED' — - PENDING: PENDING: a transfer is planned, but its resource_id is not yet known. - PROCESSING: PROCESSING: a transfer with `resource_id` is being processed. resource_id is guaranteed to be set if the status is PROCESSING. - COMPLETED: COMPLETED: a transfer with `resource_id` has successfully completed. - FAILED: FAILED: a transfer with `resource_id` has failed.
  - `status` 'PROCESSING' | 'COMPLETED' | 'FAILED' | 'PENDING' | 'REJECTED' — Status represents the current state of an orchestration. - PROCESSING: The orchestration is actively being processed. - COMPLETED: The orchestration completed successfully. - FAILED: The orchestration failed during processing. - PENDING: The orchestration is awaiting approval before processing begins. Once approved, it transitions to PROCESSING. If rejected, it transitions to REJECTED. - REJECTED: The orchestration was rejected during approval.
  - `fail_reason` FailReason
    - `detail` string
  - `source` OrchestrationSource
    - `crypto` OrchestrationCryptoSource
      - `address_id` string
      - `address` string
      - `network` string
    - `fiat` OrchestrationFiatSource
      - `deposit_instructions_id` string
      - `memo` string
    - `profile` OrchestrationProfileSource
      - `profile_id` string
  - `destination` OrchestrationDestination
    - `crypto` OrchestrationCryptoDestination
      - `address_id` string
      - `address` string
      - `network` string
    - `fiat` OrchestrationFiatDestination
      - `bank_account_id` string
      - `memo` string
    - `profile` OrchestrationProfileDestination
      - `profile_id` string
  - `orchestration_rule_id` string — The ID of the orchestration rule which triggered this orchestration. Can be empty for ad-hoc orchestrations.
  - `created_at` string, date-time
  - `updated_at` string, date-time
  - `metadata` object

---

[API](https://skmtc.net/paxos/apis/paxos-api.md) · [All operations](https://skmtc.net/paxos/apis/paxos-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/paxos/paxos-api/revisions/0687ca8c9a8d/schema)
