# Process a Payment Request

Perform a request to process a payment. 

This endpoint uses a valid Bearer Authentication API Key ID and HMAC Key for authentication.

Endpoint: POST /
Version: 1.4.10
Security: bearerAuth

## Security:

  - `bearerAuth` (unknown)
    http bearer JWT

## Request fields (application/json):

  - `entityId` (integer)
    A unique ID assigned by NPS that represents the client.
    Example: 1325691045

  - `paymentType` (object, required)

  - `paymentType.ach` (object)

  - `paymentType.ach.bankAccount` (object)

  - `paymentType.ach.bankAccount.accountNumber` (string)
    The bank account number for the payee.

    Format: Alphanumeric

    Length: 17
    Example: 459887746321Z

  - `paymentType.ach.bankAccount.routingNumber` (string)
    The bank routing number for the payee.

    Format: Numeric
    Example: 021000021

  - `paymentType.ach.bankAccount.accountType` (string)
    The type of bank account.
Required when `accountNumber` and `routingNumber` are provided. Omit it on a tokenized request - the account type is supplied from the token.
    Enum: "CHECKING", "SAVINGS"

  - `paymentType.ach.token` (string)
    Allows the merchant to submit a payment using a token instead of bank account details.
    Example: 330d4c38-7904-47cf-be8e-0972a93f7386

  - `paymentType.creditCard` (object)

  - `paymentType.creditCard.card` (object)

  - `paymentType.creditCard.card.expiration` (string, required)
    The card expiration date with a two-digit month and two-digit year.

    Format: Numeric

    Date Format: MMYY
    Example: 1227

  - `paymentType.creditCard.card.cardVerificationValue` (string)
    The three- or four-digit security code printed on the credit card.

    Format: Numeric

    Length: 4
    Example: 123

  - `paymentType.creditCard.token` (string)
    Allows the merchant to submit a payment using a token instead of a card number (PAN).
    Example: 330d4c38-7904-47cf-be8e-0972a93f7386

  - `paymentType.applePay` (object)

  - `paymentType.applePay.encryptedData` (object)

  - `paymentType.applePay.encryptedData.data` (string, required)
    Format: Payment data dictionary, Base64 encoded as a string.

    Length: 8000
    Example: 6b2xlM8Lh/dSF+9jBqel7A6sdh6B2NJjp6wLbt/jMdLzbnCSKdWPwlSDaKR9j472IpEIijjkKAh+9ynMlS4=

  - `paymentType.applePay.encryptedData.ephemeralPublicKey` (string, required)
    Ephemeral public key bytes. EC_v1 only.
Format: X.509 encoded key bytes, Base64 encoded as a string as returned by Apple
    Example: MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEGRNcOcPdTxd4GKiSMvyngGf31Hx3V

  - `paymentType.applePay.encryptedData.publicKeyHash` (string, required)
    Hash of the X.509 encoded public key bytes of the merchant's certificate.

    Format: SHA-256 hash, Base64 encoded as a string
    Example: lRY9u8sMTf5Ezb4LoqSV6+70Q2fxbLZjFhJ/Lk+PgWI=

  - `paymentType.applePay.encryptedData.transactionId` (string, required)
    Transaction identifier generated on the device.

    Format: A hexadecimal identifier, as a string
    Example: dbb972ab5b3eab30072d886b1ef415f92a814204

  - `paymentType.applePay.encryptedData.signature` (string, required)
    Signature of the payment and header data. The signature includes the signing certificate, its intermediate CA certificate, and information about the signing algorithm.
Format: Detached PKCS #7 signature, Base64 encoded as string
    Example: MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhk

  - `paymentType.applePay.encryptedData.version` (string, required)
    Version information about the payment tokenization. The tokenization uses EC_v1 for ECC-encrypted data and RSA_v1 for RSA-encrypted data.
Format: String
    Example: EC_v1

  - `paymentType.applePay.card` (object)

  - `paymentType.applePay.card.network` (string)
    The card payment network. Required for Apple Pay payment.

    Format: String
    Example: Visa

  - `paymentType.applePay.card.category` (string)
    The card product category. Required for Apple Pay payment.

    Format: String
    Example: credit

  - `paymentType.applePay.card.displayName` (string)
    Identifies the card the user selected from their wallet for the Apple Pay transaction. The display name for credit and debit cards often includes the card brand and the last four digits of the credit card.

    However, there is no standard format for the content of the display name.

    Format: String
    Example: Visa 0224

  - `paymentType.applePay.card.expiration` (string)
    The card expiration date with a two-digit month and two-digit year.

    Format: Numeric

    Date Format: MMYY
    Example: 1227

  - `paymentType.applePay.token` (string)
    The Apple Pay payment token generated during the Apple Pay checkout process.
    Example: 330d4c38-7904-47cf-be8e-0972a93f7386

  - `paymentType.payPal` (object)

  - `paymentType.payPal.token` (string)
    The PayPal payment token used to identify the PayPal or Venmo payment method for the transaction.
    Example: 330d4c38-7904-47cf-be8e-0972a93f7386

  - `paymentType.terminal` (object)

  - `paymentType.terminal.serialNumber` (string)
    Serial number of the physical Bluefin terminal that captured the card data. Required for a
card-present transaction. Mutually exclusive with `token`.
Format: Alphanumeric
    Example: 345653T422

  - `paymentType.terminal.token` (string)
    NPS token identifying a card previously tokenized through a Bluefin terminal.
Required for a card-not-present transaction. Mutually exclusive with `serialNumber`.
Format: UUID
    Example: 330d4c38-7904-47cf-be8e-0972a93f7386

  - `transactionType` (string, required)
    Indicates the type of transaction.
Supported values by payment type:
- **Credit Card and Apple Pay:** `AUTH_ONLY`, `CAPTURE`, `SALE`, `REFUND`, `VERIFY`, `VOID`, `CANCEL`
- **PayPal:** `AUTH_ONLY`, `CAPTURE`, `SALE`, `REFUND`, `VOID`
- **ACH:** `ACH_DEBIT`, `ACH_CREDIT`, `ACH_CANCEL`, `ACH_PRENOTE_CREDIT`, `ACH_PRENOTE_DEBIT`
    Enum: "AUTH_ONLY", "CAPTURE", "SALE", "REFUND", "VERIFY", "VOID", "CANCEL", "ACH_DEBIT", "ACH_CREDIT", "ACH_CANCEL", "ACH_PRENOTE_CREDIT", "ACH_PRENOTE_DEBIT"

  - `amount` (number)
    Amount of the transaction in BigDecimal.
Note: when `transactionType` is `ACH_CANCEL` this must equal the amount of the step being cancelled. Together with `transactionInformation.originalTransactionType` it is what selects that step within the payment named by `originalPaymentId`.
    Example: 123.65

  - `accountHolder` (object)

  - `accountHolder.accountHolderName` (string)
    Name of the cardholder or payee for the payment.

    Format: Alphanumeric

    Length: 2 to 30
    Example: John Smith

  - `accountHolder.accountHolderId` (string)
    ID representing the employee or customer. Required for ACH payments when `standardEntryCode` is `ARC`, `BOC`, or `POP`.
Format:
- Alphanumeric for `standardEntryCode`: `CCD`, `PPD`, `TEL` and `WEB`.
- Numeric for `standardEntryCode`: `ARC`, `BOC` and `POP`.

Length:
- 15 for `standardEntryCode`: `CCD`, `PPD`, `TEL`, `ARC`, `BOC` and `WEB`.
- 9 for `standardEntryCode`: `POP`
    Example: 134267

  - `accountHolder.ipAddress` (string)
    IP address of the account holder performing the transaction. Provide if the transaction is an internet payment.
    Example: 10.101.101.101

  - `accountHolder.billing` (object)

  - `accountHolder.billing.address` (object)

  - `accountHolder.billing.address.addressLine1` (string)
    First line of address.

    Length: 200
    Example: 123 Smith Ave

  - `accountHolder.billing.address.addressLine2` (string)
    Second line of address (if present).

    Length: 200
    Example: Suite 201

  - `accountHolder.billing.address.city` (string)
    City of the address.
Length: 1 to 50
Required alongside `state` when a billing address is supplied on a terminal
(Bluefin) payment.
    Example: Atlanta

  - `accountHolder.billing.address.state` (string)
    State or province of the address.
Format: ISO 3166-2 state/province code
Length: 1 to 3
Required alongside `city` when a billing address is supplied on a terminal
(Bluefin) payment.
    Example: GA

  - `accountHolder.billing.address.postalCode` (string)
    ZIP Code.

    Format: Alphanumeric, space, hyphen

    Length: 2 to 15
    Example: 11201

  - `accountHolder.registeredUserIndicator` (string)
    Indicates whether the account holder is a registered user of the merchant's system. Provide this field for Discover transactions.
    Enum: "YES", "NO"

  - `accountHolder.lastRegisteredDate` (string)
    The date when the account holder last voluntarily changed their registered or stored profile, excluding changes required by a merchant policy. Required when `registeredUserIndicator` is `YES`.
Date format: MM/DD/YYYY
    Example: 05/20/2025

  - `transactionInformation` (object)

  - `transactionInformation.customId` (string)
    A value the merchant can set to uniquely identify the transaction on screens and reports.

    ACH Customers: If you are enabled to use the ACH Duplicate Check option, this field is required.

    Length: 2 to 100
    Example: 330d4c38-7904-47cf-be8e-0972a93f7386

  - `transactionInformation.orderNumber` (string)
    The transaction invoice or order number for a card payment.

    Note: Although this element is not required, it is preferred to send. Some processors require this field for card-not-present transactions.

    Length: 2 to 30
    Example: 652367

  - `transactionInformation.softDescriptor` (string)
    The descriptive text on the cardholder's statement that identifies the transaction or describes the purchase or merchant. Contact NPS Client Services before submitting this field.
Format: Alphanumeric, allowed special characters: `@()/.':$,*-`
Length: 1 to 25
    Example: ABC Company

  - `transactionInformation.externalReferenceId` (string)
    A unique identifier representing the transaction in the processor's system.

    Format: Alphanumeric/non-ASCII characters are not allowed.

    Length: 2 to 100
    Example: 1749af67-40ff-436d-940a-a7ad3ff74059

  - `transactionInformation.originalPaymentId` (string)
    Identifies the payment being continued using the `paymentId` returned by the initial transaction. The `paymentId` remains the same throughout the payment lifecycle. For subsequent transactions, NPS uses this value to identify the applicable transaction within the payment.
Send either `originalPaymentId` or `originalPaymentTransactionId`, not both.
#### Card Transactions
- `CAPTURE`, `CANCEL`: references the latest successful `AUTH_ONLY` of the payment.
- `VOID`: references the `SALE` of the payment.
- `REFUND`: references the latest successful `CAPTURE` of the payment, or its `SALE` if the sale settled directly. Omit both fields to submit a standalone refund, which starts a new payment.

#### PayPal Transactions
- `CAPTURE`: references the latest successful `AUTH_ONLY` of the payment whose amount equals this request's `amount`. PayPal captures an authorization whole, so the amounts must match.
- `VOID`: references the latest successful `AUTH_ONLY` of the payment.
- `REFUND`: references the latest successful `CAPTURE` of the payment, or its `SALE` if the sale settled directly. PayPal has no standalone refund, so a refund must always name the payment it reverses.

#### ACH Transactions
- `ACH_CREDIT`: references the latest successful `ACH_DEBIT` of the payment. Omit both fields to submit a standalone credit, which starts a new payment.
- `ACH_CANCEL`: references the successful step matching `originalTransactionType` and `amount`. Both remain **required** — a payment can hold several cancellable steps, so the payment reference alone does not identify which one is being cancelled.
    Example: 6f1a1c02-9f4e-4a53-9c0e-2b7f0b6a1f43

  - `transactionInformation.originalPaymentTransactionId` (string)
    **Deprecated:** Use `originalPaymentId` instead. `originalPaymentId` identifies the payment as a whole, allowing NPS to determine the applicable transaction without requiring the client to track a specific `paymentTransactionId`.
This field remains supported and is not currently scheduled for removal. Existing integrations do not need to change. Send either `originalPaymentId` or `originalPaymentTransactionId`, but not both.
Identifies the original NPS transaction being referenced. This value is used by clients when submitting subsequent transactions (e.g., `CAPTURE`, `REFUND`, `VOID`, `CANCEL`, or ACH-specific subsequent transactions). The requirement for this field depends on the transactionType.
Note: `originalPaymentTransactionId` is an NPS transaction identifier. The Payments Service maps this value to the processor’s transaction identifier when submitting subsequent transactions to the processor.
#### Card Transactions
- **Required** when `transactionType` is `CAPTURE`, `CANCEL`, or `VOID`:
Use the `paymentTransactionId` from the original card transaction.
- **Recommended** when `transactionType` is `REFUND`:
Use the NPS `paymentTransactionId` from the original card transaction if available.

#### ACH Transactions
- **Required** when `transactionType` is `ACH_CREDIT`:
Use the `paymentTransactionId` from the original `ACH_DEBIT` transaction.
- **Required** when `transactionType` is `ACH_CANCEL`:
Use the `paymentTransactionId` from the original transaction being cancelled.
    Example: 80503dc9-15f8-430a-8622-3cff38124bbd

  - `transactionInformation.description` (string)
    A brief description of the payment. Behavior varies by payment type:
- **ACH:** Required. Enter a receiver-recognizable description of the payment. The value becomes the Company Entry Description in the NACHA batch header and posts to the receiver's bank statement. Maximum 10 characters; non-ASCII characters are not allowed.
For most payments, use your own short description. Certain entry types require a specific value: `PURCHASE` for WEB or TEL debits, `REVERSAL` for reversals, `RETRY PYMT` for reinitiated entries, and `RETURN FEE` for return fee entries.
- **PayPal:** Displayed as item title to the payer in their PayPal activity. Maximum 127 characters.
- **Credit card / Apple Pay:** Not supported.

PayPal requests may use up to 127 characters; ACH uses at most 10 for the bank file.
    Example: tuition

  - `transactionInformation.companyName` (string)
    The merchant's company name for the ACH payment. Because this value is limited to 16 characters, it may be the truncated version of the merchant's company name.

    Format: String/non-ASCII characters are not allowed.

    Length: 16
    Example: College Prep

  - `transactionInformation.companyDiscretionaryData` (string)
    Additional information about the merchant's company. This information does not appear on the payee's bank statement.

    Format: String/non-ASCII characters are not allowed.
    Example: Test1234

  - `transactionInformation.originalTransactionType` (string)
    **Required** when `transactionType` is `ACH_CANCEL`. Identifies the `transactionType` of the transaction being cancelled. This field is required when using either `originalPaymentId` or `originalPaymentTransactionId`.
- With `originalPaymentId`, NPS cancels the successful step of the payment matching this `transactionType` **and** `amount`. A payment can hold several cancellable steps, so the anchor alone does not identify one.
- With `originalPaymentTransactionId`, this restates the type of the transaction that field names.
    Example: ACH_CREDIT

  - `transactionInformation.additionalPaymentInformation` (string)
    Additional information about the ACH payment that is provided to the payee's bank.
Format: Alphanumeric
Length: 80
Note: Optional for `standardEntryCode` `CCD`, `PPD` and `WEB`. Must be blank for `ARC`, `BOC` and `TEL`.
    Example: U00102

  - `transactionInformation.standardEntryCode` (string)
    Identifies the Standard Entry Class (SEC) code for the ACH payment. Required for ACH payments.
    Enum: "ARC", "BOC", "CCD", "PPD", "TEL", "WEB", "POP"

  - `transactionInformation.terminalCity` (string)
    A four-character name or abbreviation of the terminal city location for an ACH payment. This field is required for `standardEntryCode` `POP`.
Format: Alphanumeric
Length: 4
    Example: MPLS

  - `transactionInformation.terminalState` (string)
    A two-character abbreviation of the terminal state location for an ACH payment. This field is required for `standardEntryCode` `POP`.
Format: Alphanumeric
Length: 2
    Example: MN

  - `transactionInformation.discretionaryData` (string)
    For `TEL` or `WEB`, indicates whether the ACH debit is a single (`S`) or recurring (`R`) payment. Omit this field for all other `standardEntryCode` values and for ACH credit transactions.
    Enum: "S", "R"

  - `transactionInformation.effectiveEntryDate` (string)
    The date the transaction should be settled. The effective date should not be a Saturday, Sunday, or banking holiday. Contact NPS Client Services before submitting this field.

    Format: String/Date format of YYMMDD

    Length: 6
    Example: 250110

  - `payfac` (object)

  - `payfac.payfacId` (string)
    The card brand-assigned identifier representing the payment facilitator (required for PayFac transactions).

    Format: Numeric

    Length: 1 to 20
    Example: 7213

  - `payfac.payfacName` (string)
    The payment facilitator's name registered with the card brand (required if `payfacId` is provided).
Length: 1 to 12
    Example: ABC

  - `payfac.isoIdentifier` (string)
    The card brand-assigned identifier representing the ISO. Contact NPS Client Services before sending information in this field.

    Length: 1 to 11
    Example: 12346

  - `payfac.subMerchant` (object)

  - `payfac.subMerchant.name` (string)
    The sub-merchant's name.

    Length: 1 to 25
    Example: Prep School

  - `payfac.subMerchant.id` (string)
    A unique sub-merchant identifier.

    Format: Numeric

    Length: 1 to 15
    Example: 341334

  - `payfac.subMerchant.address` (object)

  - `payfac.subMerchant.address.city` (string)
    The sub-merchant's city.

    Length: 1 to 50
    Example: Omaha

  - `payfac.subMerchant.address.stateCode` (string)
    The sub-merchant's state code.

    Format: ISO 3166-2
    Example: NE

  - `payfac.subMerchant.address.countryCode` (string)
    The sub-merchant's country code.

    Format: ISO 3166-1 alpha-2 or alpha-3
    Example: USA

  - `payfac.subMerchant.address.postalCode` (string)
    The sub-merchant's ZIP Code.

    Length: 2 to 15
    Example: 68102

  - `payfac.subMerchant.emailAddress` (string)
    The sub-merchant's email address.

    Length: 6 to 128
    Example: test@abc.com

  - `payfac.subMerchant.phoneNumber` (string)
    The sub-merchant's phone number.

    Format: Numeric

    Length: 4 to 15
    Example: 4021234567

  - `payfac.acceptor` (object)

  - `payfac.acceptor.address` (object)

  - `payfac.acceptor.address.addressLine1` (string)
    The street address at the acceptor (sub-merchant) should include street number, street name, and other identifiers of the precise location, such as a building or unit number.
Format: Alphanumeric, allows limited special characters: `A-Zaz0-9 @$+!-{}[]'\"?|-~`*()/`.
Length: 25
    Example: 123 Smith Ave

  - `payfac.acceptor.phoneNumber` (string)
    The business phone number of the acceptor (sub-merchant).

    Format:

    Alphanumeric, allowed characters: 0-9 A-Z a-z

    Length: 16
    Example: 4021234569

  - `payfac.acceptor.customerServicePhoneNumber` (string)
    The customer service phone number of the acceptor (sub-merchant) to use for cardholder transaction inquiries.

    Format:

    Alphanumeric, allowed characters: 0-9 A-Z a-z

    Length: 16
    Example: 4021234568

  - `credentialsOnFile` (object)

  - `credentialsOnFile.paymentInitiator` (string)
    The initiator of the transaction.
    Enum: "ACCOUNTHOLDER", "MERCHANT"

  - `credentialsOnFile.credentialsOnFileType` (string)
    The stored credential transaction type.
    Enum: "RECURRING", "UNSCHEDULED"

  - `credentialsOnFile.sourceEntityParams` (object)

  - `credentialsOnFile.sourceEntityParams.params` (array)
    Array of name/value pairs.
    Example: [{"name1":"value1"},{"name2":"value2"}]

  - `credentialsOnFile.sourceEntityParams.multiMerchantRecurringLinkId` (string)
    Identifier for a recurring payment series involving multiple merchants.
**Required** if the series spans multiple merchants.
Currently supported only for `paymentType` **applePay** or **payPal**.
    Example: 12345

  - `additionalAmount` (array)
    Additional amount that is added to the amount of the cardholder's original transaction.

  - `additionalAmount.amountType` (string)
    Indicates type of additional amount.
    Enum: "SURCHARGE"

  - `additionalAmount.amountValue` (number)
    Amount in BigDecimal.
    Example: 3.65

  - `riskId` (string)
    A unique ID returned by the Risk Service.
    Example: 12e3cdac-d347-4564-ba1f-305e5e1e8ded

  - `processingMode` (string)
    Mandatory for ACH transactions. Other payment types are always processed in real-time, so this field does not apply to them and any value sent is ignored.
For transactions where the merchant sets the `processingMode` field value to `SYNCHRONOUS`, we will process these transactions in real-time using existing flows.
For transactions where the merchant sets the `processingMode` field value to `ASYNCHRONOUS`, we will process these transactions asynchronously.
Format: String
    Enum: "SYNCHRONOUS", "ASYNCHRONOUS"

  - `tags` (object)
    Optional metadata for the transaction: a JSON object of key-value pairs.
Structure:
- Each value is either a non-empty string or exactly one nested object (no arrays, no deeper nesting).
- Nested objects contain only string values.
- Maximum depth: root plus one inner object per root key.
- Maximum size: 50 key-value pairs in total, including pairs at the root and inside nested objects.

Constraints for key and namespace names:
- 1 to 64 characters
- Allowed: letters, digits, underscore
- Must match: `^[a-zA-Z0-9_]{1,64}$`
- Must not contain `.`
- Must be unique within the same object level, either at the root level or within a namespace.

Constraints for every string value (root or nested):
- Non-empty, max length 256

Notes:
- If validation fails, the entire `tags` object is rejected and the payment request fails.
- Not a substitute for core API fields such as `transactionInformation` or `paymentType`.
    Example: {"ref":"INV-9","order":{"id":"ORD-12345","channel":"web"}}

## Request examples:

  - `ACH Request` (unknown)
    ACH Request

  - `Credit Card Request` (unknown)
    Credit Card Request

  - `Apple Pay Request` (unknown)
    Apple Pay Request

  - `PayPal Request` (unknown)
    PayPal Request

  - `Terminal (Bluefin) Card-Present Request` (unknown)
    Terminal (Bluefin) Card-Present Request

  - `Terminal (Bluefin) Card-Not-Present Request` (unknown)
    Terminal (Bluefin) Card-Not-Present Request

  - `Terminal (Bluefin) Capture Request` (unknown)
    Terminal (Bluefin) Capture Request

  - `Terminal (Bluefin) POI Refund Request` (unknown)
    Terminal (Bluefin) POI Refund Request

  - `Terminal (Bluefin) Void Request` (unknown)
    Terminal (Bluefin) Void Request

## Response 200:

  - `200` (unknown)
    OK

## Response 200 fields (application/json):

  - `responseCode` (string)
    Response code defined by NPS indicating status of request.

    Format: Alphanumeric

    Length: 4 to 5
    Example: A100

  - `responseMessage` (string)
    The text description of the response code.
    Example: Approved

  - `avsResultCode` (string)
    The Address Verification Service (AVS) result code.

    Format: String
    Example: A

  - `cvvResultCode` (string)
    The card security code verification (CVV2) result code.

    Format: Alphanumeric
    Example: M

  - `paymentTransactionId` (string)
    Unique NPS transaction identifier. This value identifies the original transaction in NPS and is used by clients when submitting subsequent requests (e.g., `CAPTURE`, `REFUND`, `VOID`, or `CANCEL`). The Payments Service maintains an internal mapping to the processor’s transaction identifier and sends the processor’s ID to the processor as part of those requests.
Note: Clients should always reference transactions using NPS identifiers. The processor-generated identifier is returned in `processorResponse.processorTransactionId` and is used internally when communicating with processors.
Format: UUID
Length: 36
    Example: 80503dc9-15f8-430a-8622-3cff38124bbd

  - `paymentId` (string)
    Unique NPS identifier for the payment as a whole. Unlike `paymentTransactionId`, which identifies an individual transaction, `paymentId` remains the same throughout the payment lifecycle, including the initial transaction and subsequent refunds, credits, or cancellations.
Submit `paymentId` as `transactionInformation.originalPaymentId` on a subsequent transaction to have NPS identify the applicable transaction. This field replaces `transactionInformation.originalPaymentTransactionId`, which is deprecated but still supported.
NPS returns `paymentId` for every payment type (credit card, Apple Pay, PayPal, and ACH) and for every transaction, whether initial or subsequent. NPS returns a new `paymentId` when a transaction starts a separate payment lifecycle instead of continuing an existing one. Examples include a standalone `REFUND` or standalone `ACH_CREDIT` submitted without either reference field.
Format: UUID
Length: 36
    Example: 6f1a1c02-9f4e-4a53-9c0e-2b7f0b6a1f43

  - `paymentType` (object)

  - `paymentType.ach` (object)

  - `paymentType.ach.token` (string)
    Allows the merchant to submit a payment using a token instead of bank account details.
    Example: 330d4c38-7904-47cf-be8e-0972a93f7386

  - `paymentType.ach.bankAccount` (object)

  - `paymentType.ach.bankAccount.lastFour` (string)
    Last 4 digits of an account number.
    Example: 9999

  - `paymentType.creditCard` (object)

  - `paymentType.creditCard.token` (string)
    Allows the merchant to submit a payment using a token instead of a card number (PAN).
    Example: 330d4c38-7904-47cf-be8e-0972a93f7386

  - `paymentType.creditCard.tokenType` (string)
    Indicates the type of token that was used to process the transaction.

    Format: String
    Enum: "PAN", "NETWORK_TOKEN"

  - `paymentType.creditCard.tokenLastFour` (string)
    Indicates the last four digits of the token that was used to process the transaction.

    Format: String

    Length: 4
    Example: 1234

  - `paymentType.creditCard.card` (object)

  - `paymentType.creditCard.card.expiration` (string)
    The card expiration date with a two-digit month and two-digit year.

    Format: Numeric

    Date Format: MMYY
    Example: 1227

  - `paymentType.creditCard.card.lastFour` (string)
    Last four digits of the card's primary account number (PAN).
    Example: 1224

  - `paymentType.creditCard.card.network` (string)
    The card payment network.

    Format: String

    e.g. VISA
    Example: VISA

  - `paymentType.creditCard.card.category` (string)
    The card category, such as `CREDIT` or `DEBIT`.
Format: String
e.g.
CREDIT
DEBIT
    Example: credit

  - `paymentType.creditCard.card.isInternational` (boolean)
    Indicates whether the card is international relative to the United States.
    Example: false

  - `paymentType.applePay` (object)

  - `paymentType.applePay.token` (string)
    The Apple Pay payment token generated during the Apple Pay checkout process.
    Example: 330d4c38-7904-47cf-be8e-0972a93f7386

  - `paymentType.applePay.tokenType` (string)
    Indicates the type of token that was used to process the transaction.

    Format: String
    Enum: "APPLE_PAY"

  - `paymentType.applePay.tokenLastFour` (string)
    Indicates the last four digits of the token that was used to process the transaction.

    Format: String

    Length: 4
    Example: 1234

  - `paymentType.payPal` (object)

  - `paymentType.payPal.token` (string)
    The PayPal payment token used to identify the PayPal or Venmo payment method for the transaction.
    Example: f353ca91-4fc5-49f2-9b9e-304f83d11914

  - `paymentType.payPal.tokenType` (string)
    Indicates the type of token or payment source.
Typically `PAYPAL` for PayPal Wallet.
Format: String
    Example: PAYPAL

  - `paymentType.payPal.tokenLastFour` (string)
    Last four characters of the vault token or account identifier for display purposes.

Format: String

Length: 4
    Example: 1234

  - `paymentType.payPal.isInternational` (boolean)
    Indicates whether the payment source is associated with an international account.
    Example: false

  - `paymentType.payPal.network` (string)
    The network or product through which the payment was processed, such as `PAYPAL` or `VENMO`.
Format: String
    Example: VENMO

  - `paymentType.terminal` (object)

  - `paymentType.terminal.token` (string)
    The NPS token minted for the card-present Bluefin transaction. Send it under paymentType.terminal.token to charge the same card as a later card-not-present transaction; the raw Bluefin token is never exposed.
    Example: 330d4c38-7904-47cf-be8e-0972a93f7386

  - `paymentType.terminal.tokenType` (string)
    Indicates the type of token that was used to process the transaction.

    Format: String
    Enum: "BLUEFIN"

  - `paymentType.terminal.tokenLastFour` (string)
    Indicates the last four digits of the token that was used to process the transaction.

    Format: String

    Length: 4
    Example: 1234

  - `accountHolder` (object)

  - `accountHolder.accountHolderName` (string)
    Payer name returned by PayPal.

  - `accountHolder.accountHolderId` (string)
    Payer account ID returned by PayPal.

  - `accountHolder.phoneNumber` (string)
    Payer phone number returned by PayPal.

  - `accountHolder.emailAddress` (string)
    Payer email address returned by PayPal.

  - `accountValidationResult` (object)

  - `accountValidationResult.responseCode` (string)
    Account validation return code which indicates if ACH validation was performed.
    Example: 1

  - `accountValidationResult.thirdPartyResponseCode` (string)
    The third-party return code, which provides additional information about the validation response.
    Example: 2

  - `accountValidationResult.bankName` (string)
    The name of the bank received in the validation response.
    Example: UB Bank

  - `processorResponse` (object)

  - `processorResponse.responseCode` (string)
    Response code returned by processor indicating status of request.

    Format: Alphanumeric
    Example: A0000

  - `processorResponse.responseMessage` (string)
    Response message returned by processor indicating status of request.

    Format: String
    Example: Success

  - `processorResponse.authorizationCode` (string)
    The authorization code returned by the processor for the transaction.

    Format: Alphanumeric
    Example: TAS890

  - `processorResponse.avsResultCode` (string)
    The Address Verification Service (AVS) result code.

    Format: String
    Example: Z

  - `processorResponse.cvvResultCode` (string)
    The card security code verification (CVV2) response returned by the processor.

    Format: Alphanumeric
    Example: M

  - `processorResponse.processedAmount` (number)
    The dollar amount of the transaction that was processed by the processor. This amount can be different than the amount that was sent in the request.

    Format: BigDecimal
    Example: 123.65

  - `processorResponse.processorTransactionId` (string)
    The processor-generated unique identifier for the transaction. Returned for reference and support purposes. Clients should use NPS identifiers when submitting subsequent requests. Use `paymentId` as `transactionInformation.originalPaymentId` to reference an existing payment.
    Example: 49510555

  - `processorResponse.processorTransactionType` (string)
    The transaction type sent to the processor.
    Example: Sale

  - `processorResponse.status` (boolean)
    Indicates whether the processor considered the transaction successful. Used by PayPal and other processors to convey success/failure in the response body.
    Example: true

  - `processorResponse.emvReceiptData` (object)

  - `processorResponse.emvReceiptData.aid` (string)
    The EMV Application Identifier (AID) of the card's selected application.
    Example: A0000000031010

  - `processorResponse.emvReceiptData.appLabel` (string)
    The cardholder-facing application label of the card's selected application.
    Example: VISA CREDIT

  - `processorResponse.emvReceiptData.tvr` (string)
    The EMV Terminal Verification Results (TVR).
    Example: 8000048000

  - `processorResponse.emvReceiptData.tsi` (string)
    The EMV Transaction Status Information (TSI).
    Example: E800

  - `processorResponse.emvReceiptData.arc` (string)
    The EMV Authorization Response Code (ARC).
    Example: 00

  - `processorResponse.emvReceiptData.atc` (string)
    The EMV Application Transaction Counter (ATC).
    Example: 0023

  - `processorResponse.emvReceiptData.cryptogram` (string)
    The EMV Application Cryptogram.
    Example: 1234ABCD5678EF00

  - `processorResponse.emvReceiptData.entryMode` (string)
    How the card was read: chip, contactless, or swipe.
    Example: chip

  - `processorResponse.emvReceiptData.contactless` (boolean)
    Whether the transaction was a contactless (tap) transaction.
    Example: false

  - `processorResponse.emvReceiptData.cvmResult` (string)
    The result of the EMV Cardholder Verification Method (CVM).
    Example: NO_CVM_REQUIRED

  - `riskResponse` (object)

  - `riskResponse.responseCode` (string)
    Format: Alphanumeric

    Length: 1 to 5
    Example: 0

  - `riskResponse.riskId` (string)
    Unique ID returned by the Risk Service.
    Example: 12e3cdac-d347-4564-ba1f-305e5e1e8ded

  - `riskResponse.data` (object)

  - `riskResponse.data.thirdPartyId` (string)
    Unique ID returned by third party provider.
    Example: 12e3cdacd347-4564-ba1f305e5e1e8ded

  - `riskResponse.data.riskScore` (integer)
    Risk score, on a scale from 0 (low risk) to 100 (high risk).

    Type: Number
    Example: 50

  - `riskResponse.data.mostSevereAction` (string)
    The action applied based on the risk assessment.
    Example: cancelled

  - `riskResponse.data.tags` (array)
    List of all rules triggered by the Risk Service.

  - `riskResponse.data.tags.action` (string)
    The action related to the rule.

    Type: String

    Example: cancelled, queued, monitored, approved
    Example: approved

  - `riskResponse.data.tags.name` (string)
    Name of the tag, rule, or label that was triggered.
Type: String
Example: Billing Country = RU Fails
    Example: MaxTransactionAmt=>100

  - `riskResponse.data.tags.type` (string)
    Source of the tag.

    Type: String

    Examples: rule, label, queue, workflow
    Example: rule

  - `riskResponse.data.tags.state` (string)
    The name of the rule set.

    Type: String

    Example: Global Rule Set
    Example: Override Rule Set

  - `tags` (object)
    The `tags` object from the request.
    Example: {"ref":"INV-9","order":{"id":"ORD-12345","channel":"web"}}

## Response 401:

  - `401` (unknown)
    Unauthorized

## Response 500:

  - `500` (unknown)
    Internal Server Error

## Response 500 fields (application/json):

  - `responseCode` (string)
    Example: 500

  - `responseMessage` (string)
    Example: Internal Server Error

## Response 200 examples:

  - `ACH Response` (unknown)
    ACH Response

  - `ACH Async Accepted Response` (unknown)
    ACH Async Accepted Response

  - `CC/Apple Pay Success Response` (unknown)
    CC/Apple Pay Success Response

  - `CC/Apple Pay Failure Response` (unknown)
    CC/Apple Pay Failure Response

  - `CC/Apple Pay Validation Failure Response` (unknown)
    CC/Apple Pay Validation Failure Response

  - `PayPal Success Response` (unknown)
    PayPal Success Response

  - `PayPal Pending Response` (unknown)
    PayPal Pending Response

