Paxos Orchestration Rules API

The Orchestration Rules API from Paxos — 2 operation(s) for orchestration rules.

OpenAPI Specification

paxos-orchestration-rules-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Paxos Account Members Orchestration Rules API
  version: '2.0'
  description: '<p>Welcome to Paxos APIs. At Paxos, our mission is to enable the movement of any asset, any time, in a trustworthy way. These APIs serve that mission by making it easier than ever for you to directly integrate our product capabilities into your application, leveraging the speed, stability, and security of the Paxos platform.</p> <p>The documentation that follows gives you access to our Crypto Brokerage, Trading, and Exchange products. It includes APIs for market data, orders, and the held rate quote flow.</p> <p>To test in our sandbox environment, <a href="https://account.sandbox.paxos.com" target="_blank">sign up</a> for an account. For more information about Paxos and our APIs, visit <a href="https://www.paxos.com/" target="_blank">Paxos.com</a>.</p>

    '
  x-logo:
    url: /docs/paxos.svg
    backgroundColor: '#FFFFFF'
    altText: Paxos logo
servers:
- url: https://api.paxos.com/v2
  description: Production
- url: https://api.sandbox.paxos.com/v2
  description: Sandbox
tags:
- name: Orchestration Rules
paths:
  /orchestration/rules:
    get:
      summary: List Orchestration Rules
      description: 'List all orchestration rules, optionally filtering and paging the results.


        By default, orchestration rules are returned in reverse chronological (descending)

        order by creation time. If no query parameters are supplied,

        the response will include up to the last 100 rules which were created.


        The paginated results default to display up to 100 rules, unless

        otherwise specified with the `limit` parameter. The maximum `limit` value is 1000.

        Every paginated response contains a `next_page_cursor` field until the last page is reached.


        Pass the `next_page_cursor` value into the `page_cursor` field of a new

        request to retrieve the next page of results.


        Rules can be filtered by:

        - Profile ID (`profile_id`)

        - Status (`status`)

        - Source asset (`source_asset`)

        - Destination asset (`destination_asset`)'
      operationId: ListOrchestrationRules
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListOrchestrationRulesResponse'
      parameters:
      - name: profile_id
        description: Optional filter by profile ID
        in: query
        required: false
        schema:
          type: string
      - name: status
        description: "Optional filter by statuses\n\n - ACTIVE: The rule is active, deposits matching the `source_asset` and `source` of this rule start a conversion and\nsubsequent delivery of the `destination_asset` to the specified `destination`.\n - DELETED: The rule has been deleted, newly deposited `source_assets` to the `source` of this rule will not be converted.\nThe deposited `source_asset` is still going to be credited to the Profile specified by `profile_id`.\n - PENDING: The rule creation is pending approval(s) before the rule becomes ACTIVE.\n - REJECTED: The rule creation has been rejected during the approval process."
        in: query
        required: false
        explode: true
        schema:
          type: array
          items:
            type: string
            enum:
            - ACTIVE
            - DELETED
            - PENDING
            - REJECTED
      - name: source_asset
        description: Optional filter by source asset
        in: query
        required: false
        schema:
          type: string
      - name: destination_asset
        description: Optional filter by destination asset
        in: query
        required: false
        schema:
          type: string
      - name: ids
        description: Optionally filter by the UUIDs of the orchestration rules. Limit 100.
        in: query
        required: false
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: limit
        description: Number of results to return. Defaults to 100 if no limit is provided. Maximum 1000.
        in: query
        required: false
        schema:
          type: integer
          format: int32
      - name: order
        description: Sort order for the results. Defaults to DESC by created_at time.
        in: query
        required: false
        schema:
          type: string
          enum:
          - DESC
          - ASC
      - name: page_cursor
        description: Optional Cursor for getting the next page of results.
        in: query
        required: false
        schema:
          type: string
      tags:
      - Orchestration Rules
      security:
      - OAuth2:
        - orchestration:read_orchestration_rule
    post:
      summary: Create Orchestration Rule
      description: 'Creates a persistent orchestration rule that automatically triggers orchestrations

        when matching deposits are received.


        The rule will:

        1. Generate deposit instructions associated with the rule.

        2. Continuously monitor incoming deposits to those instructions.

        3. Automatically execute orchestrations to the specified destination.


        Supported Sources:


        - Crypto deposit

        - Fiat deposit


        Supported Destinations:


        - Crypto address on a supported network

        - Bank account

        - Profile ID


        Error conditions:

        - [Already Exists](https://developer.paxos.com/docs/v2/problems/already-exists): Returned if a rule with the same ref_id already exists.'
      operationId: CreateOrchestrationRule
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateOrchestrationRuleResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateOrchestrationRuleRequest'
        required: true
      tags:
      - Orchestration Rules
      security:
      - OAuth2:
        - orchestration:write_orchestration_rule
  /orchestration/rules/{id}:
    delete:
      summary: Delete Orchestration Rule
      description: 'Deactivates an orchestration rule by updating its status to DELETED.

        Once deleted, the rule will no longer trigger new orchestrations.

        Any orchestrations previously created by the rule will continue to be processed.


        The request accepts a single rule ID and returns the updated rule resource

        with its status set to DELETED upon success.'
      operationId: DeleteOrchestrationRule
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteOrchestrationRuleResponse'
      parameters:
      - name: id
        description: The ID of the orchestration rule to delete
        in: path
        required: true
        schema:
          type: string
      tags:
      - Orchestration Rules
      security:
      - OAuth2:
        - orchestration:write_orchestration_rule
components:
  schemas:
    OrchestrationRuleProfileSource:
      type: object
      properties:
        profile_id:
          type: string
    CreateOrchestrationRuleRequestDestination:
      type: object
      properties:
        crypto:
          $ref: '#/components/schemas/CreateOrchestrationRuleRequestCryptoDestination'
        fiat:
          $ref: '#/components/schemas/CreateOrchestrationRuleRequestFiatDestination'
        profile:
          $ref: '#/components/schemas/CreateOrchestrationRuleRequestProfileDestination'
    OrchestrationRuleCryptoDestination:
      type: object
      properties:
        address:
          type: string
        network:
          type: string
    CreateOrchestrationRuleRequestCryptoSource:
      type: object
      properties:
        network:
          type: string
          description: 'The blockchain network for the crypto source.


            Valid values: ETHEREUM, SOLANA, STELLAR, BASE, POLYGON'
    OrchestrationRuleSource:
      type: object
      properties:
        crypto:
          $ref: '#/components/schemas/OrchestrationRuleCryptoSource'
        fiat:
          $ref: '#/components/schemas/OrchestrationRuleFiatSource'
        profile:
          $ref: '#/components/schemas/OrchestrationRuleProfileSource'
    CreateOrchestrationRuleRequest:
      type: object
      example:
        ref_id: my-rule-001
        nickname: USDC to USDG conversion
        profile_id: e8ea8b1c-4e8d-4c59-9e7a-c985194ba2e8
        source_asset: USDC
        destination_asset: USDG
        source:
          crypto:
            network: ETHEREUM
        destination:
          profile:
            profile_id: e8ea8b1c-4e8d-4c59-9e7a-c985194ba2e8
      properties:
        ref_id:
          type: string
          description: Client-provided unique reference ID for the rule.
        nickname:
          type: string
          description: Optional human-readable nickname for the rule.
        profile_id:
          type: string
          description: Profile ID of the account owner.
        identity_id:
          type: string
          description: Identity ID of the account owner.
        account_id:
          type: string
          description: Account ID where the rule applies.
        source_asset:
          type: string
          description: 'Asset being converted from.


            Valid values: USDG, PYUSD, USDP, USDC, USD'
        destination_asset:
          type: string
          description: 'Asset being converted to.


            Valid values: USDG, PYUSD, USDP, USDC, USD'
        source:
          $ref: '#/components/schemas/CreateOrchestrationRuleRequestSource'
        destination:
          $ref: '#/components/schemas/CreateOrchestrationRuleRequestDestination'
      required:
      - ref_id
      - profile_id
      - source_asset
      - destination_asset
      - source
    OrchestrationRuleDestination:
      type: object
      properties:
        crypto:
          $ref: '#/components/schemas/OrchestrationRuleCryptoDestination'
        fiat:
          $ref: '#/components/schemas/OrchestrationRuleFiatDestination'
        profile:
          $ref: '#/components/schemas/OrchestrationRuleProfileDestination'
    CreateOrchestrationRuleRequestProfileDestination:
      type: object
      properties:
        profile_id:
          type: string
    CreateOrchestrationRuleRequestCryptoDestination:
      type: object
      properties:
        address:
          type: string
          description: '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:
          type: string
          description: The blockchain network of the destination address.
        crypto_address_id:
          type: string
          description: Deprecated. Specify `address` and `network` instead.
    CreateOrchestrationRuleResponse:
      type: object
      properties:
        rule:
          $ref: '#/components/schemas/OrchestrationRule'
    OrchestrationRuleFiatSource:
      type: object
      properties:
        deposit_instructions_id:
          type: string
        network:
          type: string
        account_type:
          type: string
        memo_id:
          type: string
    OrchestrationRuleProfileDestination:
      type: object
      properties:
        profile_id:
          type: string
    OrchestrationRuleStatus:
      type: string
      enum:
      - ACTIVE
      - DELETED
      - PENDING
      - REJECTED
      description: " - ACTIVE: The rule is active, deposits matching the `source_asset` and `source` of this rule start a conversion and\nsubsequent delivery of the `destination_asset` to the specified `destination`.\n - DELETED: The rule has been deleted, newly deposited `source_assets` to the `source` of this rule will not be converted.\nThe deposited `source_asset` is still going to be credited to the Profile specified by `profile_id`.\n - PENDING: The rule creation is pending approval(s) before the rule becomes ACTIVE.\n - REJECTED: The rule creation has been rejected during the approval process."
    OrchestrationRuleCryptoSource:
      type: object
      properties:
        address_id:
          type: string
        address:
          type: string
        network:
          type: string
    CreateOrchestrationRuleRequestFiatDestination:
      type: object
      properties:
        fiat_account_id:
          type: string
          description: 'The ID of a pre-approved fiat account.


            Valid fiat account IDs can be retrieved using:

            - CreateFiatAccount endpoint (/transfer/fiat-accounts)

            - GetFiatAccount endpoint (/transfer/fiat-accounts/{id})

            - ListFiatAccounts endpoint (/transfer/fiat-accounts)'
        memo:
          type: string
    DeleteOrchestrationRuleResponse:
      type: object
      properties:
        rule:
          $ref: '#/components/schemas/OrchestrationRule'
    OrchestrationRule:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the orchestration rule.
        ref_id:
          type: string
          description: Unique reference ID for the rule.
        nickname:
          type: string
          description: Optional human-readable nickname for the rule.
        profile_id:
          type: string
          description: Profile ID of the account owner.
        identity_id:
          type: string
          description: Identity ID of the account owner.
        account_id:
          type: string
          description: Account ID where the rule applies.
        status:
          $ref: '#/components/schemas/OrchestrationRuleStatus'
        source_asset:
          type: string
          description: Asset being converted from.
        destination_asset:
          type: string
          description: Asset being converted to.
        source:
          $ref: '#/components/schemas/OrchestrationRuleSource'
        destination:
          $ref: '#/components/schemas/OrchestrationRuleDestination'
        created_at:
          type: string
          format: date-time
          description: Timestamp when the rule was created.
    CreateOrchestrationRuleRequestFiatSource:
      type: object
      properties:
        network:
          type: string
          description: 'The fiat network for the source.


            Valid values: WIRE, CUBIX'
        account_type:
          type: string
          description: 'The account type for the fiat source.


            Valid values: SWIFT, ABA'
    ListOrchestrationRulesResponse:
      type: object
      properties:
        rules:
          type: array
          items:
            $ref: '#/components/schemas/OrchestrationRule'
          description: 'Deprecated: Use items instead. This field will be removed in a future version.'
        next_page_cursor:
          type: string
        items:
          type: array
          items:
            $ref: '#/components/schemas/OrchestrationRule'
    OrchestrationRuleFiatDestination:
      type: object
      properties:
        fiat_account_id:
          type: string
        memo:
          type: string
    CreateOrchestrationRuleRequestSource:
      type: object
      properties:
        crypto:
          $ref: '#/components/schemas/CreateOrchestrationRuleRequestCryptoSource'
        fiat:
          $ref: '#/components/schemas/CreateOrchestrationRuleRequestFiatSource'
  securitySchemes:
    OAuth2:
      type: oauth2
      description: 'Paxos APIs use [OAuth 2](https://tools.ietf.org/html/rfc6749) with the [client credentials](https://tools.ietf.org/html/rfc6749#section-4.4) grant flow.


        **Token URLs:**

        - Production: https://oauth.paxos.com/oauth2/token

        - Sandbox: https://oauth.sandbox.paxos.com/oauth2/token


        Learn more in the [API credentials guide →](https://docs.paxos.com/developer/credentials)

        '
      flows:
        clientCredentials:
          tokenUrl: https://oauth.paxos.com/oauth2/token
          scopes:
            conversion:read_conversion_stablecoin: Retrieve stablecoin conversion details
            conversion:write_conversion_stablecoin: Create or cancel a stablecoin conversion
            exchange:historical_prices: Retrieve marketnaverage prices at a certain time increment
            exchange:read_order: Retrieve order or order execution details
            exchange:read_quote: Retrieve quote details for buying or selling an asset
            exchange:read_quote_execution: Retrieve quote execution details
            exchange:write_quote_execution: Create a quote execution for buying or selling an asset
            exchange:write_order: Create or cancel an order for buying or selling an asset
            fee:write_crypto_withdrawal_fee: Create a guaranteed fee for crypto withdrawal
            funding:read_bank_balance: Retrieve Paxos dedicated bank account balance
            funding:read_profile: Retrieve Profile details and deposit funds in Sandbox
            funding:write_profile: Create a Profile
            identity:read_account: Retrieve Account details
            identity:read_identity: Retrieve Identity details or documents
            identity:write_account: Create or update Account and Account Members
            identity:write_identity: Create or update Identity details and set Sandbox Identify Status
            settlement:read_transaction: Retrieve settlement transaction details
            settlement:write_transaction: Create, affirm or cancel a settlement transaction
            tax:read_tax_form: Retrieve tax details
            tax:read_tax_lot: Retrieve tax lot details
            tax:write_tax_lot: Update the given tax-lot ID
            transfer:read_deposit_address: Retrieve deposit address details
            transfer:read_fiat_account: Retrieve Fiat Account details
            transfer:read_fiat_deposit_instructions: Retrieve fiat deposit instruction details
            transfer:read_transfer: Retrieve transfer details
            transfer:read_transfer_limit: Retrieve limits for the given transaction type
            transfer:reject_crypto_deposit: Reject a crypto deposit (travel rule)
            transfer:update_crypto_deposit: Provide required travel-rule details
            transfer:write_crypto_withdrawal: Withdraw asset to a specified destination address
            transfer:write_deposit_address: Create an deposit address on a blockchain network
            transfer:write_fiat_account: Create, update or delete a Fiat Account
            transfer:write_fiat_deposit_instructions: Create, update or delete fiat deposit instructions
            transfer:write_internal_transfer: Transfer assets between two Profiles
            transfer:write_sandbox_fiat_deposit: Initiate a test fiat deposit in the Sandbox environment
            transfer:write_fiat_withdrawal: Withdraw fiat to the given destination
            events:read_event: Retrieve events
x-tagGroups:
- name: Deposits and Withdrawals
  tags:
  - Transfers
  - Fiat Transfers
  - Deposit Addresses
  - Crypto Deposits
  - Crypto Withdrawals
  - Fees
  - Internal Transfers
  - Paxos Transfers
  - Limits
- name: Identity
  tags:
  - Identity
  - Institution Members
  - Accounts
  - Account Members
  - Identity Documents
- name: API Credentials
  tags:
  - API Credentials
- name: Profiles
  tags:
  - Profiles
- name: Sandbox
  tags:
  - Sandbox Deposits
  - Sandbox Identity
  - Sandbox Fiat Transfers
- name: Settlements
  tags:
  - Settlement
- name: Stablecoin Conversion
  tags:
  - Stablecoin Conversion
- name: Taxes
  tags:
  - Tax Forms
- name: Trading
  tags:
  - Market Data
  - Orders
  - Quotes
  - Quote Executions
  - Pricing
  - Issuer Quotes
- name: Rewards
  tags:
  - Monitoring Addresses
  - Statements
  - Payments
- name: Rewards (Alpha)
  tags:
  - Reward Addresses
  - Claims
  - Payout Groups
  - Rewards
- name: Events
  tags:
  - Events
  - Event Types
  - Event Objects