API Reference

The Argyle API is built on RESTful principles. It returns JSON encoded-responses and accepts JSON payloads. This data is only available through HTTPS to ensure the security of the data being transferred.

Argyle API operates in two separate environments: production and sandbox.

Sandbox returns mock data and is designed for testing the basic functionality of the API.

The production environment lets retrieve data from the real accounts connected via Argyle Link.

The Sandbox environment operates only with a set of sandbox credentials provided here and in the Argyle Console Emulator tab.

You can link the sandbox accounts through Argyle Console via the Emulator tab or through your own instance of Argyle Link. In order to connect the sandbox accounts via Argyle Link, you have to set the apiHost to point to the sandbox API endpoint. You can find more information on how to configure Link here.

Sandbox credentials
Bob
Sarah
Joe
Username
test1
Password
passgood
SMS code
8081
Phone number
(800) 900-0001
Driver’s licence
D1230001

Authentication

The Argyle API uses HTTP Basic Auth. One pair of credentials per client account is provided. Your client_id and client_secret can be retrieved via the Argyle Console.

The API should only be invoked from your own server-side applications in order to protect your credentials from being revealed on the client-side.

Errors

Argyle API uses standard HTTP error codes to indicate the success or failure of a request.

Pagination

All top-level API resources have support for bulk fetches via "list" API methods. For instance, you can list payouts, list documents, etc.

Each of the responses will have next and previous page URLs provided for easier querying of the next and previous results pages. You can use the limit attribute to define the number of results on a page.

Pagination Arguments

limit
integer
optional

The number of objects to be returned. The default value is 10. The maximum value is 200.

List Response Object

next
string

The URL to request the next page. The returned value will be null if this is the last page.

previous
string

The URL to request the previous page. The returned value will be null if this is the first page.

results
array of objects

An array containing the resources requested.

List data partners
1curl 'https://api.argyle.io/v1/link-items?limit=2'
Response
1{
2  "next": "http://api.argyle.io/v1/link-items?limit=2",
3  "previous": "http://api.argyle.io/v1/link-items?limit=2",
4  "results": [
5    {
6      "id": "amazon",
7      "name": "Amazon",
8      "type": "technology",
9      "kind": "emloyer"
10    },
11    {
12      "id": "workforcenow_platform",
13      "name": "ADP Workforce Now",
14      "type": "platform",
15      "kind": "platform"
16    }
17  ]
18}

Rate limits

The Argyle API employs a number of safeguards against bursts of incoming traffic to help maximize its stability. Users who send many requests in quick succession may see error responses that show up as status code 429 (Too Many Requests).

The Argyle API allows a rate of 50 RPS (requests per second).

Running a large volume of closely-spaced requests can lead to rate limiting. Often this can occur as part of an analytical or a migration operation.

Webhooks

Attributes

id
string uuid

Unique ID of the webhook.

is_active
boolean

Only active webhooks will receive webhook calls from Argyle.

events
array of strings

An array of Argyle's webhook event types (e.g., ["activities.added"]). Refer to the webhooks reference for a full list of available event types.

url
string

The endpoint that will be invoked when the specified event occurs.

config
object

Configuration options of the webhook. Refer to the webhooks reference to learn more about available configuration parameters.

name
string

An arbitrary name that will be sent back to your system in the webhook payload.

secret
string

The key that will be used to generate HMAC-SHA512 hex digest value in the X-Argyle-Signature header.

The webhook object
1{
2  "id": "580dca76-c024-4458-bb10-a2111ad4063e",
3  "created_at": "2019-11-27T15:54:59.440004Z",
4  "updated_at": "2019-11-27T15:54:59.440056Z",
5  "is_active": true,
6  "events": ["*"],
7  "name": "All webhooks",
8  "secret": null,
9  "url": "https://webhooks-backend.com/argyle",
10  "config": null
11}

Retrieve a webhook

Retrieves a webhook object with the supplied ID.

Endpoint

GET /webhooks/:id

Arguments

id
uuid
required

Identifier of the webhook object to be retrieved.

Returns

Returns a webhook object if a valid identifier was provided.

List webhooks

Endpoint

GET /webhooks

Arguments

limit
optional

The number of webhook objects to be returned. The default is 10. Max value is 200.

Returns

An object with a results property that contains an array of up to limit webhook objects.

Create a webhook

Creates a new webhook.

Endpoint

POST /webhooks

Arguments

events
array of strings
required

An array of Argyle webhook event types. Specify ['*'] to subscribe to all webhook events.

url
string
required

The endpoint that will be invoked when the specified event occurs.

config
object
optional

Configuration options of the webhook. Refer to the webhooks reference to learn more about available configuration parameters.

name
string
optional

An arbitrary name that will be sent back to your system in the webhook payload.

secret
string
optional

If provided, secret will be used as a key in the HMAC-SHA512 algorithm to generate a hex digest, which will then be included in the X-Argyle-Signature header in every webhook request to your system.

Returns

The webhook object created.

Delete a webhook

Removes a webhook and unsubscribes your system from the events in the deleted webhook.

Endpoint

DELETE /webhooks/:id

Arguments

id
uuid
required

ID of the webhook to be deleted.

Returns

An empty response body.

Link items

Link items are companies and platforms that a user can select in Argyle Link when they are connecting to their work account. The full list of Link items can be found here.

Link items were previously referred to as data partners, which have been deprecated.

Attributes

id
string

Unique ID of the Link item. A lot of the time (but not always) Link item IDs will be human-readable. For human-readable values, refer to the name attribute.

name
string

Name of the Link item (e.g., Walmart, Uber, Gusto).

type
string

Type of the Link item (e.g., delivery, retail, rideshare, services, technology).

kind
string

Type of the Link item (e.g. employer, gig, platform).

logo_url
string

A URL to the Link item logo. Authentication is required to access this field.

is_disabled
boolean

Will be true if the Link item is disabled. Link items are disabled if there is an issue with the underlying data provider.

has_two_fa
boolean

Will be true if the underlying data provider requires two-factor authorization to log in.

features.pay_distribution_update
object

Contains information about pay distribution update capabilities of a given Link item. Please refer to the Pay Distribution Guide for more information.

features.pay_distribution_update.supported
boolean

Denotes if the Link item supports pay distribution updates.

If false, the features fields will not be shown in the API response.

features.pay_distribution_update.max_allocations
integer

Denotes the maximum amount of allocations an account can have in the given Link item.

features.pay_distribution_update.percent_allocation
boolean

Denotes if the Link item allows setting percent allocations (e.g. 60% to one bank account and remained to another).

features.pay_distribution_update.percent_precision
integer
optional

Denotes the level of granularity of the pay distribution percentage. This way you can define the percentage of the pay distribution with up to the 4 decimal places.

Possible values: 100, 10, 1, 0.1, 0.01, 0.001, 0.0001.

features.pay_distribution_update.amount_allocation
boolean

Denotes if the Link item allows setting amount allocations (e.g. $500 to one bank account and remained to another).

features.pay_distribution_update.amount_precision
integer
optional

Denotes the level of granularity of the pay distribution amount. This way you can define the amount up to the cent level of detail - with 2 decimals.

Possible values: 100, 10, 1, 0.1, 0.01.

The Link item object
1{
2   "id":"walmart_store_club",
3   "name":"Walmart",
4   "type":"retail",
5   "kind":"employer",
6   "logo_url":"www.example.com/company-logo.png",
7   "is_disabled":false,
8   "has_two_fa":false,
9   "features":{
10      "pay_distribution_update":{
11         "supported":true,
12         "max_allocations":2,
13         "percent_allocation":true,
14         "percent_precision":"0.0001",
15         "amount_allocation":true,
16         "amount_precision":"0.01"
17      }
18   }
19} 

Retrieve a Link item

Retrieves a Link item object with the supplied ID.

Endpoint

GET /link-items/:id

Arguments

id
uuid
required

The identifier of the Link item to be retrieved.

Returns

Returns a Link item object if a valid identifier was provided.

List Link items

Lists all Link items supported by Argyle.

Endpoint

GET /link-items

Arguments

id
uuid
optional

Only return Link items with the provided IDs. Multiple IDs should be separated by commas.

name
optional

Only return Link items with the provided name. Only one name can be provided by using filtering by name. To filter multiple Link items, please use filtering by ID.

limit
optional

The number of Link item objects to be returned. The default is 10. Max value is 200.

features.pay_distribution_update.supported
boolean
optional

If set to true, the response will contain only Link items, which support pay distribution updates.

features.pay_distribution_update.max_allocations
integer
optional

Return Link items with the specified number of maximum allocations allowed.

features.pay_distribution_update.max_allocations.gt
integer
optional

Return Link items where the max_allocations field is greater than this value.

features.pay_distribution_update.max_allocations.gte
integer
optional

Return Link items where the max_allocations field is greater than or equal to this value.

features.pay_distribution_update.max_allocations.lt
integer
optional

Return Link items where the max_allocations field is less than this value.

features.pay_distribution_update.max_allocations.lte
integer
optional

Return Link items where the max_allocations field is less than or equal to this value.

features.pay_distribution_update.percent_allocation
boolean
optional

If set to true, the response will contain only Link items, which support percent allocations.

features.pay_distribution_update.amount_allocation
boolean
optional

If set to true, the response will contain only Link items, which support amount allocations.

kind
string
optional

The kind of Link items to be returned. A single value is accepted.

Possible values: employer, gig, platform.

kind.not_in
string
optional

The kinds of Link items to be omitted. A comma-separated list of kinds is accepted.

Possible values: employergigplatform.

Returns

An object with a results property that contains an array of Link item objects.

Search Link items

Search for Link items supported by Argyle.

Endpoint

GET /search/link-items

Arguments

q
string
optional

The name of the Link Item to be searched.

kind
string
optional

The kind of Link items to be returned. A single value is accepted.

Possible values: employer, gig, platform.

kind.not_in
string
optional

The kinds of Link items to be omitted. A comma-separated list of kinds is accepted.

Possible values: employer, gig, platform.

limit
integer

The number of Link items to be returned. The default is 15. Max value is 200.

Returns

An object with a results property that contains an array of Link item objects.

Users

User objects represent distinct users that have connected their work accounts via Argyle Link.

You can list all users or retrieve a user by ID that you have saved in your database when one of the Argyle Link callbacks was invoked.

Attributes

id
string uuid

Unique ID of the user.

created_at
string

Time at which the user was created. Timestamps follow the ISO 8601 standard.

employers_connected
array of strings

A list of names of employers that the user has connected to via Argyle Link. This list might be different from data_providers_connected, which can include payroll platforms (e.g. MyADP). The connections might be active or previously connected employers, which are no longer active (for example, due to a user switching jobs).

data_providers_connected
array of strings

A list of Link item IDs that the user has connected. The connections might be active or previously connected Link items, which are no longer active (for example, due to a user switching jobs).

external_metadata

You can set external metadata when creating or updating a user. This external metadata can be used to map users between Argyle and your own database. External metadata can be any valid JSON — e.g. a string or an object.

Endpoints
The user object
1{
2  "id": "0994b847-cc69-4d98-bc99-c5e65e762add",
3  "created_at": "2019-11-27T15:56:50.583233Z",
4  "employers_connected": [
5    "homedepot",
6    "uber"
7  ],
8  "data_providers_connected": [
9    "workday",
10    "uber"
11  ],
12  "external_metadata":"yjRqqS_WKa"
13}

Create a user

Create a new user. No payload is required for this request.

Endpoint

POST /users

Arguments

Returns

Returns the new user's id and an associated user token.

Response
1{
2    "id": "3b65c874-2183-4f5a-b50b-0ac01bc168b9",
3    "token": "..."
4}

Add metadata to a user

When creating a user, you can attach external metadata to that user. That metadata can also be updated with a PATCH request.

Endpoint

POST /users

Arguments

external_metadata
optional

External metadata can be any valid JSON — e.g. a string or an object.

Returns

Returns the new user's id and an associated user token.

Response
1{
2    "id": "3b65c874-2183-4f5a-b50b-0ac01bc168b9",
3    "token": "..."
4}

Update a user’s metadata

Update external metadata for an already existing user.

Endpoint

PATCH /users/:id

Arguments

id
string uuid
required

ID of the user, whose metadata should be updated.

external_metadata
optional

External metadata can be any valid JSON — e.g. a string or an object.

Returns

Returns the user object with the updated external metadata.

Response
1{
2    "created_at": "2021-03-09T12:09:13.510586Z",
3    "data_providers_connected": [],
4    "employers_connected": [],
5    "external_metadata": [
6        "meta",
7        "data"
8    ],
9    "id": "3b65c874-2183-4f5a-b50b-0ac01bc168b9"
10}

Retrieve a user

Retrieves a user object with the supplied ID.

Endpoint

GET /users/:id

Arguments

id
uuid
required

The identifier of the user to be retrieved.

Returns

Returns a user object if a valid identifier was provided.

List users

Lists all users that used the plugin configured with your plugin key.

Endpoint

GET /users

Arguments

limit
optional

The number of user objects to be returned. The default is 10. Max value is 200.

Returns

An object with a results property that contains an array of up to limit user objects.

Delete a user

Deletes a user and all accounts associated with that user. In turn, all other resources—profiles, vehicles, documents, etc.—are deleted as well.

Use this endpoint to delete all information about a user. If you want to delete a single account of a given user, please refer to the delete an account section.

Endpoint

DELETE /users/:id

Arguments

id
string uuid
required

ID of the user to be deleted.

Returns

On successful user deletion, responds with a 204 status and an empty response body.

User tokens

User tokens are temporary access keys that ensure Argyle Link user's permissions are scoped to the specified user's data.

User tokens are JWT tokens that contain an expiry date. Refer to the Argyle Link guide for more details.

Attributes

Endpoints

Create a token

To create a user token, send a POST request with the request body containing a JSON object with the following format: {"user": "user-id"}.

Endpoint

POST /user-tokens

Arguments

user
uuid
required

ID of the user to create a new token for.

Returns

The user token enclosed in a JSON object: {"access": "user-token"}.

Accounts

Account objects represent data partner accounts that your users connect to via Argyle Link.

You can query accounts by account ID or user ID that you might have obtained through one of the Argyle Link callbacks.

Accounts that have never successfully connected will be removed within 30 days.

Attributes

id
string uuid

Unique ID of the account.

user
string uuid

ID of the user associated with the account.

employers
array of strings

A list of names of all employers associated with this account. In most cases, this will return a single employer. However, sometimes the same payroll platform account (e.g., MyADP) is associated with more than one employer.

link_item
string

ID of the Link item (i.e. company or platform), that the user selected when connecting their account via Argyle Link. This value will oftentimes be human-readable.

link_item supersedes the now deprecated data_partner field.

source
string

Denotes the source of the account's employment records provided in the Argyle API. Source value will be the same as link_item when a company has an in-house solution for managing employment data:

link_item="uber"

source="uber"

Or it can be different when a company is utilizing a third-party payroll platform:

link_item="homedepot"

source="workday"

created_at
string

Time at which the account was connected. Timestamps follow the ISO 8601 standard.

updated_at
string

Time at which the account was updated. Timestamps follow the ISO 8601 standard.

connection.status
string

Represents the status of the link between Argyle and the work platform. Possible values:

connecting – a connection to the Link item is being established. This status only occurs when a user submits their credentials through Argyle Link for a new account or for an existing account.

connected – account is linked with the Link item. Please note, that this does not mean the data pull has finished. Use the availability field to check if data has been synced.

error – account is not linked to the Link item. Argyle is not able to pull data for the account. See connection.error_code below for details.

connection.error_code
string

Provides information on why the connection failed when connection.status is error.

Possible values: account_disabled, account_inaccessible, account_incomplete, auth_required, expired_credentials, invalid_account_type, invalid_auth, invalid_credentials, invalid_mfa, mfa_timeout, service_unavailable, system_error, tos_required, unsupported_auth_type, unsupported_mfa_method.

Each error_code has a corresponding error_message (see below).

connection.error_message
string

Provides additional information on why the connection error occurred. Each error_message corresponds to a particular error_code (see above). The list below is formatted as:

error_code - error_message

Possible values:

account_disabled - this user's employment account appears to be suspended or disabled.

account_inaccessible - this user's account is not currently accessible. Our team has been notified and is investigating.

account_incomplete - this user's employment account is not yet active.

auth_required - this user's connection has expired and requires re-authentication.

expired_credentials - this user provided credentials which are out of date (i.e., a password reset is required).

invalid_account_type - this user provided credentials for the wrong account type (e.g., a passenger account rather than a driver account, or an admin account rather than an employee account).

invalid_auth - this user's account login was unsuccessful, either due to invalid credentials or unsuccessful multi-factor authentication.

invalid_credentials - this user provided invalid credentials.

invalid_mfa - this user did not provide the correct multi-factor authentication response.

mfa_timeout - this user did not complete multi-factor authentication.

service_unavailable - the platform this user is attempting to connect to is currently unavailable. See the Coverage page in Console for additional information.

system_error - Argyle encountered a problem connecting to this account. Our team has been notified and is investigating.

tos_required - this user has not accepted the Terms of Service presented by their payroll provider, preventing access to their employment account.

unsupported_auth_type - this user tried to log in using single sign-on (e.g., Google, Facebook), which Argyle does not currently support.

unsupported_mfa_method - this user's employment account uses a multi-factor authentication method that Argyle does not currently support.

connection.updated_at
string

Timestamp denoting the last time connection status was updated. Timestamps follow the ISO 8601 standard.

pay_distribution.status
string

Denotes the point in the process of the pay distribution update process. Possible values:

idle - pay distribution update process has not been initiated.

awaiting_confirmation - waiting for the user to confirm updated pay distribution.

awaiting_connection - waiting to establish connection to the user's employment account.

scanning - scanning existing pay allocations prior to update process.

updating - updating the user's pay distribution.

success - pay distribution update successful.

error – pay distribution update unsuccessful. See the pay_distribution.error_code below for details.

pay_distribution.error_code
string

Provides information on why the pay distribution update was unsuccessful when pay_distribution.status is error.

Possible values: confirmation_timeout, incompatible_config, invalid_mfa, mfa_timeout, missing_allocation_type, not_supported, not_supported_by_employer, rejected_bank_account, rejected_routing_number, system_error, unsupported_mfa_method, unusable_bank_account, waiting_period.

Each error_code has a corresponding error_message (see below).

pay_distribution.error_message
string

Provides additional information on why the pay distribution update error occurred. Each error_message corresponds to a particular error_code (see above). The list below is formatted as:

error_code - error_message

Possible values:

confirmation_timeout - this user did not finish setting up their new pay distribution.

incompatible_config - the pay allocation details that have been submitted are not supported by this user's employment account.

invalid_mfa - this user did not provide the correct multi-factor authentication response.

mfa_timeout - this user did not complete multi-factor authentication.

missing_allocation_type - one or more of this account's pay allocations is missing a type (percent/amount/remainder), causing Argyle to be unable to update the user's pay distribution information.

not_supported - this user's employment account does not support updating pay distribution information.

not_supported_by_employer - this user's employment account does not support changes to pay distribution information. This may be because the employer has disabled users from editing this information.

rejected_bank_account - the provided bank account cannot be used for pay distribution update. Please provide a different bank account.

rejected_routing_number - the provided routing number is considered invalid by this user's employment account.

system_error - Argyle encountered a problem when reading or updating pay distribution information. Our team has been notified and is investigating..

unsupported_bank_accounts - this user's employment account includes pay allocations to bank account types that Argyle does not yet support, like HSAs.

unsupported_mfa_method - this user's employment account uses a multi-factor authentication method that Argyle does not currently support.

waiting_period - pay distribution update is temporarily unavailable. This can happen when an employer requires a waiting period after recent pay distribution updates or after initial account creation.

pay_distribution.updated_at
string

Timestamp denoting the last time pay distribution was updated. Timestamps follow the ISO 8601 standard.

availability
object

The availability object shows the synchronization status and the updated_at fields for each data resource (e.g., documents, vehicles, payouts, etc.) within the account. Event data resources (e.g. payouts, activities) have additional information pertaining to event count and availability timeframe.

pay_allocations availability will only be present if your Argyle account pay distribution updating enabled. Additionally, if pay distribution updating is enabled, but the pay allocation resource is not available within the Link item platform, then pay_allocations will be null.

For more information on data synchronization, please refer to the Gradual Data Delivery section in the Data Structure Guide.

availability.status
string

Denotes the status of the data scan. Possible values:

in_progress - data pull (initial or periodic) is in progress.

synced - data is synced as of the time indicated in the updated_at field.

sync_failed - data pull failed. Please refer to connection.error_code to troubleshoot potential problems.

availability.updated_at
string

Timestamp of the last data scan. Timestamps follow the ISO 8601 standard.

availability.available_count
string

The number of available events (e.g. activities, payouts).

During the first scan of an account, the value of this field will change with each scanning iteration until the availability.status becomes synced.

availability.available_to
string

Denotes the end point of the time interval, for which the events (e.g. activities, payouts) are available. Timestamps follow the ISO 8601 standard.

During the first scan of an account, the value of this field will change with each scanning iteration until the availability.status becomes synced.

availability.available_from
string

Denotes the start point of the time interval, for which the events (e.g. activities, payouts) are available. Timestamps follow the ISO 8601 standard.

During the first scan of an account, the value of this field will change with each scanning iteration until the availability.status becomes synced.

Deprecated

status
string

status is deprecated in favor of connection.status.

error_code
string

error_code is deprecated in favor of connection.error_code.

data_partner
string

data_partner is deprecated in favor of link_item.

The account object
1{
2  "id": "ac81e2bc-2157-4535-8ca4-fb1f068df1fc",
3  "user": "53fe928d-9c6a-460b-b5ac-19d67304d106",
4  "employers": [
5    "homedepot"
6  ],
7  "link_item": "homedepot",
8  "source": "workday",
9  "created_at": "2019-11-27T15:55:56.771322Z",
10  "updated_at": "2019-11-29T08:37:42.164522Z",
11  "connection": {
12    "status": "connected",
13    "error_code": null,
14    "error_message": null,
15    "updated_at": "2019-11-29T08:37:42.112859"
16  },
17  "pay_distribution": {
18    "status": "success",
19    "error": null,
20    "error_message": null,
21    "updated_at": "2019-11-29T08:37:42.164522Z"
22  },
23  "availability": {
24    "profiles": {
25      "status": "synced",
26      "updated_at": "2019-11-29T08:37:42.164522Z"
27    },
28    "employments": {
29      "status": "synced",
30      "updated_at": "2019-11-29T08:37:42.164522Z"
31    },
32    "finances": {
33      "status": "synced",
34      "updated_at": "2019-11-29T08:37:42.164522Z"
35    },
36    "reputations": {
37      "status": "synced",
38      "updated_at": "2019-11-29T08:37:42.164522Z"
39    },
40    "documents": {
41      "status": "synced",
42      "updated_at": "2019-11-29T08:37:42.164522Z"
43    },
44    "vehicles": {
45      "status": "synced",
46      "updated_at": "2019-11-29T08:37:42.164522Z"
47    },
48    "pay_allocations": {
49      "status": "synced",
50      "updated_at": "2019-11-29T08:37:42.164522Z"
51    },
52    "payouts": {
53      "status": "synced",
54      "updated_at": "2019-11-29T08:37:42.164522Z",
55      "available_count": 3,
56      "available_from": "2019-10-30T00:00:00Z",
57      "available_to": "2018-11-27T00:00:00Z"
58    },
59    "activities": {
60      "status": "synced",
61      "updated_at": "2019-11-29T08:37:42.164522Z",
62      "available_count": 146,
63      "available_to": "2019-11-29T08:37:42.164522Z",
64      "available_from": "2018-12-15T20:40:50.399677Z"
65
66    }
67  }
68}

Retrieve an account

Retrieve an account object with the supplied ID.

Endpoint

GET /accounts/:id

Arguments

id
string uuid
required

The identifier of the account to be retrieved

Returns

Returns an account object if a valid identifier was provided.

List accounts

List all accounts that your customers have connected through Argyle.

Endpoint

GET /accounts

Arguments

data_partner
uuid
optional

Only return accounts for the data partner with the provided ID.

user
uuid
optional

Only return accounts for the user with the provided ID.

limit
optional

The number of account objects to be returned. The default is 10. Max value is 200.

Returns

An object with a results property that contains an array of up to limit account objects.

Delete an account

Deletes an account and all resources associated with that account: profiles, vehicles, documents, incomes etc.

Endpoint

DELETE /accounts/:id

Arguments

id
string uuid
required

ID of the account to be deleted.

Returns

On successful account deletion, responds with a 204 status and an empty response body.

User invites

User invites represent the invitations sent to a user's email or phone. You can customize parts of the text message, email, and landing page by utilizing the /user-invite-templates endpoint.

Attributes

id
string uuid

A unique ID for the invite.

user
string uuid

The user ID associated with this invite. It is available only when a user has accepted the invite and successfully connected via Argyle Link.

accepted_invitation
boolean

Denotes whether the invite has been accepted by connecting via Argyle Link and status becomes connected.

Possible values: true, false.

user_token
string uuid

A unique token generated by Argyle Link. Only available when a user has attempted to connect via Argyle Link. Used to restore the session if a user comes back for a second time to update their information.

full_name
string

The full name of the user.

email
string

The email address which received the invite.

phone_number
string

The phone number which received the invite.

invited_at
string

Denotes the time when the invitation was sent out. This field is updated if you resend an invite.

invite_template_id
string uuid

ID of the user invite template that was used to send the invite.

status
string

The status of the invitation.

Possible values: connected, invited, revoked.

revoked_at
string

Denotes when the invite was revoked.

The user invite object
1    {
2      "id": "317e7736-7761-11eb-b642-238b63a89ff2",
3      "user": "8a5f613a-673a-4434-aeee-1a38b960b936",
4      "accepted_invitation": true,
5      "user_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNjE2ODQ3MzA1LCJqdGkiOiI1NzA2ZjM5MTEzMzk0ZDM1YTA5MWVjYzgxNjc3NjdjNCIsInVzZXJfaWQiOiI4YTVmNjEzYS02NzNhLTQ0MzQtYWVlZS0xYTM4Yjk2MGI5MzYiLCJjbGllbnRfaWQiOiJjMDIwYjNjMy0zY2Q5LTRmY2YtYjg1OC0xMzlkZWU2NmU2ZjMifQ.9CzhA-Gx9QqBManrogEbgHuKduVWvtC9OGxDe_RTgl8",
6      "email": "[email protected]",
7      "phone_number": "+12025550104",
8      "full_name": "John Smith",
9      "invited_at": "2021-02-25T12:01:29.083Z",
10      "invite_template_id": "315e0d98-7761-11eb-b642-c7dfaaf3c8cf",
11      "revoked_at": null,
12      "status": "connected"
13    }

Send an invite

Sends out an invite to a user's email and/or phone. If both email and phone_number are provided, then both an email and a text message will be sent. If only one of them is provided, then only the corresponding action will be executed.

Endpoint

POST /user-invites

Arguments

invite_template_id
required

ID of the user invite template that should be used to send the invite.

full_name
string
required

The full name of the user.

phone_number
string
optional

The phone number of the user. Optional, but at least one of email and phone_number is required.

email
string
optional

The email address of the user. Optional, but at least one of email and phone_number is required.

link_config.link_items
string

Use this parameter to limit the number of Link items that your users can connect to. Provide an array of Link item IDs you want Argyle Link to display in the company selection screen. The order in which you list the IDs will define the order in which they are displayed in the UI.

If you provide a single Link item ID, the company selection screen will be skipped and the user will be navigated directly to the Link item login screen.

link_config.pay_distribution_items_only
boolean
optional

When set to true, only Link items that support pay distribution will be shown. For more information on changing pay distributions, please refer to the Pay Distribution Guide.

If a payDistributionConfig is provided, then only the Link items that match the parameters in the config will be shown. For example, if the payDistributionConfig allows only amount allocations and a Link item supports percent allocations only, then that Link item will not be shown.

If no payDistributionConfig is provided then all Link items that have some pay distribution support (amount and/or percent) will be shown.

The default value is false.

pds_config
optional

Allows you to configure your pay distribution. See all attributes available in the Pay Distribution configuration section.

Returns

Returns the user invite object with status = invited.

Send and invite request example
1{
2    "full_name": "John Smith",
3    "invite_template_id": "315e0d98-7761-11eb-b642-c7dfaaf3c8cf",
4    "email": "[email protected]",
5    "phone_number": "+11234567890",
6    "link_config": {
7        "link_items": ['starbucks'],
8        "pay_distribution_items_only": false
9    },
10    "pds_config": {
11      "bank_account": {
12        "bank_name": "New Bank",
13        "routing_number": "084101234",
14        "account_number": "9483746361234",
15        "account_type": "checking"
16      },
17      "percent_allocation": {
18         "value": "20"
19      }
20    }
21}

Resend an invite

Resends a previously sent-out invite.

Endpoint

POST /user-invites/:id

Arguments

id
string uuid
required

ID of the invite to be resent.

Returns

Returns the user invite object with status = invited and an updated invited_at time.

Revoke an invite

Invalidates a previously sent-out invite.

Endpoint

POST /user-invites/:id/revoke

Arguments

id
string uuid
required

ID of the invite to be revoked.

Returns

Returns the user invite object with status = revoked and a revoked_at time.

Retrieve an invite

Retrieves a user invite object with the supplied ID.

Endpoint

GET /user-invites/:id

Arguments

id
string uuid
required

The identifier of the user invite to be retrieved.

Returns

Returns a user invite object if a valid identifier was provided.

List invites

Returns the list of all sent-out invites.

Endpoint

GET /user-invites

Arguments

limit
optional

The number of user invite objects to be returned. The default is 10. Max value is 200.

Returns

An object with a results property that contains an array of up to limit user invite objects.

User invite templates

When using the /user-invites endpoint, the invite template allows you to customize the following elements:

  • the email and/or text message a user receives.
  • the landing page where the user lands after clicking the provided URL.
  • the success message that is shown after the user has successfully connected the account when utilizing.

Attributes

id
string uuid

A unique ID for the template.

name
string

The name of the template.

company
string

Your company/brand name that is shown to users in the invite.

logo_url
string

A link to the logo to be used in the invitation email. Logo dimensions: 120x120.

sms_body
string

The text message content to be sent as part of the invitation.

sender
string

The "From" field of the invitation email.

subject
string

The email subject of the invitation email.

header
string

The title header of the invitation email.

email_body
string

The text content of the email that to be sent as part of the invitation.

button
string

The call-to-action button label within the email.

page_heading
string

The heading 1 of the landing page.

page_description
string

The text content of the landing page.

page_button
string

The call-to-action button label on the landing page to initiate Argyle Link.

page_config.page_success_heading
string
required

The heading 1 of the success page.

page_config.page_success_description
string
required

The text content of the success page.

page_config.page_success_show_button
boolean
required

Denotes if the action button on the success page is shown.

If true, the page_success_button is required.

page_config.page_success_button
string

The call-to-action button label on the success page.

It is required when page_success_show_button = true.

The user invite template object
1{
2  "id": "9f82994c-774d-11eb-b1c7-13e87316bacb",
3  "name": "regular",
4  "company": "GoodLoans",
5  "logo_url": "https://company.com/logo.jpg",
6  "sms_body": "[Company] has asked you to connect your employment account. Get started here: [Link]",
7  "sender": "[Company]",
8  "subject": "Connect Your Employment Account",
9  "header": "[Company] is requesting you to connect your employment account",
10  "email_body": "Hi, [Name]\n\n[Company] is working with a 3rd party to verify your work history. It’s a quick process that should not take longer than a few minutes to complete. Get started by clicking the link below.\n\nSincerely,\n[Sender]",
11  "button": "Connect your employment account",
12  "page_heading": "Let's connect your employment account",
13  "page_description": "[Company] has asked you to connect your employment account to use their services.",
14  "page_button": "Connect Account",
15  "page_config": {
16    "page_success_heading": "Thank you for connecting your accounts",
17    "page_success_description": "You are all set. If you have any questions please reach out to [Company]",
18    "page_success_button": "Connect Account",
19	"page_success_show_button": true
20  }
21}

Create a template

Creates a new invite template with the provided attributes.

The following placeholders can be used in the text contents. They will be replaced by the following values:

  • [Company] - corresponds to the company attribute in the user invite template object.
  • [Name] - corresponds to the full_name attribute in the user invite object.
  • [Link]- shortened link to accept the invitation.
  • [Sender]- corresponds to the sender attribute in the user invite template object.

Endpoint

POST /user-invite-templates

Arguments

name
string
required

The name of the template.The text content of the email that to be sent as part of the invitation.

email_body
string
required

The text content of the email that to be sent as part of the invitation.

sms_body
string
required

The text message content to be sent as part of the invitation.

header
string
required

The title header of the invitation email.

button
string
required

The call-to-action button label within the email.

subject
string
required

The email subject of the invitation email.

sender
string
required

The "From" field of the invitation email.

company
string
required

The company name to be displayed when using the [Sender] placeholder.

logo_url
string
required

A link to the logo to be used in the invitation email.

page_heading
string
required

The heading 1 of the landing page.

page_description
string
required

The text content of the landing page.

page_button
string
required

The call-to-action button label on the landing page to initiate Argyle Link.

page_config.page_success_heading
string
required

The heading 1 of the success page.

page_config.page_success_description
string
required

The text content of the success page.

page_config.page_success_show_button
boolean
required

Denotes if the action button on the success page is shown.

If true, the page_success_button is required.

page_config.page_success_button
string

The call-to-action button label on the success page.

It is required when page_success_show_button = true.

Returns

The response will show all your provided template attributes and a unique template ID.

Retrieve a template

Retrieves a user invite template object with the supplied ID.

Endpoint

GET /user-invite-templates/:id

Arguments

id
uuid
required

The identifier of the user invite template to be retrieved.

Returns

Returns a user invite template object if a valid identifier was provided.

List templates

Returns the list of existing templates.

Endpoint

GET /user-invite-templates

Arguments

limit
optional

The number of user invite template objects to be returned. The default is 10. Max value is 200.

Returns

An object with a results property that contains an array of up to limit user invite template objects.

Delete a template

Deletes a user invite template.

Endpoint

DELETE /user-invite-templates/:id

Arguments

id
uuid
required

ID of the user invite template to be deleted.

Returns

On successful user invite template deletion, responds with a 204 status and an empty response body.

Profiles

Profile objects contain information related to the identity of the user: name, address, contact details, etc. The data in a profile is tied to a particular data partner account that the user has connected to via Argyle Link.

Attributes

id
string uuid

Unique ID of the profile associated with a user's data partner account.

account
string uuid

ID of the account associated with the profile.

employer
string

The name of the company or entity that employs the user.

first_name
string

The legal first name of the user.

last_name
string

The legal last name of the user.

full_name
string

The full legal name of the user.

email
string

Email address.

phone_number
string

Phone number. Value is returned in the E.164 international phone number format.

birth_date
string

Date of birth. Timestamps follow the ISO 8601 standard.

In some rare cases, the Link item platform will obfuscate the birth year and the returned value will be formatted with having a dash instead of the year number: --01-20.

picture_url
string

Profile picture of the user (if available from the data partner). The value will be a URL pointing to the internal storage where the image is held.

address.line1
string

Address line 1 (e.g., street, PO Box, or company name).

address.line2
string

Address line 2 (e.g., apartment, suite, unit, or building).

address.city
string

City, district, suburb, town, or village.

address.state
string

State, county, province, or region.

address.postal_code
string

ZIP or postal code.

address.country
string

Two-letter country code returned in the ISO 3166-1 alpha-2 format.

ssn
string

Social Security Number.

marital_status
string

Marital status of the user.

gender
string

Gender of the user.

metadata
string

Metadata holds additional available, often unstructured, information about this data resource.

Deprecated

employment_status
string

Deprecated in favor of employments.status.

Status of employment.

Possible values: active, terminated.

employment_type
string

Deprecated in favor of employments.type.

Type of employment (e.g., part-time, full-time, hourly, salary, contractor).

job_title
string

Deprecated in favor of employments.job_title.

The current job title of the user. The value will usually be a free-form text returned from the data partner (e.g., sales associate, driver).

platform_user_id
string

Deprecated in favor of employments.platform_user_id.

ID from the data partner platform.

hire_dates
array of strings

Deprecated in favor of employments.hire_datetime.

An array of dates when the user was hired with respect to this particular profile. Timestamps follow the ISO 8601 standard.

terminations
array of objects

Deprecated in favor of employments.termination_datetime and employments.termination_reason.

List of all termination events of a user with respect to this particular profile.

terminations[].date
string

Deprecated in favor of employments.termination_datetime.

Date of the termination event. Timestamps follow the ISO 8601 standard.

terminations[].reason
string

Deprecated in favor of employments.termination_reason.

Reason for the termination event. Free-form text entry provided by the data partner.

Endpoints
The profile object
1{
2   "id":"47b216e2-d334-4235-bc1e-185d15ab18d0",
3   "account":"010db8b4-a724-47fc-a17e-733b656312a2",
4   "employer":"walmart",
5   "created_at":"2019-11-29T09:00:16.384575Z",
6   "updated_at":"2019-11-29T09:00:16.384624Z",
7   "first_name":"John",
8   "last_name":"Smith",
9   "full_name":"John Smith",
10   "email":"[email protected]",
11   "phone_number":"+11234567890",
12   "birth_date":"1990-04-28",
13   "picture_url":"https://profile.picture.com/picture.jpeg",
14   "address":{
15      "line1":"4 Jackson St",
16      "line2":"Apt C",
17      "city":"Norton",
18      "state":"MA",
19      "postal_code":"27660",
20      "country":"US"
21   },
22   "ssn":"***-**-**15",
23   "marital_status":"married",
24   "gender":"male",
25   "metadata":{}
26}

Retrieve a profile

Retrieves the profile object with the supplied ID.

Endpoint

GET /profiles/:id

Arguments

id
uuid
required

The identifier of the profile to be retrieved.

Returns

Returns a profile object if a valid identifier was provided.

List profiles

Lists profile objects.

Endpoint

GET /profiles

Arguments

account
uuid
optional

Only return the profile for the account with the provided ID.

user
uuid
optional

Only return profiles for the user with the provided ID.

limit
integer
optional

The number of profile objects to be returned. The default is 10. Max value is 200.

Returns

An object with a results property that contains an array of up to limit profile objects.

Employments

Employment objects contain information related to the employment information of the user: employment status and type, hire and termination dates, etc. The data in an employment object is tied to a particular data partner account that the user has connected to via Argyle Link.

Attributes

id
string uuid

Unique ID of the employment object associated with a user's data partner account.

account
string uuid

ID of the account associated with the employment object.

employer
string

The name of the company or entity that employs the user.

status
string

Status of employment.

Possible values: active, inactive, terminated.

type
string

Type of employment.

Possible values: full-time, part-time, contractor, seasonal, temporary, other.

job_title
string

The current job title of the user. The value will usually be a free-form text returned from the data partner (e.g., sales associate, driver).

hire_datetime
string datetime

The date when the user was hired by the employer. Timestamps follow the ISO 8601 standard.

termination_datetime
string datetime

The date when the user's employment was terminated by the employer. Timestamps follow the ISO 8601 standard.

termination_reason
string

Reason for the termination event. Free-form text entry provided by the employer or data partner.

base_pay.amount
string

The initial salary paid to a user, not including any benefits, bonuses, or raises.

base_pay.period
string

The unit of time base_pay.amount corresponds to. biweekly occurs every two weeks while semimonthly occurs twice a month.

Possible values: hourly, weekly, biweekly, semimonthly, monthly, annual.

base_pay.currency
string

A user's base pay currency. Currencies follow the ISO 4217 format.

pay_cycle
string

The frequency at which the user gets paid. biweekly occurs every two weeks while semimonthly occurs twice a month.

Possible values: weekly, biweekly, semimonthly, monthly, quarterly.

platform_ids.employee_id
string

A unique ID assigned to a user by an employer.

platform_ids.position_id
string

A unique ID assigned to a position by an employer.

platform_ids.platform_user_id
string

A unique ID assigned to a user by a payroll platform.

metadata
string

Metadata holds additional available, often unstructured, information about this data resource.

platform_user_id
string

Deprecated in favor of platform_ids.platform_user_id.

A unique ID assigned to a user by a payroll platform.

The employment object
1{
2   "id":"857b4aad-1a55-4200-84f7-311cd3dc3432",
3   "account":"021a1749-6973-4e47-a82a-307008ca88cc",
4   "employer":"walmart",
5   "created_at":"2020-10-27T17:29:08.724441Z",
6   "updated_at":"2020-10-27T17:29:08.724520Z",
7   "status":"active",
8   "type":"part-time",
9   "job_title":"cashier",
10   "hire_datetime":"2018-10-27T17:29:08.724441Z",
11   "termination_datetime":null,
12   "termination_reason":null,
13   "base_pay":{
14      "amount":36400,
15      "period":"annual",
16      "currency":"USD"
17   },
18   "pay_cycle":"monthly",
19   "platform_ids":{
20      "employee_id":"47FJ06ON8",
21      "position_id":"INA609028",
22      "platform_user_id":"H3WTY0FHMQ24ERDN"
23   },
24   "metadata":{}
25}

Retrieve an employment

Retrieves the employment object with the supplied ID.

Endpoint

GET /employments/:id

Arguments

id
uuid
required

The identifier of the employment to be retrieved.

Returns

Returns an employment object if a valid identifier was provided.

List employments

Lists employment objects.

Endpoint

GET /employments

Arguments

account
uuid
optional

Only return the employment for the account with the provided ID.

user
uuid
optional

Only return employments for the user with the provided ID.

limit
integer
optional

The number of employment objects to be returned. The default is 10. Max value is 200.

Returns

An object with a results property that contains an array of up to limit employment objects.

Payouts

Payout objects contain aggregate payouts data.

Attributes

id
string uuid

Unique ID of the payout associated with a user's data partner account.

account
string

ID of the account associated with the payout.

document_id
string uuid

A unique ID of a document (e.g. paystub) associated with the payout.

employer
string

The name of the company or entity that employs the user.

status
string

The status of the payout execution.

Possible values: completed, scheduled, cancelled.

type
string

Payout type.

Possible values: direct_deposit , paper_check, money_network, pay_card, other.

Some companies or platforms do not support the type attribute, in which case a null value will be returned.

payout_date
string

Timestamp representing the payout execution date. Timestamps follow the ISO 8601 standard.

payout_period.start_date
string

The start date of the work period for which the payout was executed. Timestamps follow the ISO 8601 standard.

payout_period.end_date
string

The end date of the work period for which the payout was executed. Timestamps follow the ISO 8601 standard.

currency
string

Currency of the payout (e.g., EUR, USD). Currencies follow the ISO 4217 format.

gross_pay
string

The amount received by the worker before any taxes or deductions are taken out.

reimbursements
string decimal

Compensation to the user for paying for work-related expenses by using personal money.

deductions
string

Deductions are benefits, like health insurance or retirement plans, that are taken out from gross pay. The deductions amount does not include taxes.

deduction_list
object

Provides a breakdown of the deductions for the given payout. Please note that not all payroll platforms provide this breakdown and thus the sum of deduction_list.amount fields might not add up to the number in the deductions field.

deduction_list.name
string

The name of the deduction as shown in the payout (e.g. Dental, Vision, Roth).

deduction_list.amount
string

The amount of the deduction.

deduction_list.tax_classification
string

The tax classification of the deduction.

Possible values: pre_tax, post_tax.

taxes
string decimal

The amount of taxes that are withheld from the user's gross pay.

tax_list
object

Provides a breakdown of the taxes for the given payout. Please note that not all payroll platforms provide this breakdown and thus the sum of tax_list.amount fields might not add up to the number in the taxes field.

tax_list.name
string

The name of the tax as shown in the payout (e.g. Federal Withholding, Social Security Tax, Medicare).

tax_list.type
string

The type of the tax.

Possible values: federal, state, local, fica, other.

tax_list.amount
string

The amount of the tax.

fees
string

The fee associated with receiving the payout. This field is relevant to gig platforms, which sometimes allow a user to receive a payout quicker than usual for a small fee.

net_pay
string

The total amount of money received by the user after all taxed and required and voluntary deductions were taken into account.

bonuses
string decimal

Additional amount added to the base pay.

commission
string decimal

A fee paid to a user for transacting a piece of business like closing a sale or making a deal.

overtime
string decimal

The amount of pay that is generated during overtime work hours.

hours
string

Total number of hours worked during the work period for which the payout was executed.

employer_address.line1
string

Address line 1 (e.g., street, PO Box, or company name).

employer_address.line2
string

Address line 2 (e.g., apartment, suite, unit, or building).

employer_address.city
string

City, district, suburb, town, or village.

employer_address.state
string

State, county, province, or region.

employer_address.postal_code
string

ZIP or postal code.

employer_address.country
string

Two-letter country code returned in the ISO 3166-1 alpha-2 format.

filing_status.type
string

The type of the filing status.

Possible values: federal, state, local.

filing_status.location
string

The location of the filing status will correspond to filing_status.type.

For filing_status.type = federal, a null value will be returned.

For filing_status.type = state, the value could be the name a state name ("Virginia"), state code ("VA"), or similar

For filing_status.type = local, the value could be a city name ("New Orleans"), an area code (e.g. "395"), or similar.

filing_status.status
string

The filing status (e.g. single, married, married filing jointly, married filing separately, head of household, qualifying widow(er) with dependent child).

metadata
object

Metadata holds additional available information about this data resource.

Endpoints
The payout object
1{
2   "id":"a6b95412-e43a-4584-be9f-1dc101aa349a",
3   "account":"f8bf3e18-09ba-428c-b197-6798f1b2b834",
4   "document_id":"97f21592-b6b6-352a-91d7-e221bf0dd6e9",
5   "employer":"walmart",
6   "status":"completed",
7   "type":"direct_deposit",
8   "payout_date":"2020-04-22T00:00:00Z",
9   "payout_period":{
10      "start_date":"2019-12-28T00:00:00Z",
11      "end_date":"2020-01-10T00:00:00Z"
12   },
13   "currency":"USD",
14   "gross_pay":"1730.77",
15   "reimbursements":"279.87",
16   "deductions":"68.68",
17   "deduction_list":[
18      {
19         "amount":"68.68",
20         "name":"Health Benefits - Pretax",
21         "tax_classification":"pre_tax"
22      }
23   ],
24   "taxes":"224.68",
25   "tax_list":[
26      {
27         "amount":"171.28",
28         "name":"Fed Withholdng",
29         "type":"federal"
30      },
31      {
32         "amount":"53.40",
33         "name":"Fed OASDI/EE",
34         "type":"fica"
35      }
36   ],
37   "fees":null,
38   "net_pay":"1717.28",
39   "bonuses":"0.00",
40   "commission":"0.00",
41   "overtime":"0.00",
42   "hours":"80.00",
43   "employer_address":{
44      "line1":"4 Jackson St",
45      "line2":"Apt C",
46      "city":"Norton",
47      "state":"MA",
48      "postal_code":"27660",
49      "country":"US"
50   },
51   "filing_status":[
52      {
53         "type":"federal",
54         "location":null,
55         "status":"single"
56      },
57      {
58         "type":"state",
59         "location":"MD",
60         "status":"single"
61      }
62   ],
63   "metadata":{
64      "hours_breakdown":[
65         {
66            "hours":"80",
67            "amount":"1730.77",
68            "description":"Work Hours"
69         }
70      ]
71   }
72}

Retrieve a payout

Retrieves a payout object with the supplied ID.

Endpoint

GET /payouts/:id

Arguments

id
uuid
required

The identifier of the payout to be retrieved.

Returns

Returns a payout object if a valid identifier was provided.

List payouts

Lists all payouts ordered by payout_date, from newest to oldest.

Endpoint

GET /payouts

Arguments

account
uuid
optional

Only return payouts for the account with the provided ID.

user
uuid
optional

Only return payouts for the user with the provided ID.

from_start_date
date
optional

The timestamp the payouts should be retrieved from. The following formats are accepted:

  • just date - 2019-01-01
  • date with time - 2019-01-01T07:30:00Z
  • date with time and with timezone - 2019-01-01T07:30:00+02:00

If an exact time is not provided, the value will be set to 00:00:00+00:00 – midnight in UTC.

to_start_date
date
optional

The timestamp the payouts should be retrieved to. The formatting is the same as in from_start_date.

limit
optional

The number of payouts objects to be returned. The default is 10. Max value is 200.

Returns

An object with a results property that contains an array of up to limit payouts objects.

Documents

Document objects contain information related to a user's identifying documents associated with a particular data partner account.

Attributes

id
string uuid

Unique ID of the document associated with a user's data partner account.

account
string uuid

ID of the account associated with the document.

employer
string

The name of the company or entity that employs the user.

document_number
string

The identification number on the document.

document_type
string

Describes the document type.

Possible values: profile-picture, payout-statement, W-2, W-4, W-9, 1099, 1095, drivers-license, vehicle-insurance, vehicle-registration, vehicle-inspection, other.

document_type_description
string

A free-form text describing the document's type (e.g., W-2 Form 2019).

expiration_date
string

The expiration date of the document. Timestamps follow the ISO 8601 standard.

available_date
string

Represents the timestamp when the document was made available to the employee.

file_url
string
optional

If available, file_url contains a publicly accessible URL to the file. The URL is valid for one hour.

metadata
string

Metadata holds additional available, often unstructured, information about this data resource.

The document object
1{
2   "id":"110a6cd9-2cd5-3a8e-b8db-3fae4e96b58a",
3   "account":"e0c16ace-0628-25da-8928-5dffd7a7b1d1",
4   "employer":"walmart",
5   "created_at":"2020-11-18T12:27:30.478199Z",
6   "updated_at":"2020-11-29T08:33:41.525392Z",
7   "document_number":"T1234567",
8   "document_type":"W-2",
9   "document_type_description":"W-2 Form 2019",
10   "expiration_date":"null",
11   "available_date":"2020-02-15T00:00:00Z",
12   "file_url":"https://argyle-api-prod-uploads.storage.googleapis.com/e0c16ace-0628-25da-8928-5dffd7a7b1d1-20200016",
13   "metadata":{}
14}

Retrieve a document

Retrieves the document with the supplied ID.

Endpoint

GET /documents/:id

Arguments

id
uuid
required

The identifier of the document to be retrieved.

Returns

Returns a document object if a valid identifier was provided.

List documents

Lists all documents.

Endpoint

GET /documents

Arguments

account
uuid
optional

Only return documents for the account with the provided ID.

user
uuid
optional

Only return documents for the user with the provided ID.

limit
optional

The number of document objects to be returned. The default is 10. Max value is 200.

Returns

An object with a results property that contains an array of up to limit document objects.

Reports

Report objects contains information related to the various reports generated for users, which includes Verification of Income and Employment (VOIE) reports. The reports are generated on request based on the data received from payroll platforms.

Attributes

id
string

Unique ID of the report object.

user
string uuid

A unique ID assigned to a user.

reference_id
string uuid

Unique ID of the report referenced on the PDF used as a single reference point.

generated_at
string

Shows the date and time when the report was generated.

type
string

Type of report. Possible values:

voie - Verification of Income and Employment (VOIE) report.

status
string

The status of the report generation process. Possible values:

waiting_for_sync - account is being synced.

generating - report is being generated.

generated - report is ready to be downloaded.

file_url
string

URL reference where the report can be found. The file_url contains a publicly accessible URL to the file. The URL is valid for one hour.

metadata.purpose
JSON object

Other report metadata. For type = VOIE, this would include the purpose field value.

metadata.email
JSON object

Defines the email address to which a generated report will be sent.

The report object
1{
2   "id":"9f82994c-774d-11eb-b1c7-13e87316bacb",
3   "reference_id":"VOIE12357",
4   "generated_at":"2020-11-29T08:33:41.525392Z",
5   "type":"voie",
6   "user":"8a5f613a-673a-4434-aeee-1a38b960b936",
7   "status":"generated",
8   "file_url":"www.company.com/voie_report.pdf",
9   "metadata":{
10      "purpose":"Risk Assesment",
11      "email":"[email protected]"
12   }
13}

Generate a report

Generates a report, including of type = VOIE for a selected user.

Endpoint

POST /reports/generate

Arguments

user
string
required

Unique user ID.

type
string
required

Specifies which report to generate.

metadata.purpose
string
required

Specifies the permissible purpose for report generation. It is required when the field type = VOIE.

metadata.email
string

Defines the email address to which a generated report will be sent.

Returns

Returns a report object if a valid user was provided.

Generate a report request example
1{
2    "user": "8a5f613a-673a-4434-aeee-1a38b960b936",
3    "type": "voie",
4    "metadata": {
5        "purpose": "Risk Assessment",
6        "email": "[email protected]"
7    }
8}

Retrieve a report

Retrieves the report object for the supplied id.

Endpoint

GET /reports/:id

Arguments

id
string
required

The identifier of the report to be retrieved.

Returns

Returns a report object if a valid ID was provided.

List reports

Lists all reports.

Endpoint

GET /reports

Arguments

user
uuid
optional

Only returns reports for the user with the provided ID.

limit
optional

The number of report objects to be returned. The default is 10. Max value is 200.

Returns

Lists all the reports generated.

Activities

An activity is a single unit of work performed by a user at a company.

An activity object may represent a single task, as a shift, a job, or a batch of tasks depending on the company.

Attributes

General

id
string uuid

Unique ID of the activity associated with a user's data partner account.

account
string

ID of the account associated with the activity.

employer
string

The name of the company or entity that employs the user.

link_item
string

ID of the Link item (i.e. company or platform), that the user selected when connecting their account via Argyle Link. This value will oftentimes be human-readable.

link_item supersedes the now deprecated data_partner field.

data_partner
string

Deprecated in favor of link_item.

ID of the data partner associated with the user's account, within which the activity was recorded.

status
string

The current state of this activity.

Possible values: scheduled, in_progress, completed, cancelled.

type
string

The type of activity that the worker undertook.

Possible values: delivery, rideshare, hourly, services.

circumstances
object

Activity-specific data attributes (metadata) provided by the Link item.

num_tasks
integer

The number of tasks performed. Will contain 1 if the activity object represents a single job (e.g. a shift or trip). Will be 2 or more if the object represents an aggregate of tasks performed between start_datetime and end_datetime. It will contain null if the number of tasks performed is not known. This will be the case for companies that only provide aggregate data.

Duration

start_date
string

Timestamp representing the start of the activity. Timestamps follow the ISO 8601 standard.

end_date
string

Timestamp representing the end of the activity. Timestamps follow the ISO 8601 standard.

all_timestamps
object

The various timestamps of events inside of the activity. E.g.,* *shift_start, shift_end, break_start, break_end, task_start, task_end, pickup_at, dropoff_at, request_at, cancelled_at.

The formatting of all_timestamps can vary depending on the data partner. See all_datetimes below for values formatted according to the ISO 8601 standard.

all_datetimes

Same attributes as in all_timestamps but all timestamps are converted to the ISO 8601 standard.

duration
string decimal

Duration time for the activity displayed in seconds.

timezone
string

The timezone of the activity. A list of possible time zone values is maintained at the IANA Time Zone Database.

Earnings

earning_type
string

The reason for specific earning. Not all earnings are due to activities. Some are just bonuses after the fact, some are incentives to work on peak hours, etc. Possible values:

  • offer - not yet completed earning, but a promise to get money when work is completed.
  • work - regular earning for completed work.
  • incentive - incentive to work odd hours, etc.
  • adjustment - additional earning after the work (e.g. to meet minimum wage).
  • other - any other value that doesn't fit in the above (e.g. might be a work-related product purchase provided to the user by the company that is subtracted from the user's earnings).
income
object

An object that contains information about the amount earned for an activity

income.currency
string

Currency the income was received in (e.g. USD, EUR). Currencies follow the ISO 4217 format.

income.total_charge
string decimal

The amount the company associated with the Link Item has charged for an activity (inclusive of any fees).

income.total_charge = income.fees + income.total

income.fees
string decimal

Fees charged by the company associated with the Link Item (e.g. Uber) for an activity assigned to the user.

income.total
string decimal

Total amount received for this activity by a user: the sum of pay, tips, and bonus.

income.pay
string decimal

The amount received for the job excluding tips, bonus, and fees.

income.tips
string decimal

The amount of tips received for the activity.

income.bonus
string decimal

The amount of bonus payment received for the activity.

income.taxes
string

Taxes incurred by the worker during this activity.

Deprecated.

income_rates
object

This object will contain various rates as returned from the data partner. Rates can be per mile, minute or other unit.

Start Location

start_location
object

The geographical location of where the activity has started.

start_location.lat
string decimal

The geographic latitude of where the activity started.

start_location.lng
string decimal

The geographic longitude of where the activity started.

start_location.formatted_address
string

Full address of where the activity started.

End Location

end_location
object

Location of where the activity has ended.

end_location.lat
string decimal

The geographic latitude of where the activity ended.

end_location.lng
string decimal

The geographic longitude of where the activity ended.

end_location.formatted_address
string

Full address of where the activity ended.

Travel

route
string

URL to the data provider page that contains the route of the activity.

distance
string decimal

Distance traveled during the activity.

distance_unit
string

Distance measurement unit for the activity.

Possible options: miles; km.

metadata
string

Metadata holds additional available, often unstructured, information about this data resource.

The activity object - Walgreens example
1{
2   "id":"za332989-2315-48k1-b67y-36ec2d5481a1",
3   "account":"1ee3ec90-0431-4fqa-a56e-8f9k74a2f707",
4   "employer":"walgreens",
5   "link_item":"walgreens",
6   "created_at":"2020-04-01T14:13:47.804149Z",
7   "updated_at":"2020-04-02T08:15:15.635636Z",
8   "status":"completed",
9   "type":"hourly",
10   "circumstances":{
11      "outside_of_prefered_hours":true
12   },
13   "num_tasks":1,
14   "start_date":"2020-04-01T08:05:12Z",
15   "end_date":"2020-04-01T17:05:56Z",
16   "all_timestamps":{
17      "shift_start":1585728312,
18      "break_start":1585744704,
19      "break_end":1585746322,
20      "shift_end":1585760756
21   },
22   "all_datetimes":{
23      "shift_start":"2020-04-01T08:05:12Z",
24      "break_start":"2020-04-01T12:38:24Z",
25      "break_end":"2020-04-01T13:05:22Z",
26      "shift_end":"2020-04-01T17:05:56Z"
27   },
28   "duration":32444,
29   "timezone":"America/Chicago",
30   "earning_type":"work",
31   "income":{
32      "currency":"USD",
33      "total_charge":null,
34      "fees":null,
35      "total":"180.00",
36      "pay":"180.00",
37      "tips":null,
38      "bonus":null
39   },
40   "income_rates":{
41      "hour":null,
42      "mile":null
43   },
44   "start_location":null,
45   "end_location":null,
46   "route":null,
47   "distance":null,
48   "distance_unit":null,
49   "metadata":{}
50}
The activity object example - Uber example
1{
2   "id":"da332189-a115-484e-b60b-36ec2d5481d5",
3   "account":"9bb0ec90-03b1-4f8a-a72e-8f9f44a2f707",
4   "employer":"uber",
5   "link_item":"uber",
6   "created_at":"2019-04-01T14:13:47.804149Z",
7   "updated_at":"2019-04-02T08:15:15.635636Z",
8   "status":"completed",
9   "type":"rideshare",
10   "circumstances":{
11      "is_pool":false,
12      "is_rush":false,
13      "is_surge":false,
14      "service_type":"UberX"
15   },
16   "num_tasks":1,
17   "start_date":"2019-04-01T12:38:24Z",
18   "end_date":"2019-04-01T13:05:22Z",
19   "all_timestamps":{
20      "pickup_at":null,
21      "dropoff_at":1590584722,
22      "request_at":1590582737
23   },
24   "all_datetimes":{
25      "pickup_at":null,
26      "dropoff_at":"2020-05-27T13:05:22Z",
27      "request_at":"2020-05-27T12:32:17Z"
28   },
29   "duration":1618,
30   "timezone":"America/Chicago",
31   "earning_type":"work",
32   "income":{
33      "currency":"USD",
34      "total_charge":"18.27",
35      "fees":"0.00",
36      "total":"18.27",
37      "pay":"18.27",
38      "tips":"0.00",
39      "bonus":"0.00"
40   },
41   "income_rates":{
42      "hour":null,
43      "mile":null
44   },
45   "start_location":{
46      "lat":"42.58294677734375",
47      "lng":"-77.70906829833984",
48      "formatted_address":"10th St, Country Club Hills, IL 60478, USA"
49   },
50   "end_location":{
51      "lat":"42.809085845947266",
52      "lng":"-77.82435607910156",
53      "formatted_address":"Clay Terrace, Lyons, IL 60534, USA"
54   },
55   "route":"https://partners.uber.com/p3/payments/trips/dde4c587-ffcf-4245-b414-781dcef483a1?in_app=true",
56   "distance":"25.95",
57   "distance_unit":"miles",
58   "metadata":{}
59}

Retrieve an activity

Retrieves an activity object with the supplied ID.

Endpoint

GET /activities/:id

Arguments

id
string uuid
required

The identifier of the activity object to be retrieved.

Returns

Returns an activity object if a valid identifier was provided.

List activities

List all activities ordered by start_date. Filter them by date range, account, or user ID. Either account or user is required to list activities.

Endpoint

GET /activities

Arguments

account
uuid
required

Only return activities for the account with the provided ID.

user
uuid
required

Only return accounts for the user with the provided ID.

from_start_date
date
optional

The timestamp the activities should be retrieved from. The following formats are accepted:

  • just date - 2019-01-01
  • date with time - 2019-01-01T07:30:00Z
  • date with time and with timezone - 2019-01-01T07:30:00+02:00

If an exact time is not provided, the value will be set to 00:00:00+00:00 – midnight in UTC.

to_start_date
date
optional

The timestamp the activities should be retrieved to. The formatting is the same as in from_start_date.

limit
optional

The number of activities objects to be returned. The default is 10. Max value is 200.

Returns

An object with a results property that contains an array of up to limit activities objects.

Vehicles

Vehicle objects contain vehicle information related to a particular data partner account.

Attributes

id
string uuid

Unique ID of the vehicle associated with a user's data partner account.

account
string uuid

ID of the account associated with the vehicle.

employer
string

The name of the company or entity that employs the user.

vin
string

Vehicle Identification Number (VIN).

make
string

The make or brand of the vehicle manufacturer. (e.g., Ford, Toyota).

model
string

The model of the vehicle (e.g., Fiesta, Prius).

year
integer

The manufacture year of the vehicle (e.g., 2011).

identification
string

The license plate or other ID depending on the vehicle type.

type
string

The vehicle type.

Possible values: car, pedestrian, ebike, bicycle, scooter, motorcycle, other.

metadata
string

Metadata holds additional available, often unstructured, information about this data resource.

Endpoints
The vehicle object
1{
2   "id":"e8b085d1-fa2c-4e0f-8b2e-93c6ac991f12",
3   "account":"010db8b4-a724-47fc-c17e-733b656312a1",
4   "employer":"uber",
5   "created_at":"2019-04-01T14:13:47.804149Z",
6   "updated_at":"2019-04-02T08:15:15.635636Z",
7   "vin":"3VWRA81H7WM116221",
8   "make":"Toyota",
9   "model":"Corolla",
10   "year":2011,
11   "identification":"HIJ8473",
12   "type":"car",
13   "metadata":{}
14}

Retrieve a vehicle

Retrieves a vehicle object with the supplied ID.

Endpoint

GET /vehicles/:id

Arguments

id
uuid
required

The identifier of the vehicle to be retrieved.

Returns

Returns a vehicle object if a valid identifier was provided.

List vehicles

Lists all vehicles.

Endpoint

GET /vehicles

Arguments

account
uuid
optional

Only return vehicles for the account with the provided ID.

user
uuid
optional

Only return vehicles for the user with the provided ID.

limit
optional

The number of vehicle objects to be returned. The default is 10. Max value is 200.

Returns

An object with a results property that contains an array of up to limit vehicle objects.

Reputations

Reputation objects contain information related to the performance metrics of the user within a particular account.

Attributes

id
string uuid

Unique ID of the reputation object associated with a user's data partner account.

account
string uuid

ID of the account associated with the reputation object.

employer
string

The name of the company or entity that employs the user.

rating
string decimal

A normalized average rating for all activities performed. Will contain a value between 0 and 5.

This value is only available as an average for the user. Activity level ratings are very rarely exposed in Link item platforms and are thus unavailable.

acceptance_rate
string decimal

Average acceptance rate. Will contain a value as supplied by the data partner (most often the value will be between 0 and 1).

ontime_rate
string decimal

Average on-time rate. Will contain a value as supplied by the data partner (most often the value will be between 0 and 1).

achievements
objects

An array containing key-value pairs of any potential achievements returned by the data partner. This can include achievements urls, descriptions, points, and the like.

metadata
string

Metadata holds additional available, often unstructured, information about this data resource.

The reputation object
1{
2   "id":"1f24c447-d645-41ab-afb7-e81b1db699c5",
3   "account":"810a054e-8133-4411-9722-12ebd6db040f",
4   "employer":"uber",
5   "created_at":"2020-09-10T17:12:49.715371Z",
6   "updated_at":"2020-09-11T08:52:38.138449Z",
7   "rating":"4.95",
8   "acceptance_rate":"0.86",
9   "ontime_rate":"0.80",
10   "achievements":[
11      {
12         "count":1,
13         "label":"perfect_rating",
14         "badge_url":"https://media.website.com/1554853.png",
15         "description":"Earned on total 5-star ratings",
16         "points":"5",
17         "metadata":{}
18      }
19   ],
20   "metadata":{}
21}

Retrieve a reputation

Retrieves a reputation object with the supplied ID.

Endpoint

GET /reputations/:id

Arguments

id
uuid
required

The identifier of the reputation to be retrieved.

Returns

Returns a reputation object if a valid identifier was provided.

List reputations

Lists all reputation objects which are registered in Argyle.

Endpoint

GET /reputations

Arguments

account
uuid
optional

Only return reputation objects for the account with the provided ID.

user
uuid
optional

Only return reputation objects for the user with the provided ID.

limit
optional

The number of reputation objects to be returned. The default is 10. Max value is 200.

Returns

An object with a results property that contains an array of up to limit reputation objects.

Finances

The Finances endpoint has been deprecated as of June 10, 2021.

Finance objects contain data about a user's finances.

Attributes

id
string

Unique ID of the finance object associated with a user's data partner account.

account
string

ID of the account associated with the finance object.

employer
string

The name of the company or entity that employs the user.

balance
string decimal

Current balance.

balance_currency
string

Currency of current balance.

payout_method
string

Denotes the payout method chosen by the user. Payroll platforms might have different names for payout methods (e.g. direct deposit, instant cashout, check).

Endpoints
The finance object
1{
2   "id":"1f24c447-d645-41ab-afb7-e81b1db699c5",
3   "account":"810a054e-8133-4411-9722-12ebd6db040f",
4   "employer":"uber",
5   "created_at":"2020-09-10T17:12:49.715371Z",
6   "updated_at":"2020-09-11T08:52:38.138449Z",
7   "balance":"300.50",
8   "balance_currency":"USD",
9   "payout_method":"direct deposit"
10}

Retrieve a finance object

Retrieves a finance object with the supplied ID.

Endpoint

GET /finances/:id

Arguments

id
uuid
required

The identifier of the finance object to be retrieved.

Returns

Returns a finance object if a valid identifier was provided.

List all finance objects

Lists all finance objects which are registered in Argyle.

Endpoint

GET /finances

Arguments

account
uuid
optional

Only return finance objects for the account with the provided ID.

user
uuid
optional

Only return finance objects for the user with the provided ID.

limit
optional

The number of finance objects to be returned. The default is 10. Max value is 200.

Returns

An object with a results property that contains an array of up to limit finance objects.

Pay Allocations

A pay distribution can have one or more pay allocation objects, which contain information like bank account details, allocation type, and allocation values. Please refer to the Pay Distribution Guide for more information.

Argyle retrieves data a user has access to in their payroll portal. Some employers and payroll platforms fully or partially obfuscate pay distribution information (e.g. account or routing number). In these cases, Argyle is only able to return the obfuscated values.

Attributes

id
string uuid

Unique ID of the pay allocation.

account
string

ID of the account associated with a Link item that generates the payout to the user.

employer
string

The company or entity that employs the user.

created_at
timestamp

A timestamp when the pay allocation object was created. This will not always match the time it was updated in the payroll platform.

updated_at
timestamp

A timestamp when the pay allocation object was last updated. This will not always match the time it was updated in the payroll platform.

bank_account.routing_number
string

9-digit code that is based on the bank location where the user's account was opened. Depending on the payroll platform, the value will be fully or partially obfuscated.

bank_account.account_type
string

The type of the user's bank account.

Possible values: checking, savings, other.

status
string

Account status in the employment record source. A pending status will signify that the pay allocation was changed in Argyle Link, but is not yet propagated within the company or payroll (Link item) platform.

Possible values: active, pending.

allocation_type
string

The selected type of allocation.

Possible values: percent, amount.

allocation_value
string decimal

The amount associated with the allocation type.

allocation_value can be a decimal value (e.g. 147.27) or remainder (total salary minus any decimal allocations).

metadata
string

Metadata holds additional available, often unstructured, information about this data resource.

The Pay Allocation Object
1{
2   "id":"0c34da95-08d5-4b0d-b76a-bc794f87a60a",
3   "account":"7c21d391-a7df-4ad5-b7d3-d2d7a6b3e740",
4   "employer":"walmart",
5   "created_at":"2020-09-27T15:56:20.734617",
6   "updated_at":"2020-09-27T15:56:20.734617",
7   "bank_account":{
8      "routing_number":"*****8439",
9      "account_number":"******8473",
10      "account_type":"checking"
11   },
12   "status":"active",
13   "allocation_type":"percent",
14   "allocation_value":"100",
15   "metadata":{}
16}

Retrieve a pay allocation

Retrieves a pay allocation object with the supplied ID.

Endpoint

GET /pay-allocations/:id

Arguments

id
string uuid
required

Pay allocation ID.

Returns

Retrieves a pay allocation object if a valid identifier was provided.

List pay allocations

List all pay allocation objects.

Endpoint

GET /pay-allocations

Arguments

account
uuid
optional

Only return pay allocations for the account with the provided ID.

user
uuid
optional

Only return pay allocations for the user with the provided ID.

limit
optional

The number of pay allocation objects to be returned. The default is 10. Max value is 200.

Returns

An object with a results property that contains an array of up to limit pay allocation objects.

Remove a pay allocation

Removes a pay allocation object with the supplied ID. Learn more about removing pay allocations here.

Endpoint

POST /pay-allocations/:id/remove

Arguments

id
string uuid
required

Pay allocation ID.

Returns

Removes a pay allocation object if a valid identifier was provided.

Pay Distribution Configs

Argyle Link will initiate a pay distribution change process if a pay distribution configuration is provided. Pay distribution configuration describes the desired outcome of that change. Please refer to the Pay Distribution Guide for more information.

Attributes

bank_account.bank_name
string
required

Bank name that will be displayed alongside an obfuscated account number in Link. This is used for labeling purposes in Argyle Link and does not need to perfectly match the actual bank name.

bank_account.routing_number
string
required

9-digit code that is based on the bank location where the user's account was opened.

bank_account.account_number
string
required

8 to 17-digit code that identifies the user as the account holder in the bank. The allocation will be sent to this account.

bank_account.account_type
string
required

Type of the bank account.

Possible values: checking, savings.

default_allocation_type
string
optional

The allocation type that will be presented to the user by default. Not all employment accounts support both formats. If you select a default that is not supported by the user's employment account, the user will still be able to enter an allocation using the supported format as long as a default value for that format is provided.

Possible values: percent, amount.

percent_allocation
object
optional

An object representing a percentage to be transferred into the bank account.

At least one of percent_allocation or amount_allocation is required for the configuration.

percent_allocation.value
string integer
required

The default percent value that will be displayed to the user during the pay distribution update process.

percent_allocation.value is required if percent_allocation is used in the configuration.

If no percent_allocation is provided, the user will not be able to enter a percent-based allocation.

percent_allocation.min_value
string integer
optional

The minimum percent value that the user will be able to deviate from your recommended or default value. Set this to the same as percent_allocation.value if you do not want the user to choose a lower amount than your default value.

percent_allocation.max_value
string integer
optional

The maximum percent value that the user will be able to deviate from your recommended or default value. Set this to the same as percent_allocation.value if you do not want the user to choose a higher amount than your default value.

amount_allocation
object
optional

An object representing a dollar amount to be transferred into the bank account.

At least one of percent_allocation or amount_allocation is required for the configuration.

amount_allocation.value
string integer
required

The default amount value that will be displayed to the user during the pay distribution update process.

amount_allocation.value is required if amount_allocation is used in the configuration.

If no amount_allocation is provided, the user will not be able to enter an amount-based allocation

amount_allocation.min_value
string integer
optional

The minimum amount value that the user will be able to deviate from your recommended or default value. Set this to the same as amount_allocation.value if you do not want the user to choose a lower amount than your default value.

amount_allocation.max_value
string integer
optional

The maximum amount value that the user will be able to deviate from your recommended or default value. Set this to the same as amount_allocation.value if you do not want the user to choose a higher amount than your default value.

allow_add_allocation
boolean
optional

Setting allow_add_allocation to false, will remove the "Add bank account" button in the Pay distribution screen of Argyle Link.

Default value is true.

enable_suggestions
boolean
optional

If set to true, the user will be shown a suggested pay allocations redistribution (given there are more than two pay allocations in the account) and will only need to click the "Confirm" button. If set to false, the user will have to manually enter how the pay allocations should be distributed.

Default value is true.

allow_editing
boolean
optional

If set to true, users will see the Edit button in the pay allocations screen and will be able to change the allocations. If set to false, users will not see the Edit button and will not be able to make any changes.

Default value is true.

Pay distribution config
1{
2	"bank_account": {
3		"bank_name": "New Bank",
4		"routing_number": "084101234",
5		"account_number": "9483746361234",
6		"account_type": "checking"
7	},
8	"default_allocation_type": "amount",
9	"percent_allocation": {
10			"value": "20",
11			"min_value": "10",
12			"max_value": "30"
13	},
14	"amount_allocation": {
15			"value": "200",
16			"min_value": "200",
17			"max_value": "200"
18	},
19	"allow_add_allocation": true,
20	"enable_suggestions": true,
21	"allow_editing": true
22}

Encrypt a pay distribution config

To start the pay distribution update process in Link you must initialize it with the payDistributionConfig parameter set to an encrypted version of your pay distribution configuration.

The encryption is necessary to ensure your bank account details are never exposed on the front-end. Your full routing and account numbers always appear encrypted on the end user's device.

To encrypt your pay distribution config make a POST request into pay-distribution-configs/encrypt with your pay distribution config in the payload.

Endpoint

POST /pay-distribution-configs/encrypt

Returns

Returns an encrypted version of the pay distribution config.

Encrypted config
1{
2	"encrypted_config": "BiQAX5+IRA7qSjrGKS/aLVTlUkfwXbLAQzyI5sq1NiD8KMPr5jgS/wEAYPZorNBq2DdrvSkNOnuWLXl1Ht6QKoSD2rhirmSw+22zKOIVCQPbeWt0LOSraWErTtjWArX42cNBsVEPWnhwqOIW4L0p9SYzzR5RGbSGOfyCkdtM7traQUwt1voEjtrETdX7+V3sMi2Jdss3kZDZ3hrWK/9qi1noLJ9YQ9e9gGLK7+fk/5n/UElAUt7h/UkcJsBsbV+YzHcpmuP3w4SepuNzoKIeycBzUodBLB4KmQD2HFlt+yokkO2KnmBWtguhXdFnfttrpUANeSSRhdy8K1QBexeKcCJu1aRUQ/tBEHq1I88XfZeXqlKmQNx6YE8SMIY/A2wiwczICPloOTU="
3}