{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-@l10n/pt-BR/products/wallet/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition"]},"type":"markdown"},"seo":{"title":"Configure approval flows via the console","description":"User guides, API reference, and support resources.","siteUrl":"https://docs.ripple.com","lang":"en-US"},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"configure-approval-flows-via-the-console","__idx":0},"children":["Configure approval flows via the console"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Approval groups require designated users to review and approve actions before those actions take effect. Use the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Approval groups"]}," tab of the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Controls"]}," page in the console to create, update, and delete approval groups that enforce governance across transactions, addresses, policies, credentials, and users."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For what each approval type governs and how approvals work at runtime, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/pt-br/products/wallet/governance-and-controls/approvals"},"children":["Approvals"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"create-an-approval-group-via-the-console","__idx":1},"children":["Create an approval group via the console"]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning","name":"Owner or Administrator role required"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Only users with the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Owner"]}," or ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Administrator"]}," role can create approval groups. Other roles don't see ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Create approval group"]},". If you don't see it, ask an owner or administrator in your organization."]}]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Go to the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Controls"]}," section of the Ripple Custody (Wallet) console and select the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Approval groups"]}," tab."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Select ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Create approval group"]},"."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Under ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Type of approval"]},", select the entity that this approval group applies to. The list shows only types that don't have an approval group yet (to change an existing group, use ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Edit"]}," from the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Actions"]}," menu of the table):"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Addresses"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["API credentials"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Approval groups"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Policy rules"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Transactions"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Users"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Under ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Approvers"]},", select one or more users from your organization to become approvers."]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["You can select any activated user, whatever their role, but only users with the Owner, Administrator, Proposer, or Approver role can approve. A Viewer, Auditor, or Support user in an approval group can never vote, which can make the group's threshold unreachable. Users who haven't activated their account aren't listed."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["You can select any number of approvers."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["For ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Approval groups"]},", Ripple Custody (Wallet) uses active organization owners as approvers. You configure the threshold and timeout, but you don't select individual approvers."]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Under ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Threshold"]},", set the minimum number of required approvers per request. ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Threshold"]}," appears after you select approvers."]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["You can require every user in the approval group, but we recommend majority approval to account for user availability."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Example: If an approval group has three approvers, set the number of required approvers to two."]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Under ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Approval timeout"]},", set the time window approvers have to review and approve requests before they time out: 5, 15, or 30 minutes, or 1, 2, 4, 12, or 24 hours. The default is 1 hour."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The timeout applies to the approval requests that this group handles. The one exception is the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Approval groups"]}," type: owners have the timeout set in the change itself, the requested timeout when you update a group and 1 hour when you delete one in the console. For changes to other approval groups, owners get the timeout of the group that the request changes. If approvers don't submit enough approvals within the configured timeout, Ripple Custody (Wallet) automatically rejects the approval."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Select ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Create"]},". The console returns to the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Approval groups"]}," tab and shows ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Approval group updated"]},". If active owners must approve the change, it shows ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Approval group change pending"]}," instead."]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Each entity type can have one default approval group."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/approval-group-create-form.2bc88f754cfc71d8f1c840c4365a397721ecc3008b015e601be35266c04a6fee.9fccc40d.png","alt":"The Create approval group form with Type of approval, Approvers, Threshold, and Approval timeout"},"children":[]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"add-an-approval-group-to-a-wallet-via-the-console","__idx":2},"children":["Add an approval group to a wallet via the console"]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning","name":"Owner or Administrator role required"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Only users with the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Owner"]}," or ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Administrator"]}," role can change a wallet's approval group. Other roles don't see ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Update approval group"]}," on the wallet's ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Approvers"]}," tab. If you don't see it, ask an owner or administrator in your organization."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["By default, transaction approval groups apply to all wallets. To override the default approval group for a wallet, go to the wallet's ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Approvers"]}," tab and select ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Update approval group"]},". On the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Approval group"]}," page, select one of these options:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Do not use an approval group"]}," - No default approvals apply to transactions from this wallet. A transaction that triggers a ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/pt-br/products/wallet/governance-and-controls/approvals/step-up-approvals"},"children":["step-up approval"]}," rule still needs that rule's approvers."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Use default approval group"]}," - The wallet uses the organization-level transaction approval group."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Use a custom list of approvers for this wallet"]}," - The wallet uses wallet-specific approvers and threshold settings. Select the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Approvers"]},", then the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Number of required approvals"]},", which appears after you select approvers, and the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Approval timeout"]},"."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Then select ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Update approval group"]},". If your organization has no transaction approval group, the console shows the default option as ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["No default approval group exists"]}," and you can't select it. After you save, the console shows ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Approval group saved"]},", or ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Approval group pending"]}," if active owners must approve the change."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/wallet-update-approval-group.dd7cafc2517aee032d136cbd917a061cc7b42210bbdcd6dceeadd445cf0b05b5.9fccc40d.png","alt":"The Approval group page for a wallet, with Use a custom list of approvers for this wallet selected and the Approvers, Number of required approvals, and Approval timeout fields filled in"},"children":[]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To remove a wallet's custom approval group, open the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Actions"]}," menu on its row on the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Approvers"]}," tab and select ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Delete"]},". The console shows ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Approval group deleted"]},", or ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Approval group deletion pending"]}," if active owners must approve the deletion. If neither the wallet nor your organization has a transaction approval group, the tab shows ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["No approval groups"]}," instead of a row. While a change to the wallet's approval group is pending approval, the console hides ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Update approval group"]}," and the row's ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Delete"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If your organization uses an ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Approval groups"]}," approval group, changes to wallet-level transaction approval group overrides require active owner approval before they take effect. A passkey wallet is the exception. Ripple Custody (Wallet) accepts only the wallet's creator as the single approver, with one required approval."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To require different approvers only for transactions of more than an amount, use ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/pt-br/products/wallet/governance-and-controls/approvals/step-up-approvals"},"children":["step-up approvals"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"require-approval-for-approval-group-changes-via-the-console","__idx":3},"children":["Require approval for approval group changes via the console"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Required role:"]}," Owner or Administrator."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Create an approval group with ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Approval groups"]}," as the approval type to require active owner approval before approval group changes take effect."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Create this approval group before you create or update other approval groups if you want active owners to approve those changes. The first ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Approval groups"]}," approval group turns on this requirement."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"Active owner approval"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Ripple Custody (Wallet) sends approval group change requests only to active organization owners. Keep enough active owners available to meet the threshold before you turn on this requirement. If fewer owners are active than the threshold, Ripple Custody (Wallet) refuses approval group changes, including deleting the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Approval groups"]}," approval group itself, with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["OwnerQuorumCannotBeMet"]}," instead of queuing it. You can set the threshold as high as the number of owner seats, including blocked or pending owners, so keep enough active owners before you raise the threshold or deactivate an owner. An owner who becomes blocked, or who loses the Owner role, after someone submits a change can't act on it: Ripple Custody (Wallet) refuses the approval with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["OwnerQuorumApproverInactive"]}," (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PAL003.021"]},")."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To configure this requirement:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Go to the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Controls"]}," section of the Ripple Custody (Wallet) console and select the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Approval groups"]}," tab."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Select ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Create approval group"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Under ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Type of approval"]},", select ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Approval groups"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Under ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Threshold"]},", select the minimum number of active owners who must approve approval group changes."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Under ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Approval timeout"]},", select the timeout for this approval group. When you update this group, owners have the timeout set in the update. For changes to other approval groups, owners have the timeout set in the change: the group's timeout when you create it, and the requested timeout when you update it. When you delete a group in the console, including this one, owners have 1 hour."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Select ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Create"]},"."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/approval-group-create-approval-groups-type.8a8bf317ffbff4183329b947e27506d08f19fe30fc51629dd601ae4e3d343a44.9fccc40d.png","alt":"The Create approval group form with Approval groups selected as the type of approval, showing Threshold, the active owners in the group, and Approval timeout"},"children":[]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["After you create this approval group, these changes create a pending approval request:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Creating an organization-level approval group"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Updating an organization-level approval group"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Deleting an organization-level approval group"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Changing a wallet-level transaction approval group override, including switching a wallet to the default approval group, no approval group, or a custom list of transaction approvers"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Ripple Custody (Wallet) applies the requested change only after enough active owners approve it. If you're an owner, you're one of the active owners who can approve, so you can approve a change that you submitted. If you update or delete the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Approval groups"]}," approval group itself later, active owners must approve that change too."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["While an approval group change is pending:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Ripple Custody (Wallet) keeps the current approval group configuration in effect."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The approval groups table shows ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Pending creation"]},", ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Pending update"]},", or ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Pending deletion"]}," status. Deleting the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Approval groups"]}," approval group itself shows as ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Pending update"]},", not ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Pending deletion"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["In the console, you can't edit or delete the approval group until the pending request completes, expires, or approvers reject it."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If enough owners reject the request that it can no longer reach the threshold, or the request expires, Ripple Custody (Wallet) leaves the existing approval group configuration unchanged. One rejection doesn't end the request while the remaining pending approvals can still reach the threshold."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"update-an-approval-group-via-the-console","__idx":4},"children":["Update an approval group via the console"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Required role:"]}," Owner or Administrator."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Approval groups"]}," tab lists approval groups in a table. The ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Actions"]}," menu, with ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Edit"]}," and ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Delete"]},", appears for every role that can open ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Controls"]},", including proposers, approvers, and auditors. Only owners and administrators can use it. For any other role, the request fails with an unauthorized error."]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Find the approval group in the table, open the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Actions"]}," menu, and select ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Edit"]},". The ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Update approval group"]}," page opens."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Add or remove approvers, change the minimum number of required approvers, or change the approval timeout."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Select ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Update"]},". The console returns to the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Approval groups"]}," tab and shows ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Approval group updated"]},". If active owners must approve the change, it shows ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Approval group change pending"]}," instead."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/approval-group-edit-form.43a5c1d09dee9c52f6390d09f2d40a895657a743b88632795e44c87f544b9783.9fccc40d.png","alt":"The Update approval group form for the Addresses approval group, with approvers, threshold, and approval timeout"},"children":[]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can't change the approval type. To change the type, delete the approval group and create a new one."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If your organization uses an ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Approval groups"]}," approval group, updates remain pending until enough active owners approve them."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"delete-an-approval-group-via-the-console","__idx":5},"children":["Delete an approval group via the console"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Required role:"]}," Owner or Administrator."]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["On the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Approval groups"]}," tab, find the approval group in the table."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Open the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Actions"]}," menu and select ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Delete"]},"."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The console doesn't ask you to confirm. It submits the deletion as soon as you select ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Delete"]},". The console then shows ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Approval group deleted"]},", or ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Approval group deletion pending"]}," if active owners must approve the deletion."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/approval-group-actions-menu-delete.aebd4274ffbcca75c6f8191188af320f2f1c7b7a589117c82fe0c09e71fbff08.9fccc40d.png","alt":"The Approval groups table with the Actions menu open, showing Edit and Delete"},"children":[]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If your organization uses an ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Approval groups"]}," approval group, deletion remains pending until enough active owners approve it. To turn off approval requirements for approval group changes, delete the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Approval groups"]}," approval group. Active owners must also approve that deletion."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"governance-best-practices","__idx":6},"children":["Governance best practices"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Separate initiators from approvers."]}," Assign different users to create and approve transactions. This separation of duties reduces the risk of unauthorized actions."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Govern addresses and policies, not just transactions."]}," Require approvals on address book entries and policy rule changes to prevent unauthorized modifications to your security controls."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Use API credential approvals."]}," Require approval before new API credentials become active to prevent unauthorized programmatic access."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Protect approval groups."]}," Create an approval group with the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Approval groups"]}," type so changes to approvers and thresholds require active owner approval."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Maintain active owners."]}," Keep enough owner users active to meet the approval group change threshold, especially before role or user lifecycle changes."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Review approval timeouts."]}," Set timeouts that balance speed with adequate review time. Too short (5 minutes) may cause legitimate requests to expire. Too long (24 hours) may delay operations."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Start restrictive, then adjust."]}," Begin with approval groups on every type in the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Type of approval"]}," list. Remove them only after you understand your operational patterns and are confident the controls are no longer needed."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Monitor approval activity."]}," Use ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/pt-br/products/wallet/integrations-and-monitoring/audit-logging"},"children":["audit logging"]}," to track who approved what and when. Ripple Custody (Wallet) doesn't write a dedicated approval event for a decision. The decision appears as an access record of the approver's request, with the user ID, time, URL, and base64-encoded request body, so decode the body to see what the decision covers."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"related-guides","__idx":7},"children":["Related guides"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/pt-br/products/wallet/governance-and-controls/approvals"},"children":["Approvals"]}," — How approval groups work"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/pt-br/products/wallet/governance-and-controls/approvals/step-up-approvals"},"children":["Step-up approvals"]}," — Require specific approvers for large transactions"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/pt-br/products/wallet/organization-and-access/users-and-roles/manage-users"},"children":["Manage users and roles"]}," — Assign the Approver role to users"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/pt-br/products/wallet/integrations-and-monitoring/audit-logging"},"children":["Configure audit logging"]}," — Track approval activity"]}]}]},"headings":[{"value":"Configure approval flows via the console","id":"configure-approval-flows-via-the-console","depth":1},{"value":"Create an approval group via the console","id":"create-an-approval-group-via-the-console","depth":2},{"value":"Add an approval group to a wallet via the console","id":"add-an-approval-group-to-a-wallet-via-the-console","depth":2},{"value":"Require approval for approval group changes via the console","id":"require-approval-for-approval-group-changes-via-the-console","depth":2},{"value":"Update an approval group via the console","id":"update-an-approval-group-via-the-console","depth":2},{"value":"Delete an approval group via the console","id":"delete-an-approval-group-via-the-console","depth":2},{"value":"Governance best practices","id":"governance-best-practices","depth":2},{"value":"Related guides","id":"related-guides","depth":2}],"frontmatter":{"title":"Configure approval flows via the console","seo":{"title":"Configure approval flows via the console"}},"lastModified":"2026-10-23T12:53:15.000Z","isTranslationFallback":true,"pagePropGetterError":{"message":"","name":""}},"slug":"/pt-br/products/wallet/governance-and-controls/approvals/configure-approval-flows","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}