Enrollments Overview

Enrollments APIs can be used to enroll into the many API services hosted by GD.

Overview

The Enrollments API allows partners to enroll a new user into a product, create an account, and create a payment instrument (card) with one single call.

This API also supports upgrading an account from a GPR (General Purpose Reloadable) account to a DDA (Direct Deposit Account) when the upgradeFlag parameter is set to true.

Note: This API stores encrypted data Partners who are not configured for encryption will have encrypted data omitted from the data objects in their responses.

Types of Encrypted Data

Primary Purse

By default, every user automatically has one primary purse that is designated for a primary spending balance. A purse can be thought of as a balance container.

Example: When money is added to a user’s account through direct deposit, the amount is automatically credited to their primary purse.

A new user's initial status depends on the Know Your Customer (KYC) requirements and the Office of Foreign Assets Control (OFAC) requirements of the program.

Processor Enrollment Retry Logic

After an enrollment passes OFAC and KYC, Green Dot sends it to the processor to create the card information. If, after 30 minutes, the processor does not return the card proxy and other information, Green Dot performs up to three additional attempts, with 30 minutes between each. If all four attempts to receive the information fail, Green Dot responds with a failure webhook.

Sample Webhook Response

AccountIdentifier":"6d12d546-be7f-4040-a1dc-9afb34C9e82a
CallerFilePath:C:\BuildAgent\work\ddd132225e437bb8\PN\Services\PublishNotification\PublishNotification.Logic\Publishers\PublisherBase.cs
CallerLineNumber":"422
CallerMemberName":"ProcessResponseMessage
ElapsedTimeToPost":"56 ms
EventType":"AccountUpdated
PostBackUrl":"https"::"partner
RequestMessage":{
	"account":{
		"accountIdentifier":"6d16d946-be7f-4040-a1dc-9afb34d9e82a",
		"accountReferenceNumber":"UMR0502579",
		"productCode":"50001",
		"productName":"XXXX Visa Debit Card",
		"status":"pending",
		"accountStatusChangedDateTime":"2021-07-14T16:18:53.572Z",
		"statusReasons":[
			"registrationNotComplete"
		],
		"directDepositInformation":{
			"accountNumber":"**6224",
			"routingNumber":"096227418"
		},
		"accountHolders":[
			{
			"user":{
				"firstName":"***********kC",
				"lastName":"***********um",
				"dobStatus":"matched",
				"last4Identity":"5568",
				"identityType":"ssn",
				"userIdentifier":"79113a87-9db0-41fa-a7c4-7ad4a6507607",
				"peerTransferAcceptPreference":"manual",
				"isPrimaryAccountHolder":true,
				"status":"active",
				"kycStateData":{
					"ofacStatus":"passed",
					"kycStatus":"passed",
					"kycPendingGate":"healthy"
				}
			},
		"accountHolderIdentifier":"88d4fe6d-246f-4a3b-92eb-edcfe9fc80e8"
		}],
		"termsAcceptances":[
			{
			 "termsIdentifier":"privPlcy",
			 "termsAcceptanceDateTime":"2021-07-14T09:18:48.177Z",
			 "termsAcceptanceFlag":false
			},
			{
			 "termsIdentifier":"daa",
			 "termsAcceptanceDateTime":"2021-07-14T09:18:48.177Z",
			 "termsAcceptanceFlag":true
			},
			{
			 "termsIdentifier":"eca",
			 "termsAcceptanceDateTime":"2021-07-14T09:18:48.177Z",
			 "termsAcceptanceFlag":true
			}
		],
		"accountCycleDay":0
	}
}
RequestMessageToPartner:{
	"accounts":[{
	"accountIdentifier":"6d12d946-be7f-4040-a1dc-9afb34d9e82a",
	"events":[{
		"eventIdentifier":"7f9ebd65-fa42-4d8f-b583-eb8aa0d6c95d",
		"eventType":"accountUpdated",
		"eventDateTime":"2021-07-14T16:20:53.397Z",
		"account":{
		"accountIdentifier":"6d12d946-be7f-4040-a1dc-9afb34d9e82a",
		"status":"pending",
		"accountStatusChangedDateTime":"2021-07-14T16:18:52.570Z",
		"statusReasons":[
			"registrationNotComplete"
		],
		"accountCycleDay":0,
		"accountHolders":[{
		"user":{
			"userIdentifier":"79113a90-9db0-41fa-a7c4-7ad4a6507607",
			"isPrimaryAccountHolder":true,
			"status":"active",
			"kycStateData":{
				"ofacStatus":"passed",
				"kycStatus":"passed",
				"kycPendingGate":"healthy"
			}}
		}]}
	}]
}]}

ResponseHttpStatusCode:201

ResponseMessage:{
	"clientResponse":"Accepted request for eventIdentifier: 7f9ebd65-fa42-4d8f-b583-eb8aa0d6c95d"
}
SkipPublish:false
TimeoutOccurred:false
X-GD-RequestId:ca94555c-9ea3-420f-8c08-3c536f49bb21
level:INFO
logger:PublishNotificationService
machineName:QA-PN-40D06
message:Publish notification post sent successfully.
threadId:6
time":"2021-07-14 09":"20":53.4542
}

Socure SDK Integration

📘

We at GD have updated our IDV and CIP processes. This will affect the enrollment process for KYC flows and requires a new SDK integration from Socure.

A user may need to verify their identity in certain situations, including:

  • Enrollment: If we cannot establish a user's identity, we must validate it using official identity documents.
  • Suspicious Activity: Following enrollment, if any suspicious activity is detected on the user's account, it may be temporarily locked until identity documents are verified.

To validate a user's identity, we employ the Socure Doc V SDK. Users must upload their ID documents along with a live selfie to complete the identity verification process. This information will be analyzed to ensure successful verification.

  • For IDV workflow, the Socure SDK needs to be integrated within a partner's website and mobile apps. With Socure SDK, customers will be redirected to a Socure-enabled page where they can upload both the front and back images of their ID documents along with a selfie in real-time using their smartphones. Once the documents are successfully uploaded, that SDK will generate a unique document ID, which will then be used to validate users' identity.
  • For CIP, there won't be any changes from the customer's perspective, except for the optional step of capturing the customer’s consent to search their SSN record against the public SSA repository. This step is up to partner preference.

Partners looking to integrate with the Socure SDK can refer to the Overview for high-level steps.

For technical and in-depth integration guides, please refer to the iOS Socure SDK, Android Socure SDK, or Web Socure SDK pages, as well as the Callback Methods page.

Know Your Business (KYB) Flow during Enrollment

Partners who are configured for KYB flow can enroll customers who own small businesses.

Please refer to the KYB page for more information.


What’s Next