Plaid logo
Docs
ALL DOCS

API

  • Overview
  • Libraries
  • API versioning
  • Postman Collection
  • Webhooks
Product API reference
  • Transactions
  • Auth
  • Balance
  • Identity
  • Assets
  • Investments
  • Liabilities
  • Payment Initiation
  • Virtual Accounts
  • Transfer
  • Income
  • Identity Verification
  • Monitor
  • Beacon
  • Signal
  • Enrich
  • Statements (beta)
Other API reference
  • Item endpoints and webhooks
  • Account endpoints and schemas
  • Institution endpoints
  • Token flow and endpoints
  • Processor endpoints
  • Sandbox endpoints
  • Reseller partner endpoints
Plaid logo
Docs
Close search modal
Experimental
Ask Finn!Ask a question to get started
Note: Finn isn't perfect. He's just a chatbot that reads our docs for fun. You should treat his answers with the same healthy skepticism you might treat any other answer on the internet. This chat may be logged for quality and training purposes. Please don't send Finn any PII -- he's scared of intimacy. All chats with Finn are subject to Plaid's Privacy Policy.
Plaid.com
Get API keys
Open nav

Beacon

API reference for Beacon endpoints

Add and report users on the Plaid Beacon network.

Endpoints
/beacon/user/createCreate and scan a Beacon User against a Beacon Program
/beacon/user/getFetch a beacon user
/beacon/report/createCreate a fraud report for a given Beacon User

/beacon/user/create

This feature is in currently in beta; Your account must be enabled for this feature in order to test it in Sandbox. To enable this feature or check your status, contact your account manager or submit a product access Support ticket.

Create a Beacon User

Create and scan a Beacon User against your Beacon Program, according to your program's settings.
When you submit a new user to /beacon/user/create, several checks are performed immediately:
- The user's PII (provided within the user object) is searched against all other users within the Beacon Program you specified. If a match is found that violates your program's "Duplicate Information Filtering" settings, the user will be returned with a status of pending_review.
- The user's PII is also searched against all fraud reports created by your organization across all of your Beacon Programs. If the user's data matches a fraud report that your team created, the user will be returned with a status of rejected.
- Finally, the user's PII is searched against all fraud report shared with the Beacon Network by other companies. If a matching fraud report is found, the user will be returned with a pending_review status if your program has enabled automatic flagging based on network fraud.

beacon/user/create

Request fields and example

program_id
requiredstring
ID of the associated Beacon Program.
client_user_id
requiredstring
A unique ID that identifies the end user in your system. This ID can also be used to associate user-specific data from other Plaid products. Financial Account Matching requires this field and the /link/token/create client_user_id to be consistent. Personally identifiable information, such as an email address or phone number, should not be used in the client_user_id.

Min length: 1
user
requiredobject
A Beacon User's data which is used to check against duplicate records and the Beacon Fraud Network.
date_of_birth
requiredstring
A date in the format YYYY-MM-DD (RFC 3339 Section 5.6).

Format: date
name
requiredobject
The full name for a given Beacon User.
given_name
requiredstring
A string with at least one non-whitespace character, with a max length of 100 characters.
family_name
requiredstring
A string with at least one non-whitespace character, with a max length of 100 characters.
address
requiredobject
Home address for the associated user. For more context on this field, see Input Validation by Country.
street
requiredstring
The primary street portion of an address. If the user has submitted their address, this field will always be filled.
street2
string
Extra street information, like an apartment or suite number.
city
requiredstring
City from the end user's address
region
string
An ISO 3166-2 subdivision code. Related terms would be "state", "province", "prefecture", "zone", "subdivision", etc.
postal_code
string
The postal code for the associated address. Between 2 and 10 alphanumeric characters. For US-based addresses this must be 5 numeric digits.
country
requiredstring
Valid, capitalized, two-letter ISO code representing the country of this object. Must be in ISO 3166-1 alpha-2 form.

Min length: 2
email_address
string
A valid email address.

Format: email
phone_number
string
A phone number in E.164 format.
id_number
object
The ID number associated with a Beacon User.
value
requiredstring
Value of identity document value typed in by user. Alpha-numeric, with all formatting characters stripped.
type
requiredstring
A globally unique and human readable ID type, specific to the country and document category. For more context on this field, see Hybrid Input Validation.

Possible values: ar_dni, au_drivers_license, au_passport, br_cpf, ca_sin, cl_run, cn_resident_card, co_nit, dk_cpr, eg_national_id, es_dni, es_nie, hk_hkid, in_pan, it_cf, jo_civil_id, jp_my_number, ke_huduma_namba, kw_civil_id, mx_curp, mx_rfc, my_nric, ng_nin, nz_drivers_license, om_civil_id, ph_psn, pl_pesel, ro_cnp, sa_national_id, se_pin, sg_nric, tr_tc_kimlik, us_ssn, us_ssn_last_4, za_smart_id
ip_address
string
An IPv4 or IPV6 address.
report
object
Data for creating a Beacon Report as part of an initial Beacon User creation. Providing a fraud report as part of an initial Beacon User creation will omit the Beacon User from any billing charges.
type
requiredstring
The type of Beacon Report.
first_party: If this is the same individual as the one who submitted the KYC.
third_party: If this is a different individual from the one who submitted the KYC.
synthetic: If this is an individual using fabricated information.
account_takeover: If this individual's account was compromised.
unknown: If you aren't sure who committed the fraud.


Possible values: first_party, third_party, synthetic, account_takeover, unknown
fraud_date
requiredstring
A date in the format YYYY-MM-DD (RFC 3339 Section 5.6).

Format: date
fraud_amount
object
The amount and currency of the fraud or attempted fraud. fraud_amount should be omitted to indicate an unknown fraud amount.
iso_currency_code
requiredstring
An ISO-4217 currency code.

Possible values: USD
Min length: 3
value
requirednumber
The amount value. This value can be 0 to indicate no money was lost. Must not contain more than two digits of precision (e.g., 1.23).

Format: double
client_id
string
Your Plaid API client_id. The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body.
secret
string
Your Plaid API secret. The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body.
Select Language
1const request: BeaconUserCreateRequest = {
2 program_id: 'becprg_11111111111111',
3 client_user_id: 'user-sandbox-b0e2c4ee-a763-4df5-bfe9-46a46bce993d',
4 user: {
5 email_address: 'user@example.com',
6 date_of_birth: '1975-01-18',
7 name: {
8 given_name: 'Leslie',
9 family_name: 'Knope',
10 },
11 address: {
12 street: '123 Main St.',
13 street2: 'Unit 42',
14 city: 'Pawnee',
15 region: 'IN',
16 postal_code: '46001',
17 country: 'US',
18 },
19 },
20 report: {
21 type: 'first_party',
22 fraud_date: '1990-05-29',
23 },
24};
25
26try {
27 const response = await plaidClient.beaconUserCreate(request);
28 console.log(response.status.value);
29} catch (error) {
30 // handle error
31}
beacon/user/create

Response fields and example

id
string
ID of the associated Beacon User.
created_at
string
An ISO8601 formatted timestamp.

Format: date-time
updated_at
string
An ISO8601 formatted timestamp. This field indicates the last time the resource was modified.

Format: date-time
status
string
A status of a Beacon User.
rejected: The Beacon User has been rejected for fraud. Users can be automatically or manually rejected.
pending_review: The Beacon User has been marked for review.
cleared: The Beacon User has been cleared of fraud.


Possible values: rejected, pending_review, cleared
program_id
string
ID of the associated Beacon Program.
client_user_id
string
A unique ID that identifies the end user in your system. This ID can also be used to associate user-specific data from other Plaid products. Financial Account Matching requires this field and the /link/token/create client_user_id to be consistent. Personally identifiable information, such as an email address or phone number, should not be used in the client_user_id.

Min length: 1
user
object
A Beacon User's data and resulting analysis when checked against duplicate records and the Beacon Fraud Network.
date_of_birth
string
A date in the format YYYY-MM-DD (RFC 3339 Section 5.6).

Format: date
name
object
The full name for a given Beacon User.
given_name
string
A string with at least one non-whitespace character, with a max length of 100 characters.
family_name
string
A string with at least one non-whitespace character, with a max length of 100 characters.
address
object
Even if an address has been collected, some fields may be null depending on the region's addressing system. For example:
Addresses from the United Kingdom will not include a region
Addresses from Hong Kong will not include a postal code
street
string
The primary street portion of an address. If the user has submitted their address, this field will always be filled.
street2
nullablestring
Extra street information, like an apartment or suite number.
city
string
City from the end user's address
region
nullablestring
An ISO 3166-2 subdivision code. Related terms would be "state", "province", "prefecture", "zone", "subdivision", etc.
postal_code
nullablestring
The postal code for the associated address. Between 2 and 10 alphanumeric characters. For US-based addresses this must be 5 numeric digits.
country
string
Valid, capitalized, two-letter ISO code representing the country of this object. Must be in ISO 3166-1 alpha-2 form.

Min length: 2
email_address
nullablestring
A valid email address.

Format: email
phone_number
nullablestring
A phone number in E.164 format.
id_number
object
The ID number associated with a Beacon User.
value
string
Value of identity document value typed in by user. Alpha-numeric, with all formatting characters stripped.
type
string
A globally unique and human readable ID type, specific to the country and document category. For more context on this field, see Hybrid Input Validation.

Possible values: ar_dni, au_drivers_license, au_passport, br_cpf, ca_sin, cl_run, cn_resident_card, co_nit, dk_cpr, eg_national_id, es_dni, es_nie, hk_hkid, in_pan, it_cf, jo_civil_id, jp_my_number, ke_huduma_namba, kw_civil_id, mx_curp, mx_rfc, my_nric, ng_nin, nz_drivers_license, om_civil_id, ph_psn, pl_pesel, ro_cnp, sa_national_id, se_pin, sg_nric, tr_tc_kimlik, us_ssn, us_ssn_last_4, za_smart_id
ip_address
nullablestring
An IPv4 or IPV6 address.
audit_trail
object
Information about the last change made to the parent object specifying what caused the change as well as when it occurred.
source
string
A type indicating what caused a resource to be changed or updated.
dashboard - The resource was created or updated by a member of your team via the Plaid dashboard.
api - The resource was created or updated via the Plaid API.
system - The resource was created or updated automatically by a part of the Plaid Beacon system. For example, if another business using Plaid Beacon created a fraud report that matched one of your users, your matching user's status would automatically be updated and the audit trail source would be system.
bulk_import - The resource was created or updated as part of a bulk import process. For example, if your company provided a CSV of user data as part of your initial onboarding, the audit trail source would be bulk_import.


Possible values: dashboard, api, system, bulk_import
dashboard_user_id
nullablestring
ID of the associated user.
request_id
string
A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
1{
2 "id": "becusr_11111111111111",
3 "created_at": "2020-07-24T03:26:02Z",
4 "updated_at": "2020-07-24T03:26:02Z",
5 "status": "cleared",
6 "program_id": "becprg_11111111111111",
7 "client_user_id": "your-db-id-3b24110",
8 "user": {
9 "date_of_birth": "1990-05-29",
10 "name": {
11 "given_name": "Leslie",
12 "family_name": "Knope"
13 },
14 "address": {
15 "street": "123 Main St.",
16 "street2": "Unit 42",
17 "city": "Pawnee",
18 "region": "IN",
19 "postal_code": "46001",
20 "country": "US"
21 },
22 "email_address": "user@example.com",
23 "phone_number": "+19876543212",
24 "id_number": {
25 "value": "123456789",
26 "type": "us_ssn"
27 },
28 "ip_address": "192.0.2.42"
29 },
30 "audit_trail": {
31 "source": "dashboard",
32 "dashboard_user_id": "54350110fedcbaf01234ffee"
33 },
34 "request_id": "saKrIBuEB9qJZng"
35}
Was this helpful?

/beacon/user/get

This feature is in currently in beta; Your account must be enabled for this feature in order to test it in Sandbox. To enable this feature or check your status, contact your account manager or submit a product access Support ticket.

Get a Beacon User

Fetch a Beacon User.
The Beacon User is returned with all of their associated information and a status based on the Beacon Network duplicate record and fraud checks.

beacon/user/get

Request fields and example

beacon_user_id
requiredstring
ID of the associated Beacon User.
client_id
string
Your Plaid API client_id. The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body.
secret
string
Your Plaid API secret. The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body.
Select Language
1const request: BeaconUserGetRequest = {
2 beacon_user_id: 'becusr_11111111111111',
3};
4
5try {
6 const response = await plaidClient.beaconUserGet(request);
7} catch (error) {
8 // handle error
9}
beacon/user/get

Response fields and example

id
string
ID of the associated Beacon User.
created_at
string
An ISO8601 formatted timestamp.

Format: date-time
updated_at
string
An ISO8601 formatted timestamp. This field indicates the last time the resource was modified.

Format: date-time
status
string
A status of a Beacon User.
rejected: The Beacon User has been rejected for fraud. Users can be automatically or manually rejected.
pending_review: The Beacon User has been marked for review.
cleared: The Beacon User has been cleared of fraud.


Possible values: rejected, pending_review, cleared
program_id
string
ID of the associated Beacon Program.
client_user_id
string
A unique ID that identifies the end user in your system. This ID can also be used to associate user-specific data from other Plaid products. Financial Account Matching requires this field and the /link/token/create client_user_id to be consistent. Personally identifiable information, such as an email address or phone number, should not be used in the client_user_id.

Min length: 1
user
object
A Beacon User's data and resulting analysis when checked against duplicate records and the Beacon Fraud Network.
date_of_birth
string
A date in the format YYYY-MM-DD (RFC 3339 Section 5.6).

Format: date
name
object
The full name for a given Beacon User.
given_name
string
A string with at least one non-whitespace character, with a max length of 100 characters.
family_name
string
A string with at least one non-whitespace character, with a max length of 100 characters.
address
object
Even if an address has been collected, some fields may be null depending on the region's addressing system. For example:
Addresses from the United Kingdom will not include a region
Addresses from Hong Kong will not include a postal code
street
string
The primary street portion of an address. If the user has submitted their address, this field will always be filled.
street2
nullablestring
Extra street information, like an apartment or suite number.
city
string
City from the end user's address
region
nullablestring
An ISO 3166-2 subdivision code. Related terms would be "state", "province", "prefecture", "zone", "subdivision", etc.
postal_code
nullablestring
The postal code for the associated address. Between 2 and 10 alphanumeric characters. For US-based addresses this must be 5 numeric digits.
country
string
Valid, capitalized, two-letter ISO code representing the country of this object. Must be in ISO 3166-1 alpha-2 form.

Min length: 2
email_address
nullablestring
A valid email address.

Format: email
phone_number
nullablestring
A phone number in E.164 format.
id_number
object
The ID number associated with a Beacon User.
value
string
Value of identity document value typed in by user. Alpha-numeric, with all formatting characters stripped.
type
string
A globally unique and human readable ID type, specific to the country and document category. For more context on this field, see Hybrid Input Validation.

Possible values: ar_dni, au_drivers_license, au_passport, br_cpf, ca_sin, cl_run, cn_resident_card, co_nit, dk_cpr, eg_national_id, es_dni, es_nie, hk_hkid, in_pan, it_cf, jo_civil_id, jp_my_number, ke_huduma_namba, kw_civil_id, mx_curp, mx_rfc, my_nric, ng_nin, nz_drivers_license, om_civil_id, ph_psn, pl_pesel, ro_cnp, sa_national_id, se_pin, sg_nric, tr_tc_kimlik, us_ssn, us_ssn_last_4, za_smart_id
ip_address
nullablestring
An IPv4 or IPV6 address.
audit_trail
object
Information about the last change made to the parent object specifying what caused the change as well as when it occurred.
source
string
A type indicating what caused a resource to be changed or updated.
dashboard - The resource was created or updated by a member of your team via the Plaid dashboard.
api - The resource was created or updated via the Plaid API.
system - The resource was created or updated automatically by a part of the Plaid Beacon system. For example, if another business using Plaid Beacon created a fraud report that matched one of your users, your matching user's status would automatically be updated and the audit trail source would be system.
bulk_import - The resource was created or updated as part of a bulk import process. For example, if your company provided a CSV of user data as part of your initial onboarding, the audit trail source would be bulk_import.


Possible values: dashboard, api, system, bulk_import
dashboard_user_id
nullablestring
ID of the associated user.
request_id
string
A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
1{
2 "id": "becusr_11111111111111",
3 "created_at": "2020-07-24T03:26:02Z",
4 "updated_at": "2020-07-24T03:26:02Z",
5 "status": "cleared",
6 "program_id": "becprg_11111111111111",
7 "client_user_id": "your-db-id-3b24110",
8 "user": {
9 "date_of_birth": "1990-05-29",
10 "name": {
11 "given_name": "Leslie",
12 "family_name": "Knope"
13 },
14 "address": {
15 "street": "123 Main St.",
16 "street2": "Unit 42",
17 "city": "Pawnee",
18 "region": "IN",
19 "postal_code": "46001",
20 "country": "US"
21 },
22 "email_address": "user@example.com",
23 "phone_number": "+19876543212",
24 "id_number": {
25 "value": "123456789",
26 "type": "us_ssn"
27 },
28 "ip_address": "192.0.2.42"
29 },
30 "audit_trail": {
31 "source": "dashboard",
32 "dashboard_user_id": "54350110fedcbaf01234ffee"
33 },
34 "request_id": "saKrIBuEB9qJZng"
35}
Was this helpful?

/beacon/report/create

This feature is in currently in beta; Your account must be enabled for this feature in order to test it in Sandbox. To enable this feature or check your status, contact your account manager or submit a product access Support ticket.

Create a Beacon Report

Create a fraud report for a given Beacon User.
Note: If you are creating users with the express purpose of providing historical fraud data, you should use the /beacon/user/create endpoint instead and embed the fraud report in the request. This will ensure that the Beacon User you create will not be subject to any billing costs.

beacon/report/create

Request fields and example

beacon_user_id
requiredstring
ID of the associated Beacon User.
type
requiredstring
The type of Beacon Report.
first_party: If this is the same individual as the one who submitted the KYC.
third_party: If this is a different individual from the one who submitted the KYC.
synthetic: If this is an individual using fabricated information.
account_takeover: If this individual's account was compromised.
unknown: If you aren't sure who committed the fraud.


Possible values: first_party, third_party, synthetic, account_takeover, unknown
fraud_date
requiredstring
A date in the format YYYY-MM-DD (RFC 3339 Section 5.6).

Format: date
fraud_amount
object
The amount and currency of the fraud or attempted fraud. fraud_amount should be omitted to indicate an unknown fraud amount.
iso_currency_code
requiredstring
An ISO-4217 currency code.

Possible values: USD
Min length: 3
value
requirednumber
The amount value. This value can be 0 to indicate no money was lost. Must not contain more than two digits of precision (e.g., 1.23).

Format: double
client_id
string
Your Plaid API client_id. The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body.
secret
string
Your Plaid API secret. The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body.
Select Language
1const request: BeaconReportCreateRequest = {
2 beacon_user_id: 'becusr_11111111111111',
3 type: 'first_party',
4 fraud_date: '1975-01-18',
5};
6
7try {
8 const response = await plaidClient.beaconReportCreate(request);
9} catch (error) {
10 // handle error
11}
beacon/report/create

Response fields and example

id
string
ID of the associated Beacon Report.
beacon_user_id
string
ID of the associated Beacon User.
created_at
string
An ISO8601 formatted timestamp.

Format: date-time
type
string
The type of Beacon Report.
first_party: If this is the same individual as the one who submitted the KYC.
third_party: If this is a different individual from the one who submitted the KYC.
synthetic: If this is an individual using fabricated information.
account_takeover: If this individual's account was compromised.
unknown: If you aren't sure who committed the fraud.


Possible values: first_party, third_party, synthetic, account_takeover, unknown
fraud_date
string
A date in the format YYYY-MM-DD (RFC 3339 Section 5.6).

Format: date
fraud_amount
object
The amount and currency of the fraud or attempted fraud. fraud_amount should be omitted to indicate an unknown fraud amount.
iso_currency_code
string
An ISO-4217 currency code.

Possible values: USD
Min length: 3
value
number
The amount value. This value can be 0 to indicate no money was lost. Must not contain more than two digits of precision (e.g., 1.23).

Format: double
audit_trail
object
Information about the last change made to the parent object specifying what caused the change as well as when it occurred.
source
string
A type indicating what caused a resource to be changed or updated.
dashboard - The resource was created or updated by a member of your team via the Plaid dashboard.
api - The resource was created or updated via the Plaid API.
system - The resource was created or updated automatically by a part of the Plaid Beacon system. For example, if another business using Plaid Beacon created a fraud report that matched one of your users, your matching user's status would automatically be updated and the audit trail source would be system.
bulk_import - The resource was created or updated as part of a bulk import process. For example, if your company provided a CSV of user data as part of your initial onboarding, the audit trail source would be bulk_import.


Possible values: dashboard, api, system, bulk_import
dashboard_user_id
nullablestring
ID of the associated user.
request_id
string
A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
1{
2 "id": "becrpt_11111111111111",
3 "beacon_user_id": "becusr_11111111111111",
4 "created_at": "2020-07-24T03:26:02Z",
5 "type": "first_party",
6 "fraud_date": "1990-05-29",
7 "fraud_amount": {
8 "iso_currency_code": "USD",
9 "value": 100
10 },
11 "audit_trail": {
12 "source": "dashboard",
13 "dashboard_user_id": "54350110fedcbaf01234ffee"
14 },
15 "request_id": "saKrIBuEB9qJZng"
16}
Was this helpful?
Developer community
GitHub
GitHub
Stack Overflow
Stack Overflow
YouTube
YouTube
Twitter
Twitter
Discord
Discord