HomeGuidesAPI Reference
Guides

SFTP Bulk Upload

In addition to our REST API, you can import consumers and calculate student loan IDR repayment options in large batches via SFTP bulk upload.

If you already have consumer and debt data, we suggest our SFTP Bulk Upload feature. This way you can pre-process your consumers to be able to suggest a repayment plan without the consumer having to provide more details.

It’s as easy as 1, 2 3!

  1. Upload: upload a file via SFTP containing information on consumers and their debts. Payitoff will processes the file and generate a report.

  2. Download: download your report containing PIO Consumer UUIDs and some information about what Student Loan Repayment Plan is best for them.

  3. Target: use the report to target consumers who are likely to benefit from enrolling in a new student loan repayment plan.

📘

Targeted consumers may need to provide any information omitted initially.

Uploading the Input File

The input file containing info for consumers and their debts mirrors the specifications for the Create Consumer and Create Debt endpoints, but in a CSV file format. You'll upload it to sftp.payitoff-sandbox.io (testing) or sftp.payitoff.io (production).

  • The first row should contain the column headers corresponding to the fields you wish to populate on the consumer and debts.
  • When specifying fields nested in an object on the consumer, such as address or spouse, the column names should be prefixed with the object name and an underscore, i.e. the spouse’s AGI may be provided in a column with a header of spouse_first_name.
  • The input file must provide unique values for the external_id of consumers. The first line in the file for a given external_id will be used to create the Consumer at PIO - subsequent lines may either have the same information for the consumer or be left blank. You may provide as many lines as necessary to create the appropriate debts for your consumer.

Give Us The Minimal Amount of Information on a Consumer

The below fields are the absolute minimal amount of information PIO can receive to target the consumers best repayment plan options:

  • external_id - A unique, unchanging identifier for the Consumer
  • institution_name - Name of the student loan servicer(s)
  • agi - Adjusted gross income
  • balance - Balance of the specified student loan
  • type - please use STUDENT_LOAN for student loan enrollment

Here’s an example CSV file with a minimal amount of information provided about the consumer and their debts:

external_id,agi,balance,institution_name,type
7ed615e3-5a2a-46f8-87a0-cc9aef9e447e,34545.00,10000.00,Nelnet,STUDENT_LOAN
7ed615e3-5a2a-46f8-87a0-cc9aef9e447e,,2000.00,Mohela,STUDENT_LOAN

Although the above is enough to create a prediction for targeting consumers, results will be more accurate if original_principal , opened_on, and minimum_payment are also provided.

📘

Without minimum_payment a prediction for the best plan can still be provided with no ability to compare against the current payment.

Give Us All the Information on a Consumer

It is also possible to provide any piece of information that can be provided in the API in the input file.

Here’s an example CSV file with as much information as possible provided about the consumer and their debts:

external_id,address_city,address_state,address_street1,address_street2,address_street3,address_zipcode,agi,children,date_of_birth,dependents,email,first_name,last_name,marital_status,phone,ssn,spouse_agi,spouse_first_name,spouse_last_name,spouse_date_of_birth,spouse_federal_student_loan_balance,spouse_ssn,amount_past_due,apr,balance,balance_entering_repayment,guarantor,institution_name,last_activity_on,last_payment_amount,last_payment_on,lender,minimum_payment,opened_on,original_principal,outstanding_interest,payment_due_on,payment_frequency,payoff_balance,payoff_quote_date,repayment_begin_date,reported_on,responsibility,standing,sub_type,term,type
very_important_consumer,Champaign,IL,123 Westgate Dr,Apt 3A,Someplace,61920,34545.00,0,2002-02-02,0,[email protected],Sally,Smith,MARRIED_FILING_JOINTLY,217-345-3456,123-12-1234,1000.00,Billy,Bob,2003-03-03,10000.00,321-21-4321,0.0,4.5,10000.00,12000.00,Dept of Ed,Nelnet,2024-01-01,100.00,2024-01-01,Dept of Ed,100.00,2018-08-01,12000.00,0.00,2024-06-01,MONTHLY,12000.00,2024-05-14,2024-01-01,2024-05-01,INDIVIDUAL_ACCOUNT,IN_REPAYMENT,Direct Stafford Subsidized,120,STUDENT_LOAN
very_important_consumer,,,,,,,,,,,,,,,,,,,,,,,0.0,22.95,10000.00,,,JP Morgan Chase,2024-01-01,100.00,2024-01-01,,100.00,2018-08-01,12000.00,0.00,2024-06-01,MONTHLY,,,,,INDIVIDUAL_ACCOUNT,,,,CREDIT_CARD
single_consumer,Portland,OR,321 Washington Dr,Apt 3A,,91734,34545.00,0,2002-02-02,0,[email protected],Joe,Jones,SINGLE,217-345-3456,123-12-1234,,,,,,,0.0,4.5,10000.00,12000.00,Dept of Ed,Nelnet,2024-01-01,100.00,2024-01-01,Dept of Ed,100.00,2018-08-01,12000.00,0.00,2024-06-01,MONTHLY,12000.00,2024-05-14,2024-01-01,2024-05-01,INDIVIDUAL_ACCOUNT,IN_REPAYMENT,Direct Stafford Subsidized,120,STUDENT_LOAN

Receiving The Report

The report will be available by 8am EST the day after the input file is uploaded. It will be located in the same place on the SFTP server as the input CSV you upload. If the input file is named x.csv then the report file will be named x_report.csv.

The report file will contain one line for each external_id provided in the input file. The file will include the following fields:  

  • external_id - the external id provided in the input file
  • uuid - the PIO Consumer UUID. Can be used to retrieve info via the API. Not present when there are errors.
  • has_errors - boolean indicator of whether any errors were encountered with the input data.
  • errors - details on any validation errors encountered with the input data.
  • recommended_plan_name - the name of the repayment plan best suited to the consumer given the information provided.
  • plan_monthly_payment - the monthly payment of the recommended plan. This includes the monthly payment of any ineligible student loans if that information was provided.
  • monthly_savings - the amount of money saved monthly on the new repayment plan. Only present when minimum_payment was provided for all of a consumer’s debts.

Target

A few considerations when looking at which consumers might benefit from enrolling in a new student loan repayment plan:

  • A larger family size, i.e. having children, dependents, and/or a spouse, can lead to a lower monthly payment.

If the above information is not provided initially it can be supplied via the API and new repayment options generated. See our API-only guide.

Get Started

Contact your Payitoff rep or [email protected] to begin setup. You'll need to provide:

  • Your SFTP public key
  • Your desired SFTP username
  • A list of IP addresses that will need access the sandbox (and eventually production) SFTP servers.