Skip to documentation
Billing & payoutsPayout connections

Payout connections

Methods, permissions, request fields and response schemas for payout connections.

Read and search

Retrieve current records, history and status.

List organization payout sourcesSearch and paginate payout connections records accessible to your organization.GET/org-payout-connections
Token scope payouts:readActor permission memberAction type read

Pagination: Default 50, maximum 100. Follow nextCursor with the same search, tenant and resource until null. Creation cutoff excludes later inserts; mutable fields may change between pages. Unsupported search returns 400.

Query parameters

FieldTypeDescription and constraints
limitOptionalintegerMinimum 1 · Maximum 100 · Default: 50
cursorOptionalstringAt least 1 characters · At most 768 characters
searchOptionalstringAt least 0 characters · At most 200 characters
Explore this request

Edit example fields and validate the request against its schema.

What you receive

{data: bounded payout-connections summaries[], nextCursor: string | null}. Fetch detail endpoints for full records.

Request example · cURL

Replace example IDs and values. Supply the token from your secret store. Each intended write uses one stable $ACTION_KEY.

curl -X GET "$BASE/org-payout-connections?limit=50" \
  -H "Authorization: Bearer $ALLPROFILES_API_TOKEN"
Success response schema · HTTP 200
{
  "application/json": {
    "schema": {
      "type": "object",
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "organizationId": {
                "type": "string",
                "format": "uuid"
              },
              "provider": {
                "type": "string",
                "enum": [
                  "self_custody",
                  "circle",
                  "bridge"
                ]
              },
              "label": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "isDefault": {
                "type": "boolean"
              },
              "enabled": {
                "type": "boolean"
              },
              "walletAddress": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "walletChain": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "walletCurrency": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "walletProvider": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "circleWalletId": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "createdById": {
                "type": "string",
                "format": "uuid"
              },
              "createdAt": {
                "type": "string",
                "format": "date-time"
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time"
              }
            },
            "required": [
              "id",
              "organizationId",
              "provider",
              "label",
              "isDefault",
              "enabled",
              "walletAddress",
              "walletChain",
              "walletCurrency",
              "walletProvider",
              "circleWalletId",
              "createdById",
              "createdAt",
              "updatedAt"
            ],
            "additionalProperties": false
          },
          "maxItems": 100,
          "minItems": 0
        },
        "nextCursor": {
          "type": [
            "string",
            "null"
          ],
          "minLength": 1,
          "maxLength": 768
        }
      },
      "required": [
        "data",
        "nextCursor"
      ],
      "additionalProperties": false
    }
  }
}
Errors and recovery
400
Invalid JSON, request fields, query, path identifier or missing Idempotency-Key.
401
Missing, invalid, revoked or expired organization API token; its issuing actor must still be the current organization owner.
403
Token scope or actor capability denied, disabled/banned account, or action unavailable.
404
Unknown route or resource not accessible in the bound organization. Cross-tenant resources are not enumerated.
409
Conflicting profile/rental state, duplicate resource, idempotency payload mismatch or operation still in progress.
410
event_cursor_expired: the event cursor is behind retained history. Reconcile current resources and start from the supplied recovery cursor.
422
Business validation/moderation rejected the operation. CHAT_MESSAGE_BLOCKED was not delivered.
429
API rate/concurrency limit exceeded; use backoff and Retry-After when present.
500
Internal operation error. Sensitive implementation details are not returned. Investigate using the request ID before repeating a write.
503
Provider or configuration unavailable; uncertain writes must retain the same Idempotency-Key.

These are documented API errors. The local sandbox checks schema fields only and does not test authorization, moderation or provider behavior.

Financial fields named ...Cents or ...InCents use integer cents. Path fields and nested constraints are shown above and in the downloadable OpenAPI contract.

Read a payout wallet balanceCurrent balance and provider state for an organization connection.GET/org-payout-connections/:id/balance
Token scope payouts:readActor permission memberAction type read

Path parameters

FieldTypeDescription and constraints
idRequiredstring · uuid

Resource UUID scoped to the current organization.

Explore this request

Edit example fields and validate the request against its schema.

What you receive

Current balance and provider state for an organization connection.

Request example · cURL

Replace example IDs and values. Supply the token from your secret store. Each intended write uses one stable $ACTION_KEY.

curl -X GET "$BASE/org-payout-connections/$ID/balance" \
  -H "Authorization: Bearer $ALLPROFILES_API_TOKEN"
Success response schema · HTTP 200
{
  "application/json": {
    "schema": {
      "type": "object",
      "properties": {
        "amount": {
          "type": "string",
          "minLength": 0,
          "maxLength": 5000
        },
        "address": {
          "type": [
            "string",
            "null"
          ],
          "minLength": 0,
          "maxLength": 5000
        },
        "chain": {
          "type": [
            "string",
            "null"
          ],
          "minLength": 0,
          "maxLength": 5000
        },
        "simulate": {
          "type": "boolean"
        },
        "availableCents": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "heldCents": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "debtCents": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "nextReleaseAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        }
      },
      "required": [
        "amount",
        "address",
        "chain",
        "simulate"
      ],
      "additionalProperties": true
    }
  }
}
Errors and recovery
400
Invalid JSON, request fields, query, path identifier or missing Idempotency-Key.
401
Missing, invalid, revoked or expired organization API token; its issuing actor must still be the current organization owner.
403
Token scope or actor capability denied, disabled/banned account, or action unavailable.
404
Unknown route or resource not accessible in the bound organization. Cross-tenant resources are not enumerated.
409
Conflicting profile/rental state, duplicate resource, idempotency payload mismatch or operation still in progress.
410
event_cursor_expired: the event cursor is behind retained history. Reconcile current resources and start from the supplied recovery cursor.
422
Business validation/moderation rejected the operation. CHAT_MESSAGE_BLOCKED was not delivered.
429
API rate/concurrency limit exceeded; use backoff and Retry-After when present.
500
Internal operation error. Sensitive implementation details are not returned. Investigate using the request ID before repeating a write.
503
Provider or configuration unavailable; uncertain writes must retain the same Idempotency-Key.

These are documented API errors. The local sandbox checks schema fields only and does not test authorization, moderation or provider behavior.

Financial fields named ...Cents or ...InCents use integer cents. Path fields and nested constraints are shown above and in the downloadable OpenAPI contract.

Read legacy payout transaction historySame bounded transfer/adjustment history as GET /org-payout-connections/:id/history; source defaults to transfers.GET/org-payout-connections/:id/transactions
Token scope payouts:readActor permission memberAction type read

Pagination: limit 1–50. Choose transfers or adjustments and follow the returned cursor. Provider transfers are refreshed by the existing service.

Path parameters

FieldTypeDescription and constraints
idRequiredstring · uuid

Resource UUID scoped to the current organization.

Query parameters

FieldTypeDescription and constraints
sourceOptionalstringOne of: "transfers", "adjustments" · Default: "transfers"
limitOptionalintegerMinimum 1 · Maximum 50 · Default: 20
cursorOptionalstring · uuid
Explore this request

Edit example fields and validate the request against its schema.

What you receive

Same bounded transfer/adjustment history as GET /org-payout-connections/:id/history; source defaults to transfers.

Request example · cURL

Replace example IDs and values. Supply the token from your secret store. Each intended write uses one stable $ACTION_KEY.

curl -X GET "$BASE/org-payout-connections/$ID/transactions?limit=20" \
  -H "Authorization: Bearer $ALLPROFILES_API_TOKEN"
Success response schema · HTTP 200
{
  "application/json": {
    "schema": {
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 0,
                "maxLength": 5000
              },
              "type": {
                "type": "string",
                "enum": [
                  "in",
                  "out"
                ]
              },
              "amount": {
                "type": [
                  "string",
                  "null"
                ],
                "minLength": 0,
                "maxLength": 5000
              },
              "counterparty": {
                "type": [
                  "string",
                  "null"
                ],
                "minLength": 0,
                "maxLength": 5000
              },
              "status": {
                "type": "string",
                "enum": [
                  "processing",
                  "paid",
                  "failed"
                ]
              },
              "state": {
                "type": [
                  "string",
                  "null"
                ],
                "minLength": 0,
                "maxLength": 5000
              },
              "txHash": {
                "type": [
                  "string",
                  "null"
                ],
                "minLength": 0,
                "maxLength": 5000
              },
              "explorerUrl": {
                "type": [
                  "string",
                  "null"
                ],
                "minLength": 0,
                "maxLength": 5000
              },
              "networkFee": {
                "type": [
                  "string",
                  "null"
                ],
                "minLength": 0,
                "maxLength": 5000
              },
              "date": {
                "type": [
                  "string",
                  "null"
                ],
                "minLength": 0,
                "maxLength": 5000
              },
              "label": {
                "type": [
                  "string",
                  "null"
                ],
                "minLength": 0,
                "maxLength": 5000
              },
              "reason": {
                "type": [
                  "string",
                  "null"
                ],
                "minLength": 0,
                "maxLength": 5000
              },
              "accountName": {
                "type": [
                  "string",
                  "null"
                ],
                "minLength": 0,
                "maxLength": 5000
              },
              "clientName": {
                "type": [
                  "string",
                  "null"
                ],
                "minLength": 0,
                "maxLength": 5000
              }
            },
            "required": [
              "id",
              "type",
              "amount",
              "counterparty",
              "status",
              "state",
              "txHash",
              "explorerUrl",
              "networkFee",
              "date"
            ],
            "additionalProperties": true
          }
        },
        "cursor": {
          "type": [
            "string",
            "null"
          ],
          "minLength": 0,
          "maxLength": 5000
        },
        "hasMore": {
          "type": "boolean"
        }
      },
      "required": [
        "items",
        "cursor",
        "hasMore"
      ],
      "additionalProperties": true
    }
  }
}
Errors and recovery
400
Invalid JSON, request fields, query, path identifier or missing Idempotency-Key.
401
Missing, invalid, revoked or expired organization API token; its issuing actor must still be the current organization owner.
403
Token scope or actor capability denied, disabled/banned account, or action unavailable.
404
Unknown route or resource not accessible in the bound organization. Cross-tenant resources are not enumerated.
409
Conflicting profile/rental state, duplicate resource, idempotency payload mismatch or operation still in progress.
410
event_cursor_expired: the event cursor is behind retained history. Reconcile current resources and start from the supplied recovery cursor.
422
Business validation/moderation rejected the operation. CHAT_MESSAGE_BLOCKED was not delivered.
429
API rate/concurrency limit exceeded; use backoff and Retry-After when present.
500
Internal operation error. Sensitive implementation details are not returned. Investigate using the request ID before repeating a write.
503
Provider or configuration unavailable; uncertain writes must retain the same Idempotency-Key.

These are documented API errors. The local sandbox checks schema fields only and does not test authorization, moderation or provider behavior.

Financial fields named ...Cents or ...InCents use integer cents. Path fields and nested constraints are shown above and in the downloadable OpenAPI contract.

Read paginated payout historyCursor history page from the wallet service.GET/org-payout-connections/:id/history
Token scope payouts:readActor permission memberAction type read

Pagination: limit 1–50; cursor UUID from the previous response; source is transfers or adjustments.

Path parameters

FieldTypeDescription and constraints
idRequiredstring · uuid

Resource UUID scoped to the current organization.

Query parameters

FieldTypeDescription and constraints
sourceOptionalstringOne of: "transfers", "adjustments"
cursorOptionalstring · uuid
limitOptionalintegerMinimum 1 · Maximum 50
Explore this request

Edit example fields and validate the request against its schema.

What you receive

Cursor history page from the wallet service.

Request example · cURL

Replace example IDs and values. Supply the token from your secret store. Each intended write uses one stable $ACTION_KEY.

curl -X GET "$BASE/org-payout-connections/$ID/history?limit=20" \
  -H "Authorization: Bearer $ALLPROFILES_API_TOKEN"
Success response schema · HTTP 200
{
  "application/json": {
    "schema": {
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 0,
                "maxLength": 5000
              },
              "type": {
                "type": "string",
                "enum": [
                  "in",
                  "out"
                ]
              },
              "amount": {
                "type": [
                  "string",
                  "null"
                ],
                "minLength": 0,
                "maxLength": 5000
              },
              "counterparty": {
                "type": [
                  "string",
                  "null"
                ],
                "minLength": 0,
                "maxLength": 5000
              },
              "status": {
                "type": "string",
                "enum": [
                  "processing",
                  "paid",
                  "failed"
                ]
              },
              "state": {
                "type": [
                  "string",
                  "null"
                ],
                "minLength": 0,
                "maxLength": 5000
              },
              "txHash": {
                "type": [
                  "string",
                  "null"
                ],
                "minLength": 0,
                "maxLength": 5000
              },
              "explorerUrl": {
                "type": [
                  "string",
                  "null"
                ],
                "minLength": 0,
                "maxLength": 5000
              },
              "networkFee": {
                "type": [
                  "string",
                  "null"
                ],
                "minLength": 0,
                "maxLength": 5000
              },
              "date": {
                "type": [
                  "string",
                  "null"
                ],
                "minLength": 0,
                "maxLength": 5000
              },
              "label": {
                "type": [
                  "string",
                  "null"
                ],
                "minLength": 0,
                "maxLength": 5000
              },
              "reason": {
                "type": [
                  "string",
                  "null"
                ],
                "minLength": 0,
                "maxLength": 5000
              },
              "accountName": {
                "type": [
                  "string",
                  "null"
                ],
                "minLength": 0,
                "maxLength": 5000
              },
              "clientName": {
                "type": [
                  "string",
                  "null"
                ],
                "minLength": 0,
                "maxLength": 5000
              }
            },
            "required": [
              "id",
              "type",
              "amount",
              "counterparty",
              "status",
              "state",
              "txHash",
              "explorerUrl",
              "networkFee",
              "date"
            ],
            "additionalProperties": true
          }
        },
        "cursor": {
          "type": [
            "string",
            "null"
          ],
          "minLength": 0,
          "maxLength": 5000
        },
        "hasMore": {
          "type": "boolean"
        }
      },
      "required": [
        "items",
        "cursor",
        "hasMore"
      ],
      "additionalProperties": true
    }
  }
}
Errors and recovery
400
Invalid JSON, request fields, query, path identifier or missing Idempotency-Key.
401
Missing, invalid, revoked or expired organization API token; its issuing actor must still be the current organization owner.
403
Token scope or actor capability denied, disabled/banned account, or action unavailable.
404
Unknown route or resource not accessible in the bound organization. Cross-tenant resources are not enumerated.
409
Conflicting profile/rental state, duplicate resource, idempotency payload mismatch or operation still in progress.
410
event_cursor_expired: the event cursor is behind retained history. Reconcile current resources and start from the supplied recovery cursor.
422
Business validation/moderation rejected the operation. CHAT_MESSAGE_BLOCKED was not delivered.
429
API rate/concurrency limit exceeded; use backoff and Retry-After when present.
500
Internal operation error. Sensitive implementation details are not returned. Investigate using the request ID before repeating a write.
503
Provider or configuration unavailable; uncertain writes must retain the same Idempotency-Key.

These are documented API errors. The local sandbox checks schema fields only and does not test authorization, moderation or provider behavior.

Financial fields named ...Cents or ...InCents use integer cents. Path fields and nested constraints are shown above and in the downloadable OpenAPI contract.

Read a payout transactionTransaction detail including status and explorer link; txId is a provider transaction identifier.GET/org-payout-connections/:id/transactions/:txId
Token scope payouts:readActor permission memberAction type read

Path parameters

FieldTypeDescription and constraints
idRequiredstring · uuid

Resource UUID scoped to the current organization.

txIdRequiredstring

Provider transaction identifier belonging to this payout source.

At least 1 characters · At most 200 characters
Explore this request

Edit example fields and validate the request against its schema.

What you receive

Transaction detail including status and explorer link; txId is a provider transaction identifier.

Request example · cURL

Replace example IDs and values. Supply the token from your secret store. Each intended write uses one stable $ACTION_KEY.

curl -X GET "$BASE/org-payout-connections/$ID/transactions/$TX_ID" \
  -H "Authorization: Bearer $ALLPROFILES_API_TOKEN"
Success response schema · HTTP 200
{
  "application/json": {
    "schema": {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "enum": [
            "processing",
            "paid",
            "failed"
          ]
        },
        "state": {
          "type": [
            "string",
            "null"
          ],
          "minLength": 0,
          "maxLength": 5000
        },
        "txHash": {
          "type": [
            "string",
            "null"
          ],
          "minLength": 0,
          "maxLength": 5000
        },
        "explorerUrl": {
          "type": [
            "string",
            "null"
          ],
          "minLength": 0,
          "maxLength": 5000
        }
      },
      "required": [
        "status",
        "state",
        "txHash",
        "explorerUrl"
      ],
      "additionalProperties": true
    }
  }
}
Errors and recovery
400
Invalid JSON, request fields, query, path identifier or missing Idempotency-Key.
401
Missing, invalid, revoked or expired organization API token; its issuing actor must still be the current organization owner.
403
Token scope or actor capability denied, disabled/banned account, or action unavailable.
404
Unknown route or resource not accessible in the bound organization. Cross-tenant resources are not enumerated.
409
Conflicting profile/rental state, duplicate resource, idempotency payload mismatch or operation still in progress.
410
event_cursor_expired: the event cursor is behind retained history. Reconcile current resources and start from the supplied recovery cursor.
422
Business validation/moderation rejected the operation. CHAT_MESSAGE_BLOCKED was not delivered.
429
API rate/concurrency limit exceeded; use backoff and Retry-After when present.
500
Internal operation error. Sensitive implementation details are not returned. Investigate using the request ID before repeating a write.
503
Provider or configuration unavailable; uncertain writes must retain the same Idempotency-Key.

These are documented API errors. The local sandbox checks schema fields only and does not test authorization, moderation or provider behavior.

Financial fields named ...Cents or ...InCents use integer cents. Path fields and nested constraints are shown above and in the downloadable OpenAPI contract.

Create and import

Add records, prepare imports or start a new setup.

Register a self-custody payout walletRegistration does not grant signing control.POST/org-payout-connections/wallet
Token scope payouts:writeActor permission managerAction type write

This action needs separately enabled financial automation. Check deployed capabilities before using it; its scope may be unavailable in the token picker.

Send Idempotency-Key. Retry the same intended action with the same key and exact payload to retrieve its saved result.

Before you use it

Registration does not grant signing control. Actual self-custody transfers require the wallet holder's signature; supported chains are EVM chains, not Tron.

Request body

FieldTypeDescription and constraints
labelOptionalstringAt least 0 characters · At most 60 characters
walletAddressRequiredstringAt least 8 characters · At most 120 characters
walletChainRequiredstringOne of: "base", "polygon", "ethereum", "arbitrum", "optimism"
walletProviderOptionalstringAt least 0 characters · At most 60 characters
Explore this request

Edit example fields and validate the request against its schema.

What you receive

Registered wallet connection.

Request example · cURL

Replace example IDs and values. Supply the token from your secret store. Each intended write uses one stable $ACTION_KEY.

curl -X POST "$BASE/org-payout-connections/wallet" \
  -H "Authorization: Bearer $ALLPROFILES_API_TOKEN" \
  -H "Idempotency-Key: $ACTION_KEY" \
  -H "Content-Type: application/json" \
  --data '{"walletAddress":"0x1111111111111111111111111111111111111111","walletChain":"base","label":"Reviewed organization wallet"}'
Full JSON request schema
{
  "type": "object",
  "properties": {
    "label": {
      "type": "string",
      "minLength": 0,
      "maxLength": 60
    },
    "walletAddress": {
      "type": "string",
      "minLength": 8,
      "maxLength": 120
    },
    "walletChain": {
      "type": "string",
      "enum": [
        "base",
        "polygon",
        "ethereum",
        "arbitrum",
        "optimism"
      ]
    },
    "walletProvider": {
      "type": "string",
      "minLength": 0,
      "maxLength": 60
    }
  },
  "required": [
    "walletAddress",
    "walletChain"
  ],
  "additionalProperties": false
}
Success response schema · HTTP 201
{
  "application/json": {
    "schema": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid"
        },
        "organizationId": {
          "type": "string",
          "format": "uuid"
        },
        "provider": {
          "type": "string",
          "enum": [
            "self_custody",
            "circle",
            "bridge"
          ]
        },
        "label": {
          "type": [
            "string",
            "null"
          ],
          "minLength": 0,
          "maxLength": 5000
        },
        "isDefault": {
          "type": "boolean"
        },
        "enabled": {
          "type": "boolean"
        },
        "walletAddress": {
          "type": [
            "string",
            "null"
          ],
          "minLength": 0,
          "maxLength": 5000
        },
        "walletChain": {
          "type": [
            "string",
            "null"
          ],
          "minLength": 0,
          "maxLength": 5000
        },
        "walletCurrency": {
          "type": [
            "string",
            "null"
          ],
          "minLength": 0,
          "maxLength": 5000
        },
        "walletProvider": {
          "type": [
            "string",
            "null"
          ],
          "minLength": 0,
          "maxLength": 5000
        },
        "circleWalletId": {
          "type": [
            "string",
            "null"
          ],
          "minLength": 0,
          "maxLength": 5000
        },
        "simBalanceCents": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "createdById": {
          "type": "string",
          "format": "uuid"
        },
        "createdAt": {
          "type": "string",
          "format": "date-time"
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time"
        }
      },
      "required": [
        "id",
        "organizationId",
        "provider",
        "label",
        "isDefault",
        "enabled",
        "walletAddress",
        "walletChain",
        "walletCurrency",
        "walletProvider",
        "circleWalletId",
        "simBalanceCents",
        "createdById",
        "createdAt",
        "updatedAt"
      ],
      "additionalProperties": true
    }
  }
}
Errors and recovery
400
Invalid JSON, request fields, query, path identifier or missing Idempotency-Key.
401
Missing, invalid, revoked or expired organization API token; its issuing actor must still be the current organization owner.
403
Token scope or actor capability denied, disabled/banned account, or action unavailable.
404
Unknown route or resource not accessible in the bound organization. Cross-tenant resources are not enumerated.
409
Conflicting profile/rental state, duplicate resource, idempotency payload mismatch or operation still in progress.
410
event_cursor_expired: the event cursor is behind retained history. Reconcile current resources and start from the supplied recovery cursor.
422
Business validation/moderation rejected the operation. CHAT_MESSAGE_BLOCKED was not delivered.
429
API rate/concurrency limit exceeded; use backoff and Retry-After when present.
500
Internal operation error. Sensitive implementation details are not returned. Investigate using the request ID before repeating a write.
503
Provider or configuration unavailable; uncertain writes must retain the same Idempotency-Key.

These are documented API errors. The local sandbox checks schema fields only and does not test authorization, moderation or provider behavior.

Financial fields named ...Cents or ...InCents use integer cents. Path fields and nested constraints are shown above and in the downloadable OpenAPI contract.

Provision an organization Circle walletCreated managed wallet connection. Requires configured Circle integration and eligible chain/currency.POST/org-payout-connections/circle
Token scope payouts:writeActor permission managerAction type external

This action needs separately enabled financial automation. Check deployed capabilities before using it; its scope may be unavailable in the token picker.

Send Idempotency-Key. Retry the same intended action with the same key and exact payload to retrieve its saved result.

Request body

FieldTypeDescription and constraints
labelOptionalstringAt least 0 characters · At most 60 characters
chainOptionalstringOne of: "base", "polygon", "ethereum", "arbitrum", "optimism"
currencyOptionalstringOne of: "usdc", "usdt"
Explore this request

Edit example fields and validate the request against its schema.

What you receive

Created managed wallet connection. Requires configured Circle integration and eligible chain/currency.

Request example · cURL

Replace example IDs and values. Supply the token from your secret store. Each intended write uses one stable $ACTION_KEY.

curl -X POST "$BASE/org-payout-connections/circle" \
  -H "Authorization: Bearer $ALLPROFILES_API_TOKEN" \
  -H "Idempotency-Key: $ACTION_KEY" \
  -H "Content-Type: application/json" \
  --data '{}'
Full JSON request schema
{
  "type": "object",
  "properties": {
    "label": {
      "type": "string",
      "minLength": 0,
      "maxLength": 60
    },
    "chain": {
      "type": "string",
      "enum": [
        "base",
        "polygon",
        "ethereum",
        "arbitrum",
        "optimism"
      ]
    },
    "currency": {
      "type": "string",
      "enum": [
        "usdc",
        "usdt"
      ]
    }
  },
  "required": [],
  "additionalProperties": false
}
Success response schema · HTTP 201
{
  "application/json": {
    "schema": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid"
        },
        "organizationId": {
          "type": "string",
          "format": "uuid"
        },
        "provider": {
          "type": "string",
          "enum": [
            "self_custody",
            "circle",
            "bridge"
          ]
        },
        "label": {
          "type": [
            "string",
            "null"
          ],
          "minLength": 0,
          "maxLength": 5000
        },
        "isDefault": {
          "type": "boolean"
        },
        "enabled": {
          "type": "boolean"
        },
        "walletAddress": {
          "type": [
            "string",
            "null"
          ],
          "minLength": 0,
          "maxLength": 5000
        },
        "walletChain": {
          "type": [
            "string",
            "null"
          ],
          "minLength": 0,
          "maxLength": 5000
        },
        "walletCurrency": {
          "type": [
            "string",
            "null"
          ],
          "minLength": 0,
          "maxLength": 5000
        },
        "walletProvider": {
          "type": [
            "string",
            "null"
          ],
          "minLength": 0,
          "maxLength": 5000
        },
        "circleWalletId": {
          "type": [
            "string",
            "null"
          ],
          "minLength": 0,
          "maxLength": 5000
        },
        "simBalanceCents": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "createdById": {
          "type": "string",
          "format": "uuid"
        },
        "createdAt": {
          "type": "string",
          "format": "date-time"
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time"
        }
      },
      "required": [
        "id",
        "organizationId",
        "provider",
        "label",
        "isDefault",
        "enabled",
        "walletAddress",
        "walletChain",
        "walletCurrency",
        "walletProvider",
        "circleWalletId",
        "simBalanceCents",
        "createdById",
        "createdAt",
        "updatedAt"
      ],
      "additionalProperties": true
    }
  }
}
Errors and recovery
400
Invalid JSON, request fields, query, path identifier or missing Idempotency-Key.
401
Missing, invalid, revoked or expired organization API token; its issuing actor must still be the current organization owner.
403
Token scope or actor capability denied, disabled/banned account, or action unavailable.
404
Unknown route or resource not accessible in the bound organization. Cross-tenant resources are not enumerated.
409
Conflicting profile/rental state, duplicate resource, idempotency payload mismatch or operation still in progress.
410
event_cursor_expired: the event cursor is behind retained history. Reconcile current resources and start from the supplied recovery cursor.
422
Business validation/moderation rejected the operation. CHAT_MESSAGE_BLOCKED was not delivered.
429
API rate/concurrency limit exceeded; use backoff and Retry-After when present.
500
Internal operation error. Sensitive implementation details are not returned. Investigate using the request ID before repeating a write.
503
Provider or configuration unavailable; uncertain writes must retain the same Idempotency-Key.

These are documented API errors. The local sandbox checks schema fields only and does not test authorization, moderation or provider behavior.

Financial fields named ...Cents or ...InCents use integer cents. Path fields and nested constraints are shown above and in the downloadable OpenAPI contract.

Update and configure

Change existing records, assignments and configuration.

Choose the default payout sourceUpdated default connection.PATCH/org-payout-connections/:id/default
Token scope payouts:writeActor permission managerAction type write

This action needs separately enabled financial automation. Check deployed capabilities before using it; its scope may be unavailable in the token picker.

Send Idempotency-Key. Retry the same intended action with the same key and exact payload to retrieve its saved result.

Path parameters

FieldTypeDescription and constraints
idRequiredstring · uuid

Resource UUID scoped to the current organization.

Explore this request

Edit example fields and validate the request against its schema.

What you receive

Updated default connection.

Request example · cURL

Replace example IDs and values. Supply the token from your secret store. Each intended write uses one stable $ACTION_KEY.

curl -X PATCH "$BASE/org-payout-connections/$ID/default" \
  -H "Authorization: Bearer $ALLPROFILES_API_TOKEN" \
  -H "Idempotency-Key: $ACTION_KEY"
Success response schema · HTTP 200
{
  "application/json": {
    "schema": {
      "type": "object",
      "properties": {
        "success": {
          "type": "boolean"
        }
      },
      "required": [
        "success"
      ],
      "additionalProperties": true
    }
  }
}
Errors and recovery
400
Invalid JSON, request fields, query, path identifier or missing Idempotency-Key.
401
Missing, invalid, revoked or expired organization API token; its issuing actor must still be the current organization owner.
403
Token scope or actor capability denied, disabled/banned account, or action unavailable.
404
Unknown route or resource not accessible in the bound organization. Cross-tenant resources are not enumerated.
409
Conflicting profile/rental state, duplicate resource, idempotency payload mismatch or operation still in progress.
410
event_cursor_expired: the event cursor is behind retained history. Reconcile current resources and start from the supplied recovery cursor.
422
Business validation/moderation rejected the operation. CHAT_MESSAGE_BLOCKED was not delivered.
429
API rate/concurrency limit exceeded; use backoff and Retry-After when present.
500
Internal operation error. Sensitive implementation details are not returned. Investigate using the request ID before repeating a write.
503
Provider or configuration unavailable; uncertain writes must retain the same Idempotency-Key.

These are documented API errors. The local sandbox checks schema fields only and does not test authorization, moderation or provider behavior.

Financial fields named ...Cents or ...InCents use integer cents. Path fields and nested constraints are shown above and in the downloadable OpenAPI contract.

Lifecycle and actions

Manage transitions, delivery and provider workflows.

Withdraw managed wallet fundsOwner or canWithdraw grant plus explicit token scope are required.POST/org-payout-connections/:id/withdraw
Token scope payouts:withdrawActor permission withdrawAction type financial

This action needs separately enabled financial automation. Check deployed capabilities before using it; its scope may be unavailable in the token picker.

Send Idempotency-Key. Retry the same intended action with the same key and exact payload to retrieve its saved result.

Before you use it

Owner or canWithdraw grant plus explicit token scope are required. Idempotency-Key is mandatory at the API boundary. Set the provider idempotencyKey consistently when supplied. This moves funds.

Path parameters

FieldTypeDescription and constraints
idRequiredstring · uuid

Resource UUID scoped to the current organization.

Request body

FieldTypeDescription and constraints
toAddressRequiredstringAt least 8 characters · At most 120 characters
amountCentsRequiredintegerMinimum 1 · Maximum 9007199254740991
idempotencyKeyOptionalstringAt least 1 characters · At most 128 characters
Explore this request

Edit example fields and validate the request against its schema.

What you receive

Withdrawal transaction state. Amounts use USD cents; external provider validation and balance checks apply.

Request example · cURL

Replace example IDs and values. Supply the token from your secret store. Each intended write uses one stable $ACTION_KEY.

curl -X POST "$BASE/org-payout-connections/$ID/withdraw" \
  -H "Authorization: Bearer $ALLPROFILES_API_TOKEN" \
  -H "Idempotency-Key: $ACTION_KEY" \
  -H "Content-Type: application/json" \
  --data '{"toAddress":"0x1111111111111111111111111111111111111111","amountCents":100}'
Full JSON request schema
{
  "type": "object",
  "properties": {
    "toAddress": {
      "type": "string",
      "minLength": 8,
      "maxLength": 120
    },
    "amountCents": {
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "idempotencyKey": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128
    }
  },
  "required": [
    "toAddress",
    "amountCents"
  ],
  "additionalProperties": false
}
Success response schema · HTTP 201
{
  "application/json": {
    "schema": {
      "type": "object",
      "properties": {
        "transferId": {
          "type": "string",
          "minLength": 0,
          "maxLength": 5000
        },
        "status": {
          "type": "string",
          "enum": [
            "processing",
            "paid",
            "failed"
          ]
        }
      },
      "required": [
        "transferId",
        "status"
      ],
      "additionalProperties": true
    }
  }
}
Errors and recovery
400
Invalid JSON, request fields, query, path identifier or missing Idempotency-Key.
401
Missing, invalid, revoked or expired organization API token; its issuing actor must still be the current organization owner.
403
Token scope or actor capability denied, disabled/banned account, or action unavailable.
404
Unknown route or resource not accessible in the bound organization. Cross-tenant resources are not enumerated.
409
Conflicting profile/rental state, duplicate resource, idempotency payload mismatch or operation still in progress.
410
event_cursor_expired: the event cursor is behind retained history. Reconcile current resources and start from the supplied recovery cursor.
422
Business validation/moderation rejected the operation. CHAT_MESSAGE_BLOCKED was not delivered.
429
API rate/concurrency limit exceeded; use backoff and Retry-After when present.
500
Internal operation error. Sensitive implementation details are not returned. Investigate using the request ID before repeating a write.
503
Provider or configuration unavailable; uncertain writes must retain the same Idempotency-Key.

These are documented API errors. The local sandbox checks schema fields only and does not test authorization, moderation or provider behavior.

Financial fields named ...Cents or ...InCents use integer cents. Path fields and nested constraints are shown above and in the downloadable OpenAPI contract.

Remove and disconnect

Remove a record, revoke access or end a connection.

Remove a payout connectionConnection removal result; this does not erase provider transaction history.DELETE/org-payout-connections/:id
Token scope payouts:writeActor permission managerAction type destructive

This action needs separately enabled financial automation. Check deployed capabilities before using it; its scope may be unavailable in the token picker.

Send Idempotency-Key. Retry the same intended action with the same key and exact payload to retrieve its saved result.

Path parameters

FieldTypeDescription and constraints
idRequiredstring · uuid

Resource UUID scoped to the current organization.

Explore this request

Edit example fields and validate the request against its schema.

What you receive

Connection removal result; this does not erase provider transaction history.

Request example · cURL

Replace example IDs and values. Supply the token from your secret store. Each intended write uses one stable $ACTION_KEY.

curl -X DELETE "$BASE/org-payout-connections/$ID" \
  -H "Authorization: Bearer $ALLPROFILES_API_TOKEN" \
  -H "Idempotency-Key: $ACTION_KEY"
Success response schema · HTTP 200
{
  "application/json": {
    "schema": {
      "type": "object",
      "properties": {
        "success": {
          "type": "boolean"
        }
      },
      "required": [
        "success"
      ],
      "additionalProperties": true
    }
  }
}
Errors and recovery
400
Invalid JSON, request fields, query, path identifier or missing Idempotency-Key.
401
Missing, invalid, revoked or expired organization API token; its issuing actor must still be the current organization owner.
403
Token scope or actor capability denied, disabled/banned account, or action unavailable.
404
Unknown route or resource not accessible in the bound organization. Cross-tenant resources are not enumerated.
409
Conflicting profile/rental state, duplicate resource, idempotency payload mismatch or operation still in progress.
410
event_cursor_expired: the event cursor is behind retained history. Reconcile current resources and start from the supplied recovery cursor.
422
Business validation/moderation rejected the operation. CHAT_MESSAGE_BLOCKED was not delivered.
429
API rate/concurrency limit exceeded; use backoff and Retry-After when present.
500
Internal operation error. Sensitive implementation details are not returned. Investigate using the request ID before repeating a write.
503
Provider or configuration unavailable; uncertain writes must retain the same Idempotency-Key.

These are documented API errors. The local sandbox checks schema fields only and does not test authorization, moderation or provider behavior.

Financial fields named ...Cents or ...InCents use integer cents. Path fields and nested constraints are shown above and in the downloadable OpenAPI contract.