Recued
Menu
← Back to recipes

Revoke access on refund or dispute

by recued-core v1 16 views

Use “Revoke access on refund or dispute” in Recued. When a Stripe charge is fully refunded or disputed, close the paying customer's access on this door. The immediate-vs-grace decision is the seller's status policy (Settings - Seller); this recipe only signals the ended state with a supported close reason.

Complete workflow

Use Seller Refund & Dispute — Revoke Access in Recued for subscription, payment observer, and provider source truth. It includes 1 related pack in one install.

You are viewing one recipe in this workflow. Installing it opens the complete pack so its other recipes and background automations arrive together.

Revoke access on refund or dispute
This recipe Background automation

Use “Revoke access on refund or dispute” in Recued. When a Stripe charge is fully refunded or disputed, close the paying customer's access on this door. The immediate-vs-grace decision is the seller's status policy (Settings - Seller); this recipe only signals the ended state with a supported close reason.

pack:seller-refund-dispute-revokerecipe-role:webhooksellersubscription
by recued-core pinned v1
View pack details, dependencies, and permissions →
How it works 50 steps

Inspect the data fetches, transforms, gates, and output this recipe runs.

Process (50 steps)
webhook_event ?
profile_exact compare
Check if webhook event delivery profile id is one of stripe.event.v1
decoded_schema_exact compare
Check if webhook event delivery decoded schema id is one of stripe.event.v1
transport_exact compare
Check if webhook event delivery transport assurance is one of authenticated
source_truth_policy_exact compare
Check if webhook event delivery minimum source truth policy is one of provider_readback_required
freshness_exact compare
Check if webhook event delivery freshness checked is one of true
payload_object_exact compare
Check if webhook event payload object is one of event
payload_event_id_exact compare
Check if webhook event payload id is one of webhook event event provider event id
payload_event_type_exact compare
Check if webhook event payload type is one of webhook event event provider event type
envelope_shared_valid all
Check if all conditions are true
door_id trim
Trim whitespace from setting door id
door_id_present compare
Check if door id has data
event_type_supported compare
Check if webhook event event provider event type is one of charge.refunded,charge.dispute.created
is_refund compare
Check if webhook event event provider event type is one of charge.refunded
is_dispute compare
Check if webhook event event provider event type is one of charge.dispute.created
refund_payload_object_exact compare
Check if webhook event payload data object object is one of charge
refund_resource_id_matches compare
Check if webhook event payload data object id is one of webhook event event provider resource id
charge_id_prefix starts_with
Check if webhook event event provider resource id starts with ch_
charge_id_truncated truncate
Truncate webhook event event provider resource id to a max length
charge_id_bounded compare
Check if webhook event event provider resource id is one of charge id truncated
charge_read ?
skip: step.is_refund equal false
charge_object_exact compare
Check if charge read result object is one of charge
charge_id_exact compare
Check if charge read result id is one of webhook event event provider resource id
charge_fully_refunded compare
Check if charge read result refunded is one of true
charge_customer default
Apply default
charge_customer_prefix starts_with
Check if charge customer starts with cus_
refund_proof all
Check if all conditions are true
dispute_payload_object_exact compare
Check if webhook event payload data object object is one of dispute
dispute_resource_id_matches compare
Check if webhook event payload data object id is one of webhook event event provider resource id
dispute_id_prefix starts_with
Check if webhook event event provider resource id starts with du_
dispute_id_truncated truncate
Truncate webhook event event provider resource id to a max length
dispute_id_bounded compare
Check if webhook event event provider resource id is one of dispute id truncated
dispute_read ?
skip: step.is_dispute equal false
dispute_object_exact compare
Check if dispute read result object is one of dispute
dispute_id_exact compare
Check if dispute read result id is one of webhook event event provider resource id
dispute_payment_intent default
Apply default
dispute_pi_prefix starts_with
Check if dispute payment intent starts with pi_
dispute_pi_truncated truncate
Truncate dispute payment intent to a max length
dispute_pi_bounded compare
Check if dispute payment intent is one of dispute pi truncated
dispute_payment_read ?
skip: step.is_dispute equal false
dispute_payment_object_exact compare
Check if dispute payment read result object is one of payment_intent
dispute_payment_id_exact compare
Check if dispute payment read result id is one of dispute payment intent
dispute_customer default
Apply default
dispute_customer_prefix starts_with
Check if dispute customer starts with cus_
dispute_proof all
Check if all conditions are true
refund_revoke_allowed all
Check if all conditions are true
close_on_refund ?
skip: step.refund_revoke_allowed equal false
dispute_revoke_allowed all
Check if all conditions are true
close_on_dispute ?
skip: step.dispute_revoke_allowed equal false
event_summary to_summary
Format results as a summary card
Settings 2 configurable

Configurable at install. Defaults shown — change them anytime in Recued.

stripe setting =
door id setting =

Trust & control

What installing this recipe would let it do. Recued grants these permissions at install — review them there before approving.

Data it touches

Warehousedata.object

About

Tags

pack:seller-refund-dispute-revokerecipe-role:webhooksellersubscriptionrefunddisputepayment-observerprovider-source-truthd-196

Details

50 steps 2 configurable settings recipe_id: revoke-access-on-refund-or-dispute