condition_sets[].conditions[] are combined with logical AND. For OR semantics, split into multiple condition sets ordered by sort_number.
condition_type catalog
conditional operators
Special cases
AMOUNTrequirescurrency. Comparisons are FX-naive; only payments whose currency matches the rule’scurrencyare evaluated.METADATArequireskey. Comparespayment.metadata[key]. If the key is absent on the payment, the condition does not match — absence is not equality.- Card-only condition types (
CARD_ISSUER_COUNTRY,CARD_TYPE,CARD_BRAND,CARD_BIN) are only valid whenpayment_method = "CARD". COUNTRYvsCARD_ISSUER_COUNTRY. The two are sourced independently:COUNTRYmatches the transaction country your backend submits in the payment request, whileCARD_ISSUER_COUNTRYmatches the issuer country Yuno’s own BIN lookup derives from the card number. The same payment can beCOUNTRY = USandCARD_ISSUER_COUNTRY = GBat once. The BIN lookup runs before a provider is selected, is identical in sandbox and production, and reflects real-world BIN-registry data — never the processor’s view of the card.- Numeric values are submitted as strings to match the
values: string[]schema. Yuno parses them based on thecondition_type.
Testing CARD_ISSUER_COUNTRY rules in sandbox
Two examples with Stripe’s test cards:
To verify a
CARD_ISSUER_COUNTRY rule end-to-end today, work with resolved values rather than documented ones — the lookup is deterministic:
- Run one sandbox payment with a candidate test card.
- Read
card_data.country_codefrom the payment (payment details in the dashboard, or the Retrieve Payment response). - Build the rule against that value. For example,
4242 4242 4242 4242is a dependableGBcard end-to-end.
CARD_TYPE, CARD_BRAND), though country is where provider test-card documentation diverges most often.