Approve an exact review
Only show approval controls whenavailableActions includes approve. Send the values returned by Get action without modifying them:
decision can be approve, reject, or request_changes. Add reason when it helps the provider or operator understand the decision.
If the payload, price, merchant, cart, revision, digest, or expiry changes, the previous approval is invalid. Fetch the current Action and ask the user to review again.
Complete connection or payment
connection_required and payment_required can include a typed interaction and first-party Darwin webLink. Open the link only after a user gesture. Keep the Action nonterminal, then poll the same actionId for backend-confirmed progress.
Darwin authentication, provider authentication, and spending approval are separate. Completing one never silently grants the others.