# Transaction Footprints
source: https://developer.mastercard.com/carbon-calculator/documentation/testing/testcase/test_case_transaction_footprint/index.md

Calculates carbon emission based on the payment transaction amount and the merchant category code.

## Pre-requisites {#pre-requisites}

Refer to the [Transaction Footprints Calculation](https://developer.mastercard.com/carbon-calculator/documentation/use-cases/txn_footprint_calculation/index.md) use case.


API Reference: `GET /transaction-footprints`

<br />

## Test Cases {#test-cases}

### Test Case: Success-Calculate carbon footprint {#test-case-success-calculate-carbon-footprint}

##### Request {#request}

```json
[
  {
    "transactionId": "ee421c25-f928-4bf-b8843600b76b860d",
    "type": "AIIA",
    "amount": {
      "value": 100,
      "currencyCode": "USD"
    },
    "cardBrand": "OTH",
    "additionalInformation": [
      {
        "key": "aiiaCode",
        "value": "115"
      }
    ]
  },
  {
    "transactionId": "fdc4626c-f51e-4ba6-9728-c79ac1d9aec8",
    "mcc": "5962",
    "amount": {
      "value": 50,
      "currencyCode": "EUR"
    }
  }
]
```

##### Response {#response}

```json
[
  {
    "transactionId": "a213c72c-f13a-4930-a5f9-8cf765d42ca1",
    "cardBrand": "OTH",
    "scoreReference": "AIIA",
    "carbonEmissionInGrams": 469343.47,
    "carbonEmissionInOunces": 16555.62,
    "category": {
      "mainCategory": "Home,",
      "subCategory": "Utilities,",
      "sector": "Electric utilities,",
      "sectorCode": 151010
    }
  },
  {
    "transactionId": "fdc4626c-f51e-4ba6-9728-c79ac1d9aec8",
    "mcc": "5962",
    "scoreReference": "MCC",
    "carbonEmissionInGrams": 11905.7,
    "carbonEmissionInOunces": 419.96,
    "category": {
      "mainCategory": "Shopping",
      "subCategory": "Department Store",
      "sector": "Specialty Retail & Services",
      "sectorCode": "302"
    }
  }
]
```

### Test Case: Fail-Invalid request parameter {#test-case-fail-invalid-request-parameter}

##### Request {#request-1}

```json
[
  {
    "transactionId": "ee421c25-f928-4bf6-b884-3600b76b860d",
    "mcc": 399798,
    "amount": {
      "value": 100,
      "currencyCode": "USD"
    }
  }
]
```

##### Response {#response-1}

```json
{
   "Errors": {
     "Error": [
       {
         "Source": "Carbon-Calculator",
         "ReasonCode": "INVALID_REQUEST_PARAMETER",
         "Description": "One of the request parameters is invalid, try again with correct request.",
         "Recoverable": false,
         "Details": "transactions[0].mcc size must be between 1 and 4"
       }
     ]
   }
 }
```

### Test Case: Success-Calculate carbon footprint based on profile {#test-case-success-calculate-carbon-footprint-based-on-profile}

##### Request {#request-2}

```json
[
  {
    "transactionId": "yBNC8EJvzr",
    "type": "MCC",
    "mcc": "3000",
    "amount": {
      "currencyCode": "USD",
      "value": 10.35
    },
    "cardBaseCurrencyCode": "USD",
    "profile": {
        "traits": {
            "knowledge": 0.575,
            "lifestyle": 0.324,
            "motivated": 0.575
        },
        "userAttributes": {
            "demo": 65,
            "diet": 512,
            "lifestyle": 1,
            "energy": 1,
            "transport": 1,
            "country": "IN"
        },
        "created": "2023-08-07T12:39:35.087Z",
        "surveys": {
            "viewed": {
                "onboardingVersion": 1.0
            }
        },
        "persona": "5"
    }
  }
]
```

##### Response {#response-2}

```json
[
    {
        "carbonEmissionInGrams": 339495.86,
        "carbonEmissionInOunces": 11975.38,
        "transactionId": "yBNC8EJvzr",
        "mcc": "3000",
        "category": {
            "mainCategory": "Transport",
            "subCategory": "Flights",
            "sector": "Flights",
            "sectorCode": "351"
        },
        "scoreReference": "MCC",
        "profile": {
            "userAttributes": {
                "country": "IN",
                "demo": 65,
                "diet": 512,
                "energy": 1,
                "lifestyle": 1,
                "transport": 1
            },
            "created": "2023-08-07T12:39:35.087Z",
            "persona": "5",
            "surveys": {
                "viewed": {
                    "onboardingVersion": 1.0
                }
            },
            "traits": {
                "knowledge": 0.575,
                "lifestyle": 0.324,
                "motivated": 0.575
            }
        },
        "spendingAreaId": 40,
        "classification": {
            "id": "3000",
            "type": "mcc"
        }
    }
]
```

### Test Case: Invalid request parameter in profile object {#test-case-invalid-request-parameter-in-profile-object}

##### Request {#request-3}

```json
[
  {
    "transactionId": "yBNC8EJvzr",
    "type": "MCC",
    "mcc": "2000",
    "amount": {
      "currencyCode": "USD",
      "value": 10.35
    },
    "cardBaseCurrencyCode": "USD",
    "profile": {
        "traits": {
            "knowledge": 0.575,
            "lifestyle": 0.324,
            "motivated": 0.575
        },
        "created": "2023-08-07T12:39:35.087Z",
        "surveys": {
            "viewed": {
                "onboardingVersion": 1.0
            }
        },
        "persona": "5"
    }
  }
]
```

##### Response {#response-3}

```json
{
    "Errors": {
        "Error": [
            {
                "Source": "Carbon-Calculator",
                "ReasonCode": "INVALID_REQUEST_PARAMETER",
                "Description": "One of the request parameters is invalid, try again with correct request.",
                "Recoverable": false,
                "Details": "footprintsByTransactionData.transactionData[0].profile.userAttributes: must not be null"
            }
        ]
    }
}
```

