Skip to main content

What Are Network Processing Types?

Network processing types tell card networks (Visa, Mastercard, etc.) how to classify your transaction. This classification affects:
  • Fraud prevention: Networks use this to detect suspicious patterns
  • Compliance: Required for recurring payments and subscriptions
  • Success rates: Proper classification can improve approval rates
  • Fees: Some transaction types have different fee structures
Why it matters: Card networks have different rules and fraud detection for one-time purchases vs. recurring payments. Properly classifying transactions helps with compliance and can improve your payment success rates.

Understanding Transaction Types

Initial vs. Subsequent Transactions

Initial transactions are the first payment in a series:
  • First payment in a subscription
  • First payment in an installment plan
  • One-time purchases
Subsequent transactions are follow-up payments:
  • Monthly subscription charges (after the first)
  • Installment payments (after the first)
  • Recurring billing
Why the distinction matters: Card networks treat initial and subsequent payments differently for fraud detection and compliance. Initial payments require more authentication, while subsequent payments can be streamlined.

Card-on-file transactions

A card on file payment uses a stored card credential. These payments are separate from a fixed subscription or installment series.
  • Cardholder-initiated (CIT): the cardholder is taking part in the payment. That includes the payment where they agree to store the card, and a later checkout with a card that is already saved.
  • Merchant-initiated (MIT): you charge a stored card later, without the cardholder taking part, under a prior agreement. Use this for unscheduled charges such as a balance top-up or a usage-based fee.
Scheduled subscription and installment payments still use recurring and installment.

Network Processing Object

Include this object in your API request to specify the transaction type:

Processing Type Values

You can use either the string value (e.g., "recurring") or the integer (e.g., 2). Both work the same way. String values are case-insensitive. A value outside this table returns HTTP 400. The message names processingType and the allowed values. initialCOF, cardholderInitiatedCOF, and merchantInitiatedCOF are supported on sale and authorization requests. They are not applied to subscriptions that Revolv3 bills for you, or to capture, refund, or void requests.
These three values are passed through to Worldpay. On other processors, Revolv3 accepts, stores, and returns the value you sent, and builds the processor request the same way it does for a payment sent without processingType.

Original Network Transaction ID

The originalNetworkTransactionId links a later payment to an earlier network transaction. It is the networkTransactionId from that earlier payment. Send it when you have it for:
  • recurring payments (reference the first payment in the series)
  • installment payments (reference the first payment in the series)
  • merchantInitiatedCOF (reference the original stored-credential payment)
It is optional for initialCOF and cardholderInitiatedCOF. If you send it, Revolv3 stores it and passes it on. When to omit:
  • For initialRecurring, initialInstallment, or initialCOF, when there is no earlier network transaction
  • For a one-time purchase that does not include networkProcessing
Note: A recurring or installment payment without originalNetworkTransactionId can still be processed, but it may not be linked to the original transaction. A merchantInitiatedCOF payment without that ID is still sent as merchantInitiatedCOF. It is not converted into a one-time payment. Visa and Discover often require the original network transaction ID on a later stored-credential charge, so leaving it out can increase declines on those brands.

When to Use Each Type

One-Time Purchase

Use this when the cardholder pays once and you are not storing the card for later charges. Don’t include NetworkProcessing:

Subscription - First Payment

Use initialRecurring:

Subscription - Monthly Charge

Use recurring with original transaction ID:

Installment Plan - First Payment

Use initialInstallment:

Installment Plan - Subsequent Payment

Use installment with original transaction ID:

Store a Card for Later Unscheduled Charges

Use initialCOF when the cardholder pays and agrees to store the card. This is not the first payment of a subscription or installment plan.
Save the networkTransactionId from the response. You send it later on merchantInitiatedCOF charges.

Returning Customer, Saved Card

Use cardholderInitiatedCOF when the cardholder checks out with a card you already have on file. originalNetworkTransactionId is optional.

Merchant-Initiated Charge on a Saved Card

Use merchantInitiatedCOF for an unscheduled charge you start yourself, such as a wallet top-up. Include the network transaction ID from the original stored-credential payment when you have it.

How to Get the Original Network Transaction ID

You’ll receive networkTransactionId in the response from these endpoints:
  • POST /api/payments/sale - One-time payment
  • POST /api/payments/sale/{paymentMethodId} - Payment with stored method
  • POST /api/payments/authorization - Authorize payment
  • POST /api/payments/authorization/{paymentMethodId} - Authorize with stored method
  • POST /api/subscriptions - Create subscription
Example response:
You can also find it by getting invoice details:
  • GET /api/Invoices/{invoiceId} - Returns networkTransactionId in the response
Important: Each payment gets its own networkTransactionId. For recurring, installment, and merchant-initiated card-on-file payments, use the networkTransactionId from the original payment on later charges in that series.
Sale and authorization responses return the processingType you sent. Webhooks for those transactions include the same value.

Important Limitations

Please note:
  • Processing types are only applicable for card payments (not ACH)
  • Processing types and original network transaction IDs work only for Visa, Mastercard, and Discover transactions
  • If the card brand for the original transaction doesn’t match the current transaction, errors might occur (e.g., original was Visa, current is Mastercard)
What this means:
  • ✅ Use for credit/debit cards
  • ❌ Don’t use for ACH payments
  • ✅ Works for Visa, Mastercard, Discover
  • ⚠️ May not work for American Express or other card brands
  • ⚠️ Card brand must match between original and subsequent transactions

Endpoints That Support Network Processing

You can include NetworkProcessing in these endpoints:
  • POST /api/payments/sale - One-time payment
  • POST /api/payments/sale/{paymentMethodId} - Payment with stored method
  • POST /api/payments/authorization - Authorize payment
  • POST /api/payments/authorization/{paymentMethodId} - Authorize with stored method
  • POST /api/subscriptions - Create subscription (only originalNetworkTransactionId can be defined in the paymentMethods object)
initialCOF, cardholderInitiatedCOF, and merchantInitiatedCOF apply to the sale and authorization endpoints above. Do not send them on subscription, capture, refund, or void requests.

Processor Support

This feature works with these processors:
  • WorldPay
  • Adyen
  • Nuvei
  • TSYS
  • EPX
  • JPMorgan (Paymentech)
  • Paymentlync
  • BridgePay
What this means: If your request includes NetworkProcessing and you’re using a supported processor, the information will be passed to the processor. If you’re using an unsupported processor, the object will be ignored (no error, it just won’t be used). initialCOF, cardholderInitiatedCOF, and merchantInitiatedCOF are passed through on Worldpay today. On the other processors in this list, the value is still accepted, stored, and returned, but the processor request is built as a one-time payment.

Real-World Examples

Example 1: Monthly Subscription

First payment (when customer signs up):
Response includes: "networkTransactionId": "483299310358831" Second payment (next month):

Example 2: Buy Now, Pay Later (4 Payments)

First payment:
Response includes: "networkTransactionId": "123456789012345" Subsequent payments (months 2, 3, 4):

Example 3: Usage-Based Charge on a Stored Card

The cardholder pays once and agrees to store the card:
Response includes: "networkTransactionId": "483299310358831" Later, you charge that saved card for usage, without the cardholder taking part:
If that same cardholder comes back and checks out with the saved card, send cardholderInitiatedCOF instead.

Best Practices

  1. Store network transaction IDs: When you get a networkTransactionId from the first payment, save it for later recurring, installment, and merchantInitiatedCOF charges
  2. Use the right type: Match the processing type to who starts the payment and whether the card is being stored now or is already on file
  3. Link properly: Include originalNetworkTransactionId for recurring, installment, and merchantInitiatedCOF payments when you have it
  4. Check processor support: The card-on-file values are passed through on Worldpay. On other processors the value is stored and returned, and the processor request is built as a one-time payment
  5. Match card brands: Ensure the card brand matches between original and subsequent transactions

Common Questions

Q: Do I have to use network processing types? A: No, they’re optional. But using them correctly can improve success rates and compliance, especially for subscriptions. Q: What if I don’t have the original network transaction ID? A: You can still process the payment, but it may not be properly linked in the card network’s system. Try to get and store it from the first payment. Q: Can I use this for ACH payments? A: No, this feature is only for card payments (credit/debit cards). Q: What if I use the wrong type? A: The payment will still process, but it may not be classified correctly by the card network, which could affect fraud detection or compliance. Q: Which value do I use for a saved card? A: Use initialCOF on the payment where the cardholder agrees to store the card. Use cardholderInitiatedCOF when that cardholder later pays with the saved card. Use merchantInitiatedCOF when you charge the saved card yourself, outside a fixed schedule. Keep using recurring or installment for scheduled series payments. Q: What if I don’t have a network transaction ID for a merchant-initiated card-on-file charge? A: You can still send merchantInitiatedCOF. Revolv3 does not convert that request into a one-time payment. Include the original network transaction ID when you have it. Visa and Discover often require it, and leaving it out can increase declines on those brands. Q: Do the card-on-file values work on every processor? A: They are passed through on Worldpay. On other processors, Revolv3 accepts, stores, and returns the value, and sends the processor request as a one-time payment.

Next Steps