openapi: 3.2.0
info:
title: Risk API 2.0 IVS API
version: '2.0'
servers:
- url: '{corename}.risk.{env}.gpsrv.com//'
tags:
- name: IVS
paths:
/ivs/2.0/verifyCustomer:
post:
parameters:
- name: authorization
in: header
schema:
examples:
- Basic eW91cl9hcGlsb2dpbjp5b3VyX2FwaXRyYW5za2V5
pattern: ^Basic [A-Za-z0-9+/]+=*$
title: Authorization
type: string
description: Basic authentication token (base64-encoded {apilogin}:{apitranskey} credentials provided by SoFi Tech Solutions)
- name: X-Request-Id
in: header
schema:
examples:
- '1234567890'
pattern: ''
title: X-Request-Id
type: string
description: Unique identifier for the request
responses:
'200':
content:
application/json:
schema:
description: Successful Response
properties:
ivsProfileId:
description: The third-party provider supplies this identifier to reference the account status across other endpoints.
title: Ivsprofileid
type: integer
customerId:
description: ID generated by you or SoFi Tech Solutions for the customer undergoing verification. Use this to correlate this event with the specific entity record in your system.
title: Customerid
type: string
customerType:
description: 'Specifies the category of customer undergoing verification: `Person` or `Business`.'
title: Customertype
type: string
riskServiceId:
description: System-generated identifier that specifies the IVS configuration strategy assigned during IVS setup.
title: Riskserviceid
type: string
customerStatus:
description: Overall status of the customer identity-verification process.
title: Customerstatus
type: string
customerDecision:
description: Final decision for identity verification. The system returns this field only when the verification is complete.
title: Customerdecision
type: string
customerVerificationResult:
description: Derived identity verification result based on the `customer_status` and `customer_decision`.
enum:
- Pass
- Fail
- Refer
- In Progress
title: CustomerVerificationResult
type: string
applications:
description: List of identity verification applications for each entity.
items:
properties:
entityId:
description: ID generated by you or SoFi Tech Solutions for the entity undergoing verification. Use this to correlate this event with the specific entity record in your system.
title: Entityid
type: string
verificationType:
description: Specifies the type of identity verification being performed.
title: Verificationtype
type: string
startDateTime:
anyOf:
- type: string
- type: 'null'
description: Date-time when the system created this identity verification in our system time (GMT -0700).
title: Startdatetime
endDateTime:
anyOf:
- type: string
- type: 'null'
description: Date-time when the system ended this identity verification in our system time (GMT -0700).
title: Enddatetime
entityStatus:
description: 'Current status of the entity identity verification:
* `COMPLETE`
* `REFERRED`
* `AWAITING_RESPONSE`
* `IN_PROGRESS`'
title: Entitystatus
type: string
entityDecision:
description: Final decision for entity verification. The system returns this field only when the identity verification is complete.
title: Entitydecision
type: string
rulesetOutcomes:
description: A list of outcome objects for every ruleset executed during the identity verification journey.
items:
properties:
reference:
description: Unique identifier for the specific collection of rules.
title: Reference
type: string
score:
description: The sum of all individual `rule_score` values within this specific set.
title: Score
type: integer
ruleOutcomes:
description: A list of individual rule outcomes.
items:
properties:
ruleName:
description: Display name of the rule.
title: Rulename
type: string
outcome:
description: Returns `true` if the rule's specific rule condition passed.
title: Outcome
type: boolean
description:
description: Explanation of what this specific rule was checking for and the result.
title: Description
type: string
score:
description: Incremental score applied by this rule to the cumulative ruleset result.
title: Score
type: integer
title: RuleOutcome
type: object
title: Ruleoutcomes
type: array
title: RulesetOutcomes
type: object
title: Rulesetoutcomes
type: array
documentVerificationId:
description: The unique identifier for document verification. The system returns this field when awaiting a response.
title: Documentverificationid
type: string
links:
description: A collection of links associated with the journey for follow-up actions. The system returns this field when awaiting a response.
items:
type: string
title: Links
type: array
title: Application
type: object
title: Applications
type: array
required:
- customerId
- customerType
- riskServiceId
title: VerifyCustomerResponse
type: object
examples:
response:
value: "{\n \"status\": \"Success\",\n \"statusCode\": 0,\n \"processingTime\": \"0.125\",\n \"responseData\": {\n \"ivsProfileId\": 40038495,\n \"customerId\": \"155555\",\n \"customerType\": \"Person\",\n \"riskServiceId\": \"GCORE:6475:0437:6475\",\n \"customerStatus\": \"COMPLETE\",\n \"customerDecision\": \"ACCEPT\",\n \"customerVerificationResult\": \"Pass\",\n \"applications\": [\n {\n \"entityId\": \"155555\",\n \"verificationType\": \"IDV\",\n \"startDateTime\": \"2026-04-27 12:33:02\",\n \"endDateTime\": \"2026-04-27 12:33:03\",\n \"entityStatus\": \"Complete\",\n \"entityDecision\": \"ACCEPT\",\n \"rulesetOutcomes\": [\n {\n \"reference\": \"RS77865\",\n \"score\": 3000,\n \"ruleOutcomes\": [\n {\n \"ruleName\": \"GFTPass\",\n \"outcome\": true,\n \"description\": \"GFtPAss\",\n \"score\": 3000\n },\n {\n \"ruleName\": \"GFT IP\",\n \"outcome\": false,\n \"description\": \"GFT In Progress\",\n \"score\": 0\n },\n {\n \"ruleName\": \"GFT Refer\",\n \"outcome\": false,\n \"description\": \"Refer application\",\n \"score\": 0\n },\n {\n \"ruleName\": \"GFT Fail\",\n \"outcome\": false,\n \"description\": \"Will always fail the application\",\n \"score\": 0\n }\n ]\n }\n ],\n \"documentVerificationId\": null,\n \"links\": null\n }\n ]\n },\n \"echo\": {\n \"transactionId\": \"IVS-VRFY-CUST-33106\",\n \"rtoken\": \"1q2w3e-4r5t-6y7u-8i9o-0p1a2s3d4f5g\"\n },\n \"systemTimestamp\": \"2026-04-27 12:33:03\",\n \"errors\": []\n}"
description: Successful Response
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
'400':
content:
application/json:
schema:
description: Bad Request
examples:
- error:
code: BAD_REQUEST
message: The request was not acceptable, typically due to missing or invalid parameters.
properties:
error:
description: Provides additional information about the error.
properties:
code:
description: Identifier for the error
examples:
- SERVICE_UNAVAILABLE
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INTERNAL_SERVER_ERROR
title: Code
type: string
message:
description: Short description of the error.
title: Message
type: string
details:
anyOf:
- type: object
- type: 'null'
description: Contains details about the error when available. For example, which fields have validation problems or which action fails.
title: Details
required:
- code
- message
title: GSAPIErrorDetail
type: object
required:
- error
title: ResponseModel
type: object
description: Bad Request
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
'401':
content:
application/json:
schema:
description: Unauthorized
examples:
- error:
code: UNAUTHORIZED
message: No valid API credentials provided.
properties:
error:
description: Provides additional information about the error.
properties:
code:
description: Identifier for the error
examples:
- SERVICE_UNAVAILABLE
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INTERNAL_SERVER_ERROR
title: Code
type: string
message:
description: Short description of the error.
title: Message
type: string
details:
anyOf:
- type: object
- type: 'null'
description: Contains details about the error when available. For example, which fields have validation problems or which action fails.
title: Details
required:
- code
- message
title: GSAPIErrorDetail
type: object
required:
- error
title: ResponseModel
type: object
description: Unauthorized
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
'403':
content:
application/json:
schema:
description: Forbidden
examples:
- error:
code: FORBIDDEN
message: The provided API credential does not allow this operation.
properties:
error:
description: Provides additional information about the error.
properties:
code:
description: Identifier for the error
examples:
- SERVICE_UNAVAILABLE
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INTERNAL_SERVER_ERROR
title: Code
type: string
message:
description: Short description of the error.
title: Message
type: string
details:
anyOf:
- type: object
- type: 'null'
description: Contains details about the error when available. For example, which fields have validation problems or which action fails.
title: Details
required:
- code
- message
title: GSAPIErrorDetail
type: object
required:
- error
title: ResponseModel
type: object
description: Forbidden
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
'404':
content:
application/json:
schema:
description: Not Found
examples:
- error:
code: NOT_FOUND
message: The requested entity does not exist.
properties:
error:
description: Provides additional information about the error.
properties:
code:
description: Identifier for the error
examples:
- SERVICE_UNAVAILABLE
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INTERNAL_SERVER_ERROR
title: Code
type: string
message:
description: Short description of the error.
title: Message
type: string
details:
anyOf:
- type: object
- type: 'null'
description: Contains details about the error when available. For example, which fields have validation problems or which action fails.
title: Details
required:
- code
- message
title: GSAPIErrorDetail
type: object
required:
- error
title: ResponseModel
type: object
description: Not Found
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
'409':
content:
application/json:
schema:
description: Conflict
examples:
- error:
code: CONCURRENT_IDEMPOTENT_REQUEST
message: The operation was called concurrently with duplicate `X-GFT-Idempotency-Key` headers, but does not support concurrent requests.
properties:
error:
description: Provides additional information about the error.
properties:
code:
description: Identifier for the error
examples:
- SERVICE_UNAVAILABLE
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INTERNAL_SERVER_ERROR
title: Code
type: string
message:
description: Short description of the error.
title: Message
type: string
details:
anyOf:
- type: object
- type: 'null'
description: Contains details about the error when available. For example, which fields have validation problems or which action fails.
title: Details
required:
- code
- message
title: GSAPIErrorDetail
type: object
required:
- error
title: ResponseModel
type: object
description: Conflict
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
'429':
content:
application/json:
schema:
description: Too Many Requests
examples:
- error:
code: TOO_MANY_REQUESTS
message: Rate limit exceeded by too many requests.
properties:
error:
description: Provides additional information about the error.
properties:
code:
description: Identifier for the error
examples:
- SERVICE_UNAVAILABLE
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INTERNAL_SERVER_ERROR
title: Code
type: string
message:
description: Short description of the error.
title: Message
type: string
details:
anyOf:
- type: object
- type: 'null'
description: Contains details about the error when available. For example, which fields have validation problems or which action fails.
title: Details
required:
- code
- message
title: GSAPIErrorDetail
type: object
required:
- error
title: ResponseModel
type: object
description: Too Many Requests
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
'500':
content:
application/json:
schema:
description: Internal Service Error
examples:
- error:
code: INTERNAL_SERVICE_ERROR
message: Indicates an issue with the origin web server.
properties:
error:
description: Provides additional information about the error.
properties:
code:
description: Identifier for the error
examples:
- SERVICE_UNAVAILABLE
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INTERNAL_SERVER_ERROR
title: Code
type: string
message:
description: Short description of the error.
title: Message
type: string
details:
anyOf:
- type: object
- type: 'null'
description: Contains details about the error when available. For example, which fields have validation problems or which action fails.
title: Details
required:
- code
- message
title: GSAPIErrorDetail
type: object
required:
- error
title: ResponseModel
type: object
description: Internal Service Error
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
'503':
content:
application/json:
schema:
description: Service Unavailable
examples:
- error:
code: SERVICE_UNAVAILABLE
message: A SoFi Tech Solutions internal service error occurred, and the system was not able to process the request. This is equivalent to a Program API -1 System Failure error.
properties:
error:
description: Provides additional information about the error.
properties:
code:
description: Identifier for the error
examples:
- SERVICE_UNAVAILABLE
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INTERNAL_SERVER_ERROR
title: Code
type: string
message:
description: Short description of the error.
title: Message
type: string
details:
anyOf:
- type: object
- type: 'null'
description: Contains details about the error when available. For example, which fields have validation problems or which action fails.
title: Details
required:
- code
- message
title: GSAPIErrorDetail
type: object
required:
- error
title: ResponseModel
type: object
description: Service Unavailable
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
description: Use the Verify Customer endpoint to perform identity verification for individual or business customers and their associated entities. This endpoint validates customer information, including personal details, addresses, and identification documents. For businesses, a single customer profile can support the verification of multiple associated entities (e.g., directors or beneficial owners).
summary: Verify Customer
tags:
- IVS
requestBody:
content:
application/json:
schema:
properties:
providerId:
description: 'The system-generated identifier for the IVS provider.
Pattern: Up to 10 digits
Example: `"9999"`'
examples:
- '"9999"'
title: Providerid
type: string
customerType:
description: 'Specifies the category of customer undergoing verification.
Pattern: Person or Business
Example: `Person`'
examples:
- Person
enum:
- Person
- Business
title: VerifyCustomerType
type: string
customerId:
description: 'ID generated by you or SoFi Tech Solutions for the top-level customer (person or business) undergoing verification. Use this to correlate this event with the specific customer record in your system.
Pattern: Alphanumeric identifier
Example: `789XYZ2025`'
examples:
- 789XYZ2025
title: Customerid
type: string
eventTs:
description: 'Timestamp for when the verification event occurred.
Pattern: ISO 8601 date-time (YYYY-MM-DDTHH:MM:SS)
Example: `2025-01-01T00:00:00`'
examples:
- '2025-01-01T00:00:00'
format: date-time
title: Eventts
type: string
riskServiceId:
description: 'System-generated identifier that specifies the IVS configuration strategy assigned during IVS setup.
Pattern: EPRP or GCORE prefix followed by colon-separated identifiers, up to 50 characters
Example: ``EPRP-test-1231231:1``'
examples:
- '`EPRP-test-1231231:1`'
title: Riskserviceid
type: string
prodId:
description: 'The product ID of the account.
Pattern: One or more digits
Example: `9999`'
examples:
- '9999'
title: Prodid
type: string
persons:
description: 'A list of objects containing identity details for every person or entity associated with the verification. This object is **required** when `customerType: Person` and optional when `customerType: Business`.
Pattern: List of objects'
examples: []
items:
properties:
isPrimary:
description: 'Whether this person is the primary entity.
Pattern: `true` or `false`
Example: `true`'
examples:
- 'true'
title: Isprimary
type: boolean
entityId:
description: 'ID generated by you or SoFi Tech Solutions for a specific entity within a customer. For a `Person` customer type, this maps 1-to-1 with the `customerId`. For a `Business` customer type, a single customer may have multiple entities. Use this to correlate this event with the specific entity record in your system.
Pattern: Alphanumeric identifier
Example: `789XYZ2025`'
examples:
- 789XYZ2025
title: Entityid
type: string
ubo:
description: 'Whether the person is an Ultimate Beneficial Owner (UBO).
Pattern: `true` or `false`
Example: `true`'
examples:
- 'true'
title: Ubo
type: boolean
soleProprietor:
description: 'Whether the person is a sole proprietor.
Pattern: `true` or `false`
Example: `false`'
examples:
- 'false'
title: Soleproprietor
type: boolean
percentShareholding:
description: 'Percentage of shares held by the person.
Pattern: 0–100 with decimal places
Example: `25.5`'
examples:
- '25.5'
title: Percentshareholding
type: number
role:
description: 'Role of the person.
Pattern: `APPLICANT`, `DIRECTOR`, or `BENEFICIARY`
Example: `APPLICANT`'
examples:
- APPLICANT
enum:
- APPLICANT
- DIRECTOR
- BENEFICIARY
title: PersonEntityRoles
type: string
firstName:
description: 'Person''s first name.
Pattern: 1–40 characters: letters, spaces, hyphens, and single quotes
Example: `John`'
examples:
- John
title: Firstname
type: string
writeOnly: true
middleName:
description: 'Person''s middle name.
Pattern: 1–40 characters: letters, spaces, hyphens, and single quotes
Example: `M`'
examples:
- M
title: Middlename
type: string
writeOnly: true
lastName:
description: 'Person''s last name.
Pattern: 1–40 characters: letters, spaces, hyphens, and single quotes
Example: `Doe`'
examples:
- Doe
title: Lastname
type: string
writeOnly: true
dateOfBirth:
description: 'Person''s birth date.
Pattern: YYYY-MM-DD
Example: `1990-01-01`'
examples:
- '1990-01-01'
title: Dateofbirth
type: string
writeOnly: true
residentialAddress:
description: 'Person''s residential address.
Pattern: Nested object'
examples: []
properties:
address1:
description: 'Person''s first address line. Cannot be a P.O. box.
Pattern: 4–40 alphanumeric characters
Example: `123 Main Street`'
examples:
- 123 Main Street
title: Address1
type: string
writeOnly: true
address2:
description: 'Person''s second address line.
Pattern: Up to 40 characters
Example: `Apt 4B`'
examples:
- Apt 4B
title: Address2
type: string
writeOnly: true
city:
description: 'Person''s residential city.
Pattern: Up to 30 characters: letters, spaces, hyphen, and period
Example: `New York`'
examples:
- New York
title: City
type: string
writeOnly: true
state:
description: 'Person''s state or province.
Pattern: 2 character state abbreviation
Example: `NY`'
examples:
- NY
title: State
type: string
writeOnly: true
zipCode:
description: 'Person''s postal code (US ZIP code or local postal code).
Pattern: 5–20 characters
Example: `10001`'
examples:
- '10001'
title: Zipcode
type: string
writeOnly: true
countryCode:
description: 'Person''s three-letter country code.
Pattern: 3 character country code
Example: `USA`'
examples:
- USA
title: Countrycode
type: string
writeOnly: true
required:
- address1
- city
- state
- zipCode
- countryCode
title: ResidentialAddress
type: object
ssn:
description: 'Person''s social security number.
Pattern: 9 digits
Example: `123456789`'
examples:
- '123456789'
title: Ssn
type: string
writeOnly: true
nationalIdentificationType:
description: 'The type of national identification.
Pattern: Non-empty text
Example: `passport`'
examples:
- passport
title: Nationalidentificationtype
type: string
nationalIdentificationNumber:
description: 'The person''s national identification number.
Pattern: 5–20 alphanumeric characters
Example: `A12345678`'
examples:
- A12345678
title: Nationalidentificationnumber
type: string
writeOnly: true
countryOfIssuance:
description: 'The country that issued the identification.
Pattern: Up to 3 characters
Example: `USA`'
examples:
- USA
title: Countryofissuance
type: string
writeOnly: true
phone:
description: 'Person''s phone number.
Pattern: E.164 format
Example: `+12125551234`'
examples:
- '+12125551234'
title: Phone
type: string
writeOnly: true
email:
description: 'Person''s email address.
Pattern: 3–63 characters
Example: `john.doe@example.com`'
examples:
- john.doe@example.com
title: Email
type: string
writeOnly: true
eddq1:
description: '<> question 1.
Pattern: Integer
Example: `1`'
examples:
- '1'
title: Eddq1
type: integer
edda1:
description: 'EDD answer 1.
Pattern: Non-empty text
Example: `Answer text`'
examples:
- Answer text
title: Edda1
type: string
eddq2:
description: 'EDD question 2.
Pattern: Integer
Example: `2`'
examples:
- '2'
title: Eddq2
type: integer
edda2:
description: 'EDD answer 2.
Pattern: Non-empty text
Example: `Answer text`'
examples:
- Answer text
title: Edda2
type: string
eddq3:
description: 'EDD question 3.
Pattern: Integer
Example: `3`'
examples:
- '3'
title: Eddq3
type: integer
edda3:
description: '<> answer 3.
Pattern: Non-empty text
Example: `Answer text`'
examples:
- Answer text
title: Edda3
type: string
eddq4:
description: 'EDD question 4.
Pattern: Integer
Example: `4`'
examples:
- '4'
title: Eddq4
type: integer
edda4:
description: 'EDD answer 4.
Pattern: Non-empty text
Example: `Answer text`'
examples:
- Answer text
title: Edda4
type: string
eddq5:
description: 'EDD question 5.
Pattern: Integer
Example: `5`'
examples:
- '5'
title: Eddq5
type: integer
edda5:
description: 'EDD answer 5.
Pattern: Non-empty text
Example: `Answer text`'
examples:
- Answer text
title: Edda5
type: string
required:
- isPrimary
- entityId
- role
- firstName
- lastName
- dateOfBirth
- residentialAddress
- ssn
title: PersonEntity
type: object
title: Persons
type: array
business:
description: 'An object containing the legal and registration details for the business entity. This object is **required** when `customerType: Business`.
Pattern: Nested object'
examples: []
properties:
isPrimary:
description: 'Whether this business is the primary entity.
Pattern: `true` or `false`
Example: `true`'
examples:
- 'true'
title: Isprimary
type: boolean
entityId:
description: 'ID generated by you or SoFi Tech Solutions for a specific entity within a customer. For a `Person` customer type, this maps 1-to-1 with the `customerId`. For a `Business` customer type, a single customer may have multiple entities. Use this to correlate this event with the specific entity record in your system.
Pattern: Alphanumeric identifier
Example: `789XYZ2025`'
examples:
- 789XYZ2025
title: Entityid
type: string
businessLegalName:
description: 'Legal name of the business.
Pattern: 2–150 characters
Example: `Acme Corporation`'
examples:
- Acme Corporation
title: Businesslegalname
type: string
businessDBA:
description: 'The Doing Business As (DBA) name.
Pattern: 2–150 characters
Example: `Acme Co`'
examples:
- Acme Co
title: Businessdba
type: string
businessLegalStructure:
description: 'Legal structure of the business.
Pattern: Standard corporate abbreviation
Example: `LLC`'
examples:
- LLC
title: Businesslegalstructure
type: string
businessRegAddress:
description: 'The registration address for the business.
Pattern: Nested object'
examples: []
properties:
businessRegAddress:
description: 'First line of the business registration address. Cannot be a P.O. box.
Pattern: 4–40 alphanumeric characters
Example: `456 Business Blvd`'
examples:
- 456 Business Blvd
title: Businessregaddress
type: string
writeOnly: true
businessRegAddress2:
description: 'Second line of the business registration address.
Pattern: Up to 40 characters
Example: `Suite 200`'
examples:
- Suite 200
title: Businessregaddress2
type: string
writeOnly: true
businessRegCity:
description: 'City of the business registration address.
Pattern: Up to 30 characters: letters, spaces, hyphen, and period
Example: `San Francisco`'
examples:
- San Francisco
title: Businessregcity
type: string
writeOnly: true
businessRegState:
description: 'State of the business registration address.
Pattern: 2 character state abbreviation
Example: `CA`'
examples:
- CA
title: Businessregstate
type: string
writeOnly: true
businessRegZip:
description: 'ZIP code of the business registration address.
Pattern: Up to 5 digits
Example: `94105`'
examples:
- '94105'
title: Businessregzip
type: string
writeOnly: true
businessRegCountryCode:
description: 'Country code of the business registration address.
Pattern: 3 character country code
Example: `USA`'
examples:
- USA
title: Businessregcountrycode
type: string
writeOnly: true
required:
- businessRegAddress
- businessRegCity
- businessRegState
- businessRegZip
- businessRegCountryCode
title: BusinessRegAddress
type: object
companyMailingAddress:
description: 'Business mailing address
Pattern: Nested object'
examples: []
properties:
businessMailingAddress:
description: 'First line of the business mailing address. Cannot be a P.O. box.
Pattern: 4–40 alphanumeric characters
Example: `456 Business Blvd`'
examples:
- 456 Business Blvd
title: Businessmailingaddress
type: string
writeOnly: true
businessMailingAddress2:
description: 'Second line of the business mailing address.
Pattern: Up to 40 characters
Example: `Suite 200`'
examples:
- Suite 200
title: Businessmailingaddress2
type: string
writeOnly: true
businessMailingCity:
description: 'City of the business mailing address.
Pattern: Up to 30 characters: letters, spaces, hyphen, and period
Example: `San Francisco`'
examples:
- San Francisco
title: Businessmailingcity
type: string
writeOnly: true
businessMailingState:
description: 'State of the business mailing address.
Pattern: 2 character state abbreviation
Example: `CA`'
examples:
- CA
title: Businessmailingstate
type: string
writeOnly: true
businessMailingZip:
description: 'ZIP code of the business mailing address.
Pattern: Up to 5 digits
Example: `94105`'
examples:
- '94105'
title: Businessmailingzip
type: string
writeOnly: true
businessMailingCountryCode:
description: 'Country code of the business mailing address.
Pattern: 3 character country code
Example: `USA`'
examples:
- USA
title: Businessmailingcountrycode
type: string
writeOnly: true
required:
- businessMailingAddress
- businessMailingCity
- businessMailingState
- businessMailingZip
- businessMailingCountryCode
title: BusinessMailingAddress
type: object
businessDateOfIncorporation:
description: 'Date the business was incorporated.
Pattern: YYYY-MM-DD
Example: `2010-01-01`'
examples:
- '2010-01-01'
title: Businessdateofincorporation
type: string
writeOnly: true
businessTaxId:
description: 'Business tax ID (EIN).
Pattern: 9 digits
Example: `123456789`'
examples:
- '123456789'
title: Businesstaxid
type: string
writeOnly: true
businessSPDateOfBirth:
description: 'Date of birth for the sole proprietor.
Pattern: YYYY-MM-DD
Example: `1980-01-01`'
examples:
- '1980-01-01'
title: Businessspdateofbirth
type: string
writeOnly: true
thirdPartyOwnershipStructure:
description: 'Third-party ownership structure.
Pattern: Non-empty text
Example: `Private`'
examples:
- Private
title: Thirdpartyownershipstructure
type: string
thirdPartyBusinessActivities:
description: 'Third-party business activities.
Pattern: Non-empty text
Example: `Software development`'
examples:
- Software development
title: Thirdpartybusinessactivities
type: string
thirdPartyBusinessTenure:
description: 'Third-party business tenure.
Pattern: Non-empty text
Example: `5 years`'
examples:
- 5 years
title: Thirdpartybusinesstenure
type: string
businessWebsite:
description: 'Website URL for the business.
Pattern: URL
Example: `https://www.acmecorp.com`'
examples:
- https://www.acmecorp.com
title: Businesswebsite
type: string
businessParentLegalName:
description: 'Legal name of the parent business.
Pattern: 2–150 characters
Example: `Acme Holdings Inc`'
examples:
- Acme Holdings Inc
title: Businessparentlegalname
type: string
businessParentRegState:
description: 'State where the parent business is registered.
Pattern: 2 character state abbreviation
Example: `DE`'
examples:
- DE
title: Businessparentregstate
type: string
businessParentRegCountry:
description: 'Country where the parent business is registered.
Pattern: 3 character country code
Example: `USA`'
examples:
- USA
title: Businessparentregcountry
type: string
phone:
description: 'Business phone number.
Pattern: E.164 format
Example: `+14155551234`'
examples:
- '+14155551234'
title: Phone
type: string
writeOnly: true
email:
description: 'Business email address.
Pattern: 3–63 characters
Example: `contact@acmecorp.com`'
examples:
- contact@acmecorp.com
title: Email
type: string
writeOnly: true
eddq1:
description: '<> question 1
Pattern: Integer
Example: `1`'
examples:
- '1'
title: Eddq1
type: integer
edda1:
description: 'EDD answer 1
Pattern: Non-empty text
Example: `Answer text`'
examples:
- Answer text
title: Edda1
type: string
eddq2:
description: 'EDD question 2
Pattern: Integer
Example: `2`'
examples:
- '2'
title: Eddq2
type: integer
edda2:
description: 'EDD answer 2
Pattern: Non-empty text
Example: `Answer text`'
examples:
- Answer text
title: Edda2
type: string
eddq3:
description: 'EDD question 3
Pattern: Integer
Example: `3`'
examples:
- '3'
title: Eddq3
type: integer
edda3:
description: '<> answer 3
Pattern: Non-empty text
Example: `Answer text`'
examples:
- Answer text
title: Edda3
type: string
eddq4:
description: 'EDD question 4
Pattern: Integer
Example: `4`'
examples:
- '4'
title: Eddq4
type: integer
edda4:
description: 'EDD answer 4
Pattern: Non-empty text
Example: `Answer text`'
examples:
- Answer text
title: Edda4
type: string
eddq5:
description: 'EDD question 5
Pattern: Integer
Example: `5`'
examples:
- '5'
title: Eddq5
type: integer
edda5:
description: 'EDD answer 5
Pattern: Non-empty text
Example: `Answer text`'
examples:
- Answer text
title: Edda5
type: string
required:
- isPrimary
- entityId
- businessLegalName
- businessLegalStructure
- businessRegAddress
- companyMailingAddress
- businessDateOfIncorporation
- businessTaxId
title: BusinessEntity
type: object
required:
- providerId
- customerType
- customerId
- eventTs
- riskServiceId
- prodId
title: VerifyCustomerRequest
type: object
operationId: risk2_post_ivs-2-0-verifycustomer
/ivs/2.0/getApplicationStatus:
post:
parameters:
- name: authorization
in: header
schema:
examples:
- Basic eW91cl9hcGlsb2dpbjp5b3VyX2FwaXRyYW5za2V5
pattern: ^Basic [A-Za-z0-9+/]+=*$
title: Authorization
type: string
description: Basic authentication token (base64-encoded {apilogin}:{apitranskey} credentials provided by SoFi Tech Solutions)
- name: X-Request-Id
in: header
schema:
examples:
- '1234567890'
pattern: ''
title: X-Request-Id
type: string
description: Unique identifier for the request
responses:
'200':
content:
application/json:
schema:
description: Successful Response
properties:
entityId:
description: ID generated by you or SoFi Tech Solutions for the entity undergoing verification. Use this to correlate this event back to the specific entity record in your system.
title: Entityid
type: string
status:
description: 'Current status of the application: `ACTIVE`, `CLOSED`, or `PENDING`.'
title: Status
type: string
nextAction:
description: The specific follow-up action required to progress the application.
title: Nextaction
type: string
systemTs:
description: Date-time when the system generated this response in our system time, formatted as an ISO 8601 string.
format: date-time
title: Systemts
type: string
riskServiceId:
description: Unique identifier provided by SoFi Tech Solutions during IVS setup that identifies the client IVS configuration details.
title: Riskserviceid
type: string
required:
- entityId
- systemTs
- riskServiceId
title: GetApplicationStatusResponse
type: object
examples:
response:
value: "{\n \"status\": \"Success\",\n \"statusCode\": 0,\n \"processingTime\": \"0.045\",\n \"responseData\": {\n \"entityId\": \"98765\",\n \"status\": \"COMPLETE\",\n \"nextAction\": \"No Further Action\",\n \"systemTimestamp\": \"2025-04-22 15:00:00\",\n \"riskServiceId\": \"GCORE:100:200:300\"\n },\n \"echo\": {\n \"transactionId\": \"IVS-APP-STAT-99812\",\n \"rtoken\": \"8df90a-f0b1-4c12-a8d9-6b2e1f0c3d4e\"\n },\n \"systemTimestamp\": \"2025-04-22 15:00:00\",\n \"errors\": []\n}"
description: Successful Response
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
'400':
content:
application/json:
schema:
description: Bad Request
examples:
- error:
code: BAD_REQUEST
message: The request was not acceptable, typically due to missing or invalid parameters.
properties:
error:
description: Provides additional information about the error.
properties:
code:
description: Identifier for the error
examples:
- SERVICE_UNAVAILABLE
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INTERNAL_SERVER_ERROR
title: Code
type: string
message:
description: Short description of the error.
title: Message
type: string
details:
anyOf:
- type: object
- type: 'null'
description: Contains details about the error when available. For example, which fields have validation problems or which action fails.
title: Details
required:
- code
- message
title: GSAPIErrorDetail
type: object
required:
- error
title: ResponseModel
type: object
description: Bad Request
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
'401':
content:
application/json:
schema:
description: Unauthorized
examples:
- error:
code: UNAUTHORIZED
message: No valid API credentials provided.
properties:
error:
description: Provides additional information about the error.
properties:
code:
description: Identifier for the error
examples:
- SERVICE_UNAVAILABLE
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INTERNAL_SERVER_ERROR
title: Code
type: string
message:
description: Short description of the error.
title: Message
type: string
details:
anyOf:
- type: object
- type: 'null'
description: Contains details about the error when available. For example, which fields have validation problems or which action fails.
title: Details
required:
- code
- message
title: GSAPIErrorDetail
type: object
required:
- error
title: ResponseModel
type: object
description: Unauthorized
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
'403':
content:
application/json:
schema:
description: Forbidden
examples:
- error:
code: FORBIDDEN
message: The provided API credential does not allow this operation.
properties:
error:
description: Provides additional information about the error.
properties:
code:
description: Identifier for the error
examples:
- SERVICE_UNAVAILABLE
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INTERNAL_SERVER_ERROR
title: Code
type: string
message:
description: Short description of the error.
title: Message
type: string
details:
anyOf:
- type: object
- type: 'null'
description: Contains details about the error when available. For example, which fields have validation problems or which action fails.
title: Details
required:
- code
- message
title: GSAPIErrorDetail
type: object
required:
- error
title: ResponseModel
type: object
description: Forbidden
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
'404':
content:
application/json:
schema:
description: Not Found
examples:
- error:
code: NOT_FOUND
message: The requested entity does not exist.
properties:
error:
description: Provides additional information about the error.
properties:
code:
description: Identifier for the error
examples:
- SERVICE_UNAVAILABLE
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INTERNAL_SERVER_ERROR
title: Code
type: string
message:
description: Short description of the error.
title: Message
type: string
details:
anyOf:
- type: object
- type: 'null'
description: Contains details about the error when available. For example, which fields have validation problems or which action fails.
title: Details
required:
- code
- message
title: GSAPIErrorDetail
type: object
required:
- error
title: ResponseModel
type: object
description: Not Found
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
'409':
content:
application/json:
schema:
description: Conflict
examples:
- error:
code: CONCURRENT_IDEMPOTENT_REQUEST
message: The operation was called concurrently with duplicate `X-GFT-Idempotency-Key` headers, but does not support concurrent requests.
properties:
error:
description: Provides additional information about the error.
properties:
code:
description: Identifier for the error
examples:
- SERVICE_UNAVAILABLE
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INTERNAL_SERVER_ERROR
title: Code
type: string
message:
description: Short description of the error.
title: Message
type: string
details:
anyOf:
- type: object
- type: 'null'
description: Contains details about the error when available. For example, which fields have validation problems or which action fails.
title: Details
required:
- code
- message
title: GSAPIErrorDetail
type: object
required:
- error
title: ResponseModel
type: object
description: Conflict
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
'429':
content:
application/json:
schema:
description: Too Many Requests
examples:
- error:
code: TOO_MANY_REQUESTS
message: Rate limit exceeded by too many requests.
properties:
error:
description: Provides additional information about the error.
properties:
code:
description: Identifier for the error
examples:
- SERVICE_UNAVAILABLE
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INTERNAL_SERVER_ERROR
title: Code
type: string
message:
description: Short description of the error.
title: Message
type: string
details:
anyOf:
- type: object
- type: 'null'
description: Contains details about the error when available. For example, which fields have validation problems or which action fails.
title: Details
required:
- code
- message
title: GSAPIErrorDetail
type: object
required:
- error
title: ResponseModel
type: object
description: Too Many Requests
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
'500':
content:
application/json:
schema:
description: Internal Service Error
examples:
- error:
code: INTERNAL_SERVICE_ERROR
message: Indicates an issue with the origin web server.
properties:
error:
description: Provides additional information about the error.
properties:
code:
description: Identifier for the error
examples:
- SERVICE_UNAVAILABLE
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INTERNAL_SERVER_ERROR
title: Code
type: string
message:
description: Short description of the error.
title: Message
type: string
details:
anyOf:
- type: object
- type: 'null'
description: Contains details about the error when available. For example, which fields have validation problems or which action fails.
title: Details
required:
- code
- message
title: GSAPIErrorDetail
type: object
required:
- error
title: ResponseModel
type: object
description: Internal Service Error
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
'503':
content:
application/json:
schema:
description: Service Unavailable
examples:
- error:
code: SERVICE_UNAVAILABLE
message: A SoFi Tech Solutions internal service error occurred, and the system was not able to process the request. This is equivalent to a Program API -1 System Failure error.
properties:
error:
description: Provides additional information about the error.
properties:
code:
description: Identifier for the error
examples:
- SERVICE_UNAVAILABLE
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INTERNAL_SERVER_ERROR
title: Code
type: string
message:
description: Short description of the error.
title: Message
type: string
details:
anyOf:
- type: object
- type: 'null'
description: Contains details about the error when available. For example, which fields have validation problems or which action fails.
title: Details
required:
- code
- message
title: GSAPIErrorDetail
type: object
required:
- error
title: ResponseModel
type: object
description: Service Unavailable
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
description: Use the Get Application Status endpoint to retrieve the current state of an existing application, including its activity status and any pending decisions.
summary: Get Application Status
tags:
- IVS
requestBody:
content:
application/json:
schema:
properties:
entityId:
description: 'ID generated by you or SoFi Tech Solutions for a specific entity within a customer. For a `Person` customer type, this maps 1-to-1 with the `customerId`. For a `Business` customer type, a single customer may have multiple entities. Use this to correlate this event with the specific entity record in your system.
Pattern: Alphanumeric identifier
Example: `789XYZ2025`'
examples:
- 789XYZ2025
title: Entityid
type: string
requestTs:
description: 'The date and time when the status request was initiated in our system time, formatted as an ISO 8601 string.
Pattern: ISO 8601 date-time (YYYY-MM-DDTHH:MM:SS)
Example: `2025-01-01T00:00:00`'
examples:
- '2025-01-01T00:00:00'
format: date-time
title: Requestts
type: string
riskServiceId:
description: 'Unique identifier provided by SoFi Tech Solutions during IVS setup that identifies the client IVS configuration details.
Pattern: EPRP or GCORE prefix followed by colon-separated identifiers, up to 50 characters
Example: ``EPRP-test-1231231:1` or `GCORE:1:2:3``'
examples:
- '`EPRP-test-1231231:1` or `GCORE:1:2:3`'
title: Riskserviceid
type: string
providerId:
description: 'The system-generated identifier for the IVS provider.
Pattern: Up to 10 digits
Example: `1234567890`'
examples:
- '1234567890'
title: Providerid
type: string
required:
- entityId
- requestTs
- riskServiceId
- providerId
title: GetApplicationStatusRequest
type: object
operationId: risk2_post_ivs-2-0-getapplicationstatus
/ivs/2.0/closeApplication:
post:
parameters:
- name: authorization
in: header
schema:
examples:
- Basic eW91cl9hcGlsb2dpbjp5b3VyX2FwaXRyYW5za2V5
pattern: ^Basic [A-Za-z0-9+/]+=*$
title: Authorization
type: string
description: Basic authentication token (base64-encoded {apilogin}:{apitranskey} credentials provided by SoFi Tech Solutions)
- name: X-Request-Id
in: header
schema:
examples:
- '1234567890'
pattern: ''
title: X-Request-Id
type: string
description: Unique identifier for the request
responses:
'200':
content:
application/json:
schema:
description: Successful Response
properties:
entityId:
description: ID generated by you or SoFi Tech Solutions for the entity undergoing verification.
title: Entityid
type: string
decision:
description: 'Final decision applied to the application upon closure: `ACCEPT`, `DECLINE`, or `CLOSE`.'
title: Decision
type: string
systemTs:
description: Date-time when the system generated this response in our system time, formatted as an ISO 8601 string.
format: date-time
title: Systemts
type: string
riskServiceId:
description: System-generated identifier that specifies the IVS configuration strategy assigned during IVS setup.
title: Riskserviceid
type: string
required:
- entityId
- systemTs
- riskServiceId
title: CloseApplicationResponse
type: object
examples:
response:
value: "{\n \"status\": \"Success\",\n \"statusCode\": 0,\n \"processingTime\": \"0.052\",\n \"responseData\": {\n \"entityId\": \"98765\",\n \"decision\": \"CLOSE\",\n \"systemTimestamp\": \"2025-04-22 15:00:00\",\n \"riskServiceId\": \"GCORE:100:200:300\"\n },\n \"echo\": {\n \"transactionId\": \"IVS-APP-CLS-44102\",\n \"rtoken\": \"2e3f4a-b5c6-7d8e-9f0a-1b2c3d4e5f6a\"\n },\n \"systemTimestamp\": \"2025-04-22 15:00:00\",\n \"errors\": []\n }"
description: Successful Response
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
'400':
content:
application/json:
schema:
description: Bad Request
examples:
- error:
code: BAD_REQUEST
message: The request was not acceptable, typically due to missing or invalid parameters.
properties:
error:
description: Provides additional information about the error.
properties:
code:
description: Identifier for the error
examples:
- SERVICE_UNAVAILABLE
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INTERNAL_SERVER_ERROR
title: Code
type: string
message:
description: Short description of the error.
title: Message
type: string
details:
anyOf:
- type: object
- type: 'null'
description: Contains details about the error when available. For example, which fields have validation problems or which action fails.
title: Details
required:
- code
- message
title: GSAPIErrorDetail
type: object
required:
- error
title: ResponseModel
type: object
description: Bad Request
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
'401':
content:
application/json:
schema:
description: Unauthorized
examples:
- error:
code: UNAUTHORIZED
message: No valid API credentials provided.
properties:
error:
description: Provides additional information about the error.
properties:
code:
description: Identifier for the error
examples:
- SERVICE_UNAVAILABLE
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INTERNAL_SERVER_ERROR
title: Code
type: string
message:
description: Short description of the error.
title: Message
type: string
details:
anyOf:
- type: object
- type: 'null'
description: Contains details about the error when available. For example, which fields have validation problems or which action fails.
title: Details
required:
- code
- message
title: GSAPIErrorDetail
type: object
required:
- error
title: ResponseModel
type: object
description: Unauthorized
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
'403':
content:
application/json:
schema:
description: Forbidden
examples:
- error:
code: FORBIDDEN
message: The provided API credential does not allow this operation.
properties:
error:
description: Provides additional information about the error.
properties:
code:
description: Identifier for the error
examples:
- SERVICE_UNAVAILABLE
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INTERNAL_SERVER_ERROR
title: Code
type: string
message:
description: Short description of the error.
title: Message
type: string
details:
anyOf:
- type: object
- type: 'null'
description: Contains details about the error when available. For example, which fields have validation problems or which action fails.
title: Details
required:
- code
- message
title: GSAPIErrorDetail
type: object
required:
- error
title: ResponseModel
type: object
description: Forbidden
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
'404':
content:
application/json:
schema:
description: Not Found
examples:
- error:
code: NOT_FOUND
message: The requested entity does not exist.
properties:
error:
description: Provides additional information about the error.
properties:
code:
description: Identifier for the error
examples:
- SERVICE_UNAVAILABLE
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INTERNAL_SERVER_ERROR
title: Code
type: string
message:
description: Short description of the error.
title: Message
type: string
details:
anyOf:
- type: object
- type: 'null'
description: Contains details about the error when available. For example, which fields have validation problems or which action fails.
title: Details
required:
- code
- message
title: GSAPIErrorDetail
type: object
required:
- error
title: ResponseModel
type: object
description: Not Found
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
'409':
content:
application/json:
schema:
description: Conflict
examples:
- error:
code: CONCURRENT_IDEMPOTENT_REQUEST
message: The operation was called concurrently with duplicate `X-GFT-Idempotency-Key` headers, but does not support concurrent requests.
properties:
error:
description: Provides additional information about the error.
properties:
code:
description: Identifier for the error
examples:
- SERVICE_UNAVAILABLE
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INTERNAL_SERVER_ERROR
title: Code
type: string
message:
description: Short description of the error.
title: Message
type: string
details:
anyOf:
- type: object
- type: 'null'
description: Contains details about the error when available. For example, which fields have validation problems or which action fails.
title: Details
required:
- code
- message
title: GSAPIErrorDetail
type: object
required:
- error
title: ResponseModel
type: object
description: Conflict
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
'429':
content:
application/json:
schema:
description: Too Many Requests
examples:
- error:
code: TOO_MANY_REQUESTS
message: Rate limit exceeded by too many requests.
properties:
error:
description: Provides additional information about the error.
properties:
code:
description: Identifier for the error
examples:
- SERVICE_UNAVAILABLE
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INTERNAL_SERVER_ERROR
title: Code
type: string
message:
description: Short description of the error.
title: Message
type: string
details:
anyOf:
- type: object
- type: 'null'
description: Contains details about the error when available. For example, which fields have validation problems or which action fails.
title: Details
required:
- code
- message
title: GSAPIErrorDetail
type: object
required:
- error
title: ResponseModel
type: object
description: Too Many Requests
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
'500':
content:
application/json:
schema:
description: Internal Service Error
examples:
- error:
code: INTERNAL_SERVICE_ERROR
message: Indicates an issue with the origin web server.
properties:
error:
description: Provides additional information about the error.
properties:
code:
description: Identifier for the error
examples:
- SERVICE_UNAVAILABLE
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INTERNAL_SERVER_ERROR
title: Code
type: string
message:
description: Short description of the error.
title: Message
type: string
details:
anyOf:
- type: object
- type: 'null'
description: Contains details about the error when available. For example, which fields have validation problems or which action fails.
title: Details
required:
- code
- message
title: GSAPIErrorDetail
type: object
required:
- error
title: ResponseModel
type: object
description: Internal Service Error
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
'503':
content:
application/json:
schema:
description: Service Unavailable
examples:
- error:
code: SERVICE_UNAVAILABLE
message: A SoFi Tech Solutions internal service error occurred, and the system was not able to process the request. This is equivalent to a Program API -1 System Failure error.
properties:
error:
description: Provides additional information about the error.
properties:
code:
description: Identifier for the error
examples:
- SERVICE_UNAVAILABLE
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INTERNAL_SERVER_ERROR
title: Code
type: string
message:
description: Short description of the error.
title: Message
type: string
details:
anyOf:
- type: object
- type: 'null'
description: Contains details about the error when available. For example, which fields have validation problems or which action fails.
title: Details
required:
- code
- message
title: GSAPIErrorDetail
type: object
required:
- error
title: ResponseModel
type: object
description: Service Unavailable
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
description: Use the Close Application endpoint to terminate an existing identity verification application that is no longer needed.
summary: Close Application
tags:
- IVS
requestBody:
content:
application/json:
schema:
properties:
entityId:
description: 'ID generated by you or SoFi Tech Solutions for a specific entity within a customer. For a `Person` customer type, this maps 1-to-1 with the `customerId`. For a `Business` customer type, a single customer may have multiple entities. Use this to correlate this event with the specific entity record in your system.
Pattern: Alphanumeric identifier
Example: `789XYZ2025`'
examples:
- 789XYZ2025
title: Entityid
type: string
requestTs:
description: 'The date and time when the closure request was initiated in our system time, formatted as an ISO 8601 string.
Pattern: ISO 8601 date-time (YYYY-MM-DDTHH:MM:SS)
Example: `2025-01-01T00:00:00`'
examples:
- '2025-01-01T00:00:00'
format: date-time
title: Requestts
type: string
reasonId:
description: 'The reason code for closing the application:
* `61` — Applicant requested
* `62` — Abandoned
* `63` — Terminated by provider
Pattern: `61`, `62`, or `63`
Example: `61`'
examples:
- '61'
title: Reasonid
type: integer
riskServiceId:
description: 'System-generated identifier that specifies the IVS configuration strategy assigned during IVS setup.
Pattern: EPRP or GCORE prefix followed by colon-separated identifiers, up to 50 characters
Example: ``EPRP-test-1231231:1` or `GCORE:1:2:3``'
examples:
- '`EPRP-test-1231231:1` or `GCORE:1:2:3`'
title: Riskserviceid
type: string
providerId:
description: 'The system-generated identifier for the IVS provider.
Pattern: Up to 10 digits
Example: `1234567890`'
examples:
- '1234567890'
title: Providerid
type: string
required:
- entityId
- requestTs
- reasonId
- riskServiceId
- providerId
title: CloseApplicationRequest
type: object
operationId: risk2_post_ivs-2-0-closeapplication
/ivs/2.0/getCustomerStatus:
post:
parameters:
- name: authorization
in: header
schema:
examples:
- Basic eW91cl9hcGlsb2dpbjp5b3VyX2FwaXRyYW5za2V5
pattern: ^Basic [A-Za-z0-9+/]+=*$
title: Authorization
type: string
description: Basic authentication token (base64-encoded {apilogin}:{apitranskey} credentials provided by SoFi Tech Solutions)
- name: X-Request-Id
in: header
schema:
examples:
- '1234567890'
pattern: ''
title: X-Request-Id
type: string
description: Unique identifier for the request
responses:
'200':
content:
application/json:
schema:
description: Successful Response
properties:
customerId:
description: ID generated by you or SoFi Tech Solutions for the customer undergoing verification. Use this to correlate this event with the specific entity record in your system.
title: Customerid
type: string
ivsProfileId:
description: Identifier for the IVS profile. Use this ID to reference the account's status in other endpoint requests. This identifier is supplied by the third-party provider, not SoFi Tech Solutions.
title: Ivsprofileid
type: string
riskServiceId:
description: System-generated identifier that specifies the IVS configuration strategy assigned during IVS setup.
title: Riskserviceid
type: string
status:
description: 'Overall status of the customer''s identity verification process: `COMPLETE`, `REFERRED`, `AWAITING RESPONSE`, `PENDING EXTERNAL APPROVAL`, or `IN PROGRESS`.'
title: Status
type: string
decision:
description: Final decision for identity verification. This field is returned only when the verification is complete.
title: Decision
type: string
systemTs:
anyOf:
- type: string
- type: 'null'
description: Date-time when the system generated this response in our system time, formatted as an ISO 8601 string.
title: Systemts
required:
- customerId
- ivsProfileId
- riskServiceId
- status
- systemTs
title: GetAccountStatusResponse
type: object
examples:
response:
value: "{\n \"status\": \"Success\",\n \"statusCode\": 0,\n \"processingTime\": \"0.038\",\n \"responseData\": {\n \"customerId\": \"11111\",\n \"ivsProfileId\": \"9876543\",\n \"riskServiceId\": \"GCORE:100:200:300\",\n \"status\": \"COMPLETE\",\n \"decision\": \"ACCEPT\",\n \"systemTimestamp\": \"2025-04-22 15:00:00\"\n },\n \"echo\": {\n \"transactionId\": \"IVS-CUST-STAT-11203\",\n \"rtoken\": \"9a8b7c-6d5e-4f3g-2h1i-0j9k8l7m6n5o\"\n },\n \"systemTimestamp\": \"2025-04-22 15:00:00\",\n \"errors\": []\n }"
description: Successful Response
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
'400':
content:
application/json:
schema:
description: Bad Request
examples:
- error:
code: BAD_REQUEST
message: The request was not acceptable, typically due to missing or invalid parameters.
properties:
error:
description: Provides additional information about the error.
properties:
code:
description: Identifier for the error
examples:
- SERVICE_UNAVAILABLE
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INTERNAL_SERVER_ERROR
title: Code
type: string
message:
description: Short description of the error.
title: Message
type: string
details:
anyOf:
- type: object
- type: 'null'
description: Contains details about the error when available. For example, which fields have validation problems or which action fails.
title: Details
required:
- code
- message
title: GSAPIErrorDetail
type: object
required:
- error
title: ResponseModel
type: object
description: Bad Request
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
'401':
content:
application/json:
schema:
description: Unauthorized
examples:
- error:
code: UNAUTHORIZED
message: No valid API credentials provided.
properties:
error:
description: Provides additional information about the error.
properties:
code:
description: Identifier for the error
examples:
- SERVICE_UNAVAILABLE
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INTERNAL_SERVER_ERROR
title: Code
type: string
message:
description: Short description of the error.
title: Message
type: string
details:
anyOf:
- type: object
- type: 'null'
description: Contains details about the error when available. For example, which fields have validation problems or which action fails.
title: Details
required:
- code
- message
title: GSAPIErrorDetail
type: object
required:
- error
title: ResponseModel
type: object
description: Unauthorized
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
'403':
content:
application/json:
schema:
description: Forbidden
examples:
- error:
code: FORBIDDEN
message: The provided API credential does not allow this operation.
properties:
error:
description: Provides additional information about the error.
properties:
code:
description: Identifier for the error
examples:
- SERVICE_UNAVAILABLE
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INTERNAL_SERVER_ERROR
title: Code
type: string
message:
description: Short description of the error.
title: Message
type: string
details:
anyOf:
- type: object
- type: 'null'
description: Contains details about the error when available. For example, which fields have validation problems or which action fails.
title: Details
required:
- code
- message
title: GSAPIErrorDetail
type: object
required:
- error
title: ResponseModel
type: object
description: Forbidden
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
'404':
content:
application/json:
schema:
description: Not Found
examples:
- error:
code: NOT_FOUND
message: The requested entity does not exist.
properties:
error:
description: Provides additional information about the error.
properties:
code:
description: Identifier for the error
examples:
- SERVICE_UNAVAILABLE
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INTERNAL_SERVER_ERROR
title: Code
type: string
message:
description: Short description of the error.
title: Message
type: string
details:
anyOf:
- type: object
- type: 'null'
description: Contains details about the error when available. For example, which fields have validation problems or which action fails.
title: Details
required:
- code
- message
title: GSAPIErrorDetail
type: object
required:
- error
title: ResponseModel
type: object
description: Not Found
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
'409':
content:
application/json:
schema:
description: Conflict
examples:
- error:
code: CONCURRENT_IDEMPOTENT_REQUEST
message: The operation was called concurrently with duplicate `X-GFT-Idempotency-Key` headers, but does not support concurrent requests.
properties:
error:
description: Provides additional information about the error.
properties:
code:
description: Identifier for the error
examples:
- SERVICE_UNAVAILABLE
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INTERNAL_SERVER_ERROR
title: Code
type: string
message:
description: Short description of the error.
title: Message
type: string
details:
anyOf:
- type: object
- type: 'null'
description: Contains details about the error when available. For example, which fields have validation problems or which action fails.
title: Details
required:
- code
- message
title: GSAPIErrorDetail
type: object
required:
- error
title: ResponseModel
type: object
description: Conflict
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
'429':
content:
application/json:
schema:
description: Too Many Requests
examples:
- error:
code: TOO_MANY_REQUESTS
message: Rate limit exceeded by too many requests.
properties:
error:
description: Provides additional information about the error.
properties:
code:
description: Identifier for the error
examples:
- SERVICE_UNAVAILABLE
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INTERNAL_SERVER_ERROR
title: Code
type: string
message:
description: Short description of the error.
title: Message
type: string
details:
anyOf:
- type: object
- type: 'null'
description: Contains details about the error when available. For example, which fields have validation problems or which action fails.
title: Details
required:
- code
- message
title: GSAPIErrorDetail
type: object
required:
- error
title: ResponseModel
type: object
description: Too Many Requests
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
'500':
content:
application/json:
schema:
description: Internal Service Error
examples:
- error:
code: INTERNAL_SERVICE_ERROR
message: Indicates an issue with the origin web server.
properties:
error:
description: Provides additional information about the error.
properties:
code:
description: Identifier for the error
examples:
- SERVICE_UNAVAILABLE
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INTERNAL_SERVER_ERROR
title: Code
type: string
message:
description: Short description of the error.
title: Message
type: string
details:
anyOf:
- type: object
- type: 'null'
description: Contains details about the error when available. For example, which fields have validation problems or which action fails.
title: Details
required:
- code
- message
title: GSAPIErrorDetail
type: object
required:
- error
title: ResponseModel
type: object
description: Internal Service Error
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
'503':
content:
application/json:
schema:
description: Service Unavailable
examples:
- error:
code: SERVICE_UNAVAILABLE
message: A SoFi Tech Solutions internal service error occurred, and the system was not able to process the request. This is equivalent to a Program API -1 System Failure error.
properties:
error:
description: Provides additional information about the error.
properties:
code:
description: Identifier for the error
examples:
- SERVICE_UNAVAILABLE
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INTERNAL_SERVER_ERROR
title: Code
type: string
message:
description: Short description of the error.
title: Message
type: string
details:
anyOf:
- type: object
- type: 'null'
description: Contains details about the error when available. For example, which fields have validation problems or which action fails.
title: Details
required:
- code
- message
title: GSAPIErrorDetail
type: object
required:
- error
title: ResponseModel
type: object
description: Service Unavailable
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
description: Use the Get Customer Status endpoint to retrieve the current verification standing and final decision for a customer profile.
summary: Get Customer Status
tags:
- IVS
requestBody:
content:
application/json:
schema:
properties:
customerId:
description: 'ID generated by you or SoFi Tech Solutions for the top-level customer (person or business) undergoing verification. Use this to correlate this event with the specific customer record in your system.
Pattern: Alphanumeric identifier
Example: `789XYZ2025`'
examples:
- 789XYZ2025
title: Customerid
type: string
providerId:
description: 'The system-generated identifier for the IVS provider.
Pattern: Up to 10 digits
Example: `1234567890`'
examples:
- '1234567890'
title: Providerid
type: string
ivsProfileId:
description: 'The third-party provider supplies this identifier to reference the account status across other endpoints.
Pattern: Numeric characters only
Example: `22262843`'
examples:
- '22262843'
title: Ivsprofileid
type: string
riskServiceId:
description: 'System-generated identifier that specifies the IVS configuration strategy assigned during IVS setup.
Pattern: EPRP or GCORE prefix followed by colon-separated identifiers, up to 50 characters
Example: ``EPRP-test-1231231:1` or `GCORE:1:2:3``'
examples:
- '`EPRP-test-1231231:1` or `GCORE:1:2:3`'
title: Riskserviceid
type: string
requestTs:
description: 'The date and time when the customer status request was initiated in our system time, formatted as an ISO 8601 string.
Pattern: ISO 8601 date-time (YYYY-MM-DDTHH:MM:SS)
Example: `2025-01-01T00:00:00`'
examples:
- '2025-01-01T00:00:00'
format: date-time
title: Requestts
type: string
required:
- customerId
- providerId
- ivsProfileId
- riskServiceId
- requestTs
title: GetAccountStatusRequest
type: object
operationId: risk2_post_ivs-2-0-getcustomerstatus
/ivs/2.0/closeCustomer:
post:
parameters:
- name: authorization
in: header
schema:
examples:
- Basic eW91cl9hcGlsb2dpbjp5b3VyX2FwaXRyYW5za2V5
pattern: ^Basic [A-Za-z0-9+/]+=*$
title: Authorization
type: string
description: Basic authentication token (base64-encoded {apilogin}:{apitranskey} credentials provided by SoFi Tech Solutions)
- name: X-Request-Id
in: header
schema:
examples:
- '1234567890'
pattern: ''
title: X-Request-Id
type: string
description: Unique identifier for the request
responses:
'200':
content:
application/json:
schema:
description: Successful Response
properties:
customerId:
description: ID generated by you or SoFi Tech Solutions for the customer undergoing verification. Use this to correlate this event with the specific entity record in your system.
title: Customerid
type: string
ivsProfileId:
description: Identifier for the IVS profile. Use this ID to reference the account's status in other endpoint requests. This identifier is supplied by the third-party provider, not SoFi Tech Solutions.
title: Ivsprofileid
type: string
date:
description: Date-time when the customer account was officially closed.
format: date-time
title: Date
type: string
status:
description: 'The condition of the customer account following the closure request: `COMPLETE`, `REFERRED`, `AWAITING RESPONSE`, or `IN PROGRESS`.'
title: Status
type: string
decision:
description: 'The final decision applied to the customer account upon closure: `DECLINE` or `CLOSE`. This field is returned only when verification is complete.'
title: Decision
type: string
riskServiceId:
description: System-generated identifier that specifies the IVS configuration strategy assigned during IVS setup.
title: Riskserviceid
type: string
systemTs:
description: Date-time when the system generated this response in our system time, formatted as an ISO 8601 string.
format: date-time
title: Systemts
type: string
required:
- riskServiceId
- systemTs
title: CloseAccountResponse
type: object
examples:
response:
value: "{\n \"status\": \"Success\",\n \"statusCode\": 0,\n \"processingTime\": \"0.061\",\n \"responseData\": {\n \"customerId\": \"11111\",\n \"ivsProfileId\": \"9876543\",\n \"closedDate\": \"2025-04-22 15:00:00\",\n \"status\": \"CLOSED\",\n \"decision\": \"CLOSE\",\n \"riskServiceId\": \"GCORE:100:200:300\",\n \"systemTimestamp\": \"2025-04-22 15:00:00\"\n },\n \"echo\": {\n \"transactionId\": \"IVS-CUST-CLS-77304\",\n \"rtoken\": \"1a2b3c-4d5e-6f7g-8h9i-0j1k2l3m4n5o\"\n },\n \"systemTimestamp\": \"2025-04-22 15:00:00\",\n \"errors\": []\n}"
description: Successful Response
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
'400':
content:
application/json:
schema:
description: Bad Request
examples:
- error:
code: BAD_REQUEST
message: The request was not acceptable, typically due to missing or invalid parameters.
properties:
error:
description: Provides additional information about the error.
properties:
code:
description: Identifier for the error
examples:
- SERVICE_UNAVAILABLE
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INTERNAL_SERVER_ERROR
title: Code
type: string
message:
description: Short description of the error.
title: Message
type: string
details:
anyOf:
- type: object
- type: 'null'
description: Contains details about the error when available. For example, which fields have validation problems or which action fails.
title: Details
required:
- code
- message
title: GSAPIErrorDetail
type: object
required:
- error
title: ResponseModel
type: object
description: Bad Request
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
'401':
content:
application/json:
schema:
description: Unauthorized
examples:
- error:
code: UNAUTHORIZED
message: No valid API credentials provided.
properties:
error:
description: Provides additional information about the error.
properties:
code:
description: Identifier for the error
examples:
- SERVICE_UNAVAILABLE
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INTERNAL_SERVER_ERROR
title: Code
type: string
message:
description: Short description of the error.
title: Message
type: string
details:
anyOf:
- type: object
- type: 'null'
description: Contains details about the error when available. For example, which fields have validation problems or which action fails.
title: Details
required:
- code
- message
title: GSAPIErrorDetail
type: object
required:
- error
title: ResponseModel
type: object
description: Unauthorized
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
'403':
content:
application/json:
schema:
description: Forbidden
examples:
- error:
code: FORBIDDEN
message: The provided API credential does not allow this operation.
properties:
error:
description: Provides additional information about the error.
properties:
code:
description: Identifier for the error
examples:
- SERVICE_UNAVAILABLE
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INTERNAL_SERVER_ERROR
title: Code
type: string
message:
description: Short description of the error.
title: Message
type: string
details:
anyOf:
- type: object
- type: 'null'
description: Contains details about the error when available. For example, which fields have validation problems or which action fails.
title: Details
required:
- code
- message
title: GSAPIErrorDetail
type: object
required:
- error
title: ResponseModel
type: object
description: Forbidden
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
'404':
content:
application/json:
schema:
description: Not Found
examples:
- error:
code: NOT_FOUND
message: The requested entity does not exist.
properties:
error:
description: Provides additional information about the error.
properties:
code:
description: Identifier for the error
examples:
- SERVICE_UNAVAILABLE
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INTERNAL_SERVER_ERROR
title: Code
type: string
message:
description: Short description of the error.
title: Message
type: string
details:
anyOf:
- type: object
- type: 'null'
description: Contains details about the error when available. For example, which fields have validation problems or which action fails.
title: Details
required:
- code
- message
title: GSAPIErrorDetail
type: object
required:
- error
title: ResponseModel
type: object
description: Not Found
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
'409':
content:
application/json:
schema:
description: Conflict
examples:
- error:
code: CONCURRENT_IDEMPOTENT_REQUEST
message: The operation was called concurrently with duplicate `X-GFT-Idempotency-Key` headers, but does not support concurrent requests.
properties:
error:
description: Provides additional information about the error.
properties:
code:
description: Identifier for the error
examples:
- SERVICE_UNAVAILABLE
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INTERNAL_SERVER_ERROR
title: Code
type: string
message:
description: Short description of the error.
title: Message
type: string
details:
anyOf:
- type: object
- type: 'null'
description: Contains details about the error when available. For example, which fields have validation problems or which action fails.
title: Details
required:
- code
- message
title: GSAPIErrorDetail
type: object
required:
- error
title: ResponseModel
type: object
description: Conflict
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
'429':
content:
application/json:
schema:
description: Too Many Requests
examples:
- error:
code: TOO_MANY_REQUESTS
message: Rate limit exceeded by too many requests.
properties:
error:
description: Provides additional information about the error.
properties:
code:
description: Identifier for the error
examples:
- SERVICE_UNAVAILABLE
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INTERNAL_SERVER_ERROR
title: Code
type: string
message:
description: Short description of the error.
title: Message
type: string
details:
anyOf:
- type: object
- type: 'null'
description: Contains details about the error when available. For example, which fields have validation problems or which action fails.
title: Details
required:
- code
- message
title: GSAPIErrorDetail
type: object
required:
- error
title: ResponseModel
type: object
description: Too Many Requests
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
'500':
content:
application/json:
schema:
description: Internal Service Error
examples:
- error:
code: INTERNAL_SERVICE_ERROR
message: Indicates an issue with the origin web server.
properties:
error:
description: Provides additional information about the error.
properties:
code:
description: Identifier for the error
examples:
- SERVICE_UNAVAILABLE
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INTERNAL_SERVER_ERROR
title: Code
type: string
message:
description: Short description of the error.
title: Message
type: string
details:
anyOf:
- type: object
- type: 'null'
description: Contains details about the error when available. For example, which fields have validation problems or which action fails.
title: Details
required:
- code
- message
title: GSAPIErrorDetail
type: object
required:
- error
title: ResponseModel
type: object
description: Internal Service Error
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
'503':
content:
application/json:
schema:
description: Service Unavailable
examples:
- error:
code: SERVICE_UNAVAILABLE
message: A SoFi Tech Solutions internal service error occurred, and the system was not able to process the request. This is equivalent to a Program API -1 System Failure error.
properties:
error:
description: Provides additional information about the error.
properties:
code:
description: Identifier for the error
examples:
- SERVICE_UNAVAILABLE
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INTERNAL_SERVER_ERROR
title: Code
type: string
message:
description: Short description of the error.
title: Message
type: string
details:
anyOf:
- type: object
- type: 'null'
description: Contains details about the error when available. For example, which fields have validation problems or which action fails.
title: Details
required:
- code
- message
title: GSAPIErrorDetail
type: object
required:
- error
title: ResponseModel
type: object
description: Service Unavailable
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
description: Use the Close Customer endpoint to terminate a customer's account and halt all associated identity-verification processes.
summary: Close Customer Account
tags:
- IVS
requestBody:
content:
application/json:
schema:
properties:
requestTs:
description: 'The date and time when the customer closure request was initiated in our system time, formatted as an ISO 8601 string.
Pattern: ISO 8601 date-time (YYYY-MM-DDTHH:MM:SS)
Example: `2025-01-01T00:00:00`'
examples:
- '2025-01-01T00:00:00'
format: date-time
title: Requestts
type: string
riskServiceId:
description: 'System-generated identifier that specifies the IVS configuration strategy assigned during IVS setup.
Pattern: EPRP or GCORE prefix followed by colon-separated identifiers, up to 50 characters
Example: ``EPRP-test-1231231:1` or `GCORE:1:2:3``'
examples:
- '`EPRP-test-1231231:1` or `GCORE:1:2:3`'
title: Riskserviceid
type: string
providerId:
description: 'The system-generated identifier for the IVS provider.
Pattern: Up to 10 digits
Example: `1234567890`'
examples:
- '1234567890'
title: Providerid
type: string
customerId:
description: 'ID generated by you or SoFi Tech Solutions for the top-level customer (person or business) undergoing verification. Use this to correlate this event with the specific customer record in your system.
Pattern: Alphanumeric identifier
Example: `789XYZ2025`'
examples:
- 789XYZ2025
title: Customerid
type: string
ivsProfileId:
description: 'The third-party provider supplies this identifier to reference the account status across other endpoints.
Pattern: Numeric characters only
Example: `22262843`'
examples:
- '22262843'
title: Ivsprofileid
type: string
reasonId:
description: 'The reason code for closing the application:
* `61` — Applicant requested
* `62` — Abandoned
* `63` — Terminated by provider
Pattern: `61`, `62`, or `63`
Example: `61`'
examples:
- '61'
enum:
- '61'
- '62'
- '63'
title: CloseReasonType
type: string
required:
- requestTs
- riskServiceId
- providerId
- reasonId
title: CloseAccountRequest
type: object
operationId: risk2_post_ivs-2-0-closecustomer
/ivs/2.0/getVerificationDocuments:
post:
parameters:
- name: authorization
in: header
schema:
examples:
- Basic eW91cl9hcGlsb2dpbjp5b3VyX2FwaXRyYW5za2V5
pattern: ^Basic [A-Za-z0-9+/]+=*$
title: Authorization
type: string
description: Basic authentication token (base64-encoded {apilogin}:{apitranskey} credentials provided by SoFi Tech Solutions)
- name: X-Request-Id
in: header
schema:
examples:
- '1234567890'
pattern: ''
title: X-Request-Id
type: string
description: Unique identifier for the request
responses:
'200':
content:
application/json:
schema:
description: Successful Response
properties:
customerId:
description: ID generated by you or SoFi Tech Solutions for the customer undergoing verification. Use this to correlate this event with the specific entity record in your system.
title: Customerid
type: string
entityId:
description: ID generated by you or SoFi Tech Solutions for the entity undergoing verification. Use this to correlate this event back to the specific entity record in your system.
title: Entityid
type: string
documentVerificationId:
description: Unique identifier for the document-verification session.
title: Documentverificationid
type: string
documents:
description: A list of every document submitted by the customer, including metadata and file names.
items:
properties:
documentId:
title: Documentid
type: string
type:
title: Type
type: string
pages:
items:
properties:
fileName:
title: Filename
type: string
imageBase64:
title: Imagebase64
type: string
writeOnly: true
required:
- fileName
- imageBase64
title: DocumentPage
type: object
title: Pages
type: array
required:
- documentId
- type
- pages
title: VerificationDocument
type: object
title: Documents
type: array
systemTs:
description: Date-time when the system generated this response in our system time, formatted as an ISO 8601 string.
format: date-time
title: Systemts
type: string
riskServiceId:
description: System-generated identifier that specifies the IVS configuration strategy assigned during IVS setup.
title: Riskserviceid
type: string
required:
- customerId
- entityId
- documentVerificationId
- documents
- systemTs
- riskServiceId
title: GetVerificationDocumentsResponse
type: object
examples:
response:
value: "{\n \"status\": \"Success\",\n \"statusCode\": 0,\n \"processingTime\": \"0.089\",\n \"responseData\": {\n \"customerId\": \"11111\",\n \"entityId\": \"98765\",\n \"documentVerificationId\": \"55555\",\n \"documents\": [\n {\n \"documentId\": \"abc123-doc-id\",\n \"type\": \"PASSPORT\",\n \"pages\": [\n {\n \"fileName\": \"passport_front.jpg\",\n \"imageBase64\": \"iVBORw0KGgoAAAANSUhEUgAAAAUA...\"\n }\n ]\n },\n {\n \"documentId\": \"def456-doc-id\",\n \"type\": \"DRIVERS_LICENSE\",\n \"pages\": [\n {\n \"fileName\": \"drivers_license.pdf\",\n \"imageBase64\": \"JVBERi0xLjQKMSAwIG9iago8PA...\"\n }\n ]\n }\n ],\n \"systemTimestamp\": \"2025-04-22 15:00:00\",\n \"riskServiceId\": \"GCORE:100:200:300\"\n },\n \"echo\": {\n \"transactionId\": \"IVS-DOC-GET-22505\",\n \"rtoken\": \"4f5g6h-7i8j-9k0l-1m2n-3o4p5q6r7s8t\"\n },\n \"systemTimestamp\": \"2025-04-22 15:00:00\",\n \"errors\": []\n}"
description: Successful Response
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
'400':
content:
application/json:
schema:
description: Bad Request
examples:
- error:
code: BAD_REQUEST
message: The request was not acceptable, typically due to missing or invalid parameters.
properties:
error:
description: Provides additional information about the error.
properties:
code:
description: Identifier for the error
examples:
- SERVICE_UNAVAILABLE
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INTERNAL_SERVER_ERROR
title: Code
type: string
message:
description: Short description of the error.
title: Message
type: string
details:
anyOf:
- type: object
- type: 'null'
description: Contains details about the error when available. For example, which fields have validation problems or which action fails.
title: Details
required:
- code
- message
title: GSAPIErrorDetail
type: object
required:
- error
title: ResponseModel
type: object
description: Bad Request
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
'401':
content:
application/json:
schema:
description: Unauthorized
examples:
- error:
code: UNAUTHORIZED
message: No valid API credentials provided.
properties:
error:
description: Provides additional information about the error.
properties:
code:
description: Identifier for the error
examples:
- SERVICE_UNAVAILABLE
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INTERNAL_SERVER_ERROR
title: Code
type: string
message:
description: Short description of the error.
title: Message
type: string
details:
anyOf:
- type: object
- type: 'null'
description: Contains details about the error when available. For example, which fields have validation problems or which action fails.
title: Details
required:
- code
- message
title: GSAPIErrorDetail
type: object
required:
- error
title: ResponseModel
type: object
description: Unauthorized
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
'403':
content:
application/json:
schema:
description: Forbidden
examples:
- error:
code: FORBIDDEN
message: The provided API credential does not allow this operation.
properties:
error:
description: Provides additional information about the error.
properties:
code:
description: Identifier for the error
examples:
- SERVICE_UNAVAILABLE
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INTERNAL_SERVER_ERROR
title: Code
type: string
message:
description: Short description of the error.
title: Message
type: string
details:
anyOf:
- type: object
- type: 'null'
description: Contains details about the error when available. For example, which fields have validation problems or which action fails.
title: Details
required:
- code
- message
title: GSAPIErrorDetail
type: object
required:
- error
title: ResponseModel
type: object
description: Forbidden
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
'404':
content:
application/json:
schema:
description: Not Found
examples:
- error:
code: NOT_FOUND
message: The requested entity does not exist.
properties:
error:
description: Provides additional information about the error.
properties:
code:
description: Identifier for the error
examples:
- SERVICE_UNAVAILABLE
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INTERNAL_SERVER_ERROR
title: Code
type: string
message:
description: Short description of the error.
title: Message
type: string
details:
anyOf:
- type: object
- type: 'null'
description: Contains details about the error when available. For example, which fields have validation problems or which action fails.
title: Details
required:
- code
- message
title: GSAPIErrorDetail
type: object
required:
- error
title: ResponseModel
type: object
description: Not Found
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
'409':
content:
application/json:
schema:
description: Conflict
examples:
- error:
code: CONCURRENT_IDEMPOTENT_REQUEST
message: The operation was called concurrently with duplicate `X-GFT-Idempotency-Key` headers, but does not support concurrent requests.
properties:
error:
description: Provides additional information about the error.
properties:
code:
description: Identifier for the error
examples:
- SERVICE_UNAVAILABLE
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INTERNAL_SERVER_ERROR
title: Code
type: string
message:
description: Short description of the error.
title: Message
type: string
details:
anyOf:
- type: object
- type: 'null'
description: Contains details about the error when available. For example, which fields have validation problems or which action fails.
title: Details
required:
- code
- message
title: GSAPIErrorDetail
type: object
required:
- error
title: ResponseModel
type: object
description: Conflict
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
'429':
content:
application/json:
schema:
description: Too Many Requests
examples:
- error:
code: TOO_MANY_REQUESTS
message: Rate limit exceeded by too many requests.
properties:
error:
description: Provides additional information about the error.
properties:
code:
description: Identifier for the error
examples:
- SERVICE_UNAVAILABLE
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INTERNAL_SERVER_ERROR
title: Code
type: string
message:
description: Short description of the error.
title: Message
type: string
details:
anyOf:
- type: object
- type: 'null'
description: Contains details about the error when available. For example, which fields have validation problems or which action fails.
title: Details
required:
- code
- message
title: GSAPIErrorDetail
type: object
required:
- error
title: ResponseModel
type: object
description: Too Many Requests
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
'500':
content:
application/json:
schema:
description: Internal Service Error
examples:
- error:
code: INTERNAL_SERVICE_ERROR
message: Indicates an issue with the origin web server.
properties:
error:
description: Provides additional information about the error.
properties:
code:
description: Identifier for the error
examples:
- SERVICE_UNAVAILABLE
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INTERNAL_SERVER_ERROR
title: Code
type: string
message:
description: Short description of the error.
title: Message
type: string
details:
anyOf:
- type: object
- type: 'null'
description: Contains details about the error when available. For example, which fields have validation problems or which action fails.
title: Details
required:
- code
- message
title: GSAPIErrorDetail
type: object
required:
- error
title: ResponseModel
type: object
description: Internal Service Error
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
'503':
content:
application/json:
schema:
description: Service Unavailable
examples:
- error:
code: SERVICE_UNAVAILABLE
message: A SoFi Tech Solutions internal service error occurred, and the system was not able to process the request. This is equivalent to a Program API -1 System Failure error.
properties:
error:
description: Provides additional information about the error.
properties:
code:
description: Identifier for the error
examples:
- SERVICE_UNAVAILABLE
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- INTERNAL_SERVER_ERROR
title: Code
type: string
message:
description: Short description of the error.
title: Message
type: string
details:
anyOf:
- type: object
- type: 'null'
description: Contains details about the error when available. For example, which fields have validation problems or which action fails.
title: Details
required:
- code
- message
title: GSAPIErrorDetail
type: object
required:
- error
title: ResponseModel
type: object
description: Service Unavailable
headers:
X-GFT-Rtoken:
schema:
description: Response token for tracking requests
title: X-Gft-Rtoken
type: string
description: Use the Get Verification Documents endpoint to retrieve metadata and status for every document associated with a specific verification journey.
summary: Get Verification Documents
tags:
- IVS
requestBody:
content:
application/json:
schema:
properties:
customerId:
description: 'ID generated by you or SoFi Tech Solutions for the top-level customer (person or business) undergoing verification. Use this to correlate this event with the specific customer record in your system.
Pattern: Alphanumeric identifier
Example: `789XYZ2025`'
examples:
- 789XYZ2025
title: Customerid
type: string
entityId:
description: 'ID generated by you or SoFi Tech Solutions for a specific entity within a customer. For a `Person` customer type, this maps 1-to-1 with the `customerId`. For a `Business` customer type, a single customer may have multiple entities. Use this to correlate this event with the specific entity record in your system.
Pattern: Alphanumeric identifier
Example: `789XYZ2025`'
examples:
- 789XYZ2025
title: Entityid
type: string
documentVerificationId:
description: 'The unique identifier for the document-verification session.
Pattern: Alphanumeric identifier
Example: `doc-123456`'
examples:
- doc-123456
title: Documentverificationid
type: string
requestTs:
description: 'The date and time when the document status request was initiated in our system time, formatted as an ISO 8601 string.
Pattern: ISO 8601 date-time (YYYY-MM-DDTHH:MM:SS)
Example: `2025-01-01T00:00:00`'
examples:
- '2025-01-01T00:00:00'
format: date-time
title: Requestts
type: string
riskServiceId:
description: 'System-generated identifier that specifies the IVS configuration strategy assigned during IVS setup.
Pattern: EPRP or GCORE prefix followed by colon-separated identifiers, up to 50 characters
Example: ``EPRP-test-1231231:1` or `GCORE:1:2:3``'
examples:
- '`EPRP-test-1231231:1` or `GCORE:1:2:3`'
title: Riskserviceid
type: string
providerId:
description: 'The system-generated identifier for the IVS provider.
Pattern: Up to 10 digits
Example: `1234567890`'
examples:
- '1234567890'
title: Providerid
type: string
required:
- customerId
- entityId
- documentVerificationId
- requestTs
- riskServiceId
- providerId
title: GetVerificationDocumentsRequest
type: object
operationId: risk2_post_ivs-2-0-getverificationdocuments
components:
securitySchemes:
gft-internal-service-auth:
scheme: bearer
bearerFormat: JWT
type: http
x-gft-scopes:
read: Grant read-only access
write: Grant read-write access
x-readme:
explorer-enabled: true
proxy-enabled: true