{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition"]},"redocly_category":"Documentation","type":"markdown"},"seo":{"title":"Customer-initiated and merchant-initiated transactions","description":"Learn the difference between customer-initiated and merchant-initiated transactions, and best practices for stored payment cards and CVV.","siteUrl":"https://www.rebilly.com","image":"/assets/rebillysocial.94fb32fc280c9e84b963c440ec462771d25f4e6fdaaa6c59de41e8135113b46b.db81178d.png","lang":"en-US","keywords":"Developer docs, payment instruments, transactions"},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"customer-initiated-and-merchant-initiated-transactions","__idx":0},"children":["Customer-initiated and merchant-initiated transactions"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Payment gateways distinguish between Customer-Initiated Transactions (CIT) and Merchant-Initiated Transactions (MIT)."," ","How you collect payment details and whether CVV is required depends on which type of transaction you are processing."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"customer-initiated-transactions-cit","__idx":1},"children":["Customer-initiated transactions (CIT)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A CIT occurs when the customer is present and approves the payment, such as at checkout or when confirming a purchase in your application."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To store a payment card for later MIT charges without a purchase, run a ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/dev-docs/transactions#type"},"children":["setup transaction"]}," while the customer is present."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When a stored payment card requires CVV, the customer can provide it during checkout."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"merchant-initiated-transactions-mit","__idx":2},"children":["Merchant-initiated transactions (MIT)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["An MIT occurs when you or Rebilly charge the customer without the customer being present, such as a recurring payment or an ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/data-tables/manage-autopay"},"children":["autopay"]}," retry."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Before the first MIT, register stored credentials with the gateway during a customer-present step."," ","For example, run an approved CIT at checkout or a ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/dev-docs/transactions#type"},"children":["setup transaction"]}," when the customer is present."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Subsequent MIT charges, including recurring transactions, never include CVV."," ","The gateway uses stored credentials from that initial checkout or setup transaction."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In Rebilly, set ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["isMerchantInitiated"]}," to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]}," on ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/catalog/all/transactions/posttransaction"},"children":["Create transaction"]}," when the customer is not present."," ","Rebilly sets merchant-initiated transactions automatically for subscription rebills and similar flows."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/dev-docs/subscriptions"},"children":["subscriptions"]},", a setup transaction is not required."," ","The initial subscription payment is a CIT that stores the payment instrument and registers stored credentials with the gateway."," ","Rebilly then processes renewal charges as MIT automatically."," ","Run a setup transaction only when you store a payment card separately from checkout, such as in a billing portal."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"register-and-use-stored-payment-credentials","__idx":3},"children":["Register and use stored payment credentials"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This process describes how to register stored payment credentials and use them for merchant-initiated and returning customer transactions."]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Register and store payment credentials:",{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Customer-present checkout (CIT)"]},": The customer completes checkout and passes 3DS or SCA during the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sale"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["authorize"]}," transaction."," ","This initial payment stores the payment instrument and registers stored credentials for later MIT charges."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Customer-initiated setup (without checkout)"]},": The customer adds a payment card and passes 3DS or SCA during a ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/dev-docs/transactions#type"},"children":["setup transaction"]},"."," ","This registers stored credentials for later MIT charges but does not collect payment for a purchase."," ","For more information on configuring ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["setupInstruction"]},", see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/dev-docs/payment-instruments#store-for-future-use"},"children":["Store for future use"]},"."]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Recurring and off-session charges (MIT)"]},": After stored credentials are registered during customer-present checkout or a setup transaction, charge using ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["paymentInstrumentId"]}," with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["isMerchantInitiated: true"]},"."," ","Do not collect or attach CVV."," ","Subsequent recurring transactions do not require CVV because the gateway uses stored credentials from that initial checkout or setup transaction."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Returning customer checkout (CIT) with stored card"]},": If the gateway requires CVV, attach CVV to the payment instrument before each charge. ",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},"If you use FramePay, use a CVV-only FramePay token with ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/catalog/all/payment-instruments/patchpaymentinstrument"},"children":["Update payment instrument"]},", then create the transaction with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["paymentInstrumentId"]}," only."," ","Partial CVV tokens cannot be passed on ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/catalog/all/transactions/posttransaction"},"children":["Create transaction"]},"."," ","For more information, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/dev-docs/update-payment-instruments#charge-a-stored-payment-instrument-with-cvv"},"children":["Charge a stored payment instrument with CVV"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"cvv-and-stored-payment-cards","__idx":4},"children":["CVV and stored payment cards"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Rebilly does not store CVV values on payment instruments."," ","To comply with ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/pci-compliance"},"children":["PCI DSS"]},", CVV is cached only until it is sent to the payment gateway for a single charge attempt."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Payment gateways and card networks often require fresh CVV verification for customer-initiated charges, even when the card number is already stored."," ","As a result, customers may need to enter their CVV again at checkout when paying with a stored payment card."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For Customer-Initiated Transactions (CIT), the customer is present and can provide CVV when the payment gateway or card network requires it."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A gateway or card issuer may approve a CIT without CVV."," ","Approval depends on the gateway, card issuer, and the transaction risk profile."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For higher approval rates, it is strongly recommended to collect CVV for CIT charges."," ","If you are unsure whether to collect CVV, especially for a subsequent CIT with a stored card, consult your gateway provider."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For Merchant-Initiated Transactions (MIT), including recurring charges, subsequent transactions do not require CVV."," ","Register stored credentials before the first MIT using a ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/dev-docs/transactions#type"},"children":["setup transaction"]}," or an approved CIT with ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/glossary#strong-customer-authentication-sca"},"children":["Strong Customer Authentication (SCA)"]}," when required."," ","The gateway uses those stored credentials for later MIT charges."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Do not pass a CVV on MIT transactions."," ","If MIT charges decline, verify that the payment instrument was set up correctly and that the gateway account supports stored credentials for merchant-initiated payments."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["After each charge attempt, Rebilly clears CVV from the payment instrument."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"related-topics","__idx":5},"children":["Related topics"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/dev-docs/get-started-integrate-payment-forms"},"children":["Integrate payment forms"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/dev-docs/deposits-and-payouts"},"children":["Deposits and payouts"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/dev-docs/framepay"},"children":["FramePay"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/dev-docs/update-payment-instruments#charge-a-stored-payment-instrument-with-cvv"},"children":["FramePay — Charge a stored payment instrument with CVV"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/dev-docs/use-framepay-encrypted-cvv"},"children":["FramePay — Use encrypted CVVs for payment instruments"]}]}]}]},"headings":[{"value":"Customer-initiated and merchant-initiated transactions","id":"customer-initiated-and-merchant-initiated-transactions","depth":1},{"value":"Customer-initiated transactions (CIT)","id":"customer-initiated-transactions-cit","depth":2},{"value":"Merchant-initiated transactions (MIT)","id":"merchant-initiated-transactions-mit","depth":2},{"value":"Register and use stored payment credentials","id":"register-and-use-stored-payment-credentials","depth":2},{"value":"CVV and stored payment cards","id":"cvv-and-stored-payment-cards","depth":2},{"value":"Related topics","id":"related-topics","depth":2}],"frontmatter":{"seo":{"title":"Customer-initiated and merchant-initiated transactions","description":"Learn the difference between customer-initiated and merchant-initiated transactions, and best practices for stored payment cards and CVV.","keywords":"Developer docs, payment instruments, transactions","lang":"en-US"}},"lastModified":"2026-08-13T09:14:32.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/docs/dev-docs/customer-initiated-and-merchant-initiated-transactions","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}