Transaction Context (CNP)
Define how transactions are classified, authorized, and settled using POS data and processing indicators.
For Online and MOTO (Mail Order/Telephone Order) integrations, the posData object provides card networks with the "who, where, and how" of a payment. Providing accurate context ensures you qualify for E-commerce Interchange Rates, reduces fraud scrutiny, and maximizes approval rates.
Providing accurate context is not just a recommendation—it is a requirement for:
- Qualifying for E-commerce Interchange Rates: Correct classification prevents "Data Rate III" or "Standard" downgrades (which cost more).
- Reducing Fraud Scrutiny: Clearly identifying a transaction as MOTO or Recurring prevents it from being flagged by e-commerce fraud filters.
- Maximizing Approvals: Issuers approve transactions more readily when the submission method (e.g., Credential-on-File) matches the transaction intent.
Industry Best Practice: Always include
posDatafor keyed, card-not-present, and credential-on-file transactions. Without this data, networks default to the highest-risk (and highest-cost) classification.
Transaction Classification
In a Card-Not-Present (CNP) environment, transactions are defined by the location of the cardholder and how the data is stored.
- E-commerce: Customer-initiated transactions via a web storefront or mobile app.
- MOTO: Manual entry by a merchant representative for phone or mail orders.
- Credential on File (CoF): Automated billing using a saved token (Subscriptions or Unscheduled CIT)
Alignment Rules
For all transactions in this category, the cardPresent boolean must always be set to false.
Transaction Processing Indicators
The following two fields must be used in tandem to signal the intent of the transaction to the issuing bank:
posData.transactionStatus→ Defines the life-cycle stage (Sale vs. Auth hold)authorizationIndicator→ Signals if the transaction is a final billable amount
POS Data Configuration
The posData object captures the environment of the transaction. For Online and MOTO, many of these fields use standardized "Virtual" values.
Additional Parameters for transaction context to be submitted with /checkout/v3/payment endpoint
| POS Data Field | Supported Values | Description |
|---|---|---|
posData.cardholderPresence | Ecom, Phone, NotPresent | Critical for interchange. Determines whether the transaction is card-present or card-not-present, and distinguishes web vs. phone. |
posData.panCaptureMethod | Manual | For CNP, this signals the PAN was keyed, not read by a sensor. |
posData.deviceInputCapability | KeyedOnly | Signals the integration is software-based (no card reader), so the PAN is keyed. |
posData.deviceAttendance | HomePc, VoiceAru | The environment that captured the transaction. HomePc = the customer's own device (e-commerce); VoiceAru = a phone system or agent (MOTO). |
posData.deviceLocation | HomePc, VoiceAru | Provides environmental context used to distinguish in-store, remote, or online transactions. |
posData.partialApprovalSupport | NotSupported | Determines whether the POS supports partial approvals or not. |
posData.transactionStatus | Normal, Preauthorization, Inquiry | Determines whether the entry mode is applied to a sale, authorization, or account verification flow.
|
cardPresent | false | Reinforces whether the card was physically present, validating card-present vs card-not-present entry modes. |
authorizationIndicator | Final, Undefined, Not sent | Indicates whether the transaction is final or informational, affecting how entry mode data is evaluated during authorization.
transactionStatus = Inquiry |
NOTE: Fields such as
pos.pinCaptureCapabilityare excluded from these configurations as they pertain exclusively to physical Terminal (Card-Present) environments.
Best Practice JSON examples
The following configurations represent the industry-standard mapping for your API nodes.
E-commerce (One-time Purchase)
Use this when a customer enters card details on your checkout page.
"posData": {
"cardholderPresence": "Ecom",
"deviceAttendance": "HomePc",
"deviceInputCapability": "KeyedOnly",
"deviceLocation": "HomePc",
"panCaptureMethod": "Manual",
"partialApprovalSupport": "NotSupported",
"transactionStatus": "Preauthorization"
},
"cardPresent": false,
"authorizationIndicator": "Undefined""posData": {
"cardholderPresence": "Ecom",
"deviceAttendance": "HomePc",
"deviceInputCapability": "KeyedOnly",
"deviceLocation": "HomePc",
"panCaptureMethod": "Manual",
"partialApprovalSupport": "NotSupported",
"transactionStatus": "Normal"
},
"cardPresent": false,
"authorizationIndicator": "Final"MOTO (Phone Order or Mail Order/Telephone Order)
Use this specifically for manual entry by a representative.
Note: Card networks monitor MOTO volume; using this for web traffic can lead to fines.
"posData": {
"cardholderPresence": "Phone",
"deviceAttendance": "VoiceAru",
"deviceInputCapability": "KeyedOnly",
"deviceLocation": "VoiceAru",
"panCaptureMethod": "Manual",
"partialApprovalSupport": "NotSupported",
"transactionStatus": "Preauthorization"
},
"cardPresent": false,
"authorizationIndicator": "Undefined""posData": {
"cardholderPresence": "Phone",
"deviceAttendance": "VoiceAru",
"deviceInputCapability": "KeyedOnly",
"deviceLocation": "VoiceAru",
"panCaptureMethod": "Manual",
"partialApprovalSupport": "NotSupported",
"transactionStatus": "Normal"
},
"cardPresent": false,
"authorizationIndicator": "Final"Credential on File (Recurring/Subscription)
When processing a saved card where the customer is not present in the session:
"posData": {
"cardholderPresence": "NotPresent",
"deviceAttendance": "VoiceAru",
"deviceInputCapability": "KeyedOnly",
"deviceLocation": "VoiceAru",
"panCaptureMethod": "Manual",
"partialApprovalSupport": "NotSupported",
"transactionStatus": "Preauthorization"
},
"cardPresent": false,
"authorizationIndicator": "Undefined""posData": {
"cardholderPresence": "NotPresent",
"deviceAttendance": "VoiceAru",
"deviceInputCapability": "KeyedOnly",
"deviceLocation": "VoiceAru",
"panCaptureMethod": "Manual",
"partialApprovalSupport": "NotSupported",
"transactionStatus": "Normal"
},
"cardPresent": false,
"authorizationIndicator": "Final"POS Entry Mode Codes
POS Entry Mode Codes are card-network–specific values used to indicate how card data was captured during a transaction. These codes are derived from POS Data fields and are primarily used by card networks for authorization, interchange qualification, and fraud assessment.
Important: Incorrect or conflicting POS Data values may result in unintended POS Entry Mode classification.
Most integrators do not need to send these codes directly, but understanding them can help with reconciliation and troubleshooting.
These codes describe how the card information was captured or entered for Discover transactions.
| Code | Description |
|---|---|
| 0 | Unknown |
| 1 | Manual (key entered) |
| 2 | Magnetic stripe |
| 3 | Bar code |
| 4 | Optical character reader |
| 5 | Integrated circuit reader |
| 7 | Electronic commerce |
| 8 | Card present; magnetic stripe defective and cannot be read |
| 10 | Credential on File |
| 81 | Radio frequency identification (RFID) indicator |
| 82 | Mobile commerce (mCommerce) |
| 90 | Voice authorization |
| 91 | Voice response unit (VRU) |
| 92 | Batch authorization |
| 93 | Batch authorization – cash access |
| 94 | Biometrics |
These codes indicate the method used to capture card data for Mastercard transactions.
| Code | Description |
|---|---|
| 0 | Terminal not used |
| 1 | Key entry |
| 2 | Magnetic stripe read (general or Track 2) |
| 3 | Bar code read |
| 4 | Optical character recognition (OCR) read |
| 5 | Chip card read — data reliable |
| 6 | Track 1 read |
| 7 | Proximity payment using VSDC chip data rules |
| 10 | Credential on File |
| 79 | Chip card — unable to read chip or magnetic stripe; manual entry |
| 80 | Chip card — fallback to magnetic stripe |
| 81 | PAN entry via electronic commerce, including chip |
| 90 | Entire magnetic stripe content transmitted in authorization request (CVV) |
| 91 | Proximity payment using magnetic stripe data rules |
| 95 | Initiated by chip card; CVV data may be unreliable |
These codes describe how the payment card data was obtained for Visa transactions.
| Code | Description |
|---|---|
| 0 | Terminal not used |
| 1 | Key entry |
| 2 | Magnetic stripe read (general or Track 2) |
| 3 | Bar code read |
| 4 | Optical character recognition (OCR) read |
| 5 | Chip card read — data reliable |
| 6 | Track 1 read |
| 7 | Proximity payment using VSDC chip data rules |
| 10 | Credential on File |
| 90 | Entire magnetic stripe content transmitted in authorization request (CVV) |
| 91 | Proximity payment using magnetic stripe data rules |
| 92 | Initiated by chip card; CVV data may be unreliable |
These codes indicate the card data entry method used for American Express transactions.
| Code | Description |
|---|---|
| 0 | Unknown |
| 1 | Manual entry; no terminal |
| 2 | Magnetic stripe read |
| 3 | Optical code (bar code, QR code) |
| 4 | Optical character recognition (OCR) |
| 5 | Integrated Circuit Card (ICC) — American Express-certified EMV terminal |
| 6 | Key entered |
| A | Credential on File |
| S | Manually entered or keyed transaction with keyed CID/4DBC/4CSC. Data Field 53 (Security-Related Control Information) must be present |
| W | Swiped transaction with keyed CID/4DBC/4CSC. Data Field 53 (Security-Related Control Information) must be present |
See also
- Sale: send
posDataon a one-step payment - Authorization and Capture: send
posDataon an authorization - Sale Adjustment: adjust a completed sale
- Interchange Optimization: qualify for lower interchange rates
- Card Vaulting: store credentials for Credential-on-File payments
- Payment Webhooks: subscribe to payment events
Updated 7 days ago
