---
updatedAt: 2025-07-04T10:25:40.000Z
agentTools:
  projectIndex: https://cardsapidocs.thredd.com/llms.txt
---

# Update a Card

> 👍 Documentation
>
> For more information on how to update a card, see [Updating a Card](https://cardsapidocs.thredd.com/docs/updating-a-card).

> 📘 Idempotency
>
> Idempotency is available for this endpoint. For information on using idempotency, see [What is Idempotency?](https://cardsapidocs.thredd.com/docs/what-is-idempotency)

# OpenAPI definition

```json
{
  "openapi": "3.0.1",
  "info": {
    "title": "Core Cards",
    "version": "1.1.116"
  },
  "servers": [
    {
      "url": "https://cardsapi-uat-pub.globalprocessing.net/",
      "description": "UAT Environment"
    },
    {
      "url": "https://cardsapi-prod1.globalprocessing.net/",
      "description": "Production Environment"
    }
  ],
  "paths": {
    "/api/v1/cards/{publicToken}": {
      "patch": {
        "tags": [
          "Cards"
        ],
        "summary": "Update a Card",
        "operationId": "update-card",
        "parameters": [
          {
            "name": "publicToken",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "GPS.API.Core.Models.Request.V1.Cards.UpdateCardRequest",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCardRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCardRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCardRequest"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "ProblemDetails": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "A URI reference [RFC3986] that identifies the problem type.",
            "nullable": true
          },
          "title": {
            "type": "string",
            "description": "A short, human-readable summary of the problem type.",
            "nullable": true
          },
          "status": {
            "type": "integer",
            "description": "The HTTP status code([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.",
            "format": "int32",
            "nullable": true
          },
          "detail": {
            "type": "string",
            "description": "A human-readable explanation specific to this occurrence of the problem.",
            "nullable": true
          },
          "instance": {
            "type": "string",
            "description": "A URI reference that identifies the specific occurrence of the problem.",
            "nullable": true
          }
        },
        "additionalProperties": {}
      },
      "ValidationProblemDetails": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "detail": {
            "type": "string",
            "nullable": true
          },
          "instance": {
            "type": "string",
            "nullable": true
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "nullable": true
          }
        },
        "additionalProperties": {}
      },
      "AddressUpdate": {
        "required": [
          "postCode"
        ],
        "type": "object",
        "properties": {
          "addressLine1": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string",
            "description": "First line of the address.",
            "nullable": true,
            "example": "101 Summer Lane"
          },
          "addressLine2": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "description": "Second line of the address.",
            "nullable": true,
            "example": "London Flats"
          },
          "addressLine3": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Second line of the address.",
            "nullable": true,
            "example": "London Flats"
          },
          "city": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "City of the address.",
            "nullable": true,
            "example": "London"
          },
          "county": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "County",
            "nullable": true,
            "example": "Greater London"
          },
          "state": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "State",
            "nullable": true
          },
          "postCode": {
            "maxLength": 10,
            "minLength": 0,
            "type": "string",
            "description": "Postcode / Zip code of the address.",
            "example": "NE12 3AB"
          },
          "country": {
            "maxLength": 3,
            "minLength": 3,
            "type": "string",
            "description": "Country of residence. This is represented as a 3-letter alphanumeric ISO country code (e.g. GBR for UK).",
            "nullable": true,
            "example": "GBR"
          }
        },
        "additionalProperties": false,
        "description": "Address object when updating card"
      },
      "ApataUpdate": {
        "type": "object",
        "properties": {
          "cardProgramId": {
            "maxLength": 255,
            "minLength": 0,
            "type": "string",
            "description": "Gets or sets the card program identifier.",
            "nullable": true
          },
          "challengeProfileId": {
            "maxLength": 255,
            "minLength": 0,
            "type": "string",
            "description": "Gets or sets the challenge profile identifier.",
            "nullable": true
          },
          "kbaNumberOfQuestionsToAnswer": {
            "maximum": 2147483647,
            "minimum": -1,
            "type": "integer",
            "description": "Gets or sets the kba number of questions to answer.",
            "format": "int64",
            "nullable": true
          },
          "kbaNumberOfIncorrectPermissible": {
            "maximum": 2147483647,
            "minimum": -1,
            "type": "integer",
            "description": "Gets or sets the kba number of incorrect permissible.",
            "format": "int64",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Apata 3ds config update model"
      },
      "CardHolderUpdate": {
        "type": "object",
        "properties": {
          "title": {
            "maxLength": 5,
            "minLength": 1,
            "type": "string",
            "description": "Title of the cardholder.",
            "nullable": true,
            "example": "Mrs"
          },
          "firstName": {
            "maxLength": 20,
            "minLength": 1,
            "type": "string",
            "description": "First name of the cardholder.",
            "nullable": true,
            "example": "Joanne"
          },
          "middleName": {
            "maxLength": 30,
            "minLength": 0,
            "type": "string",
            "description": "Middle name of the cardholder.",
            "nullable": true
          },
          "lastName": {
            "maxLength": 30,
            "minLength": 1,
            "type": "string",
            "description": "Last name of Card Holder",
            "nullable": true,
            "example": "Smith"
          },
          "dateOfBirth": {
            "type": "string",
            "description": "Date of birth of the cardholder. Format YYYY-MM-DD.",
            "nullable": true,
            "example": "1982-02-19"
          },
          "mobile": {
            "maxLength": 25,
            "minLength": 0,
            "type": "string",
            "description": "Mobile number of the cardholder. <br />\r\nCharacters that match the following regex will be cleaned and removed from the string: [;,:!?\\\\<>~`#%^@\\-=*_$(){}|&'\\[\\]\"]",
            "nullable": true,
            "example": "07712345678"
          },
          "email": {
            "maxLength": 128,
            "minLength": 0,
            "type": "string",
            "description": "Email address of the cardholder.",
            "nullable": true,
            "example": "joanne.smith@example.com"
          }
        },
        "additionalProperties": false,
        "description": "Card holder object when updating card"
      },
      "ManufacturingDetailsUpdate": {
        "type": "object",
        "properties": {
          "thermalLine1": {
            "maxLength": 120,
            "minLength": 0,
            "type": "string",
            "description": "Free text field which can be used for transferring extra information to be printed on the card.",
            "nullable": true
          },
          "thermalLine2": {
            "maxLength": 70,
            "minLength": 0,
            "type": "string",
            "description": "Free text field which can be used for transferring extra information to be printed on the card.",
            "nullable": true
          },
          "embossLine4": {
            "maxLength": 27,
            "minLength": 0,
            "type": "string",
            "description": "Embossed card line 4. Actual maximum length will depend on the card design.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TdsConfigUpdate": {
        "type": "object",
        "properties": {
          "language3ds": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "BCP-47 format",
            "nullable": true
          },
          "apataConfig": {
            "$ref": "#/components/schemas/ApataUpdate"
          }
        },
        "additionalProperties": false,
        "description": "3ds config update model"
      },
      "UpdateCardRequest": {
        "type": "object",
        "properties": {
          "customerReference": {
            "maxLength": 25,
            "minLength": 0,
            "type": "string",
            "description": "An external customer reference provided in the request.",
            "nullable": true,
            "example": "ref 3345"
          },
          "cardHolder": {
            "$ref": "#/components/schemas/CardHolderUpdate"
          },
          "address": {
            "$ref": "#/components/schemas/AddressUpdate"
          },
          "fulfilment": {
            "$ref": "#/components/schemas/AddressUpdate"
          },
          "manufacturingDetails": {
            "$ref": "#/components/schemas/ManufacturingDetailsUpdate"
          },
          "designId": {
            "maxLength": 50,
            "minLength": 1,
            "pattern": "^[\\w]+[\\w-\\s]*$",
            "type": "string",
            "description": "Optional DesignId",
            "nullable": true,
            "example": "Silver"
          },
          "parentCard": {
            "maxLength": 10,
            "minLength": 9,
            "pattern": "^[0-9]+$",
            "type": "string",
            "description": "Where card is a secondary card, public token of the primary card.",
            "nullable": true,
            "example": "987654321"
          },
          "nameOnCard": {
            "maxLength": 26,
            "minLength": 0,
            "type": "string",
            "description": "Optional data to update the card name.",
            "nullable": true
          },
          "freetext1": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Fulfilment additional text field",
            "nullable": true
          },
          "freetext2": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Fulfilment additional text field",
            "nullable": true
          },
          "language3ds": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "[Obsolete] Replaced by Config3dSecure.Language3ds. <br />\r\nGets or sets the language3ds.",
            "nullable": true
          },
          "networkSharingOptOut": {
            "type": "boolean",
            "description": "Optional field to update network automatic data sharing.",
            "nullable": true
          },
          "updatedBy": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "description": "User who updated the card details.",
            "nullable": true
          },
          "oobAppUrl": {
            "maxLength": 2048,
            "minLength": 0,
            "type": "string",
            "description": "3DS OOBAppURL at card level.",
            "format": "uri",
            "nullable": true
          },
          "url": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "description": "QR Code / Delivery Id",
            "nullable": true
          },
          "config3dSecure": {
            "$ref": "#/components/schemas/TdsConfigUpdate"
          }
        },
        "additionalProperties": false,
        "description": "Request object for the Update Card endpoint."
      }
    },
    "securitySchemes": {
      "OAuth2": {
        "type": "oauth2",
        "description": "Oauth security header for Cards API",
        "flows": {
          "clientCredentials": {
            "tokenUrl": "https://uatists.globalprocessing.net/connect/token",
            "scopes": {}
          }
        }
      }
    }
  },
  "security": [
    {
      "OAuth2": [
        "readWrite"
      ]
    }
  ],
  "x-readme": {
    "explorer-enabled": false
  }
}
```