v1

latestOpenAPI 3.0.12026-07-243407211.3 MB
Enrollments

Add Enrollment for User and Create Account/Card (Encrypted)

Creates a new enrollment for a user, including account and card creation. Supports instant issue scenarios and account upgrades (for example, from GPG to DDA if the "upgradeFlag" parameter is true). This endpoint is also used for the card-in-hand use case to support instant issue enrollment.

Key operations performed:

  • Create new user
  • Create account
  • Create payment instrument
  • Support instant issue enrollment
  • Support account upgrade

Note: If POST /enrollments is called with a valid request and enrollment fails during processing, the request will be automatically completed if the customer clears OFAC.

<table><thead><tr><th>Name</th><th>Comment</th></tr></thead><tbody><tr><td>200</td><td>Success</td></tr><tr><td>400</td><td>Bad request, such as unsupported operation</td></tr><tr><td>401</td><td>Unauthorized</td></tr></tbody></table> <table><thead><tr><th>Group</th><th>Property</th><th>Required</th><th>Constraint/Scenario</th><th>HttpStatus</th><th>Code</th><th>Sub Code</th><th>Description</th></tr></thead><tbody><tr><td></td><td></td><td></td><td>PACKAGE_LOOKUP_EXCEPTION</td><td>400</td><td>5020</td><td>5021</td><td>Connection issue looking up package info</td></tr><tr><td></td><td></td><td></td><td>PACKAGE_NOT_FOUND</td><td>400</td><td>5020</td><td>5022</td><td>No package is associated with the provided identifier</td></tr><tr><td></td><td></td><td></td><td>PACKAGEID_IN_USE</td><td>400</td><td>5020</td><td>5023</td><td>The package associated with the identifier is already being used</td></tr><tr><td></td><td></td><td></td><td>INSTANT_ISSUE_NOT_SUPPORTED</td><td>400</td><td>5030</td><td>5031</td><td>Product does not support instant issue enrollment</td></tr><tr><td></td><td></td><td></td><td>INSTANT_ISSUE_REQUEST_PHYSICAL_CARD_NOT_SUPPORTED</td><td>400</td><td>5030</td><td>5032</td><td>Product does not support requesting a physical card during instant issue enrollment</td></tr><tr><td>instantIssue</td><td>type</td><td>Y ONLY if enrollment is instantIssue</td><td>INSTANT_ISSUE_TYPE</td><td>400</td><td>600</td><td>Required: 6181, Invalid: 6182</td><td>If instantIssue object is provided, then type must be provided. Must be CBS</td></tr><tr><td>instantIssue</td><td>mappingIdentifier</td><td>Y ONLY if enrollment is instantIssue</td><td>INSTANT_ISSUE_MAPPING_IDENTIFIER</td><td>400</td><td>600</td><td>Required: 6183, Invalid: 6184</td><td>If instantIssue object is provided, then mappingIdentifier must be provided</td></tr><tr><td></td><td>accountIdentifier</td><td>N</td><td>missing/invalid accountIdentifier</td><td>400</td><td>350</td><td>0</td><td>accountIdentifier is invalid</td></tr><tr><td></td><td></td><td></td><td>change user profile</td><td>400</td><td>4502</td><td>0</td><td>User profile cannot be changed</td></tr><tr><td></td><td></td><td></td><td>account status not normal</td><td>400</td><td>4503</td><td>0</td><td>Account status is not healthy</td></tr><tr><td></td><td></td><td></td><td>target product code same as current product code</td><td>400</td><td>4504</td><td>0</td><td>Account already upgraded successfully</td></tr><tr><td></td><td></td><td></td><td>same requestId, accountIdentifier is different</td><td>400</td><td>4505</td><td>0</td><td>Account not matched</td></tr><tr><td></td><td></td><td></td><td>target product code not allowed for upgrade</td><td>400</td><td>4506</td><td>0</td><td>Account already upgraded successfully</td></tr><tr><td></td><td></td><td></td><td>account not found</td><td>400</td><td>10</td><td>0</td><td>Account, account holder, or user not found</td></tr><tr><td></td><td></td><td></td><td>[CPM] upgrade service returned error</td><td>400</td><td>5030</td><td>0</td><td>A downstream provider did not return success for Upgrade Account</td></tr></tbody></table>
post/programs/{programCode}/enrollments

Path parameters

programCodestring required

The program code for the enrollment flow.

Headers

X-GD-RequestIdstring required

The unique request identifier for tracking and logging.

X-GD-Sourcestring

The source system or channel identifier).

X-Gd-Bos-IgnoreMFAstring

Flag to ignore multi-factor authentication; 'true' or 'false'.

X-GD-EnrollmentRequestIdentifierstring

The unique identifier for the enrollment request.

Request body

contactVerificationIdentifiersstring[] nullable

A list of identifiers (such as email or phone) used to verify the contact information for the enrollment.

requestPhysicalCardFlagboolean

Indicates whether a physical card should be requested during enrollment.

executeKycFlagboolean

Indicates whether KYC (Know Your Customer) checks should be executed as part of the enrollment.

upgradeFlagboolean

Indicates whether the account should be upgraded (e.g., to a higher product tier) during enrollment.

Response

OK

enrollmentRequestIdentifierstring nullable

The EnrollmentRequestIdentifier enrolled in order to identify the Request.

Example response

{
  "account": {
    "accountIdentifier": "50d51e2f-9ea8-4ffb-bc1f-7a2ac60bee8d",
    "accountReferenceNumber": "YEP6449136",
    "status": "normal",
    "accountStatusChangedDateTime": "2022-01-27T17:30:54.037Z",
    "statusReasons": [
      "healthy"
    ],
    "directDepositInformation": {
      "accountNumber": "101042265200589",
      "routingNumber": "096017418"
    },
    "purses": [
      {
        "purseIdentifier": "cf26903d-f1b3-46df-9d22-b7492875fdbc",
        "purseType": "primary",
        "availableBalance": 0,
        "ledgerBalance": 0,
        "availableBalanceAsOfDateTime": "2022-01-27T18:30:49Z",
        "ledgerBalanceAsOfDateTime": "2022-01-27T18:30:49Z",
        "isHidden": false,
        "status": "active"
      }
    ],
    "accountHolders": [
      {
        "paymentInstruments": [
          {
            "encryptedPrivatePaymentInstrumentData": {
              "version": "EC_v1",
              "ephemeralPublicKey": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE6HF7whJ3zNH46NC6YuYrOMeAXnllpotZH9cPZ1iHKUG4GRlT5Cqj3vYOE7PK8FOKMjjD9ESl56ckIylWEqMw/w==",
              "publicKeyHash": "yMzWGqHkTvk++4p4XJNSLVWJ7qKEzV7+w/M4BioKiyI=",
              "data": "OmK78WmAZojsgR6HeL6kkN4gv4qwb4UNy8CgkZkp5zSM9h0Fi3ufDo62UIo/F5VwdaTkQYYAxF6QAUy7qLR/KFc8XJ5JSVSrELMpfNfKMIwI1M6mehI5MREmd9sugl42"
            },
            "paymentIdentifier": "07f4074b-ebe2-4f11-aaac-d19eb4150f00",
            "paymentInstrumentIdentifier": "80225c0d-ff5f-4158-b1e9-29538f79d913",
            "paymentInstrumentType": "virtual",
            "status": "activated",
            "isPinSet": false,
            "last4Pan": "9852",
            "activatedDateTime": "2022-01-27T17:30:49Z",
            "issuedDateTime": "2022-01-27T17:30:49Z",
            "isPrivateDataViewable": false
          },
          {
            "paymentIdentifier": "07f4074b-ebe2-4f11-aaac-d19eb4150f00",
            "paymentInstrumentIdentifier": "372dc129-33c0-431e-a75f-a07f8547e9ee",
            "paymentInstrumentType": "contactlessEmv",
            "status": "notActivated",
            "isPinSet": false,
            "last4Pan": "9852",
            "issuedDateTime": "2022-01-27T17:30:51Z",
            "isPrivateDataViewable": false
          }
        ],
        "user": {
          "firstName": "Bob JR",
          "lastName": "BOBJINJALA",
          "dobStatus": "matched",
          "last4Identity": "4183",
          "identityType": "ssn",
          "userIdentifier": "114fa377-d42d-4575-a4e9-78258e76f173",
          "status": "active",
          "isPrimaryAccountHolder": true,
          "kycStateData": {
            "ofacStatus": "passed",
            "kycStatus": "passed",
            "kycPendingGate": "healthy"
          }
        }
      }
    ],
    "accountCycleDay": 27
  },
  "responseDetails": [
    {
      "code": 0,
      "subCode": 0,
      "description": "Success",
      "url": "http://tbd"
    }
  ]
}