Reports

Generate PDF summaries based on Argyle's data sets.

Before generating a report:

  • To ensure full data availability, we recommend subscribing to the users.fully_synced webhook, which is sent when all data has been retrieved from the user's connected accounts.
  • Depending on the data retrieval speed limits of the underlying payroll platform, it can take from a few seconds up to several minutes after a new account connection before enough data has been synced to generate a complete report.
    • Visit the data availability section of our API Guide for more information on the timing of data retrieval.

After generating a report:

  • A new report object is created. Its file_url property contains a link to the PDF report, and the accounts array lists which accounts were used to generate the report.
  • The PDF report will also appear and can be downloaded within Console.
  • You can retrieve the content of a PDF report in JSON format.

Example reports:

#The report object

Attributes
  • #
    idstring (uuid)

    Unique ID of the report object.

    Also the "Reference #" on the report PDF.

  • #
    userstring (uuid)

    ID of the user associated with the report.

  • #
    (Deprecated) reference_idstring (uuid)

    Report PDF identifier.

  • #
    generated_atstring (datetime)

    Timestamp (ISO 8601) when the report was generated.

  • #
    typestring (enum)

    The type of report.

  • #
    statusstring (enum)

    Progress of report generation.

  • #
    file_urlstring

    Download link to the report PDF.


    This static URL redirects to a download page that requires Argyle authentication headers. See the dropdown below for more information.

  • #
    last_synced_atstring (datetime)

    Timestamp (ISO 8601) when the account used to generate the report was last scanned for new data before the report was generated. If multiple accounts were used, the more recent timestamp.

    Used to populate the "Data as of" date on the report PDF.

  • #
    accountsarray of objects

    The accounts used to generate the report.

  • #
    idstring (uuid)

    ID of the account.

  • #
    itemstring

    ID of the Item in Link through which the account was connected.

  • #
    last_synced_atstring (datetime)

    Timestamp (ISO 8601) when the account was last scanned for new data before the report was generated.

  • #
    metadataobject

    Any metadata for internal use added when generating the report.

  • #
    external_idstring

    The external_id of the user, otherwise null.

Example
1{
2  "id": "43a2c6c3-1e63-91e5-88e3-f9ab2dcc489b",
3  "user": "018051aa-f7a9-a0db-2f38-6cfa325e9d69",
4  "reference_id": "VOIE815035bf",
5  "generated_at": "2023-03-09T16:22:06.081Z",
6  "type": "voie",
7  "status": "generated",
8  "file_url": "www.argyle.com/storagename",
9  "last_synced_at": "2023-03-09T14:08:25.069Z",
10  "accounts": [
11    {
12      "id": "0187c66e-e7e5-811c-b006-2232f00f426a",
13      "item": "item_123456789",
14      "last_synced_at": "2023-03-09T14:08:25.069105Z"
15    },
16    {
17      "id": "0185a8b8-60eb-80ca-7482-5f24504573f7",
18      "item": "item_000000001",
19      "last_synced_at": "2023-03-01T05:10:59.558295Z"
20    }
21  ],
22  "metadata": {},
23  "external_id": "July_Connection"
24}

#Generate a report

post/v2/reports

Generates a new report and returns a partial report object.

There is a daily limit of 10 reports per user to prevent excessive report generation due to accidental client-side errors.


If the daily report limit is reached, deleting a previously generated report from the same 24 hour period will allow another report to be generated.

Request body
  • #
    userstring (uuid)
    required

    ID of the user.

  • #
    typestring (enum)
    required

    The type of report to generate.

  • #
    metadataobject
    optional

    Information for internal use, structured as a JSON object.

Example Request
1curl --request POST \
2     --url https://api.argyle.com/v2/reports \
3     --header 'accept: application/json' \
4     --header 'content-type: application/json' \
5     --data '{
6        "user": "018051aa-f7a9-a0db-2f38-6cfa325e9d69",
7        "type": "voie"
8     }'
Example Response
1{
2  "id": "43a2c6c3-1e63-91e5-88e3-f9ab2dcc489b",
3  "user": "018051aa-f7a9-a0db-2f38-6cfa325e9d69",
4  "reference_id": "VOIE815035bf",
5  "generated_at": null,
6  "type": "voie",
7  "status": "generating",
8  "file_url": null,
9  "metadata": {}
10}

#Retrieve a report

get/v2/reports/{id}

Retrieves a report object.

Path parameters
  • #
    idstring (uuid)
    required

    ID of the report object to be retrieved.

Example Request
1curl --request GET \
2     --url https://api.argyle.com/v2/reports/{id} \
3     --header 'accept: application/json' \
4     --header 'content-type: application/json'
Example Response
1{
2  "id": "43a2c6c3-1e63-91e5-88e3-f9ab2dcc489b",
3  "user": "018051aa-f7a9-a0db-2f38-6cfa325e9d69",
4  "reference_id": "VOIE815035bf",
5  "generated_at": "2023-03-09T16:22:06.081Z",
6  "type": "voie",
7  "status": "generated",
8  "file_url": "www.argyle.com/storagename",
9  "last_synced_at": "2023-03-09T14:08:25.069Z",
10  "accounts": [
11    {
12      "id": "0187c66e-e7e5-811c-b006-2232f00f426a",
13      "item": "item_123456789",
14      "last_synced_at": "2023-03-09T14:08:25.069105Z"
15    },
16    {
17      "id": "0185a8b8-60eb-80ca-7482-5f24504573f7",
18      "item": "item_000000001",
19      "last_synced_at": "2023-03-01T05:10:59.558295Z"
20    }
21  ],
22  "metadata": {},
23  "external_id": "July_Connection"
24}

#Retrieve a report in JSON

get/v2/reports/{id}.json

Retrieves the content of a PDF report in JSON format.

  • Report JSONs become available once the report's status is generated
Path parameters
  • #
    id.jsonstring (uuid).json
    optional

    Append .json after the ID of the report object.



    Verification of Employment (VOE) Report:

    Image of Argyle's Verification of Employment (VOE) report.
Example Request
1curl --request GET \
2     --url https://api.argyle.com/v2/reports/{id}.json \
3     --header 'accept: application/json' \
4     --header 'content-type: application/json'
Example VOE Report JSON
1{
2  "type": "voe",
3  "report_id": "6c3fa756-2e76-43e1-55f6-e29fc6ae535d",
4  "user_id": "018051aa-f7a9-a0db-2f38-6cfa325e9d69",
5  "external_id": "March Connection",
6  "generated_at": "2023-03-26T09:19:08.916Z",
7  "last_synced_at": "2023-03-24T12:41:21.576Z",
8  "accounts": [
9    {
10      "account": "018728a3-afee-5288-8e8a-c68ceb591359",
11      "source": "Worknight",
12      "first_name": "Bob",
13      "last_name": "Jones",
14      "full_name": "Bob Jones",
15      "ssn": "522-09-1191",
16      "employer": "Whole Goods",
17      "employer_address": {
18        "city": "New York",
19        "country": "US",
20        "state": "NY",
21        "postal_code": "10014",
22        "line1": "852 North W St",
23        "line2": null
24      },
25      "status": "active",
26      "employment_type": "full-time",
27      "job_title": "Store Manager",
28      "original_hire_date": "2020-08-28",
29      "start_date": "2020-08-28",
30      "end_date": null,
31      "last_pay_period_end_date": "2023-03-22",
32      "last_paystub_date": "2023-03-24"
33    },
34    {
35      "account": "018728a2-2fe0-cdb4-9486-70b2fe9834f9",
36      "source": "Bullseye",
37      "first_name": "Bob",
38      "last_name": "Jones",
39      "full_name": "Bob Jones",
40      "ssn": "522-09-1191",
41      "employer": "Bullseye",
42      "employer_address": {
43        "city": "New York",
44        "country": "US",
45        "state": "NY",
46        "postal_code": "10014",
47        "line1": "119 Green Ridge",
48        "line2": null
49      },
50      "status": "active",
51      "employment_type": "part-time",
52      "job_title": "Clerk",
53      "original_hire_date": "2020-06-29",
54      "start_date": "2020-06-29",
55      "end_date": null,
56      "last_pay_period_end_date": "2023-02-23",
57      "last_paystub_date": "2023-02-24"
58    }
59  ]
60}

    Verification of Income and Employment (VOIE) Report:

    Image of Argyle's Verification of Employment (VOE) report.

Example VOIE Report JSON
1{
2  "type": "voie",
3  "report_id": "6da4c9a3-2e63-95e5-8be3-f9a52ddc489a",
4  "user_id": "018051aa-f7a9-a0db-2f38-6cfa325e9d69",
5  "external_id": "March Connection",
6  "generated_at": "2023-03-26T09:20:06.081Z",
7  "last_synced_at": "2023-03-24T12:41:25.069Z",
8  "accounts": [
9    {
10      "account": "018728a3-afee-5288-8e8a-c68ceb591359",
11      "source": "Worknight",
12      "first_name": "Bob",
13      "last_name": "Jones",
14      "full_name": "Bob Jones",
15      "birth_date": "1980-10-10",
16      "ssn": "522-09-1191",
17      "phone_number": "+18009000010",
18      "email": "[email protected]",
19      "employer": "Whole Goods",
20      "employee_address": {
21        "city": "New York",
22        "country": "US",
23        "state": "NY",
24        "postal_code": "10014",
25        "line1": "342 Fence Rd",
26        "line2": null
27      },
28      "employer_address": {
29        "city": "New York",
30        "country": "US",
31        "state": "NY",
32        "postal_code": "10014",
33        "line1": "852 North W St",
34        "line2": null
35      },
36      "status": "active",
37      "employment_type": "full-time",
38      "job_title": "Store Manager",
39      "original_hire_date": "2020-08-28",
40      "start_date": "2020-08-28",
41      "end_date": null,
42      "last_pay_period_end_date": "2023-03-22",
43      "last_paystub_date": "2023-03-24",
44      "base_pay": {
45        "amount": "75372.62",
46        "currency": "USD",
47        "period": "annual"
48      },
49      "pay_cycle": "monthly",
50      "income": [
51        {
52          "period": "2023",
53          "currency": "USD",
54          "employer": "Whole Goods",
55          "gross_pay": {
56            "total": 25124.2,
57            "base": 25124.2,
58            "overtime": 0,
59            "commission": 0,
60            "bonus": 0,
61            "other": 0
62          },
63          "reimbursements": 8.13,
64          "deductions": 816.53,
65          "taxes": 5715.75,
66          "fees": 0,
67          "net_pay": 18600.05
68        },
69        {
70          "period": "2022",
71          "currency": "USD",
72          "employer": "Whole Goods",
73          "gross_pay": {
74            "total": 82866.32,
75            "base": 81653.65,
76            "overtime": 0,
77            "commission": 881.09,
78            "bonus": 331.58,
79            "other": 0
80          },
81          "reimbursements": 4.35,
82          "deductions": 3266.12,
83          "taxes": 14948.85,
84          "fees": 0,
85          "net_pay": 64655.7
86        },
87        {
88          "period": "2021",
89          "currency": "USD",
90          "employer": "Whole Goods",
91          "gross_pay": {
92            "total": 87854.76,
93            "base": 81653.65,
94            "overtime": 5774.51,
95            "commission": 426.6,
96            "bonus": 0,
97            "other": 0
98          },
99          "reimbursements": 26.6,
100          "deductions": 3328.93,
101          "taxes": 16833.19,
102          "fees": 0,
103          "net_pay": 67719.24
104        }
105      ]
106    },
107    {
108      "account": "018728a2-2fe0-cdb4-9486-70b2fe9834f9",
109      "source": "Bullseye",
110      "first_name": "Bob",
111      "last_name": "Jones",
112      "full_name": "Bob Jones",
113      "birth_date": "1980-10-10",
114      "ssn": "522-09-1191",
115      "phone_number": "+18009000010",
116      "email": "[email protected]",
117      "employer": "Bullseye",
118      "employee_address": {
119        "city": "New York",
120        "country": "US",
121        "state": "NY",
122        "postal_code": "10014",
123        "line1": "342 Fence Rd",
124        "line2": null
125      },
126      "employer_address": {
127        "city": "New York",
128        "country": "US",
129        "state": "NY",
130        "postal_code": "10014",
131        "line1": "119 Green Ridge",
132        "line2": null
133      },
134      "status": "active",
135      "employment_type": "part-time",
136      "job_title": "Clerk",
137      "original_hire_date": "2020-06-29",
138      "start_date": "2020-06-29",
139      "end_date": null,
140      "last_pay_period_end_date": "2023-02-23",
141      "last_paystub_date": "2023-02-24",
142      "base_pay": {
143        "amount": "61030.57",
144        "currency": "USD",
145        "period": "annual"
146      },
147      "pay_cycle": "monthly",
148      "income": [
149        {
150          "period": "2023",
151          "currency": "USD",
152          "employer": "Bullseye",
153          "gross_pay": {
154            "total": 20848.92,
155            "base": 20343.52,
156            "overtime": 0,
157            "commission": 0,
158            "bonus": 505.4,
159            "other": 0
160          },
161          "reimbursements": 0,
162          "deductions": 915.48,
163          "taxes": 4475.58,
164          "fees": 0,
165          "net_pay": 15457.86
166        },
167        {
168          "period": "2022",
169          "currency": "USD",
170          "employer": "Bullseye",
171          "gross_pay": {
172            "total": 68070.08,
173            "base": 66116.44,
174            "overtime": 0,
175            "commission": 777.54,
176            "bonus": 1176.1,
177            "other": 0
178          },
179          "reimbursements": 18.4,
180          "deductions": 2034.4,
181          "taxes": 13274.18,
182          "fees": 0,
183          "net_pay": 52779.9
184        },
185        {
186          "period": "2021",
187          "currency": "USD",
188          "employer": "Bullseye",
189          "gross_pay": {
190            "total": 68378.52,
191            "base": 66116.44,
192            "overtime": 0,
193            "commission": 641.94,
194            "bonus": 1620.14,
195            "other": 0
196          },
197          "reimbursements": 20.27,
198          "deductions": 1881.82,
199          "taxes": 13731.92,
200          "fees": 0,
201          "net_pay": 52785.05
202        }
203      ]
204    }
205  ],
206  "income_totals": [
207    {
208      "period": "2023",
209      "period_total": {
210        "currency": "USD",
211        "gross_pay": {
212          "total": 45973.12,
213          "base": 45467.72,
214          "overtime": 0,
215          "commission": 0,
216          "bonus": 505.4,
217          "other": 0
218        },
219        "reimbursements": 8.13,
220        "deductions": 1732.01,
221        "taxes": 10191.33,
222        "fees": 0,
223        "net_pay": 34057.91
224      }
225    },
226    {
227      "period": "2022",
228      "period_total": {
229        "currency": "USD",
230        "gross_pay": {
231          "total": 150936.4,
232          "base": 147770.09,
233          "overtime": 0,
234          "commission": 1658.63,
235          "bonus": 1507.68,
236          "other": 0
237        },
238        "reimbursements": 22.75,
239        "deductions": 5300.52,
240        "taxes": 28223.03,
241        "fees": 0,
242        "net_pay": 117435.6
243      }
244    },
245    {
246      "period": "2021",
247      "period_total": {
248        "currency": "USD",
249        "gross_pay": {
250          "total": 156233.28,
251          "base": 147770.09,
252          "overtime": 5774.51,
253          "commission": 1068.54,
254          "bonus": 1620.14,
255          "other": 0
256        },
257        "reimbursements": 46.87,
258        "deductions": 5210.75,
259        "taxes": 30565.11,
260        "fees": 0,
261        "net_pay": 120504.29
262      }
263    }
264  ]
265}

#Delete a report

delete/v2/reports/{id}

Deletes a report object.

Path parameters
  • #
    idstring (uuid)
    required

    ID of the report object to be deleted.

Example Request
1curl --request DELETE \
2     --url https://api.argyle.com/v2/reports/{id} \
3     --header 'accept: application/json' \
4     --header 'content-type: application/json'
Example Response
1"204 status code: No content."

#List all reports

get/v2/reports

Returns an array of all report objects.

Query parameters
  • #
    userstring (uuid)
    optional

    Filter by user ID.

  • #
    limitinteger
    optional

    Number of report objects returned per page. Default: 10. Maximum: 200.

Example Request
1curl --request GET \
2     --url https://api.argyle.com/v2/reports?limit=2 \
3     --header 'accept: application/json' \
4     --header 'content-type: application/json'
Example Response
1[
2  {
3    "id": "5b3fa756-1d76-43e1-55f6-e29fc6ae535d",
4    "user": "018051aa-f7a9-a0db-2f38-6cfa325e9d69",
5    "reference_id": "VOE5a80a995",
6    "generated_at": "2023-03-01T22:45:08.916Z",
7    "type": "voe",
8    "status": "generated",
9    "file_url": "www.argyle.com/storagename",
10    "last_synced_at": "2023-03-01T19:20:21.576Z",
11    "accounts": [
12      {
13        "id": "018e6a25-130b-3b98-a3ca-1658cb3afc26",
14        "item": "item_987654321",
15        "last_synced_at": "2023-03-01T19:20:21.576363Z"
16      }
17    ],
18    "metadata": {},
19    "external_id": null
20  },
21  {
22    "id": "43a2c6c3-1e63-91e5-88e3-f9ab2dcc489b",
23    "user": "018051aa-f7a9-a0db-2f38-6cfa325e9d69",
24    "reference_id": "VOIE815035bf",
25    "generated_at": "2023-03-09T16:22:06.081Z",
26    "type": "voie",
27    "status": "generated",
28    "file_url": "www.argyle.com/storagename",
29    "last_synced_at": "2023-03-09T14:08:25.069Z",
30    "accounts": [
31      {
32        "id": "0187c66e-e7e5-811c-b006-2232f00f426a",
33        "item": "item_123456789",
34        "last_synced_at": "2023-03-09T14:08:25.069105Z"
35      },
36      {
37        "id": "0185a8b8-60eb-80ca-7482-5f24504573f7",
38        "item": "item_000000001",
39        "last_synced_at": "2023-03-01T05:10:59.558295Z"
40      }
41    ],
42    "metadata": {},
43    "external_id": "July_Connection"
44  }
45]

#List report availability

get/v2/reports/availability

Returns an array of all reports that can be generated for the specified user, which accounts will be used to generate each type of report, and the timestamp (ISO 8601) each account was last scanned for new data.

An empty accounts array means the report type cannot be generated.

Query parameters
  • #
    userstring (uuid)
    required

    ID of the user.

Example Request
1curl --request GET \
2     --url https://api.argyle.com/v2/reports/availability?user=0186c5b8-8fa1-67b3-39af-14b3e18da8a7 \
3     --header 'accept: application/json' \
4     --header 'content-type: application/json'
Example Response
1[
2  {
3    "voie": {
4      "accounts": [
5        {
6          "id": "0185a8b8-60eb-80ca-7482-5f24504573f7",
7          "last_synced_at": "2023-03-31T14:31:10.133Z"
8        },
9        {
10          "id": "01856c65-43b6-8b5d-b32a-56b8fbda5c28",
11          "last_synced_at": "2023-02-31T14:31:10.133Z"
12        }
13      ]
14    },
15    "voe": {
16      "accounts": [
17        {
18          "id": "0185a8b8-60eb-80ca-7482-5f24504573f7",
19          "last_synced_at": "2023-03-31T14:31:10.133Z"
20        },
21        {
22          "id": "01856c65-43b6-8b5d-b32a-56b8fbda5c28",
23          "last_synced_at": "2023-02-31T14:31:10.133Z"
24        }
25      ]
26    }
27  }
28]
Updating Argyle status...
© 2024 Argyle Systems Inc.argyle.com