Initiate On-Chain Settlement
Partner route to initiate an on-chain settlement. This endpoint allows partners to create settlements that will be processed on a blockchain, with multi-phase settlement flow.
Error scenarios:
-
400: Invalid Request Error
-
Occurs when the request parameters are invalid or malformed.
-
Examples: Invalid format for settlement amounts, missing required fields, invalid signature.
-
401: Authentication Error
-
Occurs when the request is not authorized.
-
Examples: Caller is not a member of the enterprise, signature verification failed.
-
403: Permission Denied Error
-
Occurs when the authenticated partner doesn't have necessary permissions.
-
Examples: Enterprise does not have OES license, on-chain settlements not enabled.
-
409: Conflict Error
-
Occurs when the request conflicts with current state.
-
Examples: Settlement already exists with the same externalId and different properties.
-
500: Internal Server Error
-
Occurs when there's an unexpected server error processing the request.
-
Examples: Database connection issues.
Requires access token scopes: settlement_network_read, settlement_network_write
Path Params
-
enterpriseIdstring requiredThe enterprise identifier of the partner. This identifies the partner enterprise making the API request.
Body Params
object
-
externalIdstring requiredExternal identifier for the settlement request. This should be unique for each settlement request and is used for idempotence and correlation with partner systems. -
notesstringOptional notes about the settlement. Can contain additional context or information about the purpose of the settlement. -
settlementAmountsmap of objects requiredThe settlement amounts to be processed. Only exchange-style settlements (where the exchange is the source) are supported for on-chain settlements. -
noncestring requiredA unique nonce value used for cryptographic operations. This provides additional security for settlement operations. -
payloadstring requiredThe signed payload for the settlement request. This contains a stringified version of request body less the payload/signature. -
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
object
-
settlementobject requiredONE OF
-
idstring requiredThe unique identifier of the settlement. This is a UUID that uniquely identifies the settlement record. -
partnerIdstring requiredThe unique identifier of the partner the settlement is associated with. This is a UUID that uniquely identifies the partner. -
externalIdstring requiredExternal identifier provided by the partner when creating the settlement. -
statusstring enum requiredpending -
settlementTypestring enum requiredThe type of settlement. Possible values are:
- onchain: The settlement is on-chain.
- offchain: The settlement is off-chain.
onchainoffchain -
reconciledboolean requiredWhether or not the settlement is reconciled against trade data. Currently there are no reconciled settlements. This field is always false. -
initiatedBystring requiredId of the user which initiated the settlement. -
notesstringThe notes associated with the settlement. This is a free-form text field that can contain any additional information about the settlement. -
createdAtstring date-time requiredThe date and time when the settlement was created. This is a timestamp in ISO 8601 format. -
updatedAtstring date-time requiredThe date and time when the settlement was last updated. This is a timestamp in ISO 8601 format. -
rtIdstringRouted transaction id associated with the settlement. This is a UUID that uniquely identifies the routed transaction. This field is only populated for on-chain settlements for partners with automation enabled. -
lossSLAAlertSentboolean requiredWhether or not an alert has been sent if loss settlement SLA is close to being breached. Only relevant for on-chain settlements. -
gainSLAAlertSentboolean requiredWhether or not an alert has been sent if gain settlement SLA is close to being breached. Only relevant for on-chain settlements. -
cutoffAtstring date-timeThe date and time of the newest trade being settled in the partner system. This is a timestamp in ISO 8601 format. This field is only populated for dispute enabled partners. -
disputedbooleanWhether or not a dispute was raised on this settlement.
-
idstring requiredThe unique identifier of the settlement. This is a UUID that uniquely identifies the settlement record. -
partnerIdstring requiredThe unique identifier of the partner the settlement is associated with. This is a UUID that uniquely identifies the partner. -
externalIdstring requiredExternal identifier provided by the partner when creating the settlement. -
reasonstring required -
statusstring enum requiredfailed -
settlementTypestring enum requiredThe type of settlement. Possible values are:
- onchain: The settlement is on-chain.
- offchain: The settlement is off-chain.
onchainoffchain -
reconciledboolean requiredWhether or not the settlement is reconciled against trade data. Currently there are no reconciled settlements. This field is always false. -
initiatedBystring requiredId of the user which initiated the settlement. -
notesstringThe notes associated with the settlement. This is a free-form text field that can contain any additional information about the settlement. -
createdAtstring date-time requiredThe date and time when the settlement was created. This is a timestamp in ISO 8601 format. -
updatedAtstring date-time requiredThe date and time when the settlement was last updated. This is a timestamp in ISO 8601 format. -
rtIdstringRouted transaction id associated with the settlement. This is a UUID that uniquely identifies the routed transaction. This field is only populated for on-chain settlements for partners with automation enabled. -
lossSLAAlertSentboolean requiredWhether or not an alert has been sent if loss settlement SLA is close to being breached. Only relevant for on-chain settlements. -
gainSLAAlertSentboolean requiredWhether or not an alert has been sent if gain settlement SLA is close to being breached. Only relevant for on-chain settlements. -
cutoffAtstring date-timeThe date and time of the newest trade being settled in the partner system. This is a timestamp in ISO 8601 format. This field is only populated for dispute enabled partners. -
disputedbooleanWhether or not a dispute was raised on this settlement.
-
idstring requiredThe unique identifier of the settlement. This is a UUID that uniquely identifies the settlement record. -
partnerIdstring requiredThe unique identifier of the partner the settlement is associated with. This is a UUID that uniquely identifies the partner. -
externalIdstring requiredExternal identifier provided by the partner when creating the settlement. -
statusstring enum requiredcompleted -
settlementTypestring enum requiredThe type of settlement. Possible values are:
- onchain: The settlement is on-chain.
- offchain: The settlement is off-chain.
onchainoffchain -
reconciledboolean requiredWhether or not the settlement is reconciled against trade data. Currently there are no reconciled settlements. This field is always false. -
initiatedBystring requiredId of the user which initiated the settlement. -
notesstringThe notes associated with the settlement. This is a free-form text field that can contain any additional information about the settlement. -
createdAtstring date-time requiredThe date and time when the settlement was created. This is a timestamp in ISO 8601 format. -
updatedAtstring date-time requiredThe date and time when the settlement was last updated. This is a timestamp in ISO 8601 format. -
finalizedAtstring date-time required -
rtIdstringRouted transaction id associated with the settlement. This is a UUID that uniquely identifies the routed transaction. This field is only populated for on-chain settlements for partners with automation enabled. -
lossSLAAlertSentboolean requiredWhether or not an alert has been sent if loss settlement SLA is close to being breached. Only relevant for on-chain settlements. -
gainSLAAlertSentboolean requiredWhether or not an alert has been sent if gain settlement SLA is close to being breached. Only relevant for on-chain settlements. -
cutoffAtstring date-timeThe date and time of the newest trade being settled in the partner system. This is a timestamp in ISO 8601 format. This field is only populated for dispute enabled partners. -
disputedbooleanWhether or not a dispute was raised on this settlement.
-
idstring requiredThe unique identifier of the settlement. This is a UUID that uniquely identifies the settlement record. -
partnerIdstring requiredThe unique identifier of the partner the settlement is associated with. This is a UUID that uniquely identifies the partner. -
externalIdstring requiredExternal identifier provided by the partner when creating the settlement. -
reasonstring required -
statusstring enum requiredrejected -
settlementTypestring enum requiredThe type of settlement. Possible values are:
- onchain: The settlement is on-chain.
- offchain: The settlement is off-chain.
onchainoffchain -
reconciledboolean requiredWhether or not the settlement is reconciled against trade data. Currently there are no reconciled settlements. This field is always false. -
initiatedBystring requiredId of the user which initiated the settlement. -
notesstringThe notes associated with the settlement. This is a free-form text field that can contain any additional information about the settlement. -
createdAtstring date-time requiredThe date and time when the settlement was created. This is a timestamp in ISO 8601 format. -
updatedAtstring date-time requiredThe date and time when the settlement was last updated. This is a timestamp in ISO 8601 format. -
finalizedAtstring date-time required -
rtIdstringRouted transaction id associated with the settlement. This is a UUID that uniquely identifies the routed transaction. This field is only populated for on-chain settlements for partners with automation enabled. -
lossSLAAlertSentboolean requiredWhether or not an alert has been sent if loss settlement SLA is close to being breached. Only relevant for on-chain settlements. -
gainSLAAlertSentboolean requiredWhether or not an alert has been sent if gain settlement SLA is close to being breached. Only relevant for on-chain settlements. -
cutoffAtstring date-timeThe date and time of the newest trade being settled in the partner system. This is a timestamp in ISO 8601 format. This field is only populated for dispute enabled partners. -
disputedbooleanWhether or not a dispute was raised on this settlement.
-
202
Accepted
Response Body
object
-
settlementobject requiredsettlement object
-
idstring requiredThe unique identifier of the settlement. This is a UUID that uniquely identifies the settlement record. -
partnerIdstring requiredThe unique identifier of the partner the settlement is associated with. This is a UUID that uniquely identifies the partner. -
externalIdstring requiredExternal identifier provided by the partner when creating the settlement. -
statusstring enum requiredpending -
settlementTypestring enum requiredThe type of settlement. Possible values are:
- onchain: The settlement is on-chain.
- offchain: The settlement is off-chain.
onchainoffchain -
reconciledboolean requiredWhether or not the settlement is reconciled against trade data. Currently there are no reconciled settlements. This field is always false. -
initiatedBystring requiredId of the user which initiated the settlement. -
notesstringThe notes associated with the settlement. This is a free-form text field that can contain any additional information about the settlement. -
createdAtstring date-time requiredThe date and time when the settlement was created. This is a timestamp in ISO 8601 format. -
updatedAtstring date-time requiredThe date and time when the settlement was last updated. This is a timestamp in ISO 8601 format. -
rtIdstringRouted transaction id associated with the settlement. This is a UUID that uniquely identifies the routed transaction. This field is only populated for on-chain settlements for partners with automation enabled. -
lossSLAAlertSentboolean requiredWhether or not an alert has been sent if loss settlement SLA is close to being breached. Only relevant for on-chain settlements. -
gainSLAAlertSentboolean requiredWhether or not an alert has been sent if gain settlement SLA is close to being breached. Only relevant for on-chain settlements. -
cutoffAtstring date-timeThe date and time of the newest trade being settled in the partner system. This is a timestamp in ISO 8601 format. This field is only populated for dispute enabled partners. -
disputedbooleanWhether or not a dispute was raised on this settlement.
-
401
Unauthorized
Response Body
object
-
errorstring required
403
Forbidden
Response Body
object
-
errorstring required
409
Conflict
Response Body
object
-
errorstring required
500
Internal Server Error
Response Body
object
-
errorstring required