For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Help CenterOpenAPI SpecStatus
OverviewInquiriesTransactionsAPI ReferenceChangelog
OverviewInquiriesTransactionsAPI ReferenceChangelog
  • Overview
    • Transactions Overview
    • Transaction API-first lifecycle
  • Model References
    • Overview
    • Transaction Types
    • Building Workflows
    • Connection Objects
  • Integration Guides
    • Reports via API
    • Government ID Verification via API
    • KYB via API
    • Database Verification via API
LogoLogo
Help CenterOpenAPI SpecStatus
On this page
  • Solution overview
  • Pre-integration
  • Integration Steps
  • 1. Create the Transaction
  • Transaction fields
  • Sample cURL command
  • 2. Listen for the Transaction status
  • Transaction statuses
  • Fallback inquiry orchestration
  • Additional fields
  • Additional statuses
Integration Guides

Integration Guide: Reports via API

Was this page helpful?
Previous

Integration Guide: Government ID Verification via API

Next
Built with

Solution overview

  • Silently orchestrates Persona’s Watchlist and Politically Exposed Persons reports on an individual

Pre-integration

  • Make sure your organization is set up with the requisite transaction and workflows
  • Start familiarizing yourself with the configurations for each report

Reach out to your Persona team for assistance on any of these items!

Integration Steps

1. Create the Transaction

  • Please ensure you’re including the reference_id property under the attributes object: this will be the value you use to identify the user’s Persona account
  • Use your Production API key to create Production transactions, and your Sandbox API key to create Sandbox transactions

Transaction fields

Below we’ve outlined all of the fields that can be used as inputs to the reports. Your transaction may come with additional fields that you can use to pass through information to view in Persona.

While the only truly required field is either of the name_ fields, we recommend passing in as much information as you have on the user, which will help cut down on false positives.

FieldTypeDescription
name_firstStringFirst Name
name_lastStringLast name
name_middleStringMiddle name
birthdateDateBirthdate, in the format of YYYY-MM-DD
address_country_codeString2-letter country code, using the ISO 3166 standard

Sample cURL command

JSON
1curl -X POST https://api.withpersona.com/api/v1/transactions \
2-H "Content-Type: application/json" \
3-H "Authorization: Bearer <API KEY>" \
4-d '{
5 "data": {
6 "attributes": {
7 "transaction_type_id": "<your transaction ID>",
8 "reference_id": "<your internal identifier for the user>",
9 "fields": {
10 "name_first": "Persona",
11 "name_last": "Test",
12 "birthdate": "1990-01-01",
13 "address_country_code": "US"
14 }
15 }
16 }
17}'

Visit this Persona Help Center article for sample terms that will trigger reports hits in Sandbox.

2. Listen for the Transaction status

We recommend listening to the transaction.status-updated webhook (docs) to know when to proceed. You can alternatively make an API call to fetch the transaction (docs).

Transaction statuses

To view and edit these statuses, click “… > Custom Statuses” on your transaction type’s page

Status nameDescription
createdTransaction has been created.
approvedTransaction has been approved: you can proceed with the user.
declinedTransaction has been declined: verification unsuccessful or user otherwise declined.
needs_reviewTransaction is awaiting manual review (there was a report hit)
erroredTransaction has errored.

Fallback inquiry orchestration

If your transaction flow includes a fallback to a Persona UI inquiry, you’ll utilize the following additional fields and statuses.

Additional fields

FieldTypeDescription
fallback_inquiry_idStringPersona will create and populate this field with the inquiry ID for you to surface to your user.

Additional statuses

Status nameDescription
pending_fallback_inquiryThe transaction will reach this status if a fallback inquiry has been created. On receipt of this status update, you will know that fallback_inquiry_id has been populated and your next action will be to surface that inquiry.