---
updatedAt: 2026-02-06T00:24:43.000Z
agentTools:
  projectIndex: https://developer.greendot.com/embedded-finance/llms.txt
---

# Execute KYC

Performs Know Your Customer (KYC) verification for a user on the account. Requires encrypted KYC details in the request body.

# OpenAPI definition

```json
{
  "openapi": "3.0.1",
  "info": {
    "title": "BaaS APIs",
    "description": "Green Dot BaaS Partner API",
    "version": "v1",
    "x-generated-timestamp-utc": "2026-02-05T01:14:54.4774970Z"
  },
  "paths": {
    "/programs/{programCode}/accounts/{accountIdentifier}/users/{userIdentifier}/kycGates/kyc2": {
      "post": {
        "tags": [
          "Account"
        ],
        "summary": "Execute KYC",
        "description": "Performs Know Your Customer (KYC) verification for a user on the account. Requires encrypted KYC details in the request body.",
        "operationId": "Account_POST_ExecuteKyc",
        "parameters": [
          {
            "name": "X-GD-RequestId",
            "in": "header",
            "description": "Unique request tracking identifier (X-GD-RequestId header).",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-GD-EnrollmentRequestIdentifier",
            "in": "header",
            "description": "Enrollment request identifier (X-GD-EnrollmentRequestIdentifier header).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "programCode",
            "in": "path",
            "description": "Partner program code for the account.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "accountIdentifier",
            "in": "path",
            "description": "Unique account identifier (UID or GUID).",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "userIdentifier",
            "in": "path",
            "description": "Unique user identifier (UID or GUID).",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Encrypted KYC request. See Gd.Bos.DataTransfer.Request.FraudKycCureRequest for required fields.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/FraudKycCureRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FraudKycCureRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/FraudKycCureRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/FraudKycCureRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FraudKycCureResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/FraudKycCureResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FraudKycCureResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/FraudKycCureResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FraudKycCureResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/FraudKycCureResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FraudKycCureResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/FraudKycCureResponse"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "EncryptedData": {
        "type": "object",
        "properties": {
          "version": {
            "type": "string",
            "description": "The version of the encryption algorithm used to encrypt the data (e.g., \"v1\", \"v2\").",
            "nullable": true
          },
          "ephemeralPublicKey": {
            "type": "string",
            "description": "The ephemeral public key used in the encryption process, typically for key exchange or session establishment.",
            "nullable": true
          },
          "publicKeyHash": {
            "type": "string",
            "description": "The hash of the public key used to verify the integrity and authenticity of the encryption key.",
            "nullable": true
          },
          "data": {
            "type": "string",
            "description": "The encrypted data payload, typically base64-encoded, containing the sensitive information.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a container for encrypted data used in secure data transfer operations.\r\nContains the encrypted payload and associated cryptographic metadata, including encryption version, ephemeral public key, and public key hash.\r\nUsed to securely transmit sensitive information such as user data, ensuring confidentiality and integrity during transport."
      },
      "FraudKycCureRequest": {
        "type": "object",
        "properties": {
          "accountIdentifier": {
            "type": "string",
            "description": "The unique identifier (UID or GUID) of the account for which KYC/fraud cure is being performed.",
            "nullable": true
          },
          "userIdentifier": {
            "type": "string",
            "description": "The unique identifier (UID or GUID) of the user for whom KYC/fraud cure is being performed.",
            "nullable": true
          },
          "encryptedUserData": {
            "$ref": "#/components/schemas/EncryptedData"
          },
          "fraudData": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "Optional. Additional fraud-related data as key-value pairs for further analysis or processing.",
            "nullable": true
          },
          "contactVerificationIdentifiers": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Optional. A list of contact verification identifiers (e.g., email, phone) used for verifying user contact information.",
            "nullable": true
          },
          "prospectType": {
            "type": "string",
            "description": "Optional. The type of prospect (e.g., \"new\", \"existing\") for the KYC process.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a request to perform KYC (Know Your Customer) and fraud cure operations for a user on an account.\r\nContains encrypted user data, fraud metadata, and contact verification information."
      },
      "FraudKycCureResponse": {
        "type": "object",
        "properties": {
          "kycGate": {
            "$ref": "#/components/schemas/KycGate"
          },
          "responseDetails": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ResponseDetail"
            },
            "description": "Required: A list of response details providing status codes, descriptions, and additional information about the result of the operation.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents the response for a fraud or KYC (Know Your Customer) cure operation."
      },
      "KycGate": {
        "type": "object",
        "properties": {
          "kycStateData": {
            "$ref": "#/components/schemas/KycStateData"
          }
        },
        "additionalProperties": false,
        "description": "Represents a Know Your Customer (KYC) gate, containing the current KYC state data for a user or account."
      },
      "KycStateData": {
        "type": "object",
        "properties": {
          "ofacStatus": {
            "type": "string",
            "description": "The OFAC (Office of Foreign Assets Control) screening status for the user.\r\nTypical values: \"Passed\", \"Failed\", \"Pending\", or other business-specific status indicators.",
            "nullable": true
          },
          "kycStatus": {
            "type": "string",
            "description": "The overall KYC (Know Your Customer) status for the user.\r\nTypical values: \"Verified\", \"Pending\", \"Failed\", or other business-specific status indicators.",
            "nullable": true
          },
          "kycPendingGate": {
            "type": "string",
            "description": "The name or code of any pending KYC gate or step that must be completed for full verification.\r\nExample: \"DocumentVerification\", \"AddressCheck\", or null if no gates are pending.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents the Know Your Customer (KYC) state data for a user.\r\nContains information about OFAC (Office of Foreign Assets Control) screening status, overall KYC status, and any pending KYC gates.\r\nUsed to track regulatory compliance and the current state of user verification during onboarding or account management."
      },
      "ResponseDetail": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "description": "The primary status or error code for the response (e.g., 200 for success, 400 for validation error).",
            "format": "int32"
          },
          "subCode": {
            "type": "integer",
            "description": "An optional subcode providing more granular detail about the response or error.",
            "format": "int32",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "A human-readable description of the response, error, or status.",
            "nullable": true
          },
          "url": {
            "type": "string",
            "description": "A URL linking to documentation or a web page with more information about the response code.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a detailed status or error message for an API response.\r\nContains a code, optional subcode, human-readable description, and a URL for more information.\r\nUsed to provide granular feedback about the outcome of an operation, including success, warnings, or errors."
      }
    },
    "securitySchemes": {
      "Bearer": {
        "type": "apiKey",
        "description": "bearer token",
        "name": "Authorization",
        "in": "header"
      }
    }
  },
  "security": [
    {
      "Bearer": []
    }
  ],
  "x-readme": {
    "explorer-enabled": false,
    "proxy-enabled": false,
    "samples-languages": [
      "csharp",
      "java",
      "python",
      "node",
      "objectivec"
    ]
  }
}
```