Payments API v3 (2025.5.1.0)

The Payments API is used to send payment requests to process transactions.

Download OpenAPI description
Languages
Servers
Mock server

https://docs.nelnetpay.com/_mock/apis/osi-payments-api/

UAT

https://api.uat.nelnetpay.com/payments-api/

Process a Payment Request

Request

Perform a request to process a payment.

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

Bodyapplication/jsonrequired
entityIdinteger(int64)required

A unique ID assigned by NPS that represents the client.

Example: 1325691045
paymentTypeobjectrequired

Indicates the type of payment. Only one type of payment is allowed.

paymentType.​achobject

Used to identify the ACH payment type.

paymentType.​creditCardobject

Used to identify the credit card payment type.

paymentType.​applePayobject

Used to identify the Apple Pay payment type. Either encryptedData or token needs to be provided.

transactionTypestringrequired

Indicates the type of transaction.

Enum"AUTH_ONLY""CAPTURE""SALE""REFUND""VERIFY""VOID""CANCEL""ACH_DEBIT""ACH_CREDIT""ACH_CANCEL"
Example: "AUTH_ONLY"
amountnumber

Amount of the transaction in BigDecimal.

Example: 123.65
accountHolderobject

Accountholder details.

transactionInformationobject

Additional information about the transaction.

payfacobject

Payment Facilitator information.

credentialsOnFileobject

Information for stored card transactions. Required to be sent only for recurring transactions.

additionalAmountArray of objects

Additional amount that is added to the amount of the cardholder’s original transaction.

riskIdstring

A unique ID returned by the Risk Service.

Example: "12e3cdac-d347-4564-ba1f-305e5e1e8ded"
processingModestring

Mandatory for ACH transactions.

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.

We will queue the transaction for processing later.

Format Type: String

Enum"SYNCHRONOUS""ASYNCHRONOUS"
Example: "SYNCHRONOUS"
accountAndRoutingRequestboolean
curl -i -X POST \
  https://docs.nelnetpay.com/_mock/apis/osi-payments-api/payments \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "entityId": 1325691045,
    "paymentType": {
      "ach": {
        "bankAccount": {
          "accountNumber": "459887746321Z",
          "routingNumber": "021000021",
          "accountType": "CHECKING"
        }
      }
    },
    "transactionType": "ACH_DEBIT",
    "amount": 123.65,
    "accountHolder": {
      "accountHolderName": "John Doe",
      "accountHolderId": "134267"
    },
    "transactionInformation": {
      "customId": "330d4c38-7904-47cf-be8e-0972a93f7386",
      "description": "tuition",
      "additionalPaymentInformation": "U00102",
      "companyName": "College Prep",
      "companyDiscretionaryData": "Test1234",
      "standardEntryCode": "WEB",
      "terminalCity": "MPLS",
      "terminalState": "MN",
      "discretionaryData": "R",
      "effectiveEntryDate": "250110",
      "originalTransactionType": "",
      "originalPaymentTransactionId": "80503dc9-15f8-430a-8622-3cff38124bbd"
    },
    "riskId": "12e3cdac-d347-4564-ba1f-305e5e1e8ded"
  }'

Responses

OK

Bodyapplication/json
responseCodestring[ 4 .. 5 ] characters

Response code defined by NPS indicating status of request.

Format Type: Alphanumeric

Length: 4 to 5

Example: "A100"
responseMessagestring

The text description of the response code.

Example: "Approved"
paymentTransactionIdstring[ 1 .. 36 ] characters

Unique transaction identifier. This value is used when sending a subsequent transaction such as a Capture or Refund.

Format Type: UUID

Length: 36

Example: "80503dc9-15f8-430a-8622-3cff38124bbd"
paymentTypeobject

Indicates the type of payment.

accountValidationResultobject

The ACH account validation return code, which indicates if ACH validation was performed.

processorResponseobject

Response returned by processor.

riskResponseobject

Response returned by the Risk Service if the service was invoked during processing the payment.

Response
application/json

Ach Response

{ "responseCode": "A100", "responseMessage": "Approved", "paymentTransactionId": "80503dc9-15f8-430a-8622-3cff38124bbd", "paymentType": { "ach": {} }, "riskResponse": { "responseCode": "0", "riskId": "12e3cdac-d347-4564-ba1f-305e5e1e8ded", "data": {} }, "accountValidationResult": { "responseCode": "1", "thirdPartyResponseCode": "2", "bankName": "UB Bank" } }

Process a Payment Request

Request

Bodyapplication/jsonrequired
entityIdinteger(int64)required

A unique ID assigned by NPS that represents the client.

Example: 1325691045
paymentTypeobjectrequired

Indicates the type of payment. Only one type of payment is allowed.

paymentType.​achobject

Used to identify the ACH payment type.

paymentType.​creditCardobject

Used to identify the credit card payment type.

paymentType.​applePayobject

Used to identify the Apple Pay payment type. Either encryptedData or token needs to be provided.

transactionTypestringrequired

Indicates the type of transaction.

Enum"AUTH_ONLY""CAPTURE""SALE""REFUND""VERIFY""VOID""CANCEL""ACH_DEBIT""ACH_CREDIT""ACH_CANCEL"
Example: "AUTH_ONLY"
amountnumber

Amount of the transaction in BigDecimal.

Example: 123.65
accountHolderobject

Accountholder details.

transactionInformationobject

Additional information about the transaction.

payfacobject

Payment Facilitator information.

credentialsOnFileobject

Information for stored card transactions. Required to be sent only for recurring transactions.

additionalAmountArray of objects

Additional amount that is added to the amount of the cardholder’s original transaction.

riskIdstring

A unique ID returned by the Risk Service.

Example: "12e3cdac-d347-4564-ba1f-305e5e1e8ded"
processingModestring

Mandatory for ACH transactions.

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.

We will queue the transaction for processing later.

Format Type: String

Enum"SYNCHRONOUS""ASYNCHRONOUS"
Example: "SYNCHRONOUS"
accountAndRoutingRequestboolean
curl -i -X POST \
  https://docs.nelnetpay.com/_mock/apis/osi-payments-api/payments2 \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "entityId": 1325691045,
    "paymentType": {
      "ach": {
        "token": "4NTSIT839d9b1234",
        "bankAccount": {
          "accountNumber": "459887746321Z",
          "routingNumber": "021000021",
          "accountType": "CHECKING"
        }
      },
      "creditCard": {
        "token": "4NTSIT839d9b1234",
        "card": {
          "expiration": "1227",
          "cardVerificationValue": "123"
        }
      },
      "applePay": {
        "encryptedData": {
          "data": "6b2xlM8Lh/dSF+9jBqel7A6sdh6B2NJjp6wLbt/jMdLzbnCSKdWPwlSDaKR9j472IpEIijjkKAh+9ynMlS4=",
          "ephimeralPublicKey": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEGRNcOcPdTxd4GKiSMvyngGf31Hx3V",
          "wrappedKey": "FIXME find example",
          "publicKeyHash": "lRY9u8sMTf5Ezb4LoqSV6+70Q2fxbLZjFhJ/Lk+PgWI=",
          "transactionId": "dbb972ab5b3eab30072d886b1ef415f92a814204",
          "signature": "MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhk",
          "version": "EC_v1"
        },
        "token": "4NTSIT839d9b1234",
        "card": {
          "network": "Visa",
          "category": "credit",
          "displayName": "Visa 0224",
          "expiration": "1227"
        }
      }
    },
    "transactionType": "AUTH_ONLY",
    "amount": 123.65,
    "accountHolder": {
      "accountHolderName": "John Doe",
      "accountHolderId": "134267",
      "ipAddress": "10.101.101.101",
      "billing": {
        "address": {
          "addressLine1": "123 Smith Ave",
          "addressLine2": "Suite 201",
          "postalCode": "11201"
        }
      },
      "registeredUserIndicator": "YES",
      "lastRegisteredDate": "05/20/2025"
    },
    "transactionInformation": {
      "customId": "330d4c38-7904-47cf-be8e-0972a93f7386",
      "orderNumber": "652367",
      "softDescriptor": "ABC Company",
      "externalReferenceId": "1749af67-40ff-436d-940a-a7ad3ff74059",
      "originalPaymentTransactionId": "80503dc9-15f8-430a-8622-3cff38124bbd",
      "description": "tuition",
      "companyName": "College Prep",
      "companyDiscretionaryData": "Test1234",
      "originalTransactionType": "ACH_CREDIT",
      "additionalPaymentInformation": "U00102",
      "standardEntryCode": "WEB",
      "terminalCity": "MPLS",
      "terminalState": "MN",
      "discretionaryData": "R",
      "effectiveEntryDate": "250110"
    },
    "payfac": {
      "payfacId": "7213",
      "payfacName": "ABC",
      "isoIdentifier": "12346",
      "subMerchant": {
        "name": "Prep School",
        "id": "341334",
        "address": {
          "city": "Omaha",
          "stateCode": "NE",
          "countryCode": "USA",
          "postalCode": "68102"
        },
        "emailAddress": "test@abc.com",
        "phoneNumber": "4021234567"
      },
      "acceptor": {
        "address": {
          "addressLine1": "123 Smith Ave"
        },
        "phoneNumber": "4021234569",
        "customerServicePhoneNumber": "4021234568"
      }
    },
    "credentialsOnFile": {
      "paymentInitiator": "ACCOUNTHOLDER",
      "credentialsOnFileType": "RECURRING",
      "sourceEntityParams": {
        "params": [
          {
            "name1": "value1"
          },
          {
            "name2": "value2"
          }
        ],
        "multiMerchantRecurringLinkId": "12345"
      }
    },
    "additionalAmount": [
      {
        "amountType": "SURCHARGE",
        "amountValue": 3.65
      }
    ],
    "riskId": "12e3cdac-d347-4564-ba1f-305e5e1e8ded",
    "processingMode": "SYNCHRONOUS",
    "accountAndRoutingRequest": true
  }'

Responses

OK

Bodyapplication/json
responseCodestring[ 4 .. 5 ] characters

Response code defined by NPS indicating status of request.

Format Type: Alphanumeric

Length: 4 to 5

Example: "A100"
responseMessagestring

The text description of the response code.

Example: "Approved"
paymentTransactionIdstring[ 1 .. 36 ] characters

Unique transaction identifier. This value is used when sending a subsequent transaction such as a Capture or Refund.

Format Type: UUID

Length: 36

Example: "80503dc9-15f8-430a-8622-3cff38124bbd"
paymentTypeobject

Indicates the type of payment.

accountValidationResultobject

The ACH account validation return code, which indicates if ACH validation was performed.

processorResponseobject

Response returned by processor.

riskResponseobject

Response returned by the Risk Service if the service was invoked during processing the payment.

Response
application/json
{ "responseCode": "A100", "responseMessage": "Approved", "paymentTransactionId": "80503dc9-15f8-430a-8622-3cff38124bbd", "paymentType": { "ach": {}, "creditCard": {} }, "accountValidationResult": { "responseCode": "1", "thirdPartyResponseCode": "2", "bankName": "UB Bank" }, "processorResponse": { "responseCode": "A0000", "responseMessage": "Success", "authorizationCode": "TAS890", "avsResultCode": "Z", "cvvResultCode": "M", "processedAmount": 123.65, "processorTransactionId": "49510555", "processorTransactionType": "Sale" }, "riskResponse": { "responseCode": "0", "riskId": "12e3cdac-d347-4564-ba1f-305e5e1e8ded", "data": {} } }