Corgi Labs transaction metadata

Corgi Labs transaction metadata

Reference for every metadata key Corgi Labs writes to your transactions, with integration-specific details and decision semantics.

On this page

Transaction Metadata

When Corgi Labs processes a transaction, Corgi Model and Rule Engine add metadata that explains the risk evaluation and the resulting action. The exact metadata keys available depend on your integration flow and payment service provider.

This reference lists every metadata key Corgi Labs writes, when it appears, and what it means. Use it to debug transactions, build reporting, or integrate Corgi data into your own systems.


CORGI Model metadata

Corgi Model is managed by Corgi and does not appear as a merchant-configurable rule in the Rule Engine. Corgi Model scores every transaction, including transactions where other risk engines, such as Stripe Radar, make the decision. To determine whether a transaction is in Corgi traffic, check corgi_exp_group.

Metadata keyIntegration flowDescription
corgi_scoreAll supported flowsCorgi's payment risk score from 0 to 100. Higher values indicate a higher predicted likelihood of dispute. Corgi Model scores 100% of traffic, so every payment has this key. Corgi Model participates in the payment decision only when corgi_exp_group is corgi. When corgi_exp_group is stripe, the score is for comparison only.
corgi_exp_groupAll supported flowsExperiment group assigned to the payment. Use this key to determine whether a payment is in Corgi traffic or Stripe traffic. corgi means Corgi Model participated in the payment decision. stripe means Stripe Radar evaluated the payment, and Corgi Model generated corgi_score for comparison only. During staged rollout, Corgi may assign 30%, 70%, or 100% of eligible traffic to corgi.
corgi_model_versionAll supported flowsVersion of Corgi Model that generated corgi_score for the payment.
corgi_model_thresholdAll supported flowsCorgi Model's blocking threshold when the payment was evaluated, on the same 0 to 100 scale as corgi_score.
corgi_pre_auth_decision, corgi_pre_auth_matched_ruleCorgi SDK confirm-payment onlyResult of the Corgi Model and Rule Engine evaluation before payment authorization. When Corgi Model approves the payment, corgi_pre_auth_decision is NONE unless a rule also matched. When Corgi Model blocks the payment, corgi_pre_auth_decision is BLOCK, and corgi_pre_auth_matched_rule is corgi-model-rule-id, CORGI model.
corgi_decision, corgi_matched_ruleStripe Checkout for subscriptions onlyResult of the Corgi Model and Rule Engine evaluation. When Corgi Model approves the payment, corgi_decision is NONE unless a rule also matched. When Corgi Model blocks the payment, corgi_decision is BLOCK, and corgi_matched_rule is corgi-model-rule-id, CORGI model.
corgi_actionAll supported flowsFinal action taken by Corgi Model and Rule Engine. When Corgi Model blocks the payment, corgi_action is model_block. When Corgi Model recommends blocking but enforcement is disabled, corgi_action is model_block_dry_run. See Decision values for all values.

corgi-model-rule-id is a reserved, stable identifier that represents the Corgi-managed model rule consistently across integrations.


All transaction metadata by integration type

Corgi SDK confirm-payment for Stripe

Calls to POST /api/v1/corgi-sdk/confirm-payment may be routed through a two-phase evaluation. The Rule Engine evaluates the payment before authorization and, when required, after authorization. Corgi Labs writes the metadata below to the Stripe PaymentIntent it creates and preserves any metadata you supplied in paymentIntentParams.metadata.

Metadata keyType / exampleWhen presentDescription
corgi_pre_auth_decisionenum / ALLOW, BLOCK, REVIEW, REQUEST_3DS, or NONEAfter pre-auth evaluationResult of the Corgi Model and Rule Engine evaluation before payment authorization. NONE means evaluation completed and no model or rule produced an action.
corgi_pre_auth_matched_rulestring / rule_123, Review new customersAfter pre-auth evaluationMatched rule ID and name before authorization, formatted as rule ID, rule name. An empty string means no rule matched.
corgi_post_auth_decisionenum / ALLOW, BLOCK, REVIEW, or NONEAfter post-auth evaluationResult of the Rule Engine evaluation after payment authorization. ALLOW means an allow rule matched; NONE means evaluation completed and no post-authorization rule produced an action. This key is absent when post-authorization evaluation does not run.
corgi_post_auth_matched_rulestring / rule_456, Block high riskAfter post-auth evaluationRule ID and name matched after authorization, formatted as rule ID, rule name. An empty string means no rule matched.
corgi_actionenum / rule_block, model_block_dry_run, pending, or no_actionWhen Rule Engine evaluates the paymentSummary of the final action taken by Corgi Model and Rule Engine, including global rule, model, and merchant rule actions. Values ending in _dry_run mean an action was recommended but enforcement was disabled. pending means the post-authorization decision is not final yet. For all values, see Decision values.
corgi_request_3ds_matched_rulestring / rule_789, Require 3DSWhen 3DS is requestedRule ID and name that requested 3D Secure, formatted as rule ID, rule name. When present, corgi_pre_auth_decision is REQUEST_3DS. The authentication result is available on the Stripe PaymentIntent or Charge.
corgi_global_rulestring / 0.1, OFAC Comprehensively Embargoed JurisdictionsWhen a global rule matchesNumber and name of the matched global rule, formatted as number, name. Global rules are Corgi-managed compliance and network-level fraud rules. You cannot configure them, but this metadata identifies the matched rule.
corgi_global_blockboolean / true or falseWhen a global rule matchestrue when the matched global rule produces a block action.
corgi_capture_methodenum / automatic or manualWhen Rule Engine evaluates the paymentThe capture method requested in paymentIntentParams.capture_method; defaults to automatic. Corgi creates the PaymentIntent with manual capture while evaluating risk, then uses this value to preserve your requested capture behavior. This is separate from the Stripe Payment Element configuration. The ConfirmationToken must be created with captureMethod: "manual" for this flow.
fp_event_idstring / fp_evt_…When supplied by youYour event ID from fingerprint.com, provided through paymentIntentParams.metadata. Corgi copies it to the PaymentIntent and uses the event to evaluate device, browser, IP, and other device signals.

Stripe Checkout for subscriptions

This flow is for subscription businesses using Stripe Checkout. It uses a payment-mode Checkout Session for a temporary manual-capture authorization. After checkout.session.completed, Corgi evaluates the authorized payment, cancels the authorization, and creates a Subscription unless the payment is blocked.

Your Checkout Session must use mode: "payment" with payment_intent_data.capture_method: "manual" and setup_future_usage: "off_session".

Metadata keyType / exampleWhen presentDescription
corgi_decisionenum / ALLOW, BLOCK, REVIEW, or NONEAfter this Checkout subscription flow is processedCorgi Model or Rule Engine evaluation result written to the Checkout Session and related PaymentIntent objects. This value records the evaluated action; enforcement may depend on your project's action settings. NONE means no model or rule produced an action, unless corgi_rule_engine_skipped is true.
corgi_actionenum / rule_block, model_block_dry_run, or no_actionAfter this Checkout subscription flow is processedSummary of the final action taken by Corgi Model and Rule Engine, including global rule, model, and merchant rule actions. Values ending in _dry_run mean an action was recommended but enforcement was disabled. For all values, see Decision values.
corgi_subscription_idstring / sub_…When a subscription is createdID of the Subscription created by this Stripe Checkout subscription flow, written to the Checkout Session and related PaymentIntent objects. This key is absent when the payment is blocked or no Subscription is created.
corgi_matched_rulestring / rule_123, Review new customersWhen a rule matchesMatched rule ID and name, formatted as rule ID, rule name, written to the Checkout Session and related PaymentIntent objects.
corgi_rule_engine_skippedboolean / trueWhen rule evaluation is skippedtrue when Corgi intentionally skips rule evaluation for the transaction. Written to the Checkout Session and the created Subscription's PaymentIntent.
corgi_global_rulestring / 0.1, OFAC Comprehensively Embargoed JurisdictionsWhen a global rule matchesNumber and name of the matched global rule, formatted as number, name, written to the Checkout Session and related PaymentIntent objects. Global rules are Corgi-managed compliance and network-level fraud rules. You cannot configure them, but this metadata identifies the matched rule.
corgi_global_blockboolean / true or falseWhen a global rule matchestrue when the matched global rule produces a block action. Written to the Checkout Session and related PaymentIntent objects.
corgi_decision_atISO 8601 string / 2026-07-28T06:50:21.907ZAfter this Checkout subscription flow is processedISO 8601 timestamp marking completion of this Checkout subscription evaluation, written to the Checkout Session and related PaymentIntent objects.
corgi_checkout_session_idstring / cs_…On the created SubscriptionID of the Checkout Session that originated the Subscription.
corgi_subscription_paramsJSON / {"items":[{"price":"price_…","quantity":1}]}Required for this flowYour Stripe Subscription creation parameters stored on the Checkout Session. The JSON value must contain at least one items entry. When the payment is permitted, Corgi creates the Subscription from these parameters and derives the customer and default payment method from the completed Checkout flow.
fp_event_idstring / fp_evt_…When supplied by youYour event ID from fingerprint.com, provided through paymentIntentParams.metadata. Corgi copies it to the PaymentIntent and uses the event to evaluate device, browser, IP, and other device signals.

Decision values

The following enum values appear in corgi_pre_auth_decision, corgi_post_auth_decision, and corgi_decision:

ValueMeaning
ALLOWAn allow rule matched.
BLOCKA block rule or the Corgi Model blocked the payment.
REVIEWA review rule matched.
REQUEST_3DS3D Secure was requested (pre-auth only).
NONEEvaluation completed and no model or rule produced an action.

The following enum values appear in corgi_action:

ValueMeaning
global_blockA global rule blocked the payment.
model_blockCorgi Model blocked the payment.
rule_blockA merchant rule blocked the payment.
rule_reviewA merchant rule sent the payment for review.
rule_3ds3D Secure was requested.
model_block_dry_runCorgi Model recommended blocking, but enforcement was disabled.
rule_block_dry_runA rule recommended blocking, but enforcement was disabled.
rule_review_dry_runA rule recommended review, but enforcement was disabled.
rule_3ds_dry_runA rule recommended 3D Secure, but enforcement was disabled.
rule_allowAn allow rule matched.
no_actionNo model or rule action was taken.
pendingThe final post-authorization decision is still pending.
errorRule Engine evaluation failed.

Global rules

Global rules are Corgi-managed compliance and network-level fraud rules. You cannot configure them, but Corgi exposes when they match through metadata.

Last updated: 2026-09-15