{"_id":"5c6c238ff7d548003953559d","project":"57336fd5a6a9c40e00e13a0b","version":{"_id":"5c6c238ff7d54800395355a0","project":"57336fd5a6a9c40e00e13a0b","__v":1,"forked_from":"5beb278ac442ab0213f009cf","createdAt":"2018-04-23T14:36:48.535Z","releaseDate":"2018-04-23T14:36:48.535Z","categories":["5c6c238ff7d548003953555d","5c6c238ff7d548003953555e","5c6c238ff7d548003953555f","5c6c238ff7d5480039535560","5c6c238ff7d5480039535561","5c6c238ff7d5480039535562","5beb278ac442ab0213f00990","5c6c238ff7d5480039535563","5c3f542c12c4ac004bc51718","5c928dba4aa821001ae4f050"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"Main","version_clean":"8976.0.0-Basics","version":"8976-Basics"},"category":{"_id":"5c6c238ff7d5480039535563","version":"5c6c238ff7d54800395355a0","project":"57336fd5a6a9c40e00e13a0b","__v":0,"sync":{"url":"","isSync":false},"reference":false,"createdAt":"2015-11-03T20:45:01.593Z","from_sync":false,"order":7,"slug":"topics","title":"Guides"},"user":"5beb1b96bc2003003ecd645e","__v":0,"parentDoc":null,"updates":[],"next":{"pages":[],"description":""},"createdAt":"2019-01-30T18:24:52.908Z","link_external":false,"link_url":"","sync_unique":"","hidden":false,"api":{"settings":"","results":{"codes":[]},"auth":"required","params":[],"url":""},"isReference":false,"order":16,"body":"Card processing can be categorized into different levels, with each level defined by how much data is required to process the transaction. Enhanced data levels, such as Level 2 and Level 3, require extra information to process the transaction and are most useful for corporations and government agencies that require this type of transaction detail to accurately monitor and track expenses. BlueSnap's Payment API supports Level 2/3 data processing for all currencies, allowing you to expand your business-to-business (B2B) and business-to-government (B2G) sales opportunities.\n\nThis guide covers the following topics: \n* [Data levels](#section-data-levels) \n* [Required properties per data level](#section-required-properties-per-data-level) \n* [Sending Level 3 data example](#section-sending-level-3-data-example)\n* [Test Cards](#section-test-cards)\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"Before you begin:\",\n  \"body\": \"Level 2/3 Data is supported for select configurations. Contact [Merchant Support](https://bluesnap.zendesk.com/hc/en-us/requests/new?ticket_form_id=360000127087) for more details.\"\n}\n[/block]\n## Data levels \n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Card brand\",\n    \"h-1\": \"Supports\",\n    \"0-0\": \"MasterCard<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>\",\n    \"0-1\": \"**Level 2**\\n**Level 3**\",\n    \"1-0\": \"Visa\",\n    \"1-1\": \"**Level 2**\\n**Level 3**\",\n    \"h-2\": \"Level 2\",\n    \"h-3\": \"Level 2 with TAA\",\n    \"h-4\": \"Level 3\",\n    \"0-2\": \"**\",\n    \"2-0\": \"Amex\",\n    \"2-1\": \"**Level 2**\\n**Level 2 with TAA (Transaction Advice Addendum)** \\nThis is an Amex-specific level that contains item data (such as item description and quantity) in addition to Level 2 fields.\"\n  },\n  \"cols\": 2,\n  \"rows\": 3\n}\n[/block]\n## Required properties per data level\nThe following table outlines the required properties for each data level.  \nFor details regarding the specifics of a property, refer to:\n* [`level3Data` (JSON)](https://developers.bluesnap.com/v8976-JSON/docs/level3data) \n* [`level-3-data` (XML)](https://developers.bluesnap.com/v8976-XML/docs/level-3-data)\n<br />\n[block:html]\n{\n  \"html\": \"<div>\\n\\n    <table id=\\\"section-level-3-data-properties\\\">\\n         \\n      <tr>\\n          <th>Property (<span style=\\\"font-family:'Courier New';\\\">JSON&nbsp;XML</span>)</th>\\n          <th style=\\\"text-align:center\\\">Level&nbsp;2</th>\\n          <th style=\\\"text-align:center\\\">Amex&nbsp;Level&nbsp;2<br/>with&nbsp;TAA<a href=\\\"https://developers.bluesnap.com/docs/level-23-data#note\\\" target=\\\"_self\\\">*</a></th>\\n          <th style=\\\"text-align:center\\\">Level&nbsp;3</th>\\n      </tr>\\n      <tr>\\n          <td></td>\\n              <td style=\\\"text-align:center\\\" colspan=\\\"3\\\">\\n                  <strong>Key:&nbsp;&nbsp;</strong>\\n                  <i class=\\\"fa fa-circle\\\"></i>&nbsp;=&nbsp;Required&nbsp;&nbsp;&nbsp;<i class=\\\"fa fa-circle-o\\\"></i>&nbsp;=&nbsp;Optional&nbsp;&nbsp;&nbsp;N/A&nbsp;=&nbsp;Not&nbsp;applicable<br/>\\n              </td>\\n          </tr>\\n      <tr>\\n          <td><span class=\\\"api\\\">customerReferenceNumber<br/>customer&#8209;reference&#8209;number</span></td>\\n          <td class=\\\"center\\\"><i class=\\\"fa fa-circle\\\"></i></td>\\n          <td class=\\\"center\\\"><i class=\\\"fa fa-circle\\\"></i></td>\\n          <td class=\\\"center\\\"><i class=\\\"fa fa-circle\\\"></i></td>\\n      </tr>\\n      <tr>\\n          <td><span class=\\\"api\\\">salesTaxAmount<br/>sales&#8209;tax&#8209;amount</span></td>\\n          <td class=\\\"center\\\"><i class=\\\"fa fa-circle\\\"></i></td>\\n          <td class=\\\"center\\\"><i class=\\\"fa fa-circle\\\"></i></td>\\n          <td class=\\\"center\\\"><i class=\\\"fa fa-circle\\\"></i></td>\\n      </tr>\\n      <tr>\\n      <td><span class=\\\"api\\\">freightAmount<br/>freight&#8209;amount</span></td>\\n          <td class=\\\"center\\\">N/A</td>\\n          <td class=\\\"center\\\">N/A</td>\\n          <td class=\\\"center\\\"><i class=\\\"fa fa-circle-o\\\"></i></td>\\n      </tr>\\n      <tr>\\n         <td><span class=\\\"api\\\">dutyAmount<br/>duty&#8209;amount</span></td>\\n          <td class=\\\"center\\\">N/A</td>\\n          <td class=\\\"center\\\">N/A</td>\\n          <td class=\\\"center\\\"><i class=\\\"fa fa-circle-o\\\"></i></td>\\n      </tr>\\n      <tr>\\n          <td><span class=\\\"api\\\">destinationZipCode<br/>destination&#8209;zip&#8209;code</span></td>\\n          <td class=\\\"center\\\">N/A</td>\\n          <td class=\\\"center\\\"><i class=\\\"fa fa-circle-o\\\"></i></td>\\n          <td class=\\\"center\\\"><i class=\\\"fa fa-circle-o\\\"></i></td>\\n      </tr>\\n      <tr>\\n          <td><span class=\\\"api\\\">destinationCountryCode<br/>destination&#8209;country&#8209;code</span></td>\\n          <td class=\\\"center\\\">N/A</td>\\n          <td class=\\\"center\\\">N/A</td>\\n          <td class=\\\"center\\\"><i class=\\\"fa fa-circle-o\\\"></i></td>\\n      </tr>\\n      <tr>\\n         <td><span class=\\\"api\\\">shipFromZipCode<br/>ship&#8209;from&#8209;zip&#8209;code</span></td>\\n          <td class=\\\"center\\\">N/A</td>\\n          <td class=\\\"center\\\">N/A</td>\\n          <td class=\\\"center\\\"><i class=\\\"fa fa-circle-o\\\"></i></td>\\n      </tr>\\n      <tr>\\n          <td><span class=\\\"api\\\">discountAmount<br/>discount&#8209;amount</span></td>\\n          <td class=\\\"center\\\">N/A</td>\\n          <td class=\\\"center\\\">N/A</td>\\n          <td class=\\\"center\\\"><i class=\\\"fa fa-circle-o\\\"></i></td>\\n      </tr>\\n      <tr>\\n         <td><span class=\\\"api\\\">taxAmount<br/>tax&#8209;amount</span></td>\\n          <td class=\\\"center\\\">N/A</td>\\n          <td class=\\\"center\\\">N/A</td>\\n          <td class=\\\"center\\\"><i class=\\\"fa fa-circle-o\\\"></i></td>\\n      </tr>\\n      <tr>\\n              <td><span class=\\\"api\\\">taxRate<br/>tax&#8209;rate</span></td>\\n          <td class=\\\"center\\\">N/A</td>\\n          <td class=\\\"center\\\">N/A</td>\\n          <td class=\\\"center\\\"><i class=\\\"fa fa-circle-o\\\"></i></td>\\n      </tr>\\n      <tr>\\n          <td><span class=\\\"api\\\">level3DataItem<br/>level&#8209;3&#8209;data&#8209;item</span>\\n          <br/>Container for the data item properties shown below.</td>\\n          <td class=\\\"center\\\">N/A</td>\\n          <td class=\\\"center\\\"><i class=\\\"fa fa-circle\\\"></i></td>\\n          <td class=\\\"center\\\"><i class=\\\"fa fa-circle\\\"></i></td>\\n      </tr>\\n  <tr style=\\\"background-color:#efefef\\\">\\n      <td colspan=\\\"4\\\" style=\\\"padding-left: 40px\\\">\\n        <p>The following are the required <b>data item</b> properties for each data level. For details regarding the specifics of a property, refer to&nbsp;&nbsp;<span class=\\\"api\\\">level3DataItems</span> <a href=\\\"https://developers.bluesnap.com/v8976-JSON/docs/level3dataitems\\\"><span style=\\\"font-size:small\\\">(JSON)</span></a>&nbsp;&nbsp;or&nbsp;&nbsp;<span class=\\\"api\\\">level&#8209;3&#8209;data&#8209;item</span> <a href=\\\"https://developers.bluesnap.com/v8976-XML/docs/level-3-data-item\\\">\\n  <span style=\\\"font-size:small\\\">(XML)</span></a><br/>\\n\\n        <strong>Note:</strong> You may pass the following properties for each item.</p>\\n      </td>\\n  </tr>\\n  \\n  <tr>\\n          <td style=\\\"padding-left: 40px\\\">\\n          <span class=\\\"api\\\">lineItemTotal</span>\\n              <br /><span class=\\\"api\\\">line&#8209;item&#8209;total</span>\\n      </td>\\n      <td class=\\\"center\\\">N/A</td>\\n      <td class=\\\"center\\\"><i class=\\\"fa fa-circle-o\\\"></i></td>\\n      <td class=\\\"center\\\"><i class=\\\"fa fa-circle\\\"></i></td>\\n  </tr>\\n  \\n  <tr>\\n        <td style=\\\"padding-left: 40px\\\">\\n          <span class=\\\"api\\\">commodityCode</span>\\n              <br /><span class=\\\"api\\\">commodity&#8209;code</span>\\n      </td>\\n      <td class=\\\"center\\\">N/A</td>\\n      <td class=\\\"center\\\">N/A</td>\\n      <td class=\\\"center\\\"><i class=\\\"fa fa-circle\\\"></i></td>\\n  </tr>\\n  \\n  <tr>\\n      <td style=\\\"padding-left:60px\\\" colspan=\\\"4\\\">\\n        <strong style=\\\"color:red\\\">Important</strong><br/>For Visa, the commodity code must be numeric and cannot be all zeros or the transaction will fail.\\n      </td>\\n  </tr>\\n  \\n  <tr>\\n        <td style=\\\"padding-left: 40px\\\">\\n          <span class=\\\"api\\\">description</span>\\n              <br /><span class=\\\"api\\\">description</span>\\n      </td>\\n      <td class=\\\"center\\\">N/A</td>\\n      <td class=\\\"center\\\"><i class=\\\"fa fa-circle\\\"></i></td>\\n      <td class=\\\"center\\\"><i class=\\\"fa fa-circle\\\"></i></td>\\n  </tr>\\n  \\n  <tr>\\n        <td style=\\\"padding-left: 40px\\\">\\n          <span class=\\\"api\\\">discountAmount</span>\\n              <br /><span class=\\\"api\\\">discount&#8209;amount</span>\\n      </td>\\n      <td class=\\\"center\\\">N/A</td>\\n      <td class=\\\"center\\\">N/A</td>\\n      <td class=\\\"center\\\"><i class=\\\"fa fa-circle-o\\\"></i></td>\\n  </tr>\\n  \\n  <tr>\\n        <td style=\\\"padding-left: 40px\\\">\\n          <span class=\\\"api\\\">discountIndicator</span>\\n              <br /><span class=\\\"api\\\">discount&#8209;indicator</span>\\n      </td>\\n      <td class=\\\"center\\\">N/A</td>\\n      <td class=\\\"center\\\">N/A</td>\\n      <td class=\\\"center\\\"><i class=\\\"fa fa-circle-o\\\"></i></td>\\n  </tr>\\n  \\n  <tr>\\n        <td style=\\\"padding-left: 40px\\\">\\n          <span class=\\\"api\\\">grossNetIndicator</span>\\n              <br /><span class=\\\"api\\\">gross&#8209;net&#8209;indicator</span>\\n      </td>\\n      <td class=\\\"center\\\">N/A</td>\\n      <td class=\\\"center\\\">N/A</td>\\n      <td class=\\\"center\\\"><i class=\\\"fa fa-circle-o\\\"></i></td>\\n  </tr>\\n  \\n  <tr>\\n        <td style=\\\"padding-left: 40px\\\">\\n          <span class=\\\"api\\\">productCode</span>\\n              <br /><span class=\\\"api\\\">product&#8209;code</span>\\n      </td>\\n      <td class=\\\"center\\\">N/A</td>\\n      <td class=\\\"center\\\">N/A</td>\\n      <td class=\\\"center\\\"><i class=\\\"fa fa-circle-o\\\"></i></td>\\n  </tr>\\n  \\n  <tr>\\n        <td style=\\\"padding-left: 40px\\\">\\n          <span class=\\\"api\\\">itemQuantity</span>\\n              <br /><span class=\\\"api\\\">item&#8209;quantity</span>\\n      </td>\\n      <td class=\\\"center\\\">N/A</td>\\n      <td class=\\\"center\\\"><i class=\\\"fa fa-circle-o\\\"></i></td>\\n      <td class=\\\"center\\\"><i class=\\\"fa fa-circle\\\"></i></td>\\n  </tr>\\n  \\n  <tr>\\n        <td style=\\\"padding-left: 40px\\\">\\n          <span class=\\\"api\\\">taxAmount</span>\\n              <br /><span class=\\\"api\\\">tax&#8209;amount</span>\\n      </td>\\n      <td class=\\\"center\\\">N/A</td>\\n      <td class=\\\"center\\\">N/A</td>\\n      <td class=\\\"center\\\"><i class=\\\"fa fa-circle-o\\\"></i></td>\\n  </tr>\\n  \\n  <tr>\\n        <td style=\\\"padding-left: 40px\\\">\\n          <span class=\\\"api\\\">taxRate</span>\\n              <br /><span class=\\\"api\\\">tax&#8209;rate</span>\\n      </td>\\n      <td class=\\\"center\\\">N/A</td>\\n      <td class=\\\"center\\\">N/A</td>\\n      <td class=\\\"center\\\"><i class=\\\"fa fa-circle-o\\\"></i></td>\\n  </tr>\\n  \\n  \\n  <tr>\\n        <td style=\\\"padding-left: 40px\\\">\\n          <span class=\\\"api\\\">taxType</span>\\n              <br /><span class=\\\"api\\\">tax&#8209;type</span>\\n      </td>\\n      <td class=\\\"center\\\">N/A</td>\\n      <td class=\\\"center\\\">N/A</td>\\n      <td class=\\\"center\\\"><i class=\\\"fa fa-circle-o\\\"></i></td>\\n  </tr>\\n  \\n  <tr>\\n        <td style=\\\"padding-left: 40px\\\">\\n          <span class=\\\"api\\\">unitCost</span>\\n              <br /><span class=\\\"api\\\">unit&#8209;cost</span>\\n      </td>\\n      <td class=\\\"center\\\">N/A</td>\\n      <td class=\\\"center\\\">N/A</td>\\n      <td class=\\\"center\\\"><i class=\\\"fa fa-circle\\\"></i></td>\\n  </tr>\\n  \\n  <tr>\\n    <td style=\\\"padding-left:40px\\\">\\n          <span class=\\\"api\\\">unitOfMeasure</span>\\n              <br /><span class=\\\"api\\\">unit&#8209;of&#8209;measure</span>\\n      </td>\\n      <td class=\\\"center\\\">N/A</td>\\n      <td class=\\\"center\\\">N/A</td>\\n      <td class=\\\"center\\\"><i class=\\\"fa fa-circle\\\"></i></td>\\n  </tr>\\n  \\n  </table>\\n  <p id=\\\"note\\\"><b>* </b>Refer to the <a href=\\\"https://developers.bluesnap.com/docs/level-23-data#section-data-levels\\\" target=\\\"_self\\\">Data Levels</a>\\n  section for details.\\n  \\n  </div>\\n  \\n<style>\\n\\n    .api {\\n        font-family: 'Courier New';\\n        background-color: #efefef;\\n    }\\n\\n    .center {\\n        display: table-cell;\\n        text-align: center;\\n    }\\n    \\n    table td {\\n        display: table-cell;\\n        vertical-align: top;\\n    }\\n\\n    table th {\\n        display: table-cell;\\n        vertical-align: top;\\n    }\\n</style>\"\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"info\",\n  \"body\": \"* If you don't know the card type, pass as many `level3Data` properties as you can. \\n  * If you pass a property that exceeds the maximum length, BlueSnap truncates the value to meet requirements.\\n  * If BlueSnap detects the card doesn't support Level 2/3 Data, the `level3Data` properties are not sent to the issuer.\\n* If you manage your own subscriptions, you must send `level3Data` for each charge.\",\n  \"title\": \"Notes\"\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"warning\",\n  \"title\": \"Important\",\n  \"body\": \"Do not include the pipe character `|` in a Level 2 or Level 3 data field.  Including the character causes fields to be parsed incorrectly.\"\n}\n[/block]\n## Sending Level 3 data (JSON) example\n*Sample [Auth Capture](/v8976-JSON/docs/auth-capture) request and response*  \n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{\\n  \\\"cardTransactionType\\\": \\\"AUTH_CAPTURE\\\",\\n  \\\"softDescriptor\\\": \\\"DescTest\\\",\\n  \\\"amount\\\": 10.60,\\n  \\\"currency\\\": \\\"USD\\\",\\n  \\\"cardHolderInfo\\\": {\\n    \\\"firstName\\\": \\\"test first name\\\",\\n    \\\"lastName\\\": \\\"test last name\\\",\\n    \\\"zip\\\": \\\"123456\\\"\\n  },\\n  \\\"creditCard\\\": {\\n    \\\"cardNumber\\\": \\\"4005 5192 0000 0004\\\",\\n    \\\"securityCode\\\": \\\"111\\\",\\n    \\\"expirationMonth\\\": \\\"09\\\",\\n    \\\"expirationYear\\\": 2019\\n  },\\n  \\\"level3Data\\\": {\\n    \\\"customerReferenceNumber\\\": \\\"1234A\\\",\\n    \\\"salesTaxAmount\\\": 0.6,\\n    \\\"freightAmount\\\": 0,\\n    \\\"dutyAmount\\\": 0,\\n    \\\"destinationZipCode\\\": \\\"12345\\\",\\n    \\\"destinationCountryCode\\\": \\\"us\\\",\\n    \\\"shipFromZipCode\\\": \\\"12345\\\",\\n    \\\"discountAmount\\\": 0,\\n    \\\"taxAmount\\\": 0.6,\\n    \\\"taxRate\\\": 6.0,\\n    \\\"level3DataItems\\\": [{\\n      \\\"lineItemTotal\\\": 10.00,\\n      \\\"description\\\": \\\"test_desc\\\",\\n      \\\"discountAmount\\\": 0,\\n      \\\"productCode\\\": \\\"test_code\\\",\\n      \\\"itemQuantity\\\": 1.0,\\n      \\\"taxAmount\\\": 0.60,\\n      \\\"taxRate\\\": 6.0,\\n      \\\"unitOfMeasure\\\": \\\"lb\\\",\\n      \\\"commodityCode\\\": \\\"123\\\",\\n      \\\"discountIndicator\\\": \\\"Y\\\",\\n      \\\"grossNetIndicator\\\": \\\"Y\\\",\\n      \\\"taxType\\\": \\\"test\\\",\\n      \\\"unitCost\\\": 10.00\\n    }]\\n  }\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Auth Capture with Level 3 data - request\"\n    },\n    {\n      \"code\": \"{\\n  \\\"cardTransactionType\\\": \\\"AUTH_CAPTURE\\\",\\n  \\\"vendorsInfo\\\": {},\\n  \\\"transactionId\\\": \\\"1015836179\\\",\\n  \\\"recurringTransaction\\\": \\\"ECOMMERCE\\\",\\n  \\\"softDescriptor\\\": \\\"BLS*DescTest\\\",\\n  \\\"amount\\\": 10.60,\\n  \\\"currency\\\": \\\"USD\\\",\\n  \\\"avsResponseCode\\\": \\\"G\\\",\\n  \\\"cardHolderInfo\\\": {\\n    \\\"firstName\\\": \\\"test first name\\\",\\n    \\\"lastName\\\": \\\"test last name\\\",\\n    \\\"zip\\\": \\\"123456\\\"\\n  },\\n  \\\"vaultedShopperId\\\": 22391925,\\n  \\\"creditCard\\\": {\\n    \\\"cardLastFourDigits\\\": \\\"0004\\\",\\n    \\\"cardType\\\": \\\"VISA\\\",\\n    \\\"cardSubType\\\": \\\"CREDIT\\\",\\n    \\\"cardCategory\\\": \\\"CORPORATE T&E\\\"\\n  },\\n  \\\"level3Data\\\": {\\n    \\\"customerReferenceNumber\\\": \\\"1234A\\\",\\n    \\\"salesTaxAmount\\\": 0.6,\\n    \\\"freightAmount\\\": 0,\\n    \\\"dutyAmount\\\": 0,\\n    \\\"destinationZipCode\\\": \\\"12345\\\",\\n    \\\"destinationCountryCode\\\": \\\"us\\\",\\n    \\\"shipFromZipCode\\\": \\\"12345\\\",\\n    \\\"discountAmount\\\": 0,\\n    \\\"taxAmount\\\": 0.6,\\n    \\\"taxRate\\\": 6,\\n    \\\"transactionProcessedWithL3dSupportedAcquirer\\\": true,\\n    \\\"level3DataItems\\\": [{\\n      \\\"lineItemTotal\\\": 10,\\n      \\\"commodityCode\\\": \\\"123\\\",\\n      \\\"description\\\": \\\"test_desc\\\",\\n      \\\"discountAmount\\\": 0,\\n      \\\"discountIndicator\\\": \\\"Y\\\",\\n      \\\"grossNetIndicator\\\": \\\"Y\\\",\\n      \\\"productCode\\\": \\\"test_code\\\",\\n      \\\"itemQuantity\\\": 1,\\n      \\\"taxAmount\\\": 0.6,\\n      \\\"taxRate\\\": 6,\\n      \\\"taxType\\\": \\\"test\\\",\\n      \\\"unitCost\\\": 10,\\n      \\\"unitOfMeasure\\\": \\\"lb\\\"\\n    }]\\n  },\\n  \\\"processingInfo\\\": {\\n    \\\"processingStatus\\\": \\\"success\\\",\\n    \\\"cvvResponseCode\\\": \\\"NR\\\",\\n    \\\"avsResponseCodeZip\\\": \\\"U\\\",\\n    \\\"avsResponseCodeAddress\\\": \\\"U\\\",\\n    \\\"avsResponseCodeName\\\": \\\"U\\\"\\n  },\\n  \\\"fraudResultInfo\\\": {\\n    \\\"deviceDataCollector\\\": \\\"N\\\"\\n  }\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Response\"\n    }\n  ]\n}\n[/block]\n## Test Cards\nThe following cards are used for testing of Level 2/3 Data:\n* **Visa:** 4111111111111111&nbsp;&nbsp;&nbsp;&nbsp;**Exp:** 02/2023  \n* **MasterCard:** 5199701234567892&nbsp;&nbsp;&nbsp;&nbsp;**Exp:** 02/2023 \n* **Amex (L2 w/ TAA fields):** 340000000000009&nbsp;&nbsp;&nbsp;&nbsp;**Exp:** 05/2023","excerpt":"","slug":"level-23-data","type":"basic","title":"Level 2/3 Data"}

Card processing can be categorized into different levels, with each level defined by how much data is required to process the transaction. Enhanced data levels, such as Level 2 and Level 3, require extra information to process the transaction and are most useful for corporations and government agencies that require this type of transaction detail to accurately monitor and track expenses. BlueSnap's Payment API supports Level 2/3 data processing for all currencies, allowing you to expand your business-to-business (B2B) and business-to-government (B2G) sales opportunities.

This guide covers the following topics:

Before you begin:

Level 2/3 Data is supported for select configurations. Contact Merchant Support for more details.

Data levels

Card brand
Supports

MasterCard            

Level 2
Level 3

Visa

Level 2
Level 3

Amex

Level 2
Level 2 with TAA (Transaction Advice Addendum)
This is an Amex-specific level that contains item data (such as item description and quantity) in addition to Level 2 fields.

Required properties per data level

The following table outlines the required properties for each data level.
For details regarding the specifics of a property, refer to:

Property (JSON XML) Level 2 Amex Level 2
with TAA*
Level 3
Key:    = Required    = Optional   N/A = Not applicable
customerReferenceNumber
customer‑reference‑number
salesTaxAmount
sales‑tax‑amount
freightAmount
freight‑amount
N/A N/A
dutyAmount
duty‑amount
N/A N/A
destinationZipCode
destination‑zip‑code
N/A
destinationCountryCode
destination‑country‑code
N/A N/A
shipFromZipCode
ship‑from‑zip‑code
N/A N/A
discountAmount
discount‑amount
N/A N/A
taxAmount
tax‑amount
N/A N/A
taxRate
tax‑rate
N/A N/A
level3DataItem
level‑3‑data‑item

Container for the data item properties shown below.
N/A

The following are the required data item properties for each data level. For details regarding the specifics of a property, refer to  level3DataItems (JSON)  or  level‑3‑data‑item (XML)
Note: You may pass the following properties for each item.

lineItemTotal
line‑item‑total
N/A
commodityCode
commodity‑code
N/A N/A
Important
For Visa, the commodity code must be numeric and cannot be all zeros or the transaction will fail.
description
description
N/A
discountAmount
discount‑amount
N/A N/A
discountIndicator
discount‑indicator
N/A N/A
grossNetIndicator
gross‑net‑indicator
N/A N/A
productCode
product‑code
N/A N/A
itemQuantity
item‑quantity
N/A
taxAmount
tax‑amount
N/A N/A
taxRate
tax‑rate
N/A N/A
taxType
tax‑type
N/A N/A
unitCost
unit‑cost
N/A N/A
unitOfMeasure
unit‑of‑measure
N/A N/A

* Refer to the Data Levels section for details.

Notes

  • If you don't know the card type, pass as many level3Data properties as you can.
    • If you pass a property that exceeds the maximum length, BlueSnap truncates the value to meet requirements.
    • If BlueSnap detects the card doesn't support Level 2/3 Data, the level3Data properties are not sent to the issuer.
  • If you manage your own subscriptions, you must send level3Data for each charge.

Important

Do not include the pipe character | in a Level 2 or Level 3 data field. Including the character causes fields to be parsed incorrectly.

Sending Level 3 data (JSON) example

Sample Auth Capture request and response

{
  "cardTransactionType": "AUTH_CAPTURE",
  "softDescriptor": "DescTest",
  "amount": 10.60,
  "currency": "USD",
  "cardHolderInfo": {
    "firstName": "test first name",
    "lastName": "test last name",
    "zip": "123456"
  },
  "creditCard": {
    "cardNumber": "4005 5192 0000 0004",
    "securityCode": "111",
    "expirationMonth": "09",
    "expirationYear": 2019
  },
  "level3Data": {
    "customerReferenceNumber": "1234A",
    "salesTaxAmount": 0.6,
    "freightAmount": 0,
    "dutyAmount": 0,
    "destinationZipCode": "12345",
    "destinationCountryCode": "us",
    "shipFromZipCode": "12345",
    "discountAmount": 0,
    "taxAmount": 0.6,
    "taxRate": 6.0,
    "level3DataItems": [{
      "lineItemTotal": 10.00,
      "description": "test_desc",
      "discountAmount": 0,
      "productCode": "test_code",
      "itemQuantity": 1.0,
      "taxAmount": 0.60,
      "taxRate": 6.0,
      "unitOfMeasure": "lb",
      "commodityCode": "123",
      "discountIndicator": "Y",
      "grossNetIndicator": "Y",
      "taxType": "test",
      "unitCost": 10.00
    }]
  }
}
{
  "cardTransactionType": "AUTH_CAPTURE",
  "vendorsInfo": {},
  "transactionId": "1015836179",
  "recurringTransaction": "ECOMMERCE",
  "softDescriptor": "BLS*DescTest",
  "amount": 10.60,
  "currency": "USD",
  "avsResponseCode": "G",
  "cardHolderInfo": {
    "firstName": "test first name",
    "lastName": "test last name",
    "zip": "123456"
  },
  "vaultedShopperId": 22391925,
  "creditCard": {
    "cardLastFourDigits": "0004",
    "cardType": "VISA",
    "cardSubType": "CREDIT",
    "cardCategory": "CORPORATE T&E"
  },
  "level3Data": {
    "customerReferenceNumber": "1234A",
    "salesTaxAmount": 0.6,
    "freightAmount": 0,
    "dutyAmount": 0,
    "destinationZipCode": "12345",
    "destinationCountryCode": "us",
    "shipFromZipCode": "12345",
    "discountAmount": 0,
    "taxAmount": 0.6,
    "taxRate": 6,
    "transactionProcessedWithL3dSupportedAcquirer": true,
    "level3DataItems": [{
      "lineItemTotal": 10,
      "commodityCode": "123",
      "description": "test_desc",
      "discountAmount": 0,
      "discountIndicator": "Y",
      "grossNetIndicator": "Y",
      "productCode": "test_code",
      "itemQuantity": 1,
      "taxAmount": 0.6,
      "taxRate": 6,
      "taxType": "test",
      "unitCost": 10,
      "unitOfMeasure": "lb"
    }]
  },
  "processingInfo": {
    "processingStatus": "success",
    "cvvResponseCode": "NR",
    "avsResponseCodeZip": "U",
    "avsResponseCodeAddress": "U",
    "avsResponseCodeName": "U"
  },
  "fraudResultInfo": {
    "deviceDataCollector": "N"
  }
}

Test Cards

The following cards are used for testing of Level 2/3 Data:

  • Visa: 4111111111111111    Exp: 02/2023
  • MasterCard: 5199701234567892    Exp: 02/2023
  • Amex (L2 w/ TAA fields): 340000000000009    Exp: 05/2023