Skip to content

Create a personalization design ​

Creates a personalization design object.

Returns ​

Returns the created personalization design object.

Parameters ​

  • physical_bundle (string, required) The physical bundle object belonging to this personalization design.

  • card_logo (string, optional) The file for the card logo, for use with physical bundles that support card logos. Must have a purpose value of issuing_logo.

  • carrier_text (object, optional) Hash containing carrier text, for use with physical bundles that support carrier text.

    • carrier_text.footer_body (string, optional) The footer body text of the carrier letter.

      The maximum length is 200 characters.

    • carrier_text.footer_title (string, optional) The footer title text of the carrier letter.

      The maximum length is 30 characters.

    • carrier_text.header_body (string, optional) The header body text of the carrier letter.

      The maximum length is 200 characters.

    • carrier_text.header_title (string, optional) The header title text of the carrier letter.

      The maximum length is 30 characters.

  • lookup_key (string, optional) A lookup key used to retrieve personalization designs dynamically from a static string. This may be up to 200 characters.

    The maximum length is 200 characters.

  • metadata (object, optional) Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to metadata.

  • name (string, optional) Friendly display name.

    The maximum length is 200 characters.

  • preferences (object, optional) Information on whether this personalization design is used to create cards when one is not specified.

    • preferences.is_default (boolean, required) Whether we use this personalization design to create cards when one isn’t specified. A connected account uses the Connect platform’s default design if no personalization design is set as the default design.
  • transfer_lookup_key (boolean, optional) If set to true, will atomically remove the lookup key from the existing personalization design, and assign it to this personalization design.

curl
curl https://api.stripe.com/v1/issuing/personalization_designs \
  -u "<<YOUR_SECRET_KEY>>" \
  -d "name=My personalization design name" \
  -d "preferences[is_default]=false" \
  -d card_logo={{FILE_ID}} \
  -d physical_bundle=ics_Oiw9ahglMfql0U

Response ​

json
{
  "id": "ipcd_Oiw9GXcFRE81LZ",
  "object": "issuing.personalization_design",
  "livemode": true,
  "card_logo": "file_1LzR9L2eZvKYlo2CelTpcvKu",
  "carrier_text": null,
  "lookup_key": "my_card_design_lookup_key",
  "metadata": {},
  "name": "My personalization design name",
  "physical_bundle": "ics_Oiw9ahglMfql0U",
  "preferences": {
    "is_default": false
  },
  "rejection_reasons": {
    "card_logo": [],
    "carrier_text": []
  },
  "status": "review"
}

Stripe API Reference - Self-contained docs reference, refreshed 2026-05-18