Skip to main content
Learn about the /user-invite-templates and /user-invites endpoints.

Overview

You can send invites to new users containing a link they can click to connect their payroll accounts through Argyle. Invites can be sent via Console or using the API method below. User invites are created using the /user-invite-templates endpoint and sent using the /user-invites endpoint and can be sent via SMS, email, or both.
  • Both SMS and email fields must be included in user invite templates
  • You can choose whether to send an SMS, email, or both when sending an invite
Creating an invite template will generate a unique id which can be used as the invite-template-id when sending an invite. This invite-template-id contains your messaging, landing page, and Argyle Link customizations. Once an invite is sent, a user invite object will be created.

Returning users

User invites can be re-used for the same user. This allows the user to return to Argyle Link, enabling them to:
  • Re-verify disconnected accounts
  • Connect additional accounts
  • Revoke access to previously connected accounts
Follow the steps below to allow a user to return to Argyle Link through user invites:
  1. After sending an invite, a user invite object will be returned in the response.
  2. Save the invite id from the user invite object. You can also list all invites and filter for the relevant user if the invite id was not originally saved.
  3. (Optional) When an invite is first sent, a new user object that represents this new user is created. If you want to update the user’s metadata (often used for internal ID matching), save the ID value returned in the user field of the user invite object, and use this ID to update the user’s metadata.
  4. Resend the invite using the invite id, and the user will be able to return to Argyle Link to take additional action.
You can also manually retrieve and send the original invite URL through Console, which allows the user to reconnect to Argyle Link as well.

Tracking invite status

  • Retrieve the invite sent to the user. The status field of the user invite object will indicate where the invited user is in the connection process.
  • Use accounts webhooks to automatically be notified when a user submits login credentials, and whether they successfully connect a payroll account.

Adding deposit switching

Add your unencrypted DDS configuration in the pds_config body parameter when sending the invite.

The user invite template object

Attributes

  • id (string (uuid), optional): Unique ID of the template.
  • name (string, optional): The name of the template.
  • company (string, optional): Your company/brand name that is shown to users in the invite.
  • logo_url (string, optional): A link to the logo to be used in the invitation email. Logo dimensions: 120x120 px
  • sms_body (string, optional)
  • sender (string, optional)
  • subject (string, optional): The email subject of the invitation email.
  • header (string, optional): The title header of the invitation email.
  • email_body (string, optional): The text content of the invitation email.
  • button (string, optional): The call-to-action button label within the email.
  • page_heading (string, optional)
  • page_description (string, optional): The text content of the landing page.
  • page_button (string, optional): The call-to-action button label on the landing page to initiate Argyle Link.
  • page_config (object, optional): Configuration parameters for the success page.
  • page_success_heading (string, optional): The heading 1 of the success page.
  • page_success_description (string, optional): The text content of the success page.
  • page_success_show_button (boolean, optional): The text content of the success page.
  • reply_to (string, optional): The reply email address for your user invite.

{
"id": "9f82994c-774d-11eb-b1c7-13e87316bacb",
"name": "regular",
"company": "GoodLoans",
"logo_url": "https://company.com/logo.jpg",
"sms_body": "[Company] has asked you to connect your employment account. Get started here: [Link]",
"sender": "[Company]",
"subject": "Connect Your Employment Account",
"header": "[Company] is requesting you to connect your employment account",
"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]",
"button": "Connect your employment account",
"page_heading": "Let's connect your employment account",
"page_description": "[Company] has asked you to connect your employment account to use their services.",
"page_button": "Connect Account",
"page_config": {
"page_success_heading": "Thank you for connecting your accounts",
"page_success_description": "You are all set. If you have any questions please reach out to [Company]",
"page_success_button": "Connect Account",
"page_success_show_button": true
},
"reply_to": "[email protected]",
"customization_id": "5UBR4EJ8"
},
null,
2

The user invite object

Attributes

  • id (string (uuid), optional): A unique ID for the invite.
  • user (string (uuid), optional): The user ID associated with this invite. It is available only when a user has accepted the invite and successfully connected via Argyle Link.
  • user_token (string (uuid), optional): A unique token generated by Argyle Link. Only available when a user has attempted to connect via Argyle Link. Used to restore the session when the user comes back for a second time to update their information.
  • full_name (string, optional): The full name of the user.
  • email (string, optional): The email address which received the invite.
  • phone_number (string, optional): The phone number which received the invite.
  • invite_template_id (string (uuid), optional): ID of the user invite template that was used to send the invite.
  • status (string (enum), optional)
  • url (string, optional): The invite URL sent to the user.

{
"id": "317e7736-7761-11eb-b642-238b63a89ff2",
"user": "8a5f613a-673a-4434-aeee-1a38b960b936",
"user_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNjE2ODQ3MzA1LCJqdGkiOiI1NzA2ZjM5MTEzMzk0ZDM1YTA5MWVjYzgxNjc3NjdjNCIsInVzZXJfaWQiOiI4YTVmNjEzYS02NzNhLTQ0MzQtYWVlZS0xYTM4Yjk2MGI5MzYiLCJjbGllbnRfaWQiOiJjMDIwYjNjMy0zY2Q5LTRmY2YtYjg1OC0xMzlkZWU2NmU2ZjMifQ.9CzhA-Gx9QqBManrogEbgHuKduVWvtC9OGxDe_RTgl8",
"email": "[email protected]",
"phone_number": "+12025550104",
"full_name": "John Smith",
"invited_at": "2021-02-25T12:01:29.083Z",
"invite_template_id": "315e0d98-7761-11eb-b642-c7dfaaf3c8cf",
"revoked_at": null,
"status": "completed",
"url": "https://console.argyle.com/add-work-accounts/ab2254e8-60a6-12ed-cb32-d4fad896515b"
},
null,
2

Create an invite template

POST /v1/user-invite-templates Create a new invite template with the provided attributes.
These placeholders can be used in the text contents. Each placeholder can be replaced by these values:
  • [Company] - Corresponds to the company attribute in the user invite template object.
  • [Name] - Corresponds to the full_name attribute in the user invite template object.
  • [Link] - Shortened link to accept the invitation.
  • [Sender] - Corresponds to the sender attribute in the user invite template object.
This request returns a unique template id and all your provided template attributes.

Request body

  • name (string, required): The name of the template. Each name must be unique.
  • email_body (string, required): The text content of the email 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.
  • 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_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 (object, optional): Configuration parameters for the success page.
  • page_success_description (string, required): The text content of the success page.
  • page_success_show_button (boolean, required)
  • page_success_button (string, optional): The call-to-action button label on the success page.
  • reply_to (string, optional): The reply to email address.
curl --request POST \\
--url https://api.argyle.com/v1/user-invite-templates \\
--header 'accept: application/json' \\
--header 'content-type: application/json' \\
--data '{
"name": "test name",
"email_body": "Hi, [Name], [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. Sincerely, [Sender]",
"sms_body": "[Company] has asked you to connect your employment account. Get started here: [Link]",
"header": "[Company] is requesting you to connect your employment account",
"button": "Connect your employment account",
"subject": "Connect Your Employment Account",
"sender": "[Company]",
"company": "Test Company",
"logo_url": "https://company.com/logo.jpg",
"page_heading": "Please connect your employment account",
"page_description": "[Company] has asked you to connect your employment account to use their services.",
"page_button": "Connect Account",
"page_config": {
  "page_success_heading": "Thank you for connecting your accounts",
  "page_success_description": "You are all set. If you have any questions please reach out to [Company]",
  "page_success_show_button": true,
  "page_success_button": "Connect Account"
},
"reply_to": "[email protected]",
"customization_id": "00000000"
}'

{
  "id": "c7ee8f30-b253-11eb-9ce1-bf8bb5082eb7",
  "name": "regular",
  "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]",
  "sms_body": "[Company] has asked you to connect your employment account. Get started here: [Link]",
  "button": "Connect your employment account",
  "header": "[Company] is requesting you to connect your employment account",
  "subject": "Connect Your Employment Account",
  "sender": "[Company]",
  "company": "GoodLoans",
  "logo_url": "https://company.com/logo.jpg",
  "page_heading": "Let's connect your employment account",
  "page_description": "[Company] has asked you to connect your employment account to use their services.",
  "page_button": "Connect Account",
  "page_config": {
"page_success_heading": "Thank you for connecting your accounts",
"page_success_description": "You are all set. If you have any questions please reach out to [Company]",
"page_success_show_button": true,
"page_success_button": "Continue"
  },
  "reply_to": null,
  "customization_id": null
},
null,
2

Retrieve a template

GET /v1/user-invite-templates/{id} Retrieve a user invite template object with the supplied ID, and returns a user invite template object if a valid identifier was provided.

Path parameters

  • id (string (uuid), required): The identifier of the user invite template to be retrieved.
curl --request GET \\
--url https://api.argyle.com/v1/user-invite-templates/{id} \\
--header 'accept: application/json' \\
--header 'content-type: application/json'


{
  "id": "c7ee8f30-b253-11eb-9ce1-bf8bb5082eb7",
  "name": "regular",
  "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]",
  "sms_body": "[Company] has asked you to connect your employment account. Get started here: [Link]",
  "button": "Connect your employment account",
  "header": "[Company] is requesting you to connect your employment account",
  "subject": "Connect Your Employment Account",
  "sender": "[Company]",
  "company": "GoodLoans",
  "logo_url": "https://company.com/logo.jpg",
  "page_heading": "Let's connect your employment account",
  "page_description": "[Company] has asked you to connect your employment account to use their services.",
  "page_button": "Connect Account",
  "page_config": {
"page_success_heading": "Thank you for connecting your accounts",
"page_success_description": "You are all set. If you have any questions please reach out to [Company]",
"page_success_show_button": true,
"page_success_button": "Connect Account"
  },
  "reply_to": "[email protected]",
  "customization_id": "2BLR1EJ6"
},
null,
2

List templates

GET /v1/user-invite-templates/{id} Returns a list of existing templates.

Query parameters

  • limit (integer, optional): The number of user invite template objects to be returned. The default is 10. Max value is 200.
curl --request GET \\
--url https://api.argyle.com/v1/user-invite-templates \\
--header 'accept: application/json' \\
--header 'content-type: application/json'


[
  {
"id": "c7ee8f30-b253-11eb-9ce1-bf8bb5082eb7",
"name": "regular",
"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]",
"sms_body": "[Company] has asked you to connect your employment account. Get started here: [Link]",
"button": "Connect your employment account",
"header": "[Company] is requesting you to connect your employment account",
"subject": "Connect Your Employment Account",
"sender": "[Company]",
"company": "GoodLoans",
"logo_url": "https://company.com/logo.jpg",
"page_heading": "Let's connect your employment account",
"page_description": "[Company] has asked you to connect your employment account to use their services.",
"page_button": "Connect Account",
"page_config": {
  "page_success_heading": "Thank you for connecting your accounts",
  "page_success_description": "You are all set. If you have any questions please reach out to [Company]",
  "page_success_show_button": true,
  "page_success_button": "Connect Account"
},
"reply_to": null,
"customization_id": "3RHE2QY8"
  },
  {
"id": "f8d8b90a-e678-11eb-a6d1-83071453d4b3",
"name": "verification",
"email_body": "Hi, [Name] \n\nAs part of your application [Company] is requesting to run a work & income verification report. It's a quick process and both you and [Company] will receive a copy of the report.",
"sms_body": "[Company] has asked you to link your income sources. Get started here: [Link]",
"button": "Start Verification",
"header": "[Company] is requesting to run a work & income verification",
"subject": "Work & Income Verification Requested",
"sender": "[Company]",
"company": "Argyle",
"logo_url": "https://res.cloudinary.com/argyle-media/image/upload/w_200,h_200,c_fill,q_100/v1604512727/client-logos/0d9b5bf3-97fa-4757-a136-b2a03d171414",
"page_heading": "Let's connect your work accounts",
"page_description": "[Company] has asked you to link the companies you make money from as part of their service.",
"page_button": "Connect accounts",
"page_config": {
  "page_success_heading": "Thank you for connecting your accounts",
  "page_success_description": "You are all set. If you have any questions please reach out to [Company]",
  "page_success_show_button": true,
  "page_success_button": "Connect another account"
},
"reply_to": "[email protected]",
"customization_id": null
  }
],
null,
2

Delete a template

DELETE /v1/user-invite-templates/{id} Deletes a user invite template. When a user invite template is successfully deleted, the request returns a 200 status and an empty response body.

Path parameters

  • id (string (uuid), required): ID of the user invite template to be deleted.
curl --request DELETE \\
--url https://api.argyle.com/v1/user-invite-templates/{id} \\
--header 'accept: application/json' \\
--header 'content-type: application/json'


"200 status code: No content.",
null,
2

Send an invite

POST /v1/user-invites Send 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. This request returns the user invite object with status = sent.

Request body

  • invite_template_id (string (uuid), required): ID of the user invite template that should be applied to the invite.
  • full_name (string, required): The full name of the user.
  • pds_config (object, optional): Add your unencrypted DDS configuration object to enable a direct deposit switching flow.
curl --request POST \\
--url https://api.argyle.com/v1/user-invites \\
--header 'accept: application/json' \\
--header 'content-type: application/json' \\
--data '{
"invite_template_id": "c7ee8f30-b253-11eb-9ce1-bf8bb5082eb7",
"full_name": "John Smith",
"email": "[email protected]"
}'

{
  "id": "3e9efffc-c252-11ec-98ee-1bc6fa2df55d",
  "user": null,
  "user_token": null,
  "email": "[email protected]",
  "phone_number": null,
  "full_name": "John Smith",
  "invited_at": "2022-04-22T15:38:23.534Z",
  "invite_template_id": "c7ee8f30-b253-11eb-9ce1-bf8bb5082eb7",
  "revoked_at": null,
  "status": "sent",
  "url": "https://console.argyle.com/add-work-accounts/ab2254e8-60a6-12ed-cb32-d4fad896515b"
},
null,
2

Resend an invite

POST /v1/user-invites/{id} Resend a previously sent-out invite. This request returns the user invite object with status = sent and an updated invited_at time.

Path parameters

  • id (string (uuid), required): ID of the invite to be resent.
curl --request POST \\
--url https://api.argyle.com/v1/user-invites/{id} \\
--header 'accept: application/json' \\
--header 'content-type: application/json'

{
  "id": "3e9efffc-c252-11ec-98ee-1bc6fa2df55d",
  "user": null,
  "user_token": null,
  "email": "[email protected]",
  "phone_number": null,
  "full_name": "John Smith",
  "invited_at": "2022-05-22T15:39:35.388Z",
  "invite_template_id": "c7ee8f30-b253-11eb-9ce1-bf8bb5082eb7",
  "revoked_at": null,
  "status": "sent",
  "url": "https://console.argyle.com/add-work-accounts/ab2254e8-60a6-12ed-cb32-d4fad896515b"
},
null,
2

Revoke an invite

POST /v1/user-invites/{id}/revoke Invalidate a previously sent-out invite. This request returns the user invite object with status = revoked and a revoked_at time.

Path parameters

  • id (string (uuid), required): ID of the invite to be revoked.
curl --request POST \\
--url https://api.argyle.com/v1/user-invites/{id}/revoke \\
--header 'accept: application/json' \\
--header 'content-type: application/json'

{
  "id": "3e9efffc-c252-11ec-98ee-1bc6fa2df55d",
  "user": null,
  "user_token": null,
  "email": "[email protected]",
  "phone_number": null,
  "full_name": "John Smith",
  "invited_at": "2022-04-22T15:39:35.388Z",
  "invite_template_id": "c7ee8f30-b253-11eb-9ce1-bf8bb5082eb7",
  "revoked_at": "2022-05-22T15:40:16.138Z",
  "status": "revoked",
  "url": "https://console.argyle.com/add-work-accounts/ab2254e8-60a6-12ed-cb32-d4fad896515b"
},
null,
2

Retrieve an invite

GET /v1/user-invites/{id} Retrieve a user invite object with the supplied ID. This request returns a user invite object if a valid identifier was provided.

Path parameters

  • id (string (uuid), required): The identifier of the user invite to be retrieved.
curl --request GET \\
--url https://api.argyle.com/v1/user-invites/{id} \\
--header 'accept: application/json' \\
--header 'content-type: application/json'


{
  "id": "c8c23f78-c252-11ec-8472-9f9d9a6cf2e7",
  "user": null,
  "user_token": null,
  "email": "[email protected]",
  "phone_number": null,
  "full_name": "John Smith",
  "invited_at": "2022-04-22T15:43:08.804Z",
  "invite_template_id": "c7ee8f30-b253-11eb-9ce1-bf8bb5082eb7",
  "revoked_at": null,
  "status": "sent",
  "url": "https://console.argyle.com/add-work-accounts/ab2254e8-60a6-12ed-cb32-d4fad896515b"
},
null,
2

List invites

GET /v1/user-invites Return a list of all sent-out invites. This request returns an object with a results property that contains an array of up to limit user invite objects.

Query parameters

  • limit (integer, optional): The number of user invite objects to be returned. The default is 10. Max value is 200.
curl --request GET \\
--url https://api.argyle.com/v1/user-invites \\
--header 'accept: application/json' \\
--header 'content-type: application/json'


[
  {
  "id": "c8c23f78-c252-11ec-8472-9f9d9a6cf2e7",
  "user": null,
  "user_token": null,
  "email": "[email protected]",
  "phone_number": null,
  "full_name": "John Smith",
  "invited_at": "2022-04-22T15:43:08.804Z",
  "invite_template_id": "c7ee8f30-b253-11eb-9ce1-bf8bb5082eb7",
  "revoked_at": null,
  "status": "sent",
  "url": "https://console.argyle.com/add-work-accounts/ac2254e8-60a6-12ed-cb32-d4fad896515b"
  },
  {
  "id": "3e9efffc-c252-11ec-98ee-1bc6fa2df55d",
  "user": null,
  "user_token": null,
  "email": "[email protected]",
  "phone_number": null,
  "full_name": "John Smith",
  "invited_at": "2022-04-22T15:41:50.257Z",
  "invite_template_id": "c7ee8f30-b253-11eb-9ce1-bf8bb5082eb7",
  "revoked_at": "2022-04-22T15:40:16.138Z",
  "status": "revoked",
  "url": "https://console.argyle.com/add-work-accounts/ad2254e8-60a6-12ed-cb32-d4fad896515b"
  }
],
null,
2