Integrations & APIs

Standard API

Getting Started

XChange Advantage Standard API empowers customers to build seamless bi-directional HTTP/SOAP integrations to the First Advantage Screening platform.

Supported Protocols: XML over HTTPS (POST) and SOAP (Simple Object Access Protocol) over HTTPS (web services) transactions.  

Using XChange Advantage Standard API, you can integrate the following services from within your application:

  •  Manage Screening program  – User accounts, passwords, and profiles 
  •  Package Introspection – Get a list of Packages and Screening options available in your account  
  •  Screening Order – Initiate/update a Screening order or send e-mail invitation to Candidate to complete the application  
  •  View Status/Screening Results – On-demand pull of status and URL link to live report 
  •  Webhooks – Receive real-time post to your URL for case Status notifications and Screening results

All that is required is an API account on our system (available upon request). Our documentation will guide you with what you need to know to begin consuming the XChange Advantage Standard API on your development platform.

Screening Account / User Management

Account Management Methods

Account List – Retrieve all accounts/sub accounts configured for a screening program

Package Introspection – Retrieve all Screening packages configured for a given account

User Provisioning - Ability to create new users, update users (Access, Options and Groups)

User Profile Association - Ability to associate users to Profiles (Access control)

              
<?xml version="1.0" encoding="UTF-8"?>
<!-- Sample XML 
request for Package 
Introspection
 - List of all packages under 
account 900000JAC -->
<ChoicePointAdminRequest xmlns="http://www.cpscreen .com/schemas" xmlns:xsi="http://www.w3. org/2001/XMLSchema-instance" userId="simple" account="900000JAC" password="********" xsi:schemaLocation="http://www .cpscreen.com/schemas/ AdminRequest.xsd">
   <PackageDetail>
      <PackageId>ALL</PackageId>
   </PackageDetail>
</ChoicePointAdminRequest>

Screening Order Models

XChange Advantage Standard API offers three screening ordering models:

One-Step Screening Order Model

The one-step process allows for a fully automated system-to-system interface.  When a request is received, the First Advantage system will create a screening order.

Two-Step Screening Order Model

The two-step process interfaces the XML services with Enterprise Advantage website.  The XML request is used to pre-populate a First Advantage order.

Candidate Invite Screening Order Model

Invite Candidate to complete their application in our Direct Advantage Candidate platform

              
<-- Sample XML SOAP 
request using the One-step
 Screening Order Model -->     
<soap:Envelope xmlns:soap
="http://schemas.xmlsoap.o
rg/soap/envelope/"   
xmlns:xsi="http://www.w3
.org/2001/XMLSchema-instance" 
xmlns:xsd="http://www.w3.
org/2001/XMLSchema">  
<soap:Body>     
<BackgroundCheck xmlns=
"http://www.cpscreen.com/
schemas" 
userId="simple" 
account="900000JAC" 
password="********">     
<BackgroundSearchPackage>     
<PackageInformation>    
<PackageId>1967
</PackageId>     
<PositionAppliedFor>
Tutor
</PositionAppliedFor>     
<CopyToApplicant>0
</CopyToApplicant>     
<ClientReferences>     
<ClientReference>
Math Department
</ClientReference>     
</ClientReferences>     
<Quotebacks>     
<Quoteback name=
"EmployeeID">9289102
</Quoteback>     
<<Quotebacks>     
<OrderAccount>     
<UserId>simple</UserId>     
<Account>900000JAC
</Account>     
</OrderAccount>     
</PackageInformation>     
<PersonalData>     
<PersonName type=
"subject">     
<GivenName>Mike
</GivenName>     
<FamilyName>Schwartz
</FamilyName>     
</PersonName>     
<PostalAddress>     
<PostalCode>30328
</PostalCode>     
<Region>GA</Region>    
 <Municipality>Atlanta
</Municipality>     
<DeliveryAddress>     
<AddressLine>
1 Concourse Parkway NE
</AddressLine>     
<AddressLine>Suite 200
</AddressLine>     
</DeliveryAddress>     
</PostalAddress>     
<DemographicDetail>     
<GovernmentId 
issuingAuthority="SSN"
>777889999</Governm
entId>     
<DateOfBirth>1998-07-12
</DateOfBirth>     
</DemographicDetail>     
</PersonalData>     
</BackgroundSearch
Package>    
</BackgroundCheck>     
</soap:Body>    
</soap:Envelope>

Screening Status And Report Viewing Methods

Get Link – Synchronous order results (On-Demand Pull) returns the case status and Link URL to the full Screening report. Link request can only be used once.

Get Status – Synchronous order status (On-Demand Pull): returns status and elements of a Screening report. also includes URL link to the Screening report.

              
<!-- Get link URL 
to the full Screening 
Report -->  
<CPLinkRequest 
xmlns="http://www.c
pscreen.com/schemas" 
xmlns:xsi="http://www.w3
.org/2001/XMLSchema-
instance" xsi:schema
Location
="http://www.cpscre
en.com/schemas 
CPLinkRequest.xsd" 
account="900000JAC" 
userId="simple" 
password="********">  
<Type>Report<
/Type>  
<ProviderReference
Id>WPS-99999999
</ProviderReferenceId>  
</CPLinkRequest>   
<!-- Search and return the 
case detail for a screening 
order  -->  
<?xml version="1.0" encoding
="UTF-8"?>  
<BackgroundReports 
xmlns="http://www.cpscre
en.com/schemas" 
xmlns:util="wps.common
.util.Util" 
xmlns:orderUtil="wps.ser
ver.orders.util.OrderUtil" 
xmlns:element="http://
www.choicepoint.com" 
xmlns:case="http://www.
choicepoint.com" 
xmlns:xsi="http://www.w3
.org/2001/XMLSchema-
instance" 
xsi:schemaLocation=
"http://www.cpscreen.
com/schemas 
CPBackgroundReports.xsd" 
userId="" account="">  
<BackgroundReportPackage
 type="report">  
<ProviderReferenceId>
WPS-99999999
</ProviderReferenceId>  
<PackageInformation>  
<ClientReferences>  
<ClientReference>Math 
Department
</ClientReference> 
</ClientReferences>  
<Quotebacks>  
<Quoteback name=
"EmployeeID">
9289102</Quoteback>  
</Quotebacks>  
<OrderAccount>  
<UserId>Simple<
/UserId>  
<Account>
900000JAC
</Account>  
</OrderAccount>  
</PackageInformation>  
<PersonalData>  
<PersonName type=
"subject">  
<GivenName>MIKE
</GivenName>  
<MiddleName>STEVE
</MiddleName>  
<FamilyName>
SCHWARTZ
</FamilyName>  
</PersonName>  
<DemographicDetail>  
<GovernmentId 
issuingAuthority=
"SSN">777889999
</GovernmentId>  
</DemographicDetail>  
</PersonalData>  
<ScreeningStatus>  
<OrderStatus>
InProgress
</OrderStatus>  
</ScreeningStatus>  
<ScreeningResults 
mediaType="html">  
<InternetWebAddress>
https://enterprisetest.fadv.
com/pub/l/login/userLog
in.do?referer=https://enterp
risetest.fadv.com/pub/l/jsp/
menu/orderViewingMenu
FrameSet.jsp?key=xxxxxxxxx
</InternetWebAddress>  
</ScreeningResults>  
<Screenings>  
<Screening type=
"PRINCRF" subtype=
"NCRF">  
<ScreeningStatus>  
<OrderStatus>
InProgress
</OrderStatus>  
</ScreeningStatus>  
</Screening>  
<Screening type=
"SSNV">  
<ScreeningStatus>  
<OrderStatus>
InProgress
</OrderStatus>  
</ScreeningStatus>  
</Screening>  
</Screenings>  
</BackgroundReport
Package>  
</BackgroundReports>
            

Webhooks

Notification Status 

Provides asynchronous Webhook real-time status notifications with configurable transformations of content, enable full detailed report results in notification content (HTML/XML),  Email status notifications also available

              
<?xml version="1.0" 
encoding="UTF-8"?>  
<BackgroundReports 
xmlns:orderUtil="wps.
server.orders.util.OrderUtil"
 xmlns:element="http://www
.choicepoint.com" xmlns:
case=“http://www.choicepoi
nt.com" xmlns:xsi="http://ww
w.w3.org/2001/XMLSchema-
instance" userId="FADV" 
account="100000">  
<BackgroundReportPackage 
type="report">  
<ProviderReferenceId>  
<IdValue>WPS-99999999
</IdValue>  
</ProviderReferenceId>  
<PackageId>  
<IdValue>1967</Id
Value>  
</PackageId>  
<ScreeningStatus>  
<OrderStatus>Submitted
</OrderStatus>  
<DateOrderReceived>
01/05/2017 07:58:20 A.M.
</DateOrderReceived>  
</ScreeningStatus>  
<ScreeningsSummary>  
<PersonalData>  
<PersonName>  
<GivenName>MIKE
</GivenName>  
<MiddleName>STEVE
</MiddleName>  
<FamilyName>
SCHWARTZ
</FamilyName>  
</PersonName>  
<DemographicDetail>  
<GovernmentId>
777-88-XXXX
</GovernmentId>  
<DateOfBirth>
XXXX-07-12
</DateOfBirth>  
</DemographicDetail>  
</PersonalData>  
<ClientReferences>    
<ClientReference>
Math Department
</ClientReference>  
</ClientReferences>  
<Quotebacks>    
<Quoteback name="EmployeeID"
>9289102</Quoteback>  
</Quotebacks>  
</ScreeningsSummary>  
<Screenings>  
<Screening type="PRINCRP" 
subtype="NCRP" desc="DATA
BASE SEARCH">  
<ScreeningStatus>  
<OrderStatus>InProgress
</OrderStatus>  
</ScreeningStatus>  
<ScreeningResults type="" 
mediaType="" resultType="">  
<Text/>  
<InternetWebAddress>
https://enterprisetest.fadv.com
/pub/l/login/userLogin.do?Link
</InternetWebAddress>  
</ScreeningResults>  
</Screening>  
</Screenings>  
</BackgroundReportPackage>  
</BackgroundReports>
            

Errors

CodeDescription
100Invalid XML
200Invalid login
210User is locked
220Password is expired
240Account or user is disabled
250Invalid Order Account
300Invalid package
320Missing required value
500Error with request (This is a “catch-all” for unexpected errors )
              
<!-- Sample XML 
error code 
response for error 250  
-->  <ErrorReport>    
<ErrorCode>250
</ErrorCode>    
<ErrorDescription>
Invalid 'OrderAccount'
</ErrorDescription>  
</ErrorReport>