Skip to content
Last updated

API Standards

This document defines the shared standards and conventions used across all Nelnet Payment Services (NPS) APIs.

It is intended for technical integrators and describes how NPS APIs behave consistently, regardless of the specific service (Payments, Tokenization, Risk, Notifications, etc.).


Design Principles

Key idea:
NPS APIs favor consistency and predictable behavior to make integrations easier to build and maintain.

Across all services, you can expect:

  • REST-oriented endpoints
  • JSON request and response bodies
  • Explicit, documented field names
  • Stable response structures
  • Clear separation between authentication, context, and behavior

Base URLs & Environments

All production API traffic is sent to:

https://api.nelnetpay.com

A non-production environment is available for testing:

https://api.uat.nelnetpay.com

Required HTTP Headers

All API requests must include the following headers.

HeaderDescription
Content-Type: application/jsonRequired for all requests with a body
Authorization: Bearer <JWT>JWT created using API keys

Authentication Model

  • NPS APIs use Bearer token authentication
  • JWTs are created server-to-server using API keys
  • JWTs are passed in the Authorization header
Reminder:
Session tokens are used only by browser-based SDKs and must never be sent to backend APIs.

HTTP Methods

MethodUsage
GETRetrieve resources
POSTCreate resources or initiate actions
PUTReplace an existing resource
PATCHPartially update a resource
DELETERemove a resource

HTTP Status Codes

Status CodeMeaning
200 OKRequest succeeded
201 CreatedResource created
202 AcceptedRequest accepted for processing
400 Bad RequestValidation or request error
401 UnauthorizedAuthentication failed
403 ForbiddenInsufficient permissions
404 Not FoundResource not found
409 ConflictState conflict
500 Internal Server ErrorUnexpected server error

Canonical Error Format

All NPS APIs return errors using a shared structure.

{
  "result": {
    "status": "ERROR"
  },
  "error": {
    "code": 123,
    "messages": [
      {
        "message": "A human-readable error message"
      }
    ]
  }
}

Field & Data Type Conventions

Dates & Times

TypeFormat
DateYYYY-MM-DD
DateTimeISO 8601 UTC

Numeric Values

TypeConvention
CurrencyDecimal (no floats)
PercentagesDecimal
IDsInteger or string

Enums

  • Uppercase snake case
  • Clients should tolerate new values

Versioning

  • API URLs do not include a version by default
  • Versioning is explicit when required
  • Strategy is evolving and will be communicated ahead of changes

Summary

  • Consistent REST conventions across services
  • Canonical error response structure
  • Predictable field formats
  • Explicit authentication model