## Delete fulfillment

### cURL

```bash
curl --request DELETE \
  --url https://api.fabric.inc/v3/carts/{cartId}/fulfillments/{fulfillmentId} \
  --header 'Authorization: Bearer <token>' \
  --header 'x-fabric-tenant-id: <x-fabric-tenant-id>'
```

```python
import requests

url = "https://api.fabric.inc/v3/carts/{cartId}/fulfillments/{fulfillmentId}"

headers = {
    "x-fabric-tenant-id": "<x-fabric-tenant-id>",
    "Authorization": "Bearer <token>"
}

response = requests.delete(url, headers=headers)

print(response.text)
```

```javascript
const options = {
  method: 'DELETE',
  headers: {'x-fabric-tenant-id': '<x-fabric-tenant-id>', Authorization: 'Bearer <token>'}
};

fetch('https://api.fabric.inc/v3/carts/{cartId}/fulfillments/{fulfillmentId}', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
```

```php
<?php

$curl = curl_init();

curl_setopt_array($curl, [\
  CURLOPT_URL => "https://api.fabric.inc/v3/carts/{cartId}/fulfillments/{fulfillmentId}",\
  CURLOPT_RETURNTRANSFER => true,\
  CURLOPT_ENCODING => "",\
  CURLOPT_MAXREDIRS => 10,\
  CURLOPT_TIMEOUT => 30,\
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\
  CURLOPT_CUSTOMREQUEST => "DELETE",\
  CURLOPT_HTTPHEADER => [\
    "Authorization: Bearer <token>",\
    "x-fabric-tenant-id: <x-fabric-tenant-id>"\
  ],\
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
```

```go
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

url := "https://api.fabric.inc/v3/carts/{cartId}/fulfillments/{fulfillmentId}"

req, _ := http.NewRequest("DELETE", url, nil)

req.Header.Add("x-fabric-tenant-id", "<x-fabric-tenant-id>")
	req.Header.Add("Authorization", "Bearer <token>")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))
}
```

```java
HttpResponse<String> response = Unirest.delete("https://api.fabric.inc/v3/carts/{cartId}/fulfillments/{fulfillmentId}")
  .header("x-fabric-tenant-id", "<x-fabric-tenant-id>")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api.fabric.inc/v3/carts/{cartId}/fulfillments/{fulfillmentId}")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)
request["x-fabric-tenant-id"] = '<x-fabric-tenant-id>'
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

### Error Responses

**400**
```json
{
  "type": "BAD_REQUEST",
  "message": "x-fabric-tenant-id is required"
}
```

**404**
```json
{
  "type": "CART_NOT_FOUND",
  "message": "Cart not found"
}
```

### Authorizations

#### Authorization

- **Type**: string
- **Location**: header
- **Required**: Yes

This is the authorization token used to authenticate the request. You must pass the access token generated from the system app. For more information, see the [Making your first API request](https://developer.fabric.inc/v3/api-reference/getting-started/getting-started-with-fabric-apis#procedure) section.

#### Headers

- **x-fabric-tenant-id**: string (required)

A header used by fabric to identify the tenant making the request. You must include tenant id in the authentication header for an API request to access any of fabric’s endpoints. You can retrieve the tenant id, which is also called account id, from [Copilot](https://developer.fabric.inc/v3/platform/settings/account-details/getting-the-account-id).

#### Path Parameters

- **cartId**: string (required)

The 24-character system-generated Cart ID.
- **fulfillmentId**: string (required)

The Fulfillment ID that was generated when a fulfillment was created.
