Prerequisites
- Sign up to the Paxos Dashboard in Sandbox
- Reach out to Support to provision access to the Identity API
Authenticate in Sandbox
Create an API Key on the Sandbox Paxos Dashboard with the following scopes to access the Identity, Account and Order APIs needed for this guideidentity:read_identity
identity:read_account
identity:write_identity
identity:write_account
funding:read_profile
funding:write_profile
exchange:read_order
exchange:write_order
access_token
from OAuth
access_token
to use in the request authorization header
throughout this guide.
Include the Authorization header with the bearer token on all API requests
-H "Authorization: Bearer $TOKEN"
.Creating a Person Identity and Account
➊ Creating an Identity with Passthrough Verification
To create a person identity, Paxos requires both- The details of the person according to the Person Required Details Grid
- Data on who has completed identity verification (IDV) of the person.
Passthrough
Setverifier_type
to PASSTHROUGH
and then provide details about how and when IDV was conducted for this user by setting:
passthrough_verifier_type
- the company of the IDV providerpassthrough_verified_at
- when IDV was completed for the userpassthrough_verification_id
- external id for the IDV record in the IDV provider’s systempassthrough_verification_status
- the current status of IDV,APPROVED
if verifiedpassthrough_verification_fields
- the set of fields used to verify the user during IDV
verifier_type
is set to PASSTHROUGH
.
The
cip_id
of an Identity is required to be unique. If a 409 duplicate cip_id
error occurs,
handle it by either:identity_id
of the newly created Identity and notice the status of the Identity is PENDING
.
Paxos will make an Onboarding Decision and asynchronously update the status to either DENIED
or APPROVED
.
An Identity might stay in
PENDING
due to being deemed high risk by Paxos. This Identity will be
required to undergo Enhanced Due Diligence. See how to automate document collection to
allow HIGH
risk customers to onboard to Paxos.➋ Wait for the Identity to be Approved
Using the above details should result in auto-approval of the Identity. You can immediately call the Get Identity endpoint and see thesummary_status
is APPROVED
.
- If the Identity is stuck in
PENDING
, read the Identity Status guide to help pinpoint why. If you have further questions, you can reach out to Support. - Use a Webhook integration to asynchronously process
identity.approved
andidentity.denied
events to notify users when they have been onboarded to Paxos.
➌ Creating an Account and Profile
Now we are ready to make an Account and Profile for the Identity. An Account logically relates to a user’s brokerage account, an Identity therefore can have one or many Accounts.Single Owner Account
Thecreate_profile
flag must be set to true
, this will ensure a Profile is created for the Account. This is how to
create accounts and profiles for a Fiat and Crypto Subledger integration.
Joint Accounts
For accounts with more than one owner, for example a joint brokerage account, both owners are required to have an Identity created on the Paxos Platform. An Account and Profile is then created for a designated primary account owner with any additional owners being set inmembers
with the
BENEFICIAL_OWNER
role.
Identities can be added or removed from an Account after creation using the Add Account Members and Delete Account Member endpoints respectively
Booking an Order
We will use the Order API to create buy and sell orders. We recommend also taking a look at the FIX and WebSocket solutions and using the best combination of APIs for the specific use case.➊ Fund the Account
In a complete integration, follow the Fiat Transfers Funding Flow guide to learn how to fund user assets using a Fiat Deposit. For this guide, we will use the sandbox-only Test Funds feature in Dashboard to fund the Identity with $10,000 USD. First, navigate to the Dashboard Landing Page and locate theFund
button


➋ Creating a Order
To book an order, specify theprofile_id
which is linked to the account_id
created above (if one
exists, else the omnibus profile_id
).