# Update an extraction code (internal) **POST /admin/case/update-extraction-codes** Updates the extraction code on `caseId` found by `extractionCodeId` or `code`, with the same fields as the member route (label, due date, configuration or custodian), and returns the code. Configuration cannot change once the code is locked. Returns 404 when the case has no such code. Super admin only. ## Servers - http://api.example.com: http://api.example.com () ## Authentication methods - Access token ## Parameters ### Body: application/json (object) - **custodianEmail** (string) - **custodianName** (string) - **custodianPhone** (string) - **sendEmail** (boolean) - **label** (string) - **allowShareAll** (boolean) Use config instead - **config** (object) - **requestedSources** (array[string]) - **dueDate** (string) - **sendReminders** (object) - **metadata** (object) - **watchlist** (boolean) - **ocRequired** (boolean) OC cases only: when false, the OL creates/keeps this code without the opposing-council approval gate (code stays `na`, immediately usable, and the custodian email is sent). Ignored on non-OC cases. Defaults to true (gate on). - **paymentRequired** (boolean) Whether payment is required for this extraction code - **paymentAmount** (number) Payment amount in cents - **paymentCurrency** (string) Payment currency (defaults to usd) - **paymentSuccessRedirectUrl** (string) Payment success redirect URL - **productName** (string) Product name - **prepaidItems** (array[object]) Prepaid basket. Each entry becomes its own Stripe line item and grants units on payment. Prices are negotiable — unitAmountCents is what the customer is charged, and is never validated against the catalog default. - **caseId** (string) - **extractionCodeId** (string) required if code is not provided - **code** (string) required if extractionCodeId is not provided ## Responses ### 201 #### Body: application/json (object) - **data** (object) - **statusCode** (number) - **timestamp** (string(date-time)) [Powered by Bump.sh](https://bump.sh)