HTTP Status code 400 - invalid parameter - "Unexpected key \"index\"

As written in your original error, the problem you have is in the format of the contents parameter. Here is how you send it:

And here’s where you can find how FB expects to get it: Standard Parameters - Conversions API - Documentation - Meta for Developers

A list of JSON objects that contain the product IDs associated with the event plus information about the products. Available fields: id , quantity , item_price , delivery_category.

Also, there is usually not any point in sending items to FB, it is the format for GA4. For FB, you send item data in ‘content_ids’ and/or ‘contents’ params.