---
updatedAt: 2026-05-27T08:02:52.000Z
agentTools:
  siteIndex: https://developer.eagleeye.com/llms.txt
  projectIndex: https://developer.eagleeye.com/eagleeye-developer/llms.txt
---

# Update Programme

This method allows the calling application to update a Programme.

# OpenAPI definition

```json
{
  "x-explorer-enabled": false,
  "openapi": "3.0.3",
  "servers": [
    {
      "url": "https://resources.uk.eagleeye.com",
      "description": "UK Production."
    },
    {
      "url": "https://resources.us.eagleeye.com",
      "description": "US Production."
    },
    {
      "url": "https://resources.us2.eagleeye.com",
      "description": "US2 Production."
    },
    {
      "url": "https://resources.au.eagleeye.com",
      "description": "AU Production."
    },
    {
      "url": "https://resources.sandbox.uk.eagleeye.com",
      "description": "UK Sandbox."
    }
  ],
  "info": {
    "version": "1.67.0",
    "title": "Resource API",
    "description": "# These APIs are used for integration with the Eagle Eye AIR platform when interacting with resources."
  },
  "paths": {
    "/programmes/{id}": {
      "put": {
        "summary": "Update Programme",
        "description": "This method allows the calling application to update a Programme.",
        "parameters": [
          {
            "$ref": "#/components/parameters/programmeIdParam"
          },
          {
            "$ref": "#/components/parameters/eesAuthenticationClientId"
          },
          {
            "$ref": "#/components/parameters/eesAuthenticationRequestHash"
          },
          {
            "$ref": "#/components/parameters/httpAcceptEncoding"
          },
          {
            "$ref": "#/components/parameters/eesMessageId"
          },
          {
            "$ref": "#/components/parameters/eesMessageRetry"
          }
        ],
        "operationId": "putProgrammeById",
        "tags": [
          "Programmes"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/putProgrammesPayload"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/responseProgrammesPayload"
          },
          "400": {
            "$ref": "#/components/responses/badRequest"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "405": {
            "$ref": "#/components/responses/methodNotAllowed"
          },
          "429": {
            "$ref": "#/components/responses/tooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/serverError"
          },
          "501": {
            "$ref": "#/components/responses/notImplemented"
          },
          "502": {
            "$ref": "#/components/responses/badGateway"
          },
          "503": {
            "$ref": "#/components/responses/serviceUnavailable"
          },
          "504": {
            "$ref": "#/components/responses/gatewayTimeout"
          }
        }
      }
    }
  },
  "components": {
    "parameters": {
      "eesAuthenticationClientId": {
        "name": "X-EES-AUTH-CLIENT-ID",
        "in": "header",
        "description": "Client ID, This will be provided by EES and is unique to the company calling the API.",
        "required": true,
        "schema": {
          "type": "string",
          "format": "string"
        }
      },
      "eesAuthenticationRequestHash": {
        "name": "X-EES-AUTH-HASH",
        "in": "header",
        "description": "Request Security Hash, calculated using SHA-256 function from concatenated full Request URI Path with Query String(s), Payload and Client Secret.",
        "required": true,
        "schema": {
          "type": "string",
          "format": "string"
        }
      },
      "eesMessageId": {
        "name": "X-EES-TRANSACTION-ID",
        "in": "header",
        "description": "Unique Reference for the API transaction within the calling company.",
        "required": false,
        "schema": {
          "type": "string",
          "format": "string"
        }
      },
      "eesMessageRetry": {
        "name": "X-EES-RETRY",
        "in": "header",
        "description": "This flag denotes the number of attempts that have been made for this request.",
        "required": false,
        "schema": {
          "type": "string",
          "format": "string"
        }
      },
      "httpAcceptEncoding": {
        "name": "Accept-Encoding",
        "in": "header",
        "required": false,
        "description": "This request HTTP header advertises which content encoding (usually a compression algorithm) the calling application is able to understand. The server selects one of the proposals, use it and informs the client of its choice with the Content-Encoding response header. Currently supported `gzip` and `deflate`, if request header not present no compression will be used.\n",
        "schema": {
          "type": "string",
          "enum": [
            "",
            "gzip",
            "deflate",
            "gzip,deflate"
          ],
          "default": ""
        }
      },
      "programmeIdParam": {
        "name": "id",
        "in": "path",
        "required": true,
        "description": "EES AIR Programme ID.",
        "schema": {
          "type": "string",
          "format": "Int64"
        },
        "allowEmptyValue": false
      }
    },
    "requestBodies": {
      "putProgrammesPayload": {
        "description": "JSON Payload.",
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/programmePostPutRequestEntity"
            }
          }
        }
      }
    },
    "schemas": {
      "error400Entity": {
        "type": "object",
        "required": [
          "errorCode",
          "errorMessage"
        ],
        "properties": {
          "errorCode": {
            "type": "string",
            "format": "string",
            "description": "Error Code",
            "example": "ISF",
            "enum": [
              "ICE",
              "IR",
              "ISF",
              "U",
              "ELE"
            ]
          },
          "errorMessage": {
            "type": "string",
            "format": "string",
            "description": "Human Friendly Error Message"
          }
        },
        "x-enum": [
          {
            "errorCode": "ICE",
            "errorMessage": "Internal Configuration Error"
          },
          {
            "errorCode": "IR",
            "errorMessage": "Invalid Request Data"
          },
          {
            "errorCode": "ISF",
            "errorMessage": "Invalid Schema format"
          },
          {
            "errorCode": "U",
            "errorMessage": "Unknown error has occurred"
          },
          {
            "errorCode": "ELE",
            "errorMessage": "Error when loading Monolog logger"
          }
        ]
      },
      "error401Entity": {
        "type": "object",
        "required": [
          "errorCode",
          "errorMessage"
        ],
        "properties": {
          "errorCode": {
            "type": "string",
            "format": "string",
            "description": "Error Code",
            "example": "UN",
            "enum": [
              "UN",
              "CCE",
              "CRN",
              "CUE"
            ]
          },
          "errorMessage": {
            "type": "string",
            "format": "string",
            "description": "Human Friendly Error Message"
          }
        },
        "x-enum": [
          {
            "errorCode": "UN",
            "errorMessage": "Unauthenticated - Check the AUTH headers and the hash is formed correctly"
          },
          {
            "errorCode": "CCE",
            "errorMessage": "Campaign Create Exception"
          },
          {
            "errorCode": "CRN",
            "errorMessage": "Campaign Reference Not Unique"
          },
          {
            "errorCode": "CUE",
            "errorMessage": "Campaign Update Exception"
          }
        ]
      },
      "error403Entity": {
        "type": "object",
        "required": [
          "errorCode",
          "errorMessage"
        ],
        "properties": {
          "errorCode": {
            "type": "string",
            "format": "string",
            "description": "Error Code",
            "example": "P",
            "enum": [
              "P",
              "IPR"
            ]
          },
          "errorMessage": {
            "type": "string",
            "format": "string",
            "description": "Human Friendly Error Message"
          }
        },
        "x-enum": [
          {
            "errorCode": "P",
            "errorMessage": "Caller unit hasn't privileges to access this unit"
          },
          {
            "errorCode": "IPR",
            "errorMessage": "IP Address Rejected"
          }
        ]
      },
      "error405Entity": {
        "type": "object",
        "required": [
          "errorCode",
          "errorMessage"
        ],
        "properties": {
          "errorCode": {
            "type": "string",
            "format": "string",
            "description": "Error Code",
            "example": "MNA",
            "enum": [
              "MNA"
            ]
          },
          "errorMessage": {
            "type": "string",
            "format": "string",
            "description": "Human Friendly Error Message"
          }
        },
        "x-enum": [
          {
            "errorCode": "MNA",
            "errorMessage": "Method not allowed"
          }
        ]
      },
      "defaultErrorEntity": {
        "type": "object",
        "required": [
          "errorCode",
          "errorMessage"
        ],
        "properties": {
          "errorCode": {
            "type": "string",
            "format": "string",
            "description": "EES AIR Error Code",
            "example": "MPA",
            "enum": [
              "NF",
              "IR",
              "U",
              "AF",
              "CE",
              "IPR",
              "MNA",
              "MPA",
              "P",
              "AA",
              "IP",
              "IH",
              "RF"
            ]
          },
          "errorMessage": {
            "type": "string",
            "format": "string",
            "description": "Human Friendly Error Message",
            "example": "Missing Mandatory Request Parameter: `parameterName`"
          },
          "details": {
            "type": "object",
            "description": "This optional object might contain an additional details regarding this error"
          }
        },
        "x-enum": [
          {
            "errorCode": "NF",
            "errorMessage": "Not Found"
          },
          {
            "errorCode": "IR",
            "errorMessage": "Invalid Request"
          },
          {
            "errorCode": "U",
            "errorMessage": "Unknown Error"
          },
          {
            "errorCode": "AF",
            "errorMessage": "Authorisation Failed"
          },
          {
            "errorCode": "CE",
            "errorMessage": "Configuration Error"
          },
          {
            "errorCode": "IPR",
            "errorMessage": "IP Address Rejected"
          },
          {
            "errorCode": "MNA",
            "errorMessage": "Method Not Allowed"
          },
          {
            "errorCode": "MPA",
            "errorMessage": "Missing Parameter"
          },
          {
            "errorCode": "P",
            "errorMessage": "Privileges"
          },
          {
            "errorCode": "AA",
            "errorMessage": "Invalid Access to API Method"
          },
          {
            "errorCode": "IP",
            "errorMessage": "Invalid Parameter"
          },
          {
            "errorCode": "IH",
            "errorMessage": "Invalid Header set"
          },
          {
            "errorCode": "RF",
            "errorMessage": "Rollback Failure"
          }
        ]
      },
      "programmeEntity": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "The id of a Programme automatically generated and unique within Eagle Eye AIR."
          },
          "type": {
            "type": "string",
            "description": "The Programme type.",
            "enum": [
              "DEBIT",
              "VOUCHER",
              "PLASTIC"
            ]
          },
          "status": {
            "type": "string",
            "description": "The status of the Programme.",
            "enum": [
              "ACTIVE",
              "INACTIVE",
              "EXPIRED",
              "PENDING",
              "DRAFT",
              "REJECTED",
              "READY",
              "STOPPED",
              "SUSPENDED"
            ]
          },
          "reference": {
            "type": "string",
            "description": "The reference of the Programme. Once set this cannot be changed."
          },
          "details": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "The name of the Programme."
              },
              "description": {
                "type": "string",
                "nullable": true,
                "description": "The description of the Programme."
              },
              "startDate": {
                "type": "string",
                "format": "date-time",
                "description": "When the Programme starts."
              },
              "endDate": {
                "type": "string",
                "format": "date-time",
                "description": "When the Programme ends."
              },
              "tags": {
                "type": "array",
                "nullable": true,
                "description": "The tags applying to the Programme.",
                "items": {
                  "type": "string"
                }
              }
            },
            "required": [
              "name",
              "startDate",
              "endDate"
            ]
          },
          "settings": {
            "type": "object",
            "properties": {
              "tokenProvider": {
                "type": "string",
                "nullable": true
              },
              "tokenFormat": {
                "type": "string",
                "nullable": true
              },
              "cardNumber": {
                "type": "object",
                "description": "If provided, bin and scheme must be exactly 6 and 2 digits in length respectively when using the  `EES Stored Value Code` Provider. Otherwise lengths of 6/2, 8/1 or 6/4 digits respectively are allowed.",
                "oneOf": [
                  {
                    "properties": {
                      "bin": {
                        "type": "string",
                        "pattern": "^[0-9]{6}$",
                        "nullable": true
                      },
                      "scheme": {
                        "type": "string",
                        "pattern": "^[0-9]{2}$",
                        "nullable": true
                      }
                    },
                    "required": [
                      "bin",
                      "scheme"
                    ]
                  },
                  {
                    "properties": {
                      "bin": {
                        "type": "string",
                        "pattern": "^[0-9]{8}$",
                        "nullable": true
                      },
                      "scheme": {
                        "type": "string",
                        "pattern": "^[0-9]{1}$",
                        "nullable": true
                      }
                    },
                    "required": [
                      "bin",
                      "scheme"
                    ]
                  },
                  {
                    "properties": {
                      "bin": {
                        "type": "string",
                        "pattern": "^[0-9]{6}$",
                        "nullable": true
                      },
                      "scheme": {
                        "type": "string",
                        "pattern": "^[0-9]{4}$",
                        "nullable": true
                      }
                    },
                    "required": [
                      "bin",
                      "scheme"
                    ]
                  }
                ]
              },
              "accountClientType": {
                "type": "string",
                "nullable": true
              },
              "defaultAccountClientState": {
                "type": "string",
                "nullable": true
              },
              "passphrase": {
                "type": "boolean"
              },
              "refreshToken": {
                "type": "boolean"
              },
              "currency": {
                "type": "string",
                "nullable": true
              }
            }
          },
          "partners": {
            "type": "object",
            "properties": {
              "creation": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "partner": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "partner"
                  ]
                }
              },
              "redemption": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "partner": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "partner"
                  ]
                }
              }
            }
          },
          "rules": {
            "type": "object",
            "properties": {
              "expiry": {
                "type": "object",
                "description": "The expiry rule for the programme. Depending on the type selected, the property `date` or `value` may be required.",
                "oneOf": [
                  {
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "NEVER"
                        ]
                      }
                    },
                    "required": [
                      "type"
                    ]
                  },
                  {
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "SET_DATE"
                        ]
                      },
                      "date": {
                        "type": "string",
                        "format": "date-time"
                      }
                    },
                    "required": [
                      "type",
                      "date"
                    ]
                  },
                  {
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "DAYS_AFTER_CREATION",
                          "DAYS_AFTER_ACTIVATION",
                          "ROLLING_DAYS"
                        ]
                      },
                      "value": {
                        "type": "integer"
                      }
                    },
                    "required": [
                      "type",
                      "value"
                    ]
                  }
                ]
              },
              "balances": {
                "type": "object",
                "properties": {
                  "maxBalance": {
                    "type": "integer",
                    "nullable": true
                  },
                  "minLoadAmount": {
                    "type": "integer",
                    "nullable": true
                  },
                  "maxLoadAmount": {
                    "type": "integer",
                    "nullable": true
                  },
                  "maxDebitAmount": {
                    "type": "integer",
                    "nullable": true
                  }
                }
              },
              "redemption": {
                "type": "object",
                "properties": {
                  "couponLimit": {
                    "type": "integer",
                    "description": "The number of redemptions allowed. A value of zero is unlimited."
                  }
                }
              },
              "storeRestrictions": {
                "type": "object",
                "nullable": true,
                "additionalProperties": {
                  "pattern": "^[\\\\S]+$",
                  "type": "object",
                  "description": "You can define store restrictions by adding one or more banner location identifiers with this object structure",
                  "properties": {
                    "included": {
                      "type": "object",
                      "properties": {
                        "locationIdentifiers": {
                          "type": "object",
                          "nullable": true,
                          "description": "If all outlets under the parent banner are included, then set this property to null. Otherwise the property value is the banner location identifier.",
                          "additionalProperties": {
                            "pattern": "^[\\\\S]+$",
                            "type": "array",
                            "uniqueItems": true,
                            "minItems": 1,
                            "description": "Outlet store location identifiers.",
                            "items": {
                              "type": "string"
                            }
                          }
                        }
                      },
                      "required": [
                        "locationIdentifiers"
                      ]
                    }
                  },
                  "required": [
                    "included"
                  ]
                }
              }
            }
          },
          "dateCreated": {
            "description": "Date the Programme was created.",
            "type": "string",
            "format": "date-time"
          },
          "lastUpdated": {
            "description": "Date the Programme was last updated.",
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "programmePostPutRequestEntity": {
        "type": "object",
        "required": [
          "type",
          "status",
          "details"
        ],
        "properties": {
          "type": {
            "$ref": "#/components/schemas/programmeEntity/properties/type"
          },
          "status": {
            "$ref": "#/components/schemas/programmeEntity/properties/status"
          },
          "reference": {
            "$ref": "#/components/schemas/programmeEntity/properties/reference"
          },
          "details": {
            "$ref": "#/components/schemas/programmeEntity/properties/details"
          },
          "settings": {
            "$ref": "#/components/schemas/programmeEntity/properties/settings"
          },
          "partners": {
            "$ref": "#/components/schemas/programmeEntity/properties/partners"
          },
          "rules": {
            "$ref": "#/components/schemas/programmeEntity/properties/rules"
          }
        }
      },
      "programmesResponseEntity": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/programmeEntity/properties/id"
          },
          "type": {
            "$ref": "#/components/schemas/programmeEntity/properties/type"
          },
          "status": {
            "$ref": "#/components/schemas/programmeEntity/properties/status"
          },
          "reference": {
            "$ref": "#/components/schemas/programmeEntity/properties/reference"
          },
          "details": {
            "$ref": "#/components/schemas/programmeEntity/properties/details"
          },
          "settings": {
            "$ref": "#/components/schemas/programmeEntity/properties/settings"
          },
          "partners": {
            "$ref": "#/components/schemas/programmeEntity/properties/partners"
          },
          "rules": {
            "$ref": "#/components/schemas/programmeEntity/properties/rules"
          },
          "dateCreated": {
            "$ref": "#/components/schemas/programmeEntity/properties/dateCreated"
          },
          "lastUpdated": {
            "$ref": "#/components/schemas/programmeEntity/properties/lastUpdated"
          }
        },
        "example": {
          "id": "1001",
          "type": "STANDARD",
          "status": "ACTIVE",
          "reference": "TestReference",
          "details": {
            "name": "Test Programme",
            "description": "Test Description",
            "startDate": "2025-07-01 00:00:00",
            "endDate": "9999-12-31 00:59:59",
            "tags": [
              "test"
            ]
          },
          "settings": {
            "tokenProvider": "EES",
            "tokenFormat": "8Digits",
            "cardNumber": {
              "bin": "123456",
              "scheme": "12"
            },
            "accountClientType": "BASIC",
            "defaultAccountClientState": "BASIC",
            "passphrase": true,
            "refreshToken": true,
            "currency": "GBP"
          },
          "partners": {
            "creation": [
              {
                "partner": "123"
              }
            ],
            "redemption": [
              {
                "partner": "124"
              }
            ]
          },
          "rules": {
            "expiry": {
              "type": "DAYS_AFTER_ACTIVATION",
              "date": "null,",
              "value": 50
            },
            "balances": {
              "maxBalance": 10000,
              "minLoadAmount": 1,
              "maxLoadAmount": 1000,
              "maxDebitAmount": 1000
            },
            "redemption": {
              "couponLimit": 0
            },
            "storeRestrictions": {
              "banner1": {
                "included": {
                  "locationIdentifiers": null
                }
              },
              "banner2": {
                "included": {
                  "locationIdentifiers": {
                    "banner2": [
                      "outlet1"
                    ]
                  }
                }
              }
            }
          },
          "dateCreated": "2025-05-09 15:47:58",
          "lastUpdated": "2025-06-12 13:30:19"
        }
      }
    },
    "responses": {
      "badRequest": {
        "description": "Bad Request.",
        "content": {
          "application/json": {
            "schema": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/error400Entity"
                }
              ],
              "example": {
                "errorCode": "IR",
                "errorMessage": "Invalid Request Data"
              }
            }
          }
        }
      },
      "unauthorized": {
        "description": "Unauthorized.",
        "content": {
          "application/json": {
            "schema": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/error401Entity"
                }
              ],
              "example": {
                "errorCode": "UN",
                "errorMessage": "Unauthenticated - Check the AUTH headers and the hash is formed correctly"
              }
            }
          }
        }
      },
      "forbidden": {
        "description": "Forbidden.",
        "content": {
          "application/json": {
            "schema": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/error403Entity"
                }
              ],
              "example": {
                "errorCode": "P",
                "errorMessage": "Caller unit hasn't privileges to access this unit"
              }
            }
          }
        }
      },
      "methodNotAllowed": {
        "description": "Method Not Allowed.",
        "content": {
          "application/json": {
            "schema": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/error405Entity"
                }
              ],
              "example": {
                "errorCode": "MNA",
                "errorMessage": "Method not allowed"
              }
            }
          }
        }
      },
      "tooManyRequests": {
        "description": "Too Many Requests",
        "headers": {
          "Retry-after": {
            "description": "The number of seconds after which to retry the request",
            "schema": {
              "type": "integer"
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "errorCode": {
                  "type": "string",
                  "description": "The error code",
                  "enum": [
                    "CE"
                  ]
                },
                "errorMessage": {
                  "type": "string",
                  "description": "The error message for this error",
                  "enum": [
                    "This request has been throttled. Please try again later."
                  ]
                }
              }
            }
          }
        }
      },
      "serverError": {
        "description": "Server Error",
        "content": {
          "application/json": {
            "schema": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/defaultErrorEntity"
                }
              ],
              "example": {
                "errorMessage": "Internal Server Error"
              }
            }
          }
        }
      },
      "notImplemented": {
        "description": "Not Implemented",
        "content": {
          "application/json": {
            "schema": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/defaultErrorEntity"
                }
              ],
              "example": {
                "errorMessage": "Not Implemented"
              }
            }
          }
        }
      },
      "badGateway": {
        "description": "Bad Gateway",
        "content": {
          "application/json": {
            "schema": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/defaultErrorEntity"
                }
              ],
              "example": {
                "errorMessage": "Bad Gateway"
              }
            }
          }
        }
      },
      "serviceUnavailable": {
        "description": "Service Unavailable",
        "content": {
          "application/json": {
            "schema": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/defaultErrorEntity"
                }
              ],
              "example": {
                "errorMessage": "Service Unavailable"
              }
            }
          }
        }
      },
      "gatewayTimeout": {
        "description": "Gateway Timeout",
        "content": {
          "application/json": {
            "schema": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/defaultErrorEntity"
                }
              ],
              "example": {
                "errorMessage": "Gateway Timeout"
              }
            }
          }
        }
      },
      "responseProgrammesPayload": {
        "description": "OK.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/programmesResponseEntity"
            }
          }
        }
      }
    }
  }
}
```