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.
  • (Beta) 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.

  • #
    userstring (uuid)

    ID of the user associated with the report.

  • #
    reference_idstring (uuid)

    "Report ID" referenced on the report PDF.

  • #
    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

    15 minute download link to the report.

    A new URL can be obtained by retrieving the report by its id.

  • #
    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.

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

(Beta) Retrieves the content of a PDF report in JSON format.

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      "full_name": "Bob Jones",
12      "ssn": "522-09-1191",
13      "employer": "Whole Goods",
14      "employer_address": {
15        "city": "New York",
16        "country": "US",
17        "state": "NY",
18        "postal_code": "10014",
19        "line1": "852 North W St",
20        "line2": null
21      },
22      "status": "active",
23      "job_title": "Store Manager",
24      "start_date": "2020-08-28",
25      "end_date": null,
26      "last_pay_period_end_date": "2023-03-22",
27      "last_paystub_date": "2023-03-24"
28    },
29    {
30      "account": "018728a2-2fe0-cdb4-9486-70b2fe9834f9",
31      "full_name": "Bob Jones",
32      "ssn": "522-09-1191",
33      "employer": "Bullseye",
34      "employer_address": {
35        "city": "New York",
36        "country": "US",
37        "state": "NY",
38        "postal_code": "10014",
39        "line1": "119 Green Ridge",
40        "line2": null
41      },
42      "status": "active",
43      "job_title": "Clerk",
44      "start_date": "2020-06-29",
45      "end_date": null,
46      "last_pay_period_end_date": "2023-02-23",
47      "last_paystub_date": "2023-02-24"
48    }
49  ]
50}

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

#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