This page lists every attribute available in the Corgi Intelligence Rule Engine. Use these attributes to build Allow, Block, and Review rules. Each entry includes the attribute name, its type, and a sample value.
3D Secure
| Attribute | Type | Sample value |
|---|
three_d_secure<br>Identifies if the payment uses a 3D Secure source. | Boolean | true |
three_d_secure_authenticated<br>Identifies if the payment was authenticated after a successfully completed 3D Secure verification (either risk-based or challenge-based). | Boolean | true |
three_d_secure_authentication_flow<br>The authentication flow used for 3D Secure on this payment. | Case-insensitive string | challenge |
three_d_secure_result<br>The 3D Secure result for the card used to make the payment. The supported values are: authenticated, attempt_acknowledged, processing_error, exempted. | Case-insensitive string | authenticated |
Address
Billing address
| Attribute | Type | Sample value |
|---|
billing_address<br>The full provided billing address. | Case-insensitive string | 123 Main St #3J Chicago, IL 60007 US |
billing_address_line1<br>The first line of the provided billing address (typically a street name and number). | Case-insensitive string | 123 Main St |
billing_address_line2<br>The second line of the provided billing address (typically an apartment or unit number). | Case-insensitive string | #3J |
billing_address_postal_code<br>The postal code of the provided billing address. | Case-insensitive string | 60007 |
billing_address_city<br>The city of the provided billing address. | Case-insensitive string | Chicago |
billing_address_state<br>The state of the provided billing address. | Case-insensitive string | IL |
billing_address_country<br>The two-letter code corresponding to the country of the provided billing address. | Case-insensitive country | US |
Shipping address
| Attribute | Type | Sample value |
|---|
shipping_address<br>The full provided shipping address. | Case-insensitive string | 123 Main St #3J Chicago, IL 60007 US |
shipping_address_line1<br>The first line of the provided shipping address (typically a street name and number). | Case-insensitive string | 123 Main St |
shipping_address_line2<br>The second line of the provided shipping address (typically an apartment or unit number). | Case-insensitive string | #3J |
shipping_address_postal_code<br>The postal code (ZIP) of the provided shipping address. | Case-insensitive string | 60007 |
shipping_address_city<br>The city of the provided shipping address. | Case-insensitive string | Chicago |
shipping_address_state<br>The state of the provided shipping address. | Case-insensitive string | IL |
shipping_address_country<br>The two-letter code corresponding to the country of the provided shipping address. | Case-insensitive country | US |
Amount
| Attribute | Type | Sample value |
|---|
amount_in_usd<br>The amount of the payment, converted to USD. For non-USD payments, Corgi Labs automatically calculates a converted amount based on a reference exchange rate, updated daily. | Case-insensitive string | 50 |
Card info
| Attribute | Type | Sample value |
|---|
card_brand<br>The brand of the card used to make the payment. The supported values are: amex (American Express), visa (Visa), mc (Mastercard), dscvr (Discover), diners (Diners Club), interac (Interac), jcb (JCB), and cup (UnionPay). | Case-insensitive string | visa |
card_bin<br>The Bank Identification Number (BIN) of the card used to make the payment. The BIN is the first six digits of the card number. | Case-insensitive string | 371758 |
card_country<br>The two-letter code corresponding to the country where the card was issued. | Case-insensitive country | US |
card_fingerprint<br>The fingerprint of the card used to make the payment. The card fingerprint is a unique identifier of a particular card number. | Case-sensitive string | example_fingerprint |
card_funding<br>Whether the card is a prepaid, debit, or credit card. The supported values are: credit, debit, prepaid, unknown. | Case-sensitive string | credit |
card_description<br>A high-level description of the type of cards issued in this range. This attribute is case-insensitive, but it's punctuation sensitive. | Case-insensitive string | Visa Signature |
card_issuer<br>The name of the card's issuing bank. This attribute is case-insensitive, but it's punctuation sensitive. | Case-insensitive string | JP Morgan Chase |
cardholder_name<br>The provided name associated with a purchaser's card information. This attribute is case-insensitive, but it's punctuation sensitive.<br><br>Use this attribute only to block names or name patterns of individuals who you have reason to believe have previously committed fraud on your service. Your operations team should be prepared to respond to any customer complaints and to add legitimate customers to an allowlist where appropriate. | Case-insensitive string | Jane Doe |
statement_descriptor<br>The statement descriptor provided on a payment. | Case-insensitive string | example descriptor |
Email
| Attribute | Type | Sample value |
|---|
email<br>The email address supplied with the payment. | Case-insensitive string | user@example.com |
email_domain<br>The domain of the email supplied with the payment. | Case-insensitive string | example.com |
IP address
| Attribute | Type | Sample value |
|---|
ip_address<br>The IP address from which the payment originated. Sourced from device fingerprinting. | Case-insensitive string | 192.168.1.1 |
ip_country<br>The two-letter country code corresponding to the IP address of the payment. | Case-insensitive string | US |
ip_state<br>The state or region corresponding to the IP address of the payment. | Case-insensitive string | California |
is_anonymous_ip<br>Identifies if the payment originated from a known anonymous IP (for example, a VPN, Tor, or proxy). | Boolean | true |
Issuer checks
These attributes are only evaluated after authorization. A Block rule using these attributes is still enforced even if a pre-auth Allow rule matched the payment. If your payment provider has IC++ pricing, a small authorization interchange fee may still be incurred.
| Attribute | Type | Sample value |
|---|
address_line1_check<br>A check by the card issuer to match the first line of the provided billing address (typically a street name and number) against the information they have on file for the cardholder. The supported values are: pass, fail, unavailable, unchecked, not_provided. | Case-sensitive string | pass |
address_zip_check<br>A check by the card issuer to match the provided postal code against the information they have on file for the cardholder. The supported values are: pass, fail, unavailable, unchecked, not_provided. | Case-sensitive string | pass |
cvc_check<br>A check by the card issuer to match the provided CVC (also referred to as CVV) against the information they have on file for the cardholder. The supported values are: pass, fail, unavailable, unchecked, not_provided. | Case-sensitive string | pass |
Customer
| Attribute | Type | Sample value |
|---|
customer<br>The Customer object ID supplied with the payment. | Case-sensitive string | cus_x6UEhEYs5JHZhu |
customer_name<br>The name associated with the Customer object. | Case-insensitive string | Jane Doe |
delinquent<br>Whether the customer is marked as delinquent. | Boolean | true |
hours_since_customer_was_created<br>The number of hours since the Customer object making the payment was created on your account. | Numeric | 50 |
minutes_since_customer_was_created<br>The number of minutes since the Customer object making the payment was created on your account. | Numeric | 50 |
seconds_since_customer_was_created<br>The number of seconds since the Customer object making the payment was created on your account. | Numeric | 50 |
hours_since_customer_was_created_on_transactions<br>The number of hours since the Customer object making the transaction was created on your account. | Numeric | 50 |
minutes_since_customer_was_created_on_transactions<br>The number of minutes since the Customer object making the transaction was created on your account. | Numeric | 50 |
seconds_since_customer_was_created_on_transactions<br>The number of seconds since the Customer object making the transaction was created on your account. | Numeric | 50 |
You can pass custom attributes in the metadata. Corgi Labs automatically parses the fields you include and adds them to your Rule Engine.
| Attribute | Type | Sample value |
|---|
::metadata_key::<br>Access custom metadata attached to the payment. Replace metadata_key with the key name you set when creating the payment. For example, if you set metadata[item_id], the rule attribute is ::item_id::. | String | sku_12345 |
Stripe Radar risk assessment
If you process payments via Stripe, Stripe Radar evaluation results are available.
| Attribute | Type | Sample value |
|---|
stripe_risk_level<br>The risk level assigned to the payment by Stripe Radar's model. The supported values are: normal, elevated, highest, not_assessed. | Case-insensitive string | elevated |
stripe_risk_score<br>The risk score assigned to the payment by Stripe Radar's model, from 0 (lowest risk) to 100 (highest risk). | Numeric | 50 |
Other details
| Attribute | Type | Sample value |
|---|
currency<br>The 3-digit currency code representing the currency in which the customer paid. | Case-insensitive string | usd |
digital_wallet<br>The type of digital wallet used to store payment information. The supported values are: android_pay, amex_express_checkout, apple_pay, masterpass, samsung_pay, visa_checkout, meta_pay, amazon_pay, revolut_pay, demo_pay, unknown, none.<br><br>Note: Except for android_pay (valid with or without cryptogram), these are only valid when Corgi Labs receives a cryptogram that can only be generated by a registered device, as opposed to an unencrypted Primary Account Number (PAN). | Case-insensitive string | android_pay |
payment_method_type<br>The payment method used on the payment. The supported values are: card, sepa_debit, and us_bank_account (ACH direct debit). | Case-insensitive string | us_bank_account |
charge_description<br>The description supplied with the payment. | Case-insensitive string | example descriptor |
destination<br>For Connect users creating destination charges, the destination account on whose behalf the charge is made. | Case-sensitive string | acct_19KCB9AlaaEw6AgR |
is_off_session<br>Indicates when a Stripe Billing payment isn't triggered by direct user action, or when the off_session flag is set at PaymentIntent confirmation. | Boolean | true |
is_recurring<br>Identifies if the payment is recurring, for example, from subscriptions. | Boolean | true |
is_setup_intent<br>Identifies if the transaction is a SetupIntent. | Boolean | true |
transaction_type<br>(DEPRECATED: use is_setup_intent where possible.) The type of the transaction. The supported values are: charge, payment_intent, setup_intent. The payment_intent value is only supported for Request Credentials rules. In that case, any Allow, Block, or Review rules run against the charge attempts created when confirming the payment. | String | charge |
Non-card payment methods
By default, rules are evaluated on card payments (including digital wallet transactions where the underlying payment method is a card), SEPA Direct Debit, and ACH bank transfer.
To build rules for specific payment methods, including alternative payment methods such as stored-value wallets and Buy Now, Pay Later providers, specify payment_method_type:
| Attribute | Type | Sample value |
|---|
payment_method_type<br>The payment method used on the payment. The supported values are: acss_debit, affirm, afterpay_clearpay, alipay, alma, amazon_pay, au_becs_debit, bacs_debit, bancontact, billie, blik, boleto, card, card_present, cashapp, crypto, customer_balance, eps, fpx, giropay, grabpay, ideal, interac_present, kakao_pay, klarna, konbini, kr_card, link, mobilepay, multibanco, naver_pay, nz_bank_account, oxxo, p24, pay_by_bank, payco, paynow, paypal, pix, promptpay, revolut_pay, samsung_pay, satispay, sepa_debit, sofort, swish, twint, us_bank_account, wechat_pay, and zip. | Case-insensitive string | klarna |
The following attributes are only evaluated on SEPA Direct Debit and ACH bank transfer payments.
| Attribute | Type | Sample value |
|---|
sepa_debit_bank_code<br>The bank code of the SEPA Direct Debit payment method. | Case-sensitive string | COBADEFFXXX |
sepa_debit_country<br>The two-letter country code of the SEPA Direct Debit payment method. | Case-insensitive country | DE |
sepa_debit_fingerprint<br>The unique fingerprint of the SEPA Direct Debit bank account. | Case-sensitive string | example_sepa_fp |
us_bank_account_bank_name<br>The name of the US bank for ACH Direct Debit payments. | Case-insensitive string | JP Morgan Chase |
us_bank_account_fingerprint<br>The unique fingerprint of the US bank account. | Case-sensitive string | example_ach_fp |
us_bank_account_routing_number<br>The routing number of the US bank account. | Case-sensitive string | 021000021 |
Pre-computed aggregate attributes
Pre-computed attributes provide aggregate counts, sums, and averages of historical activity, grouped by a specific dimension and computed over a time window. These are useful for velocity checks and anomaly detection.
Grouping dimensions
Pre-computed attributes are grouped by the following dimensions:
| Dimension | Description |
|---|
Card (card_fingerprint) | Groups activity by the unique card number fingerprint. |
Customer (customer_id) | Groups activity by the Stripe Customer object ID. |
Email (email) | Groups activity by the email address on the payment. |
Billing Address (billing_address_postal_code) | Groups activity by the billing address postal code. |
Shipping Address (shipping_address_postal_code) | Groups activity by the shipping address postal code. |
Payment Method (payment_method_id) | Groups activity by the Payment Method object ID. |
Time windows
Each aggregate attribute is computed over one of the following time windows:
| Window suffix | Period |
|---|
_hourly | Past 1 hour |
_daily | Past 1 day (24 hours) |
_weekly | Past 7 days |
_yearly | Past 1 year |
_all_time | All time |
Naming convention
The naming convention for pre-computed attributes is:
{measure}_for_{dimension}_{time_window}
For example: count_dispute_for_card_daily is the count of disputes on a given card fingerprint in the past day.
Counts
| Measure | Description | Type |
|---|
count_dispute_for_{dimension}_{window} | Number of disputes filed against payments grouped by this dimension, within the time window. | Numeric |
count_payment_intent_for_{dimension}_{window} | Number of payment intents (attempted payments) grouped by this dimension, within the time window. | Numeric |
count_refund_for_{dimension}_{window} | Number of refunds issued for payments grouped by this dimension, within the time window. | Numeric |
count_fraud_for_{dimension}_{window} | Number of payments flagged as fraudulent (based on dispute data) grouped by this dimension, within the time window. | Numeric |
count_chargeback_for_{dimension}_{window} | Number of chargebacks filed against payments grouped by this dimension, within the time window. | Numeric |
count_card_for_{dimension}_{window} | Number of distinct cards used, grouped by this dimension, within the time window. Not applicable when the dimension is Card. | Numeric |
Amount aggregates
| Measure | Description | Type |
|---|
sum_amount_in_usd_for_{dimension}_{window} | Total amount (in USD) of payments grouped by this dimension, within the time window. | Numeric |
avg_amount_in_usd_for_{dimension}_{window} | Average amount (in USD) of payments grouped by this dimension, within the time window. | Numeric |
avg_dispute_amount_in_usd_for_{dimension}_{window} | Average disputed amount (in USD) for payments grouped by this dimension, within the time window. | Numeric |
avg_refund_amount_in_usd_for_{dimension}_{window} | Average refund amount (in USD) for payments grouped by this dimension, within the time window. | Numeric |
Spike detection
| Measure | Description | Type |
|---|
is_new_max_amount_in_usd_for_{dimension} | Whether the current payment amount is the highest ever seen for this dimension. Useful for detecting anomalously large payments on a card, customer, email, or other dimension. | Boolean |
Available dimension and window combinations
All combinations of the dimensions and windows listed above are available for count and amount aggregate measures.
Example attribute names using the Card dimension:
count_dispute_for_card_all_time
count_dispute_for_card_hourly / _daily / _weekly / _yearly
count_payment_intent_for_card_all_time / _hourly / _daily / _weekly / _yearly
count_refund_for_card_all_time / _hourly / _daily / _weekly / _yearly
count_fraud_for_card_all_time / _hourly / _daily / _weekly / _yearly
count_chargeback_for_card_all_time / _hourly / _daily / _weekly / _yearly
sum_amount_in_usd_for_card_all_time / _hourly / _daily / _weekly / _yearly
avg_amount_in_usd_for_card_all_time / _hourly / _daily / _weekly / _yearly
avg_dispute_amount_in_usd_for_card_all_time / _hourly / _daily / _weekly / _yearly
avg_refund_amount_in_usd_for_card_all_time / _hourly / _daily / _weekly / _yearly
is_new_max_amount_in_usd_for_card
Replace card with customer, email, billing_address, shipping_address, or payment_method to get the equivalent attributes for those dimensions.
Additional count attributes for non-card dimensions:
count_card_for_customer_{window} — Distinct cards used by this customer
count_card_for_email_{window} — Distinct cards used with this email
count_card_for_billing_address_{window} — Distinct cards used at this billing address
count_card_for_shipping_address_{window} — Distinct cards used at this shipping address
count_card_for_payment_method_{window} — Distinct cards associated with this payment method