An updated version of this guide is now available.
Overview
Argyle is able to generate D1C reports when the required data is available from a user’s connected payroll accounts. This guide shows you how to monitor whether a D1C report can be generated for a user and, if so, how to generate a D1C report. Our webhooks can be used together to determine if a D1C report is ready to be generated through Argyle:- Subscribe to the
users.fully_syncedwebhook to be notified when data retrieval has completed for all accounts connected by a user. Use this webhook to determine if there are any payroll platforms or employer accounts missing that may contain data required to generate a D1C report. - Subscribe to the
reports.d1c_data_readywebhook to be notified when a D1C report can be generated from the available data for a user. - Subscribe to the
reports.d1c_data_incompletewebhook to be notified if a D1C report cannot be generated from the available data for a user.
reports.d1c_data_ready webhook, you can generate a D1C report by making a POST request to the /v1/du-validation/generate endpoint. See this section below for further details on retrieving a D1C report via this endpoint.
Subscribe to webhooks
users.fully_synced
The users.fully_synced webhook is publicly documented and can be viewed here.
Use this webhook to determine if there are any payroll platforms or employer accounts missing that may contain data required to generate a D1C report.
To subscribe, send a POST request in this form:
Example users.fully_synced response payload:
reports.d1c_data_ready
Subscribe to the reports.d1c_data_ready webhook to be notified when a D1C report can be generated from the available data for a user.
To subscribe, send a POST request in this form:
Example reports.d1c_data_ready response payload:
reports.d1c_data_incomplete
Subscribe to the reports.d1c_data_incomplete webhook to be notified if a D1C report cannot be generated from the available data for a user.
To subscribe, send a POST request in this form:
Example reports.d1c_data_incomplete response payload:
Endpoint — /v1/du-validation/generate
Once you receive thereports.d1c_data_ready webhook, you can generate a D1C report by making a POST request to the /v1/du-validation/generate endpoint.
For authentication, use your production api_key_id and api_key_secret found in Console.
D1C report — Request
To retrieve a D1C report, send a POST request in this form:/v1/du-validation/generate endpoint.
Required body parameters:
<UserId> - the unique ID of the user
<Identity> - the user’s social security number, which can be partially masked xxx-xx-1234 or unmasked 123-45-6789.
<TrackingKey> - a pass through field containing random uuid metadata that can be used for your internal tracking needs.
Example of body parameters in XML with values filled in:
D1C report — Response
After requesting a D1C report using the /v1/du-validation/generate endpoint, an XML response will be returned in the format prescribed by Fannie Mae, outlined formally in the below documents. The response contains:<GenerateReportResponse> - the outermost wrapper, which includes:
<IsValid>- boolean value indicating whether<ReissueResponse>contains the necessary data to conform to the D1C report requirements prescribed by Fannie Mae.<Status>- value indicating whether<ReissueResponse>can be generated. Possible values are valid, processing, or incomplete.<Error>- included when<IsValid>is false. Contains error details.<ReissueResponse>- the D1C report itself. It will contain the following items in the opening tag:- Identity - social security number of the user
- ReportID - report code that can be used in future communication with Fannie Mae
- Product - report type (VOE indicates Verification of Employment)
- TrackingKey - contains the uuid that you included in the body parameters of the request
- ServiceProviderCode - designated partner providing the D1C report
- OriginalTransactionDate - date the report was generated
- Status - error field. “0” indicates success. See the error codes section below for more information.
Example /v1/du-validation/generate response payload:
Endpoint — Error codes
Error codes can be found in the “Status” field in the<ReissueResponse> layer that is returned by the /v1/du-validation/generate endpoint. A “Status” value of “0” indicates a successful response has been generated.
Validation errors
- Status = “17357” (Argyle data validation)
- Status = “202” (report generation)
- Status = “400” (request payload validation)
/v1/du-validation/generate does not match the expected format.
- Status = “422” (identity validation)
/v1/du-validation/generate does not match the SSN for the user in Argyle. Use the /profiles endpoint to check the SSN for a user in Argyle.
System errors
- Status = “401” (auth failed)
/v1/du-validation/generate endpoint.
- Status = “500” (storage service failed)
PDF reports
When you generate a Verification of Income and Employment (VOIE) report using Console or the API, Argyle will automatically attempt to generate a D1C report from the user’s available data.Generate via Console
Generate a VOIE report through Console from within an individual user’s profile. If a D1C report was successfully generated from the user’s available data, a DU reference ID will be included in the upper-right of the VOIE report. This ID can be passed to Fannie Mae’s DUVS system.Generate via API
Generate a report using the/reports endpoint with a type value of voie-d1c.
- The response payload will include a
d1c_reportobject within metadata. - If a D1C report was successfully generated from the user’s available data, the
idfield within thed1c_reportobject will contain a DU reference ID that can be passed to Fannie Mae’s DUVS system.
Example voie-d1c report JSON payload:
-
data_incomplete— There is not sufficient data available for the user in order to generate a D1C report. -
processing— D1C report generation is still in progress.