Create Virtual Card Account

Use the Create Virtual Card Account endpoint to create a virtual card account for a new customer. To create any other type of account for a new customer use the Create Account endpoint.

Create Virtual Account is similar to Create Account except that it accepts only virtual card product IDs for prodId. Consult the Creating an Account procedure for instructions on using this endpoint, and consult the Customer ID Verification guide for how to use this endpoint with the SoFi Tech Solutions legacy CIP solution.

📘

Note

You must be PCI-compliant to use this endpoint. If you are not PCI compliant, use the Create Account endpoint and specify a virtual card product for prodId.

📘

Note

If this endpoint returns a status code that does not match a status code that is specific to this endpoint, it may be an enrollment status code. See Enrollment Statuses for more information.

Status codes

See Global Response Statuses for status codes that are common across endpoints.

The table below lists status codes that apply to this specific endpoint.

Status codeDescription
520-01Load amount outside of load limits. Retry with loadAmount within load limits for this prod_id.
520-02Could not create enrollment. Failed to create the customer record. Contact SoFi Tech Solutions for troubleshooting.
520-03Could not load card. Card load failed. Contact SoFi Tech Solutions for troubleshooting
520-04Account created, ID Validation failed. Customer's personal info has failed the ID check. Take action depending on the result in the response:
  • F — Fail. Take no action: the customer does not qualify for an account.
  • R — Refer. Depending on your arrangements with us, request valid documents from the customer or wait for the third-party CIP to complete.
  • 520-05Specified load from account number is invalid. The funding account to load this prod_id is not properly set up.
    520-06A load was attempted for a non-positive amount. Retry with a positive value for loadAmount.
    520-07Primary account is invalid. Retry with a valid number for primaryAccount.
    520-08Secondary accounts cannot be added. Product parameters do not permit the prodId to be a secondary account for the account in primaryAccount. Check SECP on the primary account.
    520-09Maximum number of secondary accounts exceeded. To increase the secondary account limit per product ID, set SECLM on the secondary account.
    520-10ID type 2 is required as main ID for running CIP. Product settings require idType: 2 (SSN/SIN) to run the legacy CIP verification. Pass a SSN in id. Controlled by VLDLV.
    520-12An application with the same ID has already been submitted. Duplicate SSNs were used for enrollment. Follow your business plan for this outcome. Controlled by VLDLV.
    520-14Success - partial limit violation. Only the amount permitted by project settings was loaded.
    520-15Success - delayed payment. The account was created but funds were not loaded onto the card because of limit violations. An attempt will be made tomorrow to load the card.
    Form Data
    string
    required

    Web service username, as provided by SoFi Tech Solutions.
    Pattern: Max 50 characters
    Example: "AbC123-9999"

    string
    required

    Web service password, as provided by SoFi Tech Solutions.
    Pattern: Max 15 characters
    Example: "4sb62fh6w4h7w34g"

    string
    required
    1 to 60

    Supply a globally unique ID to identify this endpoint request ("transaction"). Might be used for idempotency.. A UUID is preferred.
    Pattern: Maximum 60 characters
    Example: "9845dk-39fdk3fj3-4483483478"

    int32
    required
    0 to 100000000

    A unique product identifier from SoFi Tech Solutions. If this ID is for a business product then businessName is required.
    Pattern: Integer
    Example: 501

    string | null

    The value of the primary identifier that is specified in idType. Product settings determine whether this ID should be unique across the program or product. This parameter is required when using the SoFi Tech Solutions legacy CIP solution. The system converts all letters to lowercase.
    Pattern: As specified in the Layout column of the Customer ID Types enumeration
    Example: "123456789"

    int32 | null
    1 to 15

    Specifies the type of primary identifier in the id parameter. This parameter is required when id is populated. See the ID column in the Customer ID Types table for valid values.
    Pattern: Integer
    Example: 2

    string | null

    The value of the secondary identifier that is specified in idType2. The system converts all letters to lowercase.
    Pattern: As specified in the Layout column of the Customer ID Types enumeration
    Example: "123456789012|ut|12/25/2020"

    int32 | null
    1 to 15

    Specifies the type of secondary identifier in the id2 parameter. This parameter is required when id2 is populated. See the ID column in the Customer ID Types table for valid values.
    Pattern: Integer
    Example: 1

    string | null
    enum

    The account holder language and localization preference. If the account holder address is outside the U.S., pass a non _US value for this parameter to disable U.S. address validation.
    Pattern: String
    Example: "en_US"

    Allowed:
    string | null
    1 to 40

    Account holder's first name. Special character support.
    Pattern: 1–40 characters: letters (A-Z, a-z), spaces, hyphens (-) and single quotes (')
    Example: "Ed"

    string | null
    1 to 40

    Account holder's middle name. Special character support.
    Pattern: 1–40 characters: letters (A-Z, a-z), spaces, hyphens (-) and single quotes (')
    Example: "W"

    string | null
    1 to 40

    Account holder's last name. Special character support.
    Pattern: 1–40 characters: letters (A-Z, a-z), spaces, hyphens (-) and single quotes (')
    Example: "Harley"

    date-time | null

    Account holder's birth date. This date is compared with the DOB product parameter when there is a minimum age requirement on the account.
    Pattern: YYYY-MM-DD
    Example: "1980-01-01"

    string | null

    Account holder's first address line. Cannot be a P.O. box. Validation rules for address1.
    Pattern: 4–40 alphanumeric characters
    Example: "33 Maple Street"

    string | null

    Account holder's second address line.
    Pattern: Max 40 alphanumeric characters and address symbols
    Example: "#4B"

    string | null

    Account holder's third address line.
    Pattern: Max 30 alphanumeric characters and address symbols
    Example: "Carrera Central"

    string | null

    Account holder's fourth address line.
    Pattern: Max 30 alphanumeric characters and address symbols
    Example: "Barrio El Alhambra"

    string | null

    Account holder's fifth address line.
    Pattern: Max 30 alphanumeric characters and address symbols
    Example: "Piso 3"

    string | null

    Account holder's city.
    Pattern: Max 30 characters: letters, spaces, hyphen and period
    Example: "Salt Lake City"

    string | null

    Account holder's state or province.
    Pattern: String
    Example: "UT"

    string | null
    4 to 10
    ^[a-zA-Z0-9\-\ ]*$

    Account holder's postal code (ZIP code).
    Pattern: 12345, 12345-1234, or K1A-1A1
    Example: "84121"

    string | null
    ^\d{3}$

    Account holder's country. Three-digit UN M49 code, such as 840 for USA, 124 for Canada, 484 for Mexico, 170 for Colombia.
    Pattern: 3-digit number
    Example: "840"

    string | null
    ^([0-9]+)$

    Account holder's primary phone number.
    Pattern: Validation according to the value in mobilePhoneCountryCode.
    Example: "8013656060"

    string | null
    ^([0-9]+)$

    Account holder's secondary phone number.
    Pattern: Validation according to the value in mobilePhoneCountryCode.
    Example: "8013656060"

    string | null
    ^([0-9]+)$

    Account holder's mobile phone number.
    Pattern: Validation according to the value in mobilePhoneCountryCode.
    Example: "8013656060"

    string | null

    Account holder's mobile carrier. Configurable list.
    Pattern: Configurable list
    Example: "8"

    string | null

    Account holder's email
    Pattern: Email address, 3–63 characters
    Example: "[email protected]"

    string | null
    4 to 30
    ^[a-zA-Z0-9]+(?:[_-][a-zA-Z0-9]+)*$

    Account holder's username for the website hosted by SoFi Tech Solutions. Must be unique across the program.
    Pattern: Alphanumeric, with first character a letter; case insensitive
    Example: "eharley"

    string | null

    Account holder's password for the website hosted by SoFi Tech Solutions.
    Pattern: Min 8 characters: must include upper-case character, lower-case character, and a number
    Example: "4j9KH3kkdh"

    string | null
    ≤ 50
    ^[A-Za-z0-9_\'\s\?]*$

    Account holder's secret question for the website hosted by SoFi Tech Solutions.
    Pattern: Max 50 characters: letters, spaces, ?
    Example: "What was the name of your first pet?"

    string | null
    ≤ 50

    Account holder's answer to secretQuestion.
    Pattern: Max 50 characters: letters, spaces, ?
    Example: "Larry"

    float | null
    0.01 to 999999999999.99

    Currency amount passed as a whole or decimal amount. Initial load amount on a card must be within product load limits or be the designated amount for an instant-issue card.
    Pattern: Positive integer or decimal number
    Example: 100.00, 100 or 100.73

    string | null
    ≤ 2
    ^[a-zA-Z0-9]*$

    Transaction type for the loadAmount. Use values from your list of load types from SoFi Tech Solutions. If no loadType is specified, the default type RL is used.
    Pattern: 2 characters
    Example: "RL"

    string | null
    ≤ 30
    ^[a-zA-Z0-9\-]*$

    Identifier supplied by the provider, which is not related to the system. This ID is stored in the system in association with this account and can be provided in the RDFs.
    Pattern: Max 30 alphanumeric characters. Lowercase only.
    Example: "553b45sbs"

    string | null
    ^$|^([0-9]{12}|[0-9]{16})$

    PAN or PRN of the primary account to associate this account with. Populate this parameter only when creating a secondary account.
    Pattern: PAN or PRN
    Example: "123456789012"

    int32 | null
    enum

    Specifies whether the secondary account will share the balance of the primary account. This parameter is required when primaryAccount is populated. Do not set this parameter to 1 when primaryAccount is not populated.

    • 0 — Do not share the balance
    • 1 — Share the balance

    Pattern: Integers
    Example: 1

    Allowed:
    string | null
    ≤ 50
    ^[a-zA-Z0-9 ]*$

    Data supplied by the provider, from sources external to the system. This data will be stored in the system in association with this account. The most common use of this parameter is to track affiliate-marketing traffic. The data in this field can be added to an RDF.
    Pattern: Max 50 alphanumeric characters and spaces
    Example: "a4434gg44"

    int32 | null
    enum

    Pass 1 to test the validity of the parameter data without committing the information to the system.
    Pattern: Integer
    Example: 1

    Allowed:
    string | null
    ^$|^([0-9]{12}|[0-9]{16})$

    To load funds into the account at the time of account creation, specify the PAN or PRN of the source account for the funds. This account must be in the same program as the account being created.
    Pattern: PAN or PRN
    Example: "074103447228"

    date-time | null

    The last date that a daily sweep should be performed. This parameter is valid only if account sweeping is configured for the product.
    Pattern: YYYY-MM-DD
    Example: "2016-01-01"

    number | null
    ≥ 0

    Credit limit for card based spending control (currently only available for credit processing).
    Pattern: Monetary amount greater than 0.
    Example: 500.25

    string | null
    enum

    Spending control parameter that flags card for one purchasing transaction (currently only available for credit processing).
    Pattern: String
    Example: "Y"

    Allowed:
    string | null

    Account holder's business name. This field is required if prodId is a business product.
    Pattern: 2-150 characters. See the supported character set.
    Example: "Ed%26Ted"

    string | null
    2 to 4
    ^\+[0-9]*$

    Account holder's mobile phone country code.
    Pattern: A plus sign followed by 1–3 digits. See Phone Validation for valid values.
    Example: "+1"

    Headers
    string
    enum
    Defaults to json

    Use this header instead of the standard accept header to specify the response format.

    Allowed:
    string
    enum
    Defaults to application/json

    Generated from available response content types

    Allowed:
    Response

    Language
    URL
    LoadingLoading…
    Response
    Click Try It! to start a request and see the response here! Or choose an example:
    application/json
    application/xml

    © SoFi Technology Solutions, LLC 2026    Privacy Disclosure

    All documentation, including but not limited to text, graphics, images, and any other content, are the exclusive property of SoFi Technology Solutions, LLC and are protected by copyright laws. These materials may not be reproduced, distributed, transmitted, displayed, or otherwise used without the prior written permission of SoFi Technology Solutions, LLC. Any unauthorized use or reproduction of these materials are expressly prohibited.