Allocate funds to partner connection
This API call allows clients to allocate funds to a connected partner for trade. A successful allocation indicates that funds are locked at BitGo and available for spend on the connected partner. Note: Allocations will happen synchronously and allocated amounts can be viewed in the BitGo application or via a balances endpoint.
Requires access token scopes: settlement_network_read, settlement_network_write
Path Params
-
connectionIdstring requiredThe unique identifier of the connection you want to allocate funds to.
This connection:
- Must be a valid, established connection between your enterprise and a partner.
- Determines where the allocated funds will be available for use.
- Should be pre-established before attempting to allocate funds.
-
enterpriseIdstring requiredThe unique identifier of your enterprise.
This identifier:
- Represents your organization within the BitGo system.
- Is used to validate you have permission to perform this action.
- Must match the enterprise associated with your API credentials.
Body Params
object
-
amountobject requiredThe amount to allocate in base units. Contains both the currency identifier and the quantity in the currency's base units. The exact base units depend on the currency (e.g., satoshis for BTC, wei for ETH).amount object
-
currencystring required -
quantitystring required
-
-
clientExternalIdstring requiredA unique external identifier for the allocation.
This identifier:
- Must be unique for each distinct allocation request.
- Is used for idempotence to prevent duplicate allocations.
- Allows clients to correlate allocations with their own systems.
- Should be stored by the client for tracking and reconciliation.
-
noncestring requiredUnique nonce to prevent replay attacks.
This value:
- Must be unique for each request requiring a nonce.
- Should be a cryptographically strong random value.
- Is used as part of the request signing process.
- Helps ensure the signature can only be used once.
-
notesstringOptional notes to attach to the allocation.
These notes:
- Can provide additional context about the purpose of the allocation.
- Are stored with the allocation record.
- May be useful for auditing, record-keeping, or operational purposes.
- Are visible to both client and partner.
-
payloadstring requiredPayload formed by stringifying the object containing all other request properties.
This includes:
- amount: The amount to allocate.
- clientExternalId: Your unique identifier for this allocation.
- nonce: A unique value to prevent replay attacks.
- notes: Optional notes about the allocation.
- connectionId: The connection to allocate funds to.
- enterpriseId: Your enterprise ID.
The payload must be signed using your BitGo account's private key to create the signature parameter.
-
signaturestring requiredDigital signature of the payload parameter.
This signature:
- Must be created using your BitGo account's private key.
- Verifies that the request is authentic and hasn't been tampered with.
- Provides non-repudiation for the allocation request.
Responses
200
OK
Response Body
ONE OF
-
allocationobject requiredThe allocation record in its cleared state. This contains all allocation details with a status of 'cleared', indicating the allocation was successfully completed.allocation object
-
idstring requiredThe unique identifier of the allocation/deallocation. This is a UUID that uniquely identifies the allocation record. -
amountobject requiredThe amount of the allocation/deallocation. Contains both the currency identifier and the quantity in base units. -
connectionIdstring requiredThe unique identifier of the connection this allocation is for. This identifies a connection between a client and partner. -
clientExternalIdstring requiredExternal identifier provided by the client when creating the allocation/deallocation. Used for idempotence and correlation with client systems. -
partnerExternalIdstringExternal identifier of the allocation/deallocation in the partner system. May be populated when partners provide their own identifier for the allocation. -
initiatedBystring requiredThe identifier of the user that initiated the allocation/deallocation. Represents the user ID from the BitGo platform. -
notesstringOptional notes provided by the client when creating the allocation/deallocation. Can contain additional context or information about the purpose of the allocation. -
createdAtstring date-time requiredThe date and time when the allocation/deallocation was created. Represented as an ISO 8601 formatted date string. -
updatedAtstring date-time requiredThe date and time when the allocation/deallocation was last updated. Represented as an ISO 8601 formatted date string. -
retriableboolean enum requiredIndicates whether or not the allocation/deallocation is retriable. When true, clients may retry the operation if it did not complete successfully. Retry can be performed by re-sending the same allocation request that was originally sent.false -
evaluationIdstringThe unique identifier of the policy evaluation for this allocation/deallocation. Present when policy evaluation was performed as part of the allocation flow. -
pendingApprovalIdstringThe unique identifier of the pending approval for this allocation/deallocation. Present when policy evaluation resulted in a PENDING status requiring manual approval. -
policyResultstring enumThe result of the policy evaluation for this allocation/deallocation.
- 'approved': Policy evaluation passed and the operation was allowed
- 'rejected': Policy evaluation failed and the operation was denied Not present if no policy evaluation was performed or if evaluation is still pending.
approvedrejected -
statusstring enum requiredStatus of the allocation/deallocation.
Possible values:
- reserved: The amount for allocation/deallocation is reserved but operation has not completed. This is a temporary state awaiting final resolution.
- cleared: Terminal state; the amount for allocation/deallocation is cleared and funds have been successfully allocated. This indicates a successful operation.
- released: Terminal state; the amount for allocation/deallocation is released and funds have been returned. This indicates the operation failed, either because balance was insufficient for allocation/deallocation, or that the partner rejected the request to allocate/deallocate.
cleared
-
-
allocationobject requiredThe allocation record in its reserved, non-retriable state. This contains all allocation details with a status of 'reserved' and retriable=false, indicating the allocation is being processed asynchronously and does not require a retry to progress.allocation object
-
idstring requiredThe unique identifier of the allocation/deallocation. This is a UUID that uniquely identifies the allocation record. -
amountobject requiredThe amount of the allocation/deallocation. Contains both the currency identifier and the quantity in base units. -
connectionIdstring requiredThe unique identifier of the connection this allocation is for. This identifies a connection between a client and partner. -
clientExternalIdstring requiredExternal identifier provided by the client when creating the allocation/deallocation. Used for idempotence and correlation with client systems. -
partnerExternalIdstringExternal identifier of the allocation/deallocation in the partner system. May be populated when partners provide their own identifier for the allocation. -
initiatedBystring requiredThe identifier of the user that initiated the allocation/deallocation. Represents the user ID from the BitGo platform. -
notesstringOptional notes provided by the client when creating the allocation/deallocation. Can contain additional context or information about the purpose of the allocation. -
createdAtstring date-time requiredThe date and time when the allocation/deallocation was created. Represented as an ISO 8601 formatted date string. -
updatedAtstring date-time requiredThe date and time when the allocation/deallocation was last updated. Represented as an ISO 8601 formatted date string. -
retriableboolean enum requiredIndicates whether or not the allocation/deallocation is retriable. When true, clients may retry the operation if it did not complete successfully. Retry can be performed by re-sending the same allocation request that was originally sent.false -
evaluationIdstringThe unique identifier of the policy evaluation for this allocation/deallocation. Present when policy evaluation was performed as part of the allocation flow. -
pendingApprovalIdstringThe unique identifier of the pending approval for this allocation/deallocation. Present when policy evaluation resulted in a PENDING status requiring manual approval. -
policyResultstring enumThe result of the policy evaluation for this allocation/deallocation.
- 'approved': Policy evaluation passed and the operation was allowed
- 'rejected': Policy evaluation failed and the operation was denied Not present if no policy evaluation was performed or if evaluation is still pending.
approvedrejected -
reasonstring requiredThe reason that the allocation/deallocation is not cleared. Provides a descriptive explanation for why the allocation is in the reserved state. Will not be defined if the allocation is cleared. -
statusstring enum requiredStatus of the allocation/deallocation.
Possible values:
- reserved: The amount for allocation/deallocation is reserved but operation has not completed. This is a temporary state awaiting final resolution.
- cleared: Terminal state; the amount for allocation/deallocation is cleared and funds have been successfully allocated. This indicates a successful operation.
- released: Terminal state; the amount for allocation/deallocation is released and funds have been returned. This indicates the operation failed, either because balance was insufficient for allocation/deallocation, or that the partner rejected the request to allocate/deallocate.
reserved
-
401
Unauthorized
Response Body
object
-
errorstring required
403
Forbidden
Response Body
object
-
errorstring required
404
Not Found
Response Body
object
-
errorstring required
422
Unprocessable Entity
Response Body
object
-
allocationobject requiredThe allocation record in its released state. This contains all allocation details with a status of 'released', indicating the allocation was not completed and funds were returned. The reason field will explain why the allocation was released.allocation object
-
idstring requiredThe unique identifier of the allocation/deallocation. This is a UUID that uniquely identifies the allocation record. -
amountobject requiredThe amount of the allocation/deallocation. Contains both the currency identifier and the quantity in base units. -
connectionIdstring requiredThe unique identifier of the connection this allocation is for. This identifies a connection between a client and partner. -
clientExternalIdstring requiredExternal identifier provided by the client when creating the allocation/deallocation. Used for idempotence and correlation with client systems. -
partnerExternalIdstringExternal identifier of the allocation/deallocation in the partner system. May be populated when partners provide their own identifier for the allocation. -
initiatedBystring requiredThe identifier of the user that initiated the allocation/deallocation. Represents the user ID from the BitGo platform. -
notesstringOptional notes provided by the client when creating the allocation/deallocation. Can contain additional context or information about the purpose of the allocation. -
createdAtstring date-time requiredThe date and time when the allocation/deallocation was created. Represented as an ISO 8601 formatted date string. -
updatedAtstring date-time requiredThe date and time when the allocation/deallocation was last updated. Represented as an ISO 8601 formatted date string. -
retriableboolean enum requiredIndicates whether or not the allocation/deallocation is retriable. When true, clients may retry the operation if it did not complete successfully. Retry can be performed by re-sending the same allocation request that was originally sent.false -
evaluationIdstringThe unique identifier of the policy evaluation for this allocation/deallocation. Present when policy evaluation was performed as part of the allocation flow. -
pendingApprovalIdstringThe unique identifier of the pending approval for this allocation/deallocation. Present when policy evaluation resulted in a PENDING status requiring manual approval. -
policyResultstring enumThe result of the policy evaluation for this allocation/deallocation.
- 'approved': Policy evaluation passed and the operation was allowed
- 'rejected': Policy evaluation failed and the operation was denied Not present if no policy evaluation was performed or if evaluation is still pending.
approvedrejected -
statusstring enum requiredStatus of the allocation/deallocation.
Possible values:
- reserved: The amount for allocation/deallocation is reserved but operation has not completed. This is a temporary state awaiting final resolution.
- cleared: Terminal state; the amount for allocation/deallocation is cleared and funds have been successfully allocated. This indicates a successful operation.
- released: Terminal state; the amount for allocation/deallocation is released and funds have been returned. This indicates the operation failed, either because balance was insufficient for allocation/deallocation, or that the partner rejected the request to allocate/deallocate.
released -
reasonstring requiredThe reason that the allocation/deallocation is not cleared. Provides a descriptive explanation for why the allocation is in the reserved state. Will not be defined if the allocation is cleared.
-
-
errorstring required
500
Internal Server Error
Response Body
ONE OF
-
errorstring required
-
allocationobject requiredThe allocation record in its reserved, retriable state. This contains all allocation details with a status of 'reserved' and retriable=true, indicating a temporary issue that clients should retry.allocation object
-
idstring requiredThe unique identifier of the allocation/deallocation. This is a UUID that uniquely identifies the allocation record. -
amountobject requiredThe amount of the allocation/deallocation. Contains both the currency identifier and the quantity in base units. -
connectionIdstring requiredThe unique identifier of the connection this allocation is for. This identifies a connection between a client and partner. -
clientExternalIdstring requiredExternal identifier provided by the client when creating the allocation/deallocation. Used for idempotence and correlation with client systems. -
partnerExternalIdstringExternal identifier of the allocation/deallocation in the partner system. May be populated when partners provide their own identifier for the allocation. -
initiatedBystring requiredThe identifier of the user that initiated the allocation/deallocation. Represents the user ID from the BitGo platform. -
notesstringOptional notes provided by the client when creating the allocation/deallocation. Can contain additional context or information about the purpose of the allocation. -
createdAtstring date-time requiredThe date and time when the allocation/deallocation was created. Represented as an ISO 8601 formatted date string. -
updatedAtstring date-time requiredThe date and time when the allocation/deallocation was last updated. Represented as an ISO 8601 formatted date string. -
retriableboolean enum requiredIndicates whether or not the allocation/deallocation is retriable. When true, clients may retry the operation if it did not complete successfully. Retry can be performed by re-sending the same allocation request that was originally sent.true -
evaluationIdstringThe unique identifier of the policy evaluation for this allocation/deallocation. Present when policy evaluation was performed as part of the allocation flow. -
pendingApprovalIdstringThe unique identifier of the pending approval for this allocation/deallocation. Present when policy evaluation resulted in a PENDING status requiring manual approval. -
policyResultstring enumThe result of the policy evaluation for this allocation/deallocation.
- 'approved': Policy evaluation passed and the operation was allowed
- 'rejected': Policy evaluation failed and the operation was denied Not present if no policy evaluation was performed or if evaluation is still pending.
approvedrejected -
reasonstring requiredThe reason that the allocation/deallocation is not cleared. Provides a descriptive explanation for why the allocation is in the reserved state. Will not be defined if the allocation is cleared. -
statusstring enum requiredStatus of the allocation/deallocation.
Possible values:
- reserved: The amount for allocation/deallocation is reserved but operation has not completed. This is a temporary state awaiting final resolution.
- cleared: Terminal state; the amount for allocation/deallocation is cleared and funds have been successfully allocated. This indicates a successful operation.
- released: Terminal state; the amount for allocation/deallocation is released and funds have been returned. This indicates the operation failed, either because balance was insufficient for allocation/deallocation, or that the partner rejected the request to allocate/deallocate.
reserved
-