Accounts and Cards

Create Account

Use the Create Account endpoint to create a new customer account. You can use this endpoint for personalized, instant issue, and secondary products.

This endpoint can run customer ID verification (<glossary:IVS>) if the EIVS provider parameter is set. (This endpoint also runs legacy CIP verification and returns the appropriate fields.) Create Account creates a customer record and at the same time creates an account. Depending on product settings, it also creates a card and loads funds onto it.

Consult the <a href="doc:creating-an-account" target="_blank">Creating an Account</a> guide 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 IVS. The instructions have flowcharts to illustrate how Create Account works in the system. Also see <a href="doc:about-accounts#create-account-vs-add-account" target="_blank">Create Account vs Add Account</a> in the About Accounts guide.

📘 Note

You can receive unmasked <a href="ref:pci-sensitive-data" target="_blank">PCI-sensitive data</a> (card_number, card_security_code, expiry_date) only if your provider parameters permit it.

Duplicate use of customer ID

SoFi Tech Solutions can configure your product parameters to allow or disallow the duplicate use of customer IDs such as SSNs across your programs.

Required fields

Most input parameters for this endpoint are not required, to accommodate various use cases. If you would like some of the parameters to be required, populate the PINED product parameter with the parameters to be required. For example: idType,id,idType2,id2.

If this endpoint returns a status code that does not match a status code that is specific to this endpoint, it might be an enrollment status code. See <a href="ref:api-reference-enrollment-statuses" target="_blank">Enrollment Statuses</a> for more information.

post/createAccount

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/createAccount
  • Auth
    none declared

Request body application/x-www-form-urlencoded

apiLoginstring required

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

apiTransKeystring required

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

providerIdinteger required

Your unique provider identifier from SoFi Tech Solutions. Pattern: Max 10 digits Example: 9999

transactionIdstring 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"

accountNostring nullable

The <glossary:PRN> or <glossary:PAN> of the account. Pattern: PAN or PRN Example: "074103447228"

idType0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 nullable

Specifies the type of identifier in id. This parameter is required when id is populated. See the idType column in the <a href="ref:api-reference-customer-id-types" target="_blank">Customer ID Types</a> table for valid values. When using the SoFi Tech Solutions <glossary:IVS> integration, only 2 and 15 are valid. Pattern: Integer Example: 2

idstring nullable

The value of the primary identifier that is specified in idType. This parameter is required when using the SoFi Tech Solutions <glossary:IVS> integration. This value cannot be changed after the customer passes ID verification. All letters will be converted to lowercase. Pattern: As specified in the Layout for id column of the <a href="ref:api-reference-customer-id-types" target="_blank">Customer ID Types</a> enumeration Example: "123456789"

idType20 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 nullable

Specifies the type of identifier in id2. This parameter is required when id2 is populated. See the idType 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

id2string nullable

The value of the identifier that is specified in idType2. This value can be changed but not nullified or cleared. All letters will be converted to lowercase. See <a href="doc:design-a-card#specifying-a-card-design" target="_blank">Specifying a card design</a> for non-<glossary:KYC> uses of id2. Pattern: As specified in the Layout for id column of the <a href="ref:api-reference-customer-id-types" target="_blank">Customer ID Types</a> enumeration Example: "123456789012|ut|12/25/2020"

idType30 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 nullable

Specifies the type of identifier in id3. This parameter is required when id3 is populated. See the idType column in the <a href="ref:api-reference-customer-id-types" target="_blank">Customer ID Types</a> table for valid values. Pattern: Integer Example: 13

id3string nullable

The value of the identifier that is specified in idType3. All letters will be converted to lowercase. This value can be changed but not nullified or cleared. Pattern: As specified in the Layout for id column of the <a href="ref:api-reference-customer-id-types" target="_blank">Customer ID Types</a> enumeration Example: "abc123456789|05-22-2027"

locationType0 | 1 | 2 | 3 nullable

Type of ID in location:

  • 0 — SoFi Tech Solutions location ID
  • 1 — Partner location ID
  • 2 — Don't validate
  • 3 — Instant-issue location override. Valid for Create Account only. See <a href="doc:setup-for-instant-issue#step-5-enroll-customer-and-issue-card" target="_blank">Setup for Instant Issue</a> for details.

Pattern: Integer Example: 0

locationstring nullable

Unique location identifier (location) as returned by the <a href="ref:post_createlocation" target="_blank">Create Location</a> endpoint. This value is also returned by the <a href="ref:post_getlocations" target="_blank">Get Locations</a> endpoint depending on the value of locationType when the location was created:

  • 0 or 2 — Returned in the location_id field
  • 1 — Returned in the provider_specified_id field

Pattern: Integer if locationType: 0 or locationType: 2; max 15 characters if locationType: 1 Example: "a455-3483"

locale'en_US' | 'es_US' | 'en_CA' | 'fr_CA' | 'es_MX' | 'en_MX' nullable

The account holder language and localization preference. Valid values are en_US, es_US, fr_CA, en_CA, es_MX, en_MX. 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: Letters with underscore Example: "en_US"

externalAccountIdstring nullable

User-supplied identifier that is related to an external 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"

firstNamestring nullable

Account holder's first name. <a href="ref:api-reference-special-characters" target="_blank">Special character support</a>. Pattern: 1–40 characters: letters (A-Z, a-z), spaces, hyphens (-) and single quotes (') Example: "Ed"

middleNamestring nullable

Account holder's middle name. <a href="ref:api-reference-special-characters" target="_blank">Special character support</a>. Pattern: 1–40 characters: letters (A-Z, a-z), spaces, hyphens (-) and single quotes (') Example: "W"

lastNamestring nullable

Account holder's last name. <a href="ref:api-reference-special-characters" target="_blank">Special character support</a>. Pattern: 1–40 characters: letters (A-Z, a-z), spaces, hyphens (-) and single quotes (') Example: "Harley"

dateOfBirthstring 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"

address1string 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–40 alphanumeric characters Example: "33 Maple Street"

address2string 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"

address3string 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"

address4string 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"

address5string 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"

citystring nullable

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

statestring nullable

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

postalCodestring nullable

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

countryCodestring 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"

primaryPhonestring nullable

Account holder's primary phone number. When passing a value for this parameter, you must also pass mobilePhoneCountryCode. Pattern: Validation according to the value in mobilePhoneCountryCode. Example: "8015556060"

otherPhonestring nullable

Account holder's secondary phone number. When passing a value for this parameter, you must also pass mobilePhoneCountryCode. Pattern: Validation according to the value in mobilePhoneCountryCode. Example: "8015556060"

mobilePhonestring nullable

Account holder's mobile phone number. When passing a value for this parameter, you must also pass mobilePhoneCountryCode. Pattern: Validation according to the value in mobilePhoneCountryCode. Example: "8015556060"

mobileCarrierIdstring nullable

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

emailstring nullable

Account holder's email. Pattern: Email address, 3–63 characters Example: "user@fakedomain.com"

webUidstring 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"

webPwdstring 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"

secretQuestionstring 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?"

secretAnswerstring nullable

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

incomeSourcestring nullable

Account holder's employer name or income source. Pattern: Max 60 characters: alphanumeric, space, underscore, hyphen, period, @, & and comma. Example: "Kroger Food & Drug"

occupationstring nullable

Account holder's occupation. Pattern: Max 60 characters: alphanumeric, space, underscore, hyphen, period, @, & and comma. Example: "Project Manager"

nationalitystring nullable

Account holder's nationality. Pattern: 2-character ISO-3166-2 code :Example: "MX"

placeOfBirthstring nullable

Account holder's place of birth Pattern: ISO-3166-2 subdivision code Example: MX-YUC

curpstring nullable

Account holder's <glossary:CURP> Pattern: 18 alphanumeric characters Example: "HRGRAL82050602H900"

politicalAffiliationinteger nullable

Whether the account holder is a <glossary:PEP>.

  • 1 — PEP
  • 0 — Not a PEP.
kycRefNostring nullable

<glossary:KYC> reference number to track the KYC process for the account holder. Pattern: 36 characters Example: "KYC123456789012312312312521312312312"

monthlyIncomenumber float nullable

Monthly income for the account holder. Pattern: Float between 0 and 9999999999 Example: 3400.00

externalCustomerIdstring nullable

User-supplied identifier that is related to an external system. Pattern: Max 512 characters: all ASCII characters Example: "acv#-@45!sbsxm%-"

prodIdinteger 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

loadAmountnumber 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: Float or integer Example: 100.00, 100 or 100.73

loadTypestring 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 (retail load) is used. Pattern: String Example: "RL"

primaryAccountstring 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"

fundingAccountNostring nullable

PRN of the <glossary:RTF> funding account. Required if prodId is an RTF spending product. Pattern: 12-digit numeric string Example: "143101204201"

sharedBalance0 | 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 — Do not share the balance
  • 1 — Share the balance

Pattern: Integer Example: 1

authorizedUser0 | 1 nullable

Specifies whether the account is an authorized user. This parameter requires primaryAccount and sharedBalance to be populated.

  • 0 — Do not mark this account as authorized user
  • 1 — Mark this account as authorized user

Pattern: Integer Example: 1

userDatastring 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: <a href="ref:api-reference-special-characters#personal-name-parameters" target="_blank">Supported characters</a> Example: "a4434gg44"

offline0 | 1 nullable

Pass 1 for an offline transaction. Pattern: Integer Example: 0

verifyOnly0 | 1 nullable

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

cipStatus'0' | '1' | '2' nullable

Legacy CIP only. CIP setting override.

  • "0" or empty — Do not override the Legacy CIP setting.
  • "1" — Create the customer record and run Legacy CIP but do not create an account.
  • "2" — Create the customer record and account but do not run Legacy CIP.

Pattern: Numeric string Example: "0"

embossLine2string nullable

Second line to emboss on the card. Pattern: <a href="ref:api-reference-special-characters#embossline2-characters" target="_blank">Supported characters</a> Example: "Scarlet Ibis Shipping"

providerAssessedFeenumber float nullable

Fee amount assessed by the provider. This value is passed to SoFi Tech Solutions only for informational purposes: passing this parameter does not assess the fee. Pattern: Monetary amount greater than 0. Example: 2.50

loadFromAccountNostring 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: "123456789012"

sweepDatestring 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"

expressMail'0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | 'Y' | 'N' nullable

The type of shipping for the physical card associated with this account. These values are universal across all vendors:

  • 1 — Standard shipping
  • 2 — Express shipping
  • 4 — Bulk shipping

Legacy values Y = 2 and N = 1. Consult your emboss vendor for other values. Pattern: String Example: "2"

shipToAddressPermanentstring nullable

Pass 1 to always ship cards to the ship-to address instead of one time only. Pattern: 1 or 0 Example: "1"

shipToAddress1string nullable

First ship-to address line. Pattern: Max 40 characters Example: "33 business parkway"

shipToAddress2string nullable

Second ship-to address line. Pattern: Max 40 characters Example: "Suite 400"

shipToCitystring nullable

Ship-to city. Pattern: Max 30 characters Example: "Salt Lake City"

shipToStatestring nullable

Ship-to state. Pattern: String Example: "UT"

shipToPostalCodestring nullable

Ship-to ZIP or postal code. Pattern: 1234, 12345, 12345-1234, K1A-1A1 Example: "841213333"

shipToCountryCodestring nullable

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

businessNamestring 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"

mobilePhoneCountryCodestring 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"

riskContextIdstring nullable

A session-correlation token from the front-end risk signal collection to link to account-risk decisioning. Pattern: String Example: "300dcfeesarEEd"

Example request

{
  "apiLogin": "AbC123-9999",
  "apiTransKey": "4sb62fh6w4h7w34g",
  "providerId": 9999,
  "transactionId": "123e4567-e89b-12d3-a456-426614174000",
  "accountNo": "074103447228",
  "idType": 2,
  "id": "123456789",
  "idType2": 1,
  "id2": "123456789012|ut|12/25/2020",
  "idType3": 13,
  "id3": "abc123456789|05-22-2027",
  "location": "a455-3483",
  "locale": "en_US",
  "externalAccountId": "553b45sbs",
  "firstName": "Ed",
  "middleName": "W",
  "lastName": "Harley",
  "dateOfBirth": "1980-01-01",
  "address1": "33 Maple Street",
  "address2": "#4B",
  "address3": "Carrera Central",
  "address4": "Barrio El Alhambra",
  "address5": "Piso 3",
  "city": "Salt Lake City",
  "state": "UT",
  "postalCode": "84121",
  "countryCode": "840",
  "primaryPhone": "8013656060",
  "otherPhone": "8013656060",
  "mobilePhone": "8013656060",
  "mobileCarrierId": "8",
  "email": "user@fakedomain.com",
  "webUid": "eharley",
  "webPwd": "4j9KH3kkdh",
  "secretQuestion": "What was the name of your first pet?",
  "secretAnswer": "Larry",
  "incomeSource": "Kroger Food & Drug",
  "occupation": "Project Manager",
  "nationality": "MX",
  "placeOfBirth": "MX-YUC",
  "curp": "HRGRAL82050602H900",
  "kycRefNo": "KYC123456789012312312312521312312312",
  "externalCustomerId": "acv#-@45!sbsxm%-",
  "prodId": 501,
  "loadAmount": 100.73,
  "loadType": "RL",
  "primaryAccount": "123456789012",
  "fundingAccountNo": "143101204201",
  "sharedBalance": 1,
  "authorizedUser": 1,
  "userData": "a4434gg44",
  "cipStatus": "0",
  "embossLine2": "Scarlet Ibis Shipping",
  "providerAssessedFee": 2.5,
  "loadFromAccountNo": "123456789012",
  "sweepDate": "2016-01-01",
  "expressMail": "2",
  "shipToAddressPermanent": "1",
  "shipToAddress1": "33 business parkway",
  "shipToAddress2": "Suite 400",
  "shipToCity": "Salt Lake City",
  "shipToState": "UT",
  "shipToPostalCode": "841213333",
  "shipToCountryCode": "840",
  "businessName": "Ed",
  "mobilePhoneCountryCode": "+1"
}

Response

status_codeinteger nullable required

The response status code. May return a string for some statuses.

statusstring nullable required

The condition of a process or response

processing_timenumber float nullable required

The time elapsed in processing the transaction

system_timestampstring date-time nullable required

A system generated timestamp

rtokenstring nullable required

A system-generated ID used for tracking

errorsstring[]

A list of errors generated while the request was processed

Changes

No recorded changes to this operation across all 2 revisions of this API.