Authenticate in Sandbox
Both the funding and withdrawal flows require the same scopes, so for simplicity one authentication call should be all you need to complete both flows.When creating API credentials via the Dashboard, theAdd thetransfer:write_sandbox_fiat_depositscope may not appear in the UI. Including the scope when authenticating may result in aninvalid_scopeerror. Contact Support if you run into any issues using this scope.
transfer:read_fiat_account, transfer:write_fiat_account, transfer:read_fiat_deposit_instructions, transfer:write_fiat_deposit_instructions, transfer:write_fiat_withdrawal, transfer:write_sandbox_fiat_deposit, transfer:read_transfer and funding:read_profile scopes to your Sandbox Account
under the API Management setting and then authenticate in Sandbox using the scopes.
access_token to use in the request authorization header
throughout this guide.
Funding Flow
To move USD onto the platform, first use Create Fiat Deposit Instructions to retrieve the Paxos banking information and specify which Profile balance to credit. Then, use the returned banking information, found infiat_network_instructions object, along with the memo_id, to transfer funds to Paxos.
We’ll be following the recommended fiat deposit workflow:
- Authenticate in Sandbox.
- Get instructions from Paxos on how to deposit fiat using Create Fiat Deposit Instructions.
- Send a wire (SWIFT, Fedwire) or CUBIX transfer to Paxos, referencing the
memo_idprovided in the deposit instructions. - Check the status of the deposit using List Transfers.
- View updated balances using Get Profile Balance.
➊ Create Fiat Deposit Instructions
Get instructions from Paxos on how to deposit fiat using Create Fiat Deposit Instructions.- For wires, use
fiat_network“WIRE”. Specify international (SWIFT) or US (Fedwire) by settingrouting_number_typeto “ABA” (for Fedwire) or “SWIFT” (for SWIFT). - For CUBIX, use
fiat_networkCUBIX. Do not userouting_number_type.
Corporate Funding
Retrieve theprofile_id and identity_id (optional) from your records. Use your omnibus profile_id and optionally your corporate identity_id created for you by Paxos.
Create deposit instructions for international wires. Include the following body parameters in the request:
memo_id from the response on the next step in order to fund the Profile.
End User Funding
Retrieve the user’sprofile_id, identity_id and account_id from your records.
Create deposit instructions for international wires (SWIFT) for end user funding.
Include the following body parameters in the request:
memo_id from the response to fund the Profile.
➋ Send Fiat to Paxos
Send a wire (SWIFT, Fedwire) or CUBIX transfer to Paxos, referencing thememo_id to fund your Profile.
For Sandbox environment emulate the wire deposit using Initiate Sandbox Fiat Deposit.
200 status code.
It can take a minute to process the deposit on the backend.
➌ Check Status of Deposit
Find the deposit using List Transfers.Via Profile ID
Include theprofile_id query parameter to filter out transfers to all other Profiles.
Via Identity ID
Include theidentity_id query parameter to filter out transfers to all other Identities.
➍ View Updated Balances
View updated balances using Get Profile Balance.Withdrawal Flow
To move USD off the Platform, first use Create Fiat Account to let Paxos know where to transfer the funds. Then, use the returned Fiat Accountid with Create Fiat Withdrawal to transfer funds to the external account.
We’ll be following the recommended fiat withdrawal workflow:
- Authenticate in Sandbox.
- Save your external bank account information on Paxos using Create Fiat Account. If needed, you can update bank account information using Update Fiat Account.
- Confirm sufficient funds in the associated Profile to process the withdrawal using Get Profile Balance.
- Retrieve the ID for your external bank account using List Fiat Accounts.
- Initiate a fiat withdrawal from Paxos into your external bank account using Create Fiat Withdrawal.
- Check the status of the withdrawal using List Transfers.
- View updated balances using Get Profile Balance.
➊ Create Fiat Account
Save your external bank account information on Paxos using Create Fiat Account.Corporate Funding
Include the following body parameters in your request to create fiat accounts for US domestic wires:id in the response, it will be required to check the Account status in the next steps.
End User Funding
Include the following body parameters in your request to create fiat accounts for SWIFT (international) wires:id in the response, it will be required to check the Account status in the next steps.
➋ Confirm Sufficient Funds
Confirm sufficient funds in the profile to process the withdrawal using Get Profile Balance.➌ Retrieve Bank Account Status
Retrieve the status of your external bank account using Get Fiat Account and providing theid
from the Create Fiat Account response.
There are three statuses for Fiat Accounts: “PENDING”
, \"APPROVED", “REJECTED”. While on \"PENDING", Paxos is
processing your fiat account. Fiat Account status needs to be “APPROVED”` before Fiat Account can be used for withdrawals.id of the bank record for the user. It must be in APPROVED status.
➍ Create Fiat Withdrawal
Initiate a fiat withdrawal from Paxos into your external bank account using Create Fiat Withdrawal.Corporate Funding
Initiate a CUBIX withdrawal. Specify thefiat_account_id of the Fiat Account from the Create Fiat Account response.
End User Funding
Initiate an international wire withdrawal (SWIFT). Specify thefiat_account_id from the Create Fiat Account response.
➎ Check Status of Withdrawal
Check the status of the withdrawal using Get Transfer with theid from the previous step.
➏ View Updated Balances
View updated balances using Get Profile Balance and passing theprofile_id and USD asset in the endpoint’s path.