Nelnet

Nelnet is a lending service provider for B2B2C home loans.

Nelnet is a lending service provider for B2B2C home improvement loans. Through Nelnet, contractors offer homeowners financing for home improvement projects. As a project reaches its milestones, the contractor draws down funds from the homeowner's loan, and Nelnet disburses them directly to the contractor.

Features

The Preczn integration to Nelnet supports the following features.

For an overview of how loans and lending transactions work across providers, see B2B2C Loans.

Configuring the Connection

Add your Nelnet credentials once, at the platform level. Go to Connections → Add Connection and select Nelnet. All three fields are required.

Dashboard fieldRequiredDescription
Client ID✅ YesYour Nelnet-assigned OAuth client ID.
Client Secret✅ YesYour Nelnet-assigned OAuth client secret.
Scope✅ YesYour Nelnet-assigned company identifier, used as the OAuth scope.

ℹ️ Where do these values come from?

Nelnet provides all three values when your platform is set up with them. Nelnet's sandbox and live environments use separate credentials, so configure the connection in both test and live mode.

Click Verify and Save to store the connection. Preczn authenticates with Nelnet using these credentials before saving — if authentication fails, confirm the values with Nelnet.

Adding Merchant Credentials

In order to configure Nelnet, each merchant will need a Nelnet contractor ID.

You may upload this via the Preczn Dashboard, merchant import or by updating the merchant connection via Update Connection Details endpoint. The values needed in the request would map as follows:

PATCH /v1/merchants/{merchantId}/connections/Nelnet 

{
    "mid":"{nelnet-contractorId}"
}

When a contractor ID is submitted, Preczn verifies it with Nelnet before saving — an invalid contractor ID is rejected, not stored. On successful verification, the contractor's current status at Nelnet sets the connection status (see Connection Status Mapping below).

⚠️ One merchant per contractor ID

A Nelnet contractor ID should be configured on only one merchant. If two merchants share the same contractor ID, Preczn will create a loan record for each of them every time Nelnet sends a loan event, resulting in duplicate loans. See Automatic Loan Creation for why, and the FAQ for how to resolve it.

Connection Status Mapping

A merchant's Nelnet connection status tracks the contractor's status at Nelnet. It is set when the contractor ID is first verified, and updated automatically whenever Nelnet sends a contractor status event. Each change also triggers a merchant-updated webhook to your platform.

Nelnet Contractor StatusPreczn Connection StatusDescription Shown on Connection
NEWUnderwritingNew contractor that has not been onboarded or approved
ONBOARDEDUnderwritingContractor has been onboarded, but not approved
READYActive
DECLINEDDisabledContractor has been declined.
FRAUDDisabledContractor has been disabled due to fraud.
INVALID_BANK_INFODisabledContractor has invalid bank information and should be updated.

Statuses other than READY need resolution with Nelnet directly — for example, completing contractor onboarding or correcting bank information. Once Nelnet moves the contractor to READY, the connection becomes Active automatically.

Automatic Loan Creation

You do not need to call the Preczn API to create Nelnet loans. When a borrower's loan is originated or changes status, Nelnet sends Preczn a loan event webhook containing the loan's bank ID and the contractor ID of the merchant it belongs to.

Preczn matches that contractor ID against the Nelnet connection of every merchant on your platform. Then, for each matching merchant:

  • If the merchant has no loan record for that bank ID yet, Preczn fetches the full loan details from Nelnet, creates a loan record and loan token for the merchant, and sends you a loan.created webhook.
  • If the merchant already has a loan record for that bank ID, Preczn refreshes it with the latest details from Nelnet and sends you a loan.updated webhook.
sequenceDiagram
    participant N as Nelnet
    participant P as Preczn
    participant V as Vertical SaaS Platform

    N-->>P: Loan event webhook<br/>(contractor ID + bank ID)
    P->>P: Find every merchant whose Nelnet<br/>connection matches the contractor ID

    loop For each matching merchant
        P->>N: Fetch full loan details
        N-->>P: Loan details
        alt Merchant has no loan for this bank ID
            P->>P: Create loan + loan token<br/>for this merchant
            P-->>V: loan.created webhook
        else Merchant already has this loan
            P->>P: Update loan with latest details
            P-->>V: loan.updated webhook
        end
    end

    Note over P: If two merchants share one contractor ID,<br/>this loop runs twice — creating two Preczn<br/>loans for the same Nelnet loan

Because loan creation happens per matching merchant, the contractor ID is what ties a Nelnet loan to a Preczn merchant. If the same contractor ID is configured on two merchants — for example, a merchant that was accidentally created twice — every Nelnet loan event matches both, and Preczn creates a separate loan record under each merchant. The result is duplicate loans for the same customer. See the FAQ for how to resolve and prevent this.

Loan Status Mapping

Preczn normalizes loan statuses so that platforms can use and reach to events across multiple providers. Here is how the loan statuses map for Nelnet:

Preczn Loan StatusNelnet Status
applicationActionRequiredPENDING_VERIFICATION
applicationOffersPresentedPENDING_OFFER
applicationDeclinedDECLINED
applicationCancelledWITHDRAWN
notActivatedPENDING_SIGNATURE
activeREADY_TO_FUND
closedFUNDING_EXPIRED
closedFINALIZED
closedFULL_DISBURSED

FAQ

Why are duplicate loan records appearing for the same customer?

Duplicate loans occur when more than one merchant in Preczn is configured with the same Nelnet contractor ID. As described in Automatic Loan Creation, Preczn matches each loan event's contractor ID against every merchant's Nelnet connection and creates or updates a loan record for each match — so two merchants sharing a contractor ID each get their own copy of the same loan.

How do I resolve and prevent duplicate loan records?

Identify the primary merchant — the one where transaction volume should be processed — and the duplicate merchant(s) sharing its contractor ID. Then reset the Nelnet connection on each duplicate merchant:

  1. In the Preczn Dashboard, open the duplicate merchant's detail page.
  2. Click the Nelnet connection tag to open the connection drawer.
  3. Open the options menu () in the top right of the drawer and select Reset Connection.

Resetting the connection clears the contractor ID (and all other connection data) from that merchant and returns the connection to an unconfigured state, so new Nelnet loan events no longer match it. Resetting a connection is only available in the Preczn Dashboard — the Update Connection Details endpoint can change a contractor ID but cannot clear one.

⚠️ Disabling or deleting the merchant will not resolve this

Loan events are matched by contractor ID alone, so a disabled merchant whose Nelnet connection still has a contractor ID will continue to receive duplicate loans — the contractor ID must be removed from the connection. Deleting the duplicate merchant is not an option either: a merchant with loans, tokens, or transactions cannot be deleted.

Loan records already created under the duplicate merchant are not deleted — resetting the connection only prevents new duplicates going forward.

Why is a loan or loan status update missing?

Preczn uses the contractor ID on each Nelnet loan event to match the event to a merchant. If an event arrives without a contractor ID, or with a contractor ID that isn't configured on any merchant's Nelnet connection, Preczn cannot associate the loan and the event is skipped.

If a loan or status update appears to be missing, first verify the merchant's Nelnet connection has the correct contractor ID. If the configuration is correct and the loan is still missing, contact Preczn support with the merchant ID and the Nelnet loan (bank) ID.

What should I do if a drawdown returns a "General Error"?

A "General Error" response originates from Nelnet, not from Preczn. Per Nelnet's guidance, these errors are transient and the drawdown request is generally safe to retry.



Did this page help you?