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

# Update an existing customer profile.

Update an existing customer profile with encrypted data. The customer profile must exist and the request must be authorized.

# 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}/externalAccounts/customers/{customerToken}": {
      "put": {
        "tags": [
          "ExternalAccount"
        ],
        "summary": "Update an existing customer profile.",
        "description": "Update an existing customer profile with encrypted data. The customer profile must exist and the request must be authorized.",
        "operationId": "ExternalAccount_PUT_UpdateCustomerProfile",
        "parameters": [
          {
            "name": "programCode",
            "in": "path",
            "description": "Program code assigned to the partner.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customerToken",
            "in": "path",
            "description": "Unique customer token.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-GD-RequestId",
            "in": "header",
            "description": "Unique request identifier (GUID).",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-GD-CustomerType",
            "in": "header",
            "description": "Type of customer (default: External).",
            "schema": {
              "type": "string",
              "default": "external"
            }
          }
        ],
        "requestBody": {
          "description": "Encrypted update request payload.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCustomerProfileGlobalFundTransferRequestEncrypted"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCustomerProfileGlobalFundTransferRequestEncrypted"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCustomerProfileGlobalFundTransferRequestEncrypted"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCustomerProfileGlobalFundTransferRequestEncrypted"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Customer profile updated successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateCustomerProfileGlobalFundTransferResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateCustomerProfileGlobalFundTransferResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid or missing parameters."
          },
          "401": {
            "description": "Unauthorized access."
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateCustomerProfileGlobalFundTransferResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateCustomerProfileGlobalFundTransferResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateCustomerProfileGlobalFundTransferResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateCustomerProfileGlobalFundTransferResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateCustomerProfileGlobalFundTransferResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateCustomerProfileGlobalFundTransferResponse"
                }
              }
            }
          }
        }
      }
    }
  },
  "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."
      },
      "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."
      },
      "UpdateCustomerProfileGlobalFundTransferRequestEncrypted": {
        "type": "object",
        "properties": {
          "encryptedData": {
            "$ref": "#/components/schemas/EncryptedData"
          },
          "salt": {
            "type": "string",
            "description": "Unique id in GUID format, must match the RequestID in the headers.\r\nUsed for idempotency and encryption.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Update Customer Profile Global Fund Transfer Request (Encrypted) – Used for secure scenarios where customer data is provided encrypted.\r\nContains the encrypted customer profile data."
      },
      "UpdateCustomerProfileGlobalFundTransferResponse": {
        "type": "object",
        "properties": {
          "customerToken": {
            "type": "string",
            "description": "Unique token identifying the customer profile.\r\nUsed for subsequent operations such as linking cards or banks.",
            "nullable": true
          },
          "status": {
            "type": "string",
            "description": "The status of the customer profile after the update (e.g., Pending, Active, Suspended).",
            "nullable": true
          },
          "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 returned after updating a customer profile for global fund transfer operations.\r\nContains the unique customer token for future actions and the status of the profile update.\r\nInherits standard response metadata from Gd.Bos.DataTransfer.Response.ResponseBase."
      }
    },
    "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"
    ]
  }
}
```