Default Reporting Application (DRA)
Verified against source (4)
wiki/Default-Reporting-Application.mdwiki/DR-Configuration.mdfanniemae/legacy.events.inifanniemae/postman.dra.json
This view is for law firm IT teams and case management vendors who send DRA events automatically, by sFTP or API. Both channels accept the same legacy Fannie Mae events content as the web upload, and every submission becomes an import file you can follow in the web interface.
Environments and hosts
Section titled “Environments and hosts”| Environment | Web and API | sFTP |
|---|---|---|
| UAT | https://uatfannie.quandis.io |
sftpfannie.quandis.io (UAT account) |
| Production | https://fannie.quandis.io |
sftpfannie.quandis.io (production account) |
One sFTP host serves both environments. Which environment a file goes to depends on the account you connect with.
Get an automation account
Section titled “Get an automation account”Automation runs under a dedicated automation account, bound to your firm. DRA knows which firm sent a file from the account that sent it.
Email Fannie Mae’s DRA team at dra_support@fanniemae.com with:
- Your firm name.
- Two main points of contact for the integration: first and last name, direct phone number, and email for each.
- The ways you plan to submit: sFTP, API, spreadsheet upload, or direct entry.
- The automation user name you want, such as
integrations@examplelawfirm.com. - For sFTP: the IP address ranges, in CIDR notation, that you will connect from. Check them with a CIDR calculator before you send them.
- For sFTP (recommended): a 2048-bit SSH public key to use instead of a password.
For UAT access, contact Quandis at fannie.support@quandis.com.
Deliver files by sFTP
Section titled “Deliver files by sFTP”Once you have a user account, contact fannie.support@quandis.com to set up sFTP. Quandis creates two accounts on the sFTP server:
| Account | Example name |
|---|---|
| UAT | uat.integrations@examplelawfirm.com |
| Production | integrations@examplelawfirm.com |
Each account authenticates with an SSH key pair (recommended) or a password:
- SSH key. Your IT team generates a 2048-bit key pair, sends DRA the public key, and keeps the private key to authenticate. Generate the pair yourself: Quandis security policy prohibits keeping private keys generated on your behalf.
- Password. If you prefer, Quandis generates a password for the account.
Connections are allowed only from the IP ranges you registered, for example 203.0.113.45/32 (a single address) or 198.51.100.0/24 (a block). The server is an AWS Transfer Family server, listening on port 22.
Each account has its own home directory, so firms can’t see or overwrite each other’s files. DRA watches the directory, queues each matching file for import, and then removes it from the sFTP site. The file and its results stay available in the web interface under Landing Pages > Default Reporting > Import Files.
File naming
Section titled “File naming”Files delivered by sFTP or uploaded in the web interface must:
- be an Excel workbook (
.xlsx) or a delimited text file (.csvor.txt), and - contain
Eventsin the file name. The match is case-sensitive.
| File name | Accepted? |
|---|---|
Events.xlsx |
Yes |
examplefirm.Events.xlsx |
Yes |
examplefirm.Events.2026-10-01.csv |
Yes |
EX01-Events_P01.03.1.txt |
Yes |
examplefirm.xlsx |
No: no Events in the name |
examplefirm.events.xlsx |
No: events is lowercase |
examplefirm.Events.xls |
No: .xls is not the Excel .xlsx format |
For .csv and .txt files, DRA detects the delimiter, so pipe-delimited files from the legacy system and comma-delimited files both work. Unique names aren’t required, but a date or time stamp makes your history easier to read.
Events file layout
Section titled “Events file layout”DRA reads Fannie Mae’s legacy default reporting layout: 110 columns in a fixed order, defined in legacy.events.ini. Each event is one row with record type EVENT. Legacy HEADER and FOOTER rows are accepted but optional, and delimited rows carry no column-name header.
Columns that matter most:
| # | Column | Notes |
|---|---|---|
| 1 | Record Type | EVENT |
| 2 | Provider Code | Your firm’s Fannie Mae provider code. Required. |
| 3 | Business Event Code | The event, for example E0130 (foreclosure referral package received) or E0290 (bankruptcy referral package received). |
| 9 | Event Actual Date time | When the event happened. DRA derives case status from these dates. |
| 15 | Delay Type Code | For delay events. |
| 20 | Investor Loan Number Identifier | The Fannie Mae loan number. DRA matches it to Fannie Mae’s loan data. |
| 22–25 | Delay Actual Start Date, Delay Projected End Date, Delay End Reason Type, Delay Details Text | For delay events. |
| 53–55 | Assigned Foreclosure Attorney Code, Foreclosure Attorney File Identifier, Foreclosure Method Type | Your file number identifies the foreclosure. |
| 75, 77 | Assigned Bankruptcy Attorney Code, Bankruptcy Case Number ID | The case number identifies the bankruptcy. |
DRA groups events into a foreclosure by provider code, loan, and attorney file number, and into a bankruptcy by provider code, loan, and bankruptcy case number. Delay events attach to the loan.
Servicer fields (servicer code, name, and loan number, investor servicer ID) and property location fields are stored on the event, but the loan summary shows Fannie Mae’s values from its own data feed.
Processing rules
Section titled “Processing rules”- Order within a file doesn’t matter, except for repeats: case status comes from event dates, not row order.
- Repeated events collapse. If the same event is reported for the same loan more than once in one file, only the last row is kept.
- Empty files aren’t listed. A file with no
EVENTrows doesn’t appear on the Import Files tab. - Send as often as you like. One event per file is fine; processing is near-real time.
Submit by API
Section titled “Submit by API”POST events content to:
/api/import/legacyevents?PreTransform_FileName={FileName}PreTransform_FileName names the submission, and its extension tells DRA how to read the content: .csv for delimited rows, .xlsx for a workbook. Authenticate as your automation account; the sample Postman collection in the Fannie Mae integration repository uses HTTP Basic authentication with the account’s user name and password. For QBO API authentication in general, see Authenticating API calls.
Delimited rows
Section titled “Delimited rows”Send rows in the legacy column order. This example is cut short after column 20; a real row continues through all 110 columns, leaving the ones you don’t report empty.
POST https://uatfannie.quandis.io/api/import/legacyevents?PreTransform_FileName=examplefirm.Events.2026-10-01.csvContent-Type: text/plain; charset=UTF-8
EVENT,P009999,E0130,Foreclosure Referral Package received by Attorney,SS00000,P008888,Example Servicer LLC,0000012345,2026-09-15T10:30:00,2026-09-15T10:30:00,2026-09-15T10:30:00,EX-0001,EXAMPLE,,,,,P000000,Fannie Mae,9999999001,…All values above are placeholders.
You can also send events as XML: one <Body> element per event, inside a single root element.
POST https://uatfannie.quandis.io/api/import/legacyevents?PreTransform_FileName={FileName}Content-Type: text/plain; charset=UTF-8
<Content> <Body> <RecordType>EVENT</RecordType> <ProviderCode>P009999</ProviderCode> <BusinessEventCode>E0290</BusinessEventCode> <BusinessEventName/> <ServicerName>Example Servicer LLC</ServicerName> <EventActualDate>2026-09-15T00:00:00</EventActualDate> <InvestorName>Fannie Mae</InvestorName> <InvestorLoanNumberID>9999999001</InvestorLoanNumberID> <AssignedBKAttorneyCode>P009999</AssignedBKAttorneyCode> <BKCaseNumberID>26-00000</BKCaseNumberID> <BKChapterTypeCode>Chapter13</BKChapterTypeCode> <AssignedBKAttorneyName>Example Law Firm, PLLC</AssignedBKAttorneyName> <!-- Abbreviated: include every element in the legacy specification. --> </Body> <Body>…</Body></Content>- The root and
<Body>element names don’t matter, but the element names inside each<Body>must match the legacy specification exactly. The complete element list is in the XML submission section of the DRA wiki. - Include every element, even when it is empty.
- Don’t send legacy
HeaderorFooterelements.
Response
Section titled “Response”A successful submission returns the import file it created:
<ImportFileItem> <ImportFile>examplefirm.Events.2026-10-01.csv</ImportFile> <ImportFileID>12345</ImportFileID></ImportFileItem>The events are then processed from the queue. Keep the ImportFileID to check the results.
Read the import log
Section titled “Read the import log”GET /api/importlog/search?Output=Xml&ImportFileID=12345GET /api/importlog/search?Output=Xml&ImportFileID=12345&SqlFilters=FailedThe first call returns the log for every row; SqlFilters=Failed returns only the rows that failed. If your account can’t read import logs through the API yet, ask fannie.support@quandis.com to enable it.
Related
Section titled “Related”- DRA overview: channels, environments, and getting an account.
- Imports developer guide: how QBO import files, templates, and logs work.
- DRA product page: what DRA does and how it compares with ADR for Freddie Mac loans.