This document describes ACH-specific transaction types in Nelnet Payment Services (NPS), how they fit into the ACH payment lifecycle, and how ACH Standard Entry Codes (SEC codes) are used.
It covers:
- ACH debit and credit flows
- ACH cancellation behavior
- Standard Entry Codes (SEC)
- Required references between ACH transactions
ACH payments are batch-based and asynchronous. Funds movement and finality occur after submission.
Unlike credit cards, ACH transactions do not authorize funds in real time.
Instead, they are submitted for processing and settled later through the ACH network.
High-level phases:
- Submission – ACH entry is created and queued
- Processing – Entry is transmitted to the ACH network
- Settlement – Funds are moved between financial institutions
- Post-processing – Returns, reversals, and reconciliation
The following transactionType values apply to ACH payments.
| Transaction Type | Description | Notes |
|---|---|---|
| ACH_DEBIT | Pulls funds from a customer’s bank account. | Most common ACH transaction. |
| ACH_CREDIT | Pushes funds to a customer’s bank account. | Must reference a prior ACH debit. |
| ACH_CANCEL | Cancels a previously submitted ACH transaction. | Time-sensitive and not guaranteed. |
ACH_DEBIT initiates a debit from the customer’s bank account.
When to use:
- Tuition payments
- Recurring bank debits
- One-time ACH charges
Characteristics:
- Funds are pulled from the customer
- Settlement occurs asynchronously
- Subject to returns after settlement
- Requires a valid Standard Entry Code (SEC)
{
"entityId": 1325691045,
"paymentType": {
"ach": {
"token": "4NTSIT839d9b1234"
}
},
"transactionType": "ACH_DEBIT",
"amount": 123.65,
"accountHolder": {
"accountHolderName": "John Smith",
"accountHolderId": "134267"
},
"transactionInformation": {
"standardEntryCode": "WEB",
"description": "tuition",
"companyName": "College Prep"
}
}ACH_CREDIT pushes funds to a customer’s bank account.
ACH credits must reference a prior ACH debit transaction.
Common use cases:
- Refunds for ACH debits
- Disbursements
- Corrections initiated by the merchant
{
"entityId": 1325691045,
"paymentType": {
"ach": {
"token": "4NTSIT839d9b1234"
}
},
"transactionType": "ACH_CREDIT",
"amount": 50.00,
"transactionInformation": {
"originalPaymentTransactionId": "80503dc9-15f8-430a-8622-3cff38124bbd"
}
}ACH_CANCEL attempts to cancel a previously submitted ACH transaction.
ACH cancellations are time-sensitive and not guaranteed.
When to use:
- An ACH entry was submitted in error
- The transaction has not yet been processed by the ACH network
Characteristics:
- Requires reference to the original transaction
- Must include the original transaction type
- Success depends on timing and processing state
{
"entityId": 1325691045,
"paymentType": {
"ach": {
"token": "4NTSIT839d9b1234"
}
},
"transactionType": "ACH_CANCEL",
"transactionInformation": {
"originalPaymentTransactionId": "80503dc9-15f8-430a-8622-3cff38124bbd",
"originalTransactionType": "ACH_DEBIT"
}
}ACH transactions require a Standard Entry Code (SEC) that describes how the transaction was authorized and initiated.
The SEC code determines authorization rules and downstream ACH handling.
The SEC code is provided in the transactionInformation.standardEntryCode field for ACH debits.
Standard Entry Class (SEC) codes are defined and maintained by Nacha, the governing body for the ACH network.
For ACH payment entries, the SEC code determines how authorization was obtained and whether an entry is processed as a debit or credit. Within NPS, SEC codes are used to validate ACH payment requests and may also appear in reporting data.
- Within NPS APIs (including the
standardEntryCodefield used in ACH payment requests), PPD is the only SEC code supported for consumer debit, credit, or cancel transactions. - All other consumer SEC codes supported by NPS are debit-only.
- Some SEC codes may appear in reporting as non-payment entries (for example, Notifications of Change).
The following SEC codes may appear in NPS payment entries or reporting, as noted.
| SEC Code | Description |
|---|---|
| ARC (Accounts Receivable Entry) | Single, one-time debit for a paper check received via lockbox, drop box, or business mailbox. |
| BOC (Back Office Conversion Entry) | Allows the creation of a single debit for a point-of-purchase paper check during back-office conversion. |
| CCD (Corporate Credit or Debit Entry) | ACH credit or debit between corporate accounts. |
| COR (Notification of Change Entry) | Reporting only (non-payment entry). Used to transmit corrections to previously processed ACH transactions. These entries do not move funds. |
| POP (Point of Purchase Entry) | Single, one-time debit made in person at a POS device for a customer purchase. |
| PPD (Prearranged Payment and Deposit Entry) | Used for consumer ACH transactions where funds are credited (such as payroll or refunds), debited under a standing authorization, or canceled. This is the required SEC code for consumer credit and cancellation transactions in NPS. |
| TEL (Telephone-Initiated Entry) | Debit authorized verbally by the consumer by phone. |
| WEB (Internet-Initiated and Mobile Entry) | Consumer debit initiated online or via mobile app. WEB credits are not supported in any NPS APIs. |
- Consumer debit transactions commonly use:
WEB,TEL,ARC,BOC, orPOP - Consumer credit or cancellation transactions must use:
PPD - Corporate transactions use:
CCD
Some ACH reports generated by NPS may include non-payment SEC codes (such as COR) that represent informational updates rather than fund movement. These entries are included for completeness and reconciliation purposes only.
ACH transactions are linked using paymentTransactionId.
ACH_DEBIT→ACH_CREDITACH_DEBIT→ACH_CANCEL
Storing transaction IDs is critical for:
- Credits
- Cancellations
- Returns and reconciliation
- Reporting
- Always store
paymentTransactionId - Select the correct SEC code for your use case
- Submit ACH_CANCEL requests as quickly as possible
- Use ACH_CREDIT to return funds after settlement
- Expect delayed finality and possible returns
- Test all ACH flows thoroughly in UAT
- This document applies to ACH payments only
- Supported ACH transaction types:
- ACH_DEBIT
- ACH_CREDIT
- ACH_CANCEL
- ACH transactions require a valid SEC code
- ACH payments are asynchronous and batch-based
- ACH_CREDIT and ACH_CANCEL require references to prior transactions
- Timing is critical for ACH cancellations