---
title: "Create Virtual Card Account"
method: POST
path: "/createVirtualCard"
tags: ["Accounts and Cards"]
---

# Create Virtual Card Account

`POST /createVirtualCard`

## Request

- Base URL: `api-{corename}.{env}.gpsrv.com/intserv/4.0/` (relative, and the document’s source URL is not known)
- URL: `api-{corename}.{env}.gpsrv.com/intserv/4.0/createVirtualCard`
- Auth: none declared

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 <a href="ref:post_createaccount" target="_blank">Create Account</a> endpoint.

Create Virtual Account is similar to Create Account except that it accepts only virtual card product IDs for `prodId`. Consult the <a href="doc:create-account-procedure" target="_blank">Creating an Account</a> procedure for instructions on using this endpoint, and consult the <a href="doc:customer-id-verification" target="_blank">Customer ID Verification</a> guide for how to use this endpoint with the SoFi Tech Solutions legacy CIP solution.

[block:callout]

{
"type": "info",
"title": "Note",
"body": "You must be PCI-compliant to use this endpoint. If you are not PCI compliant, use the <a href=\"ref:post_createaccount\" target=\"_blank\">Create Account</a> endpoint and specify a virtual card product for `prodId`."
}
[/block]



[block:callout]

{
"type": "info",
"title": "Note",
"body": "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 <a href=\"ref:api-reference-enrollment-statuses\" target=\"_blank\">Enrollment Statuses</a> for more information."
}
[/block]

## Request body `application/x-www-form-urlencoded`

- object
  - `apiLogin` string, required: Web service username, as provided by SoFi Tech Solutions. Pattern: Max 50 characters Example: `"AbC123-9999"`
  - `apiTransKey` string, required: Web service password, as provided by SoFi Tech Solutions. Pattern: Max 15 characters Example: `"4sb62fh6w4h7w34g"`
  - `transactionId` string, required: Supply a globally unique ID to identify this endpoint request ("transaction"). Might be used for <a href="ref:idempotency#endpoints-that-use-transactionid-for-idempotency" target="_blank">idempotency</a>.. A UUID is preferred. Pattern: Maximum 60 characters Example: `"9845dk-39fdk3fj3-4483483478"`
  - `prodId` integer, required: A unique product identifier from SoFi Tech Solutions. If this ID is for a business product then `businessName` is **required**. Pattern: Integer Example: `501`
  - `id` string, nullable: 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 <<glossary:CIP>> solution. The system converts all letters to lowercase. Pattern: As specified in the **Layout** column of the <a href="ref:api-reference-customer-id-types" target="_blank">Customer ID Types</a> enumeration Example: `"123456789"`
  - `idType` integer, nullable: Specifies the type of primary identifier in the `id` parameter. This parameter is **required** when `id` is populated. See the **ID** column in the <a href="ref:api-reference-customer-id-types" target="_blank">Customer ID Types</a> table for valid values. Pattern: Integer Example: `2`
  - `id2` string, nullable: 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 <a href="ref:api-reference-customer-id-types" target="_blank">Customer ID Types</a> enumeration Example: `"123456789012|ut|12/25/2020"`
  - `idType2` integer, nullable: Specifies the type of secondary identifier in the `id2` parameter. This parameter is **required** when `id2` is populated. See the **ID** column in the <a href="ref:api-reference-customer-id-types" target="_blank">Customer ID Types</a> table for valid values. Pattern: Integer Example: `1`
  - `locale` 'en_US' | 'es_US' | 'en_CA' | 'fr_CA' | 'es_MX' | 'en_MX', nullable: 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"`
  - `firstName` string, nullable: Account holder's first name. <a href="ref:api-reference-special-characters" target="_blank">Special character support</a>. Pattern: 1&ndash;40 characters: letters (`A-Z`, `a-z`), spaces, hyphens (`-`) and single quotes (`'`) Example: `"Ed"`
  - `middleName` string, nullable: Account holder's middle name. <a href="ref:api-reference-special-characters" target="_blank">Special character support</a>. Pattern: 1&ndash;40 characters: letters (`A-Z`, `a-z`), spaces, hyphens (`-`) and single quotes (`'`) Example: `"W"`
  - `lastName` string, nullable: Account holder's last name. <a href="ref:api-reference-special-characters" target="_blank">Special character support</a>. Pattern: 1&ndash;40 characters: letters (`A-Z`, `a-z`), spaces, hyphens (`-`) and single quotes (`'`) Example: `"Harley"`
  - `dateOfBirth` string, date-time, nullable: 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"`
  - `address1` string, nullable: Account holder's first address line. Cannot be a P.O. box. <a href="ref:api-reference-address1-validation" target="_blank">Validation rules for `address1`</a>. Pattern: 4&ndash;40 alphanumeric characters Example: `"33 Maple Street"`
  - `address2` string, nullable: Account holder's second address line. Pattern: Max 40 alphanumeric characters and <a href="ref:api-reference-special-characters#address-symbols" target="_blank">address symbols</a> Example: `"#4B"`
  - `address3` string, nullable: Account holder's third address line. Pattern: Max 30 alphanumeric characters and <a href="ref:api-reference-special-characters#address-symbols" target="_blank">address symbols</a> Example: `"Carrera Central"`
  - `address4` string, nullable: Account holder's fourth address line. Pattern: Max 30 alphanumeric characters and <a href="ref:api-reference-special-characters#address-symbols" target="_blank">address symbols</a> Example: `"Barrio El Alhambra"`
  - `address5` string, nullable: Account holder's fifth address line. Pattern: Max 30 alphanumeric characters and <a href="ref:api-reference-special-characters#address-symbols" target="_blank">address symbols</a> Example: `"Piso 3"`
  - `city` string, nullable: Account holder's city. Pattern: Max 30 characters: letters, spaces, hyphen and period Example: `"Salt Lake City"`
  - `state` string, nullable: Account holder's state or province. Pattern: String Example: `"UT"`
  - `postalCode` string, nullable: Account holder's postal code (ZIP code). Pattern: `12345`, `12345-1234`, or `K1A-1A1` Example: `"84121"`
  - `countryCode` string, nullable: 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"`
  - `primaryPhone` string, nullable: Account holder's primary phone number. Pattern: Validation according to the value in `mobilePhoneCountryCode`. Example: `"8013656060"`
  - `otherPhone` string, nullable: Account holder's secondary phone number. Pattern: Validation according to the value in `mobilePhoneCountryCode`. Example: `"8013656060"`
  - `mobilePhone` string, nullable: Account holder's mobile phone number. Pattern: Validation according to the value in `mobilePhoneCountryCode`. Example: `"8013656060"`
  - `mobileCarrierId` string, nullable: Account holder's mobile carrier. Configurable list. Pattern: Configurable list Example: `"8"`
  - `email` string, email, nullable: Account holder's email Pattern: Email address, 3&ndash;63 characters Example: `"user@fakedomain.com"`
  - `webUid` string, nullable: 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"`
  - `webPwd` string, nullable: 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"`
  - `secretQuestion` string, nullable: 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?"`
  - `secretAnswer` string, nullable: Account holder's answer to `secretQuestion`. Pattern: Max 50 characters: letters, spaces, `?` Example: `"Larry"`
  - `loadAmount` number, float, nullable: 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`
  - `loadType` string, nullable: 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"`
  - `externalAccountId` string, nullable: 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 <<glossary:RDF>>s. Pattern: Max 30 alphanumeric characters. Lowercase only. Example: `"553b45sbs"`
  - `primaryAccount` string, nullable: <<glossary:PAN>> or <<glossary: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"`
  - `sharedBalance` 0 | 1, nullable: 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` &mdash; Do not share the balance * `1` &mdash; Share the balance Pattern: Integers Example: `1`
  - `userData` string, nullable: 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 <<glossary:RDF>>. Pattern: Max 50 alphanumeric characters and spaces Example: `"a4434gg44"`
  - `verifyOnly` 0 | 1, nullable: Pass `1` to test the validity of the parameter data without committing the information to the system. Pattern: Integer Example: `1`
  - `loadFromAccountNo` string, nullable: To load funds into the account at the time of account creation, specify the <<glossary:PAN>> or <<glossary: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"`
  - `sweepDate` string, date-time, nullable: 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"`
  - `creditLimit` number, nullable: Credit limit for card based spending control (currently only available for credit processing). Pattern: Monetary amount greater than 0. Example: `500.25`
  - `singleUse` 'Y' | 'N', nullable: Spending control parameter that flags card for one purchasing transaction (currently only available for credit processing). Pattern: String Example: `"Y"`
  - `businessName` string, nullable: Account holder's business name. This field is **required** if `prodId` is a business product. Pattern: 2-150 characters. See the <a href="ref:api-reference-special-characters#businessname-parameter" target="_blank">supported character set</a>. Example: `"Ed%26Ted"`
  - `mobilePhoneCountryCode` string, nullable: Account holder's mobile phone country code. Pattern: A plus sign followed by 1–3 digits. See <a href="ref:api-reference-phone-validation" target="_blank">Phone Validation</a> for valid values. Example: `"+1"`

## Response `default`

- object
  - `status_code` integer, nullable, required: The response status code. May return a string for some statuses.
  - `status` string, nullable, required: The condition of a process or response
  - `processing_time` number, float, nullable, required: The time elapsed in processing the transaction
  - `echo` object, nullable, required: A structure that contains transaction ID information
    - `transaction_id` string, nullable, required: An ID that represents an API transaction
    - `provider_timestamp` string, date-time, nullable, required: Store a related timestamp for reporting and troubleshooting purposes
    - `provider_transaction_id` string, nullable, required: Secondary transaction identifier (generated by a provider)
  - `system_timestamp` string, date-time, nullable, required: A system generated timestamp
  - `rtoken` string, nullable, required: A system-generated ID used for tracking
  - `errors` string[]: A list of errors generated while the request was processed
  - `response_data` object[], required: A structure for the response data. It can be empty but usually will contain information.
    - `pmt_ref_no` string, required: <a href="doc:about-accounts#prn" target="_blank">Payment reference number</a>.
    - `product_id` string, required: Identifier for the product associated with the account
    - `galileo_account_number` string, required: System-generated balance ID
    - `card_id` string, nullable, required: System-generated card identifier (CAD). Use this ID instead of the PAN if not PCI-compliant. `None` means that no card was created
    - `card_number` string, nullable, required: The primary account number (PAN) printed on the card
    - `expiry_date` string, nullable, required: Date when the card expires
    - `card_security_code` string, nullable, required: The card verification value (CVV2)
    - `cip` object[], nullable, required: List of cardholder identification process (CIP) objects
      - `status` string, required: Status of the CIP process
      - `model_results` object[], nullable, required: List of model objects
        - `model_name` string, nullable, required: The model name
        - `model_version` integer, nullable, required: Version number for the model used
        - `code` string, nullable, required: In a model run, lists the pass number
        - `text` string, nullable, required: Plain text description of the code value
      - `date_time` string, date-time, required: The date and time CIP was run
      - `first_name` string, nullable: Account holder's first name
      - `middle_name` string, nullable: Account holder's middle name
      - `last_name` string, nullable: Account holder's last name
      - `address_1` string, nullable: First line of the account holder's address
      - `address_2` string, nullable: Second line of the account holder's address
      - `city` string, nullable: Account holder's city
      - `state` string, nullable: Account holder's state
      - `primary_phone` string, nullable: Account holder's primary phone number
      - `other_phone` string, nullable: Account holder's other phone number
    - `billing_cycle_day` integer, nullable, required: The day of the month the billing cycle starts for the account

## Changes

- **2026-11-03** `1ede7567a879`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/galileo-ft/apis/program-api/changes/createVirtualCard/post.md)

---

[API](https://skmtc.dev/galileo-ft/apis/program-api.md) - [All operations](https://skmtc.dev/galileo-ft/apis/program-api/llms.txt) - [OpenAPI document](https://skmtc.dev/galileo-ft/apis/program-api/revisions/1ede7567a879?raw)
