Update wallet policy
Updates payment policy rules for a custody wallet, activating a new control-profile revision. Supply expectedRevisionId to reject the update with 409 when another update has activated a revision since the policy was read. Wallet provisioning and default selection remain in /v1/wallets.
Path parameters
Provider wallet ID — the walletId field returned by GET /v1/wallets. The wallet record id and the public key are not accepted.
Provider wallet ID — the walletId field returned by GET /v1/wallets. The wallet record id and the public key are not accepted.
Headers
Selects the active project for this request. Required for session/dashboard callers. Ignored when authenticating with an API key, whose scope is fixed to the key's project.
Selects the active project for this request. Required for session/dashboard callers. Ignored when authenticating with an API key, whose scope is fixed to the key's project.
Request body
Example request
{
"commitMessage": "Require approval for transfers above 10,000 USDC.",
"defaultAction": "allow",
"rules": [
{
"id": "approve-vault-deposits",
"kind": "operation_type",
"operationTypes": [
"earn_vault_deposit"
],
"action": "approval_required"
}
],
"expectedRevisionId": "wcpr_example"
}Response
Wallet policy updated
Example response
{
"data": {
"policy": {
"walletId": "privy_wallet_123",
"controlProfile": {
"createdAt": "2025-01-01T00:00:00.000Z",
"updatedAt": "2025-01-01T00:00:00.000Z",
"activatedAt": "2025-01-01T00:00:00.000Z"
},
"audit": {
"recentEvaluations": [
{
"walletOperationId": "wop_example",
"policyEvaluationId": "peval_example",
"operationFamily": "payment",
"operationType": "payment_transfer_execute",
"asset": "USDC",
"amount": "100.00",
"destination": "7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU",
"reasonCode": "wallet_policy_match",
"reason": "Operation family payment matched policy.",
"approvalRequestId": "appr_example",
"operationCreatedAt": "2025-01-01T00:00:00.000Z",
"operationUpdatedAt": "2025-01-01T00:00:00.000Z",
"evaluatedAt": "2025-01-01T00:00:00.000Z"
}
]
}
}
},
"meta": {
"requestId": "req_example",
"timestamp": "2025-01-01T00:00:00.000Z"
}
}Changes
Changed in 4 of the 12 revisions of this API.121018
- ▲
removed
subschema #2subschema #6from the/request propertyoneOflistrequest-property-one-of-removed
- ▲
added
subschema #2subschema #6to the////response propertyoneOflist for the response statusresponse-property-one-of-added
- ▲
added
subschema #2subschema #6to the///response propertyoneOflist for the response statusresponse-property-one-of-added
- ○
added the new optional request property
new-optional-request-property
- ○
added
subschema #2subschema #6to the/request propertyoneOflistrequest-property-one-of-added
- ○
added the non-success response with the status
response-non-success-status-added
- ○
removed
subschema #2subschema #6from the////response propertyoneOflist for the response statusresponse-property-one-of-removed
- ○
removed
subschema #2subschema #6from the///response propertyoneOflist for the response statusresponse-property-one-of-removed
- ▲
- ▲
removed
subschema #1subschema #2subschema #6from the/request propertyoneOflistrequest-property-one-of-removed
- ▲
added
subschema #1subschema #2subschema #6to the////response propertyoneOflist for the response statusresponse-property-one-of-added
- ▲
added
subschema #1subschema #2subschema #6to the///response propertyoneOflist for the response statusresponse-property-one-of-added
- ○
added
subschema #1subschema #2subschema #6to the/request propertyoneOflistrequest-property-one-of-added
- ○
removed the
issuanceenum value from the/////response property for the response statusresponse-property-enum-value-removed
- ○
removed the
paymentenum value from the/////response property for the response statusresponse-property-enum-value-removed
- ○
removed the
programenum value from the/////response property for the response statusresponse-property-enum-value-removed
- ○
removed the
provider_adminenum value from the/////response property for the response statusresponse-property-enum-value-removed
- ○
removed the
rampenum value from the/////response property for the response statusresponse-property-enum-value-removed
- ○
removed the
raw_signenum value from the/////response property for the response statusresponse-property-enum-value-removed
- ○
removed the
transferenum value from the/////response property for the response statusresponse-property-enum-value-removed
- ○
removed
subschema #1subschema #2subschema #6from the////response propertyoneOflist for the response statusresponse-property-one-of-removed
- ○
removed
subschema #1subschema #2subschema #6from the///response propertyoneOflist for the response statusresponse-property-one-of-removed
- ▲
- ●
added the new
SERVICE_UNAVAILABLEenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
SERVICE_UNAVAILABLEenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
SERVICE_UNAVAILABLEenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
SERVICE_UNAVAILABLEenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
SERVICE_UNAVAILABLEenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
- ▲
the request property
became requiredrequest-property-became-required
- ▲
the request property
became requiredrequest-property-became-required
- ▲
the response property
//became nullable for the statusresponse-property-became-nullable
- ▲
removed the required property
//from the response with the statusresponse-required-property-removed
- ▲
removed the required property
//from the response with the statusresponse-required-property-removed
- ▲
removed the required property
//from the response with the statusresponse-required-property-removed
- ●
removed the request property
request-property-removed
- ●
removed the request property
request-property-removed
- ●
removed the request property
request-property-removed
- ●
removed the optional property
//from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
//from the response with the statusresponse-optional-property-removed
- ○
the response property
//became required for the statusresponse-property-became-required
- ○
the response property
//became required for the statusresponse-property-became-required
- ○
the response property
//became required for the statusresponse-property-became-required
- ▲