Creating an Account
New process
This guide provides instructions for using Create Account when the integrated ID verification process is the Identity Verification Service (IVS), which replaced the previous integration solution in June 2026.
If you are using the SoFi Tech Solutions legacy CIP process, refer to the <a href="doc:creating-an-account-with-legacy-cip target="_blank">Creating an Account with Legacy CIP guide.
This guide describes the procedure for creating a new customer account using the Create Account endpoint. With these endpoints you can optionally issue a card and deposit funds into the account at the same time that you create the new account.
Note
When creating an account for a new customer you must perform Customer ID Verification. You should also read the About Accounts guide to familiarize yourself with SoFi Tech Solutions' account structure and conventions.
Follow this procedure to:
- Onboard a new customer for a physical card.
- Onboard a new customer for a virtual card.
- Create a secondary account for a different customer than the primary account holder, such as a spouse or child.
Do not follow this procedure to:
- Add a secondary account to an existing customer; instead, see the Adding an Account guide.
- Add an overdraft account; instead, see the Creating an Overdraft Account guide.
- Create an instant-issue card; instead, see Setup for Instant Issue.
- Create an account for a Digital First account, where you provide a digital version of the card for customers to use while the physical card arrives; instead, consult Digital First cards in the Choose a Card Strategy guide.
Result of calling Create Account
When Create Account has run successfully, these new items are created in the system. See New account creation in the About Accounts guide for details.
- Customer record — Contains the customer's personal data such as address, date of birth, and contact information.
- Account record — Contains general account information.
- Card record (for card products) — Contains card information.
Parameters
This table contains the parameters that are typically populated for the Create Account endpoint when creating a standard account (with or without a card). See the Create Account reference for details. Parameters that are omitted from this table are strictly optional.
Note
Parameters marked with
§might be required for Mexican programs when SoFi Tech Solutions is the BIN sponsor.
| Parameter | Usage |
|---|---|
accountNo | Populate only for instant-issue cards. For all others leave blank. |
id | Required for our IVS integration. Primary ID number. id and idType parameters for instructions. |
idType | Required for our IVS integration. Primary ID type. id is populated. 2 (SSN) and 15 (ITIN) are valid. |
id2§ | Secondary ID number. |
idType2 | Required when id2 is populated. Secondary ID type. |
id3§ | Tertiary ID number. |
idType3 | Required when id3 is populated. Tertiary ID type. |
locale | Customer localization preferences. _US value for this parameter to disable U.S. address validation. Default: EN |
| Customer profile parameters | Required for our IVS integration and for the customer record. |
primaryPhone | The system uses this number to send IVS-related SMS messages, so this must be a mobile number. You must also populate mobilePhoneCountryCode if you pass any phone parameters. SoFi Tech Solutions recommends that you populate mobilePhone and primaryPhone with the same number. |
mobilePhone | When provisioning cards to mobile wallets or sending other types of SMS messages, the system uses this number. You must also populate mobilePhoneCountryCode if you pass any phone parameters. SoFi Tech Solutions recommends that you populate mobilePhone and primaryPhone with the same number. |
nationality§ | Current country where the applicant is a citizen. |
placeOfBirth§ | Country where the applicant was born, in ISO 3166 format. |
curp§ | CURP identifier. |
politicalAffiliation§ | Whether the applicant is a PEP. |
kycRefNo§ | The reference number from your KYC process to link to the customer record in the system. |
prodId | Required. The identifier for the product the customer is signing up for. |
loadAmount | Populate only if the product is configured to deposit funds into the account at creation time. |
loadType | Required when loadAmount is populated. |
externalAccountId | This field is for your own purposes. SoFi Tech Solutions stores but does not process this parameter; however, it can be updated with the Update Account endpoint (active accounts only), you can retrieve it using the Verify Account endpoint, and it is provided in the RDFs. You can use this parameter in cooperation with your card embosser to dynamically select card art, or you can input customer identifiers for your own back-end systems. |
primaryAccount | Populate only when creating a secondary account or when adding an authorizedUser. |
sharedBalance | Required when primaryAccount is populated. 1 when creating a secondary account that will transact on the same balance as the primaryAccount. authorizedUser to the account, passing 1 is required. 0 if the account balances will not be shared. |
verifyOnly | Pass 1 to verify the parameter values in your API request without creating an account or running customer ID verification. |
cipStatus | Legacy CIP only. Status code 2 — Invalid parameter(s). |
loadFromAccountNo | For depositing funds into the new account from another account in the same program. You must also pass loadAmount and loadType when populating this parameter. |
expressMail | Populate to ship the card via accelerated delivery. Valid values come from your emboss vendor. |
shipToAddressPermanent | Pass 1 to make the ship-to address information permanent, meaning that you don't have to provide a new ship-to address every time you send a new card to the embosser. |
shipTo parameters | Populate for physical cards when the shipping address is different from the primary address. |
businessName | Required when prodId is a business account. businessName parameter for the validation rules. |
mobilePhoneCountryCode | Required when any of the phone parameters are populated. |
authorizedUser | Specifies whether the applicant is to be an authorized user for an existing account. When this parameter is 1, then primaryAccount must be populated and sharedBalance: 1. |
riskContextId | IVS only. A session-correlation token that you can pass to IVS. This token would be obtained from any front-end risk process that you run prior to calling Create Account. |
Account-creation workflow
Consult these sections for the Create Account workflows: the first when using a standalone identity-verification system and the second when using SoFi Tech Solutions' integrated IVS process.
Note
Call the Create Account endpoint only once per customer when onboarding. Because these endpoints create a customer record, it is important that only one record be created per customer.
Create Account without integrated ID verification
This section describes the logical progression of the Create Account endpoint and subsequent backend processes when using a standalone customer ID validation solution, either SoFi Tech Solutions' IVS or a third-party solution. The actual sequence of events in the system may vary.
Note
The Account Events messages are sent to you according to the arrangements you have made with SoFi Tech Solutions.
- Retrieve customer information from your web page or mobile app.
- Send the customer information to your customer ID validation provider.
- When customer ID validation is successful, populate the Create Account request and send.
- The system performs a number of preliminary checks. Failures return these status codes:
407-04— Load amount outside of load limits.407-12— An application with the same ID has already been submitted.407-18— Specified load from account number is invalid
- The system creates an account with
status: W(Waiting to Be Processed). If the account cannot be created the endpoint returnsstatus_code: 407-05. - According to product settings, the system creates a card entry in the database and deposits funds into the account.
- The card-related fields (
card_number[PAN],expiry_date, andcard_security_code[CVV] are masked or empty unless you are PCI compliant. - If depositing funds is not successful, these status codes are returned:
407-14— Success -- partial limit violation407-15— Success -- delayed payment
- The card-related fields (
- If all processes have been successful, the system sends two messages:
- Endpoint response with
status_code: 0(successful) - Account Events webhook message
CAPP: app_completed.
- Endpoint response with
- The system runs an account setup process to determine whether other criteria for the account have been fulfilled, according to product settings. When all criteria are fulfilled, the system checks the XAACT product parameter for how to set the account status:
- First character — Account active/inactive (Y/N)
- Second character — Account status
- Third character — Card status (if any)
For example, if the product is a card account, and XAACT is YNX, then when account setup is completed these are the settings:
- Account
active: Y - Account
status: N(active) - Card
status: X(set to emboss)
See Lifecycle of a card in Setting Up a Card Program for the next steps when the account has a card.
Create Account using IVS integration
This section describes the logical progression of the Create Account endpoint and subsequent backend processes when using SoFi Tech Solutions' integrated IVS. The actual sequence of events in the system may vary.
Note
The Account Events messages are sent to you according to the arrangements you have made with SoFi Tech Solutions.
- Collect customer information from your web page or mobile app.
- SoFi Tech Solutions recommends that you make
primaryPhonerequired on your interface for IVS integration. This number is used in combination withmobilePhoneCountryCodeto send an SMS message for the customer to upload additional documentation.
- SoFi Tech Solutions recommends that you make
- Populate the Create Account request and send.
- The system performs a number of preliminary checks. Failures return these status codes:
407-04— Load amount outside of load limits.407-12— An application with the same ID has already been submitted.407-18— Specified load from account number is invalid
- The system sends the customer information to IVS.
- If there is a technical error while contacting IVS or receiving its response, the endpoint returns
status_code: 407-05. No account is created.
- If there is a technical error while contacting IVS or receiving its response, the endpoint returns
- The system creates the customer account with
status: W(Waiting to Be Processed). - According to product settings, the system creates a card entry in the database and deposits funds into the account.
- The card-related fields (
card_number[PAN],expiry_date, andcard_security_code[CVV] are masked or empty unless you are PCI compliant. - If depositing funds is not successful, these status codes are returned:
407-14— Success -- partial limit violation407-15— Success -- delayed payment
- The card-related fields (
- The system evaluates the response from IVS:
- If it reports success (
Pass) the system sends you two messages:- Endpoint response with
status_code: 0(Success).- The
ciparray contains the result (Pass) plusentity_idandcustomer_id, which both contain the app ID.
- The
- Account Events webhook message
CAPP: app_completed.
- Endpoint response with
- If it reports a result that is not
Pass, the system sends these messages:- Endpoint response with
status_code: 407-11(Account created, ID Validation failed).- Even with a non-pass result, the endpoint still creates the account and card, so the card and account-related fields such as
pmt_ref_noandcard_idare present in the response. - The
ciparray contains the results plusentity_idandcustomer_id, which both contain the app ID.Fail— The customer or business is on a watch list or is unlikely to be a real person or business and therefore does not qualify for an account. The account will not be activated.In Progress— Verification is still in progress. The customer or business is likely real, because there was a partial match for the personal or business information and identifier. Additional steps (such as document upload via SMS link) may be triggered asynchronously; they are not returned in the endpoint response.Refer— Verification was referred for manual review. The account is created but will not activate until the review has completed.
- Even with a non-pass result, the endpoint still creates the account and card, so the card and account-related fields such as
- Account Events webhook message
BFID: failed_id.
- Endpoint response with
- If it reports success (
- The system launches an account setup process, which verifies whether all criteria for account creation have been fulfilled.
- If IVS was successful, the system moves the account to
status: P(passed ID verification). - If IVS was not successful, SoFi Tech Solutions moves the account to the status in TIDST (default:
F).
- If IVS was successful, the system moves the account to
- For accounts that pass verification, SoFi Tech Solutions checks the XAACT product parameter for how to set the account status:
- First character — Account active/inactive (
Y/N) - Second character — Account status
- Third character — Card status (if any)
- First character — Account active/inactive (
For example, if the product is a card account, and XAACT is YNX, then when account setup is completed these are the settings:
- Account
active: Y - Account
status: N(normal, active) - Card
status: X(set to emboss)
See Lifecycle of a card in Setting Up a Card Program for the next steps when the account has a card.
Note
The account setup process is a cron job with an interval between 5 and 30 minutes, according to your product settings. For this reason, you will receive the
CAPP: app_completedevent webhook message and the API response before the account is usable.
- See the Activating a Card guide for more information.
- To see account status, call an endpoint such as Get Account Overview or see Retrieving account information in the About Accounts guide for a list of endpoints that retrieve the account status.
View the new account
Use the Get Account Cards endpoint to retrieve account status and other information. Consult Retrieving account information in the About Accounts guide for a list of endpoints and the specific account information they retrieve.
Updated 5 days ago

