diff --git a/PostmanCollections/VTEX - Marketplace APIs - Suggestions.json b/PostmanCollections/VTEX - Marketplace APIs - Suggestions.json index ea76af7a2..2c5479840 100644 --- a/PostmanCollections/VTEX - Marketplace APIs - Suggestions.json +++ b/PostmanCollections/VTEX - Marketplace APIs - Suggestions.json @@ -1,111 +1,101 @@ { "_": { - "postman_id": "437b69f6-ecd1-4e01-99ff-0d65b27a0aa4" + "postman_id": "2ad7a3e9-aca7-4156-b921-7edf011d0b7b" }, "item": [ { - "id": "c962f1eb-da4e-4b54-ada4-5c0cd0e6cf8b", - "name": "Get Suggestions", + "id": "dc0d8363-93bf-4b5e-a2e4-075ff462e240", + "name": "Get suggestions", "description": { "content": "Search and filter all suggestions using specific criteria.", "type": "text/plain" }, + "item": [], + "event": [] + }, + { + "id": "0dd098b4-4d25-419f-8de7-5799b4117672", + "name": "Manage suggestions", + "description": { + "content": "Send or delete SKU suggestions from the seller to marketplace.", + "type": "text/plain" + }, + "item": [], + "event": [] + }, + { + "id": "e40f481f-ddfb-45e2-878a-4955077b2fad", + "name": "Get versions", + "description": { + "content": "Search and filter all versions of suggestions, using specific criteria.", + "type": "text/plain" + }, + "item": [], + "event": [] + }, + { + "id": "01bbb8a9-d124-46e5-bd71-05d620dbd125", + "name": "SKU approval settings", + "description": { + "content": "", + "type": "text/plain" + }, + "item": [], + "event": [] + }, + { + "id": "c45126c8-e564-4006-adbe-b8d182c33051", + "name": "Match received SKUs", + "description": { + "content": "Match SKU suggestions received in the marketplace.", + "type": "text/plain" + }, + "item": [], + "event": [] + }, + { + "id": "3bcc2153-485c-4602-919b-872522bb9e84", + "name": "SKU Approval Settings", + "description": { + "content": "", + "type": "text/plain" + }, "item": [ { - "id": "3224e6d6-4b51-46cd-bc25-2b70585f8e9b", - "name": "Get all SKU suggestions", + "id": "a384d307-f1f4-468b-b3b4-444384918e48", + "name": "Get autoApprove status in account settings", "request": { - "name": "Get all SKU suggestions", + "name": "Get autoApprove status in account settings", "description": { - "content": "This endpoint retrieves a list of all SKUs sent by the seller for the Marketplace's approval. Marketplace operators should use this endpoint whenever they want to check the full list of received SKUs and their information. \n\nNote that all the information sent by the seller will be in the [content] object. All remaining information in this endpoint's response is given by the Matcher. \n\nMatcher rates received SKUs by correlating the data sent by sellers, to existing fields in the marketplace. The calculation of these scores determines whether the product has been: \n\n`Approved`: score equal to or greater than 80 points. \n\n`Pending`: from 31 to 79 points.\n\n`Denied`: from 0 to 30 points. \n\nNote that if the autoApprove setting is enabled, the SKUs will be approved, regardless of the Score.", + "content": "This endpoint can be used to check whether the autoapprove setting is active or not, for a specific seller. \n\nIf the response is `true`, the autoapprove setting is active. If the response is `false`, it is inactive.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/authentication-overview#application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| ---------- | ------------ | ------------ |\r\n| Channels | UI resources | **Save suggestion rules** |\r\n| Suggestion| Suggestion resources | **Main access** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication-overview#machine-authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https://help.vtex.com/en/tutorial/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", "type": "text/plain" }, "url": { "path": [ - "suggestions" + "suggestions", + "configuration", + "autoapproval", + "toggle" ], "host": [ "{{baseUrl}}" ], "query": [ { - "disabled": true, - "description": { - "content": "This field allows you to customize your search. You can fill in this query param if you want to narrow down your search using the available filters on Received SKU modules.", - "type": "text/plain" - }, - "key": "q", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "This field allows users to filter SKU suggestions, by searching only the new suggestions that were just sent, and suggestions that have already been sent, but were updated. Possible values for this field include `new` and `update`.", - "type": "text/plain" - }, - "key": "type", - "value": "new" - }, - { - "disabled": true, - "description": { - "content": "A string that identifies the seller in the marketplace. This ID must be created by the marketplace and informed to the seller so it can call this endpoint.", - "type": "text/plain" - }, - "key": "seller", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "Narrow down you search, filtering by status. Values allowed on this field include: `accepted`, `pending` and `denied.`", - "type": "text/plain" - }, - "key": "status", - "value": "accepted" - }, - { - "disabled": true, - "description": { - "content": "This field allows you to filter SKUs that have mapping or not. Insert `true` to filter SKUs that have mapping, or `false` to retrieve SKUs that aren't mapped.", - "type": "text/plain" - }, - "key": "hasmapping", - "value": "true" - }, - { - "disabled": true, - "description": { - "content": "Identifies the matching entity. It can be either VTEX's matcher, or an external matcher developed by partners, for example. The `matcherId`'s value can be obtained through the [Get SKU Suggestion by ID](https://developers.vtex.com/vtex-rest-api/reference/getsuggestion) endpoint.", - "type": "text/plain" - }, - "key": "matcherid", - "value": "vtex-matcher" - }, - { - "disabled": true, - "description": { - "content": "Define your pagination range, by adding the pagination starting value. Values should be bigger than 0, with a maximum of 50 records per page.", - "type": "text/plain" - }, - "key": "_from", - "value": "1" - }, - { - "disabled": true, + "disabled": false, "description": { - "content": "Define your pagination range, by adding the pagination ending value. Values should be bigger than 0, with a maximum of 50 records per page.", + "content": "(Required) A string that identifies the seller in the marketplace. This ID must be created by the marketplace.", "type": "text/plain" }, - "key": "_to", - "value": "50" + "key": "sellerId", + "value": "seller123" } ], "variable": [ { "disabled": false, "description": { - "content": "(Required) Name of the VTEX account. Used as part of the URL", + "content": "(Required) Name of the VTEX account that belongs to the marketplace. All data extracted, and changes added will be posted into this account.", "type": "text/plain" }, "type": "any", @@ -127,11 +117,15 @@ { "disabled": false, "description": { - "content": "(Required) Type of the content being sent.", + "content": "(Required) Describes the type of the content being sent.", "type": "text/plain" }, "key": "Content-Type", "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" } ], "method": "GET", @@ -140,90 +134,30 @@ "response": [ { "_": { - "postman_previewlanguage": "text" + "postman_previewlanguage": "json" }, - "id": "67728ac0-dfd4-4e6c-bec5-da4581345e7a", + "id": "f5892de0-30d6-48b6-9c68-c3cf56724deb", "name": "OK", "originalRequest": { "url": { "path": [ - "suggestions" + "suggestions", + "configuration", + "autoapproval", + "toggle" ], "host": [ "{{baseUrl}}" ], "query": [ { - "disabled": true, - "description": { - "content": "This field allows you to customize your search. You can fill in this query param if you want to narrow down your search using the available filters on Received SKU modules.", - "type": "text/plain" - }, - "key": "q", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "This field allows users to filter SKU suggestions, by searching only the new suggestions that were just sent, and suggestions that have already been sent, but were updated. Possible values for this field include `new` and `update`.", - "type": "text/plain" - }, - "key": "type", - "value": "new" - }, - { - "disabled": true, - "description": { - "content": "A string that identifies the seller in the marketplace. This ID must be created by the marketplace and informed to the seller so it can call this endpoint.", - "type": "text/plain" - }, - "key": "seller", - "value": "" - }, - { - "disabled": true, - "description": { - "content": "Narrow down you search, filtering by status. Values allowed on this field include: `accepted`, `pending` and `denied.`", - "type": "text/plain" - }, - "key": "status", - "value": "accepted" - }, - { - "disabled": true, - "description": { - "content": "This field allows you to filter SKUs that have mapping or not. Insert `true` to filter SKUs that have mapping, or `false` to retrieve SKUs that aren't mapped.", - "type": "text/plain" - }, - "key": "hasmapping", - "value": "true" - }, - { - "disabled": true, - "description": { - "content": "Identifies the matching entity. It can be either VTEX's matcher, or an external matcher developed by partners, for example. The `matcherId`'s value can be obtained through the [Get SKU Suggestion by ID](https://developers.vtex.com/vtex-rest-api/reference/getsuggestion) endpoint.", - "type": "text/plain" - }, - "key": "matcherid", - "value": "vtex-matcher" - }, - { - "disabled": true, - "description": { - "content": "Define your pagination range, by adding the pagination starting value. Values should be bigger than 0, with a maximum of 50 records per page.", - "type": "text/plain" - }, - "key": "_from", - "value": "1" - }, - { - "disabled": true, + "disabled": false, "description": { - "content": "Define your pagination range, by adding the pagination ending value. Values should be bigger than 0, with a maximum of 50 records per page.", + "content": "(Required) A string that identifies the seller in the marketplace. This ID must be created by the marketplace.", "type": "text/plain" }, - "key": "_to", - "value": "50" + "key": "sellerId", + "value": "seller123" } ], "variable": [] @@ -241,11 +175,15 @@ { "disabled": false, "description": { - "content": "(Required) Type of the content being sent.", + "content": "(Required) Describes the type of the content being sent.", "type": "text/plain" }, "key": "Content-Type", "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" } ], "method": "GET", @@ -253,7 +191,13 @@ }, "status": "OK", "code": 200, - "header": [], + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"Enabled\": false\n}", "cookie": [] } ], @@ -261,10 +205,13 @@ { "listen": "test", "script": { - "id": "e2fead38-9923-4469-91dc-fb0af3129228", + "id": "21c7df3e-4bc1-4c07-89f5-f6097d6fc989", "type": "text/javascript", "exec": [ - "// Validate status 2xx \npm.test(\"[GET]::/suggestions - Status code is 2xx\", function () {\n pm.response.to.be.success;\n});\n" + "// Validate status 2xx \npm.test(\"[GET]::/suggestions/configuration/autoapproval/toggle - Status code is 2xx\", function () {\n pm.response.to.be.success;\n});\n", + "// Validate if response header has matching content-type\npm.test(\"[GET]::/suggestions/configuration/autoapproval/toggle - Content-Type is application/json\", function () {\n pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(\"application/json\");\n});\n", + "// Validate if response has JSON Body \npm.test(\"[GET]::/suggestions/configuration/autoapproval/toggle - Response has JSON Body\", function () {\n pm.response.to.have.jsonBody();\n});\n", + "// Response Validation\nconst schema = {\"type\":\"object\",\"properties\":{\"Enabled\":{\"type\":\"boolean\",\"description\":\"If the autoapprove setting is active for a given seller (`true`) or not (`false`).\"}}}\n\n// Validate if response matches JSON schema \npm.test(\"[GET]::/suggestions/configuration/autoapproval/toggle - Schema is valid\", function() {\n pm.response.to.have.jsonSchema(schema,{unknownFormats: [\"int32\", \"int64\", \"float\", \"double\"]});\n});\n" ] } } @@ -274,19 +221,20 @@ } }, { - "id": "04f9efd0-3d39-4daf-b5bc-c8ff5a517561", - "name": "Get SKU Suggestion by ID", + "id": "2dfe1d04-2c62-4ac4-b758-dac5c7671353", + "name": "Activate autoApprove in marketplace's account", "request": { - "name": "Get SKU Suggestion by ID", + "name": "Activate autoApprove in marketplace's account", "description": { - "content": "This endpoint retrieves the data of a specific SKU sent by the seller, to the marketplace. Marketplaces or external matchers can call this endpoint when they want to check the information about a single SKU. \n\nNote that all the information sent by the seller will be in the [content] object. All remaining information in this endpoint's response is given by the Matcher. \n\nMatcher rates received SKUs by correlating the data sent by sellers, to existing fields in the marketplace. The calculation of these scores determines whether the product has been: \n\n`Approved`: score equal to or greater than 80 points. \n\n`Pending`: from 31 to 79 points.\n\n`Denied`: from 0 to 30 points. \n\nNote that if the autoApprove setting is enabled, the SKUs will be approved, regardless of the Score.", + "content": "This endpoint enables the autoapprove rule to a marketplace's whole Received SKUs module. Once enabling the rule, received SKUs will be automatically approved on your store, regardless of the seller. \n\n For the autoapprove rule to work as expected, the approval [Matcher score](https://help.vtex.com/en/tutorial/entendendo-a-pontuacao-do-vtex-matcher--tutorials_424) should be set up as 80 (default value), but you can configure a different number through the field `Score` in [Save Account's Approval Settings](https://developers.vtex.com/vtex-rest-api/reference/saveaccountconfig).\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/authentication-overview#application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| ---------- | ------------ | ------------ |\r\n| Channels | UI resources | **Save suggestion rules** |\r\n| Suggestion| Suggestion resources | **Main access** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication-overview#machine-authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https://help.vtex.com/en/tutorial/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", "type": "text/plain" }, "url": { "path": [ "suggestions", - ":sellerId", - ":sellerSkuId" + "configuration", + "autoapproval", + "toggle" ], "host": [ "{{baseUrl}}" @@ -296,27 +244,7 @@ { "disabled": false, "description": { - "content": "(Required) A string that identifies the seller in the marketplace. This ID must be created by the marketplace and informed to the seller before the integration is built.", - "type": "text/plain" - }, - "type": "any", - "value": "seller123", - "key": "sellerId" - }, - { - "disabled": false, - "description": { - "content": "(Required) A string that identifies the SKU in the marketplace. This is the ID that the marketplace will use for future references to this SKU, such as price and inventory notifications.", - "type": "text/plain" - }, - "type": "any", - "value": "1234", - "key": "sellerSkuId" - }, - { - "disabled": false, - "description": { - "content": "(Required) Name of the VTEX account. Used as part of the URL", + "content": "(Required) Name of the VTEX account that belongs to the marketplace. All data extracted, and changes added will be posted into this account.", "type": "text/plain" }, "type": "any", @@ -343,24 +271,42 @@ }, "key": "Content-Type", "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" } ], - "method": "GET", - "body": {} + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\n \"Enabled\": true\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } }, "response": [ { "_": { - "postman_previewlanguage": "text" + "postman_previewlanguage": "json" }, - "id": "5bc8b12f-6e2e-4c66-8f20-820abb4329e6", + "id": "188dd87e-07a0-4bad-b196-55e6226741e9", "name": "OK", "originalRequest": { "url": { "path": [ "suggestions", - ":sellerId", - ":sellerSkuId" + "configuration", + "autoapproval", + "toggle" ], "host": [ "{{baseUrl}}" @@ -386,14 +332,37 @@ }, "key": "Content-Type", "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" } ], - "method": "GET", - "body": {} + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\n \"Enabled\": true\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } }, "status": "OK", "code": 200, - "header": [], + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"Enabled\": false\n}", "cookie": [] } ], @@ -401,10 +370,13 @@ { "listen": "test", "script": { - "id": "15aae690-1cd7-46be-a378-c113bf7f226c", + "id": "d248b38d-a14c-4c14-995e-8b133e3f4078", "type": "text/javascript", "exec": [ - "// Validate status 2xx \npm.test(\"[GET]::/suggestions/:sellerId/:sellerSkuId - Status code is 2xx\", function () {\n pm.response.to.be.success;\n});\n" + "// Validate status 2xx \npm.test(\"[PUT]::/suggestions/configuration/autoapproval/toggle - Status code is 2xx\", function () {\n pm.response.to.be.success;\n});\n", + "// Validate if response header has matching content-type\npm.test(\"[PUT]::/suggestions/configuration/autoapproval/toggle - Content-Type is application/json\", function () {\n pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(\"application/json\");\n});\n", + "// Validate if response has JSON Body \npm.test(\"[PUT]::/suggestions/configuration/autoapproval/toggle - Response has JSON Body\", function () {\n pm.response.to.have.jsonBody();\n});\n", + "// Response Validation\nconst schema = {\"type\":\"object\",\"properties\":{\"Enabled\":{\"type\":\"boolean\",\"description\":\"If the autoapprove setting is active (`true`) or not (`false`).\"}}}\n\n// Validate if response matches JSON schema \npm.test(\"[PUT]::/suggestions/configuration/autoapproval/toggle - Schema is valid\", function() {\n pm.response.to.have.jsonSchema(schema,{unknownFormats: [\"int32\", \"int64\", \"float\", \"double\"]});\n});\n" ] } } @@ -412,32 +384,20 @@ "protocolProfileBehavior": { "disableBodyPruning": true } - } - ], - "event": [] - }, - { - "id": "7415705d-b826-40f3-87f6-f12786a37cc8", - "name": "Manage Suggestions", - "description": { - "content": "Send or delete SKU suggestions from the seller to marketplace.", - "type": "text/plain" - }, - "item": [ + }, { - "id": "b7fd65e5-a2cd-4f0b-920a-28ec1a6648d5", - "name": "Send SKU Suggestion", + "id": "8fb827dd-33ba-4360-91fb-d460aeefaf41", + "name": "Get account's approval settings", "request": { - "name": "Send SKU Suggestion", + "name": "Get account's approval settings", "description": { - "content": "This request is used by the seller when it wants to suggest that one of their SKUs is sold in the marketplace.\n\nBefore using this request, the seller should always use the [Change Notification](https://developers.vtex.com/vtex-rest-api/reference/catalog-api-get-seller-sku-notification) request in order to check if the SKU already exists in the marketplace. If it doesn't, then this is the next call in the SKU integration flow.\n\nIn the Send Suggestion request, the seller must send information about the SKU, such as the product and SKU name, the seller ID, and the image URL. All parameters are explained below. ", + "content": "This endpoint retrieves the current approval settings of a marketplace's Received SKUs module. Its response includes: \n\n- `Score`: Matcher scores for approving and rejecting SKUs received from sellers. \n\n- `Matchers`: All Matchers configured on the marketplace, and their respective details. \n\n- `SpecificationsMapping`: Mapping of product and SKU specifications, per seller. \n\n- `MatchFlux`: This field determines the type of approval configuration applied to SKUs received from a seller. \n\nThe possible values include: \n\n-`default`, where the Matcher reviews the SKU, and approves it based on its score. \n\n-`manual`, for manual approvals through the Received SKU UI, or Match API. \n\n-`autoApprove`, for every SKU received from a given seller to be approved automatically, regardless of their Matcher Score.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/authentication-overview#application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| ---------- | ------------ | ------------ |\r\n| Channels | UI resources | **Save suggestion rules** |\r\n| Suggestion| Suggestion resources | **Main access** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication-overview#machine-authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https://help.vtex.com/en/tutorial/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", "type": "text/plain" }, "url": { "path": [ "suggestions", - ":sellerId", - ":sellerSkuId" + "configuration" ], "host": [ "{{baseUrl}}" @@ -447,27 +407,7 @@ { "disabled": false, "description": { - "content": "(Required) A string that identifies the seller in the marketplace. This ID must be created by the marketplace and informed to the seller before the integration is built.", - "type": "text/plain" - }, - "type": "any", - "value": "seller123", - "key": "sellerId" - }, - { - "disabled": false, - "description": { - "content": "(Required) A string that identifies the SKU in the seller. This is the ID that the marketplace will use for future references to this SKU, such as price and inventory notifications.", - "type": "text/plain" - }, - "type": "any", - "value": "1234", - "key": "sellerSkuId" - }, - { - "disabled": false, - "description": { - "content": "(Required) Name of the VTEX account to which the seller wants to suggest a new SKU. It is used as part of the request URL.", + "content": "(Required) Name of the VTEX account that belongs to the marketplace. All data extracted, and changes added will be posted into this account.", "type": "text/plain" }, "type": "any", @@ -480,7 +420,7 @@ { "disabled": false, "description": { - "content": "(Required) HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.", + "content": "(Required) HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand.", "type": "text/plain" }, "key": "Accept", @@ -496,35 +436,25 @@ "value": "application/json" }, { - "key": "Content-Type", + "key": "Accept", "value": "application/json" } ], - "method": "PUT", - "body": { - "mode": "raw", - "raw": "{\n \"ProductId\": \"321\",\n \"ProductName\": \"Product sample\",\n \"NameComplete\": \"Complete product name\",\n \"ProductDescription\": \"sample\",\n \"BrandName\": \"Brand 1\",\n \"SkuName\": \"Sku sample\",\n \"SellerId\": \"string\",\n \"Height\": 1,\n \"Width\": 1,\n \"Length\": 1,\n \"Weight\": 1,\n \"Updated\": null,\n \"RefId\": \"REFID123\",\n \"SellerStockKeepingUnitId\": 567,\n \"CategoryFullPath\": \"Category 1\",\n \"Images\": [\n {\n \"imageName\": \"Principal\",\n \"imageUrl\": \"https://i.pinimg.com/originals/2d/96/4a/2d964a6bf37d9224d0615dc85fccdd62.jpg\"\n }\n ],\n \"ProductSpecifications\": [\n {\n \"fieldName\": \"Fabric\",\n \"fieldValues\": [\n \"Cotton\",\n \"Velvet\"\n ]\n }\n ],\n \"SkuSpecifications\": [\n {\n \"fieldName\": \"Color\",\n \"fieldValues\": [\n \"Red\",\n \"Blue\"\n ]\n }\n ],\n \"EAN\": \"EAN123\",\n \"MeasurementUnit\": \"un\",\n \"UnitMultiplier\": 1,\n \"AvailableQuantity\": 111,\n \"Pricing\": {\n \"Currency\": \"BRL\",\n \"SalePrice\": 399,\n \"CurrencySymbol\": \"R$\"\n }\n}", - "options": { - "raw": { - "headerFamily": "json", - "language": "json" - } - } - } + "method": "GET", + "body": {} }, "response": [ { "_": { - "postman_previewlanguage": "text" + "postman_previewlanguage": "json" }, - "id": "69d2263b-1f5b-4661-addb-fb6c474d3820", + "id": "2c223c1e-dc3a-4746-ac3a-b09220bcea66", "name": "OK", "originalRequest": { "url": { "path": [ "suggestions", - ":sellerId", - ":sellerSkuId" + "configuration" ], "host": [ "{{baseUrl}}" @@ -536,7 +466,7 @@ { "disabled": false, "description": { - "content": "(Required) HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.", + "content": "(Required) HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand.", "type": "text/plain" }, "key": "Accept", @@ -552,25 +482,22 @@ "value": "application/json" }, { - "key": "Content-Type", + "key": "Accept", "value": "application/json" } ], - "method": "PUT", - "body": { - "mode": "raw", - "raw": "{\n \"ProductId\": \"321\",\n \"ProductName\": \"Product sample\",\n \"NameComplete\": \"Complete product name\",\n \"ProductDescription\": \"sample\",\n \"BrandName\": \"Brand 1\",\n \"SkuName\": \"Sku sample\",\n \"SellerId\": \"string\",\n \"Height\": 1,\n \"Width\": 1,\n \"Length\": 1,\n \"Weight\": 1,\n \"Updated\": null,\n \"RefId\": \"REFID123\",\n \"SellerStockKeepingUnitId\": 567,\n \"CategoryFullPath\": \"Category 1\",\n \"Images\": [\n {\n \"imageName\": \"Principal\",\n \"imageUrl\": \"https://i.pinimg.com/originals/2d/96/4a/2d964a6bf37d9224d0615dc85fccdd62.jpg\"\n }\n ],\n \"ProductSpecifications\": [\n {\n \"fieldName\": \"Fabric\",\n \"fieldValues\": [\n \"Cotton\",\n \"Velvet\"\n ]\n }\n ],\n \"SkuSpecifications\": [\n {\n \"fieldName\": \"Color\",\n \"fieldValues\": [\n \"Red\",\n \"Blue\"\n ]\n }\n ],\n \"EAN\": \"EAN123\",\n \"MeasurementUnit\": \"un\",\n \"UnitMultiplier\": 1,\n \"AvailableQuantity\": 111,\n \"Pricing\": {\n \"Currency\": \"BRL\",\n \"SalePrice\": 399,\n \"CurrencySymbol\": \"R$\"\n }\n}", - "options": { - "raw": { - "headerFamily": "json", - "language": "json" - } - } - } + "method": "GET", + "body": {} }, "status": "OK", "code": 200, - "header": [], + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"Score\": {\n \"Approve\": 80,\n \"Reject\": 30\n },\n \"Matchers\": [\n {\n \"MatcherId\": \"vtex-matcher\",\n \"hook-base-address\": \"http://portal.vtexinternal.com/api/ssm/hooks\",\n \"IsActive\": true,\n \"UpdatesNotificationEndpoint\": \"https://example.com/updates/notifications\",\n \"Description\": \"This matcher is configured to handle specific product categories and has been optimized for high accuracy.\"\n }\n ],\n \"Rules\": {\n \"Item\": [],\n \"Product\": []\n },\n \"SpecificationsMapping\": [],\n \"MatchFlux\": \"Default\"\n}", "cookie": [] } ], @@ -578,10 +505,13 @@ { "listen": "test", "script": { - "id": "1aefcc1c-91ea-4599-a419-48e7a4539900", + "id": "236ffef5-9b03-46fa-abf0-e33cace18914", "type": "text/javascript", "exec": [ - "// Validate status 2xx \npm.test(\"[PUT]::/suggestions/:sellerId/:sellerSkuId - Status code is 2xx\", function () {\n pm.response.to.be.success;\n});\n" + "// Validate status 2xx \npm.test(\"[GET]::/suggestions/configuration - Status code is 2xx\", function () {\n pm.response.to.be.success;\n});\n", + "// Validate if response header has matching content-type\npm.test(\"[GET]::/suggestions/configuration - Content-Type is application/json\", function () {\n pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(\"application/json\");\n});\n", + "// Validate if response has JSON Body \npm.test(\"[GET]::/suggestions/configuration - Response has JSON Body\", function () {\n pm.response.to.have.jsonBody();\n});\n", + "// Response Validation\nconst schema = {\"type\":\"object\",\"properties\":{\"Score\":{\"type\":\"object\",\"description\":\"Matcher scores for approving and rejecting SKUs received from sellers.\"},\"Matchers\":{\"type\":\"array\",\"description\":\"All Matchers configured on the marketplace, and their respective details.\",\"items\":{\"type\":\"object\",\"description\":\"Details of a single matcher configured in the marketplace.\",\"properties\":{\"MatcherId\":{\"type\":\"string\",\"description\":\"Identifies the matching entity, either VTEX's matcher or an external matcher.\"},\"hook-base-address\":{\"type\":\"string\",\"description\":\"The base address for the Matcher's API endpoint.\"},\"IsActive\":{\"type\":\"boolean\",\"description\":\"Indicates whether the matcher is active (`true`) or inactive (`false`).\"},\"UpdatesNotificationEndpoint\":{\"type\":\"string\",\"description\":\"Endpoint for receiving notifications about updates from the matcher.\"},\"Description\":{\"type\":\"string\",\"description\":\"Description or notes about the matcher.\"}}}},\"Rules\":{\"type\":\"object\",\"description\":\"Items and products.\"},\"SpecificationsMapping\":{\"type\":\"array\",\"description\":\"Mapping of product and SKU specifications between the marketplace and the seller.\",\"items\":{\"type\":\"object\",\"description\":\"Mapping details for a single specification.\",\"properties\":{\"fieldName\":{\"type\":\"string\",\"description\":\"Name of the specification field in the seller's catalog.\"},\"marketplaceField\":{\"type\":\"string\",\"description\":\"Corresponding name of the specification field in the marketplace's catalog.\"}}}},\"MatchFlux\":{\"type\":\"string\",\"description\":\"This field determines the type of approval configuration applied to SKUs received from a seller.\"}}}\n\n// Validate if response matches JSON schema \npm.test(\"[GET]::/suggestions/configuration - Schema is valid\", function() {\n pm.response.to.have.jsonSchema(schema,{unknownFormats: [\"int32\", \"int64\", \"float\", \"double\"]});\n});\n" ] } } @@ -591,19 +521,18 @@ } }, { - "id": "f6fbcd21-2d78-45e5-89c4-a59ad9446378", - "name": "Delete SKU Suggestion", + "id": "923cc370-c3d4-4d66-ae16-d6a5ad3bf1ac", + "name": "Save account's approval settings", "request": { - "name": "Delete SKU Suggestion", + "name": "Save account's approval settings", "description": { - "content": "This endpoint deletes a chosen SKU suggestion. Only one SKU should be deleted per request. This request cannot be undone. A workaround to revert its action, is to send the suggestion again, through the Send Suggestion API.", + "content": "Marketplaces use this endpoint to create or update approval settings on their Received SKUs module. \n\nThe request includes all the details necessary to implement the chosen approval settings.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/authentication-overview#application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| ---------- | ------------ | ------------ |\r\n| Channels | UI resources | **Save suggestion rules** |\r\n| Suggestion| Suggestion resources | **Main access** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication-overview#machine-authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https://help.vtex.com/en/tutorial/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", "type": "text/plain" }, "url": { "path": [ "suggestions", - ":sellerId", - ":sellerSkuId" + "configuration" ], "host": [ "{{baseUrl}}" @@ -613,27 +542,7 @@ { "disabled": false, "description": { - "content": "(Required) A string that identifies the seller in the marketplace. This ID must be created by the marketplace and informed to the seller before the integration is built.", - "type": "text/plain" - }, - "type": "any", - "value": "seller123", - "key": "sellerId" - }, - { - "disabled": false, - "description": { - "content": "(Required) A string that identifies the SKU in the marketplace. This is the ID that the marketplace will use for future references to this SKU, such as price and inventory notifications.", - "type": "text/plain" - }, - "type": "any", - "value": "1234", - "key": "sellerSkuId" - }, - { - "disabled": false, - "description": { - "content": "(Required) Name of the VTEX account. Used as part of the URL.", + "content": "(Required) Name of the VTEX account that belongs to the marketplace. All data extracted, and changes added will be posted into this account.", "type": "text/plain" }, "type": "any", @@ -660,24 +569,40 @@ }, "key": "Content-Type", "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" } ], - "method": "DELETE", - "body": {} + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\n \"Score\": {\n \"Approve\": 80,\n \"Reject\": 30\n },\n \"Matchers\": [\n {\n \"MatcherId\": \"vtex-matcher\",\n \"hook-base-address\": \"http://simple-suggestion-matcher.vtex.com.br\",\n \"IsActive\": true,\n \"UpdatesNotificationEndpoint\": null,\n \"Description\": null\n }\n ],\n \"SpecificationsMapping\": [\n \"color=red\",\n \"size=L\"\n ],\n \"MatchFlux\": \"autoApprove\"\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } }, "response": [ { "_": { - "postman_previewlanguage": "text" + "postman_previewlanguage": "json" }, - "id": "0e9735d6-3b24-4417-bcd3-4b2435dd79f9", + "id": "1e1c6aee-29c6-47f1-8577-ca00114dd943", "name": "OK", "originalRequest": { "url": { "path": [ "suggestions", - ":sellerId", - ":sellerSkuId" + "configuration" ], "host": [ "{{baseUrl}}" @@ -703,14 +628,37 @@ }, "key": "Content-Type", "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" } ], - "method": "DELETE", - "body": {} + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\n \"Score\": {\n \"Approve\": 80,\n \"Reject\": 30\n },\n \"Matchers\": [\n {\n \"MatcherId\": \"vtex-matcher\",\n \"hook-base-address\": \"http://simple-suggestion-matcher.vtex.com.br\",\n \"IsActive\": true,\n \"UpdatesNotificationEndpoint\": null,\n \"Description\": null\n }\n ],\n \"SpecificationsMapping\": [\n \"color=red\",\n \"size=L\"\n ],\n \"MatchFlux\": \"autoApprove\"\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } }, "status": "OK", "code": 200, - "header": [], + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"Score\": {\n \"Approve\": 80,\n \"Reject\": 30\n },\n \"Matchers\": [\n {\n \"MatcherId\": \"vtex-matcher\",\n \"hook-base-address\": \"http://simple-suggestion-matcher.vtex.com.br\",\n \"IsActive\": true,\n \"UpdatesNotificationEndpoint\": \"notification.endpoint\",\n \"Description\": \"Note\"\n }\n ],\n \"Rules\": {\n \"Item\": [\n 1\n ],\n \"Product\": [\n \"Shirt\"\n ]\n },\n \"SpecificationsMapping\": [\n {\n \"SellerId\": \"Store1\",\n \"Mapping\": {\n \"Yellow\": \"Light yellow\"\n }\n }\n ],\n \"MatchFlux\": \"autoApprove\"\n}", "cookie": [] } ], @@ -718,10 +666,13 @@ { "listen": "test", "script": { - "id": "88fc0ce0-8a7e-4572-9723-b20cb4780be4", + "id": "a4007683-a01c-44b3-a838-9bcee8cfb603", "type": "text/javascript", "exec": [ - "// Validate status 2xx \npm.test(\"[DELETE]::/suggestions/:sellerId/:sellerSkuId - Status code is 2xx\", function () {\n pm.response.to.be.success;\n});\n" + "// Validate status 2xx \npm.test(\"[PUT]::/suggestions/configuration - Status code is 2xx\", function () {\n pm.response.to.be.success;\n});\n", + "// Validate if response header has matching content-type\npm.test(\"[PUT]::/suggestions/configuration - Content-Type is application/json\", function () {\n pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(\"application/json\");\n});\n", + "// Validate if response has JSON Body \npm.test(\"[PUT]::/suggestions/configuration - Response has JSON Body\", function () {\n pm.response.to.have.jsonBody();\n});\n", + "// Response Validation\nconst schema = {\"type\":\"object\",\"description\":\"Response object for the Save Accounts Approval Settings endpoint.\",\"properties\":{\"Score\":{\"type\":\"object\",\"description\":\"[Matcher's rates](https://help.vtex.com/en/tutorial/understanding-vtex-matcher-scoring) to approve or reject [received SKUs](https://help.vtex.com/en/tutorial/cataloging-received-skus--tutorials_396) sent by sellers.\",\"properties\":{\"Approve\":{\"type\":\"integer\",\"description\":\"Score to approve SKUs sent by sellers.\"},\"Reject\":{\"type\":\"integer\",\"description\":\"Score to reject SKUs sent by sellers.\"}}},\"Matchers\":{\"type\":\"array\",\"description\":\"[Matchers](https://help.vtex.com/en/tutorial/understanding-vtex-matcher-scoring) configurations for approving and rejecting [received SKUs](https://help.vtex.com/en/tutorial/cataloging-received-skus--tutorials_396) sent by sellers.\",\"items\":{\"type\":\"object\",\"description\":\"Details of a matcher used for scoring and managing SKUs approvals and rejections.\",\"properties\":{\"MatcherId\":{\"type\":\"string\",\"description\":\"Identifies the matching entity. It can be either [VTEX's matcher](https://help.vtex.com/en/tutorial/understanding-vtex-matcher-scoring), or an external matcher.\"},\"hook-base-address\":{\"type\":\"string\",\"description\":\"The given matcher's URL.\"},\"IsActive\":{\"type\":\"boolean\",\"description\":\"Whether the matcher is active in the account (`true`), or not (`false`).\"},\"UpdatesNotificationEndpoint\":{\"type\":\"string\",\"description\":\"The [received SKUs](https://help.vtex.com/en/tutorial/cataloging-received-skus--tutorials_396) module calls this endpoint for matcher's suggestions updates.\"},\"Description\":{\"type\":\"string\",\"description\":\"The note inserted on the request body.\"}}}},\"Rules\":{\"type\":\"object\",\"description\":\"Items and products that belong to sellers.\",\"properties\":{\"Item\":{\"type\":\"array\",\"description\":\"SKUs' ID.\",\"items\":{\"type\":\"integer\",\"description\":\"SKU ID.\"}},\"Product\":{\"type\":\"array\",\"description\":\"Product's name.\",\"items\":{\"type\":\"string\",\"description\":\"Product name.\"}}}},\"SpecificationsMapping\":{\"type\":\"array\",\"description\":\"This attribute maps product and SKU's specifications between the marketplace and the seller.\",\"items\":{\"type\":\"object\",\"description\":\"Object representing a single specification mapping between the marketplace and the seller.\",\"properties\":{\"SellerId\":{\"type\":\"string\",\"description\":\"The seller ID.\"},\"Mapping\":{\"type\":\"object\",\"description\":\"The attributes and values mapped between the marketplace and the seller.\"}}}},\"MatchFlux\":{\"type\":\"string\",\"description\":\"Type of approval configuration that apply to received SKUs sent by sellers. The possible values are: \\n\\n`default`: The matcher approves the SKU. \\n\\n`manual`: Manual SKU's approvals. \\n\\n`AutoApprove`: Automatic SKU's approvals.\"}}}\n\n// Validate if response matches JSON schema \npm.test(\"[PUT]::/suggestions/configuration - Schema is valid\", function() {\n pm.response.to.have.jsonSchema(schema,{unknownFormats: [\"int32\", \"int64\", \"float\", \"double\"]});\n});\n" ] } } @@ -729,33 +680,22 @@ "protocolProfileBehavior": { "disableBodyPruning": true } - } - ], - "event": [] - }, - { - "id": "f3e14f4e-b7dd-48f2-b7e1-fcae413426a1", - "name": "Get Versions", - "description": { - "content": "Search and filter all versions of suggestions, using specific criteria.", - "type": "text/plain" - }, - "item": [ + }, { - "id": "aa504c8c-eb95-49c0-a7e1-9f6979e9c3f3", - "name": "Get all Versions", + "id": "c101cfd1-3df2-4297-9b8a-c31dff8d0be0", + "name": "Get account's matcher settings", "request": { - "name": "Get all Versions", + "name": "Get account's matcher settings", "description": { - "content": "Whenever an SKU Suggestion is updated or changed, a new version of the original one is created. All versions are logged, so you can search for previous our current states of SKU suggestions. \n\nThis endpoint retrieves the data of *all* previous and latest versions of a specific SKU suggestion, sent by the seller. Whenever an SKU is updated, it is important to map previous versions, to compare and identify changes. \n\nThe response's object [latestversion] provides the information of the most recent version of that SKU suggestion.", + "content": "This endpoint will be used by the marketplace to query the matcher's current approval settings on their incoming SKUs module. If the account has no matcher configured, the response will be `404 Not Found`. \n\nFor account approval configuration information, with response including specification information, see [Get Account Approval Settings](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#get-/suggestions/configuration) terminal. \n\nThe [VTEX matcher](https://help.vtex.com/pt/tutorial/entendendo-a-punctuacao-do-vtex-matcher--tutorials_424) is a tool used by marketplaces to evaluate SKUs corresponding to information from an advertisement of the seller, with those of items already present in the marketplace catalog.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/authentication-overview#application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| ---------- | ------------ | ------------ |\r\n| Channels | UI resources | **Save suggestion rules** |\r\n| Suggestion| Suggestion resources | **Main access** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication-overview#machine-authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https://help.vtex.com/en/tutorial/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", "type": "text/plain" }, "url": { "path": [ "suggestions", - ":sellerId", - ":sellerskuid", - "versions" + "configuration", + "account", + "config" ], "host": [ "{{baseUrl}}" @@ -765,27 +705,7 @@ { "disabled": false, "description": { - "content": "(Required) A string that identifies the seller in the marketplace. This ID must be created by the marketplace and informed to the seller before the integration is built.", - "type": "text/plain" - }, - "type": "any", - "value": "seller123", - "key": "sellerId" - }, - { - "disabled": false, - "description": { - "content": "(Required) A string that identifies the SKU in the marketplace. This is the ID that the marketplace will use for future references to this SKU, such as price and inventory notifications.", - "type": "text/plain" - }, - "type": "any", - "value": "1234", - "key": "sellerskuid" - }, - { - "disabled": false, - "description": { - "content": "(Required) Name of the VTEX account. Used as part of the URL", + "content": "(Required) Name of the VTEX account that belongs to the marketplace. All data extracted, and changes added will be posted into this account.", "type": "text/plain" }, "type": "any", @@ -798,7 +718,7 @@ { "disabled": false, "description": { - "content": "(Required) HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand", + "content": "(Required) HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand.", "type": "text/plain" }, "key": "Accept", @@ -812,6 +732,10 @@ }, "key": "Content-Type", "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" } ], "method": "GET", @@ -820,17 +744,17 @@ "response": [ { "_": { - "postman_previewlanguage": "text" + "postman_previewlanguage": "json" }, - "id": "e335ae1b-473e-4ecf-95f5-d6cb02352418", + "id": "01902efa-b228-4c46-aac2-3e7d6d554589", "name": "OK", "originalRequest": { "url": { "path": [ "suggestions", - ":sellerId", - ":sellerskuid", - "versions" + "configuration", + "account", + "config" ], "host": [ "{{baseUrl}}" @@ -842,7 +766,7 @@ { "disabled": false, "description": { - "content": "(Required) HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand", + "content": "(Required) HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand.", "type": "text/plain" }, "key": "Accept", @@ -856,6 +780,10 @@ }, "key": "Content-Type", "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" } ], "method": "GET", @@ -863,7 +791,13 @@ }, "status": "OK", "code": 200, - "header": [], + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"score\": {\n \"approve\": 85,\n \"pending\": 31,\n \"reject\": 30\n },\n \"matchers\": [\n {\n \"matcherId\": \"example-matcher\",\n \"hook-base-address\": \"http://portal.vtexinternal.com.br/api/u90/hooks\",\n \"isActive\": true,\n \"updatesNotificationEndpoint\": null,\n \"description\": null\n }\n ],\n \"rules\": {\n \"item\": [],\n \"product\": []\n },\n \"specificationsMapping\": [],\n \"matchFlux\": \"Default\"\n}", "cookie": [] } ], @@ -871,10 +805,13 @@ { "listen": "test", "script": { - "id": "2809424d-58ad-42a0-a207-de5214a3cec5", + "id": "f15a8194-7a04-4461-8b81-35f6d276fb27", "type": "text/javascript", "exec": [ - "// Validate status 2xx \npm.test(\"[GET]::/suggestions/:sellerId/:sellerskuid/versions - Status code is 2xx\", function () {\n pm.response.to.be.success;\n});\n" + "// Validate status 2xx \npm.test(\"[GET]::/suggestions/configuration/account/config - Status code is 2xx\", function () {\n pm.response.to.be.success;\n});\n", + "// Validate if response header has matching content-type\npm.test(\"[GET]::/suggestions/configuration/account/config - Content-Type is application/json\", function () {\n pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(\"application/json\");\n});\n", + "// Validate if response has JSON Body \npm.test(\"[GET]::/suggestions/configuration/account/config - Response has JSON Body\", function () {\n pm.response.to.have.jsonBody();\n});\n", + "// Response Validation\nconst schema = {\"description\":\"Response from Get Account's Matcher Settings endpoint with information about current matcher score setting, rules, spec mapping, and matchFlux.\",\"type\":\"object\",\"properties\":{\"score\":{\"description\":\"[Matcher](https://help.vtex.com/pt/tutorial/entendendo-a-pontuacao-do-vtex-matcher--tutorials_424) rates received SKUs by comparing the data sent by sellers to existing fields in the marketplace. The calculation of these scores determines whether the product has been: `Approved`, `Pending` or `Denied`.\",\"type\":\"object\",\"properties\":{\"approve\":{\"type\":\"integer\",\"description\":\"Minimum approval score set by the marketplace.\",\"default\":80},\"pending\":{\"type\":\"integer\",\"description\":\"Minimum value for the ad to be pending.\",\"default\":31},\"reject\":{\"type\":\"integer\",\"description\":\"Bounce score set by marketplace.\",\"default\":30}}},\"matchers\":{\"description\":\"Array of objects that presents a list of matchers configured in the marketplace. If the marketplace has more than one matcher configured in the account, an array will be displayed for each matcher.\\n\\n By default, the VTEX Matcher is set up automatically in VTEX account.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"description\":\"An object representing a single matcher configuration.\",\"properties\":{\"matcherId\":{\"type\":\"string\",\"description\":\"The Matcher Id.\"},\"hook-base-address\":{\"type\":\"string\",\"description\":\"The base address of the Matcher hook.\"},\"isActive\":{\"type\":\"boolean\",\"description\":\"Indicates if Matcher is active or not. `TRUE` = Matcher is active or `FALSE` = Matcher is inactive.\"}}}},\"rules\":{\"description\":\"Arrays object that contains the rules defined for product approval.\",\"type\":\"object\",\"properties\":{\"item\":{\"type\":\"array\",\"description\":\"A list of rules for items.\",\"items\":{\"type\":\"object\",\"description\":\"A rule for items.\"}},\"product\":{\"type\":\"array\",\"description\":\"A list of rules for products.\",\"items\":{\"type\":\"object\",\"description\":\"A rule for products.\"}}}},\"SpecificationsMapping\":{\"type\":\"array\",\"description\":\"List of product specifications and SKU attributes configured for mapping.\",\"items\":{\"type\":\"object\",\"description\":\"A specification mapping entry.\"}},\"matchFlux\":{\"type\":\"string\",\"description\":\"This field shows what type of approval setting is being applied to SKUs received from a seller. \\n\\nPossible values include: \\n\\n-`default`: where Matcher reviews the SKU and approves it based on its score. \\n\\n-`manual`: for manual approvals via incoming SKU UI or mailing API. \\n\\n-`autoApprove`: so that every SKU received from a given seller is automatically approved, regardless of its Matcher Score.\"}}}\n\n// Validate if response matches JSON schema \npm.test(\"[GET]::/suggestions/configuration/account/config - Schema is valid\", function() {\n pm.response.to.have.jsonSchema(schema,{unknownFormats: [\"int32\", \"int64\", \"float\", \"double\"]});\n});\n" ] } } @@ -884,21 +821,20 @@ } }, { - "id": "102e20b2-7e97-4e14-9897-f4467957a1fb", - "name": "Get Version by ID", + "id": "a92d229c-ebc6-41fe-b672-f85b54a9cb79", + "name": "Get seller's approval settings", "request": { - "name": "Get Version by ID", + "name": "Get seller's approval settings", "description": { - "content": "Whenever an SKU Suggestion is updated or changed, a new version of the original one is created. All versions are logged, so you can search for previous our current states of SKU suggestions. \n\nThis endpoint retrieves a specific *version* of a chosen SKU sent by the seller. Add the Seller's ID, Seller's SKU ID, and version ID in the path to detail your search.", + "content": "This endpoint retrieves the current Received SKUs approval settings applied to a specific seller. Its response includes: \n\n- `sellerId`: A string that identifies the seller in the marketplace. \n\n- `accountId`: Marketplace’s account ID. \n\n- `accountName`: Marketplace’s account name. \n\n- `mapping`: Mapping of SKU and product Specifications. \n\n- `matchFlux`: This field determines the type of approval configuration applied to SKUs received from a seller. \n\nThe possible values include: \n\n-`default`, where the Matcher reviews the SKU, and approves it based on its score. \n\n-`manual`, for manual approvals through the Received SKU UI and Match API. \n\n-`autoApprove`, for every SKU received from a given seller to be approved automatically, regardless of the Matcher Score.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/authentication-overview#application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| ---------- | ------------ | ------------ |\r\n| Channels | UI resources | **Save suggestion rules** |\r\n| Suggestion| Suggestion resources | **Main access** |\r\n|Mapper| Suggestion resources| **Mapper**|\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication-overview#machine-authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https://help.vtex.com/en/tutorial/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", "type": "text/plain" }, "url": { "path": [ "suggestions", - ":sellerId", - ":sellerskuid", - "versions", - ":version" + "configuration", + "seller", + ":sellerId" ], "host": [ "{{baseUrl}}" @@ -908,37 +844,17 @@ { "disabled": false, "description": { - "content": "(Required) A string that identifies the seller in the marketplace. This ID must be created by the marketplace and informed to the seller before the integration is built.", - "type": "text/plain" - }, - "type": "any", - "value": "seller123", - "key": "sellerId" - }, - { - "disabled": false, - "description": { - "content": "(Required) A string that identifies the SKU in the marketplace. This is the ID that the marketplace will use for future references to this SKU, such as price and inventory notifications.", - "type": "text/plain" - }, - "type": "any", - "value": "1234", - "key": "sellerskuid" - }, - { - "disabled": false, - "description": { - "content": "(Required) Whenever an SKU Suggestion is updated or changed, a new version of the original one is created. All versions are logged, so you can search for previous our current states of SKU suggestions. This field is the `versionId` associated to the version you choose to search for. You can get this field's value through the [Get SKU Suggestion by ID](https://developers.vtex.com/vtex-rest-api/reference/getsuggestion). through the `latestVersionId` field.", + "content": "(Required) A string that identifies the seller in the marketplace. This ID must be created by the marketplace.", "type": "text/plain" }, "type": "any", - "value": "09072021142808277", - "key": "version" + "value": "seller123", + "key": "sellerId" }, { "disabled": false, "description": { - "content": "(Required) Name of the VTEX account. Used as part of the URL", + "content": "(Required) Name of the VTEX account that belongs to the marketplace. All data extracted, and changes added will be posted into this account.", "type": "text/plain" }, "type": "any", @@ -951,7 +867,7 @@ { "disabled": false, "description": { - "content": "(Required) HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand", + "content": "(Required) HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand.", "type": "text/plain" }, "key": "Accept", @@ -965,6 +881,10 @@ }, "key": "Content-Type", "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" } ], "method": "GET", @@ -973,18 +893,17 @@ "response": [ { "_": { - "postman_previewlanguage": "text" + "postman_previewlanguage": "json" }, - "id": "2a108e3c-3071-41a0-88d3-3cefb873978f", + "id": "093c951f-b5a3-4818-99b2-119e68806754", "name": "OK", "originalRequest": { "url": { "path": [ "suggestions", - ":sellerId", - ":sellerskuid", - "versions", - ":version" + "configuration", + "seller", + ":sellerId" ], "host": [ "{{baseUrl}}" @@ -996,7 +915,7 @@ { "disabled": false, "description": { - "content": "(Required) HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand", + "content": "(Required) HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand.", "type": "text/plain" }, "key": "Accept", @@ -1010,6 +929,10 @@ }, "key": "Content-Type", "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" } ], "method": "GET", @@ -1017,7 +940,13 @@ }, "status": "OK", "code": 200, - "header": [], + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"sellerId\": \"sellerexample\",\n \"accountId\": \"d74dau71f-325a-4463-bd53-ae8b0453186ca\",\n \"accountName\": \"marketplaceexample\",\n \"mapping\": {\n \"defaultColor\": \"white /black\",\n \"searchColor\": \"color1, color2\",\n \"color1\": \"black\",\n \"color2\": \"white\",\n \"color\": \"black\",\n \"size\": \"EUR44\"\n },\n \"matchFlux\": \"autoApprove\"\n}", "cookie": [] } ], @@ -1025,10 +954,13 @@ { "listen": "test", "script": { - "id": "348fb63a-e338-45df-a12d-4db2d1b87e58", + "id": "91796a3a-c7e0-4bfa-a2d8-08dbe4559fa4", "type": "text/javascript", "exec": [ - "// Validate status 2xx \npm.test(\"[GET]::/suggestions/:sellerId/:sellerskuid/versions/:version - Status code is 2xx\", function () {\n pm.response.to.be.success;\n});\n" + "// Validate status 2xx \npm.test(\"[GET]::/suggestions/configuration/seller/:sellerId - Status code is 2xx\", function () {\n pm.response.to.be.success;\n});\n", + "// Validate if response header has matching content-type\npm.test(\"[GET]::/suggestions/configuration/seller/:sellerId - Content-Type is application/json\", function () {\n pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(\"application/json\");\n});\n", + "// Validate if response has JSON Body \npm.test(\"[GET]::/suggestions/configuration/seller/:sellerId - Response has JSON Body\", function () {\n pm.response.to.have.jsonBody();\n});\n", + "// Response Validation\nconst schema = {\"type\":\"object\",\"description\":\"Represents the approval settings configured for a specific seller within the marketplace. This object includes details about the seller, their account, and how SKUs are mapped and approved.\",\"properties\":{\"sellerId\":{\"type\":\"string\",\"description\":\"A string that identifies the seller in the marketplace.\"},\"accountId\":{\"type\":\"string\",\"description\":\"Marketplace’s account ID.\"},\"accountName\":{\"type\":\"string\",\"description\":\"Marketplace’s account name.\"},\"mapping\":{\"type\":\"object\",\"default\":{},\"description\":\"SKU mapping information and product [specifications](https://developers.vtex.com/docs/guides/catalog-overview#configuring-initial-settings-mandatory).\\n\\n The properties included within `mapping` can change according to the product type, the `color` specification and its variations described in this example are just one of the possibilities. The values received in this call's payload for those properties depend on the seller's catalog architecture, and are not default. \\n\\nSee some examples of specifications: \\n\\n- Voltage \\n\\n- Power \\n\\n- Size \\n\\n- Height \\n\\n- Width.\",\"properties\":{\"defaultColor\":{\"type\":\"string\",\"description\":\"The field will indicate the default color predefined by the seller in cases where specific product colors are not defined. This field is neither mandatory nor default, it will depend on the architecture of the seller's catalog.\"},\"searchColor\":{\"type\":\"string\",\"description\":\"Field that provides the available colors to filter searches. This field is neither mandatory nor default, it will depend on the architecture of the seller's catalog.\"},\"color1\":{\"type\":\"string\",\"description\":\"`color1` available for search filter. This field is neither mandatory nor default, it will depend on the architecture of the seller's catalog.\"},\"color2\":{\"type\":\"string\",\"description\":\"`color2` available for search filter. This field is neither mandatory nor default, it will depend on the architecture of the seller's catalog.\"},\"color\":{\"type\":\"string\",\"description\":\"Indicates the predominant or main color of the product. This field is neither mandatory nor default, it will depend on the architecture of the seller's catalog.\"},\"size\":{\"type\":\"string\",\"description\":\"Indicates the size of the product. This field is neither mandatory nor default, it will depend on the architecture of the seller's catalog.\"}}},\"matchFlux\":{\"type\":\"string\",\"description\":\"This field determines the type of [approval configuration applied to SKUs received from a seller](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#put-/suggestions/configuration/seller/-sellerId-). \\n\\nThe possible values include: \\n\\n-`default`, where the Matcher reviews the SKU, and approves it based on its score. \\n\\n-`manual`, for manual approvals through the Received SKU UI and Match API. \\n\\n-`autoApprove`, for every SKU received from a given seller to be approved automatically, regardless of the Matcher Score.\"}}}\n\n// Validate if response matches JSON schema \npm.test(\"[GET]::/suggestions/configuration/seller/:sellerId - Schema is valid\", function() {\n pm.response.to.have.jsonSchema(schema,{unknownFormats: [\"int32\", \"int64\", \"float\", \"double\"]});\n});\n" ] } } @@ -1036,49 +968,38 @@ "protocolProfileBehavior": { "disableBodyPruning": true } - } - ], - "event": [] - }, - { - "id": "07da8408-2156-4cef-87a1-ea3c2217a6fb", - "name": "SKU Approval Settings", - "description": { - "content": "", - "type": "text/plain" - }, - "item": [ + }, { - "id": "83996a99-05af-4bbf-9b65-9fdc9f7692be", - "name": "Get autoApprove Status in Account Settings", + "id": "d613124e-654e-4e1d-b7f3-2d0ace4a315c", + "name": "Save seller's approval settings", "request": { - "name": "Get autoApprove Status in Account Settings", + "name": "Save seller's approval settings", "description": { - "content": "This endpoint can be used to check whether the autoapprove setting is active or not, for a specific seller. \n\nIf the response is `true`, the autoapprove setting is active. If the response is `false`, it is inactive.", + "content": "Marketplaces use this endpoint to create or update approval settings to a specific seller, on the Received SKUs module. \n\nThe request includes all the details necessary to implement the chosen approval settings.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/authentication-overview#application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| ---------- | ------------ | ------------ |\r\n| Channels | UI resources | **Save suggestion rules** |\r\n| Suggestion| Suggestion resources | **Main access** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication-overview#machine-authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https://help.vtex.com/en/tutorial/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", "type": "text/plain" }, "url": { "path": [ "suggestions", "configuration", - "autoapproval", - "toggle" + "seller", + ":sellerId" ], "host": [ "{{baseUrl}}" ], - "query": [ + "query": [], + "variable": [ { "disabled": false, "description": { "content": "(Required) A string that identifies the seller in the marketplace. This ID must be created by the marketplace.", "type": "text/plain" }, - "key": "sellerId", - "value": "seller123" - } - ], - "variable": [ + "type": "any", + "value": "seller123", + "key": "sellerId" + }, { "disabled": false, "description": { @@ -1111,42 +1032,41 @@ "value": "application/json" }, { - "key": "Accept", + "key": "Content-Type", "value": "application/json" } ], - "method": "GET", - "body": {} + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\n \"sellerId\": \"1a\",\n \"mapping\": null,\n \"matchFlux\": \"Default\"\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } }, "response": [ { "_": { - "postman_previewlanguage": "json" + "postman_previewlanguage": "text" }, - "id": "32d95e4f-b58f-4561-ab1c-b4666b1035e3", + "id": "ddfda864-7e50-4b8f-a7b3-e2cab0a07351", "name": "OK", "originalRequest": { "url": { "path": [ "suggestions", "configuration", - "autoapproval", - "toggle" + "seller", + ":sellerId" ], "host": [ "{{baseUrl}}" ], - "query": [ - { - "disabled": false, - "description": { - "content": "(Required) A string that identifies the seller in the marketplace. This ID must be created by the marketplace.", - "type": "text/plain" - }, - "key": "sellerId", - "value": "seller123" - } - ], + "query": [], "variable": [] }, "header": [ @@ -1169,22 +1089,25 @@ "value": "application/json" }, { - "key": "Accept", + "key": "Content-Type", "value": "application/json" } ], - "method": "GET", - "body": {} + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\n \"sellerId\": \"1a\",\n \"mapping\": null,\n \"matchFlux\": \"Default\"\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } }, "status": "OK", "code": 200, - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "body": "{\n \"Enabled\": false\n}", + "header": [], "cookie": [] } ], @@ -1192,13 +1115,10 @@ { "listen": "test", "script": { - "id": "6544cd2e-1d0a-4dfe-8707-510e537edf6b", + "id": "b0023ef6-06ca-4798-8f2d-6d001ae8191b", "type": "text/javascript", "exec": [ - "// Validate status 2xx \npm.test(\"[GET]::/suggestions/configuration/autoapproval/toggle - Status code is 2xx\", function () {\n pm.response.to.be.success;\n});\n", - "// Validate if response header has matching content-type\npm.test(\"[GET]::/suggestions/configuration/autoapproval/toggle - Content-Type is application/json\", function () {\n pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(\"application/json\");\n});\n", - "// Validate if response has JSON Body \npm.test(\"[GET]::/suggestions/configuration/autoapproval/toggle - Response has JSON Body\", function () {\n pm.response.to.have.jsonBody();\n});\n", - "// Response Validation\nconst schema = {\"type\":\"object\",\"properties\":{\"Enabled\":{\"type\":\"boolean\",\"description\":\"If the autoapprove setting is active for a given seller (`true`) or not (`false`).\"}}}\n\n// Validate if response matches JSON schema \npm.test(\"[GET]::/suggestions/configuration/autoapproval/toggle - Schema is valid\", function() {\n pm.response.to.have.jsonSchema(schema,{unknownFormats: [\"int32\", \"int64\", \"float\", \"double\"]});\n});\n" + "// Validate status 2xx \npm.test(\"[PUT]::/suggestions/configuration/seller/:sellerId - Status code is 2xx\", function () {\n pm.response.to.be.success;\n});\n" ] } } @@ -1208,12 +1128,12 @@ } }, { - "id": "0a0edf1e-72a8-4d1e-9f23-1286d55a70dd", - "name": "Activate autoApprove in Marketplace's Account", + "id": "5b407930-5598-405d-9cb9-afb25daebe30", + "name": "Activate autoApprove setting for a seller", "request": { - "name": "Activate autoApprove in Marketplace's Account", + "name": "Activate autoApprove setting for a seller", "description": { - "content": "This endpoint enables the autoapprove rule to a marketplace's whole Received SKUs module. Once enabling the rule, received SKUs will be automatically approved on your store, regardless of the seller. \n\n For the autoapprove rule to work as expected, the approval [Matcher score](https://help.vtex.com/en/tutorial/entendendo-a-pontuacao-do-vtex-matcher--tutorials_424) should be set up as 80 (default value), but you can configure a different number through the field `Score` in [Save Account's Approval Settings](https://developers.vtex.com/vtex-rest-api/reference/saveaccountconfig).", + "content": "This endpoint enables the auto approve setting to received SKUs from a specific seller. Be aware that once enabling the rule through this request, all received SKUs from that seller will be automatically approved on your store, regardless of the Matcher Score.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/authentication-overview#application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| ---------- | ------------ | ------------ |\r\n| Channels | UI resources | **Save suggestion rules** |\r\n| Suggestion| Suggestion resources | **Main access** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication-overview#machine-authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https://help.vtex.com/en/tutorial/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", "type": "text/plain" }, "url": { @@ -1221,13 +1141,25 @@ "suggestions", "configuration", "autoapproval", - "toggle" + "toggle", + "seller", + ":sellerId" ], "host": [ "{{baseUrl}}" ], "query": [], "variable": [ + { + "disabled": false, + "description": { + "content": "(Required) A string that identifies the seller in the marketplace. This ID must be created by the marketplace.", + "type": "text/plain" + }, + "type": "any", + "value": "seller123", + "key": "sellerId" + }, { "disabled": false, "description": { @@ -1262,10 +1194,6 @@ { "key": "Content-Type", "value": "application/json" - }, - { - "key": "Accept", - "value": "application/json" } ], "method": "PUT", @@ -1283,9 +1211,9 @@ "response": [ { "_": { - "postman_previewlanguage": "json" + "postman_previewlanguage": "text" }, - "id": "3456c572-ccca-4e02-8a96-3fc18263d9c5", + "id": "0e9cba71-7b48-49b9-842a-de78c90cc9a5", "name": "OK", "originalRequest": { "url": { @@ -1293,7 +1221,9 @@ "suggestions", "configuration", "autoapproval", - "toggle" + "toggle", + "seller", + ":sellerId" ], "host": [ "{{baseUrl}}" @@ -1323,10 +1253,6 @@ { "key": "Content-Type", "value": "application/json" - }, - { - "key": "Accept", - "value": "application/json" } ], "method": "PUT", @@ -1343,13 +1269,7 @@ }, "status": "OK", "code": 200, - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "body": "{\n \"Enabled\": false\n}", + "header": [], "cookie": [] } ], @@ -1357,13 +1277,10 @@ { "listen": "test", "script": { - "id": "9039d5f1-5a18-471e-8e2e-7556e29752c9", + "id": "650a7321-3bb4-4fa3-8350-2821c1e2efda", "type": "text/javascript", "exec": [ - "// Validate status 2xx \npm.test(\"[PUT]::/suggestions/configuration/autoapproval/toggle - Status code is 2xx\", function () {\n pm.response.to.be.success;\n});\n", - "// Validate if response header has matching content-type\npm.test(\"[PUT]::/suggestions/configuration/autoapproval/toggle - Content-Type is application/json\", function () {\n pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(\"application/json\");\n});\n", - "// Validate if response has JSON Body \npm.test(\"[PUT]::/suggestions/configuration/autoapproval/toggle - Response has JSON Body\", function () {\n pm.response.to.have.jsonBody();\n});\n", - "// Response Validation\nconst schema = {\"type\":\"object\",\"properties\":{\"Enabled\":{\"type\":\"boolean\",\"description\":\"If the autoapprove setting is active (`true`) or not (`false`).\"}}}\n\n// Validate if response matches JSON schema \npm.test(\"[PUT]::/suggestions/configuration/autoapproval/toggle - Schema is valid\", function() {\n pm.response.to.have.jsonSchema(schema,{unknownFormats: [\"int32\", \"int64\", \"float\", \"double\"]});\n});\n" + "// Validate status 2xx \npm.test(\"[PUT]::/suggestions/configuration/autoapproval/toggle/seller/:sellerId - Status code is 2xx\", function () {\n pm.response.to.be.success;\n});\n" ] } } @@ -1371,30 +1288,113 @@ "protocolProfileBehavior": { "disableBodyPruning": true } - }, + } + ], + "event": [] + }, + { + "id": "ae5e1daa-3eaa-4ac0-ba2d-23840f1cd9c9", + "name": "Get Suggestions", + "description": { + "content": "", + "type": "text/plain" + }, + "item": [ { - "id": "5c8d075e-9953-482c-9729-550a6a474d69", - "name": "Get Account's Approval Settings", + "id": "d0a649c6-1328-4de8-b621-e3a0347051b4", + "name": "Get all SKU suggestions", "request": { - "name": "Get Account's Approval Settings", + "name": "Get all SKU suggestions", "description": { - "content": "This endpoint retrieves the current approval settings of a marketplace's Received SKUs module. Its response includes: \n\n- `Score`: Matcher scores for approving and rejecting SKUs received from sellers. \n\n- `Matchers`: All Matchers configured on the marketplace, and their respective details. \n\n- `SpecificationsMapping`: Mapping of product and SKU specifications, per seller. \n\n- `MatchFlux`: This field determines the type of approval configuration applied to SKUs received from a seller. \n\nThe possible values include: \n\n-`default`, where the Matcher reviews the SKU, and approves it based on its score. \n\n-`manual`, for manual approvals through the Received SKU UI, or Match API. \n\n-`autoApprove`, for every SKU received from a given seller to be approved automatically, regardless of their Matcher Score.", + "content": "This endpoint retrieves a list of all SKUs sent by the seller for the marketplace's approval. Marketplace operators should use this endpoint whenever they want to check the full list of received SKUs and their information. \n\nNote that all the information sent by the seller will be in the [content] object. All remaining information in this endpoint's response is given by the Matcher. \n\nMatcher rates received SKUs by correlating the data sent by sellers, to existing fields in the marketplace. The calculation of these scores determines whether the product has been: \n\n`Approved`: Score equal to or greater than 80 points. \n\n`Pending`: From 31 to 79 points.\n\n`Denied`: From 0 to 30 points. \n\nNote that if the autoApprove setting is enabled, the SKUs will be approved, regardless of the Score.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/authentication-overview#application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| ---------- | ------------ | ------------ |\r\n| Channels | UI resources | **Save suggestion rules** |\r\n| Suggestion| Suggestion resources | **Main access** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication-overview#machine-authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https://help.vtex.com/en/tutorial/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", "type": "text/plain" }, "url": { "path": [ - "suggestions", - "configuration" + "suggestions" ], "host": [ "{{baseUrl}}" ], - "query": [], + "query": [ + { + "disabled": true, + "description": { + "content": "This field allows you to customize your search. You can fill in this query param if you want to narrow down your search using the available filters on Received SKU modules.", + "type": "text/plain" + }, + "key": "q", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "This field allows users to filter SKU suggestions, by searching only the new suggestions that were just sent, and suggestions that have already been sent, but were updated. Possible values for this field include `new` and `update`.", + "type": "text/plain" + }, + "key": "type", + "value": "new" + }, + { + "disabled": true, + "description": { + "content": "A string that identifies the seller in the marketplace. This ID must be created by the marketplace and informed to the seller so it can call this endpoint.", + "type": "text/plain" + }, + "key": "seller", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Narrow down you search, filtering by status. Values allowed on this field include: `accepted`, `pending` and `denied.`", + "type": "text/plain" + }, + "key": "status", + "value": "accepted" + }, + { + "disabled": true, + "description": { + "content": "This field allows you to filter SKUs that have mapping or not. Insert `true` to filter SKUs that have mapping, or `false` to retrieve SKUs that aren't mapped.", + "type": "text/plain" + }, + "key": "hasmapping", + "value": "true" + }, + { + "disabled": true, + "description": { + "content": "Identifies the matching entity. It can be either VTEX's matcher, or an external matcher developed by partners, for example. The `matcherId`'s value can be obtained through the [Get SKU Suggestion by ID](https://developers.vtex.com/vtex-rest-api/reference/getsuggestion) endpoint.", + "type": "text/plain" + }, + "key": "matcherid", + "value": "vtex-matcher" + }, + { + "disabled": true, + "description": { + "content": "Define your pagination range, by adding the pagination starting value. Values should be bigger than 0, with a maximum of 50 records per page.", + "type": "text/plain" + }, + "key": "_from", + "value": "1" + }, + { + "disabled": true, + "description": { + "content": "Define your pagination range, by adding the pagination ending value. Values should be bigger than 0, with a maximum of 50 records per page.", + "type": "text/plain" + }, + "key": "_to", + "value": "50" + } + ], "variable": [ { "disabled": false, "description": { - "content": "(Required) Name of the VTEX account that belongs to the marketplace. All data extracted, and changes added will be posted into this account.", + "content": "(Required) Name of the VTEX account. Used as part of the URL", "type": "text/plain" }, "type": "any", @@ -1416,15 +1416,11 @@ { "disabled": false, "description": { - "content": "(Required) Describes the type of the content being sent.", + "content": "(Required) Type of the content being sent.", "type": "text/plain" }, "key": "Content-Type", "value": "application/json" - }, - { - "key": "Accept", - "value": "application/json" } ], "method": "GET", @@ -1433,20 +1429,92 @@ "response": [ { "_": { - "postman_previewlanguage": "json" + "postman_previewlanguage": "text" }, - "id": "57c38460-0896-4fb1-a491-bb3afbf109e7", + "id": "d712e34f-f839-4926-91c3-2456c83bb307", "name": "OK", "originalRequest": { "url": { "path": [ - "suggestions", - "configuration" + "suggestions" ], "host": [ "{{baseUrl}}" ], - "query": [], + "query": [ + { + "disabled": true, + "description": { + "content": "This field allows you to customize your search. You can fill in this query param if you want to narrow down your search using the available filters on Received SKU modules.", + "type": "text/plain" + }, + "key": "q", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "This field allows users to filter SKU suggestions, by searching only the new suggestions that were just sent, and suggestions that have already been sent, but were updated. Possible values for this field include `new` and `update`.", + "type": "text/plain" + }, + "key": "type", + "value": "new" + }, + { + "disabled": true, + "description": { + "content": "A string that identifies the seller in the marketplace. This ID must be created by the marketplace and informed to the seller so it can call this endpoint.", + "type": "text/plain" + }, + "key": "seller", + "value": "" + }, + { + "disabled": true, + "description": { + "content": "Narrow down you search, filtering by status. Values allowed on this field include: `accepted`, `pending` and `denied.`", + "type": "text/plain" + }, + "key": "status", + "value": "accepted" + }, + { + "disabled": true, + "description": { + "content": "This field allows you to filter SKUs that have mapping or not. Insert `true` to filter SKUs that have mapping, or `false` to retrieve SKUs that aren't mapped.", + "type": "text/plain" + }, + "key": "hasmapping", + "value": "true" + }, + { + "disabled": true, + "description": { + "content": "Identifies the matching entity. It can be either VTEX's matcher, or an external matcher developed by partners, for example. The `matcherId`'s value can be obtained through the [Get SKU Suggestion by ID](https://developers.vtex.com/vtex-rest-api/reference/getsuggestion) endpoint.", + "type": "text/plain" + }, + "key": "matcherid", + "value": "vtex-matcher" + }, + { + "disabled": true, + "description": { + "content": "Define your pagination range, by adding the pagination starting value. Values should be bigger than 0, with a maximum of 50 records per page.", + "type": "text/plain" + }, + "key": "_from", + "value": "1" + }, + { + "disabled": true, + "description": { + "content": "Define your pagination range, by adding the pagination ending value. Values should be bigger than 0, with a maximum of 50 records per page.", + "type": "text/plain" + }, + "key": "_to", + "value": "50" + } + ], "variable": [] }, "header": [ @@ -1462,15 +1530,11 @@ { "disabled": false, "description": { - "content": "(Required) Describes the type of the content being sent.", + "content": "(Required) Type of the content being sent.", "type": "text/plain" }, "key": "Content-Type", "value": "application/json" - }, - { - "key": "Accept", - "value": "application/json" } ], "method": "GET", @@ -1478,13 +1542,7 @@ }, "status": "OK", "code": 200, - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "body": "{\n \"Score\": {\n \"Approve\": 80,\n \"Reject\": 30\n },\n \"Matchers\": [\n {\n \"MatcherId\": \"vtex-matcher\",\n \"hook-base-address\": \"http://portal.vtexinternal.com/api/ssm/hooks\",\n \"IsActive\": true,\n \"UpdatesNotificationEndpoint\": null,\n \"Description\": null\n }\n ],\n \"Rules\": {\n \"Item\": [],\n \"Product\": []\n },\n \"SpecificationsMapping\": [],\n \"MatchFlux\": \"Default\"\n}", + "header": [], "cookie": [] } ], @@ -1492,13 +1550,10 @@ { "listen": "test", "script": { - "id": "ec1ee7e1-574e-4c52-a97a-f517020cbe5c", + "id": "a2193251-81da-4702-aaa0-724f26003d75", "type": "text/javascript", "exec": [ - "// Validate status 2xx \npm.test(\"[GET]::/suggestions/configuration - Status code is 2xx\", function () {\n pm.response.to.be.success;\n});\n", - "// Validate if response header has matching content-type\npm.test(\"[GET]::/suggestions/configuration - Content-Type is application/json\", function () {\n pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(\"application/json\");\n});\n", - "// Validate if response has JSON Body \npm.test(\"[GET]::/suggestions/configuration - Response has JSON Body\", function () {\n pm.response.to.have.jsonBody();\n});\n", - "// Response Validation\nconst schema = {\"type\":\"object\",\"properties\":{\"Score\":{\"type\":\"object\",\"description\":\"Matcher scores for approving and rejecting SKUs received from sellers.\"},\"Matchers\":{\"type\":\"array\",\"description\":\"All Matchers configured on the marketplace, and their respective details.\"},\"Rules\":{\"type\":\"object\",\"description\":\"Items and products.\"},\"SpecificationsMapping\":{\"type\":\"array\",\"description\":\"Mapping of product and SKU specifications, per seller.\"},\"MatchFlux\":{\"type\":\"string\",\"description\":\"This field determines the type of approval configuration applied to SKUs received from a seller.\"}}}\n\n// Validate if response matches JSON schema \npm.test(\"[GET]::/suggestions/configuration - Schema is valid\", function() {\n pm.response.to.have.jsonSchema(schema,{unknownFormats: [\"int32\", \"int64\", \"float\", \"double\"]});\n});\n" + "// Validate status 2xx \npm.test(\"[GET]::/suggestions - Status code is 2xx\", function () {\n pm.response.to.be.success;\n});\n" ] } } @@ -1508,18 +1563,19 @@ } }, { - "id": "4df27ca9-7534-4f17-8a80-3aa28db9c948", - "name": "Save Account's Approval Settings", + "id": "2b69e481-2aea-468c-ab05-59402ab10a14", + "name": "Get SKU suggestion by ID", "request": { - "name": "Save Account's Approval Settings", + "name": "Get SKU suggestion by ID", "description": { - "content": "Marketplaces use this endpoint to create or update approval settings on their Received SKUs module. \n\nThe request includes all the details necessary to implement the chosen approval settings.", + "content": "This endpoint retrieves the data of a specific SKU sent by the seller, to the marketplace. Marketplaces or external matchers can call this endpoint when they want to check the information about a single SKU. \n\nNote that all the information sent by the seller will be in the [content] object. All remaining information in this endpoint's response is given by the Matcher. \n\nMatcher rates received SKUs by correlating the data sent by sellers, to existing fields in the marketplace. The calculation of these scores determines whether the product has been: \n\n`Approved`: score equal to or greater than 80 points. \n\n`Pending`: from 31 to 79 points.\n\n`Denied`: from 0 to 30 points. \n\nNote that if the autoApprove setting is enabled, the SKUs will be approved, regardless of the Score.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/authentication-overview#application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| ---------- | ------------ | ------------ |\r\n| Channels | UI resources | **Send marketplace suggestion** |\r\n| Channels | UI resources | **Save suggestion rules** |\r\n| Suggestion | Suggestion resources | **Main** |\r\n\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication-overview#machine-authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https://help.vtex.com/en/tutorial/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", "type": "text/plain" }, "url": { "path": [ "suggestions", - "configuration" + ":sellerId", + ":sellerSkuId" ], "host": [ "{{baseUrl}}" @@ -1529,7 +1585,27 @@ { "disabled": false, "description": { - "content": "(Required) Name of the VTEX account that belongs to the marketplace. All data extracted, and changes added will be posted into this account.", + "content": "(Required) A string that identifies the seller in the marketplace. This ID must be created by the marketplace and informed to the seller before the integration is built.", + "type": "text/plain" + }, + "type": "any", + "value": "seller123", + "key": "sellerId" + }, + { + "disabled": false, + "description": { + "content": "(Required) A string that identifies the SKU in the marketplace. This is the ID that the marketplace will use for future references to this SKU, such as price and inventory notifications.", + "type": "text/plain" + }, + "type": "any", + "value": "1234", + "key": "sellerSkuId" + }, + { + "disabled": false, + "description": { + "content": "(Required) Name of the VTEX account. Used as part of the URL", "type": "text/plain" }, "type": "any", @@ -1556,40 +1632,24 @@ }, "key": "Content-Type", "value": "application/json" - }, - { - "key": "Content-Type", - "value": "application/json" - }, - { - "key": "Accept", - "value": "application/json" } ], - "method": "PUT", - "body": { - "mode": "raw", - "raw": "{\n \"Score\": {\n \"Approve\": 80,\n \"Reject\": 30\n },\n \"Matchers\": [\n {\n \"MatcherId\": \"vtex-matcher\",\n \"hook-base-address\": \"http://simple-suggestion-matcher.vtex.com.br\",\n \"IsActive\": true,\n \"UpdatesNotificationEndpoint\": null,\n \"Description\": null\n }\n ],\n \"SpecificationsMapping\": [],\n \"MatchFlux\": \"AutoApprove\"\n}", - "options": { - "raw": { - "headerFamily": "json", - "language": "json" - } - } - } + "method": "GET", + "body": {} }, "response": [ { "_": { - "postman_previewlanguage": "json" + "postman_previewlanguage": "text" }, - "id": "50bae3e2-984e-46f4-aff7-6f947197eeed", + "id": "f308f6d8-74e4-45ad-859a-d7dc6ebd7a45", "name": "OK", "originalRequest": { "url": { "path": [ "suggestions", - "configuration" + ":sellerId", + ":sellerSkuId" ], "host": [ "{{baseUrl}}" @@ -1615,37 +1675,14 @@ }, "key": "Content-Type", "value": "application/json" - }, - { - "key": "Content-Type", - "value": "application/json" - }, - { - "key": "Accept", - "value": "application/json" } ], - "method": "PUT", - "body": { - "mode": "raw", - "raw": "{\n \"Score\": {\n \"Approve\": 80,\n \"Reject\": 30\n },\n \"Matchers\": [\n {\n \"MatcherId\": \"vtex-matcher\",\n \"hook-base-address\": \"http://simple-suggestion-matcher.vtex.com.br\",\n \"IsActive\": true,\n \"UpdatesNotificationEndpoint\": null,\n \"Description\": null\n }\n ],\n \"SpecificationsMapping\": [],\n \"MatchFlux\": \"AutoApprove\"\n}", - "options": { - "raw": { - "headerFamily": "json", - "language": "json" - } - } - } + "method": "GET", + "body": {} }, "status": "OK", "code": 200, - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "body": "{\n \"Score\": {\n \"Approve\": 80,\n \"Reject\": 30\n },\n \"Matchers\": [\n {\n \"MatcherId\": \"vtex-matcher\",\n \"hook-base-address\": \"http://simple-suggestion-matcher.vtex.com.br\",\n \"IsActive\": true,\n \"UpdatesNotificationEndpoint\": \"notification.endpoint\",\n \"Description\": \"Note\"\n }\n ],\n \"Rules\": {\n \"Item\": [\n 1\n ],\n \"Product\": [\n \"Shirt\"\n ]\n },\n \"SpecificationsMapping\": [\n {\n \"SellerId\": \"Store1\",\n \"Mapping\": {\n \"Yellow\": \"Light yellow\"\n }\n }\n ],\n \"MatchFlux\": \"AutoApprove\"\n}", + "header": [], "cookie": [] } ], @@ -1653,13 +1690,10 @@ { "listen": "test", "script": { - "id": "7bd7a5e8-f72b-4a3d-9f27-f52855d03ef7", + "id": "847f8081-26ce-4e51-8468-5b9852c5b7c6", "type": "text/javascript", "exec": [ - "// Validate status 2xx \npm.test(\"[PUT]::/suggestions/configuration - Status code is 2xx\", function () {\n pm.response.to.be.success;\n});\n", - "// Validate if response header has matching content-type\npm.test(\"[PUT]::/suggestions/configuration - Content-Type is application/json\", function () {\n pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(\"application/json\");\n});\n", - "// Validate if response has JSON Body \npm.test(\"[PUT]::/suggestions/configuration - Response has JSON Body\", function () {\n pm.response.to.have.jsonBody();\n});\n", - "// Response Validation\nconst schema = {\"type\":\"object\",\"example\":{\"Score\":{\"Approve\":80,\"Reject\":30},\"Matchers\":[{\"MatcherId\":\"vtex-matcher\",\"hook-base-address\":\"http://simple-suggestion-matcher.vtex.com.br\",\"IsActive\":true,\"UpdatesNotificationEndpoint\":\"notification.endpoint\",\"Description\":\"Note\"}],\"Rules\":{\"Item\":[1],\"Product\":[\"Shirt\"]},\"SpecificationsMapping\":[{\"SellerId\":\"Store1\",\"Mapping\":{\"Yellow\":\"Light yellow\"}}],\"MatchFlux\":\"AutoApprove\"},\"properties\":{\"Score\":{\"type\":\"object\",\"description\":\"[Matcher's rates](https://help.vtex.com/en/tutorial/understanding-vtex-matcher-scoring) to approve or reject [received SKUs](https://help.vtex.com/en/tutorial/cataloging-received-skus--tutorials_396) sent by sellers.\",\"properties\":{\"Approve\":{\"type\":\"integer\",\"description\":\"Score to approve SKUs sent by sellers.\"},\"Reject\":{\"type\":\"integer\",\"description\":\"Score to reject SKUs sent by sellers.\"}},\"example\":{\"Approve\":80,\"Reject\":30}},\"Matchers\":{\"type\":\"array\",\"description\":\"[Matchers](https://help.vtex.com/en/tutorial/understanding-vtex-matcher-scoring) configurations for approving and rejecting [received SKUs](https://help.vtex.com/en/tutorial/cataloging-received-skus--tutorials_396) sent by sellers.\",\"properties\":{\"MatcherId\":{\"type\":\"string\",\"description\":\"Identifies the matching entity. It can be either [VTEX's matcher](https://help.vtex.com/en/tutorial/understanding-vtex-matcher-scoring), or an external matcher.\"},\"hook-base-address\":{\"type\":\"string\",\"description\":\"The given Matcher's URL.\"},\"IsActive\":{\"type\":\"boolean\",\"description\":\"Whether the matcher is active in the account (`true`), or not (`false`).\"},\"UpdatesNotificationEndpoint\":{\"type\":\"string\",\"description\":\"The [received SKUs](https://help.vtex.com/en/tutorial/cataloging-received-skus--tutorials_396) module calls this endpoint for matcher's suggestions updates.\"},\"Description\":{\"type\":\"string\",\"description\":\"The note inserted on the request body.\"}}},\"Rules\":{\"type\":\"object\",\"description\":\"Items and products that belong to sellers.\",\"properties\":{\"Item\":{\"type\":\"array\",\"description\":\"SKUs' ID.\",\"items\":{\"type\":\"integer\",\"description\":\"SKU ID.\"}},\"Product\":{\"type\":\"array\",\"description\":\"Product's name.\",\"items\":{\"type\":\"string\",\"description\":\"Product name.\"}}}},\"SpecificationsMapping\":{\"type\":\"array\",\"description\":\"This attribute maps product and SKU's specifications between the marketplace and the seller.\",\"properties\":{\"SellerId\":{\"type\":\"string\",\"description\":\"The Seller ID.\"},\"Mapping\":{\"type\":\"object\",\"description\":\"The attributes and values mapped between the marketplace and the seller.\"}}},\"MatchFlux\":{\"type\":\"string\",\"description\":\"Type of approval configuration that apply to received SKUs sent by sellers. The possible values are: \\n\\n`default`: the matcher approves the SKU. \\n\\n`manual`: manual SKU's approvals. \\n\\n`AutoApprove`: automatic SKU's approvals.\"}}}\n\n// Validate if response matches JSON schema \npm.test(\"[PUT]::/suggestions/configuration - Schema is valid\", function() {\n pm.response.to.have.jsonSchema(schema,{unknownFormats: [\"int32\", \"int64\", \"float\", \"double\"]});\n});\n" + "// Validate status 2xx \npm.test(\"[GET]::/suggestions/:sellerId/:sellerSkuId - Status code is 2xx\", function () {\n pm.response.to.be.success;\n});\n" ] } } @@ -1667,22 +1701,32 @@ "protocolProfileBehavior": { "disableBodyPruning": true } - }, + } + ], + "event": [] + }, + { + "id": "7a7fcead-65d0-4e56-a419-d944919400f5", + "name": "Manage Suggestions", + "description": { + "content": "", + "type": "text/plain" + }, + "item": [ { - "id": "584e0c6e-0424-41a8-99c5-e02b1c0d7c18", - "name": "Get Account's Matcher Settings", + "id": "a5393323-4d60-407f-b9bd-29b0b55a7dff", + "name": "Send SKU suggestion", "request": { - "name": "Get Account's Matcher Settings", + "name": "Send SKU suggestion", "description": { - "content": "This endpoint will be used by the marketplace to query the matcher's current approval settings on their incoming SKUs module. If the account has no matcher configured, the response will be `404 Not Found`. \n\nFor account approval configuration information, with response including specification information, see [Get Account Approval Settings](https://developers.vtex.com/docs/api-reference/marketplace-apis- suggestions#get-/suggestions /configuration) terminal. \n\nThe [VTEX matcher](https://help.vtex.com/pt/tutorial/entendendo-a-punctuacao-do-vtex-matcher--tutorials_424) is a tool used by marketplaces to evaluate SKUs corresponding to information from an advertisement of the seller, with those of items already present in the marketplace catalog.", + "content": "This request is used by the seller when it wants to suggest that one of their SKUs is sold in the marketplace.\n\nBefore using this request, the seller should always use the [Change Notification](https://developers.vtex.com/vtex-rest-api/reference/catalog-api-get-seller-sku-notification) request in order to check if the SKU already exists in the marketplace. If it doesn't, then this is the next call in the SKU integration flow.\n\nIn the Send Suggestion request, the seller must send information about the SKU, such as the product and SKU name, the seller ID, and the image URL. All parameters are explained below.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/authentication-overview#application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| ---------- | ------------ | ------------ |\r\n| Channels | UI resources | **Send marketplace suggestion** |\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication-overview#machine-authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https://help.vtex.com/en/tutorial/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", "type": "text/plain" }, "url": { "path": [ "suggestions", - "configuration", - "account", - "config" + ":sellerId", + ":sellerSkuId" ], "host": [ "{{baseUrl}}" @@ -1692,7 +1736,27 @@ { "disabled": false, "description": { - "content": "(Required) Name of the VTEX account that belongs to the marketplace. All data extracted, and changes added will be posted into this account.", + "content": "(Required) A string that identifies the seller in the marketplace. This ID must be created by the marketplace and informed to the seller before the integration is built.", + "type": "text/plain" + }, + "type": "any", + "value": "seller123", + "key": "sellerId" + }, + { + "disabled": false, + "description": { + "content": "(Required) A string that identifies the SKU in the seller. This is the ID that the marketplace will use for future references to this SKU, such as price and inventory notifications.", + "type": "text/plain" + }, + "type": "any", + "value": "1234", + "key": "sellerSkuId" + }, + { + "disabled": false, + "description": { + "content": "(Required) Name of the VTEX account to which the seller wants to suggest a new SKU. It is used as part of the request URL.", "type": "text/plain" }, "type": "any", @@ -1705,7 +1769,7 @@ { "disabled": false, "description": { - "content": "(Required) HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand.", + "content": "(Required) HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.", "type": "text/plain" }, "key": "Accept", @@ -1721,27 +1785,35 @@ "value": "application/json" }, { - "key": "Accept", + "key": "Content-Type", "value": "application/json" } ], - "method": "GET", - "body": {} + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\n \"ProductId\": \"321\",\n \"ProductName\": \"Product sample\",\n \"NameComplete\": \"Complete product name\",\n \"ProductDescription\": \"sample\",\n \"BrandName\": \"Brand 1\",\n \"SkuName\": \"Sku sample\",\n \"SellerId\": \"string\",\n \"Height\": 1,\n \"Width\": 1,\n \"Length\": 1,\n \"Weight\": 1,\n \"Updated\": null,\n \"RefId\": \"REFID123\",\n \"SellerStockKeepingUnitId\": 567,\n \"CategoryFullPath\": \"Category 1\",\n \"Images\": [\n {\n \"imageName\": \"Principal\",\n \"imageUrl\": \"https://i.pinimg.com/originals/2d/96/4a/2d964a6bf37d9224d0615dc85fccdd62.jpg\"\n }\n ],\n \"ProductSpecifications\": [\n {\n \"fieldName\": \"Fabric\",\n \"fieldValues\": [\n \"Cotton\",\n \"Velvet\"\n ]\n }\n ],\n \"SkuSpecifications\": [\n {\n \"fieldName\": \"Color\",\n \"fieldValues\": [\n \"Red\",\n \"Blue\"\n ]\n }\n ],\n \"EAN\": \"EAN123\",\n \"MeasurementUnit\": \"un\",\n \"UnitMultiplier\": 1,\n \"AvailableQuantity\": 111,\n \"Pricing\": {\n \"Currency\": \"BRL\",\n \"SalePrice\": 399,\n \"CurrencySymbol\": \"R$\"\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } }, "response": [ { "_": { - "postman_previewlanguage": "json" + "postman_previewlanguage": "text" }, - "id": "11cb9a8d-b7b7-414f-952e-1e47c24af774", + "id": "6c28e532-ef29-4b03-93f6-2ae5bda11986", "name": "OK", "originalRequest": { "url": { "path": [ "suggestions", - "configuration", - "account", - "config" + ":sellerId", + ":sellerSkuId" ], "host": [ "{{baseUrl}}" @@ -1753,7 +1825,7 @@ { "disabled": false, "description": { - "content": "(Required) HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand.", + "content": "(Required) HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.", "type": "text/plain" }, "key": "Accept", @@ -1769,22 +1841,25 @@ "value": "application/json" }, { - "key": "Accept", + "key": "Content-Type", "value": "application/json" } ], - "method": "GET", - "body": {} + "method": "PUT", + "body": { + "mode": "raw", + "raw": "{\n \"ProductId\": \"321\",\n \"ProductName\": \"Product sample\",\n \"NameComplete\": \"Complete product name\",\n \"ProductDescription\": \"sample\",\n \"BrandName\": \"Brand 1\",\n \"SkuName\": \"Sku sample\",\n \"SellerId\": \"string\",\n \"Height\": 1,\n \"Width\": 1,\n \"Length\": 1,\n \"Weight\": 1,\n \"Updated\": null,\n \"RefId\": \"REFID123\",\n \"SellerStockKeepingUnitId\": 567,\n \"CategoryFullPath\": \"Category 1\",\n \"Images\": [\n {\n \"imageName\": \"Principal\",\n \"imageUrl\": \"https://i.pinimg.com/originals/2d/96/4a/2d964a6bf37d9224d0615dc85fccdd62.jpg\"\n }\n ],\n \"ProductSpecifications\": [\n {\n \"fieldName\": \"Fabric\",\n \"fieldValues\": [\n \"Cotton\",\n \"Velvet\"\n ]\n }\n ],\n \"SkuSpecifications\": [\n {\n \"fieldName\": \"Color\",\n \"fieldValues\": [\n \"Red\",\n \"Blue\"\n ]\n }\n ],\n \"EAN\": \"EAN123\",\n \"MeasurementUnit\": \"un\",\n \"UnitMultiplier\": 1,\n \"AvailableQuantity\": 111,\n \"Pricing\": {\n \"Currency\": \"BRL\",\n \"SalePrice\": 399,\n \"CurrencySymbol\": \"R$\"\n }\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } }, "status": "OK", "code": 200, - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "body": "{\n \"score\": {\n \"approve\": 85,\n \"pending\": 31,\n \"reject\": 30\n },\n \"matchers\": [\n {\n \"matcherId\": \"example-matcher\",\n \"hook-base-address\": \"http://portal.vtexinternal.com.br/api/u90/hooks\",\n \"isActive\": true,\n \"updatesNotificationEndpoint\": null,\n \"description\": null\n }\n ],\n \"rules\": {\n \"item\": [],\n \"product\": []\n },\n \"specificationsMapping\": [],\n \"matchFlux\": \"Default\"\n}", + "header": [], "cookie": [] } ], @@ -1792,13 +1867,10 @@ { "listen": "test", "script": { - "id": "986db8e5-a709-4927-9c0e-d6bfc50c47d7", + "id": "77597860-7f06-4467-a737-f373c67bf3de", "type": "text/javascript", "exec": [ - "// Validate status 2xx \npm.test(\"[GET]::/suggestions/configuration/account/config - Status code is 2xx\", function () {\n pm.response.to.be.success;\n});\n", - "// Validate if response header has matching content-type\npm.test(\"[GET]::/suggestions/configuration/account/config - Content-Type is application/json\", function () {\n pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(\"application/json\");\n});\n", - "// Validate if response has JSON Body \npm.test(\"[GET]::/suggestions/configuration/account/config - Response has JSON Body\", function () {\n pm.response.to.have.jsonBody();\n});\n", - "// Response Validation\nconst schema = {\"description\":\"Response from Get Account's Matcher Settings endpoint with information about current matcher score setting, rules, spec mapping, and matchFlux.\",\"type\":\"object\",\"properties\":{\"score\":{\"description\":\"[Matcher](https://help.vtex.com/pt/tutorial/entendendo-a-pontuacao-do-vtex-matcher--tutorials_424) rates received SKUs by comparing the data sent by sellers to existing fields in the marketplace. The calculation of these scores determines whether the product has been: `Approved`, `Pending` or `Denied`.\",\"type\":\"object\",\"properties\":{\"approve\":{\"type\":\"integer\",\"description\":\"Minimum approval score set by the marketplace.\",\"default\":80},\"pending\":{\"type\":\"integer\",\"description\":\"Minimum value for the ad to be pending.\",\"default\":31},\"reject\":{\"type\":\"integer\",\"description\":\"Bounce score set by marketplace.\",\"default\":30}}},\"matchers\":{\"description\":\"Array of objects that presents a list of matchers configured in the marketplace. If the marketplace has more than one matcher configured in the account, an array will be displayed for each matcher.\\n\\n By default, the VTEX Matcher is set up automatically in VTEX account.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"matcherId\":{\"type\":\"string\",\"description\":\"The Matcher Id.\"},\"hook-base-address\":{\"type\":\"string\",\"description\":\"The base address of the Matcher hook.\"},\"isActive\":{\"type\":\"boolean\",\"description\":\"Indicates if Matcher is active or not. `TRUE` = Matcher is active or `FALSE` = Matcher is inactive.\",\"example\":true}}}},\"rules\":{\"description\":\"Arrays object that contains the rules defined for product approval.\",\"type\":\"object\",\"properties\":{\"item\":{\"type\":\"array\",\"description\":\"A list of rules for items.\"},\"product\":{\"type\":\"array\",\"description\":\"A list of rules for products.\"}}},\"specificationsMapping\":{\"type\":\"array\",\"description\":\"This field will show a list of which product specs and SKU are configured to be mapped.\"},\"matchFlux\":{\"type\":\"string\",\"description\":\"This field shows what type of approval setting is being applied to SKUs received from a seller. \\n\\nPossible values include: \\n\\n-`default`: where Matcher reviews the SKU and approves it based on its score. \\n\\n-`manual`: for manual approvals via incoming SKU UI or mailing API. \\n\\n-`autoApprove`: so that every SKU received from a given seller is automatically approved, regardless of its Matcher Score.\"}}}\n\n// Validate if response matches JSON schema \npm.test(\"[GET]::/suggestions/configuration/account/config - Schema is valid\", function() {\n pm.response.to.have.jsonSchema(schema,{unknownFormats: [\"int32\", \"int64\", \"float\", \"double\"]});\n});\n" + "// Validate status 2xx \npm.test(\"[PUT]::/suggestions/:sellerId/:sellerSkuId - Status code is 2xx\", function () {\n pm.response.to.be.success;\n});\n" ] } } @@ -1808,20 +1880,19 @@ } }, { - "id": "d3df5f0b-2ef9-4d95-b694-dac3219ca015", - "name": "Get Seller's Approval Settings", + "id": "983ecb8b-7646-4d90-bf33-7cacf6c996d3", + "name": "Delete SKU suggestion", "request": { - "name": "Get Seller's Approval Settings", + "name": "Delete SKU suggestion", "description": { - "content": "This endpoint retrieves the current Received SKUs approval settings applied to a specific seller. Its response includes: \n\n- `sellerId`: A string that identifies the seller in the marketplace. \n\n- `accountId`: Marketplace’s account ID. \n\n- `accountName`: Marketplace’s account name. \n\n- `mapping`: Mapping of SKU and product Specifications. \n\n- `matchFlux`: This field determines the type of approval configuration applied to SKUs received from a seller. \n\nThe possible values include: \n\n-`default`, where the Matcher reviews the SKU, and approves it based on its score. \n\n-`manual`, for manual approvals through the Received SKU UI and Match API. \n\n-`autoApprove`, for every SKU received from a given seller to be approved automatically , regardless of the Matcher Score.", + "content": "This endpoint deletes a chosen SKU suggestion. Only one SKU should be deleted per request. This action cannot be undone. A workaround to revert a deletion is to send the suggestion again, through the Send Suggestion API.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/authentication-overview#application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| ---------- | ------------ | ------------ |\r\n| Channels | UI resources | **Save suggestion rules** |\r\n| Suggestion | Suggestion resources | **Main** |\r\n\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication-overview#machine-authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https://help.vtex.com/en/tutorial/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", "type": "text/plain" }, "url": { "path": [ "suggestions", - "configuration", - "seller", - ":sellerId" + ":sellerId", + ":sellerSkuId" ], "host": [ "{{baseUrl}}" @@ -1831,7 +1902,7 @@ { "disabled": false, "description": { - "content": "(Required) A string that identifies the seller in the marketplace. This ID must be created by the marketplace.", + "content": "(Required) A string that identifies the seller in the marketplace. This ID must be created by the marketplace and informed to the seller before the integration is built.", "type": "text/plain" }, "type": "any", @@ -1841,7 +1912,17 @@ { "disabled": false, "description": { - "content": "(Required) Name of the VTEX account that belongs to the marketplace. All data extracted, and changes added will be posted into this account.", + "content": "(Required) A string that identifies the SKU in the marketplace. This is the ID that the marketplace will use for future references to this SKU, such as price and inventory notifications.", + "type": "text/plain" + }, + "type": "any", + "value": "1234", + "key": "sellerSkuId" + }, + { + "disabled": false, + "description": { + "content": "(Required) Name of the VTEX account. Used as part of the URL.", "type": "text/plain" }, "type": "any", @@ -1868,29 +1949,24 @@ }, "key": "Content-Type", "value": "application/json" - }, - { - "key": "Accept", - "value": "application/json" } ], - "method": "GET", + "method": "DELETE", "body": {} }, "response": [ { "_": { - "postman_previewlanguage": "json" + "postman_previewlanguage": "text" }, - "id": "1aa7cb3c-7ef2-457d-bc22-de1a58655747", + "id": "48050612-1093-41c3-8477-27e8f3744a52", "name": "OK", "originalRequest": { "url": { "path": [ "suggestions", - "configuration", - "seller", - ":sellerId" + ":sellerId", + ":sellerSkuId" ], "host": [ "{{baseUrl}}" @@ -1916,24 +1992,14 @@ }, "key": "Content-Type", "value": "application/json" - }, - { - "key": "Accept", - "value": "application/json" } ], - "method": "GET", + "method": "DELETE", "body": {} }, "status": "OK", "code": 200, - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "body": "{\n \"sellerId\": \"sellerexample\",\n \"accountId\": \"d74dau71f-325a-4463-bd53-ae8b0453186ca\",\n \"accountName\": \"marketplaceexample\",\n \"mapping\": {\n \"defaultColor\": \"white /black\",\n \"searchColor\": \"color1, color2\",\n \"color1\": \"black\",\n \"color2\": \"white\",\n \"color\": \"black\",\n \"size\": \"EUR44\"\n },\n \"matchFlux\": \"default\"\n}", + "header": [], "cookie": [] } ], @@ -1941,13 +2007,10 @@ { "listen": "test", "script": { - "id": "71defea0-41da-4484-b5c2-5f04a0a64518", + "id": "79cc6a3f-faa3-4d80-862d-1ea10630cd3d", "type": "text/javascript", "exec": [ - "// Validate status 2xx \npm.test(\"[GET]::/suggestions/configuration/seller/:sellerId - Status code is 2xx\", function () {\n pm.response.to.be.success;\n});\n", - "// Validate if response header has matching content-type\npm.test(\"[GET]::/suggestions/configuration/seller/:sellerId - Content-Type is application/json\", function () {\n pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(\"application/json\");\n});\n", - "// Validate if response has JSON Body \npm.test(\"[GET]::/suggestions/configuration/seller/:sellerId - Response has JSON Body\", function () {\n pm.response.to.have.jsonBody();\n});\n", - "// Response Validation\nconst schema = {\"type\":\"object\",\"properties\":{\"sellerId\":{\"type\":\"string\",\"description\":\"A string that identifies the seller in the marketplace.\",\"example\":\"sellerexample\"},\"accountId\":{\"type\":\"string\",\"description\":\"Marketplace’s account ID.\",\"example\":\"d74daf1f-355a-4463-bdc7-ae8b045311c\"},\"accountName\":{\"type\":\"string\",\"description\":\"Marketplace’s account name.\",\"example\":\"marketplaceexample\"},\"mapping\":{\"type\":\"object\",\"default\":{},\"description\":\"SKU Mapping Information and Product [Specifications](https://developers.vtex.com/docs/guides/catalog-overview#configuring-initial-settings-mandatory).\\n\\n The properties included within `mapping` can change according to the product type, the `color` specification and its variations described in this example are just one of the possibilities. The values received in this call's payload for those properties depend on the seller's catalog architecture, and are not default. \\n\\nSee some examples of specifications: \\n\\n- Voltage \\n\\n- Power \\n\\n- Size \\n\\n- Height \\n\\n- Width.\",\"properties\":{\"defaultColor\":{\"type\":\"string\",\"description\":\"The field will indicate the default color predefined by the seller in cases where specific product colors are not defined. This field is neither mandatory nor default, it will depend on the architecture of the seller's catalog.\",\"example\":\"white /black\"},\"searchColor\":{\"type\":\"string\",\"description\":\"Field that provides the available colors to filter searches. This field is neither mandatory nor default, it will depend on the architecture of the seller's catalog.\",\"example\":\"color1, color2\"},\"color1\":{\"type\":\"string\",\"description\":\"`color1` available for search filter. This field is neither mandatory nor default, it will depend on the architecture of the seller's catalog.\",\"example\":\"black\"},\"color2\":{\"type\":\"string\",\"description\":\"`color2` available for search filter. This field is neither mandatory nor default, it will depend on the architecture of the seller's catalog.\",\"example\":\"white\"},\"color\":{\"type\":\"string\",\"description\":\"Indicates the predominant or main color of the product. This field is neither mandatory nor default, it will depend on the architecture of the seller's catalog.\",\"example\":\"black\"},\"size\":{\"type\":\"string\",\"description\":\"Indicates the size of the product.This field is neither mandatory nor default, it will depend on the architecture of the seller's catalog.\",\"example\":\"EUR44\"}}},\"matchFlux\":{\"type\":\"string\",\"description\":\"This field determines the type of [approval configuration applied to SKUs received from a seller](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#put-/suggestions/configuration/seller/-sellerId-). \\n\\nThe possible values include: \\n\\n-`default`, where the Matcher reviews the SKU, and approves it based on its score. \\n\\n-`manual`, for manual approvals through the Received SKU UI and Match API. \\n\\n-`autoApprove`, for every SKU received from a given seller to be approved automatically, regardless of the Matcher Score.\",\"example\":\"autoApprove\"}}}\n\n// Validate if response matches JSON schema \npm.test(\"[GET]::/suggestions/configuration/seller/:sellerId - Schema is valid\", function() {\n pm.response.to.have.jsonSchema(schema,{unknownFormats: [\"int32\", \"int64\", \"float\", \"double\"]});\n});\n" + "// Validate status 2xx \npm.test(\"[DELETE]::/suggestions/:sellerId/:sellerSkuId - Status code is 2xx\", function () {\n pm.response.to.be.success;\n});\n" ] } } @@ -1955,22 +2018,33 @@ "protocolProfileBehavior": { "disableBodyPruning": true } - }, + } + ], + "event": [] + }, + { + "id": "6aa8db90-c7d7-43a8-bbf1-fafcd91d21a1", + "name": "Get Versions", + "description": { + "content": "", + "type": "text/plain" + }, + "item": [ { - "id": "dcd77acc-c414-4cb5-a153-062c2bb64012", - "name": "Save Seller's Approval Settings", + "id": "91ce20cc-4261-4108-ba75-0c428042d3e2", + "name": "Get all versions", "request": { - "name": "Save Seller's Approval Settings", + "name": "Get all versions", "description": { - "content": "Marketplaces use this endpoint to create or update approval settings to a specific seller, on the Received SKUs module. \n\nThe request includes all the details necessary to implement the chosen approval settings.", + "content": "Whenever a SKU suggestion is updated or changed, a new version of the original one is created. All versions are logged, so you can search for previous our current states of SKU suggestions. \n\nThis endpoint retrieves the data of *all* previous and latest versions of a specific SKU suggestion, sent by the seller. Whenever a SKU is updated, it is important to map previous versions, to compare and identify changes. \n\nThe response's object [latestversion] provides the information of the most recent version of that SKU suggestion.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/authentication-overview#application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| ---------- | ------------ | ------------ |\r\n| Channels | UI resources | **Save suggestion rules** |\r\n| Suggestion | Suggestion resources | **Main** |\r\n\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication-overview#machine-authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https://help.vtex.com/en/tutorial/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", "type": "text/plain" }, "url": { "path": [ "suggestions", - "configuration", - "seller", - ":sellerId" + ":sellerId", + ":sellerskuid", + "versions" ], "host": [ "{{baseUrl}}" @@ -1980,7 +2054,7 @@ { "disabled": false, "description": { - "content": "(Required) A string that identifies the seller in the marketplace. This ID must be created by the marketplace.", + "content": "(Required) A string that identifies the seller in the marketplace. This ID must be created by the marketplace and informed to the seller before the integration is built.", "type": "text/plain" }, "type": "any", @@ -1990,7 +2064,17 @@ { "disabled": false, "description": { - "content": "(Required) Name of the VTEX account that belongs to the marketplace. All data extracted, and changes added will be posted into this account.", + "content": "(Required) A string that identifies the SKU in the marketplace. This is the ID that the marketplace will use for future references to this SKU, such as price and inventory notifications.", + "type": "text/plain" + }, + "type": "any", + "value": "1234", + "key": "sellerskuid" + }, + { + "disabled": false, + "description": { + "content": "(Required) Name of the VTEX account. Used as part of the URL", "type": "text/plain" }, "type": "any", @@ -2003,7 +2087,7 @@ { "disabled": false, "description": { - "content": "(Required) HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand.", + "content": "(Required) HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand", "type": "text/plain" }, "key": "Accept", @@ -2017,38 +2101,25 @@ }, "key": "Content-Type", "value": "application/json" - }, - { - "key": "Content-Type", - "value": "application/json" } ], - "method": "PUT", - "body": { - "mode": "raw", - "raw": "{\n \"sellerId\": \"1a\",\n \"mapping\": null,\n \"matchFlux\": \"Default\"\n}", - "options": { - "raw": { - "headerFamily": "json", - "language": "json" - } - } - } + "method": "GET", + "body": {} }, "response": [ { "_": { "postman_previewlanguage": "text" }, - "id": "9ca8f031-80dd-4c71-a3d6-fa3f9382be96", + "id": "52815855-c2c4-4029-b021-40d882a88809", "name": "OK", "originalRequest": { "url": { "path": [ "suggestions", - "configuration", - "seller", - ":sellerId" + ":sellerId", + ":sellerskuid", + "versions" ], "host": [ "{{baseUrl}}" @@ -2060,7 +2131,7 @@ { "disabled": false, "description": { - "content": "(Required) HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand.", + "content": "(Required) HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand", "type": "text/plain" }, "key": "Accept", @@ -2074,23 +2145,10 @@ }, "key": "Content-Type", "value": "application/json" - }, - { - "key": "Content-Type", - "value": "application/json" } ], - "method": "PUT", - "body": { - "mode": "raw", - "raw": "{\n \"sellerId\": \"1a\",\n \"mapping\": null,\n \"matchFlux\": \"Default\"\n}", - "options": { - "raw": { - "headerFamily": "json", - "language": "json" - } - } - } + "method": "GET", + "body": {} }, "status": "OK", "code": 200, @@ -2102,10 +2160,10 @@ { "listen": "test", "script": { - "id": "f5746215-34e4-4b87-9153-d679cc648406", + "id": "96208e9f-05ff-452b-ad5a-f1e4e4ba04cc", "type": "text/javascript", "exec": [ - "// Validate status 2xx \npm.test(\"[PUT]::/suggestions/configuration/seller/:sellerId - Status code is 2xx\", function () {\n pm.response.to.be.success;\n});\n" + "// Validate status 2xx \npm.test(\"[GET]::/suggestions/:sellerId/:sellerskuid/versions - Status code is 2xx\", function () {\n pm.response.to.be.success;\n});\n" ] } } @@ -2115,22 +2173,21 @@ } }, { - "id": "0ca44f99-e085-4546-b814-2fdb0e6a08e9", - "name": "Activate autoApprove Setting for a Seller", + "id": "e7e2c9f8-7256-480b-ad27-c93cd33464cc", + "name": "Get version by ID", "request": { - "name": "Activate autoApprove Setting for a Seller", + "name": "Get version by ID", "description": { - "content": "This endpoint enables the auto approve setting to received SKUs from a specific seller. Be aware that once enabling the rule through this request, all received SKUs from that seller will be automatically approved on your store, regardless of the Matcher Score.", + "content": "Whenever a SKU suggestion is updated or changed, a new version of the original one is created. All versions are logged, so you can search for previous our current states of SKU suggestions. \n\n This endpoint retrieves a specific *version* of a chosen SKU sent by the seller. Add the Seller's ID, Seller's SKU ID, and version ID in the path to detail your search.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/authentication-overview#application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| ---------- | ------------ | ------------ |\r\n| Channels | UI resources | **Save suggestion rules** |\r\n| Suggestion | Suggestion resources | **Main** |\r\n\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication-overview#machine-authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https://help.vtex.com/en/tutorial/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", "type": "text/plain" }, "url": { "path": [ "suggestions", - "configuration", - "autoapproval", - "toggle", - "seller", - ":sellerId" + ":sellerId", + ":sellerskuid", + "versions", + ":version" ], "host": [ "{{baseUrl}}" @@ -2140,7 +2197,7 @@ { "disabled": false, "description": { - "content": "(Required) A string that identifies the seller in the marketplace. This ID must be created by the marketplace.", + "content": "(Required) A string that identifies the seller in the marketplace. This ID must be created by the marketplace and informed to the seller before the integration is built.", "type": "text/plain" }, "type": "any", @@ -2150,7 +2207,27 @@ { "disabled": false, "description": { - "content": "(Required) Name of the VTEX account that belongs to the marketplace. All data extracted, and changes added will be posted into this account.", + "content": "(Required) A string that identifies the SKU in the marketplace. This is the ID that the marketplace will use for future references to this SKU, such as price and inventory notifications.", + "type": "text/plain" + }, + "type": "any", + "value": "1234", + "key": "sellerskuid" + }, + { + "disabled": false, + "description": { + "content": "(Required) Whenever an SKU Suggestion is updated or changed, a new version of the original one is created. All versions are logged, so you can search for previous our current states of SKU suggestions. This field is the `versionId` associated to the version you choose to search for. You can get this field's value through the [Get SKU Suggestion by ID](https://developers.vtex.com/vtex-rest-api/reference/getsuggestion). through the `latestVersionId` field.", + "type": "text/plain" + }, + "type": "any", + "value": "09072021142808277", + "key": "version" + }, + { + "disabled": false, + "description": { + "content": "(Required) Name of the VTEX account. Used as part of the URL", "type": "text/plain" }, "type": "any", @@ -2163,7 +2240,7 @@ { "disabled": false, "description": { - "content": "(Required) HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand.", + "content": "(Required) HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand", "type": "text/plain" }, "key": "Accept", @@ -2177,40 +2254,26 @@ }, "key": "Content-Type", "value": "application/json" - }, - { - "key": "Content-Type", - "value": "application/json" } ], - "method": "PUT", - "body": { - "mode": "raw", - "raw": "{\n \"Enabled\": true\n}", - "options": { - "raw": { - "headerFamily": "json", - "language": "json" - } - } - } + "method": "GET", + "body": {} }, "response": [ { "_": { "postman_previewlanguage": "text" }, - "id": "fe167d41-8708-4d98-8deb-b84a9f630659", + "id": "9a2d3c1c-a615-451b-a626-69497af9e3d7", "name": "OK", "originalRequest": { "url": { "path": [ "suggestions", - "configuration", - "autoapproval", - "toggle", - "seller", - ":sellerId" + ":sellerId", + ":sellerskuid", + "versions", + ":version" ], "host": [ "{{baseUrl}}" @@ -2222,7 +2285,7 @@ { "disabled": false, "description": { - "content": "(Required) HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand.", + "content": "(Required) HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand", "type": "text/plain" }, "key": "Accept", @@ -2236,23 +2299,10 @@ }, "key": "Content-Type", "value": "application/json" - }, - { - "key": "Content-Type", - "value": "application/json" } ], - "method": "PUT", - "body": { - "mode": "raw", - "raw": "{\n \"Enabled\": true\n}", - "options": { - "raw": { - "headerFamily": "json", - "language": "json" - } - } - } + "method": "GET", + "body": {} }, "status": "OK", "code": 200, @@ -2264,10 +2314,10 @@ { "listen": "test", "script": { - "id": "d1871b3d-b2d7-4479-8f78-07ee5b5f174b", + "id": "8a9e6895-f028-49ec-bf60-bb4811a89496", "type": "text/javascript", "exec": [ - "// Validate status 2xx \npm.test(\"[PUT]::/suggestions/configuration/autoapproval/toggle/seller/:sellerId - Status code is 2xx\", function () {\n pm.response.to.be.success;\n});\n" + "// Validate status 2xx \npm.test(\"[GET]::/suggestions/:sellerId/:sellerskuid/versions/:version - Status code is 2xx\", function () {\n pm.response.to.be.success;\n});\n" ] } } @@ -2280,20 +2330,20 @@ "event": [] }, { - "id": "6a027c7a-8a12-43dc-a5b9-8394e67f5d61", + "id": "71fcfa98-ae61-4a0d-9429-e02c7d7fa436", "name": "Match Received SKUs", "description": { - "content": "Match SKU suggestions received in the marketplace.", + "content": "", "type": "text/plain" }, "item": [ { - "id": "43179973-76e6-4abd-bd12-d5e66d089ac2", - "name": "Match Received SKUs individually", + "id": "8b28fb96-9072-4310-bb7d-48db54ef6d77", + "name": "Match received SKUs individually", "request": { - "name": "Match Received SKUs individually", + "name": "Match received SKUs individually", "description": { - "content": "All SKUs sent from a seller to a marketplace must be reviewed and matched. Actions in the matching process are added in the request body through the [matchType] object. Match type actions include: \n\n1. `newproduct`: match the SKU as a new product. \n\n2. `itemMatch`: associate the received SKU to an existing SKU. \n\n3. `productMatch`: associate the received SKU to an existing product. \n\n4. `deny`: deny the received SKU. \n\n5. `pending`: the received SKU requires attention. \n\n6. `incomplete`: the received SKU is lacking information to be matched. \n\n7. `insufficientScore`: the score given by the Matcher to this received SKU doesn't qualify it to be matched. \n\nNote that if the autoApprove setting is enabled, the SKUs will be approved, regardless of the Score.", + "content": "All SKUs sent from a seller to a marketplace must be reviewed and matched. Actions in the matching process are added in the request body through the [matchType] object. Match type actions include: \n\n1. `newproduct`: Match the SKU as a new product. \n\n2. `itemMatch`: Associate the received SKU to an existing SKU. \n\n3. `productMatch`: Associate the received SKU to an existing product. \n\n4. `deny`: Deny the received SKU. \n\n5. `pending`: The received SKU requires attention. \n\n6. `incomplete`: The received SKU is lacking information to be matched. \n\n7. `insufficientScore`: The Score given by the Matcher to this received SKU doesn't qualify it to be matched. \n\nNote that if the autoApprove setting is enabled, the SKUs will be approved, regardless of the Score.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/authentication-overview#application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| ---------- | ------------ | ------------ |\r\n| Channels | UI resources | **Save suggestion rules** |\r\n| Suggestion | Suggestion resources | **Main** |\r\n\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication-overview#machine-authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https://help.vtex.com/en/tutorial/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", "type": "text/plain" }, "url": { @@ -2348,7 +2398,7 @@ "type": "text/plain" }, "type": "any", - "value": "deserunt aliquip in irure veniam", + "value": "sed id", "key": "matchid" }, { @@ -2385,12 +2435,16 @@ { "key": "Content-Type", "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" } ], "method": "PUT", "body": { "mode": "raw", - "raw": "{\n \"matcherId\": \"{{matcherid}}\",\n \"matchType\": \"itemMatch\",\n \"score\": \"{{score}} (must be decimal)\",\n \"skuRef\": \"{{skuid}}(should be specifed when match is a sku match)\",\n \"productRef\": \"{{productRef}}(should be specified when match is a product match)\",\n \"product\": {\n \"name\": \"Book A\",\n \"description\": \"Book description\",\n \"categoryId\": 12,\n \"brandId\": 1234567,\n \"matchType\": \"itemMatch\",\n \"specifications\": null\n },\n \"sku\": {\n \"name\": \"Sku exemplo\",\n \"eans\": [\n \"12345678901213\"\n ],\n \"refId\": null,\n \"height\": 1,\n \"width\": 1,\n \"length\": 1,\n \"weight\": 1,\n \"images\": [\n {\n \"imagem1.jpg\": {\n \"imagem1.jpg\": \"https://imageurl.example\"\n }\n }\n ],\n \"unitMultiplier\": 1,\n \"measurementUnit\": \"un\",\n \"specifications\": {\n \"Embalagem\": \"3 k g\"\n }\n }\n}", + "raw": "{\n \"matcherId\": \"{{matcherid}}\",\n \"matchType\": \"itemMatch\",\n \"score\": \"{{score}} (must be decimal)\",\n \"skuRef\": \"{{skuid}}(should be specifed when match is a sku match)\",\n \"productRef\": \"{{productRef}}(should be specified when match is a product match)\",\n \"product\": {\n \"name\": \"Book A\",\n \"description\": \"Book description\",\n \"categoryId\": 12,\n \"brandId\": 1234567,\n \"matchType\": \"itemMatch\",\n \"specifications\": null\n },\n \"sku\": {\n \"name\": \"Sku exemplo\",\n \"eans\": [\n \"12345678901213\"\n ],\n \"refId\": null,\n \"height\": 1,\n \"width\": 1,\n \"length\": 1,\n \"weight\": 1,\n \"images\": {\n \"imagem1.jpg\": \"https://imageurl.example\"\n },\n \"unitMultiplier\": 1,\n \"measurementUnit\": \"un\",\n \"specifications\": {\n \"Packaging\": \"3kg\"\n }\n }\n}", "options": { "raw": { "headerFamily": "json", @@ -2402,9 +2456,9 @@ "response": [ { "_": { - "postman_previewlanguage": "text" + "postman_previewlanguage": "json" }, - "id": "7d65bae0-fd21-47b2-8963-5f374515a0a2", + "id": "f9f6cd10-d0f4-4fe1-8b26-64a9d5bb2919", "name": "OK", "originalRequest": { "url": { @@ -2445,12 +2499,16 @@ { "key": "Content-Type", "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" } ], "method": "PUT", "body": { "mode": "raw", - "raw": "{\n \"matcherId\": \"{{matcherid}}\",\n \"matchType\": \"itemMatch\",\n \"score\": \"{{score}} (must be decimal)\",\n \"skuRef\": \"{{skuid}}(should be specifed when match is a sku match)\",\n \"productRef\": \"{{productRef}}(should be specified when match is a product match)\",\n \"product\": {\n \"name\": \"Book A\",\n \"description\": \"Book description\",\n \"categoryId\": 12,\n \"brandId\": 1234567,\n \"matchType\": \"itemMatch\",\n \"specifications\": null\n },\n \"sku\": {\n \"name\": \"Sku exemplo\",\n \"eans\": [\n \"12345678901213\"\n ],\n \"refId\": null,\n \"height\": 1,\n \"width\": 1,\n \"length\": 1,\n \"weight\": 1,\n \"images\": [\n {\n \"imagem1.jpg\": {\n \"imagem1.jpg\": \"https://imageurl.example\"\n }\n }\n ],\n \"unitMultiplier\": 1,\n \"measurementUnit\": \"un\",\n \"specifications\": {\n \"Embalagem\": \"3 k g\"\n }\n }\n}", + "raw": "{\n \"matcherId\": \"{{matcherid}}\",\n \"matchType\": \"itemMatch\",\n \"score\": \"{{score}} (must be decimal)\",\n \"skuRef\": \"{{skuid}}(should be specifed when match is a sku match)\",\n \"productRef\": \"{{productRef}}(should be specified when match is a product match)\",\n \"product\": {\n \"name\": \"Book A\",\n \"description\": \"Book description\",\n \"categoryId\": 12,\n \"brandId\": 1234567,\n \"matchType\": \"itemMatch\",\n \"specifications\": null\n },\n \"sku\": {\n \"name\": \"Sku exemplo\",\n \"eans\": [\n \"12345678901213\"\n ],\n \"refId\": null,\n \"height\": 1,\n \"width\": 1,\n \"length\": 1,\n \"weight\": 1,\n \"images\": {\n \"imagem1.jpg\": \"https://imageurl.example\"\n },\n \"unitMultiplier\": 1,\n \"measurementUnit\": \"un\",\n \"specifications\": {\n \"Packaging\": \"3kg\"\n }\n }\n}", "options": { "raw": { "headerFamily": "json", @@ -2461,7 +2519,13 @@ }, "status": "OK", "code": 200, - "header": [], + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "[\n {\n \"matchId\": \"06272023010821403\",\n \"matcherId\": \"vtex-matcher\",\n \"sellerId\": \"test858\",\n \"itemID\": \"81\",\n \"isSuccess\": false\n }\n]", "cookie": [] } ], @@ -2469,10 +2533,13 @@ { "listen": "test", "script": { - "id": "546901be-4e5a-4065-944e-b8685d40b5e5", + "id": "80c87626-d24f-4ff4-a4e2-766cf04781c9", "type": "text/javascript", "exec": [ - "// Validate status 2xx \npm.test(\"[PUT]::/suggestions/:sellerId/:sellerskuid/versions/:version/matches/:matchid - Status code is 2xx\", function () {\n pm.response.to.be.success;\n});\n" + "// Validate status 2xx \npm.test(\"[PUT]::/suggestions/:sellerId/:sellerskuid/versions/:version/matches/:matchid - Status code is 2xx\", function () {\n pm.response.to.be.success;\n});\n", + "// Validate if response header has matching content-type\npm.test(\"[PUT]::/suggestions/:sellerId/:sellerskuid/versions/:version/matches/:matchid - Content-Type is application/json\", function () {\n pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(\"application/json\");\n});\n", + "// Validate if response has JSON Body \npm.test(\"[PUT]::/suggestions/:sellerId/:sellerskuid/versions/:version/matches/:matchid - Response has JSON Body\", function () {\n pm.response.to.have.jsonBody();\n});\n", + "// Response Validation\nconst schema = {\"type\":\"array\",\"description\":\"An array containing the results of multiple match operations. Each object in the array represents the outcome of a single match attempt.\",\"items\":{\"type\":\"object\",\"description\":\"Represents the result of a single match operation, including details such as match ID, matcher ID, seller ID, item ID, and whether the operation was successful.\",\"properties\":{\"matchId\":{\"type\":\"string\",\"description\":\"Unique identifier for the match operation, which can be used for tracking and auditing purposes.\"},\"matcherId\":{\"type\":\"string\",\"description\":\"Identifier for the matcher entity that performed the match. It can represent VTEX's internal matcher or an external matcher service.\"},\"sellerId\":{\"type\":\"string\",\"description\":\"Unique identifier of the seller who owns the SKU being matched.\"},\"itemId\":{\"type\":\"string\",\"description\":\"Unique identifier of the item (SKU) that was processed during the match operation.\"},\"isSuccess\":{\"type\":\"boolean\",\"description\":\"Indicates whether the match operation was successful. A value of `true` means the operation succeeded, while `false` indicates a failure.\"}}}}\n\n// Validate if response matches JSON schema \npm.test(\"[PUT]::/suggestions/:sellerId/:sellerskuid/versions/:version/matches/:matchid - Schema is valid\", function() {\n pm.response.to.have.jsonSchema(schema,{unknownFormats: [\"int32\", \"int64\", \"float\", \"double\"]});\n});\n" ] } } @@ -2482,12 +2549,12 @@ } }, { - "id": "2a4de262-79fb-4b37-92b3-56092f3cc58f", - "name": "Match Multiple Received SKUs", + "id": "c128309b-168e-48f6-bae0-0df531746f8e", + "name": "Match multiple received SKUs", "request": { - "name": "Match Multiple Received SKUs", + "name": "Match multiple received SKUs", "description": { - "content": "Allows a marketplace to bulk approve, deny, or associate up to 25 received SKUs from sellers.\n\nThrough the `actionName` attribute, you can select the operation you want to apply to the received SKU. Actions include: \n\n* `newproduct`: match the SKU as a new product. \n\n* `skuassociation`: associate the received SKU to an existing SKU. \n\n* `productassociation`: associate the received SKU to an existing product. \n\n* `deny`: deny the received SKU.", + "content": "Allows a marketplace to bulk approve, deny, or associate up to 25 received SKUs from sellers.\n\nThrough the `actionName` attribute, you can select the operation you want to apply to the received SKU. Actions include: \n\n* `newproduct`: Match the SKU as a new product. \n\n* `skuassociation`: Associate the received SKU to an existing SKU. \n\n* `productassociation`: Associate the received SKU to an existing product. \n\n* `deny`: Deny the received SKU.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https://developers.vtex.com/docs/guides/authentication-overview#application-keys) must have at least one of the appropriate [License Manager resources](https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| ---------- | ------------ | ------------ |\r\n| Channels | UI resources | **Save suggestion rules** |\r\n| Suggestion | Suggestion resources | **Main** |\r\n\r\n\r\nThere are no applicable [predefined roles](https://help.vtex.com/en/tutorial/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https://help.vtex.com/en/tutorial/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https://developers.vtex.com/docs/guides/authentication-overview#machine-authentication).\r\n\r\n>❗ To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https://help.vtex.com/en/tutorial/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", "type": "text/plain" }, "url": { @@ -2569,7 +2636,7 @@ "_": { "postman_previewlanguage": "json" }, - "id": "c42fd939-b728-4290-ab2a-0d8bdf2ce072", + "id": "8ff806f5-4286-4e59-b46b-5950b429fd99", "name": "OK", "originalRequest": { "url": { @@ -2633,7 +2700,7 @@ "value": "application/json" } ], - "body": "[\n {\n \"matchId\": \"06272023010821403\",\n \"matcherId\": \"vtex-matcher\",\n \"sellerId\": \"melissatestbug858\",\n \"itemId\": \"81\",\n \"isSuccess\": false\n },\n {\n \"matchId\": \"06272023010821403\",\n \"matcherId\": \"vtex-matcher\",\n \"sellerId\": \"melissatestbug858\",\n \"itemId\": \"81\",\n \"isSuccess\": false\n }\n]", + "body": "[\n {\n \"matchId\": \"06272023010821403\",\n \"matcherId\": \"vtex-matcher\",\n \"sellerId\": \"test858\",\n \"itemID\": \"81\",\n \"isSuccess\": false\n }\n]", "cookie": [] } ], @@ -2641,13 +2708,13 @@ { "listen": "test", "script": { - "id": "71680815-502d-436b-995b-fea4eafb54e3", + "id": "04bc1741-52c2-4b61-93c3-3ce2e2610323", "type": "text/javascript", "exec": [ "// Validate status 2xx \npm.test(\"[PUT]::/suggestions/matches/action/:actionName - Status code is 2xx\", function () {\n pm.response.to.be.success;\n});\n", "// Validate if response header has matching content-type\npm.test(\"[PUT]::/suggestions/matches/action/:actionName - Content-Type is application/json\", function () {\n pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(\"application/json\");\n});\n", "// Validate if response has JSON Body \npm.test(\"[PUT]::/suggestions/matches/action/:actionName - Response has JSON Body\", function () {\n pm.response.to.have.jsonBody();\n});\n", - "// Response Validation\nconst schema = {\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"matchId\":{\"type\":\"string\",\"example\":\"06272023010821403\"},\"matcherId\":{\"type\":\"string\",\"example\":\"vtex-matcher\"},\"sellerId\":{\"type\":\"string\",\"example\":\"melissatestbug858\"},\"itemId\":{\"type\":\"string\",\"example\":\"81\"},\"isSuccess\":{\"type\":\"boolean\",\"example\":false}}}}\n\n// Validate if response matches JSON schema \npm.test(\"[PUT]::/suggestions/matches/action/:actionName - Schema is valid\", function() {\n pm.response.to.have.jsonSchema(schema,{unknownFormats: [\"int32\", \"int64\", \"float\", \"double\"]});\n});\n" + "// Response Validation\nconst schema = {\"type\":\"array\",\"description\":\"An array containing the results of multiple match operations. Each object in the array represents the outcome of a single match attempt.\",\"items\":{\"type\":\"object\",\"description\":\"Represents the result of a single match operation, including details such as match ID, matcher ID, seller ID, item ID, and whether the operation was successful.\",\"properties\":{\"matchId\":{\"type\":\"string\",\"description\":\"Unique identifier for the match operation, which can be used for tracking and auditing purposes.\"},\"matcherId\":{\"type\":\"string\",\"description\":\"Identifier for the matcher entity that performed the match. It can represent VTEX's internal matcher or an external matcher service.\"},\"sellerId\":{\"type\":\"string\",\"description\":\"Unique identifier of the seller who owns the SKU being matched.\"},\"itemId\":{\"type\":\"string\",\"description\":\"Unique identifier of the item (SKU) that was processed during the match operation.\"},\"isSuccess\":{\"type\":\"boolean\",\"description\":\"Indicates whether the match operation was successful. A value of `true` means the operation succeeded, while `false` indicates a failure.\"}}}}\n\n// Validate if response matches JSON schema \npm.test(\"[PUT]::/suggestions/matches/action/:actionName - Schema is valid\", function() {\n pm.response.to.have.jsonSchema(schema,{unknownFormats: [\"int32\", \"int64\", \"float\", \"double\"]});\n});\n" ] } } @@ -2674,7 +2741,7 @@ } ], "info": { - "_postman_id": "437b69f6-ecd1-4e01-99ff-0d65b27a0aa4", + "_postman_id": "2ad7a3e9-aca7-4156-b921-7edf011d0b7b", "name": "Suggestions", "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", "description": { diff --git a/PostmanCollections/VTEX - Payment Provider Protocol.json b/PostmanCollections/VTEX - Payment Provider Protocol.json index 2b56b7627..e127e0c05 100644 --- a/PostmanCollections/VTEX - Payment Provider Protocol.json +++ b/PostmanCollections/VTEX - Payment Provider Protocol.json @@ -1,10 +1,10 @@ { "_": { - "postman_id": "5374ce81-2181-44c2-8edf-038dd509f7a1" + "postman_id": "1322932f-66f1-4c40-8ae4-7321afd1774b" }, "item": [ { - "id": "63e01357-d2c5-4bf9-ad42-cfb7c9717c1a", + "id": "bed5e2a0-101e-4f89-970c-7d7525b49fa8", "name": "Payment Flow", "description": { "content": "", @@ -12,7 +12,7 @@ }, "item": [ { - "id": "dd3a3838-8e04-4b4d-b712-fb9b61b77300", + "id": "ec0419aa-1f4c-48a2-b823-57f76c2a90c5", "name": "List Payment Provider Manifest", "request": { "name": "List Payment Provider Manifest", @@ -28,17 +28,7 @@ "{{baseUrl}}" ], "query": [], - "variable": [ - { - "description": { - "content": "Payment provider endpoint URL.", - "type": "text/plain" - }, - "type": "any", - "value": "{{providerApiEndpoint}}", - "key": "providerApiEndpoint" - } - ] + "variable": [] }, "header": [ { @@ -58,16 +48,21 @@ }, "key": "Accept", "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" } ], - "method": "GET" + "method": "GET", + "body": {} }, "response": [ { "_": { "postman_previewlanguage": "json" }, - "id": "afac73f4-ac1d-4e89-81ab-c0b5d5f824c8", + "id": "f68c09c3-3142-4c09-af8a-074095632722", "name": "OK", "originalRequest": { "url": { @@ -78,17 +73,7 @@ "{{baseUrl}}" ], "query": [], - "variable": [ - { - "description": { - "content": "Payment provider endpoint URL.", - "type": "text/plain" - }, - "type": "any", - "value": "{{providerApiEndpoint}}", - "key": "providerApiEndpoint" - } - ] + "variable": [] }, "header": [ { @@ -133,7 +118,7 @@ { "listen": "test", "script": { - "id": "4a8c1bee-b118-4964-98ab-09edb82e995b", + "id": "2447bc62-97e2-4f47-95f4-740daf8b696e", "type": "text/javascript", "exec": [ "// Validate status 2xx \npm.test(\"[GET]::/manifest - Status code is 2xx\", function () {\n pm.response.to.be.success;\n});\n", @@ -149,7 +134,7 @@ } }, { - "id": "917a84fe-3b20-4874-849a-6999c7daa275", + "id": "5bf4c400-7025-42e4-a9c7-d2cf66b86793", "name": "Create payment", "request": { "name": "Create payment", @@ -165,17 +150,7 @@ "{{baseUrl}}" ], "query": [], - "variable": [ - { - "description": { - "content": "Payment provider endpoint URL.", - "type": "text/plain" - }, - "type": "any", - "value": "{{providerApiEndpoint}}", - "key": "providerApiEndpoint" - } - ] + "variable": [] }, "header": [ { @@ -213,6 +188,14 @@ }, "key": "Accept", "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" } ], "method": "POST", @@ -221,6 +204,7 @@ "raw": "{\n \"reference\": \"618272\",\n \"orderId\": \"1072430428324\",\n \"shopperInteraction\": \"ecommerce\",\n \"transactionId\": \"2F023FD5A72A49D48A8633252B7CCBD6\",\n \"paymentId\": \"01693EB95BE443AC85874E395CD91565\",\n \"paymentMethod\": \"Diners\",\n \"paymentMethodCustomCode\": null,\n \"merchantName\": \"mystore\",\n \"card\": {\n \"holder\": \"John Doe\",\n \"number\": \"364901****2661\",\n \"csc\": \"***\",\n \"expiration\": {\n \"month\": \"12\",\n \"year\": \"2020\"\n },\n \"document\": \"39295416023\",\n \"token\": null\n },\n \"value\": 31.9,\n \"referenceValue\": 31.9,\n \"currency\": \"BRL\",\n \"installments\": 1,\n \"installmentsInterestRate\": 0,\n \"installmentsValue\": 31.9,\n \"deviceFingerprint\": \"75076388\",\n \"ipAddress\": \"187.105.111.65\",\n \"miniCart\": {\n \"buyer\": {\n \"id\": \"c1245228-1c68-11e6-94ac-0afa86a846a5\",\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"document\": \"01234567890\",\n \"documentType\": \"cpf\",\n \"corporateName\": null,\n \"tradeName\": null,\n \"corporateDocument\": null,\n \"isCorporate\": false,\n \"email\": \"john.doe@example.com\",\n \"phone\": \"+5521999999999\",\n \"createdDate\": \"2020-02-18T18:17:45\"\n },\n \"shippingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Praia de Botafogo St.\",\n \"number\": \"300\",\n \"complement\": \"3rd Floor\",\n \"neighborhood\": \"Botafogo\",\n \"postalCode\": \"22250040\",\n \"city\": \"Rio de Janeiro\",\n \"state\": \"RJ\"\n },\n \"billingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Brigadeiro Faria Lima Avenue\",\n \"number\": \"4440\",\n \"complement\": \"10th Floor\",\n \"neighborhood\": \"Itaim Bibi\",\n \"postalCode\": \"04538132\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\"\n },\n \"items\": [\n {\n \"id\": \"8\",\n \"name\": \"Tenis Preto I\",\n \"price\": 30.9,\n \"quantity\": 1,\n \"discount\": 0,\n \"deliveryType\": \"Normal\",\n \"categoryId\": \"5\",\n \"sellerId\": \"1\"\n }\n ],\n \"shippingValue\": 1,\n \"taxValue\": 0\n },\n \"url\": \"https://admin.mystore.example.com/orders?q=1072430428324\",\n \"callbackUrl\": \"https://api.mystore.example.com/some-path/to-notify/status-changes?an=mystore\",\n \"returnUrl\": \"https://mystore.example.com/checkout/order/1072430428324\",\n \"inboundRequestsUrl\": \"https://api.mystore.example.com/checkout/order/1072430428324/inbound-request/:action\",\n \"recipients\": [\n {\n \"id\": \"mymarketplace\",\n \"name\": \"My Marketplace QA\",\n \"documentType\": \"CNPJ\",\n \"document\": \"99999999999999\",\n \"role\": \"marketplace\",\n \"chargeProcessingFee\": true,\n \"chargebackLiable\": true,\n \"amount\": 31.9\n }\n ],\n \"merchantSettings\": [\n {\n \"name\": \"field1\",\n \"value\": \"value1\"\n },\n {\n \"name\": \"field2\",\n \"value\": \"value2\"\n }\n ],\n \"connectorMetadata\": [\n {\n \"name\": \"MetadataName\",\n \"value\": \"MetadataValue\"\n }\n ]\n}", "options": { "raw": { + "headerFamily": "json", "language": "json" } } @@ -251,8 +235,8 @@ "_": { "postman_previewlanguage": "json" }, - "id": "eb30ce85-5f35-40ad-994e-bb8058c3d59b", - "name": "OK", + "id": "65e59c6a-7b05-47e3-bfdd-a004f5e35a0b", + "name": "Success", "originalRequest": { "url": { "path": [ @@ -262,19 +246,53 @@ "{{baseUrl}}" ], "query": [], - "variable": [ - { - "description": { - "content": "Payment provider endpoint URL.", - "type": "text/plain" - }, - "type": "any", - "value": "{{providerApiEndpoint}}", - "key": "providerApiEndpoint" - } - ] + "variable": [] }, "header": [ + { + "disabled": false, + "description": { + "content": "(Required) Unique identifier created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json.", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppKey", + "value": "{{X-PROVIDER-API-AppKey}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Unique token created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppToken", + "value": "{{X-PROVIDER-API-AppToken}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Type of the content being sent.", + "type": "text/plain" + }, + "key": "Content-Type", + "value": "application/json" + }, + { + "disabled": false, + "description": { + "content": "(Required) HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.", + "type": "text/plain" + }, + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, { "description": { "content": "Added as a part of security scheme: apikey", @@ -282,7 +300,49 @@ }, "key": "X-VTEX-API-AppKey", "value": "" - }, + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"reference\": \"618272\",\n \"orderId\": \"1072430428324\",\n \"shopperInteraction\": \"ecommerce\",\n \"transactionId\": \"2F023FD5A72A49D48A8633252B7CCBD6\",\n \"paymentId\": \"01693EB95BE443AC85874E395CD91565\",\n \"paymentMethod\": \"Diners\",\n \"paymentMethodCustomCode\": null,\n \"merchantName\": \"mystore\",\n \"card\": {\n \"holder\": \"John Doe\",\n \"number\": \"364901****2661\",\n \"csc\": \"***\",\n \"expiration\": {\n \"month\": \"12\",\n \"year\": \"2020\"\n },\n \"document\": \"39295416023\",\n \"token\": null\n },\n \"value\": 31.9,\n \"referenceValue\": 31.9,\n \"currency\": \"BRL\",\n \"installments\": 1,\n \"installmentsInterestRate\": 0,\n \"installmentsValue\": 31.9,\n \"deviceFingerprint\": \"75076388\",\n \"ipAddress\": \"187.105.111.65\",\n \"miniCart\": {\n \"buyer\": {\n \"id\": \"c1245228-1c68-11e6-94ac-0afa86a846a5\",\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"document\": \"01234567890\",\n \"documentType\": \"cpf\",\n \"corporateName\": null,\n \"tradeName\": null,\n \"corporateDocument\": null,\n \"isCorporate\": false,\n \"email\": \"john.doe@example.com\",\n \"phone\": \"+5521999999999\",\n \"createdDate\": \"2020-02-18T18:17:45\"\n },\n \"shippingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Praia de Botafogo St.\",\n \"number\": \"300\",\n \"complement\": \"3rd Floor\",\n \"neighborhood\": \"Botafogo\",\n \"postalCode\": \"22250040\",\n \"city\": \"Rio de Janeiro\",\n \"state\": \"RJ\"\n },\n \"billingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Brigadeiro Faria Lima Avenue\",\n \"number\": \"4440\",\n \"complement\": \"10th Floor\",\n \"neighborhood\": \"Itaim Bibi\",\n \"postalCode\": \"04538132\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\"\n },\n \"items\": [\n {\n \"id\": \"8\",\n \"name\": \"Tenis Preto I\",\n \"price\": 30.9,\n \"quantity\": 1,\n \"discount\": 0,\n \"deliveryType\": \"Normal\",\n \"categoryId\": \"5\",\n \"sellerId\": \"1\"\n }\n ],\n \"shippingValue\": 1,\n \"taxValue\": 0\n },\n \"url\": \"https://admin.mystore.example.com/orders?q=1072430428324\",\n \"callbackUrl\": \"https://api.mystore.example.com/some-path/to-notify/status-changes?an=mystore\",\n \"returnUrl\": \"https://mystore.example.com/checkout/order/1072430428324\",\n \"inboundRequestsUrl\": \"https://api.mystore.example.com/checkout/order/1072430428324/inbound-request/:action\",\n \"recipients\": [\n {\n \"id\": \"mymarketplace\",\n \"name\": \"My Marketplace QA\",\n \"documentType\": \"CNPJ\",\n \"document\": \"99999999999999\",\n \"role\": \"marketplace\",\n \"chargeProcessingFee\": true,\n \"chargebackLiable\": true,\n \"amount\": 31.9\n }\n ],\n \"merchantSettings\": [\n {\n \"name\": \"field1\",\n \"value\": \"value1\"\n },\n {\n \"name\": \"field2\",\n \"value\": \"value2\"\n }\n ],\n \"connectorMetadata\": [\n {\n \"name\": \"MetadataName\",\n \"value\": \"MetadataValue\"\n }\n ]\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "OK", + "code": 200, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"paymentId\": \"F5C1A4E20D3B4E07B7E871F5B5BC9F91\",\n \"status\": \"approved\",\n \"authorizationId\": \"AUT123567\",\n \"nsu\": \"NSU987432\",\n \"tid\": \"TID1578324421\",\n \"acquirer\": \"FooBarPayments\",\n \"delayToAutoSettle\": 432000,\n \"delayToAutoSettleAfterAntifraud\": 120,\n \"delayToCancel\": 600,\n \"connectorMetadata\": [\n {\n \"name\": \"MetadataName\",\n \"value\": \"MetadataValue\"\n }\n ]\n}", + "cookie": [] + }, + { + "_": { + "postman_previewlanguage": "json" + }, + "id": "8d5bc2db-e40d-4b53-b265-cf0889417f92", + "name": "Success - PIX", + "originalRequest": { + "url": { + "path": [ + "payments" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [] + }, + "header": [ { "disabled": false, "description": { @@ -319,17 +379,30 @@ "key": "Accept", "value": "application/json" }, + { + "key": "Content-Type", + "value": "application/json" + }, { "key": "Accept", "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "X-VTEX-API-AppKey", + "value": "" } ], "method": "POST", "body": { "mode": "raw", - "raw": "{\n \"reference\": \"618272\",\n \"orderId\": \"1072430428324\",\n \"shopperInteraction\": \"ecommerce\",\n \"transactionId\": \"2F023FD5A72A49D48A8633252B7CCBD6\",\n \"paymentId\": \"01693EB95BE443AC85874E395CD91565\",\n \"paymentMethod\": \"Diners\",\n \"paymentMethodCustomCode\": null,\n \"merchantName\": \"mystore\",\n \"card\": {\n \"holder\": \"John Doe\",\n \"number\": \"364901****2661\",\n \"csc\": \"***\",\n \"expiration\": {\n \"month\": \"12\",\n \"year\": \"2020\"\n },\n \"document\": \"39295416023\",\n \"token\": null\n },\n \"value\": 31.9,\n \"referenceValue\": 31.9,\n \"currency\": \"BRL\",\n \"installments\": 1,\n \"installmentsInterestRate\": 0,\n \"installmentsValue\": 31.9,\n \"deviceFingerprint\": \"75076388\",\n \"ipAddress\": \"187.105.111.65\",\n \"miniCart\": {\n \"buyer\": {\n \"id\": \"c1245228-1c68-11e6-94ac-0afa86a846a5\",\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"document\": \"01234567890\",\n \"documentType\": \"cpf\",\n \"corporateName\": null,\n \"tradeName\": null,\n \"corporateDocument\": null,\n \"isCorporate\": false,\n \"email\": \"john.doe@example.com\",\n \"phone\": \"+5521999999999\",\n \"createdDate\": \"2020-02-18T18:17:45\"\n },\n \"shippingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Praia de Botafogo St.\",\n \"number\": \"300\",\n \"complement\": \"3rd Floor\",\n \"neighborhood\": \"Botafogo\",\n \"postalCode\": \"22250040\",\n \"city\": \"Rio de Janeiro\",\n \"state\": \"RJ\"\n },\n \"billingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Brigadeiro Faria Lima Avenue\",\n \"number\": \"4440\",\n \"complement\": \"10th Floor\",\n \"neighborhood\": \"Itaim Bibi\",\n \"postalCode\": \"04538132\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\"\n },\n \"items\": [\n {\n \"id\": \"8\",\n \"name\": \"Tenis Preto I\",\n \"price\": 30.9,\n \"quantity\": 1,\n \"discount\": 0,\n \"deliveryType\": \"Normal\",\n \"categoryId\": \"5\",\n \"sellerId\": \"1\"\n }\n ],\n \"shippingValue\": 1,\n \"taxValue\": 0\n },\n \"url\": \"https://admin.mystore.example.com/orders?q=1072430428324\",\n \"callbackUrl\": \"https://api.mystore.example.com/some-path/to-notify/status-changes?an=mystore\",\n \"returnUrl\": \"https://mystore.example.com/checkout/order/1072430428324\",\n \"inboundRequestsUrl\": \"https://api.mystore.example.com/checkout/order/1072430428324/inbound-request/:action\",\n \"recipients\": [\n {\n \"id\": \"mymarketplace\",\n \"name\": \"My Marketplace QA\",\n \"documentType\": \"CNPJ\",\n \"document\": \"99999999999999\",\n \"role\": \"marketplace\",\n \"chargeProcessingFee\": true,\n \"chargebackLiable\": true,\n \"amount\": 31.9\n }\n ],\n \"merchantSettings\": [\n {\n \"name\": \"field1\",\n \"value\": \"value1\"\n },\n {\n \"name\": \"field2\",\n \"value\": \"value2\"\n }\n ],\n \"connectorMetadata\": [\n {\n \"name\": \"MetadataName\",\n \"value\": \"MetadataValue\"\n }\n ]\n}", + "raw": "{\n \"reference\": \"32478982\",\n \"orderId\": \"v967373115140abc\",\n \"shopperInteraction\": \"ecommerce\",\n \"transactionId\": \"D3AA1FC8372E430E8236649DB5EBD08E\",\n \"paymentId\": \"F5C1A4E20D3B4E07B7E871F5B5BC9F91\",\n \"paymentMethod\": \"Pix\",\n \"paymentMethodCustomCode\": null,\n \"merchantName\": \"mystore\",\n \"value\": 4307.23,\n \"referenceValue\": 4307.23,\n \"currency\": \"BRL\",\n \"installments\": 1,\n \"deviceFingerprint\": \"15ace369587ha\",\n \"card\": {\n \"holder\": null,\n \"number\": null,\n \"csc\": null,\n \"expiration\": {\n \"month\": null,\n \"year\": null\n }\n },\n \"miniCart\": {\n \"shippingValue\": 11.44,\n \"taxValue\": 10.01,\n \"buyer\": {\n \"id\": \"c1245228-1c68-11e6-94ac-0afa86a846a5\",\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"document\": \"01234567890\",\n \"documentType\": \"cpf\",\n \"email\": \"john.doe@example.com\",\n \"phone\": \"+5521999999999\"\n },\n \"shippingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Praia de Botafogo St.\",\n \"number\": \"300\",\n \"complement\": \"3rd Floor\",\n \"neighborhood\": \"Botafogo\",\n \"postalCode\": \"22250040\",\n \"city\": \"Rio de Janeiro\",\n \"state\": \"RJ\"\n },\n \"billingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Brigadeiro Faria Lima Avenue\",\n \"number\": \"4440\",\n \"complement\": \"10th Floor\",\n \"neighborhood\": \"Itaim Bibi\",\n \"postalCode\": \"04538132\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\"\n },\n \"items\": [\n {\n \"id\": \"132981\",\n \"name\": \"My First Product\",\n \"price\": 2134.9,\n \"quantity\": 2,\n \"discount\": 5\n },\n {\n \"id\": \"123242\",\n \"name\": \"My Second Product\",\n \"price\": 21.98,\n \"quantity\": 1,\n \"discount\": 1\n }\n ]\n },\n \"url\": \"https://admin.mystore.example.com/orders/v32478982\",\n \"callbackUrl\": \"https://api.example.com/some-path/to-notify/status-changes?an=mystore\",\n \"returnUrl\": \"https://mystore.example.com/checkout/order/v32478982\"\n}", "options": { "raw": { + "headerFamily": "json", "language": "json" } } @@ -343,15 +416,15 @@ "value": "application/json" } ], - "body": "{\n \"paymentId\": \"F5C1A4E20D3B4E07B7E871F5B5BC9F91\",\n \"status\": \"approved\",\n \"authorizationId\": \"AUT123567\",\n \"nsu\": \"NSU987432\",\n \"tid\": \"TID1578324421\",\n \"acquirer\": \"FooBarPayments\",\n \"delayToAutoSettle\": 432000,\n \"delayToAutoSettleAfterAntifraud\": 120,\n \"delayToCancel\": 600,\n \"connectorMetadata\": [\n {\n \"name\": \"MetadataName\",\n \"value\": \"MetadataValue\"\n }\n ]\n}", + "body": "{\n \"paymentId\": \"F5C1A4E20D3B4E07B7E871F5B5BC9F91\",\n \"status\": \"undefined\",\n \"tid\": \"TID1578324421\",\n \"authorizationId\": null,\n \"nsu\": null,\n \"code\": \"APP123\",\n \"paymentAppData\": {\n \"payload\": \"{\\\"code\\\":\\\"https://bacen.pix/pix/code\\\",\\\"qrCodeBase64Image\\\":\\\"iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAABQGlDQ1BJQ0MgUHJvZmlsZQAAKJFjYGDiSSwoyGFhYGDIzSspCnJ3UoiIjFJgf8LAxSDMwMkgwiCZmFxc4BgQ4ANUwgCjUcG3awyMIPqyLsgspwWXFu+Xeyundb6w0WL33C5M9SiAKyW1OBlI/wHihOSCohIGBsYYIFu5vKQAxG4AskWKgI4CsqeA2OkQ9goQOwnC3gNWExLkDGRfALIFkjMSU4DsB0C2ThKSeDoSG2ovCLAZGZkbhBNwKKmgJLWiBEQ75xdUFmWmZ5QoOAJDJ1XBMy9ZT0fByMDIgIEBFNYQ1Z9vgMOQUYwDIZapzMBgmQEUfIQQSxNmYNiZzsDAU4UQU5/PwMBrxMBw5GJBYlEi3AGM31iK04yNIGzu7QwMrNP+//8M9Ca7JgPD3+v////e/v//32UMDMy3GBgOfAMA4+RdqZ9YRkcAAABWZVhJZk1NACoAAAAIAAGHaQAEAAAAAQAAABoAAAAAAAOShgAHAAAAEgAAAESgAgAEAAAAAQAAAAKgAwAEAAAAAQAAAAIAAAAAQVNDSUkAAABTY3JlZW5zaG900Fpo3gAAAdJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MjwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlVzZXJDb21tZW50PlNjcmVlbnNob3Q8L2V4aWY6VXNlckNvbW1lbnQ+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4yPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cl89Cn4AAAASSURBVAgdY/wPBAxAwAQiQAAAPfgEAIAu9DkAAAAASUVORK5CYII=\\\"}\"\n },\n \"message\": \"The customer needs to finish the payment flow\",\n \"delayToAutoSettle\": 604800,\n \"delayToAutoSettleAfterAntifraud\": 120,\n \"delayToCancel\": 300\n}", "cookie": [] }, { "_": { "postman_previewlanguage": "json" }, - "id": "9adf7391-1dbd-4a05-93ab-7e11335cf2b2", - "name": "Bad Request", + "id": "51ee8889-86c6-4f2b-b520-e2ed78dc4fe6", + "name": "Success - Credit Card", "originalRequest": { "url": { "path": [ @@ -361,19 +434,53 @@ "{{baseUrl}}" ], "query": [], - "variable": [ - { - "description": { - "content": "Payment provider endpoint URL.", - "type": "text/plain" - }, - "type": "any", - "value": "{{providerApiEndpoint}}", - "key": "providerApiEndpoint" - } - ] + "variable": [] }, "header": [ + { + "disabled": false, + "description": { + "content": "(Required) Unique identifier created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json.", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppKey", + "value": "{{X-PROVIDER-API-AppKey}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Unique token created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppToken", + "value": "{{X-PROVIDER-API-AppToken}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Type of the content being sent.", + "type": "text/plain" + }, + "key": "Content-Type", + "value": "application/json" + }, + { + "disabled": false, + "description": { + "content": "(Required) HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.", + "type": "text/plain" + }, + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, { "description": { "content": "Added as a part of security scheme: apikey", @@ -381,7 +488,49 @@ }, "key": "X-VTEX-API-AppKey", "value": "" - }, + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"reference\": \"32478982\",\n \"orderId\": \"v967373115140abc\",\n \"shopperInteraction\": \"ecommerce\",\n \"transactionId\": \"D3AA1FC8372E430E8236649DB5EBD08E\",\n \"paymentId\": \"F5C1A4E20D3B4E07B7E871F5B5BC9F91\",\n \"paymentMethod\": \"Visa\",\n \"paymentMethodCustomCode\": null,\n \"merchantName\": \"mystore\",\n \"value\": 4307.23,\n \"referenceValue\": 4000,\n \"currency\": \"BRL\",\n \"installments\": 3,\n \"deviceFingerprint\": \"12ade389087fe\",\n \"card\": {\n \"holder\": \"John Doe\",\n \"number\": \"4682185088924788\",\n \"csc\": \"021\",\n \"expiration\": {\n \"month\": \"06\",\n \"year\": \"2029\"\n }\n },\n \"miniCart\": {\n \"shippingValue\": 11.44,\n \"taxValue\": 10.01,\n \"buyer\": {\n \"id\": \"c1245228-1c68-11e6-94ac-0afa86a846a5\",\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"document\": \"01234567890\",\n \"documentType\": \"CPF\",\n \"email\": \"john.doe@example.com\",\n \"phone\": \"+5521987654321\"\n },\n \"shippingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Praia de Botafogo St.\",\n \"number\": \"300\",\n \"complement\": \"3rd Floor\",\n \"neighborhood\": \"Botafogo\",\n \"postalCode\": \"22250040\",\n \"city\": \"Rio de Janeiro\",\n \"state\": \"RJ\"\n },\n \"billingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Brigadeiro Faria Lima Avenue\",\n \"number\": \"4440\",\n \"complement\": \"10th Floor\",\n \"neighborhood\": \"Itaim Bibi\",\n \"postalCode\": \"04538132\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\"\n },\n \"items\": [\n {\n \"id\": \"132981\",\n \"name\": \"My First Product\",\n \"price\": 2134.9,\n \"quantity\": 2,\n \"discount\": 5\n },\n {\n \"id\": \"123242\",\n \"name\": \"My Second Product\",\n \"price\": 21.98,\n \"quantity\": 1,\n \"discount\": 1\n }\n ]\n },\n \"url\": \"https://admin.mystore.example.com/orders/v32478982\",\n \"callbackUrl\": \"https://api.example.com/some-path/to-notify/status-changes?an=mystore\",\n \"returnUrl\": \"https://mystore.example.com/checkout/order/v32478982\"\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "OK", + "code": 200, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"paymentId\": \"01693EB95BE443AC85874E395CD91565\",\n \"status\": \"approved\",\n \"authorizationId\": \"AUT-09DC5E8F03\",\n \"nsu\": \"NSU-107521E866\",\n \"tid\": \"TID-7B58BE1A08\",\n \"acquirer\": \"TestPay\",\n \"code\": \"2000\",\n \"message\": null,\n \"delayToAutoSettle\": 21600,\n \"delayToAutoSettleAfterAntifraud\": 1800,\n \"delayToCancel\": 21600,\n \"connectorMetadata\": [\n {\n \"name\": \"MetadataName\",\n \"value\": \"MetadataValue\"\n }\n ]\n}", + "cookie": [] + }, + { + "_": { + "postman_previewlanguage": "json" + }, + "id": "e9da6a46-30b9-4ad9-a8cf-76979fdf0d07", + "name": "Success - Bank invoice", + "originalRequest": { + "url": { + "path": [ + "payments" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [] + }, + "header": [ { "disabled": false, "description": { @@ -418,39 +567,2684 @@ "key": "Accept", "value": "application/json" }, + { + "key": "Content-Type", + "value": "application/json" + }, { "key": "Accept", "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "X-VTEX-API-AppKey", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"reference\": \"32478982\",\n \"orderId\": \"v967373115140abc\",\n \"shopperInteraction\": \"ecommerce\",\n \"transactionId\": \"D3AA1FC8372E430E8236649DB5EBD08E\",\n \"paymentId\": \"F5C1A4E20D3B4E07B7E871F5B5BC9F91\",\n \"paymentMethod\": \"BankInvoice\",\n \"paymentMethodCustomCode\": null,\n \"merchantName\": \"mystore\",\n \"value\": 4307.23,\n \"referenceValue\": 4307.23,\n \"currency\": \"BRL\",\n \"installments\": 1,\n \"deviceFingerprint\": \"12ade389087fe\",\n \"card\": {\n \"holder\": null,\n \"number\": null,\n \"csc\": null,\n \"expiration\": {\n \"month\": null,\n \"year\": null\n }\n },\n \"miniCart\": {\n \"shippingValue\": 11.44,\n \"taxValue\": 10.01,\n \"buyer\": {\n \"id\": \"c1245228-1c68-11e6-94ac-0afa86a846a5\",\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"document\": \"01234567890\",\n \"documentType\": \"CPF\",\n \"email\": \"john.doe@example.com\",\n \"phone\": \"+5521987654321\"\n },\n \"shippingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Praia de Botafogo St.\",\n \"number\": \"300\",\n \"complement\": \"3rd Floor\",\n \"neighborhood\": \"Botafogo\",\n \"postalCode\": \"22250040\",\n \"city\": \"Rio de Janeiro\",\n \"state\": \"RJ\"\n },\n \"billingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Brigadeiro Faria Lima Avenue\",\n \"number\": \"4440\",\n \"complement\": \"10th Floor\",\n \"neighborhood\": \"Itaim Bibi\",\n \"postalCode\": \"04538132\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\"\n },\n \"items\": [\n {\n \"id\": \"132981\",\n \"name\": \"My First Product\",\n \"price\": 2134.9,\n \"quantity\": 2,\n \"discount\": 5\n },\n {\n \"id\": \"123242\",\n \"name\": \"My Second Product\",\n \"price\": 21.98,\n \"quantity\": 1,\n \"discount\": 1\n }\n ]\n },\n \"url\": \"https://admin.mystore.example.com/orders/v32478982\",\n \"callbackUrl\": \"https://api.example.com/some-path/to-notify/status-changes?an=mystore\",\n \"returnUrl\": \"https://mystore.example.com/checkout/order/v32478982\"\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "OK", + "code": 200, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"paymentId\": \"01693EB95BE443AC85874E395CD91565\",\n \"status\": \"undefined\",\n \"authorizationId\": \"AUT-2E7CBF7290-ASYNC\",\n \"paymentUrl\": \"https://example.org/boleto/gatewayqa/2F023FD5A72A49D48A8633252B7CCBD6/01693EB95BE443AC85874E395CD91565\",\n \"identificationNumber\": \"23790504004199031316957008109209378300000019900\",\n \"identificationNumberFormatted\": \"23790.50400 41990.313169 57008.109209 3 78300000019900\",\n \"barCodeImageType\": \"i25\",\n \"barCodeImageNumber\": \"23793783000000199000504041990313165700810920\",\n \"nsu\": \"NSU-60F328ACD8-ASYNC\",\n \"tid\": \"TID-F3FB9B3FDB-ASYNC\",\n \"acquirer\": \"TestPay\",\n \"code\": \"2000-ASYNC\",\n \"message\": null,\n \"delayToAutoSettle\": 21600,\n \"delayToAutoSettleAfterAntifraud\": 1800,\n \"delayToCancel\": 21600\n}", + "cookie": [] + }, + { + "_": { + "postman_previewlanguage": "json" + }, + "id": "e78f1dec-d81e-4645-a1eb-23ef91758036", + "name": "Success - Payment App", + "originalRequest": { + "url": { + "path": [ + "payments" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "disabled": false, + "description": { + "content": "(Required) Unique identifier created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json.", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppKey", + "value": "{{X-PROVIDER-API-AppKey}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Unique token created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppToken", + "value": "{{X-PROVIDER-API-AppToken}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Type of the content being sent.", + "type": "text/plain" + }, + "key": "Content-Type", + "value": "application/json" + }, + { + "disabled": false, + "description": { + "content": "(Required) HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.", + "type": "text/plain" + }, + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "X-VTEX-API-AppKey", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"reference\": \"32478982\",\n \"orderId\": \"v967373115140abc\",\n \"shopperInteraction\": \"ecommerce\",\n \"transactionId\": \"D3AA1FC8372E430E8236649DB5EBD08E\",\n \"paymentId\": \"F5C1A4E20D3B4E07B7E871F5B5BC9F91\",\n \"paymentMethod\": \"Visa\",\n \"paymentMethodCustomCode\": null,\n \"merchantName\": \"mystore\",\n \"value\": 4307.23,\n \"referenceValue\": 4000,\n \"currency\": \"BRL\",\n \"installments\": 3,\n \"deviceFingerprint\": \"12ade389087fe\",\n \"card\": {\n \"holder\": \"John Doe\",\n \"number\": \"4682185088924788\",\n \"csc\": \"021\",\n \"expiration\": {\n \"month\": \"06\",\n \"year\": \"2029\"\n }\n },\n \"miniCart\": {\n \"shippingValue\": 11.44,\n \"taxValue\": 10.01,\n \"buyer\": {\n \"id\": \"c1245228-1c68-11e6-94ac-0afa86a846a5\",\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"document\": \"01234567890\",\n \"documentType\": \"CPF\",\n \"email\": \"john.doe@example.com\",\n \"phone\": \"+5521987654321\"\n },\n \"shippingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Praia de Botafogo St.\",\n \"number\": \"300\",\n \"complement\": \"3rd Floor\",\n \"neighborhood\": \"Botafogo\",\n \"postalCode\": \"22250040\",\n \"city\": \"Rio de Janeiro\",\n \"state\": \"RJ\"\n },\n \"billingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Brigadeiro Faria Lima Avenue\",\n \"number\": \"4440\",\n \"complement\": \"10th Floor\",\n \"neighborhood\": \"Itaim Bibi\",\n \"postalCode\": \"04538132\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\"\n },\n \"items\": [\n {\n \"id\": \"132981\",\n \"name\": \"My First Product\",\n \"price\": 2134.9,\n \"quantity\": 2,\n \"discount\": 5\n },\n {\n \"id\": \"123242\",\n \"name\": \"My Second Product\",\n \"price\": 21.98,\n \"quantity\": 1,\n \"discount\": 1\n }\n ]\n },\n \"url\": \"https://admin.mystore.example.com/orders/v32478982\",\n \"callbackUrl\": \"https://api.example.com/some-path/to-notify/status-changes?an=mystore\",\n \"returnUrl\": \"https://mystore.example.com/checkout/order/v32478982\"\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "OK", + "code": 200, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"paymentId\": \"01693EB95BE443AC85874E395CD91565\",\n \"status\": \"undefined\",\n \"authorizationId\": \"AUT-6929AD8429\",\n \"paymentAppData\": {\n \"appName\": \"vtex.payment\",\n \"payload\": \"{\\\"approvePaymentUrl\\\":\\\"https://api.mystore.example.com/payments/F5C1A4E20D3B4E07B7E871F5B5BC9F91/callback-trigger/approved?url=https://api.mystore.example.com/transactions/D3AA1FC8372E430E8236649DB5EBD08E/payments/F5C1A4E20D3B4E07B7E871F5B5BC9F91/notification\\\",\\\"denyPaymentUrl\\\":\\\"https://api.mystore.example.com/payments/F5C1A4E20D3B4E07B7E871F5B5BC9F91/callback-trigger/denied?url=https://api.mystore.example.com/transactions/D3AA1FC8372E430E8236649DB5EBD08E/payments/F5C1A4E20D3B4E07B7E871F5B5BC9F91/notification\\\",\\\"orderId\\\":\\\"1072650953886\\\",\\\"transactionId\\\":\\\"D3AA1FC8372E430E8236649DB5EBD08E\\\",\\\"paymentId\\\":\\\"F5C1A4E20D3B4E07B7E871F5B5BC9F91\\\",\\\"timestamp\\\":\\\"2020-10-29 17:15:59Z\\\"}\"\n },\n \"nsu\": \"NSU-227AFD0BD2\",\n \"tid\": \"TID-DBE4BFFB19\",\n \"acquirer\": \"TestPay\",\n \"code\": \"2001\",\n \"message\": null,\n \"delayToAutoSettle\": 21600,\n \"delayToAutoSettleAfterAntifraud\": 1800,\n \"delayToCancel\": 21600\n}", + "cookie": [] + }, + { + "_": { + "postman_previewlanguage": "json" + }, + "id": "9fb95931-3700-44e9-bff2-bc8832679ce3", + "name": "Success - Redirect", + "originalRequest": { + "url": { + "path": [ + "payments" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "disabled": false, + "description": { + "content": "(Required) Unique identifier created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json.", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppKey", + "value": "{{X-PROVIDER-API-AppKey}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Unique token created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppToken", + "value": "{{X-PROVIDER-API-AppToken}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Type of the content being sent.", + "type": "text/plain" + }, + "key": "Content-Type", + "value": "application/json" + }, + { + "disabled": false, + "description": { + "content": "(Required) HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.", + "type": "text/plain" + }, + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "X-VTEX-API-AppKey", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"reference\": \"618272\",\n \"orderId\": \"1072430428324\",\n \"shopperInteraction\": \"ecommerce\",\n \"transactionId\": \"2F023FD5A72A49D48A8633252B7CCBD6\",\n \"paymentId\": \"01693EB95BE443AC85874E395CD91565\",\n \"paymentMethod\": \"BankInvoice\",\n \"paymentMethodCustomCode\": null,\n \"merchantName\": \"mystore\",\n \"card\": {\n \"holder\": \"null\",\n \"number\": \"null\",\n \"csc\": \"null\",\n \"expiration\": {\n \"month\": \"null\",\n \"year\": \"null\"\n }\n },\n \"document\": null,\n \"token\": null,\n \"value\": 31.9,\n \"referenceValue\": 31.9,\n \"currency\": \"BRL\",\n \"installments\": 1,\n \"installmentsInterestRate\": 0,\n \"installmentsValue\": 31.9,\n \"deviceFingerprint\": \"98073964\",\n \"ipAddress\": \"187.105.111.65\",\n \"miniCart\": {\n \"buyer\": {\n \"id\": \"c1245228-1c68-11e6-94ac-0afa86a846a5\",\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"document\": \"01234567890\",\n \"documentType\": \"cpf\",\n \"corporateName\": null,\n \"tradeName\": null,\n \"corporateDocument\": null,\n \"isCorporate\": false,\n \"email\": \"john.doe@example.com\",\n \"phone\": \"+5521999999999\",\n \"createdDate\": \"2020-02-18T18:17:45\"\n },\n \"shippingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Praia de Botafogo St.\",\n \"number\": \"300\",\n \"complement\": \"3rd Floor\",\n \"neighborhood\": \"Botafogo\",\n \"postalCode\": \"22250040\",\n \"city\": \"Rio de Janeiro\",\n \"state\": \"RJ\"\n },\n \"billingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Brigadeiro Faria Lima Avenue\",\n \"number\": \"4440\",\n \"complement\": \"10th Floor\",\n \"neighborhood\": \"Itaim Bibi\",\n \"postalCode\": \"04538132\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\"\n },\n \"items\": [\n {\n \"id\": \"8\",\n \"name\": \"Tenis Preto I\",\n \"price\": 30.9,\n \"quantity\": 1,\n \"discount\": 0,\n \"deliveryType\": \"Normal\",\n \"categoryId\": \"5\",\n \"sellerId\": \"1\"\n }\n ],\n \"shippingValue\": 11.44,\n \"taxValue\": 10.01\n },\n \"url\": \"https://admin.mystore.example.com/orders?q=1072430428324\",\n \"callbackUrl\": \"https://api.example.com/some-path/to-notify/status-changes?an=mystore\",\n \"returnUrl\": \"https://mystore.example.com/checkout/order/1072430428324\",\n \"inboundRequestsUrl\": \"https://api.mystore.example.com/checkout/order/1072430428324/inbound-request/:action\",\n \"recipients\": [\n {\n \"id\": \"mymarketplace\",\n \"name\": \"My Marketplace QA\",\n \"documentType\": \"CNPJ\",\n \"document\": \"99999999999999\",\n \"role\": \"marketplace\",\n \"chargeProcessingFee\": true,\n \"chargebackLiable\": true,\n \"amount\": 31.9\n }\n ],\n \"merchantSettings\": [\n {\n \"name\": \"field1\",\n \"value\": \"value1\"\n },\n {\n \"name\": \"field2\",\n \"value\": \"value2\"\n }\n ]\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "OK", + "code": 200, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"paymentId\": \"7ee64e51-a0d3-4405-874c-d7497ab84572\",\n \"status\": \"undefined\",\n \"tid\": \"214c699cb408ce6a7110\",\n \"paymentUrl\": \"http://php-connector.herokuapp.com/installments.php?paymentId=7ee64e51-a0d3-4405-874c-d7497ab84572\"\n}", + "cookie": [] + }, + { + "_": { + "postman_previewlanguage": "json" + }, + "id": "29510e65-6bdb-4e03-bf5e-99c71feef72e", + "name": "Success - Callback", + "originalRequest": { + "url": { + "path": [ + "payments" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "disabled": false, + "description": { + "content": "(Required) Unique identifier created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json.", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppKey", + "value": "{{X-PROVIDER-API-AppKey}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Unique token created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppToken", + "value": "{{X-PROVIDER-API-AppToken}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Type of the content being sent.", + "type": "text/plain" + }, + "key": "Content-Type", + "value": "application/json" + }, + { + "disabled": false, + "description": { + "content": "(Required) HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.", + "type": "text/plain" + }, + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "X-VTEX-API-AppKey", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"reference\": \"32478982\",\n \"orderId\": \"v967373115140abc\",\n \"shopperInteraction\": \"ecommerce\",\n \"transactionId\": \"D3AA1FC8372E430E8236649DB5EBD08E\",\n \"paymentId\": \"F5C1A4E20D3B4E07B7E871F5B5BC9F91\",\n \"paymentMethod\": \"CustomPay\",\n \"paymentMethodCustomCode\": null,\n \"merchantName\": \"mystore\",\n \"value\": 4307.23,\n \"referenceValue\": 4307.23,\n \"currency\": \"BRL\",\n \"installments\": 1,\n \"deviceFingerprint\": \"12ade389087fe\",\n \"card\": {\n \"holder\": null,\n \"number\": null,\n \"csc\": null,\n \"expiration\": {\n \"month\": null,\n \"year\": null\n }\n },\n \"miniCart\": {\n \"shippingValue\": 11.44,\n \"taxValue\": 10.01,\n \"buyer\": {\n \"id\": \"c1245228-1c68-11e6-94ac-0afa86a846a5\",\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"document\": \"01234567890\",\n \"documentType\": \"CPF\",\n \"email\": \"john.doe@example.com\",\n \"phone\": \"+5521987654321\"\n },\n \"shippingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Praia de Botafogo St.\",\n \"number\": \"300\",\n \"complement\": \"3rd Floor\",\n \"neighborhood\": \"Botafogo\",\n \"postalCode\": \"22250040\",\n \"city\": \"Rio de Janeiro\",\n \"state\": \"RJ\"\n },\n \"billingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Brigadeiro Faria Lima Avenue\",\n \"number\": \"4440\",\n \"complement\": \"10th Floor\",\n \"neighborhood\": \"Itaim Bibi\",\n \"postalCode\": \"04538132\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\"\n },\n \"items\": [\n {\n \"id\": \"132981\",\n \"name\": \"My First Product\",\n \"price\": 2134.9,\n \"quantity\": 2,\n \"discount\": 5\n },\n {\n \"id\": \"123242\",\n \"name\": \"My Second Product\",\n \"price\": 21.98,\n \"quantity\": 1,\n \"discount\": 1\n }\n ]\n },\n \"url\": \"https://admin.mystore.example.com/orders/v32478982\",\n \"callbackUrl\": \"https://api.example.com/some-path/to-notify/status-changes?an=mystore\",\n \"returnUrl\": \"https://mystore.example.com/checkout/order/v32478982\",\n \"inboundRequestsUrl\": \"https://mystore.api.example.com/some-path/inbound-request/:action\"\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "OK", + "code": 200, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"paymentId\": \"7ee64e51-a0d3-4405-874c-d7497ab84572\",\n \"status\": \"approved\",\n \"authorizationId\": \"3baafb4097d6c8ad3883\",\n \"paymentUrl\": null,\n \"nsu\": \"214c699cb408ce6a7110\",\n \"tid\": \"214c699cb408ce6a7110\",\n \"acquirer\": null,\n \"code\": null,\n \"message\": \"Payment with custom installments approved\",\n \"delayToAutoSettle\": 21600,\n \"delayToAutoSettleAfterAntifraud\": 1800,\n \"delayToCancel\": 21600\n}", + "cookie": [] + }, + { + "_": { + "postman_previewlanguage": "json" + }, + "id": "c878742e-55c0-43a0-8ea2-6a8b558f9382", + "name": "Redirect Success Undefined", + "originalRequest": { + "url": { + "path": [ + "payments" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "disabled": false, + "description": { + "content": "(Required) Unique identifier created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json.", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppKey", + "value": "{{X-PROVIDER-API-AppKey}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Unique token created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppToken", + "value": "{{X-PROVIDER-API-AppToken}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Type of the content being sent.", + "type": "text/plain" + }, + "key": "Content-Type", + "value": "application/json" + }, + { + "disabled": false, + "description": { + "content": "(Required) HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.", + "type": "text/plain" + }, + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "X-VTEX-API-AppKey", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"reference\": \"32478982\",\n \"orderId\": \"v967373115140abc\",\n \"shopperInteraction\": \"ecommerce\",\n \"transactionId\": \"D3AA1FC8372E430E8236649DB5EBD08E\",\n \"paymentId\": \"F5C1A4E20D3B4E07B7E871F5B5BC9F91\",\n \"paymentMethod\": \"FakePay\",\n \"paymentMethodCustomCode\": null,\n \"merchantName\": \"mystore\",\n \"value\": 4307.23,\n \"referenceValue\": 4307.23,\n \"currency\": \"BRL\",\n \"installments\": 1,\n \"deviceFingerprint\": \"12ade389087fe\",\n \"card\": {\n \"holder\": null,\n \"number\": null,\n \"csc\": null,\n \"expiration\": {\n \"month\": null,\n \"year\": null\n }\n },\n \"miniCart\": {\n \"shippingValue\": 11.44,\n \"taxValue\": 10.01,\n \"buyer\": {\n \"id\": \"c1245228-1c68-11e6-94ac-0afa86a846a5\",\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"document\": \"01234567890\",\n \"documentType\": \"CPF\",\n \"email\": \"john.doe@example.com\",\n \"phone\": \"+5521987654321\"\n },\n \"shippingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Praia de Botafogo St.\",\n \"number\": \"300\",\n \"complement\": \"3rd Floor\",\n \"neighborhood\": \"Botafogo\",\n \"postalCode\": \"22250040\",\n \"city\": \"Rio de Janeiro\",\n \"state\": \"RJ\"\n },\n \"billingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Brigadeiro Faria Lima Avenue\",\n \"number\": \"4440\",\n \"complement\": \"10th Floor\",\n \"neighborhood\": \"Itaim Bibi\",\n \"postalCode\": \"04538132\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\"\n },\n \"items\": [\n {\n \"id\": \"132981\",\n \"name\": \"My First Product\",\n \"price\": 2134.9,\n \"quantity\": 2,\n \"discount\": 5\n },\n {\n \"id\": \"123242\",\n \"name\": \"My Second Product\",\n \"price\": 21.98,\n \"quantity\": 1,\n \"discount\": 1\n }\n ]\n },\n \"url\": \"https://admin.mystore.example.com/orders/v32478982\",\n \"callbackUrl\": \"https://api.example.com/some-path/to-notify/status-changes?an=mystore\",\n \"returnUrl\": \"https://mystore.example.com/checkout/order/v32478982\"\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "OK", + "code": 200, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"paymentId\": \"F5C1A4E20D3B4E07B7E871F5B5BC9F91\",\n \"status\": \"approved\",\n \"authorizationId\": \"AUT123567\",\n \"nsu\": \"NSU987432\",\n \"tid\": \"TID1578324421\",\n \"acquirer\": \"FooBarPayments\",\n \"delayToAutoSettle\": 432000,\n \"delayToAutoSettleAfterAntifraud\": 120,\n \"delayToCancel\": 600,\n \"connectorMetadata\": [\n {\n \"name\": \"MetadataName\",\n \"value\": \"MetadataValue\"\n }\n ]\n}", + "cookie": [] + }, + { + "_": { + "postman_previewlanguage": "json" + }, + "id": "28eaf223-77f9-481c-ad3f-47a5e7c03b94", + "name": "Redirect Success Approved", + "originalRequest": { + "url": { + "path": [ + "payments" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "disabled": false, + "description": { + "content": "(Required) Unique identifier created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json.", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppKey", + "value": "{{X-PROVIDER-API-AppKey}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Unique token created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppToken", + "value": "{{X-PROVIDER-API-AppToken}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Type of the content being sent.", + "type": "text/plain" + }, + "key": "Content-Type", + "value": "application/json" + }, + { + "disabled": false, + "description": { + "content": "(Required) HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.", + "type": "text/plain" + }, + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "X-VTEX-API-AppKey", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"reference\": \"618272\",\n \"orderId\": \"1072430428324\",\n \"shopperInteraction\": \"ecommerce\",\n \"transactionId\": \"2F023FD5A72A49D48A8633252B7CCBD6\",\n \"paymentId\": \"01693EB95BE443AC85874E395CD91565\",\n \"paymentMethod\": \"RedirectPay\",\n \"paymentMethodCustomCode\": null,\n \"merchantName\": \"mystore\",\n \"value\": 31.9,\n \"referenceValue\": 31.9,\n \"currency\": \"BRL\",\n \"installments\": 1,\n \"installmentsInterestRate\": 0,\n \"installmentsValue\": 31.9,\n \"deviceFingerprint\": \"75076388\",\n \"ipAddress\": \"187.105.111.65\",\n \"miniCart\": {\n \"buyer\": {\n \"id\": \"c1245228-1c68-11e6-94ac-0afa86a846a5\",\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"document\": \"01234567890\",\n \"documentType\": \"cpf\",\n \"corporateName\": null,\n \"tradeName\": null,\n \"corporateDocument\": null,\n \"isCorporate\": false,\n \"email\": \"john.doe@example.com\",\n \"phone\": \"+5521999999999\",\n \"createdDate\": \"2020-02-18T18:17:45\"\n },\n \"shippingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Praia de Botafogo St.\",\n \"number\": \"300\",\n \"complement\": \"3rd Floor\",\n \"neighborhood\": \"Botafogo\",\n \"postalCode\": \"22250040\",\n \"city\": \"Rio de Janeiro\",\n \"state\": \"RJ\"\n },\n \"billingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Brigadeiro Faria Lima Avenue\",\n \"number\": \"4440\",\n \"complement\": \"10th Floor\",\n \"neighborhood\": \"Itaim Bibi\",\n \"postalCode\": \"04538132\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\"\n },\n \"items\": [\n {\n \"id\": \"8\",\n \"name\": \"Tenis Preto I\",\n \"price\": 30.9,\n \"quantity\": 1,\n \"discount\": 0,\n \"deliveryType\": \"Normal\",\n \"categoryId\": \"5\",\n \"sellerId\": \"1\"\n }\n ],\n \"shippingValue\": 1,\n \"taxValue\": 0\n },\n \"url\": \"https://admin.mystore.example.com/orders/v32478982\",\n \"callbackUrl\": \"https://api.example.com/some-path/to-notify/status-changes?an=mystore\",\n \"returnUrl\": \"https://mystore.example.com/checkout/order/v32478982\",\n \"inboundRequestsUrl\": \"https://api.mystore.example.com/checkout/order/1072430428324/inbound-request/:action\",\n \"recipients\": [\n {\n \"id\": \"mymarketplace\",\n \"name\": \"My Marketplace QA\",\n \"documentType\": \"CNPJ\",\n \"document\": \"99999999999999\",\n \"role\": \"marketplace\",\n \"chargeProcessingFee\": true,\n \"chargebackLiable\": true,\n \"amount\": 31.9\n }\n ],\n \"merchantSettings\": [\n {\n \"name\": \"field1\",\n \"value\": \"value1\"\n },\n {\n \"name\": \"field2\",\n \"value\": \"value2\"\n }\n ]\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "OK", + "code": 200, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"paymentId\": \"F5C1A4E20D3B4E07B7E871F5B5BC9F91\",\n \"status\": \"approved\",\n \"authorizationId\": \"AUT123567\",\n \"nsu\": \"NSU987432\",\n \"tid\": \"TID1578324421\",\n \"acquirer\": \"FooBarPayments\",\n \"delayToAutoSettle\": 432000,\n \"delayToAutoSettleAfterAntifraud\": 120,\n \"delayToCancel\": 600,\n \"connectorMetadata\": [\n {\n \"name\": \"MetadataName\",\n \"value\": \"MetadataValue\"\n }\n ]\n}", + "cookie": [] + }, + { + "_": { + "postman_previewlanguage": "json" + }, + "id": "fcfac17f-93f5-4a09-a48a-65705596801f", + "name": "Fail Generic Error", + "originalRequest": { + "url": { + "path": [ + "payments" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "disabled": false, + "description": { + "content": "(Required) Unique identifier created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json.", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppKey", + "value": "{{X-PROVIDER-API-AppKey}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Unique token created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppToken", + "value": "{{X-PROVIDER-API-AppToken}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Type of the content being sent.", + "type": "text/plain" + }, + "key": "Content-Type", + "value": "application/json" + }, + { + "disabled": false, + "description": { + "content": "(Required) HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.", + "type": "text/plain" + }, + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "X-VTEX-API-AppKey", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"reference\": \"32478982\",\n \"orderId\": \"v967373115140abc\",\n \"shopperInteraction\": \"ecommerce\",\n \"transactionId\": \"D3AA1FC8372E430E8236649DB5EBD08E\",\n \"paymentId\": \"F5C1A4E20D3B4E07B7E871F5B5BC9F91\",\n \"paymentMethod\": \"Visa\",\n \"paymentMethodCustomCode\": null,\n \"merchantName\": \"mystore\",\n \"value\": 4307.23,\n \"referenceValue\": 4000,\n \"currency\": \"BRL\",\n \"installments\": 3,\n \"deviceFingerprint\": \"12ade389087fe\",\n \"card\": {\n \"holder\": \"John Doe\",\n \"number\": \"4682185088924788\",\n \"csc\": \"021\",\n \"expiration\": {\n \"month\": \"06\",\n \"year\": \"2029\"\n }\n },\n \"miniCart\": {\n \"shippingValue\": 11.44,\n \"taxValue\": 10.01,\n \"buyer\": {\n \"id\": \"c1245228-1c68-11e6-94ac-0afa86a846a5\",\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"document\": \"01234567890\",\n \"documentType\": \"CPF\",\n \"email\": \"john.doe@example.com\",\n \"phone\": \"+5521987654321\"\n },\n \"shippingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Praia de Botafogo St.\",\n \"number\": \"300\",\n \"complement\": \"3rd Floor\",\n \"neighborhood\": \"Botafogo\",\n \"postalCode\": \"22250040\",\n \"city\": \"Rio de Janeiro\",\n \"state\": \"RJ\"\n },\n \"billingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Brigadeiro Faria Lima Avenue\",\n \"number\": \"4440\",\n \"complement\": \"10th Floor\",\n \"neighborhood\": \"Itaim Bibi\",\n \"postalCode\": \"04538132\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\"\n },\n \"items\": [\n {\n \"id\": \"132981\",\n \"name\": \"My First Product\",\n \"price\": 2134.9,\n \"quantity\": 2,\n \"discount\": 5\n },\n {\n \"id\": \"123242\",\n \"name\": \"My Second Product\",\n \"price\": 21.98,\n \"quantity\": 1,\n \"discount\": 1\n }\n ]\n },\n \"url\": \"https://admin.mystore.example.com/orders/v32478982\",\n \"callbackUrl\": \"https://api.example.com/some-path/to-notify/status-changes?an=mystore\",\n \"returnUrl\": \"https://mystore.example.com/checkout/order/v32478982\"\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "OK", + "code": 200, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"paymentId\": \"F5C1A4E20D3B4E07B7E871F5B5BC9F91\",\n \"status\": \"approved\",\n \"authorizationId\": \"AUT123567\",\n \"nsu\": \"NSU987432\",\n \"tid\": \"TID1578324421\",\n \"acquirer\": \"FooBarPayments\",\n \"delayToAutoSettle\": 432000,\n \"delayToAutoSettleAfterAntifraud\": 120,\n \"delayToCancel\": 600,\n \"connectorMetadata\": [\n {\n \"name\": \"MetadataName\",\n \"value\": \"MetadataValue\"\n }\n ]\n}", + "cookie": [] + }, + { + "_": { + "postman_previewlanguage": "json" + }, + "id": "835cf9be-a231-4c7a-b42c-69237136d061", + "name": "Fail Bad Request", + "originalRequest": { + "url": { + "path": [ + "payments" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "disabled": false, + "description": { + "content": "(Required) Unique identifier created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json.", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppKey", + "value": "{{X-PROVIDER-API-AppKey}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Unique token created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppToken", + "value": "{{X-PROVIDER-API-AppToken}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Type of the content being sent.", + "type": "text/plain" + }, + "key": "Content-Type", + "value": "application/json" + }, + { + "disabled": false, + "description": { + "content": "(Required) HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.", + "type": "text/plain" + }, + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "X-VTEX-API-AppKey", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"reference\": \"32478982\",\n \"orderId\": \"v967373115140abc\",\n \"shopperInteraction\": \"ecommerce\",\n \"transactionId\": \"D3AA1FC8372E430E8236649DB5EBD08E\",\n \"paymentId\": \"F5C1A4E20D3B4E07B7E871F5B5BC9F91\",\n \"paymentMethod\": \"Visa\",\n \"paymentMethodCustomCode\": null,\n \"merchantName\": \"mystore\",\n \"value\": 4307.23,\n \"referenceValue\": 4000,\n \"currency\": \"BRL\",\n \"installments\": 3,\n \"deviceFingerprint\": \"12ade389087fe\",\n \"card\": {\n \"holder\": \"John Doe\",\n \"number\": \"4682185088924788\",\n \"csc\": \"021\",\n \"expiration\": {\n \"month\": \"06\",\n \"year\": \"2029\"\n }\n },\n \"miniCart\": {\n \"shippingValue\": 11.44,\n \"taxValue\": 10.01,\n \"buyer\": {\n \"id\": \"c1245228-1c68-11e6-94ac-0afa86a846a5\",\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"document\": \"01234567890\",\n \"documentType\": \"CPF\",\n \"email\": \"john.doe@example.com\",\n \"phone\": \"+5521987654321\"\n },\n \"shippingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Praia de Botafogo St.\",\n \"number\": \"300\",\n \"complement\": \"3rd Floor\",\n \"neighborhood\": \"Botafogo\",\n \"postalCode\": \"22250040\",\n \"city\": \"Rio de Janeiro\",\n \"state\": \"RJ\"\n },\n \"billingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Brigadeiro Faria Lima Avenue\",\n \"number\": \"4440\",\n \"complement\": \"10th Floor\",\n \"neighborhood\": \"Itaim Bibi\",\n \"postalCode\": \"04538132\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\"\n },\n \"items\": [\n {\n \"id\": \"132981\",\n \"name\": \"My First Product\",\n \"price\": 2134.9,\n \"quantity\": 2,\n \"discount\": 5\n },\n {\n \"id\": \"123242\",\n \"name\": \"My Second Product\",\n \"price\": 21.98,\n \"quantity\": 1,\n \"discount\": 1\n }\n ]\n },\n \"url\": \"https://admin.mystore.example.com/orders/v32478982\",\n \"callbackUrl\": \"https://api.example.com/some-path/to-notify/status-changes?an=mystore\",\n \"returnUrl\": \"https://mystore.example.com/checkout/order/v32478982\"\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "OK", + "code": 200, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"paymentId\": \"F5C1A4E20D3B4E07B7E871F5B5BC9F91\",\n \"status\": \"approved\",\n \"authorizationId\": \"AUT123567\",\n \"nsu\": \"NSU987432\",\n \"tid\": \"TID1578324421\",\n \"acquirer\": \"FooBarPayments\",\n \"delayToAutoSettle\": 432000,\n \"delayToAutoSettleAfterAntifraud\": 120,\n \"delayToCancel\": 600,\n \"connectorMetadata\": [\n {\n \"name\": \"MetadataName\",\n \"value\": \"MetadataValue\"\n }\n ]\n}", + "cookie": [] + }, + { + "_": { + "postman_previewlanguage": "json" + }, + "id": "f35e79a6-a4d8-4167-8619-484e29d293fb", + "name": "Credit Card Success Approved", + "originalRequest": { + "url": { + "path": [ + "payments" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "disabled": false, + "description": { + "content": "(Required) Unique identifier created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json.", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppKey", + "value": "{{X-PROVIDER-API-AppKey}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Unique token created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppToken", + "value": "{{X-PROVIDER-API-AppToken}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Type of the content being sent.", + "type": "text/plain" + }, + "key": "Content-Type", + "value": "application/json" + }, + { + "disabled": false, + "description": { + "content": "(Required) HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.", + "type": "text/plain" + }, + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "X-VTEX-API-AppKey", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"reference\": \"618272\",\n \"orderId\": \"1072430428324\",\n \"shopperInteraction\": \"ecommerce\",\n \"transactionId\": \"2F023FD5A72A49D48A8633252B7CCBD6\",\n \"paymentId\": \"01693EB95BE443AC85874E395CD91565\",\n \"paymentMethod\": \"Diners\",\n \"paymentMethodCustomCode\": null,\n \"merchantName\": \"mystore\",\n \"card\": {\n \"holder\": \"John Doe\",\n \"number\": \"364901****2661\",\n \"csc\": \"***\",\n \"expiration\": {\n \"month\": \"12\",\n \"year\": \"2020\"\n },\n \"document\": \"39295416023\",\n \"token\": null\n },\n \"value\": 31.9,\n \"referenceValue\": 31.9,\n \"currency\": \"BRL\",\n \"installments\": 1,\n \"installmentsInterestRate\": 0,\n \"installmentsValue\": 31.9,\n \"deviceFingerprint\": \"75076388\",\n \"ipAddress\": \"187.105.111.65\",\n \"miniCart\": {\n \"buyer\": {\n \"id\": \"c1245228-1c68-11e6-94ac-0afa86a846a5\",\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"document\": \"01234567890\",\n \"documentType\": \"cpf\",\n \"corporateName\": null,\n \"tradeName\": null,\n \"corporateDocument\": null,\n \"isCorporate\": false,\n \"email\": \"john.doe@example.com\",\n \"phone\": \"+5521999999999\",\n \"createdDate\": \"2020-02-18T18:17:45\"\n },\n \"shippingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Praia de Botafogo St.\",\n \"number\": \"300\",\n \"complement\": \"3rd Floor\",\n \"neighborhood\": \"Botafogo\",\n \"postalCode\": \"22250040\",\n \"city\": \"Rio de Janeiro\",\n \"state\": \"RJ\"\n },\n \"billingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Brigadeiro Faria Lima Avenue\",\n \"number\": \"4440\",\n \"complement\": \"10th Floor\",\n \"neighborhood\": \"Itaim Bibi\",\n \"postalCode\": \"04538132\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\"\n },\n \"items\": [\n {\n \"id\": \"8\",\n \"name\": \"Tenis Preto I\",\n \"price\": 30.9,\n \"quantity\": 1,\n \"discount\": 0,\n \"deliveryType\": \"Normal\",\n \"categoryId\": \"5\",\n \"sellerId\": \"1\"\n }\n ],\n \"shippingValue\": 1,\n \"taxValue\": 0\n },\n \"url\": \"https://admin.mystore.example.com/orders?q=1072430428324\",\n \"callbackUrl\": \"https://api.mystore.example.com/some-path/to-notify/status-changes?an=mystore\",\n \"returnUrl\": \"https://mystore.example.com/checkout/order/1072430428324\",\n \"inboundRequestsUrl\": \"https://api.mystore.example.com/checkout/order/1072430428324/inbound-request/:action\",\n \"recipients\": [\n {\n \"id\": \"mymarketplace\",\n \"name\": \"My Marketplace QA\",\n \"documentType\": \"CNPJ\",\n \"document\": \"99999999999999\",\n \"role\": \"marketplace\",\n \"chargeProcessingFee\": true,\n \"chargebackLiable\": true,\n \"amount\": 31.9\n }\n ],\n \"merchantSettings\": [\n {\n \"name\": \"field1\",\n \"value\": \"value1\"\n },\n {\n \"name\": \"field2\",\n \"value\": \"value2\"\n }\n ],\n \"connectorMetadata\": [\n {\n \"name\": \"MetadataName\",\n \"value\": \"MetadataValue\"\n }\n ]\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Bad Request", + "code": 400, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"status\": \"error\",\n \"code\": \"ERR123\",\n \"message\": \"The currency ABC is not supported\"\n}", + "cookie": [] + }, + { + "_": { + "postman_previewlanguage": "json" + }, + "id": "6f1cfaf9-d3e1-4bc8-94d6-716527b1c78f", + "name": "Pix Success Approved", + "originalRequest": { + "url": { + "path": [ + "payments" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "disabled": false, + "description": { + "content": "(Required) Unique identifier created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json.", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppKey", + "value": "{{X-PROVIDER-API-AppKey}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Unique token created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppToken", + "value": "{{X-PROVIDER-API-AppToken}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Type of the content being sent.", + "type": "text/plain" + }, + "key": "Content-Type", + "value": "application/json" + }, + { + "disabled": false, + "description": { + "content": "(Required) HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.", + "type": "text/plain" + }, + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "X-VTEX-API-AppKey", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"reference\": \"32478982\",\n \"orderId\": \"v967373115140abc\",\n \"shopperInteraction\": \"ecommerce\",\n \"transactionId\": \"D3AA1FC8372E430E8236649DB5EBD08E\",\n \"paymentId\": \"F5C1A4E20D3B4E07B7E871F5B5BC9F91\",\n \"paymentMethod\": \"Pix\",\n \"paymentMethodCustomCode\": null,\n \"merchantName\": \"mystore\",\n \"value\": 4307.23,\n \"referenceValue\": 4307.23,\n \"currency\": \"BRL\",\n \"installments\": 1,\n \"deviceFingerprint\": \"15ace369587ha\",\n \"card\": {\n \"holder\": null,\n \"number\": null,\n \"csc\": null,\n \"expiration\": {\n \"month\": null,\n \"year\": null\n }\n },\n \"miniCart\": {\n \"shippingValue\": 11.44,\n \"taxValue\": 10.01,\n \"buyer\": {\n \"id\": \"c1245228-1c68-11e6-94ac-0afa86a846a5\",\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"document\": \"01234567890\",\n \"documentType\": \"cpf\",\n \"email\": \"john.doe@example.com\",\n \"phone\": \"+5521999999999\"\n },\n \"shippingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Praia de Botafogo St.\",\n \"number\": \"300\",\n \"complement\": \"3rd Floor\",\n \"neighborhood\": \"Botafogo\",\n \"postalCode\": \"22250040\",\n \"city\": \"Rio de Janeiro\",\n \"state\": \"RJ\"\n },\n \"billingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Brigadeiro Faria Lima Avenue\",\n \"number\": \"4440\",\n \"complement\": \"10th Floor\",\n \"neighborhood\": \"Itaim Bibi\",\n \"postalCode\": \"04538132\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\"\n },\n \"items\": [\n {\n \"id\": \"132981\",\n \"name\": \"My First Product\",\n \"price\": 2134.9,\n \"quantity\": 2,\n \"discount\": 5\n },\n {\n \"id\": \"123242\",\n \"name\": \"My Second Product\",\n \"price\": 21.98,\n \"quantity\": 1,\n \"discount\": 1\n }\n ]\n },\n \"url\": \"https://admin.mystore.example.com/orders/v32478982\",\n \"callbackUrl\": \"https://api.example.com/some-path/to-notify/status-changes?an=mystore\",\n \"returnUrl\": \"https://mystore.example.com/checkout/order/v32478982\"\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Bad Request", + "code": 400, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"status\": \"error\",\n \"code\": \"ERR123\",\n \"message\": \"The currency ABC is not supported\"\n}", + "cookie": [] + }, + { + "_": { + "postman_previewlanguage": "json" + }, + "id": "257d1e17-99b0-4a4e-9d58-c4312dd7593a", + "name": "Success Undefined", + "originalRequest": { + "url": { + "path": [ + "payments" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "disabled": false, + "description": { + "content": "(Required) Unique identifier created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json.", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppKey", + "value": "{{X-PROVIDER-API-AppKey}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Unique token created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppToken", + "value": "{{X-PROVIDER-API-AppToken}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Type of the content being sent.", + "type": "text/plain" + }, + "key": "Content-Type", + "value": "application/json" + }, + { + "disabled": false, + "description": { + "content": "(Required) HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.", + "type": "text/plain" + }, + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "X-VTEX-API-AppKey", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"reference\": \"32478982\",\n \"orderId\": \"v967373115140abc\",\n \"shopperInteraction\": \"ecommerce\",\n \"transactionId\": \"D3AA1FC8372E430E8236649DB5EBD08E\",\n \"paymentId\": \"F5C1A4E20D3B4E07B7E871F5B5BC9F91\",\n \"paymentMethod\": \"Visa\",\n \"paymentMethodCustomCode\": null,\n \"merchantName\": \"mystore\",\n \"value\": 4307.23,\n \"referenceValue\": 4000,\n \"currency\": \"BRL\",\n \"installments\": 3,\n \"deviceFingerprint\": \"12ade389087fe\",\n \"card\": {\n \"holder\": \"John Doe\",\n \"number\": \"4682185088924788\",\n \"csc\": \"021\",\n \"expiration\": {\n \"month\": \"06\",\n \"year\": \"2029\"\n }\n },\n \"miniCart\": {\n \"shippingValue\": 11.44,\n \"taxValue\": 10.01,\n \"buyer\": {\n \"id\": \"c1245228-1c68-11e6-94ac-0afa86a846a5\",\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"document\": \"01234567890\",\n \"documentType\": \"CPF\",\n \"email\": \"john.doe@example.com\",\n \"phone\": \"+5521987654321\"\n },\n \"shippingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Praia de Botafogo St.\",\n \"number\": \"300\",\n \"complement\": \"3rd Floor\",\n \"neighborhood\": \"Botafogo\",\n \"postalCode\": \"22250040\",\n \"city\": \"Rio de Janeiro\",\n \"state\": \"RJ\"\n },\n \"billingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Brigadeiro Faria Lima Avenue\",\n \"number\": \"4440\",\n \"complement\": \"10th Floor\",\n \"neighborhood\": \"Itaim Bibi\",\n \"postalCode\": \"04538132\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\"\n },\n \"items\": [\n {\n \"id\": \"132981\",\n \"name\": \"My First Product\",\n \"price\": 2134.9,\n \"quantity\": 2,\n \"discount\": 5\n },\n {\n \"id\": \"123242\",\n \"name\": \"My Second Product\",\n \"price\": 21.98,\n \"quantity\": 1,\n \"discount\": 1\n }\n ]\n },\n \"url\": \"https://admin.mystore.example.com/orders/v32478982\",\n \"callbackUrl\": \"https://api.example.com/some-path/to-notify/status-changes?an=mystore\",\n \"returnUrl\": \"https://mystore.example.com/checkout/order/v32478982\"\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Bad Request", + "code": 400, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"status\": \"error\",\n \"code\": \"ERR123\",\n \"message\": \"The currency ABC is not supported\"\n}", + "cookie": [] + }, + { + "_": { + "postman_previewlanguage": "json" + }, + "id": "6915e282-55e4-4179-a5b6-36e3e4e2e80d", + "name": "BankInvoice Success Undefined", + "originalRequest": { + "url": { + "path": [ + "payments" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "disabled": false, + "description": { + "content": "(Required) Unique identifier created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json.", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppKey", + "value": "{{X-PROVIDER-API-AppKey}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Unique token created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppToken", + "value": "{{X-PROVIDER-API-AppToken}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Type of the content being sent.", + "type": "text/plain" + }, + "key": "Content-Type", + "value": "application/json" + }, + { + "disabled": false, + "description": { + "content": "(Required) HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.", + "type": "text/plain" + }, + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "X-VTEX-API-AppKey", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"reference\": \"32478982\",\n \"orderId\": \"v967373115140abc\",\n \"shopperInteraction\": \"ecommerce\",\n \"transactionId\": \"D3AA1FC8372E430E8236649DB5EBD08E\",\n \"paymentId\": \"F5C1A4E20D3B4E07B7E871F5B5BC9F91\",\n \"paymentMethod\": \"BankInvoice\",\n \"paymentMethodCustomCode\": null,\n \"merchantName\": \"mystore\",\n \"value\": 4307.23,\n \"referenceValue\": 4307.23,\n \"currency\": \"BRL\",\n \"installments\": 1,\n \"deviceFingerprint\": \"12ade389087fe\",\n \"card\": {\n \"holder\": null,\n \"number\": null,\n \"csc\": null,\n \"expiration\": {\n \"month\": null,\n \"year\": null\n }\n },\n \"miniCart\": {\n \"shippingValue\": 11.44,\n \"taxValue\": 10.01,\n \"buyer\": {\n \"id\": \"c1245228-1c68-11e6-94ac-0afa86a846a5\",\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"document\": \"01234567890\",\n \"documentType\": \"CPF\",\n \"email\": \"john.doe@example.com\",\n \"phone\": \"+5521987654321\"\n },\n \"shippingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Praia de Botafogo St.\",\n \"number\": \"300\",\n \"complement\": \"3rd Floor\",\n \"neighborhood\": \"Botafogo\",\n \"postalCode\": \"22250040\",\n \"city\": \"Rio de Janeiro\",\n \"state\": \"RJ\"\n },\n \"billingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Brigadeiro Faria Lima Avenue\",\n \"number\": \"4440\",\n \"complement\": \"10th Floor\",\n \"neighborhood\": \"Itaim Bibi\",\n \"postalCode\": \"04538132\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\"\n },\n \"items\": [\n {\n \"id\": \"132981\",\n \"name\": \"My First Product\",\n \"price\": 2134.9,\n \"quantity\": 2,\n \"discount\": 5\n },\n {\n \"id\": \"123242\",\n \"name\": \"My Second Product\",\n \"price\": 21.98,\n \"quantity\": 1,\n \"discount\": 1\n }\n ]\n },\n \"url\": \"https://admin.mystore.example.com/orders/v32478982\",\n \"callbackUrl\": \"https://api.example.com/some-path/to-notify/status-changes?an=mystore\",\n \"returnUrl\": \"https://mystore.example.com/checkout/order/v32478982\"\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Bad Request", + "code": 400, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"status\": \"error\",\n \"code\": \"ERR123\",\n \"message\": \"The currency ABC is not supported\"\n}", + "cookie": [] + }, + { + "_": { + "postman_previewlanguage": "json" + }, + "id": "fa97fbf1-6688-4123-a1a3-ca9ed53d64fd", + "name": "Success Denied", + "originalRequest": { + "url": { + "path": [ + "payments" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "disabled": false, + "description": { + "content": "(Required) Unique identifier created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json.", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppKey", + "value": "{{X-PROVIDER-API-AppKey}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Unique token created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppToken", + "value": "{{X-PROVIDER-API-AppToken}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Type of the content being sent.", + "type": "text/plain" + }, + "key": "Content-Type", + "value": "application/json" + }, + { + "disabled": false, + "description": { + "content": "(Required) HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.", + "type": "text/plain" + }, + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "X-VTEX-API-AppKey", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"reference\": \"32478982\",\n \"orderId\": \"v967373115140abc\",\n \"shopperInteraction\": \"ecommerce\",\n \"transactionId\": \"D3AA1FC8372E430E8236649DB5EBD08E\",\n \"paymentId\": \"F5C1A4E20D3B4E07B7E871F5B5BC9F91\",\n \"paymentMethod\": \"Visa\",\n \"paymentMethodCustomCode\": null,\n \"merchantName\": \"mystore\",\n \"value\": 4307.23,\n \"referenceValue\": 4000,\n \"currency\": \"BRL\",\n \"installments\": 3,\n \"deviceFingerprint\": \"12ade389087fe\",\n \"card\": {\n \"holder\": \"John Doe\",\n \"number\": \"4682185088924788\",\n \"csc\": \"021\",\n \"expiration\": {\n \"month\": \"06\",\n \"year\": \"2029\"\n }\n },\n \"miniCart\": {\n \"shippingValue\": 11.44,\n \"taxValue\": 10.01,\n \"buyer\": {\n \"id\": \"c1245228-1c68-11e6-94ac-0afa86a846a5\",\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"document\": \"01234567890\",\n \"documentType\": \"CPF\",\n \"email\": \"john.doe@example.com\",\n \"phone\": \"+5521987654321\"\n },\n \"shippingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Praia de Botafogo St.\",\n \"number\": \"300\",\n \"complement\": \"3rd Floor\",\n \"neighborhood\": \"Botafogo\",\n \"postalCode\": \"22250040\",\n \"city\": \"Rio de Janeiro\",\n \"state\": \"RJ\"\n },\n \"billingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Brigadeiro Faria Lima Avenue\",\n \"number\": \"4440\",\n \"complement\": \"10th Floor\",\n \"neighborhood\": \"Itaim Bibi\",\n \"postalCode\": \"04538132\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\"\n },\n \"items\": [\n {\n \"id\": \"132981\",\n \"name\": \"My First Product\",\n \"price\": 2134.9,\n \"quantity\": 2,\n \"discount\": 5\n },\n {\n \"id\": \"123242\",\n \"name\": \"My Second Product\",\n \"price\": 21.98,\n \"quantity\": 1,\n \"discount\": 1\n }\n ]\n },\n \"url\": \"https://admin.mystore.example.com/orders/v32478982\",\n \"callbackUrl\": \"https://api.example.com/some-path/to-notify/status-changes?an=mystore\",\n \"returnUrl\": \"https://mystore.example.com/checkout/order/v32478982\"\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Bad Request", + "code": 400, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"status\": \"error\",\n \"code\": \"ERR123\",\n \"message\": \"The currency ABC is not supported\"\n}", + "cookie": [] + }, + { + "_": { + "postman_previewlanguage": "json" + }, + "id": "8978d52c-26ce-4ee6-a077-f0ffd324ca2f", + "name": "BankInvoice Success Approved", + "originalRequest": { + "url": { + "path": [ + "payments" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "disabled": false, + "description": { + "content": "(Required) Unique identifier created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json.", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppKey", + "value": "{{X-PROVIDER-API-AppKey}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Unique token created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppToken", + "value": "{{X-PROVIDER-API-AppToken}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Type of the content being sent.", + "type": "text/plain" + }, + "key": "Content-Type", + "value": "application/json" + }, + { + "disabled": false, + "description": { + "content": "(Required) HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.", + "type": "text/plain" + }, + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "X-VTEX-API-AppKey", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"reference\": \"618272\",\n \"orderId\": \"1072430428324\",\n \"shopperInteraction\": \"ecommerce\",\n \"transactionId\": \"2F023FD5A72A49D48A8633252B7CCBD6\",\n \"paymentId\": \"01693EB95BE443AC85874E395CD91565\",\n \"paymentMethod\": \"BankInvoice\",\n \"paymentMethodCustomCode\": null,\n \"merchantName\": \"mystore\",\n \"card\": {\n \"holder\": \"null\",\n \"number\": \"null\",\n \"csc\": \"null\",\n \"expiration\": {\n \"month\": \"null\",\n \"year\": \"null\"\n }\n },\n \"document\": null,\n \"token\": null,\n \"value\": 31.9,\n \"referenceValue\": 31.9,\n \"currency\": \"BRL\",\n \"installments\": 1,\n \"installmentsInterestRate\": 0,\n \"installmentsValue\": 31.9,\n \"deviceFingerprint\": \"98073964\",\n \"ipAddress\": \"187.105.111.65\",\n \"miniCart\": {\n \"buyer\": {\n \"id\": \"c1245228-1c68-11e6-94ac-0afa86a846a5\",\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"document\": \"01234567890\",\n \"documentType\": \"cpf\",\n \"corporateName\": null,\n \"tradeName\": null,\n \"corporateDocument\": null,\n \"isCorporate\": false,\n \"email\": \"john.doe@example.com\",\n \"phone\": \"+5521999999999\",\n \"createdDate\": \"2020-02-18T18:17:45\"\n },\n \"shippingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Praia de Botafogo St.\",\n \"number\": \"300\",\n \"complement\": \"3rd Floor\",\n \"neighborhood\": \"Botafogo\",\n \"postalCode\": \"22250040\",\n \"city\": \"Rio de Janeiro\",\n \"state\": \"RJ\"\n },\n \"billingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Brigadeiro Faria Lima Avenue\",\n \"number\": \"4440\",\n \"complement\": \"10th Floor\",\n \"neighborhood\": \"Itaim Bibi\",\n \"postalCode\": \"04538132\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\"\n },\n \"items\": [\n {\n \"id\": \"8\",\n \"name\": \"Tenis Preto I\",\n \"price\": 30.9,\n \"quantity\": 1,\n \"discount\": 0,\n \"deliveryType\": \"Normal\",\n \"categoryId\": \"5\",\n \"sellerId\": \"1\"\n }\n ],\n \"shippingValue\": 11.44,\n \"taxValue\": 10.01\n },\n \"url\": \"https://admin.mystore.example.com/orders?q=1072430428324\",\n \"callbackUrl\": \"https://api.example.com/some-path/to-notify/status-changes?an=mystore\",\n \"returnUrl\": \"https://mystore.example.com/checkout/order/1072430428324\",\n \"inboundRequestsUrl\": \"https://api.mystore.example.com/checkout/order/1072430428324/inbound-request/:action\",\n \"recipients\": [\n {\n \"id\": \"mymarketplace\",\n \"name\": \"My Marketplace QA\",\n \"documentType\": \"CNPJ\",\n \"document\": \"99999999999999\",\n \"role\": \"marketplace\",\n \"chargeProcessingFee\": true,\n \"chargebackLiable\": true,\n \"amount\": 31.9\n }\n ],\n \"merchantSettings\": [\n {\n \"name\": \"field1\",\n \"value\": \"value1\"\n },\n {\n \"name\": \"field2\",\n \"value\": \"value2\"\n }\n ]\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Bad Request", + "code": 400, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"status\": \"error\",\n \"code\": \"ERR123\",\n \"message\": \"The currency ABC is not supported\"\n}", + "cookie": [] + }, + { + "_": { + "postman_previewlanguage": "json" + }, + "id": "f3b47262-4a69-487d-a25f-1d55cab4b41c", + "name": "Payment App + Inbound Request Success Undefined", + "originalRequest": { + "url": { + "path": [ + "payments" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "disabled": false, + "description": { + "content": "(Required) Unique identifier created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json.", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppKey", + "value": "{{X-PROVIDER-API-AppKey}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Unique token created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppToken", + "value": "{{X-PROVIDER-API-AppToken}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Type of the content being sent.", + "type": "text/plain" + }, + "key": "Content-Type", + "value": "application/json" + }, + { + "disabled": false, + "description": { + "content": "(Required) HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.", + "type": "text/plain" + }, + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "X-VTEX-API-AppKey", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"reference\": \"32478982\",\n \"orderId\": \"v967373115140abc\",\n \"shopperInteraction\": \"ecommerce\",\n \"transactionId\": \"D3AA1FC8372E430E8236649DB5EBD08E\",\n \"paymentId\": \"F5C1A4E20D3B4E07B7E871F5B5BC9F91\",\n \"paymentMethod\": \"CustomPay\",\n \"paymentMethodCustomCode\": null,\n \"merchantName\": \"mystore\",\n \"value\": 4307.23,\n \"referenceValue\": 4307.23,\n \"currency\": \"BRL\",\n \"installments\": 1,\n \"deviceFingerprint\": \"12ade389087fe\",\n \"card\": {\n \"holder\": null,\n \"number\": null,\n \"csc\": null,\n \"expiration\": {\n \"month\": null,\n \"year\": null\n }\n },\n \"miniCart\": {\n \"shippingValue\": 11.44,\n \"taxValue\": 10.01,\n \"buyer\": {\n \"id\": \"c1245228-1c68-11e6-94ac-0afa86a846a5\",\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"document\": \"01234567890\",\n \"documentType\": \"CPF\",\n \"email\": \"john.doe@example.com\",\n \"phone\": \"+5521987654321\"\n },\n \"shippingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Praia de Botafogo St.\",\n \"number\": \"300\",\n \"complement\": \"3rd Floor\",\n \"neighborhood\": \"Botafogo\",\n \"postalCode\": \"22250040\",\n \"city\": \"Rio de Janeiro\",\n \"state\": \"RJ\"\n },\n \"billingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Brigadeiro Faria Lima Avenue\",\n \"number\": \"4440\",\n \"complement\": \"10th Floor\",\n \"neighborhood\": \"Itaim Bibi\",\n \"postalCode\": \"04538132\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\"\n },\n \"items\": [\n {\n \"id\": \"132981\",\n \"name\": \"My First Product\",\n \"price\": 2134.9,\n \"quantity\": 2,\n \"discount\": 5\n },\n {\n \"id\": \"123242\",\n \"name\": \"My Second Product\",\n \"price\": 21.98,\n \"quantity\": 1,\n \"discount\": 1\n }\n ]\n },\n \"url\": \"https://admin.mystore.example.com/orders/v32478982\",\n \"callbackUrl\": \"https://api.example.com/some-path/to-notify/status-changes?an=mystore\",\n \"returnUrl\": \"https://mystore.example.com/checkout/order/v32478982\",\n \"inboundRequestsUrl\": \"https://mystore.api.example.com/some-path/inbound-request/:action\"\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Bad Request", + "code": 400, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"status\": \"error\",\n \"code\": \"ERR123\",\n \"message\": \"The currency ABC is not supported\"\n}", + "cookie": [] + }, + { + "_": { + "postman_previewlanguage": "json" + }, + "id": "46157ad9-4af9-47ac-ac9b-2fbda713beb4", + "name": "Redirect Success Undefined", + "originalRequest": { + "url": { + "path": [ + "payments" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "disabled": false, + "description": { + "content": "(Required) Unique identifier created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json.", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppKey", + "value": "{{X-PROVIDER-API-AppKey}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Unique token created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppToken", + "value": "{{X-PROVIDER-API-AppToken}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Type of the content being sent.", + "type": "text/plain" + }, + "key": "Content-Type", + "value": "application/json" + }, + { + "disabled": false, + "description": { + "content": "(Required) HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.", + "type": "text/plain" + }, + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "X-VTEX-API-AppKey", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"reference\": \"32478982\",\n \"orderId\": \"v967373115140abc\",\n \"shopperInteraction\": \"ecommerce\",\n \"transactionId\": \"D3AA1FC8372E430E8236649DB5EBD08E\",\n \"paymentId\": \"F5C1A4E20D3B4E07B7E871F5B5BC9F91\",\n \"paymentMethod\": \"FakePay\",\n \"paymentMethodCustomCode\": null,\n \"merchantName\": \"mystore\",\n \"value\": 4307.23,\n \"referenceValue\": 4307.23,\n \"currency\": \"BRL\",\n \"installments\": 1,\n \"deviceFingerprint\": \"12ade389087fe\",\n \"card\": {\n \"holder\": null,\n \"number\": null,\n \"csc\": null,\n \"expiration\": {\n \"month\": null,\n \"year\": null\n }\n },\n \"miniCart\": {\n \"shippingValue\": 11.44,\n \"taxValue\": 10.01,\n \"buyer\": {\n \"id\": \"c1245228-1c68-11e6-94ac-0afa86a846a5\",\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"document\": \"01234567890\",\n \"documentType\": \"CPF\",\n \"email\": \"john.doe@example.com\",\n \"phone\": \"+5521987654321\"\n },\n \"shippingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Praia de Botafogo St.\",\n \"number\": \"300\",\n \"complement\": \"3rd Floor\",\n \"neighborhood\": \"Botafogo\",\n \"postalCode\": \"22250040\",\n \"city\": \"Rio de Janeiro\",\n \"state\": \"RJ\"\n },\n \"billingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Brigadeiro Faria Lima Avenue\",\n \"number\": \"4440\",\n \"complement\": \"10th Floor\",\n \"neighborhood\": \"Itaim Bibi\",\n \"postalCode\": \"04538132\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\"\n },\n \"items\": [\n {\n \"id\": \"132981\",\n \"name\": \"My First Product\",\n \"price\": 2134.9,\n \"quantity\": 2,\n \"discount\": 5\n },\n {\n \"id\": \"123242\",\n \"name\": \"My Second Product\",\n \"price\": 21.98,\n \"quantity\": 1,\n \"discount\": 1\n }\n ]\n },\n \"url\": \"https://admin.mystore.example.com/orders/v32478982\",\n \"callbackUrl\": \"https://api.example.com/some-path/to-notify/status-changes?an=mystore\",\n \"returnUrl\": \"https://mystore.example.com/checkout/order/v32478982\"\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Bad Request", + "code": 400, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"status\": \"error\",\n \"code\": \"ERR123\",\n \"message\": \"The currency ABC is not supported\"\n}", + "cookie": [] + }, + { + "_": { + "postman_previewlanguage": "json" + }, + "id": "73a77570-da5a-4b77-b342-03d11b82dcf8", + "name": "Redirect Success Approved", + "originalRequest": { + "url": { + "path": [ + "payments" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "disabled": false, + "description": { + "content": "(Required) Unique identifier created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json.", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppKey", + "value": "{{X-PROVIDER-API-AppKey}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Unique token created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppToken", + "value": "{{X-PROVIDER-API-AppToken}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Type of the content being sent.", + "type": "text/plain" + }, + "key": "Content-Type", + "value": "application/json" + }, + { + "disabled": false, + "description": { + "content": "(Required) HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.", + "type": "text/plain" + }, + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "X-VTEX-API-AppKey", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"reference\": \"618272\",\n \"orderId\": \"1072430428324\",\n \"shopperInteraction\": \"ecommerce\",\n \"transactionId\": \"2F023FD5A72A49D48A8633252B7CCBD6\",\n \"paymentId\": \"01693EB95BE443AC85874E395CD91565\",\n \"paymentMethod\": \"RedirectPay\",\n \"paymentMethodCustomCode\": null,\n \"merchantName\": \"mystore\",\n \"value\": 31.9,\n \"referenceValue\": 31.9,\n \"currency\": \"BRL\",\n \"installments\": 1,\n \"installmentsInterestRate\": 0,\n \"installmentsValue\": 31.9,\n \"deviceFingerprint\": \"75076388\",\n \"ipAddress\": \"187.105.111.65\",\n \"miniCart\": {\n \"buyer\": {\n \"id\": \"c1245228-1c68-11e6-94ac-0afa86a846a5\",\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"document\": \"01234567890\",\n \"documentType\": \"cpf\",\n \"corporateName\": null,\n \"tradeName\": null,\n \"corporateDocument\": null,\n \"isCorporate\": false,\n \"email\": \"john.doe@example.com\",\n \"phone\": \"+5521999999999\",\n \"createdDate\": \"2020-02-18T18:17:45\"\n },\n \"shippingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Praia de Botafogo St.\",\n \"number\": \"300\",\n \"complement\": \"3rd Floor\",\n \"neighborhood\": \"Botafogo\",\n \"postalCode\": \"22250040\",\n \"city\": \"Rio de Janeiro\",\n \"state\": \"RJ\"\n },\n \"billingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Brigadeiro Faria Lima Avenue\",\n \"number\": \"4440\",\n \"complement\": \"10th Floor\",\n \"neighborhood\": \"Itaim Bibi\",\n \"postalCode\": \"04538132\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\"\n },\n \"items\": [\n {\n \"id\": \"8\",\n \"name\": \"Tenis Preto I\",\n \"price\": 30.9,\n \"quantity\": 1,\n \"discount\": 0,\n \"deliveryType\": \"Normal\",\n \"categoryId\": \"5\",\n \"sellerId\": \"1\"\n }\n ],\n \"shippingValue\": 1,\n \"taxValue\": 0\n },\n \"url\": \"https://admin.mystore.example.com/orders/v32478982\",\n \"callbackUrl\": \"https://api.example.com/some-path/to-notify/status-changes?an=mystore\",\n \"returnUrl\": \"https://mystore.example.com/checkout/order/v32478982\",\n \"inboundRequestsUrl\": \"https://api.mystore.example.com/checkout/order/1072430428324/inbound-request/:action\",\n \"recipients\": [\n {\n \"id\": \"mymarketplace\",\n \"name\": \"My Marketplace QA\",\n \"documentType\": \"CNPJ\",\n \"document\": \"99999999999999\",\n \"role\": \"marketplace\",\n \"chargeProcessingFee\": true,\n \"chargebackLiable\": true,\n \"amount\": 31.9\n }\n ],\n \"merchantSettings\": [\n {\n \"name\": \"field1\",\n \"value\": \"value1\"\n },\n {\n \"name\": \"field2\",\n \"value\": \"value2\"\n }\n ]\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Bad Request", + "code": 400, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"status\": \"error\",\n \"code\": \"ERR123\",\n \"message\": \"The currency ABC is not supported\"\n}", + "cookie": [] + }, + { + "_": { + "postman_previewlanguage": "json" + }, + "id": "b76d82ff-202c-4c37-8ffc-d6c5ff6ceaf7", + "name": "Fail Generic Error", + "originalRequest": { + "url": { + "path": [ + "payments" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "disabled": false, + "description": { + "content": "(Required) Unique identifier created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json.", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppKey", + "value": "{{X-PROVIDER-API-AppKey}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Unique token created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppToken", + "value": "{{X-PROVIDER-API-AppToken}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Type of the content being sent.", + "type": "text/plain" + }, + "key": "Content-Type", + "value": "application/json" + }, + { + "disabled": false, + "description": { + "content": "(Required) HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.", + "type": "text/plain" + }, + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "X-VTEX-API-AppKey", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"reference\": \"32478982\",\n \"orderId\": \"v967373115140abc\",\n \"shopperInteraction\": \"ecommerce\",\n \"transactionId\": \"D3AA1FC8372E430E8236649DB5EBD08E\",\n \"paymentId\": \"F5C1A4E20D3B4E07B7E871F5B5BC9F91\",\n \"paymentMethod\": \"Visa\",\n \"paymentMethodCustomCode\": null,\n \"merchantName\": \"mystore\",\n \"value\": 4307.23,\n \"referenceValue\": 4000,\n \"currency\": \"BRL\",\n \"installments\": 3,\n \"deviceFingerprint\": \"12ade389087fe\",\n \"card\": {\n \"holder\": \"John Doe\",\n \"number\": \"4682185088924788\",\n \"csc\": \"021\",\n \"expiration\": {\n \"month\": \"06\",\n \"year\": \"2029\"\n }\n },\n \"miniCart\": {\n \"shippingValue\": 11.44,\n \"taxValue\": 10.01,\n \"buyer\": {\n \"id\": \"c1245228-1c68-11e6-94ac-0afa86a846a5\",\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"document\": \"01234567890\",\n \"documentType\": \"CPF\",\n \"email\": \"john.doe@example.com\",\n \"phone\": \"+5521987654321\"\n },\n \"shippingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Praia de Botafogo St.\",\n \"number\": \"300\",\n \"complement\": \"3rd Floor\",\n \"neighborhood\": \"Botafogo\",\n \"postalCode\": \"22250040\",\n \"city\": \"Rio de Janeiro\",\n \"state\": \"RJ\"\n },\n \"billingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Brigadeiro Faria Lima Avenue\",\n \"number\": \"4440\",\n \"complement\": \"10th Floor\",\n \"neighborhood\": \"Itaim Bibi\",\n \"postalCode\": \"04538132\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\"\n },\n \"items\": [\n {\n \"id\": \"132981\",\n \"name\": \"My First Product\",\n \"price\": 2134.9,\n \"quantity\": 2,\n \"discount\": 5\n },\n {\n \"id\": \"123242\",\n \"name\": \"My Second Product\",\n \"price\": 21.98,\n \"quantity\": 1,\n \"discount\": 1\n }\n ]\n },\n \"url\": \"https://admin.mystore.example.com/orders/v32478982\",\n \"callbackUrl\": \"https://api.example.com/some-path/to-notify/status-changes?an=mystore\",\n \"returnUrl\": \"https://mystore.example.com/checkout/order/v32478982\"\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Bad Request", + "code": 400, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"status\": \"error\",\n \"code\": \"ERR123\",\n \"message\": \"The currency ABC is not supported\"\n}", + "cookie": [] + }, + { + "_": { + "postman_previewlanguage": "json" + }, + "id": "9f66cba4-6226-46ab-97f3-aa22f37b8efa", + "name": "Fail Bad Request", + "originalRequest": { + "url": { + "path": [ + "payments" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "disabled": false, + "description": { + "content": "(Required) Unique identifier created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json.", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppKey", + "value": "{{X-PROVIDER-API-AppKey}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Unique token created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppToken", + "value": "{{X-PROVIDER-API-AppToken}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Type of the content being sent.", + "type": "text/plain" + }, + "key": "Content-Type", + "value": "application/json" + }, + { + "disabled": false, + "description": { + "content": "(Required) HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.", + "type": "text/plain" + }, + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "X-VTEX-API-AppKey", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"reference\": \"32478982\",\n \"orderId\": \"v967373115140abc\",\n \"shopperInteraction\": \"ecommerce\",\n \"transactionId\": \"D3AA1FC8372E430E8236649DB5EBD08E\",\n \"paymentId\": \"F5C1A4E20D3B4E07B7E871F5B5BC9F91\",\n \"paymentMethod\": \"Visa\",\n \"paymentMethodCustomCode\": null,\n \"merchantName\": \"mystore\",\n \"value\": 4307.23,\n \"referenceValue\": 4000,\n \"currency\": \"BRL\",\n \"installments\": 3,\n \"deviceFingerprint\": \"12ade389087fe\",\n \"card\": {\n \"holder\": \"John Doe\",\n \"number\": \"4682185088924788\",\n \"csc\": \"021\",\n \"expiration\": {\n \"month\": \"06\",\n \"year\": \"2029\"\n }\n },\n \"miniCart\": {\n \"shippingValue\": 11.44,\n \"taxValue\": 10.01,\n \"buyer\": {\n \"id\": \"c1245228-1c68-11e6-94ac-0afa86a846a5\",\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"document\": \"01234567890\",\n \"documentType\": \"CPF\",\n \"email\": \"john.doe@example.com\",\n \"phone\": \"+5521987654321\"\n },\n \"shippingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Praia de Botafogo St.\",\n \"number\": \"300\",\n \"complement\": \"3rd Floor\",\n \"neighborhood\": \"Botafogo\",\n \"postalCode\": \"22250040\",\n \"city\": \"Rio de Janeiro\",\n \"state\": \"RJ\"\n },\n \"billingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Brigadeiro Faria Lima Avenue\",\n \"number\": \"4440\",\n \"complement\": \"10th Floor\",\n \"neighborhood\": \"Itaim Bibi\",\n \"postalCode\": \"04538132\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\"\n },\n \"items\": [\n {\n \"id\": \"132981\",\n \"name\": \"My First Product\",\n \"price\": 2134.9,\n \"quantity\": 2,\n \"discount\": 5\n },\n {\n \"id\": \"123242\",\n \"name\": \"My Second Product\",\n \"price\": 21.98,\n \"quantity\": 1,\n \"discount\": 1\n }\n ]\n },\n \"url\": \"https://admin.mystore.example.com/orders/v32478982\",\n \"callbackUrl\": \"https://api.example.com/some-path/to-notify/status-changes?an=mystore\",\n \"returnUrl\": \"https://mystore.example.com/checkout/order/v32478982\"\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Bad Request", + "code": 400, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"status\": \"error\",\n \"code\": \"ERR123\",\n \"message\": \"The currency ABC is not supported\"\n}", + "cookie": [] + }, + { + "_": { + "postman_previewlanguage": "json" + }, + "id": "43b3a660-9867-4248-8d44-75e56bdcd097", + "name": "Credit Card Success Approved", + "originalRequest": { + "url": { + "path": [ + "payments" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "disabled": false, + "description": { + "content": "(Required) Unique identifier created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json.", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppKey", + "value": "{{X-PROVIDER-API-AppKey}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Unique token created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppToken", + "value": "{{X-PROVIDER-API-AppToken}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Type of the content being sent.", + "type": "text/plain" + }, + "key": "Content-Type", + "value": "application/json" + }, + { + "disabled": false, + "description": { + "content": "(Required) HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.", + "type": "text/plain" + }, + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "X-VTEX-API-AppKey", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"reference\": \"618272\",\n \"orderId\": \"1072430428324\",\n \"shopperInteraction\": \"ecommerce\",\n \"transactionId\": \"2F023FD5A72A49D48A8633252B7CCBD6\",\n \"paymentId\": \"01693EB95BE443AC85874E395CD91565\",\n \"paymentMethod\": \"Diners\",\n \"paymentMethodCustomCode\": null,\n \"merchantName\": \"mystore\",\n \"card\": {\n \"holder\": \"John Doe\",\n \"number\": \"364901****2661\",\n \"csc\": \"***\",\n \"expiration\": {\n \"month\": \"12\",\n \"year\": \"2020\"\n },\n \"document\": \"39295416023\",\n \"token\": null\n },\n \"value\": 31.9,\n \"referenceValue\": 31.9,\n \"currency\": \"BRL\",\n \"installments\": 1,\n \"installmentsInterestRate\": 0,\n \"installmentsValue\": 31.9,\n \"deviceFingerprint\": \"75076388\",\n \"ipAddress\": \"187.105.111.65\",\n \"miniCart\": {\n \"buyer\": {\n \"id\": \"c1245228-1c68-11e6-94ac-0afa86a846a5\",\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"document\": \"01234567890\",\n \"documentType\": \"cpf\",\n \"corporateName\": null,\n \"tradeName\": null,\n \"corporateDocument\": null,\n \"isCorporate\": false,\n \"email\": \"john.doe@example.com\",\n \"phone\": \"+5521999999999\",\n \"createdDate\": \"2020-02-18T18:17:45\"\n },\n \"shippingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Praia de Botafogo St.\",\n \"number\": \"300\",\n \"complement\": \"3rd Floor\",\n \"neighborhood\": \"Botafogo\",\n \"postalCode\": \"22250040\",\n \"city\": \"Rio de Janeiro\",\n \"state\": \"RJ\"\n },\n \"billingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Brigadeiro Faria Lima Avenue\",\n \"number\": \"4440\",\n \"complement\": \"10th Floor\",\n \"neighborhood\": \"Itaim Bibi\",\n \"postalCode\": \"04538132\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\"\n },\n \"items\": [\n {\n \"id\": \"8\",\n \"name\": \"Tenis Preto I\",\n \"price\": 30.9,\n \"quantity\": 1,\n \"discount\": 0,\n \"deliveryType\": \"Normal\",\n \"categoryId\": \"5\",\n \"sellerId\": \"1\"\n }\n ],\n \"shippingValue\": 1,\n \"taxValue\": 0\n },\n \"url\": \"https://admin.mystore.example.com/orders?q=1072430428324\",\n \"callbackUrl\": \"https://api.mystore.example.com/some-path/to-notify/status-changes?an=mystore\",\n \"returnUrl\": \"https://mystore.example.com/checkout/order/1072430428324\",\n \"inboundRequestsUrl\": \"https://api.mystore.example.com/checkout/order/1072430428324/inbound-request/:action\",\n \"recipients\": [\n {\n \"id\": \"mymarketplace\",\n \"name\": \"My Marketplace QA\",\n \"documentType\": \"CNPJ\",\n \"document\": \"99999999999999\",\n \"role\": \"marketplace\",\n \"chargeProcessingFee\": true,\n \"chargebackLiable\": true,\n \"amount\": 31.9\n }\n ],\n \"merchantSettings\": [\n {\n \"name\": \"field1\",\n \"value\": \"value1\"\n },\n {\n \"name\": \"field2\",\n \"value\": \"value2\"\n }\n ],\n \"connectorMetadata\": [\n {\n \"name\": \"MetadataName\",\n \"value\": \"MetadataValue\"\n }\n ]\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Internal Server Error", + "code": 500, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"status\": \"error\",\n \"code\": \"ERR123\",\n \"message\": \"Authorization has failed due to an internal error\"\n}", + "cookie": [] + }, + { + "_": { + "postman_previewlanguage": "json" + }, + "id": "8d315ed7-43ad-45c1-9edc-e61207bd03c2", + "name": "Pix Success Approved", + "originalRequest": { + "url": { + "path": [ + "payments" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "disabled": false, + "description": { + "content": "(Required) Unique identifier created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json.", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppKey", + "value": "{{X-PROVIDER-API-AppKey}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Unique token created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppToken", + "value": "{{X-PROVIDER-API-AppToken}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Type of the content being sent.", + "type": "text/plain" + }, + "key": "Content-Type", + "value": "application/json" + }, + { + "disabled": false, + "description": { + "content": "(Required) HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.", + "type": "text/plain" + }, + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "X-VTEX-API-AppKey", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"reference\": \"32478982\",\n \"orderId\": \"v967373115140abc\",\n \"shopperInteraction\": \"ecommerce\",\n \"transactionId\": \"D3AA1FC8372E430E8236649DB5EBD08E\",\n \"paymentId\": \"F5C1A4E20D3B4E07B7E871F5B5BC9F91\",\n \"paymentMethod\": \"Pix\",\n \"paymentMethodCustomCode\": null,\n \"merchantName\": \"mystore\",\n \"value\": 4307.23,\n \"referenceValue\": 4307.23,\n \"currency\": \"BRL\",\n \"installments\": 1,\n \"deviceFingerprint\": \"15ace369587ha\",\n \"card\": {\n \"holder\": null,\n \"number\": null,\n \"csc\": null,\n \"expiration\": {\n \"month\": null,\n \"year\": null\n }\n },\n \"miniCart\": {\n \"shippingValue\": 11.44,\n \"taxValue\": 10.01,\n \"buyer\": {\n \"id\": \"c1245228-1c68-11e6-94ac-0afa86a846a5\",\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"document\": \"01234567890\",\n \"documentType\": \"cpf\",\n \"email\": \"john.doe@example.com\",\n \"phone\": \"+5521999999999\"\n },\n \"shippingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Praia de Botafogo St.\",\n \"number\": \"300\",\n \"complement\": \"3rd Floor\",\n \"neighborhood\": \"Botafogo\",\n \"postalCode\": \"22250040\",\n \"city\": \"Rio de Janeiro\",\n \"state\": \"RJ\"\n },\n \"billingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Brigadeiro Faria Lima Avenue\",\n \"number\": \"4440\",\n \"complement\": \"10th Floor\",\n \"neighborhood\": \"Itaim Bibi\",\n \"postalCode\": \"04538132\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\"\n },\n \"items\": [\n {\n \"id\": \"132981\",\n \"name\": \"My First Product\",\n \"price\": 2134.9,\n \"quantity\": 2,\n \"discount\": 5\n },\n {\n \"id\": \"123242\",\n \"name\": \"My Second Product\",\n \"price\": 21.98,\n \"quantity\": 1,\n \"discount\": 1\n }\n ]\n },\n \"url\": \"https://admin.mystore.example.com/orders/v32478982\",\n \"callbackUrl\": \"https://api.example.com/some-path/to-notify/status-changes?an=mystore\",\n \"returnUrl\": \"https://mystore.example.com/checkout/order/v32478982\"\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Internal Server Error", + "code": 500, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"status\": \"error\",\n \"code\": \"ERR123\",\n \"message\": \"Authorization has failed due to an internal error\"\n}", + "cookie": [] + }, + { + "_": { + "postman_previewlanguage": "json" + }, + "id": "618ac527-3178-4f0d-a28d-3bbaa464a4d2", + "name": "Success Undefined", + "originalRequest": { + "url": { + "path": [ + "payments" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "disabled": false, + "description": { + "content": "(Required) Unique identifier created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json.", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppKey", + "value": "{{X-PROVIDER-API-AppKey}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Unique token created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppToken", + "value": "{{X-PROVIDER-API-AppToken}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Type of the content being sent.", + "type": "text/plain" + }, + "key": "Content-Type", + "value": "application/json" + }, + { + "disabled": false, + "description": { + "content": "(Required) HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.", + "type": "text/plain" + }, + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "X-VTEX-API-AppKey", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"reference\": \"32478982\",\n \"orderId\": \"v967373115140abc\",\n \"shopperInteraction\": \"ecommerce\",\n \"transactionId\": \"D3AA1FC8372E430E8236649DB5EBD08E\",\n \"paymentId\": \"F5C1A4E20D3B4E07B7E871F5B5BC9F91\",\n \"paymentMethod\": \"Visa\",\n \"paymentMethodCustomCode\": null,\n \"merchantName\": \"mystore\",\n \"value\": 4307.23,\n \"referenceValue\": 4000,\n \"currency\": \"BRL\",\n \"installments\": 3,\n \"deviceFingerprint\": \"12ade389087fe\",\n \"card\": {\n \"holder\": \"John Doe\",\n \"number\": \"4682185088924788\",\n \"csc\": \"021\",\n \"expiration\": {\n \"month\": \"06\",\n \"year\": \"2029\"\n }\n },\n \"miniCart\": {\n \"shippingValue\": 11.44,\n \"taxValue\": 10.01,\n \"buyer\": {\n \"id\": \"c1245228-1c68-11e6-94ac-0afa86a846a5\",\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"document\": \"01234567890\",\n \"documentType\": \"CPF\",\n \"email\": \"john.doe@example.com\",\n \"phone\": \"+5521987654321\"\n },\n \"shippingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Praia de Botafogo St.\",\n \"number\": \"300\",\n \"complement\": \"3rd Floor\",\n \"neighborhood\": \"Botafogo\",\n \"postalCode\": \"22250040\",\n \"city\": \"Rio de Janeiro\",\n \"state\": \"RJ\"\n },\n \"billingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Brigadeiro Faria Lima Avenue\",\n \"number\": \"4440\",\n \"complement\": \"10th Floor\",\n \"neighborhood\": \"Itaim Bibi\",\n \"postalCode\": \"04538132\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\"\n },\n \"items\": [\n {\n \"id\": \"132981\",\n \"name\": \"My First Product\",\n \"price\": 2134.9,\n \"quantity\": 2,\n \"discount\": 5\n },\n {\n \"id\": \"123242\",\n \"name\": \"My Second Product\",\n \"price\": 21.98,\n \"quantity\": 1,\n \"discount\": 1\n }\n ]\n },\n \"url\": \"https://admin.mystore.example.com/orders/v32478982\",\n \"callbackUrl\": \"https://api.example.com/some-path/to-notify/status-changes?an=mystore\",\n \"returnUrl\": \"https://mystore.example.com/checkout/order/v32478982\"\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Internal Server Error", + "code": 500, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"status\": \"error\",\n \"code\": \"ERR123\",\n \"message\": \"Authorization has failed due to an internal error\"\n}", + "cookie": [] + }, + { + "_": { + "postman_previewlanguage": "json" + }, + "id": "4bc94029-5ea7-4a3a-8136-ee9802124930", + "name": "BankInvoice Success Undefined", + "originalRequest": { + "url": { + "path": [ + "payments" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "disabled": false, + "description": { + "content": "(Required) Unique identifier created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json.", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppKey", + "value": "{{X-PROVIDER-API-AppKey}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Unique token created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppToken", + "value": "{{X-PROVIDER-API-AppToken}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Type of the content being sent.", + "type": "text/plain" + }, + "key": "Content-Type", + "value": "application/json" + }, + { + "disabled": false, + "description": { + "content": "(Required) HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.", + "type": "text/plain" + }, + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "X-VTEX-API-AppKey", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"reference\": \"32478982\",\n \"orderId\": \"v967373115140abc\",\n \"shopperInteraction\": \"ecommerce\",\n \"transactionId\": \"D3AA1FC8372E430E8236649DB5EBD08E\",\n \"paymentId\": \"F5C1A4E20D3B4E07B7E871F5B5BC9F91\",\n \"paymentMethod\": \"BankInvoice\",\n \"paymentMethodCustomCode\": null,\n \"merchantName\": \"mystore\",\n \"value\": 4307.23,\n \"referenceValue\": 4307.23,\n \"currency\": \"BRL\",\n \"installments\": 1,\n \"deviceFingerprint\": \"12ade389087fe\",\n \"card\": {\n \"holder\": null,\n \"number\": null,\n \"csc\": null,\n \"expiration\": {\n \"month\": null,\n \"year\": null\n }\n },\n \"miniCart\": {\n \"shippingValue\": 11.44,\n \"taxValue\": 10.01,\n \"buyer\": {\n \"id\": \"c1245228-1c68-11e6-94ac-0afa86a846a5\",\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"document\": \"01234567890\",\n \"documentType\": \"CPF\",\n \"email\": \"john.doe@example.com\",\n \"phone\": \"+5521987654321\"\n },\n \"shippingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Praia de Botafogo St.\",\n \"number\": \"300\",\n \"complement\": \"3rd Floor\",\n \"neighborhood\": \"Botafogo\",\n \"postalCode\": \"22250040\",\n \"city\": \"Rio de Janeiro\",\n \"state\": \"RJ\"\n },\n \"billingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Brigadeiro Faria Lima Avenue\",\n \"number\": \"4440\",\n \"complement\": \"10th Floor\",\n \"neighborhood\": \"Itaim Bibi\",\n \"postalCode\": \"04538132\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\"\n },\n \"items\": [\n {\n \"id\": \"132981\",\n \"name\": \"My First Product\",\n \"price\": 2134.9,\n \"quantity\": 2,\n \"discount\": 5\n },\n {\n \"id\": \"123242\",\n \"name\": \"My Second Product\",\n \"price\": 21.98,\n \"quantity\": 1,\n \"discount\": 1\n }\n ]\n },\n \"url\": \"https://admin.mystore.example.com/orders/v32478982\",\n \"callbackUrl\": \"https://api.example.com/some-path/to-notify/status-changes?an=mystore\",\n \"returnUrl\": \"https://mystore.example.com/checkout/order/v32478982\"\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Internal Server Error", + "code": 500, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"status\": \"error\",\n \"code\": \"ERR123\",\n \"message\": \"Authorization has failed due to an internal error\"\n}", + "cookie": [] + }, + { + "_": { + "postman_previewlanguage": "json" + }, + "id": "b2098e8c-47b5-4860-807b-70bcfadf857a", + "name": "Success Denied", + "originalRequest": { + "url": { + "path": [ + "payments" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "disabled": false, + "description": { + "content": "(Required) Unique identifier created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json.", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppKey", + "value": "{{X-PROVIDER-API-AppKey}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Unique token created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppToken", + "value": "{{X-PROVIDER-API-AppToken}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Type of the content being sent.", + "type": "text/plain" + }, + "key": "Content-Type", + "value": "application/json" + }, + { + "disabled": false, + "description": { + "content": "(Required) HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.", + "type": "text/plain" + }, + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "X-VTEX-API-AppKey", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"reference\": \"32478982\",\n \"orderId\": \"v967373115140abc\",\n \"shopperInteraction\": \"ecommerce\",\n \"transactionId\": \"D3AA1FC8372E430E8236649DB5EBD08E\",\n \"paymentId\": \"F5C1A4E20D3B4E07B7E871F5B5BC9F91\",\n \"paymentMethod\": \"Visa\",\n \"paymentMethodCustomCode\": null,\n \"merchantName\": \"mystore\",\n \"value\": 4307.23,\n \"referenceValue\": 4000,\n \"currency\": \"BRL\",\n \"installments\": 3,\n \"deviceFingerprint\": \"12ade389087fe\",\n \"card\": {\n \"holder\": \"John Doe\",\n \"number\": \"4682185088924788\",\n \"csc\": \"021\",\n \"expiration\": {\n \"month\": \"06\",\n \"year\": \"2029\"\n }\n },\n \"miniCart\": {\n \"shippingValue\": 11.44,\n \"taxValue\": 10.01,\n \"buyer\": {\n \"id\": \"c1245228-1c68-11e6-94ac-0afa86a846a5\",\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"document\": \"01234567890\",\n \"documentType\": \"CPF\",\n \"email\": \"john.doe@example.com\",\n \"phone\": \"+5521987654321\"\n },\n \"shippingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Praia de Botafogo St.\",\n \"number\": \"300\",\n \"complement\": \"3rd Floor\",\n \"neighborhood\": \"Botafogo\",\n \"postalCode\": \"22250040\",\n \"city\": \"Rio de Janeiro\",\n \"state\": \"RJ\"\n },\n \"billingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Brigadeiro Faria Lima Avenue\",\n \"number\": \"4440\",\n \"complement\": \"10th Floor\",\n \"neighborhood\": \"Itaim Bibi\",\n \"postalCode\": \"04538132\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\"\n },\n \"items\": [\n {\n \"id\": \"132981\",\n \"name\": \"My First Product\",\n \"price\": 2134.9,\n \"quantity\": 2,\n \"discount\": 5\n },\n {\n \"id\": \"123242\",\n \"name\": \"My Second Product\",\n \"price\": 21.98,\n \"quantity\": 1,\n \"discount\": 1\n }\n ]\n },\n \"url\": \"https://admin.mystore.example.com/orders/v32478982\",\n \"callbackUrl\": \"https://api.example.com/some-path/to-notify/status-changes?an=mystore\",\n \"returnUrl\": \"https://mystore.example.com/checkout/order/v32478982\"\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Internal Server Error", + "code": 500, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"status\": \"error\",\n \"code\": \"ERR123\",\n \"message\": \"Authorization has failed due to an internal error\"\n}", + "cookie": [] + }, + { + "_": { + "postman_previewlanguage": "json" + }, + "id": "3a83b946-c58b-4117-bc4d-f0d01065a0bd", + "name": "BankInvoice Success Approved", + "originalRequest": { + "url": { + "path": [ + "payments" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "disabled": false, + "description": { + "content": "(Required) Unique identifier created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json.", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppKey", + "value": "{{X-PROVIDER-API-AppKey}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Unique token created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppToken", + "value": "{{X-PROVIDER-API-AppToken}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Type of the content being sent.", + "type": "text/plain" + }, + "key": "Content-Type", + "value": "application/json" + }, + { + "disabled": false, + "description": { + "content": "(Required) HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.", + "type": "text/plain" + }, + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "X-VTEX-API-AppKey", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"reference\": \"618272\",\n \"orderId\": \"1072430428324\",\n \"shopperInteraction\": \"ecommerce\",\n \"transactionId\": \"2F023FD5A72A49D48A8633252B7CCBD6\",\n \"paymentId\": \"01693EB95BE443AC85874E395CD91565\",\n \"paymentMethod\": \"BankInvoice\",\n \"paymentMethodCustomCode\": null,\n \"merchantName\": \"mystore\",\n \"card\": {\n \"holder\": \"null\",\n \"number\": \"null\",\n \"csc\": \"null\",\n \"expiration\": {\n \"month\": \"null\",\n \"year\": \"null\"\n }\n },\n \"document\": null,\n \"token\": null,\n \"value\": 31.9,\n \"referenceValue\": 31.9,\n \"currency\": \"BRL\",\n \"installments\": 1,\n \"installmentsInterestRate\": 0,\n \"installmentsValue\": 31.9,\n \"deviceFingerprint\": \"98073964\",\n \"ipAddress\": \"187.105.111.65\",\n \"miniCart\": {\n \"buyer\": {\n \"id\": \"c1245228-1c68-11e6-94ac-0afa86a846a5\",\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"document\": \"01234567890\",\n \"documentType\": \"cpf\",\n \"corporateName\": null,\n \"tradeName\": null,\n \"corporateDocument\": null,\n \"isCorporate\": false,\n \"email\": \"john.doe@example.com\",\n \"phone\": \"+5521999999999\",\n \"createdDate\": \"2020-02-18T18:17:45\"\n },\n \"shippingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Praia de Botafogo St.\",\n \"number\": \"300\",\n \"complement\": \"3rd Floor\",\n \"neighborhood\": \"Botafogo\",\n \"postalCode\": \"22250040\",\n \"city\": \"Rio de Janeiro\",\n \"state\": \"RJ\"\n },\n \"billingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Brigadeiro Faria Lima Avenue\",\n \"number\": \"4440\",\n \"complement\": \"10th Floor\",\n \"neighborhood\": \"Itaim Bibi\",\n \"postalCode\": \"04538132\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\"\n },\n \"items\": [\n {\n \"id\": \"8\",\n \"name\": \"Tenis Preto I\",\n \"price\": 30.9,\n \"quantity\": 1,\n \"discount\": 0,\n \"deliveryType\": \"Normal\",\n \"categoryId\": \"5\",\n \"sellerId\": \"1\"\n }\n ],\n \"shippingValue\": 11.44,\n \"taxValue\": 10.01\n },\n \"url\": \"https://admin.mystore.example.com/orders?q=1072430428324\",\n \"callbackUrl\": \"https://api.example.com/some-path/to-notify/status-changes?an=mystore\",\n \"returnUrl\": \"https://mystore.example.com/checkout/order/1072430428324\",\n \"inboundRequestsUrl\": \"https://api.mystore.example.com/checkout/order/1072430428324/inbound-request/:action\",\n \"recipients\": [\n {\n \"id\": \"mymarketplace\",\n \"name\": \"My Marketplace QA\",\n \"documentType\": \"CNPJ\",\n \"document\": \"99999999999999\",\n \"role\": \"marketplace\",\n \"chargeProcessingFee\": true,\n \"chargebackLiable\": true,\n \"amount\": 31.9\n }\n ],\n \"merchantSettings\": [\n {\n \"name\": \"field1\",\n \"value\": \"value1\"\n },\n {\n \"name\": \"field2\",\n \"value\": \"value2\"\n }\n ]\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Internal Server Error", + "code": 500, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"status\": \"error\",\n \"code\": \"ERR123\",\n \"message\": \"Authorization has failed due to an internal error\"\n}", + "cookie": [] + }, + { + "_": { + "postman_previewlanguage": "json" + }, + "id": "b48e1241-46e9-4ff1-8d22-2e1ab33ad0bb", + "name": "Payment App + Inbound Request Success Undefined", + "originalRequest": { + "url": { + "path": [ + "payments" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "disabled": false, + "description": { + "content": "(Required) Unique identifier created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json.", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppKey", + "value": "{{X-PROVIDER-API-AppKey}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Unique token created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppToken", + "value": "{{X-PROVIDER-API-AppToken}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Type of the content being sent.", + "type": "text/plain" + }, + "key": "Content-Type", + "value": "application/json" + }, + { + "disabled": false, + "description": { + "content": "(Required) HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.", + "type": "text/plain" + }, + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "X-VTEX-API-AppKey", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"reference\": \"32478982\",\n \"orderId\": \"v967373115140abc\",\n \"shopperInteraction\": \"ecommerce\",\n \"transactionId\": \"D3AA1FC8372E430E8236649DB5EBD08E\",\n \"paymentId\": \"F5C1A4E20D3B4E07B7E871F5B5BC9F91\",\n \"paymentMethod\": \"CustomPay\",\n \"paymentMethodCustomCode\": null,\n \"merchantName\": \"mystore\",\n \"value\": 4307.23,\n \"referenceValue\": 4307.23,\n \"currency\": \"BRL\",\n \"installments\": 1,\n \"deviceFingerprint\": \"12ade389087fe\",\n \"card\": {\n \"holder\": null,\n \"number\": null,\n \"csc\": null,\n \"expiration\": {\n \"month\": null,\n \"year\": null\n }\n },\n \"miniCart\": {\n \"shippingValue\": 11.44,\n \"taxValue\": 10.01,\n \"buyer\": {\n \"id\": \"c1245228-1c68-11e6-94ac-0afa86a846a5\",\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"document\": \"01234567890\",\n \"documentType\": \"CPF\",\n \"email\": \"john.doe@example.com\",\n \"phone\": \"+5521987654321\"\n },\n \"shippingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Praia de Botafogo St.\",\n \"number\": \"300\",\n \"complement\": \"3rd Floor\",\n \"neighborhood\": \"Botafogo\",\n \"postalCode\": \"22250040\",\n \"city\": \"Rio de Janeiro\",\n \"state\": \"RJ\"\n },\n \"billingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Brigadeiro Faria Lima Avenue\",\n \"number\": \"4440\",\n \"complement\": \"10th Floor\",\n \"neighborhood\": \"Itaim Bibi\",\n \"postalCode\": \"04538132\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\"\n },\n \"items\": [\n {\n \"id\": \"132981\",\n \"name\": \"My First Product\",\n \"price\": 2134.9,\n \"quantity\": 2,\n \"discount\": 5\n },\n {\n \"id\": \"123242\",\n \"name\": \"My Second Product\",\n \"price\": 21.98,\n \"quantity\": 1,\n \"discount\": 1\n }\n ]\n },\n \"url\": \"https://admin.mystore.example.com/orders/v32478982\",\n \"callbackUrl\": \"https://api.example.com/some-path/to-notify/status-changes?an=mystore\",\n \"returnUrl\": \"https://mystore.example.com/checkout/order/v32478982\",\n \"inboundRequestsUrl\": \"https://mystore.api.example.com/some-path/inbound-request/:action\"\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Internal Server Error", + "code": 500, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"status\": \"error\",\n \"code\": \"ERR123\",\n \"message\": \"Authorization has failed due to an internal error\"\n}", + "cookie": [] + }, + { + "_": { + "postman_previewlanguage": "json" + }, + "id": "c6b9b0b4-0658-4361-a4e4-1044f064458b", + "name": "Redirect Success Undefined", + "originalRequest": { + "url": { + "path": [ + "payments" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "disabled": false, + "description": { + "content": "(Required) Unique identifier created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json.", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppKey", + "value": "{{X-PROVIDER-API-AppKey}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Unique token created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppToken", + "value": "{{X-PROVIDER-API-AppToken}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Type of the content being sent.", + "type": "text/plain" + }, + "key": "Content-Type", + "value": "application/json" + }, + { + "disabled": false, + "description": { + "content": "(Required) HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.", + "type": "text/plain" + }, + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "X-VTEX-API-AppKey", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"reference\": \"32478982\",\n \"orderId\": \"v967373115140abc\",\n \"shopperInteraction\": \"ecommerce\",\n \"transactionId\": \"D3AA1FC8372E430E8236649DB5EBD08E\",\n \"paymentId\": \"F5C1A4E20D3B4E07B7E871F5B5BC9F91\",\n \"paymentMethod\": \"FakePay\",\n \"paymentMethodCustomCode\": null,\n \"merchantName\": \"mystore\",\n \"value\": 4307.23,\n \"referenceValue\": 4307.23,\n \"currency\": \"BRL\",\n \"installments\": 1,\n \"deviceFingerprint\": \"12ade389087fe\",\n \"card\": {\n \"holder\": null,\n \"number\": null,\n \"csc\": null,\n \"expiration\": {\n \"month\": null,\n \"year\": null\n }\n },\n \"miniCart\": {\n \"shippingValue\": 11.44,\n \"taxValue\": 10.01,\n \"buyer\": {\n \"id\": \"c1245228-1c68-11e6-94ac-0afa86a846a5\",\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"document\": \"01234567890\",\n \"documentType\": \"CPF\",\n \"email\": \"john.doe@example.com\",\n \"phone\": \"+5521987654321\"\n },\n \"shippingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Praia de Botafogo St.\",\n \"number\": \"300\",\n \"complement\": \"3rd Floor\",\n \"neighborhood\": \"Botafogo\",\n \"postalCode\": \"22250040\",\n \"city\": \"Rio de Janeiro\",\n \"state\": \"RJ\"\n },\n \"billingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Brigadeiro Faria Lima Avenue\",\n \"number\": \"4440\",\n \"complement\": \"10th Floor\",\n \"neighborhood\": \"Itaim Bibi\",\n \"postalCode\": \"04538132\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\"\n },\n \"items\": [\n {\n \"id\": \"132981\",\n \"name\": \"My First Product\",\n \"price\": 2134.9,\n \"quantity\": 2,\n \"discount\": 5\n },\n {\n \"id\": \"123242\",\n \"name\": \"My Second Product\",\n \"price\": 21.98,\n \"quantity\": 1,\n \"discount\": 1\n }\n ]\n },\n \"url\": \"https://admin.mystore.example.com/orders/v32478982\",\n \"callbackUrl\": \"https://api.example.com/some-path/to-notify/status-changes?an=mystore\",\n \"returnUrl\": \"https://mystore.example.com/checkout/order/v32478982\"\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Internal Server Error", + "code": 500, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"status\": \"error\",\n \"code\": \"ERR123\",\n \"message\": \"Authorization has failed due to an internal error\"\n}", + "cookie": [] + }, + { + "_": { + "postman_previewlanguage": "json" + }, + "id": "a94cdd49-9b51-4586-9a35-664e27e63f7a", + "name": "Redirect Success Approved", + "originalRequest": { + "url": { + "path": [ + "payments" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "disabled": false, + "description": { + "content": "(Required) Unique identifier created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json.", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppKey", + "value": "{{X-PROVIDER-API-AppKey}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Unique token created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppToken", + "value": "{{X-PROVIDER-API-AppToken}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Type of the content being sent.", + "type": "text/plain" + }, + "key": "Content-Type", + "value": "application/json" + }, + { + "disabled": false, + "description": { + "content": "(Required) HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.", + "type": "text/plain" + }, + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "X-VTEX-API-AppKey", + "value": "" + } + ], + "method": "POST", + "body": { + "mode": "raw", + "raw": "{\n \"reference\": \"618272\",\n \"orderId\": \"1072430428324\",\n \"shopperInteraction\": \"ecommerce\",\n \"transactionId\": \"2F023FD5A72A49D48A8633252B7CCBD6\",\n \"paymentId\": \"01693EB95BE443AC85874E395CD91565\",\n \"paymentMethod\": \"RedirectPay\",\n \"paymentMethodCustomCode\": null,\n \"merchantName\": \"mystore\",\n \"value\": 31.9,\n \"referenceValue\": 31.9,\n \"currency\": \"BRL\",\n \"installments\": 1,\n \"installmentsInterestRate\": 0,\n \"installmentsValue\": 31.9,\n \"deviceFingerprint\": \"75076388\",\n \"ipAddress\": \"187.105.111.65\",\n \"miniCart\": {\n \"buyer\": {\n \"id\": \"c1245228-1c68-11e6-94ac-0afa86a846a5\",\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"document\": \"01234567890\",\n \"documentType\": \"cpf\",\n \"corporateName\": null,\n \"tradeName\": null,\n \"corporateDocument\": null,\n \"isCorporate\": false,\n \"email\": \"john.doe@example.com\",\n \"phone\": \"+5521999999999\",\n \"createdDate\": \"2020-02-18T18:17:45\"\n },\n \"shippingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Praia de Botafogo St.\",\n \"number\": \"300\",\n \"complement\": \"3rd Floor\",\n \"neighborhood\": \"Botafogo\",\n \"postalCode\": \"22250040\",\n \"city\": \"Rio de Janeiro\",\n \"state\": \"RJ\"\n },\n \"billingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Brigadeiro Faria Lima Avenue\",\n \"number\": \"4440\",\n \"complement\": \"10th Floor\",\n \"neighborhood\": \"Itaim Bibi\",\n \"postalCode\": \"04538132\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\"\n },\n \"items\": [\n {\n \"id\": \"8\",\n \"name\": \"Tenis Preto I\",\n \"price\": 30.9,\n \"quantity\": 1,\n \"discount\": 0,\n \"deliveryType\": \"Normal\",\n \"categoryId\": \"5\",\n \"sellerId\": \"1\"\n }\n ],\n \"shippingValue\": 1,\n \"taxValue\": 0\n },\n \"url\": \"https://admin.mystore.example.com/orders/v32478982\",\n \"callbackUrl\": \"https://api.example.com/some-path/to-notify/status-changes?an=mystore\",\n \"returnUrl\": \"https://mystore.example.com/checkout/order/v32478982\",\n \"inboundRequestsUrl\": \"https://api.mystore.example.com/checkout/order/1072430428324/inbound-request/:action\",\n \"recipients\": [\n {\n \"id\": \"mymarketplace\",\n \"name\": \"My Marketplace QA\",\n \"documentType\": \"CNPJ\",\n \"document\": \"99999999999999\",\n \"role\": \"marketplace\",\n \"chargeProcessingFee\": true,\n \"chargebackLiable\": true,\n \"amount\": 31.9\n }\n ],\n \"merchantSettings\": [\n {\n \"name\": \"field1\",\n \"value\": \"value1\"\n },\n {\n \"name\": \"field2\",\n \"value\": \"value2\"\n }\n ]\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + } + }, + "status": "Internal Server Error", + "code": 500, + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\n \"status\": \"error\",\n \"code\": \"ERR123\",\n \"message\": \"Authorization has failed due to an internal error\"\n}", + "cookie": [] + }, + { + "_": { + "postman_previewlanguage": "json" + }, + "id": "63e17628-a20e-4860-b2ca-296b59739446", + "name": "Fail Generic Error", + "originalRequest": { + "url": { + "path": [ + "payments" + ], + "host": [ + "{{baseUrl}}" + ], + "query": [], + "variable": [] + }, + "header": [ + { + "disabled": false, + "description": { + "content": "(Required) Unique identifier created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json.", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppKey", + "value": "{{X-PROVIDER-API-AppKey}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Unique token created by the provider and configured on the provider configuration page (Admin VTEX). To use this header as authorization, check that the `usesProviderHeadersName` field is set to `true` in the payment provider's `configuration.json`. To check the `configuration.json` file, access the route {{connector}}/paymentProvider/configuration.json", + "type": "text/plain" + }, + "key": "X-PROVIDER-API-AppToken", + "value": "{{X-PROVIDER-API-AppToken}}" + }, + { + "disabled": false, + "description": { + "content": "(Required) Type of the content being sent.", + "type": "text/plain" + }, + "key": "Content-Type", + "value": "application/json" + }, + { + "disabled": false, + "description": { + "content": "(Required) HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.", + "type": "text/plain" + }, + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "X-VTEX-API-AppKey", + "value": "" } ], "method": "POST", "body": { "mode": "raw", - "raw": "{\n \"reference\": \"618272\",\n \"orderId\": \"1072430428324\",\n \"shopperInteraction\": \"ecommerce\",\n \"transactionId\": \"2F023FD5A72A49D48A8633252B7CCBD6\",\n \"paymentId\": \"01693EB95BE443AC85874E395CD91565\",\n \"paymentMethod\": \"Diners\",\n \"paymentMethodCustomCode\": null,\n \"merchantName\": \"mystore\",\n \"card\": {\n \"holder\": \"John Doe\",\n \"number\": \"364901****2661\",\n \"csc\": \"***\",\n \"expiration\": {\n \"month\": \"12\",\n \"year\": \"2020\"\n },\n \"document\": \"39295416023\",\n \"token\": null\n },\n \"value\": 31.9,\n \"referenceValue\": 31.9,\n \"currency\": \"BRL\",\n \"installments\": 1,\n \"installmentsInterestRate\": 0,\n \"installmentsValue\": 31.9,\n \"deviceFingerprint\": \"75076388\",\n \"ipAddress\": \"187.105.111.65\",\n \"miniCart\": {\n \"buyer\": {\n \"id\": \"c1245228-1c68-11e6-94ac-0afa86a846a5\",\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"document\": \"01234567890\",\n \"documentType\": \"cpf\",\n \"corporateName\": null,\n \"tradeName\": null,\n \"corporateDocument\": null,\n \"isCorporate\": false,\n \"email\": \"john.doe@example.com\",\n \"phone\": \"+5521999999999\",\n \"createdDate\": \"2020-02-18T18:17:45\"\n },\n \"shippingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Praia de Botafogo St.\",\n \"number\": \"300\",\n \"complement\": \"3rd Floor\",\n \"neighborhood\": \"Botafogo\",\n \"postalCode\": \"22250040\",\n \"city\": \"Rio de Janeiro\",\n \"state\": \"RJ\"\n },\n \"billingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Brigadeiro Faria Lima Avenue\",\n \"number\": \"4440\",\n \"complement\": \"10th Floor\",\n \"neighborhood\": \"Itaim Bibi\",\n \"postalCode\": \"04538132\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\"\n },\n \"items\": [\n {\n \"id\": \"8\",\n \"name\": \"Tenis Preto I\",\n \"price\": 30.9,\n \"quantity\": 1,\n \"discount\": 0,\n \"deliveryType\": \"Normal\",\n \"categoryId\": \"5\",\n \"sellerId\": \"1\"\n }\n ],\n \"shippingValue\": 1,\n \"taxValue\": 0\n },\n \"url\": \"https://admin.mystore.example.com/orders?q=1072430428324\",\n \"callbackUrl\": \"https://api.mystore.example.com/some-path/to-notify/status-changes?an=mystore\",\n \"returnUrl\": \"https://mystore.example.com/checkout/order/1072430428324\",\n \"inboundRequestsUrl\": \"https://api.mystore.example.com/checkout/order/1072430428324/inbound-request/:action\",\n \"recipients\": [\n {\n \"id\": \"mymarketplace\",\n \"name\": \"My Marketplace QA\",\n \"documentType\": \"CNPJ\",\n \"document\": \"99999999999999\",\n \"role\": \"marketplace\",\n \"chargeProcessingFee\": true,\n \"chargebackLiable\": true,\n \"amount\": 31.9\n }\n ],\n \"merchantSettings\": [\n {\n \"name\": \"field1\",\n \"value\": \"value1\"\n },\n {\n \"name\": \"field2\",\n \"value\": \"value2\"\n }\n ],\n \"connectorMetadata\": [\n {\n \"name\": \"MetadataName\",\n \"value\": \"MetadataValue\"\n }\n ]\n}", + "raw": "{\n \"reference\": \"32478982\",\n \"orderId\": \"v967373115140abc\",\n \"shopperInteraction\": \"ecommerce\",\n \"transactionId\": \"D3AA1FC8372E430E8236649DB5EBD08E\",\n \"paymentId\": \"F5C1A4E20D3B4E07B7E871F5B5BC9F91\",\n \"paymentMethod\": \"Visa\",\n \"paymentMethodCustomCode\": null,\n \"merchantName\": \"mystore\",\n \"value\": 4307.23,\n \"referenceValue\": 4000,\n \"currency\": \"BRL\",\n \"installments\": 3,\n \"deviceFingerprint\": \"12ade389087fe\",\n \"card\": {\n \"holder\": \"John Doe\",\n \"number\": \"4682185088924788\",\n \"csc\": \"021\",\n \"expiration\": {\n \"month\": \"06\",\n \"year\": \"2029\"\n }\n },\n \"miniCart\": {\n \"shippingValue\": 11.44,\n \"taxValue\": 10.01,\n \"buyer\": {\n \"id\": \"c1245228-1c68-11e6-94ac-0afa86a846a5\",\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"document\": \"01234567890\",\n \"documentType\": \"CPF\",\n \"email\": \"john.doe@example.com\",\n \"phone\": \"+5521987654321\"\n },\n \"shippingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Praia de Botafogo St.\",\n \"number\": \"300\",\n \"complement\": \"3rd Floor\",\n \"neighborhood\": \"Botafogo\",\n \"postalCode\": \"22250040\",\n \"city\": \"Rio de Janeiro\",\n \"state\": \"RJ\"\n },\n \"billingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Brigadeiro Faria Lima Avenue\",\n \"number\": \"4440\",\n \"complement\": \"10th Floor\",\n \"neighborhood\": \"Itaim Bibi\",\n \"postalCode\": \"04538132\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\"\n },\n \"items\": [\n {\n \"id\": \"132981\",\n \"name\": \"My First Product\",\n \"price\": 2134.9,\n \"quantity\": 2,\n \"discount\": 5\n },\n {\n \"id\": \"123242\",\n \"name\": \"My Second Product\",\n \"price\": 21.98,\n \"quantity\": 1,\n \"discount\": 1\n }\n ]\n },\n \"url\": \"https://admin.mystore.example.com/orders/v32478982\",\n \"callbackUrl\": \"https://api.example.com/some-path/to-notify/status-changes?an=mystore\",\n \"returnUrl\": \"https://mystore.example.com/checkout/order/v32478982\"\n}", "options": { "raw": { + "headerFamily": "json", "language": "json" } } } }, - "status": "Bad Request", - "code": 400, + "status": "Internal Server Error", + "code": 500, "header": [ { "key": "Content-Type", "value": "application/json" } ], - "body": "{\n \"status\": \"error\",\n \"code\": \"ERR123\",\n \"message\": \"The currency ABC is not supported\"\n}", + "body": "{\n \"status\": \"error\",\n \"code\": \"ERR123\",\n \"message\": \"Authorization has failed due to an internal error\"\n}", "cookie": [] }, { "_": { "postman_previewlanguage": "json" }, - "id": "339e433f-2dba-41e8-87e9-1775f73e54b9", - "name": "Internal Server Error", + "id": "3507ce28-fc96-4351-ac33-9edf3008556f", + "name": "Fail Bad Request", "originalRequest": { "url": { "path": [ @@ -460,27 +3254,9 @@ "{{baseUrl}}" ], "query": [], - "variable": [ - { - "description": { - "content": "Payment provider endpoint URL.", - "type": "text/plain" - }, - "type": "any", - "value": "{{providerApiEndpoint}}", - "key": "providerApiEndpoint" - } - ] + "variable": [] }, "header": [ - { - "description": { - "content": "Added as a part of security scheme: apikey", - "type": "text/plain" - }, - "key": "X-VTEX-API-AppKey", - "value": "" - }, { "disabled": false, "description": { @@ -517,17 +3293,30 @@ "key": "Accept", "value": "application/json" }, + { + "key": "Content-Type", + "value": "application/json" + }, { "key": "Accept", "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "X-VTEX-API-AppKey", + "value": "" } ], "method": "POST", "body": { "mode": "raw", - "raw": "{\n \"reference\": \"618272\",\n \"orderId\": \"1072430428324\",\n \"shopperInteraction\": \"ecommerce\",\n \"transactionId\": \"2F023FD5A72A49D48A8633252B7CCBD6\",\n \"paymentId\": \"01693EB95BE443AC85874E395CD91565\",\n \"paymentMethod\": \"Diners\",\n \"paymentMethodCustomCode\": null,\n \"merchantName\": \"mystore\",\n \"card\": {\n \"holder\": \"John Doe\",\n \"number\": \"364901****2661\",\n \"csc\": \"***\",\n \"expiration\": {\n \"month\": \"12\",\n \"year\": \"2020\"\n },\n \"document\": \"39295416023\",\n \"token\": null\n },\n \"value\": 31.9,\n \"referenceValue\": 31.9,\n \"currency\": \"BRL\",\n \"installments\": 1,\n \"installmentsInterestRate\": 0,\n \"installmentsValue\": 31.9,\n \"deviceFingerprint\": \"75076388\",\n \"ipAddress\": \"187.105.111.65\",\n \"miniCart\": {\n \"buyer\": {\n \"id\": \"c1245228-1c68-11e6-94ac-0afa86a846a5\",\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"document\": \"01234567890\",\n \"documentType\": \"cpf\",\n \"corporateName\": null,\n \"tradeName\": null,\n \"corporateDocument\": null,\n \"isCorporate\": false,\n \"email\": \"john.doe@example.com\",\n \"phone\": \"+5521999999999\",\n \"createdDate\": \"2020-02-18T18:17:45\"\n },\n \"shippingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Praia de Botafogo St.\",\n \"number\": \"300\",\n \"complement\": \"3rd Floor\",\n \"neighborhood\": \"Botafogo\",\n \"postalCode\": \"22250040\",\n \"city\": \"Rio de Janeiro\",\n \"state\": \"RJ\"\n },\n \"billingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Brigadeiro Faria Lima Avenue\",\n \"number\": \"4440\",\n \"complement\": \"10th Floor\",\n \"neighborhood\": \"Itaim Bibi\",\n \"postalCode\": \"04538132\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\"\n },\n \"items\": [\n {\n \"id\": \"8\",\n \"name\": \"Tenis Preto I\",\n \"price\": 30.9,\n \"quantity\": 1,\n \"discount\": 0,\n \"deliveryType\": \"Normal\",\n \"categoryId\": \"5\",\n \"sellerId\": \"1\"\n }\n ],\n \"shippingValue\": 1,\n \"taxValue\": 0\n },\n \"url\": \"https://admin.mystore.example.com/orders?q=1072430428324\",\n \"callbackUrl\": \"https://api.mystore.example.com/some-path/to-notify/status-changes?an=mystore\",\n \"returnUrl\": \"https://mystore.example.com/checkout/order/1072430428324\",\n \"inboundRequestsUrl\": \"https://api.mystore.example.com/checkout/order/1072430428324/inbound-request/:action\",\n \"recipients\": [\n {\n \"id\": \"mymarketplace\",\n \"name\": \"My Marketplace QA\",\n \"documentType\": \"CNPJ\",\n \"document\": \"99999999999999\",\n \"role\": \"marketplace\",\n \"chargeProcessingFee\": true,\n \"chargebackLiable\": true,\n \"amount\": 31.9\n }\n ],\n \"merchantSettings\": [\n {\n \"name\": \"field1\",\n \"value\": \"value1\"\n },\n {\n \"name\": \"field2\",\n \"value\": \"value2\"\n }\n ],\n \"connectorMetadata\": [\n {\n \"name\": \"MetadataName\",\n \"value\": \"MetadataValue\"\n }\n ]\n}", + "raw": "{\n \"reference\": \"32478982\",\n \"orderId\": \"v967373115140abc\",\n \"shopperInteraction\": \"ecommerce\",\n \"transactionId\": \"D3AA1FC8372E430E8236649DB5EBD08E\",\n \"paymentId\": \"F5C1A4E20D3B4E07B7E871F5B5BC9F91\",\n \"paymentMethod\": \"Visa\",\n \"paymentMethodCustomCode\": null,\n \"merchantName\": \"mystore\",\n \"value\": 4307.23,\n \"referenceValue\": 4000,\n \"currency\": \"BRL\",\n \"installments\": 3,\n \"deviceFingerprint\": \"12ade389087fe\",\n \"card\": {\n \"holder\": \"John Doe\",\n \"number\": \"4682185088924788\",\n \"csc\": \"021\",\n \"expiration\": {\n \"month\": \"06\",\n \"year\": \"2029\"\n }\n },\n \"miniCart\": {\n \"shippingValue\": 11.44,\n \"taxValue\": 10.01,\n \"buyer\": {\n \"id\": \"c1245228-1c68-11e6-94ac-0afa86a846a5\",\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"document\": \"01234567890\",\n \"documentType\": \"CPF\",\n \"email\": \"john.doe@example.com\",\n \"phone\": \"+5521987654321\"\n },\n \"shippingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Praia de Botafogo St.\",\n \"number\": \"300\",\n \"complement\": \"3rd Floor\",\n \"neighborhood\": \"Botafogo\",\n \"postalCode\": \"22250040\",\n \"city\": \"Rio de Janeiro\",\n \"state\": \"RJ\"\n },\n \"billingAddress\": {\n \"country\": \"BRA\",\n \"street\": \"Brigadeiro Faria Lima Avenue\",\n \"number\": \"4440\",\n \"complement\": \"10th Floor\",\n \"neighborhood\": \"Itaim Bibi\",\n \"postalCode\": \"04538132\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\"\n },\n \"items\": [\n {\n \"id\": \"132981\",\n \"name\": \"My First Product\",\n \"price\": 2134.9,\n \"quantity\": 2,\n \"discount\": 5\n },\n {\n \"id\": \"123242\",\n \"name\": \"My Second Product\",\n \"price\": 21.98,\n \"quantity\": 1,\n \"discount\": 1\n }\n ]\n },\n \"url\": \"https://admin.mystore.example.com/orders/v32478982\",\n \"callbackUrl\": \"https://api.example.com/some-path/to-notify/status-changes?an=mystore\",\n \"returnUrl\": \"https://mystore.example.com/checkout/order/v32478982\"\n}", "options": { "raw": { + "headerFamily": "json", "language": "json" } } @@ -549,13 +3338,13 @@ { "listen": "test", "script": { - "id": "caea41a0-6b93-49fb-8af5-d297cab09608", + "id": "61350ef5-14d3-4b5c-9592-195b8a0e4f8c", "type": "text/javascript", "exec": [ "// Validate status 2xx \npm.test(\"[POST]::/payments - Status code is 2xx\", function () {\n pm.response.to.be.success;\n});\n", "// Validate if response header has matching content-type\npm.test(\"[POST]::/payments - Content-Type is application/json\", function () {\n pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(\"application/json\");\n});\n", "// Validate if response has JSON Body \npm.test(\"[POST]::/payments - Response has JSON Body\", function () {\n pm.response.to.have.jsonBody();\n});\n", - "// Response Validation\nconst schema = {\"required\":[\"paymentId\",\"status\",\"authorizationId\",\"tid\",\"nsu\",\"acquirer\",\"delayToAutoSettle\",\"delayToAutoSettleAfterAntifraud\",\"delayToCancel\"],\"type\":\"object\",\"description\":\"Create payment response body information.\",\"properties\":{\"paymentId\":{\"type\":\"string\",\"description\":\"VTEX identifier for this payment. The same sent in the request.\"},\"status\":{\"type\":\"string\",\"description\":\"The Provider's status for this payment. Must be one of three values:\\r\\n\\r\\n- `approved`\\r\\n- `denied`\\r\\n- `undefined`.\"},\"authorizationId\":{\"type\":\"string\",\"description\":\"Provider's unique identifier for the authorization. Should be sent when the payment is authorized. In other statuses, it should be absent or `null`.\"},\"bankIssueInvoiceId\":{\"type\":\"string\",\"description\":\"This field is deprecated, please use `paymentUrl` instead. The bank invoice URL to be presented to the end user.\"},\"paymentUrl\":{\"type\":[\"string\",\"null\"],\"description\":\"When the payment is via bank invoice, this should be the invoice URL to be presented to the user. If the payment requires the redirection of the user, this should be the URL to redirect the user. If neither is the case, then this should be absent.\"},\"paymentAppData\":{\"type\":\"object\",\"description\":\"Object which indicates that a [Payment App](https://developers.vtex.com/docs/guides/payments-integration-payment-app) is needed to finish the payment. This object contains the data to be used by the Payment App.\",\"required\":[\"appName\",\"payload\"],\"properties\":{\"appName\":{\"type\":\"string\",\"description\":\"Indicates which VTEX IO app that will handle the payment flow at Checkout.\"},\"payload\":{\"type\":\"string\",\"description\":\"The payload that will be sent to your app, like a serialized JSON, for example.\"}}},\"identificationNumber\":{\"type\":\"string\",\"description\":\"The bank invoice unformatted identification number. Should only be present when the payment is made via bank invoice.\"},\"identificationNumberFormatted\":{\"type\":\"string\",\"description\":\"The bank invoice formatted identification number that will be presented to the end user.\"},\"barCodeImageType\":{\"type\":\"string\",\"description\":\"The bank invoice barcode image type. For instance, \\\"i25\\\" for Brazilian *Boleto Bancário*. Should only be present when the payment is made via bank invoice.\"},\"barCodeImageNumber\":{\"type\":\"string\",\"description\":\"The bank invoice number to generate a barcode (must follow any regulations/specifications for targeted countries). Should only be present when the payment is made via bank invoice.\"},\"tid\":{\"type\":\"string\",\"description\":\"Provider's unique identifier for the transaction.\"},\"nsu\":{\"type\":[\"string\",\"null\"],\"description\":\"Provider's unique sequential number for the transaction.\"},\"acquirer\":{\"type\":[\"string\",\"null\"],\"description\":\"Acquirer name (mostly used for card payments).\"},\"redirectUrl\":{\"type\":\"string\",\"description\":\"This field is deprecated, please use `paymentUrl` instead. The URL the end user needs to be redirected to (external authentication, 3DS, etc).\"},\"code\":{\"type\":[\"string\",\"null\"],\"description\":\"Provider's operation/error code to be logged.\"},\"message\":{\"type\":[\"string\",\"null\"],\"description\":\"Provider's operation/error message to be logged.\"},\"delayToAutoSettle\":{\"type\":\"integer\",\"description\":\"Total time (in seconds) before we make an automatic call to `/settlements`, regardless of whether the payment was approved by the merchant's anti-fraud provider or not. The maximum time allowed to wait for an auto capture is 604800 seconds (7 days).\"},\"delayToAutoSettleAfterAntifraud\":{\"type\":\"integer\",\"description\":\"Total time (in seconds) before we make an automatic call to `/settlements` after merchant's antifraud approval.\"},\"delayToCancel\":{\"type\":\"integer\",\"description\":\"Total time (in seconds) to wait for an authorization and make an automatic call to `/cancellations` to cancel the payment. The minimum value is 10 minutes (600 seconds). **NOTE 1**: If you set this field to a time period less than 24 hours (86399 seconds or less), the gateway will retry processing the payment every 1 hour. If you use a value of 24 hours (86400 seconds) or more in this field, the gateway will retry processing the payment every 4 hours. **NOTE 2**: For `delayToCancel` values between 5 minutes and 1 hour (300 and 3600 seconds), or when payment is made by [PIX](https://developers.vtex.com/docs/guides/payments-integration-pix-instant-payments-in-brazil) (Brazilian instant payment method), retry calls will occur every 5 minutes.\"},\"maxValue\":{\"type\":\"integer\",\"description\":\"The maximum value for this payment. This field allows changes to be made to transactions to settle larger amounts as a result of order changes.\"},\"connectorMetadata\":{\"type\":\"array\",\"description\":\"Array containing metadata fields sent from the provider to the payment gateway.\",\"items\":{\"type\":\"object\",\"description\":\"Metadata fields information.\",\"required\":[\"name\",\"value\"],\"properties\":{\"name\":{\"type\":\"string\",\"description\":\"The name of the metadata to be stored in the gateway (limited to 20 characters).\"},\"value\":{\"type\":\"string\",\"description\":\"The value of the metadata stored (limited to 200 characters).\"}}}}}}\n\n// Validate if response matches JSON schema \npm.test(\"[POST]::/payments - Schema is valid\", function() {\n pm.response.to.have.jsonSchema(schema,{unknownFormats: [\"int32\", \"int64\", \"float\", \"double\"]});\n});\n" + "// Response Validation\nconst schema = {\"required\":[\"paymentId\",\"status\",\"authorizationId\",\"tid\",\"nsu\",\"acquirer\",\"delayToAutoSettle\",\"delayToAutoSettleAfterAntifraud\",\"delayToCancel\"],\"type\":\"object\",\"description\":\"Create payment response body information.\",\"properties\":{\"paymentId\":{\"type\":\"string\",\"description\":\"VTEX identifier for this payment. The same sent in the request.\"},\"status\":{\"type\":\"string\",\"description\":\"The Provider's status for this payment. Must be one of three values:\\r\\n\\r\\n- `approved`\\r\\n- `denied`\\r\\n- `undefined`.\"},\"authorizationId\":{\"type\":\"string\",\"description\":\"Provider's unique identifier for the authorization. Should be sent when the payment is authorized. In other statuses, it should be absent or `null`.\"},\"bankIssueInvoiceId\":{\"type\":\"string\",\"description\":\"This field is deprecated, please use `paymentUrl` instead. The bank invoice URL to be presented to the end user.\"},\"paymentUrl\":{\"type\":[\"string\",\"null\"],\"description\":\"When the payment is via bank invoice, this should be the invoice URL to be presented to the user. If the payment requires the redirection of the user, this should be the URL to redirect the user. If neither is the case, then this should be absent.\"},\"paymentAppData\":{\"type\":\"object\",\"description\":\"Object which indicates that a [Payment App](https://developers.vtex.com/docs/guides/payments-integration-payment-app) is needed to finish the payment. This object contains the data to be used by the Payment App.\",\"required\":[\"appName\",\"payload\"],\"properties\":{\"appName\":{\"type\":\"string\",\"description\":\"Indicates which VTEX IO app that will handle the payment flow at Checkout.\"},\"payload\":{\"type\":\"string\",\"description\":\"The payload that will be sent to your app, like a serialized JSON, for example.\"}}},\"identificationNumber\":{\"type\":\"string\",\"description\":\"The bank invoice unformatted identification number. Should only be present when the payment is made via bank invoice.\"},\"identificationNumberFormatted\":{\"type\":\"string\",\"description\":\"The bank invoice formatted identification number that will be presented to the end user.\"},\"barCodeImageType\":{\"type\":\"string\",\"description\":\"The bank invoice barcode image type. For instance, \\\"i25\\\" for Brazilian *Boleto Bancário*. Should only be present when the payment is made via bank invoice.\"},\"barCodeImageNumber\":{\"type\":\"string\",\"description\":\"The bank invoice number to generate a barcode (must follow any regulations/specifications for targeted countries). Should only be present when the payment is made via bank invoice.\"},\"tid\":{\"type\":\"string\",\"description\":\"Provider's unique identifier for the transaction.\"},\"nsu\":{\"type\":[\"string\",\"null\"],\"description\":\"Provider's unique sequential number for the transaction.\"},\"acquirer\":{\"type\":[\"string\",\"null\"],\"description\":\"Acquirer name (mostly used for card payments).\"},\"redirectUrl\":{\"type\":\"string\",\"description\":\"This field is deprecated, please use `paymentUrl` instead. The URL the end user needs to be redirected to (external authentication, 3DS, etc).\"},\"code\":{\"type\":[\"string\",\"null\"],\"description\":\"Provider's operation/error code to be logged.\"},\"message\":{\"type\":[\"string\",\"null\"],\"description\":\"Provider's operation/error message to be logged.\"},\"delayToAutoSettle\":{\"type\":\"integer\",\"description\":\"Total time (in seconds) before we make an automatic call to `/settlements`, regardless of whether the payment was approved by the merchant's anti-fraud provider or not. The maximum time allowed to wait for an auto capture is 604800 seconds (7 days).\"},\"delayToAutoSettleAfterAntifraud\":{\"type\":\"integer\",\"description\":\"Total time (in seconds) before we make an automatic call to `/settlements` after merchant's antifraud approval.\"},\"delayToCancel\":{\"type\":\"integer\",\"description\":\"Total time (in seconds) to wait for an authorization and make an automatic call to `/cancellations` to cancel the payment. The minimum value is 10 minutes (600 seconds). **NOTE 1**: If you set this field to a time period less than 24 hours (86399 seconds or less), the gateway will retry processing the payment every 1 hour. If you use a value of 24 hours (86400 seconds) or more in this field, the gateway will retry processing the payment every 4 hours. **NOTE 2**: For `delayToCancel` values between 5 minutes and 1 hour (300 and 3600 seconds), or when payment is made by [PIX](https://developers.vtex.com/docs/guides/payments-integration-pix-instant-payments-in-brazil) (Brazilian instant payment method), retry calls will occur every 5 minutes. **NOTE 3**: The maximum value allowed for the `delayToCancel` is 30 days (2592000 seconds).\"},\"maxValue\":{\"type\":\"integer\",\"description\":\"The maximum value for this payment. This field allows changes to be made to transactions to settle larger amounts as a result of order changes.\"},\"connectorMetadata\":{\"type\":\"array\",\"description\":\"Array containing metadata fields sent from the provider to the payment gateway.\",\"items\":{\"type\":\"object\",\"description\":\"Metadata fields information.\",\"required\":[\"name\",\"value\"],\"properties\":{\"name\":{\"type\":\"string\",\"description\":\"The name of the metadata to be stored in the gateway (limited to 20 characters).\"},\"value\":{\"type\":\"string\",\"description\":\"The value of the metadata stored (limited to 200 characters).\"}}}}}}\n\n// Validate if response matches JSON schema \npm.test(\"[POST]::/payments - Schema is valid\", function() {\n pm.response.to.have.jsonSchema(schema,{unknownFormats: [\"int32\", \"int64\", \"float\", \"double\"]});\n});\n" ] } } @@ -565,7 +3354,7 @@ } }, { - "id": "d44a489d-fb57-4507-b96a-a946a336dfca", + "id": "4da7cbac-e5c6-4a11-b707-f674a00472cb", "name": "Cancel payment", "request": { "name": "Cancel payment", @@ -593,15 +3382,6 @@ "type": "any", "value": "F5C1A4E20D3B4E07B7E871F5B5BC9F91", "key": "paymentId" - }, - { - "description": { - "content": "Payment provider endpoint URL.", - "type": "text/plain" - }, - "type": "any", - "value": "{{providerApiEndpoint}}", - "key": "providerApiEndpoint" } ] }, @@ -641,6 +3421,14 @@ }, "key": "Accept", "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" } ], "method": "POST", @@ -649,6 +3437,7 @@ "raw": "{\n \"paymentId\": \"F5C1A4E20D3B4E07B7E871F5B5BC9F91\",\n \"requestId\": \"D12D9B80972C462980F5067A3A126837\",\n \"authorizationId\": \"5784589\",\n \"tid\": \"10022005181543584603\",\n \"transactionId\": \"D3AA1FC8372E430E8236649DB5EBD08E\",\n \"nsu\": \"NSU987432\",\n \"sandboxMode\": false,\n \"merchantSettings\": [\n {\n \"name\": \"Public Merchant ID Test.\",\n \"value\": \"1\"\n },\n {\n \"name\": \"Public Merchant ID Test.\",\n \"value\": \"1\"\n }\n ],\n \"connectorMetadata\": [\n {\n \"name\": \"MetadataName\",\n \"value\": \"MetadataValue\"\n },\n {\n \"name\": \"MetadataName\",\n \"value\": \"MetadataValue\"\n }\n ]\n}", "options": { "raw": { + "headerFamily": "json", "language": "json" } } @@ -679,7 +3468,7 @@ "_": { "postman_previewlanguage": "json" }, - "id": "bf98ba3e-10bd-4f1a-915d-345cf22b5f65", + "id": "4ed835ae-12b6-4e56-a4ce-e17362e2836a", "name": "OK", "originalRequest": { "url": { @@ -692,37 +3481,9 @@ "{{baseUrl}}" ], "query": [], - "variable": [ - { - "disabled": false, - "description": { - "content": "(Required) VTEX payment identifier.", - "type": "text/plain" - }, - "type": "any", - "value": "F5C1A4E20D3B4E07B7E871F5B5BC9F91", - "key": "paymentId" - }, - { - "description": { - "content": "Payment provider endpoint URL.", - "type": "text/plain" - }, - "type": "any", - "value": "{{providerApiEndpoint}}", - "key": "providerApiEndpoint" - } - ] + "variable": [] }, "header": [ - { - "description": { - "content": "Added as a part of security scheme: apikey", - "type": "text/plain" - }, - "key": "X-VTEX-API-AppKey", - "value": "" - }, { "disabled": false, "description": { @@ -759,9 +3520,21 @@ "key": "Accept", "value": "application/json" }, + { + "key": "Content-Type", + "value": "application/json" + }, { "key": "Accept", "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "X-VTEX-API-AppKey", + "value": "" } ], "method": "POST", @@ -770,6 +3543,7 @@ "raw": "{\n \"paymentId\": \"F5C1A4E20D3B4E07B7E871F5B5BC9F91\",\n \"requestId\": \"D12D9B80972C462980F5067A3A126837\",\n \"authorizationId\": \"5784589\",\n \"tid\": \"10022005181543584603\",\n \"transactionId\": \"D3AA1FC8372E430E8236649DB5EBD08E\",\n \"nsu\": \"NSU987432\",\n \"sandboxMode\": false,\n \"merchantSettings\": [\n {\n \"name\": \"Public Merchant ID Test.\",\n \"value\": \"1\"\n },\n {\n \"name\": \"Public Merchant ID Test.\",\n \"value\": \"1\"\n }\n ],\n \"connectorMetadata\": [\n {\n \"name\": \"MetadataName\",\n \"value\": \"MetadataValue\"\n },\n {\n \"name\": \"MetadataName\",\n \"value\": \"MetadataValue\"\n }\n ]\n}", "options": { "raw": { + "headerFamily": "json", "language": "json" } } @@ -790,7 +3564,7 @@ "_": { "postman_previewlanguage": "json" }, - "id": "52bb19d2-ca1d-4530-8eb0-3b2f426ee945", + "id": "1229856d-1ad5-4c18-b8fe-412aa4d3f0f7", "name": "Internal Server Error", "originalRequest": { "url": { @@ -803,37 +3577,9 @@ "{{baseUrl}}" ], "query": [], - "variable": [ - { - "disabled": false, - "description": { - "content": "(Required) VTEX payment identifier.", - "type": "text/plain" - }, - "type": "any", - "value": "F5C1A4E20D3B4E07B7E871F5B5BC9F91", - "key": "paymentId" - }, - { - "description": { - "content": "Payment provider endpoint URL.", - "type": "text/plain" - }, - "type": "any", - "value": "{{providerApiEndpoint}}", - "key": "providerApiEndpoint" - } - ] + "variable": [] }, "header": [ - { - "description": { - "content": "Added as a part of security scheme: apikey", - "type": "text/plain" - }, - "key": "X-VTEX-API-AppKey", - "value": "" - }, { "disabled": false, "description": { @@ -870,9 +3616,21 @@ "key": "Accept", "value": "application/json" }, + { + "key": "Content-Type", + "value": "application/json" + }, { "key": "Accept", "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "X-VTEX-API-AppKey", + "value": "" } ], "method": "POST", @@ -881,6 +3639,7 @@ "raw": "{\n \"paymentId\": \"F5C1A4E20D3B4E07B7E871F5B5BC9F91\",\n \"requestId\": \"D12D9B80972C462980F5067A3A126837\",\n \"authorizationId\": \"5784589\",\n \"tid\": \"10022005181543584603\",\n \"transactionId\": \"D3AA1FC8372E430E8236649DB5EBD08E\",\n \"nsu\": \"NSU987432\",\n \"sandboxMode\": false,\n \"merchantSettings\": [\n {\n \"name\": \"Public Merchant ID Test.\",\n \"value\": \"1\"\n },\n {\n \"name\": \"Public Merchant ID Test.\",\n \"value\": \"1\"\n }\n ],\n \"connectorMetadata\": [\n {\n \"name\": \"MetadataName\",\n \"value\": \"MetadataValue\"\n },\n {\n \"name\": \"MetadataName\",\n \"value\": \"MetadataValue\"\n }\n ]\n}", "options": { "raw": { + "headerFamily": "json", "language": "json" } } @@ -901,7 +3660,7 @@ "_": { "postman_previewlanguage": "json" }, - "id": "ff1bc14f-62b1-4407-a655-2f3e94276b3e", + "id": "d9787f06-38a2-4a9c-9024-690f075ce463", "name": "Not Implemented", "originalRequest": { "url": { @@ -914,37 +3673,9 @@ "{{baseUrl}}" ], "query": [], - "variable": [ - { - "disabled": false, - "description": { - "content": "(Required) VTEX payment identifier.", - "type": "text/plain" - }, - "type": "any", - "value": "F5C1A4E20D3B4E07B7E871F5B5BC9F91", - "key": "paymentId" - }, - { - "description": { - "content": "Payment provider endpoint URL.", - "type": "text/plain" - }, - "type": "any", - "value": "{{providerApiEndpoint}}", - "key": "providerApiEndpoint" - } - ] + "variable": [] }, "header": [ - { - "description": { - "content": "Added as a part of security scheme: apikey", - "type": "text/plain" - }, - "key": "X-VTEX-API-AppKey", - "value": "" - }, { "disabled": false, "description": { @@ -981,9 +3712,21 @@ "key": "Accept", "value": "application/json" }, + { + "key": "Content-Type", + "value": "application/json" + }, { "key": "Accept", "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "X-VTEX-API-AppKey", + "value": "" } ], "method": "POST", @@ -992,6 +3735,7 @@ "raw": "{\n \"paymentId\": \"F5C1A4E20D3B4E07B7E871F5B5BC9F91\",\n \"requestId\": \"D12D9B80972C462980F5067A3A126837\",\n \"authorizationId\": \"5784589\",\n \"tid\": \"10022005181543584603\",\n \"transactionId\": \"D3AA1FC8372E430E8236649DB5EBD08E\",\n \"nsu\": \"NSU987432\",\n \"sandboxMode\": false,\n \"merchantSettings\": [\n {\n \"name\": \"Public Merchant ID Test.\",\n \"value\": \"1\"\n },\n {\n \"name\": \"Public Merchant ID Test.\",\n \"value\": \"1\"\n }\n ],\n \"connectorMetadata\": [\n {\n \"name\": \"MetadataName\",\n \"value\": \"MetadataValue\"\n },\n {\n \"name\": \"MetadataName\",\n \"value\": \"MetadataValue\"\n }\n ]\n}", "options": { "raw": { + "headerFamily": "json", "language": "json" } } @@ -1013,7 +3757,7 @@ { "listen": "test", "script": { - "id": "b55eced2-9725-4186-bebe-8cf455be9dd3", + "id": "023bc171-d238-4627-a436-29c7cb56006e", "type": "text/javascript", "exec": [ "// Validate status 2xx \npm.test(\"[POST]::/payments/:paymentId/cancellations - Status code is 2xx\", function () {\n pm.response.to.be.success;\n});\n", @@ -1029,7 +3773,7 @@ } }, { - "id": "18f21ae4-42bb-4fba-be0b-ae2df22547b2", + "id": "ee77de1f-0a7a-42ea-9a84-347c84056b9b", "name": "Settle payment", "request": { "name": "Settle payment", @@ -1057,15 +3801,6 @@ "type": "any", "value": "F5C1A4E20D3B4E07B7E871F5B5BC9F91", "key": "paymentId" - }, - { - "description": { - "content": "Payment provider endpoint URL.", - "type": "text/plain" - }, - "type": "any", - "value": "{{providerApiEndpoint}}", - "key": "providerApiEndpoint" } ] }, @@ -1105,14 +3840,23 @@ }, "key": "Accept", "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" } ], "method": "POST", "body": { "mode": "raw", - "raw": "{\n \"transactionId\": \"conse\",\n \"requestId\": \"ut sunt cillum consequat\",\n \"paymentId\": \"anim dolore eu magna\",\n \"value\": -7731696.580490872,\n \"authorizationId\": \"eiusmod consectetur \",\n \"tid\": \"sunt reprehenderit sit\",\n \"nsu\": \"irure do in aliqua\",\n \"recipients\": [\n {\n \"id\": \"amet ullamco\",\n \"name\": \"dolore occaecat aliqua elit\",\n \"documentType\": \"Lorem velit dolor voluptate\",\n \"document\": \"cillum in\",\n \"role\": \"ut ut\",\n \"amount\": 35829039.21024272,\n \"chargeProcessingFee\": true,\n \"chargebackLiable\": true,\n \"commissionAmount\": -86599554.10297346\n },\n {\n \"id\": \"voluptate dolor reprehenderit\",\n \"name\": \"irure minim labore laboris\",\n \"documentType\": \"velit elit Ut labore irure\",\n \"document\": \"tempor laborum\",\n \"role\": \"ut exercitation dolore\",\n \"amount\": -23591312.900243804,\n \"chargeProcessingFee\": false,\n \"chargebackLiable\": false,\n \"commissionAmount\": 21059234.276404306\n }\n ],\n \"sandboxMode\": false,\n \"merchantSettings\": [\n {\n \"name\": \"deserunt\",\n \"value\": \"pariatur\"\n },\n {\n \"name\": \"qui consequat ut aute\",\n \"value\": \"voluptate sunt in cupidatat\"\n }\n ],\n \"connectorMetadata\": [\n {\n \"name\": \"dolor nulla ea ad\",\n \"value\": \"culpa quis eiusmod in\"\n },\n {\n \"name\": \"laborum do incididunt\",\n \"value\": \"aliqua\"\n }\n ]\n}", + "raw": "{\n \"transactionId\": \"D3AA1FC8372E430E8236649DB5EBD08E\",\n \"requestId\": \"2019-02-04T22:53:42-40000\",\n \"paymentId\": \"F5C1A4E20D3B4E07B7E871F5B5BC9F91\",\n \"value\": 45,\n \"authorizationId\": \"5784589\",\n \"tid\": \"5784589\",\n \"nsu\": \"NSU987432\",\n \"recipients\": [\n {\n \"id\": \"mystore\",\n \"name\": \"Company XPTO\",\n \"documentType\": \"CNPJ\",\n \"document\": \"05314972000174\",\n \"role\": \"marketplace\",\n \"chargeProcessingFee\": true,\n \"chargebackLiable\": true,\n \"amount\": 7.2\n },\n {\n \"id\": \"sellerA\",\n \"name\": \"Company ABC\",\n \"documentType\": \"CNPJ\",\n \"document\": \"24830098000172\",\n \"role\": \"seller\",\n \"chargeProcessingFee\": false,\n \"chargebackLiable\": false,\n \"amount\": 37.8,\n \"commissionAmount\": 7.2\n }\n ],\n \"sandboxMode\": false,\n \"merchantSettings\": [\n {\n \"name\": \"Public Merchant ID Test.\",\n \"value\": \"1\"\n }\n ],\n \"connectorMetadata\": [\n {\n \"name\": \"MetadataName\",\n \"value\": \"MetadataValue\"\n }\n ]\n}", "options": { "raw": { + "headerFamily": "json", "language": "json" } } @@ -1143,7 +3887,7 @@ "_": { "postman_previewlanguage": "json" }, - "id": "b8398aa4-6f1e-4127-acb1-60764ec00903", + "id": "42040140-8ee0-4aee-b873-c7f45705fd92", "name": "OK", "originalRequest": { "url": { @@ -1156,37 +3900,9 @@ "{{baseUrl}}" ], "query": [], - "variable": [ - { - "disabled": false, - "description": { - "content": "(Required) VTEX payment identifier.", - "type": "text/plain" - }, - "type": "any", - "value": "F5C1A4E20D3B4E07B7E871F5B5BC9F91", - "key": "paymentId" - }, - { - "description": { - "content": "Payment provider endpoint URL.", - "type": "text/plain" - }, - "type": "any", - "value": "{{providerApiEndpoint}}", - "key": "providerApiEndpoint" - } - ] + "variable": [] }, "header": [ - { - "description": { - "content": "Added as a part of security scheme: apikey", - "type": "text/plain" - }, - "key": "X-VTEX-API-AppKey", - "value": "" - }, { "disabled": false, "description": { @@ -1223,17 +3939,30 @@ "key": "Accept", "value": "application/json" }, + { + "key": "Content-Type", + "value": "application/json" + }, { "key": "Accept", "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "X-VTEX-API-AppKey", + "value": "" } ], "method": "POST", "body": { "mode": "raw", - "raw": "{\n \"transactionId\": \"aliqua do aute in\",\n \"requestId\": \"in voluptate\",\n \"paymentId\": \"veniam nostrud consectetur sunt\",\n \"value\": -92238213.01226027,\n \"authorizationId\": \"in dolore\",\n \"tid\": \"in nisi occaecat commodo sit\",\n \"nsu\": \"amet enim exercitation\",\n \"recipients\": [\n {\n \"id\": \"velit Duis Lorem elit\",\n \"name\": \"ea \",\n \"documentType\": \"sed minim officia sunt do\",\n \"document\": \"consequat ipsum irure\",\n \"role\": \"sint fugiat culpa\",\n \"amount\": 91809924.5025126,\n \"chargeProcessingFee\": false,\n \"chargebackLiable\": true,\n \"commissionAmount\": -61715263.45146399\n },\n {\n \"id\": \"aute occaecat \",\n \"name\": \"ipsum exercitation do\",\n \"documentType\": \"deserunt sint cillum \",\n \"document\": \"et exercitation\",\n \"role\": \"quis\",\n \"amount\": -75256935.52892672,\n \"chargeProcessingFee\": false,\n \"chargebackLiable\": true,\n \"commissionAmount\": -25890992.41375217\n }\n ],\n \"sandboxMode\": true,\n \"merchantSettings\": [\n {\n \"name\": \"pariatur esse in elit\",\n \"value\": \"elit non\"\n },\n {\n \"name\": \"sed ipsum culpa quis proident\",\n \"value\": \"commodo veniam\"\n }\n ],\n \"connectorMetadata\": [\n {\n \"name\": \"ut\",\n \"value\": \"nulla sunt irure do\"\n },\n {\n \"name\": \"irure Excepteu\",\n \"value\": \"pariatur labore do in in\"\n }\n ]\n}", + "raw": "{\n \"transactionId\": \"D3AA1FC8372E430E8236649DB5EBD08E\",\n \"requestId\": \"2019-02-04T22:53:42-40000\",\n \"paymentId\": \"F5C1A4E20D3B4E07B7E871F5B5BC9F91\",\n \"value\": 45,\n \"authorizationId\": \"5784589\",\n \"tid\": \"5784589\",\n \"nsu\": \"NSU987432\",\n \"recipients\": [\n {\n \"id\": \"mystore\",\n \"name\": \"Company XPTO\",\n \"documentType\": \"CNPJ\",\n \"document\": \"05314972000174\",\n \"role\": \"marketplace\",\n \"chargeProcessingFee\": true,\n \"chargebackLiable\": true,\n \"amount\": 7.2\n },\n {\n \"id\": \"sellerA\",\n \"name\": \"Company ABC\",\n \"documentType\": \"CNPJ\",\n \"document\": \"24830098000172\",\n \"role\": \"seller\",\n \"chargeProcessingFee\": false,\n \"chargebackLiable\": false,\n \"amount\": 37.8,\n \"commissionAmount\": 7.2\n }\n ],\n \"sandboxMode\": false,\n \"merchantSettings\": [\n {\n \"name\": \"Public Merchant ID Test.\",\n \"value\": \"1\"\n }\n ],\n \"connectorMetadata\": [\n {\n \"name\": \"MetadataName\",\n \"value\": \"MetadataValue\"\n }\n ]\n}", "options": { "raw": { + "headerFamily": "json", "language": "json" } } @@ -1254,7 +3983,7 @@ "_": { "postman_previewlanguage": "json" }, - "id": "3886c9e0-05d0-42cc-b5c8-6993f9230385", + "id": "89c62eee-c4fa-4d01-94c8-8437123e463b", "name": "Internal Server Error", "originalRequest": { "url": { @@ -1267,37 +3996,9 @@ "{{baseUrl}}" ], "query": [], - "variable": [ - { - "disabled": false, - "description": { - "content": "(Required) VTEX payment identifier.", - "type": "text/plain" - }, - "type": "any", - "value": "F5C1A4E20D3B4E07B7E871F5B5BC9F91", - "key": "paymentId" - }, - { - "description": { - "content": "Payment provider endpoint URL.", - "type": "text/plain" - }, - "type": "any", - "value": "{{providerApiEndpoint}}", - "key": "providerApiEndpoint" - } - ] + "variable": [] }, "header": [ - { - "description": { - "content": "Added as a part of security scheme: apikey", - "type": "text/plain" - }, - "key": "X-VTEX-API-AppKey", - "value": "" - }, { "disabled": false, "description": { @@ -1334,17 +4035,30 @@ "key": "Accept", "value": "application/json" }, + { + "key": "Content-Type", + "value": "application/json" + }, { "key": "Accept", "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "X-VTEX-API-AppKey", + "value": "" } ], "method": "POST", "body": { "mode": "raw", - "raw": "{\n \"transactionId\": \"aliqua do aute in\",\n \"requestId\": \"in voluptate\",\n \"paymentId\": \"veniam nostrud consectetur sunt\",\n \"value\": -92238213.01226027,\n \"authorizationId\": \"in dolore\",\n \"tid\": \"in nisi occaecat commodo sit\",\n \"nsu\": \"amet enim exercitation\",\n \"recipients\": [\n {\n \"id\": \"velit Duis Lorem elit\",\n \"name\": \"ea \",\n \"documentType\": \"sed minim officia sunt do\",\n \"document\": \"consequat ipsum irure\",\n \"role\": \"sint fugiat culpa\",\n \"amount\": 91809924.5025126,\n \"chargeProcessingFee\": false,\n \"chargebackLiable\": true,\n \"commissionAmount\": -61715263.45146399\n },\n {\n \"id\": \"aute occaecat \",\n \"name\": \"ipsum exercitation do\",\n \"documentType\": \"deserunt sint cillum \",\n \"document\": \"et exercitation\",\n \"role\": \"quis\",\n \"amount\": -75256935.52892672,\n \"chargeProcessingFee\": false,\n \"chargebackLiable\": true,\n \"commissionAmount\": -25890992.41375217\n }\n ],\n \"sandboxMode\": true,\n \"merchantSettings\": [\n {\n \"name\": \"pariatur esse in elit\",\n \"value\": \"elit non\"\n },\n {\n \"name\": \"sed ipsum culpa quis proident\",\n \"value\": \"commodo veniam\"\n }\n ],\n \"connectorMetadata\": [\n {\n \"name\": \"ut\",\n \"value\": \"nulla sunt irure do\"\n },\n {\n \"name\": \"irure Excepteu\",\n \"value\": \"pariatur labore do in in\"\n }\n ]\n}", + "raw": "{\n \"transactionId\": \"D3AA1FC8372E430E8236649DB5EBD08E\",\n \"requestId\": \"2019-02-04T22:53:42-40000\",\n \"paymentId\": \"F5C1A4E20D3B4E07B7E871F5B5BC9F91\",\n \"value\": 45,\n \"authorizationId\": \"5784589\",\n \"tid\": \"5784589\",\n \"nsu\": \"NSU987432\",\n \"recipients\": [\n {\n \"id\": \"mystore\",\n \"name\": \"Company XPTO\",\n \"documentType\": \"CNPJ\",\n \"document\": \"05314972000174\",\n \"role\": \"marketplace\",\n \"chargeProcessingFee\": true,\n \"chargebackLiable\": true,\n \"amount\": 7.2\n },\n {\n \"id\": \"sellerA\",\n \"name\": \"Company ABC\",\n \"documentType\": \"CNPJ\",\n \"document\": \"24830098000172\",\n \"role\": \"seller\",\n \"chargeProcessingFee\": false,\n \"chargebackLiable\": false,\n \"amount\": 37.8,\n \"commissionAmount\": 7.2\n }\n ],\n \"sandboxMode\": false,\n \"merchantSettings\": [\n {\n \"name\": \"Public Merchant ID Test.\",\n \"value\": \"1\"\n }\n ],\n \"connectorMetadata\": [\n {\n \"name\": \"MetadataName\",\n \"value\": \"MetadataValue\"\n }\n ]\n}", "options": { "raw": { + "headerFamily": "json", "language": "json" } } @@ -1366,7 +4080,7 @@ { "listen": "test", "script": { - "id": "6ac301c5-ac53-4468-b4c6-aeaa5fa866e9", + "id": "06a6ffac-45d1-4061-9ae3-e56f2bfa5f9d", "type": "text/javascript", "exec": [ "// Validate status 2xx \npm.test(\"[POST]::/payments/:paymentId/settlements - Status code is 2xx\", function () {\n pm.response.to.be.success;\n});\n", @@ -1382,7 +4096,7 @@ } }, { - "id": "7665e907-3dc9-444f-87bc-48cdc7cb37fa", + "id": "5e4cc07f-11f8-4048-9f2e-b543ee30ca90", "name": "Refund payment", "request": { "name": "Refund payment", @@ -1410,15 +4124,6 @@ "type": "any", "value": "F5C1A4E20D3B4E07B7E871F5B5BC9F91", "key": "paymentId" - }, - { - "description": { - "content": "Payment provider endpoint URL.", - "type": "text/plain" - }, - "type": "any", - "value": "{{providerApiEndpoint}}", - "key": "providerApiEndpoint" } ] }, @@ -1458,14 +4163,23 @@ }, "key": "Accept", "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" } ], "method": "POST", "body": { "mode": "raw", - "raw": "{\n \"requestId\": \"culpa elit ad veniam laborum\",\n \"settleId\": \"i\",\n \"paymentId\": \"officia laboris\",\n \"tid\": \"in\",\n \"value\": 68299185.51884556,\n \"transactionId\": \"qui commodo velit fugiat cupid\",\n \"authorizationId\": \"nisi et mollit\",\n \"nsu\": \"ut dolor ullamco aute\",\n \"recipients\": [\n {\n \"id\": \"sed fugiat\",\n \"name\": \"minim\",\n \"documentType\": \"commodo tempor\",\n \"document\": \"Ut et minim mollit\",\n \"role\": \"irure ea veniam Lorem Duis\",\n \"amount\": -60539335.78339437,\n \"chargeProcessingFee\": false,\n \"chargebackLiable\": false,\n \"comissionAmount\": -53020546.86052018\n },\n {\n \"id\": \"dolore \",\n \"name\": \"c\",\n \"documentType\": \"ex Excepteur laborum nisi\",\n \"document\": \"irure non dolore exercitation nulla\",\n \"role\": \"pari\",\n \"amount\": -11235968.434699833,\n \"chargeProcessingFee\": true,\n \"chargebackLiable\": true,\n \"comissionAmount\": -77967913.11581966\n }\n ],\n \"sandboxMode\": false,\n \"merchantSettings\": [\n {\n \"name\": \"Ut in tempor\",\n \"value\": \"magna consectetur pariatur amet deserunt\"\n },\n {\n \"name\": \"est amet sunt\",\n \"value\": \"culpa fugiat\"\n }\n ],\n \"connectorMetadata\": [\n {\n \"name\": \"commodo proident enim dolore dolor\",\n \"value\": \"magna\"\n },\n {\n \"name\": \"sint\",\n \"value\": \"mollit incididunt\"\n }\n ]\n}", + "raw": "{\n \"requestId\": \"LA4E20D3B4E07B7E871F5B5BC9F91\",\n \"settleId\": \"Q5C1A4E20D3B4E07B7E871F5B5BC9F91\",\n \"paymentId\": \"F5C1A4E20D3B4E07B7E871F5B5BC9F91\",\n \"tid\": \"10022005181543584603\",\n \"authorizationId\": \"AUT123567\",\n \"nsu\": \"NSU987432\",\n \"value\": 20,\n \"transactionId\": \"D3AA1FC8372E430E8236649DB5EBD08E\",\n \"recipients\": [\n {\n \"id\": \"mystore\",\n \"name\": \"Company XPTO\",\n \"documentType\": \"CNPJ\",\n \"document\": \"05314972000174\",\n \"role\": \"marketplace\",\n \"chargeProcessingFee\": true,\n \"chargebackLiable\": true,\n \"amount\": 3.2\n },\n {\n \"id\": \"sellerA\",\n \"name\": \"Company ABC\",\n \"documentType\": \"CNPJ\",\n \"document\": \"24830098000172\",\n \"role\": \"seller\",\n \"amount\": 16.8,\n \"comissionAmount\": 3\n }\n ],\n \"sandboxMode\": false,\n \"merchantSettings\": [\n {\n \"name\": \"Public Merchant ID Test.\",\n \"value\": \"1\"\n }\n ],\n \"connectorMetadata\": [\n {\n \"name\": \"MetadataName\",\n \"value\": \"MetadataValue\"\n }\n ]\n}", "options": { "raw": { + "headerFamily": "json", "language": "json" } } @@ -1496,7 +4210,7 @@ "_": { "postman_previewlanguage": "json" }, - "id": "46d3a501-b5d3-410a-b9cf-a169ea6ed633", + "id": "8c2eed97-3852-4c25-9394-66fb566c1334", "name": "OK", "originalRequest": { "url": { @@ -1508,38 +4222,10 @@ "host": [ "{{baseUrl}}" ], - "query": [], - "variable": [ - { - "disabled": false, - "description": { - "content": "(Required) VTEX payment identifier.", - "type": "text/plain" - }, - "type": "any", - "value": "F5C1A4E20D3B4E07B7E871F5B5BC9F91", - "key": "paymentId" - }, - { - "description": { - "content": "Payment provider endpoint URL.", - "type": "text/plain" - }, - "type": "any", - "value": "{{providerApiEndpoint}}", - "key": "providerApiEndpoint" - } - ] - }, - "header": [ - { - "description": { - "content": "Added as a part of security scheme: apikey", - "type": "text/plain" - }, - "key": "X-VTEX-API-AppKey", - "value": "" - }, + "query": [], + "variable": [] + }, + "header": [ { "disabled": false, "description": { @@ -1576,17 +4262,30 @@ "key": "Accept", "value": "application/json" }, + { + "key": "Content-Type", + "value": "application/json" + }, { "key": "Accept", "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "X-VTEX-API-AppKey", + "value": "" } ], "method": "POST", "body": { "mode": "raw", - "raw": "{\n \"requestId\": \"sunt fugiat\",\n \"settleId\": \"laboris commodo aliqua\",\n \"paymentId\": \"ad nulla voluptate dolor\",\n \"tid\": \"exercitation ad esse\",\n \"value\": 18114911.777967885,\n \"transactionId\": \"fugiat elit id consequat Ut\",\n \"authorizationId\": \"occaecat\",\n \"nsu\": \"amet et\",\n \"recipients\": [\n {\n \"id\": \"in Duis esse\",\n \"name\": \"irure\",\n \"documentType\": \"nulla culpa in in consequat\",\n \"document\": \"amet\",\n \"role\": \"in mollit ullamco laborum\",\n \"amount\": 91989930.83465585,\n \"chargeProcessingFee\": true,\n \"chargebackLiable\": true,\n \"comissionAmount\": 95316366.71246839\n },\n {\n \"id\": \"voluptate ipsum\",\n \"name\": \"Ut ullamco quis\",\n \"documentType\": \"nulla se\",\n \"document\": \"tem\",\n \"role\": \"non sint Dui\",\n \"amount\": -3660709.750245154,\n \"chargeProcessingFee\": false,\n \"chargebackLiable\": false,\n \"comissionAmount\": -70014134.35489333\n }\n ],\n \"sandboxMode\": true,\n \"merchantSettings\": [\n {\n \"name\": \"dolore magna sed\",\n \"value\": \"sed sit Lorem in\"\n },\n {\n \"name\": \"magna \",\n \"value\": \"tempor dolor\"\n }\n ],\n \"connectorMetadata\": [\n {\n \"name\": \"sit quis\",\n \"value\": \"anim cupidatat fugiat quis\"\n },\n {\n \"name\": \"in qui\",\n \"value\": \"ut\"\n }\n ]\n}", + "raw": "{\n \"requestId\": \"LA4E20D3B4E07B7E871F5B5BC9F91\",\n \"settleId\": \"Q5C1A4E20D3B4E07B7E871F5B5BC9F91\",\n \"paymentId\": \"F5C1A4E20D3B4E07B7E871F5B5BC9F91\",\n \"tid\": \"10022005181543584603\",\n \"authorizationId\": \"AUT123567\",\n \"nsu\": \"NSU987432\",\n \"value\": 20,\n \"transactionId\": \"D3AA1FC8372E430E8236649DB5EBD08E\",\n \"recipients\": [\n {\n \"id\": \"mystore\",\n \"name\": \"Company XPTO\",\n \"documentType\": \"CNPJ\",\n \"document\": \"05314972000174\",\n \"role\": \"marketplace\",\n \"chargeProcessingFee\": true,\n \"chargebackLiable\": true,\n \"amount\": 3.2\n },\n {\n \"id\": \"sellerA\",\n \"name\": \"Company ABC\",\n \"documentType\": \"CNPJ\",\n \"document\": \"24830098000172\",\n \"role\": \"seller\",\n \"amount\": 16.8,\n \"comissionAmount\": 3\n }\n ],\n \"sandboxMode\": false,\n \"merchantSettings\": [\n {\n \"name\": \"Public Merchant ID Test.\",\n \"value\": \"1\"\n }\n ],\n \"connectorMetadata\": [\n {\n \"name\": \"MetadataName\",\n \"value\": \"MetadataValue\"\n }\n ]\n}", "options": { "raw": { + "headerFamily": "json", "language": "json" } } @@ -1607,7 +4306,7 @@ "_": { "postman_previewlanguage": "json" }, - "id": "dde1b066-e045-4ade-9e07-0c9d39b6482b", + "id": "b6efe16a-f5ea-480e-bb40-e5efa5d09ff4", "name": "Internal Server Error", "originalRequest": { "url": { @@ -1620,37 +4319,9 @@ "{{baseUrl}}" ], "query": [], - "variable": [ - { - "disabled": false, - "description": { - "content": "(Required) VTEX payment identifier.", - "type": "text/plain" - }, - "type": "any", - "value": "F5C1A4E20D3B4E07B7E871F5B5BC9F91", - "key": "paymentId" - }, - { - "description": { - "content": "Payment provider endpoint URL.", - "type": "text/plain" - }, - "type": "any", - "value": "{{providerApiEndpoint}}", - "key": "providerApiEndpoint" - } - ] + "variable": [] }, "header": [ - { - "description": { - "content": "Added as a part of security scheme: apikey", - "type": "text/plain" - }, - "key": "X-VTEX-API-AppKey", - "value": "" - }, { "disabled": false, "description": { @@ -1687,17 +4358,30 @@ "key": "Accept", "value": "application/json" }, + { + "key": "Content-Type", + "value": "application/json" + }, { "key": "Accept", "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "X-VTEX-API-AppKey", + "value": "" } ], "method": "POST", "body": { "mode": "raw", - "raw": "{\n \"requestId\": \"sunt fugiat\",\n \"settleId\": \"laboris commodo aliqua\",\n \"paymentId\": \"ad nulla voluptate dolor\",\n \"tid\": \"exercitation ad esse\",\n \"value\": 18114911.777967885,\n \"transactionId\": \"fugiat elit id consequat Ut\",\n \"authorizationId\": \"occaecat\",\n \"nsu\": \"amet et\",\n \"recipients\": [\n {\n \"id\": \"in Duis esse\",\n \"name\": \"irure\",\n \"documentType\": \"nulla culpa in in consequat\",\n \"document\": \"amet\",\n \"role\": \"in mollit ullamco laborum\",\n \"amount\": 91989930.83465585,\n \"chargeProcessingFee\": true,\n \"chargebackLiable\": true,\n \"comissionAmount\": 95316366.71246839\n },\n {\n \"id\": \"voluptate ipsum\",\n \"name\": \"Ut ullamco quis\",\n \"documentType\": \"nulla se\",\n \"document\": \"tem\",\n \"role\": \"non sint Dui\",\n \"amount\": -3660709.750245154,\n \"chargeProcessingFee\": false,\n \"chargebackLiable\": false,\n \"comissionAmount\": -70014134.35489333\n }\n ],\n \"sandboxMode\": true,\n \"merchantSettings\": [\n {\n \"name\": \"dolore magna sed\",\n \"value\": \"sed sit Lorem in\"\n },\n {\n \"name\": \"magna \",\n \"value\": \"tempor dolor\"\n }\n ],\n \"connectorMetadata\": [\n {\n \"name\": \"sit quis\",\n \"value\": \"anim cupidatat fugiat quis\"\n },\n {\n \"name\": \"in qui\",\n \"value\": \"ut\"\n }\n ]\n}", + "raw": "{\n \"requestId\": \"LA4E20D3B4E07B7E871F5B5BC9F91\",\n \"settleId\": \"Q5C1A4E20D3B4E07B7E871F5B5BC9F91\",\n \"paymentId\": \"F5C1A4E20D3B4E07B7E871F5B5BC9F91\",\n \"tid\": \"10022005181543584603\",\n \"authorizationId\": \"AUT123567\",\n \"nsu\": \"NSU987432\",\n \"value\": 20,\n \"transactionId\": \"D3AA1FC8372E430E8236649DB5EBD08E\",\n \"recipients\": [\n {\n \"id\": \"mystore\",\n \"name\": \"Company XPTO\",\n \"documentType\": \"CNPJ\",\n \"document\": \"05314972000174\",\n \"role\": \"marketplace\",\n \"chargeProcessingFee\": true,\n \"chargebackLiable\": true,\n \"amount\": 3.2\n },\n {\n \"id\": \"sellerA\",\n \"name\": \"Company ABC\",\n \"documentType\": \"CNPJ\",\n \"document\": \"24830098000172\",\n \"role\": \"seller\",\n \"amount\": 16.8,\n \"comissionAmount\": 3\n }\n ],\n \"sandboxMode\": false,\n \"merchantSettings\": [\n {\n \"name\": \"Public Merchant ID Test.\",\n \"value\": \"1\"\n }\n ],\n \"connectorMetadata\": [\n {\n \"name\": \"MetadataName\",\n \"value\": \"MetadataValue\"\n }\n ]\n}", "options": { "raw": { + "headerFamily": "json", "language": "json" } } @@ -1718,7 +4402,7 @@ "_": { "postman_previewlanguage": "json" }, - "id": "b25394e4-b05a-4c6f-a88f-173693fa6267", + "id": "3b2e56ef-0f0b-4686-9705-d230868ace69", "name": "Not Implemented", "originalRequest": { "url": { @@ -1731,37 +4415,9 @@ "{{baseUrl}}" ], "query": [], - "variable": [ - { - "disabled": false, - "description": { - "content": "(Required) VTEX payment identifier.", - "type": "text/plain" - }, - "type": "any", - "value": "F5C1A4E20D3B4E07B7E871F5B5BC9F91", - "key": "paymentId" - }, - { - "description": { - "content": "Payment provider endpoint URL.", - "type": "text/plain" - }, - "type": "any", - "value": "{{providerApiEndpoint}}", - "key": "providerApiEndpoint" - } - ] + "variable": [] }, "header": [ - { - "description": { - "content": "Added as a part of security scheme: apikey", - "type": "text/plain" - }, - "key": "X-VTEX-API-AppKey", - "value": "" - }, { "disabled": false, "description": { @@ -1798,17 +4454,30 @@ "key": "Accept", "value": "application/json" }, + { + "key": "Content-Type", + "value": "application/json" + }, { "key": "Accept", "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "X-VTEX-API-AppKey", + "value": "" } ], "method": "POST", "body": { "mode": "raw", - "raw": "{\n \"requestId\": \"sunt fugiat\",\n \"settleId\": \"laboris commodo aliqua\",\n \"paymentId\": \"ad nulla voluptate dolor\",\n \"tid\": \"exercitation ad esse\",\n \"value\": 18114911.777967885,\n \"transactionId\": \"fugiat elit id consequat Ut\",\n \"authorizationId\": \"occaecat\",\n \"nsu\": \"amet et\",\n \"recipients\": [\n {\n \"id\": \"in Duis esse\",\n \"name\": \"irure\",\n \"documentType\": \"nulla culpa in in consequat\",\n \"document\": \"amet\",\n \"role\": \"in mollit ullamco laborum\",\n \"amount\": 91989930.83465585,\n \"chargeProcessingFee\": true,\n \"chargebackLiable\": true,\n \"comissionAmount\": 95316366.71246839\n },\n {\n \"id\": \"voluptate ipsum\",\n \"name\": \"Ut ullamco quis\",\n \"documentType\": \"nulla se\",\n \"document\": \"tem\",\n \"role\": \"non sint Dui\",\n \"amount\": -3660709.750245154,\n \"chargeProcessingFee\": false,\n \"chargebackLiable\": false,\n \"comissionAmount\": -70014134.35489333\n }\n ],\n \"sandboxMode\": true,\n \"merchantSettings\": [\n {\n \"name\": \"dolore magna sed\",\n \"value\": \"sed sit Lorem in\"\n },\n {\n \"name\": \"magna \",\n \"value\": \"tempor dolor\"\n }\n ],\n \"connectorMetadata\": [\n {\n \"name\": \"sit quis\",\n \"value\": \"anim cupidatat fugiat quis\"\n },\n {\n \"name\": \"in qui\",\n \"value\": \"ut\"\n }\n ]\n}", + "raw": "{\n \"requestId\": \"LA4E20D3B4E07B7E871F5B5BC9F91\",\n \"settleId\": \"Q5C1A4E20D3B4E07B7E871F5B5BC9F91\",\n \"paymentId\": \"F5C1A4E20D3B4E07B7E871F5B5BC9F91\",\n \"tid\": \"10022005181543584603\",\n \"authorizationId\": \"AUT123567\",\n \"nsu\": \"NSU987432\",\n \"value\": 20,\n \"transactionId\": \"D3AA1FC8372E430E8236649DB5EBD08E\",\n \"recipients\": [\n {\n \"id\": \"mystore\",\n \"name\": \"Company XPTO\",\n \"documentType\": \"CNPJ\",\n \"document\": \"05314972000174\",\n \"role\": \"marketplace\",\n \"chargeProcessingFee\": true,\n \"chargebackLiable\": true,\n \"amount\": 3.2\n },\n {\n \"id\": \"sellerA\",\n \"name\": \"Company ABC\",\n \"documentType\": \"CNPJ\",\n \"document\": \"24830098000172\",\n \"role\": \"seller\",\n \"amount\": 16.8,\n \"comissionAmount\": 3\n }\n ],\n \"sandboxMode\": false,\n \"merchantSettings\": [\n {\n \"name\": \"Public Merchant ID Test.\",\n \"value\": \"1\"\n }\n ],\n \"connectorMetadata\": [\n {\n \"name\": \"MetadataName\",\n \"value\": \"MetadataValue\"\n }\n ]\n}", "options": { "raw": { + "headerFamily": "json", "language": "json" } } @@ -1830,7 +4499,7 @@ { "listen": "test", "script": { - "id": "fe653551-d631-4466-a73b-8b3314013352", + "id": "ef925413-d05f-4830-bf54-e6cdb22a066d", "type": "text/javascript", "exec": [ "// Validate status 2xx \npm.test(\"[POST]::/payments/:paymentId/refunds - Status code is 2xx\", function () {\n pm.response.to.be.success;\n});\n", @@ -1846,7 +4515,7 @@ } }, { - "id": "a3e90cda-827f-49e4-a629-616f04ba1cf3", + "id": "34e1db4a-690a-4238-87b4-f5367b9152d9", "name": "Inbound request (BETA)", "request": { "name": "Inbound request (BETA)", @@ -1885,15 +4554,6 @@ "type": "any", "value": "hook", "key": "action" - }, - { - "description": { - "content": "Payment provider endpoint URL.", - "type": "text/plain" - }, - "type": "any", - "value": "{{providerApiEndpoint}}", - "key": "providerApiEndpoint" } ] }, @@ -1933,6 +4593,14 @@ }, "key": "Accept", "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" } ], "method": "POST", @@ -1941,6 +4609,7 @@ "raw": "{\n \"requestId\": \"LA4E20D3B4E07B7E871F5B5BC9F91\",\n \"transactionId\": \"D3AA1FC8372E430E8236649DB5EBD08E\",\n \"paymentId\": \"F5C1A4E20D3B4E07B7E871F5B5BC9F91\",\n \"authorizationId\": \"AUT123567\",\n \"tid\": \"10022005181543584603\",\n \"nsu\": \"NSU987432\",\n \"requestData\": {\n \"body\": \"{{originalRequestBody}}\"\n },\n \"merchantSettings\": [\n {\n \"name\": \"Public Merchant ID Test.\",\n \"value\": \"1\"\n },\n {\n \"name\": \"Public Merchant ID Test.\",\n \"value\": \"1\"\n }\n ],\n \"connectorMetadata\": [\n {\n \"name\": \"MetadataName\",\n \"value\": \"MetadataValue\"\n },\n {\n \"name\": \"MetadataName\",\n \"value\": \"MetadataValue\"\n }\n ]\n}", "options": { "raw": { + "headerFamily": "json", "language": "json" } } @@ -1971,7 +4640,7 @@ "_": { "postman_previewlanguage": "json" }, - "id": "b76bbf39-7f74-4bc8-9bb8-09bbc72fe9ea", + "id": "e1684f0c-62fd-43ea-af72-b5fc49585bba", "name": "OK", "originalRequest": { "url": { @@ -1985,47 +4654,9 @@ "{{baseUrl}}" ], "query": [], - "variable": [ - { - "disabled": false, - "description": { - "content": "(Required) VTEX payment identifier.", - "type": "text/plain" - }, - "type": "any", - "value": "F5C1A4E20D3B4E07B7E871F5B5BC9F91", - "key": "paymentId" - }, - { - "disabled": false, - "description": { - "content": "(Required) Describes the type of action that will be performed on the route (e.g. hook, enrollment, among others). It is the same `:action` information used in the `inboundRequestsUrl` provided in the [Create Payment](https://developers.vtex.com/docs/api-reference/payment-provider-protocol#post-/payments?endpoint=post-/payments) endpoint payload.", - "type": "text/plain" - }, - "type": "any", - "value": "hook", - "key": "action" - }, - { - "description": { - "content": "Payment provider endpoint URL.", - "type": "text/plain" - }, - "type": "any", - "value": "{{providerApiEndpoint}}", - "key": "providerApiEndpoint" - } - ] + "variable": [] }, "header": [ - { - "description": { - "content": "Added as a part of security scheme: apikey", - "type": "text/plain" - }, - "key": "X-VTEX-API-AppKey", - "value": "" - }, { "disabled": false, "description": { @@ -2062,9 +4693,21 @@ "key": "Accept", "value": "application/json" }, + { + "key": "Content-Type", + "value": "application/json" + }, { "key": "Accept", "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "X-VTEX-API-AppKey", + "value": "" } ], "method": "POST", @@ -2073,6 +4716,7 @@ "raw": "{\n \"requestId\": \"LA4E20D3B4E07B7E871F5B5BC9F91\",\n \"transactionId\": \"D3AA1FC8372E430E8236649DB5EBD08E\",\n \"paymentId\": \"F5C1A4E20D3B4E07B7E871F5B5BC9F91\",\n \"authorizationId\": \"AUT123567\",\n \"tid\": \"10022005181543584603\",\n \"nsu\": \"NSU987432\",\n \"requestData\": {\n \"body\": \"{{originalRequestBody}}\"\n },\n \"merchantSettings\": [\n {\n \"name\": \"Public Merchant ID Test.\",\n \"value\": \"1\"\n },\n {\n \"name\": \"Public Merchant ID Test.\",\n \"value\": \"1\"\n }\n ],\n \"connectorMetadata\": [\n {\n \"name\": \"MetadataName\",\n \"value\": \"MetadataValue\"\n },\n {\n \"name\": \"MetadataName\",\n \"value\": \"MetadataValue\"\n }\n ]\n}", "options": { "raw": { + "headerFamily": "json", "language": "json" } } @@ -2094,13 +4738,13 @@ { "listen": "test", "script": { - "id": "c01770c0-30db-4c0c-bf61-a3a1505babc8", + "id": "873be53d-42bc-40e1-8ac8-ee49ec205965", "type": "text/javascript", "exec": [ "// Validate status 2xx \npm.test(\"[POST]::/payments/:paymentId/inbound/:action - Status code is 2xx\", function () {\n pm.response.to.be.success;\n});\n", "// Validate if response header has matching content-type\npm.test(\"[POST]::/payments/:paymentId/inbound/:action - Content-Type is application/json\", function () {\n pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(\"application/json\");\n});\n", "// Validate if response has JSON Body \npm.test(\"[POST]::/payments/:paymentId/inbound/:action - Response has JSON Body\", function () {\n pm.response.to.have.jsonBody();\n});\n", - "// Response Validation\nconst schema = {\"required\":[\"requestId\",\"paymentId\",\"responseData\"],\"type\":\"object\",\"description\":\"Inbound Request response body information.\",\"properties\":{\"requestId\":{\"type\":\"string\",\"description\":\"The same `requestId` sent in the request.\"},\"paymentId\":{\"type\":\"string\",\"description\":\"The same `paymentId` sent in the request.\"},\"code\":{\"type\":\"string\",\"description\":\"Provider's operation/error code to be logged.\"},\"message\":{\"type\":\"string\",\"description\":\"Provider's operation/error message to be logged.\"},\"responseData\":{\"required\":[\"statusCode\",\"contentType\",\"content\"],\"type\":\"object\",\"description\":\"Response data information.\",\"properties\":{\"statusCode\":{\"type\":\"integer\",\"description\":\"Your desired status code.\"},\"contentType\":{\"type\":\"string\",\"description\":\"Your desired content-type.\"},\"content\":{\"type\":\"string\",\"description\":\"Your desired content body.\"}}},\"connectorMetadata\":{\"type\":\"array\",\"description\":\"Array containing metadata fields sent from the provider to the payment gateway.\",\"items\":{\"type\":\"object\",\"description\":\"Metadata fields information.\",\"required\":[\"name\",\"value\"],\"properties\":{\"name\":{\"type\":\"string\",\"description\":\"The name of the metadata to be stored in the gateway (limited to 20 characters).\",\"example\":\"MetadataName\"},\"value\":{\"type\":\"string\",\"description\":\"The value of the metadata stored (limited to 200 characters).\",\"example\":\"MetadataValue\"}}}}}}\n\n// Validate if response matches JSON schema \npm.test(\"[POST]::/payments/:paymentId/inbound/:action - Schema is valid\", function() {\n pm.response.to.have.jsonSchema(schema,{unknownFormats: [\"int32\", \"int64\", \"float\", \"double\"]});\n});\n" + "// Response Validation\nconst schema = {\"required\":[\"requestId\",\"paymentId\",\"responseData\"],\"type\":\"object\",\"description\":\"Inbound Request response body information.\",\"properties\":{\"requestId\":{\"type\":\"string\",\"description\":\"The same `requestId` sent in the request.\"},\"paymentId\":{\"type\":\"string\",\"description\":\"The same `paymentId` sent in the request.\"},\"code\":{\"type\":\"string\",\"description\":\"Provider's operation/error code to be logged.\"},\"message\":{\"type\":\"string\",\"description\":\"Provider's operation/error message to be logged.\"},\"responseData\":{\"required\":[\"statusCode\",\"contentType\",\"content\"],\"type\":\"object\",\"description\":\"Response data information.\",\"properties\":{\"statusCode\":{\"type\":\"integer\",\"description\":\"Your desired status code.\"},\"contentType\":{\"type\":\"string\",\"description\":\"Your desired content-type.\"},\"content\":{\"type\":\"string\",\"description\":\"Your desired content body.\"}}},\"connectorMetadata\":{\"type\":\"array\",\"description\":\"Array containing metadata fields sent from the provider to the payment gateway.\",\"items\":{\"type\":\"object\",\"description\":\"Metadata fields information.\",\"required\":[\"name\",\"value\"],\"properties\":{\"name\":{\"type\":\"string\",\"description\":\"The name of the metadata to be stored in the gateway (limited to 20 characters).\"},\"value\":{\"type\":\"string\",\"description\":\"The value of the metadata stored (limited to 200 characters).\"}}}}}}\n\n// Validate if response matches JSON schema \npm.test(\"[POST]::/payments/:paymentId/inbound/:action - Schema is valid\", function() {\n pm.response.to.have.jsonSchema(schema,{unknownFormats: [\"int32\", \"int64\", \"float\", \"double\"]});\n});\n" ] } } @@ -2113,7 +4757,7 @@ "event": [] }, { - "id": "10bbf2d6-0c45-4012-862e-7cc674dffded", + "id": "fa778627-d809-4854-859e-c58aa0449c6f", "name": "Configuration Flow", "description": { "content": "", @@ -2121,7 +4765,7 @@ }, "item": [ { - "id": "42eb4996-5893-4e09-bf28-9f1722328cce", + "id": "c04cd3ea-516e-4cd0-b32b-c07ab13cfd79", "name": "Create authorization token", "request": { "name": "Create authorization token", @@ -2138,17 +4782,7 @@ "{{baseUrl}}" ], "query": [], - "variable": [ - { - "description": { - "content": "Payment provider endpoint URL.", - "type": "text/plain" - }, - "type": "any", - "value": "{{providerApiEndpoint}}", - "key": "providerApiEndpoint" - } - ] + "variable": [] }, "header": [ { @@ -2186,6 +4820,14 @@ }, "key": "Accept", "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" } ], "method": "POST", @@ -2194,6 +4836,7 @@ "raw": "{\n \"applicationId\": \"vtex\",\n \"returnUrl\": \"https://admin.mystore.example.com/provider-return?authorizationCode=\"\n}", "options": { "raw": { + "headerFamily": "json", "language": "json" } } @@ -2224,7 +4867,7 @@ "_": { "postman_previewlanguage": "json" }, - "id": "993847c4-7291-46a5-bee4-6739f646fc03", + "id": "7b953bd5-b3cf-4f17-827e-b195def4229c", "name": "OK", "originalRequest": { "url": { @@ -2236,27 +4879,9 @@ "{{baseUrl}}" ], "query": [], - "variable": [ - { - "description": { - "content": "Payment provider endpoint URL.", - "type": "text/plain" - }, - "type": "any", - "value": "{{providerApiEndpoint}}", - "key": "providerApiEndpoint" - } - ] + "variable": [] }, "header": [ - { - "description": { - "content": "Added as a part of security scheme: apikey", - "type": "text/plain" - }, - "key": "X-VTEX-API-AppKey", - "value": "" - }, { "disabled": false, "description": { @@ -2293,9 +4918,21 @@ "key": "Accept", "value": "application/json" }, + { + "key": "Content-Type", + "value": "application/json" + }, { "key": "Accept", "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "X-VTEX-API-AppKey", + "value": "" } ], "method": "POST", @@ -2304,6 +4941,7 @@ "raw": "{\n \"applicationId\": \"vtex\",\n \"returnUrl\": \"https://admin.mystore.example.com/provider-return?authorizationCode=\"\n}", "options": { "raw": { + "headerFamily": "json", "language": "json" } } @@ -2325,7 +4963,7 @@ { "listen": "test", "script": { - "id": "4399c559-7bcf-4cf2-9f0e-aa82fb72398e", + "id": "8f4d7345-dcaa-4322-b784-989774159e0a", "type": "text/javascript", "exec": [ "// Validate status 2xx \npm.test(\"[POST]::/authorization/token - Status code is 2xx\", function () {\n pm.response.to.be.success;\n});\n", @@ -2341,7 +4979,7 @@ } }, { - "id": "383101e4-ba40-4ff4-b374-c0bd07b9a9e4", + "id": "210269e8-3c76-4680-9032-6bffe4d59773", "name": "Provider authentication", "request": { "name": "Provider authentication", @@ -2377,17 +5015,7 @@ "value": "{{token}}" } ], - "variable": [ - { - "description": { - "content": "Payment provider endpoint URL.", - "type": "text/plain" - }, - "type": "any", - "value": "{{providerApiEndpoint}}", - "key": "providerApiEndpoint" - } - ] + "variable": [] }, "header": [ { @@ -2428,6 +5056,7 @@ } ], "method": "GET", + "body": {}, "auth": { "type": "apikey", "apikey": [ @@ -2454,7 +5083,7 @@ "_": { "postman_previewlanguage": "text" }, - "id": "5f4194dc-6b87-4ae3-82fa-3695f696e4bd", + "id": "5a1e1ae1-a8ef-4bf1-ace0-eca16d29ca69", "name": "OK. This endpoint does not return any data in the response body.", "originalRequest": { "url": { @@ -2467,35 +5096,27 @@ ], "query": [ { + "disabled": false, + "description": { + "content": "(Required) VTEX application identifier.", + "type": "text/plain" + }, "key": "applicationId", "value": "vtex" }, { - "key": "token", - "value": "{{token}}" - } - ], - "variable": [ - { + "disabled": false, "description": { - "content": "Payment provider endpoint URL.", + "content": "(Required) You must generate a token that will be used to identify the same context when we redirect the merchant to your application.", "type": "text/plain" }, - "type": "any", - "value": "{{providerApiEndpoint}}", - "key": "providerApiEndpoint" + "key": "token", + "value": "{{token}}" } - ] + ], + "variable": [] }, "header": [ - { - "description": { - "content": "Added as a part of security scheme: apikey", - "type": "text/plain" - }, - "key": "X-VTEX-API-AppKey", - "value": "" - }, { "disabled": false, "description": { @@ -2531,6 +5152,14 @@ }, "key": "Accept", "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "X-VTEX-API-AppKey", + "value": "" } ], "method": "GET", @@ -2538,13 +5167,7 @@ }, "status": "OK", "code": 200, - "header": [ - { - "key": "Content-Type", - "value": "text/plain" - } - ], - "body": "", + "header": [], "cookie": [] } ], @@ -2552,7 +5175,7 @@ { "listen": "test", "script": { - "id": "0dbc4f4d-0d3c-4448-85b9-3c3a8313a869", + "id": "8bf305b8-38b5-40b9-93af-976f3cfccc92", "type": "text/javascript", "exec": [ "// Validate status 2xx \npm.test(\"[GET]::/authorization/redirect - Status code is 2xx\", function () {\n pm.response.to.be.success;\n});\n" @@ -2565,7 +5188,7 @@ } }, { - "id": "5efc59be-1e0f-4749-9657-371f9b523fed", + "id": "d9615386-0574-4589-a131-d6f419652999", "name": "Get credentials", "request": { "name": "Get credentials", @@ -2601,17 +5224,7 @@ "value": "{{authorizationCode}}" } ], - "variable": [ - { - "description": { - "content": "Payment provider endpoint URL.", - "type": "text/plain" - }, - "type": "any", - "value": "{{providerApiEndpoint}}", - "key": "providerApiEndpoint" - } - ] + "variable": [] }, "header": [ { @@ -2649,9 +5262,14 @@ }, "key": "Accept", "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" } ], "method": "GET", + "body": {}, "auth": { "type": "apikey", "apikey": [ @@ -2678,7 +5296,7 @@ "_": { "postman_previewlanguage": "json" }, - "id": "297dbc02-f9f7-4740-8926-88fb87dc2542", + "id": "168f6bd1-4c9e-41ef-b33c-708ddc2ccd80", "name": "OK", "originalRequest": { "url": { @@ -2691,35 +5309,27 @@ ], "query": [ { + "disabled": false, + "description": { + "content": "(Required) VTEX application identifier.", + "type": "text/plain" + }, "key": "applicationId", "value": "vtex" }, { - "key": "authorizationCode", - "value": "{{authorizationCode}}" - } - ], - "variable": [ - { + "disabled": false, "description": { - "content": "Payment provider endpoint URL.", + "content": "(Required) Code generate by affiliation that will be used to identify the merchant authorization.", "type": "text/plain" }, - "type": "any", - "value": "{{providerApiEndpoint}}", - "key": "providerApiEndpoint" + "key": "authorizationCode", + "value": "{{authorizationCode}}" } - ] + ], + "variable": [] }, "header": [ - { - "description": { - "content": "Added as a part of security scheme: apikey", - "type": "text/plain" - }, - "key": "X-VTEX-API-AppKey", - "value": "" - }, { "disabled": false, "description": { @@ -2759,6 +5369,14 @@ { "key": "Accept", "value": "application/json" + }, + { + "description": { + "content": "Added as a part of security scheme: apikey", + "type": "text/plain" + }, + "key": "X-VTEX-API-AppKey", + "value": "" } ], "method": "GET", @@ -2780,7 +5398,7 @@ { "listen": "test", "script": { - "id": "f9a3ce96-9ded-4821-82ca-a915c70bcde9", + "id": "7f860d0b-3ad1-428b-83bc-4345f2cb0ea8", "type": "text/javascript", "exec": [ "// Validate status 2xx \npm.test(\"[GET]::/authorization/credentials - Status code is 2xx\", function () {\n pm.response.to.be.success;\n});\n", @@ -2802,22 +5420,18 @@ "event": [], "variable": [ { - "description": { - "content": "Payment provider endpoint URL.", - "type": "text/plain" - }, "type": "any", "value": "{providerApiEndpoint}", "key": "providerApiEndpoint" }, { - "type": "string", + "type": "any", "value": "https://{{providerApiEndpoint}}", "key": "baseUrl" } ], "info": { - "_postman_id": "5374ce81-2181-44c2-8edf-038dd509f7a1", + "_postman_id": "1322932f-66f1-4c40-8ae4-7321afd1774b", "name": "Payment Provider Protocol API", "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", "description": { diff --git a/VTEX - Marketplace APIs - Suggestions.json b/VTEX - Marketplace APIs - Suggestions.json index bec1b2d2c..98effad98 100644 --- a/VTEX - Marketplace APIs - Suggestions.json +++ b/VTEX - Marketplace APIs - Suggestions.json @@ -22,7 +22,7 @@ "/suggestions/configuration/autoapproval/toggle": { "get": { "tags": [ - "SKU Approval Settings" + "SKU approval settings" ], "summary": "Get autoApprove status in account settings", "description": "This endpoint can be used to check whether the autoapprove setting is active or not, for a specific seller. \n\nIf the response is `true`, the autoapprove setting is active. If the response is `false`, it is inactive.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https:\/\/developers.vtex.com\/docs\/guides\/authentication-overview#application-keys) must have at least one of the appropriate [License Manager resources](https:\/\/help.vtex.com\/en\/tutorial\/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| ---------- | ------------ | ------------ |\r\n| Channels | UI resources | **Save suggestion rules** |\r\n| Suggestion| Suggestion resources | **Main access** |\r\n\r\nThere are no applicable [predefined roles](https:\/\/help.vtex.com\/en\/tutorial\/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https:\/\/help.vtex.com\/en\/tutorial\/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https:\/\/developers.vtex.com\/docs\/guides\/authentication-overview#machine-authentication).\r\n\r\n>\u2757 To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https:\/\/help.vtex.com\/en\/tutorial\/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", @@ -97,7 +97,7 @@ }, "put": { "tags": [ - "SKU Approval Settings" + "SKU approval settings" ], "summary": "Activate autoApprove in marketplace's account", "description": "This endpoint enables the autoapprove rule to a marketplace's whole Received SKUs module. Once enabling the rule, received SKUs will be automatically approved on your store, regardless of the seller. \n\n For the autoapprove rule to work as expected, the approval [Matcher score](https://help.vtex.com/en/tutorial/entendendo-a-pontuacao-do-vtex-matcher--tutorials_424) should be set up as 80 (default value), but you can configure a different number through the field `Score` in [Save Account's Approval Settings](https://developers.vtex.com/vtex-rest-api/reference/saveaccountconfig).\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https:\/\/developers.vtex.com\/docs\/guides\/authentication-overview#application-keys) must have at least one of the appropriate [License Manager resources](https:\/\/help.vtex.com\/en\/tutorial\/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| ---------- | ------------ | ------------ |\r\n| Channels | UI resources | **Save suggestion rules** |\r\n| Suggestion| Suggestion resources | **Main access** |\r\n\r\nThere are no applicable [predefined roles](https:\/\/help.vtex.com\/en\/tutorial\/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https:\/\/help.vtex.com\/en\/tutorial\/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https:\/\/developers.vtex.com\/docs\/guides\/authentication-overview#machine-authentication).\r\n\r\n>\u2757 To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https:\/\/help.vtex.com\/en\/tutorial\/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", @@ -178,7 +178,7 @@ "/suggestions/configuration": { "get": { "tags": [ - "SKU Approval Settings" + "SKU approval settings" ], "summary": "Get account's approval settings", "description": "This endpoint retrieves the current approval settings of a marketplace's Received SKUs module. Its response includes: \n\n- `Score`: Matcher scores for approving and rejecting SKUs received from sellers. \n\n- `Matchers`: All Matchers configured on the marketplace, and their respective details. \n\n- `SpecificationsMapping`: Mapping of product and SKU specifications, per seller. \n\n- `MatchFlux`: This field determines the type of approval configuration applied to SKUs received from a seller. \n\nThe possible values include: \n\n-`default`, where the Matcher reviews the SKU, and approves it based on its score. \n\n-`manual`, for manual approvals through the Received SKU UI, or Match API. \n\n-`autoApprove`, for every SKU received from a given seller to be approved automatically, regardless of their Matcher Score.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https:\/\/developers.vtex.com\/docs\/guides\/authentication-overview#application-keys) must have at least one of the appropriate [License Manager resources](https:\/\/help.vtex.com\/en\/tutorial\/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| ---------- | ------------ | ------------ |\r\n| Channels | UI resources | **Save suggestion rules** |\r\n| Suggestion| Suggestion resources | **Main access** |\r\n\r\nThere are no applicable [predefined roles](https:\/\/help.vtex.com\/en\/tutorial\/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https:\/\/help.vtex.com\/en\/tutorial\/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https:\/\/developers.vtex.com\/docs\/guides\/authentication-overview#machine-authentication).\r\n\r\n>\u2757 To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https:\/\/help.vtex.com\/en\/tutorial\/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", @@ -316,7 +316,7 @@ }, "put": { "tags": [ - "SKU Approval Settings" + "SKU approval settings" ], "summary": "Save account's approval settings", "description": "Marketplaces use this endpoint to create or update approval settings on their Received SKUs module. \n\nThe request includes all the details necessary to implement the chosen approval settings.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https:\/\/developers.vtex.com\/docs\/guides\/authentication-overview#application-keys) must have at least one of the appropriate [License Manager resources](https:\/\/help.vtex.com\/en\/tutorial\/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| ---------- | ------------ | ------------ |\r\n| Channels | UI resources | **Save suggestion rules** |\r\n| Suggestion| Suggestion resources | **Main access** |\r\n\r\nThere are no applicable [predefined roles](https:\/\/help.vtex.com\/en\/tutorial\/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https:\/\/help.vtex.com\/en\/tutorial\/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https:\/\/developers.vtex.com\/docs\/guides\/authentication-overview#machine-authentication).\r\n\r\n>\u2757 To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https:\/\/help.vtex.com\/en\/tutorial\/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", @@ -416,7 +416,7 @@ "/suggestions/configuration/account/config": { "get": { "tags": [ - "SKU Approval Settings" + "SKU approval settings" ], "summary": "Get account's matcher settings", "description": "This endpoint will be used by the marketplace to query the matcher's current approval settings on their incoming SKUs module. If the account has no matcher configured, the response will be `404 Not Found`. \n\nFor account approval configuration information, with response including specification information, see [Get Account Approval Settings](https://developers.vtex.com/docs/api-reference/marketplace-apis-suggestions#get-/suggestions/configuration) terminal. \n\nThe [VTEX matcher](https://help.vtex.com/pt/tutorial/entendendo-a-punctuacao-do-vtex-matcher--tutorials_424) is a tool used by marketplaces to evaluate SKUs corresponding to information from an advertisement of the seller, with those of items already present in the marketplace catalog.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https:\/\/developers.vtex.com\/docs\/guides\/authentication-overview#application-keys) must have at least one of the appropriate [License Manager resources](https:\/\/help.vtex.com\/en\/tutorial\/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| ---------- | ------------ | ------------ |\r\n| Channels | UI resources | **Save suggestion rules** |\r\n| Suggestion| Suggestion resources | **Main access** |\r\n\r\nThere are no applicable [predefined roles](https:\/\/help.vtex.com\/en\/tutorial\/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https:\/\/help.vtex.com\/en\/tutorial\/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https:\/\/developers.vtex.com\/docs\/guides\/authentication-overview#machine-authentication).\r\n\r\n>\u2757 To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https:\/\/help.vtex.com\/en\/tutorial\/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", @@ -495,7 +495,7 @@ "/suggestions/configuration/seller/{sellerId}": { "get": { "tags": [ - "SKU Approval Settings" + "SKU approval settings" ], "summary": "Get seller's approval settings", "description": "This endpoint retrieves the current Received SKUs approval settings applied to a specific seller. Its response includes: \n\n- `sellerId`: A string that identifies the seller in the marketplace. \n\n- `accountId`: Marketplace’s account ID. \n\n- `accountName`: Marketplace’s account name. \n\n- `mapping`: Mapping of SKU and product Specifications. \n\n- `matchFlux`: This field determines the type of approval configuration applied to SKUs received from a seller. \n\nThe possible values include: \n\n-`default`, where the Matcher reviews the SKU, and approves it based on its score. \n\n-`manual`, for manual approvals through the Received SKU UI and Match API. \n\n-`autoApprove`, for every SKU received from a given seller to be approved automatically, regardless of the Matcher Score.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https:\/\/developers.vtex.com\/docs\/guides\/authentication-overview#application-keys) must have at least one of the appropriate [License Manager resources](https:\/\/help.vtex.com\/en\/tutorial\/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| ---------- | ------------ | ------------ |\r\n| Channels | UI resources | **Save suggestion rules** |\r\n| Suggestion| Suggestion resources | **Main access** |\r\n|Mapper| Suggestion resources| **Mapper**|\r\n\r\nThere are no applicable [predefined roles](https:\/\/help.vtex.com\/en\/tutorial\/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https:\/\/help.vtex.com\/en\/tutorial\/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https:\/\/developers.vtex.com\/docs\/guides\/authentication-overview#machine-authentication).\r\n\r\n>\u2757 To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https:\/\/help.vtex.com\/en\/tutorial\/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", @@ -575,7 +575,7 @@ }, "put": { "tags": [ - "SKU Approval Settings" + "SKU approval settings" ], "summary": "Save seller's approval settings", "description": "Marketplaces use this endpoint to create or update approval settings to a specific seller, on the Received SKUs module. \n\nThe request includes all the details necessary to implement the chosen approval settings.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https:\/\/developers.vtex.com\/docs\/guides\/authentication-overview#application-keys) must have at least one of the appropriate [License Manager resources](https:\/\/help.vtex.com\/en\/tutorial\/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| ---------- | ------------ | ------------ |\r\n| Channels | UI resources | **Save suggestion rules** |\r\n| Suggestion| Suggestion resources | **Main access** |\r\n\r\nThere are no applicable [predefined roles](https:\/\/help.vtex.com\/en\/tutorial\/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https:\/\/help.vtex.com\/en\/tutorial\/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https:\/\/developers.vtex.com\/docs\/guides\/authentication-overview#machine-authentication).\r\n\r\n>\u2757 To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https:\/\/help.vtex.com\/en\/tutorial\/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", @@ -653,7 +653,7 @@ "/suggestions/configuration/autoapproval/toggle/seller/{sellerId}": { "put": { "tags": [ - "SKU Approval Settings" + "SKU approval settings" ], "summary": "Activate autoApprove setting for a seller", "description": "This endpoint enables the auto approve setting to received SKUs from a specific seller. Be aware that once enabling the rule through this request, all received SKUs from that seller will be automatically approved on your store, regardless of the Matcher Score.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https:\/\/developers.vtex.com\/docs\/guides\/authentication-overview#application-keys) must have at least one of the appropriate [License Manager resources](https:\/\/help.vtex.com\/en\/tutorial\/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| ---------- | ------------ | ------------ |\r\n| Channels | UI resources | **Save suggestion rules** |\r\n| Suggestion| Suggestion resources | **Main access** |\r\n\r\nThere are no applicable [predefined roles](https:\/\/help.vtex.com\/en\/tutorial\/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https:\/\/help.vtex.com\/en\/tutorial\/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https:\/\/developers.vtex.com\/docs\/guides\/authentication-overview#machine-authentication).\r\n\r\n>\u2757 To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https:\/\/help.vtex.com\/en\/tutorial\/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", @@ -729,7 +729,7 @@ "/suggestions": { "get": { "tags": [ - "Get Suggestions" + "Get suggestions" ], "summary": "Get all SKU suggestions", "description": "This endpoint retrieves a list of all SKUs sent by the seller for the marketplace's approval. Marketplace operators should use this endpoint whenever they want to check the full list of received SKUs and their information. \n\nNote that all the information sent by the seller will be in the [content] object. All remaining information in this endpoint's response is given by the Matcher. \n\nMatcher rates received SKUs by correlating the data sent by sellers, to existing fields in the marketplace. The calculation of these scores determines whether the product has been: \n\n`Approved`: Score equal to or greater than 80 points. \n\n`Pending`: From 31 to 79 points.\n\n`Denied`: From 0 to 30 points. \n\nNote that if the autoApprove setting is enabled, the SKUs will be approved, regardless of the Score.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https:\/\/developers.vtex.com\/docs\/guides\/authentication-overview#application-keys) must have at least one of the appropriate [License Manager resources](https:\/\/help.vtex.com\/en\/tutorial\/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| ---------- | ------------ | ------------ |\r\n| Channels | UI resources | **Save suggestion rules** |\r\n| Suggestion| Suggestion resources | **Main access** |\r\n\r\nThere are no applicable [predefined roles](https:\/\/help.vtex.com\/en\/tutorial\/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https:\/\/help.vtex.com\/en\/tutorial\/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https:\/\/developers.vtex.com\/docs\/guides\/authentication-overview#machine-authentication).\r\n\r\n>\u2757 To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https:\/\/help.vtex.com\/en\/tutorial\/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", @@ -880,7 +880,7 @@ "/suggestions/{sellerId}/{sellerSkuId}": { "put": { "tags": [ - "Manage Suggestions" + "Manage suggestions" ], "summary": "Send SKU suggestion", "description": "This request is used by the seller when it wants to suggest that one of their SKUs is sold in the marketplace.\n\nBefore using this request, the seller should always use the [Change Notification](https://developers.vtex.com/vtex-rest-api/reference/catalog-api-get-seller-sku-notification) request in order to check if the SKU already exists in the marketplace. If it doesn't, then this is the next call in the SKU integration flow.\n\nIn the Send Suggestion request, the seller must send information about the SKU, such as the product and SKU name, the seller ID, and the image URL. All parameters are explained below.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https:\/\/developers.vtex.com\/docs\/guides\/authentication-overview#application-keys) must have at least one of the appropriate [License Manager resources](https:\/\/help.vtex.com\/en\/tutorial\/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| ---------- | ------------ | ------------ |\r\n| Channels | UI resources | **Send marketplace suggestion** |\r\n\r\nThere are no applicable [predefined roles](https:\/\/help.vtex.com\/en\/tutorial\/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https:\/\/help.vtex.com\/en\/tutorial\/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https:\/\/developers.vtex.com\/docs\/guides\/authentication-overview#machine-authentication).\r\n\r\n>\u2757 To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https:\/\/help.vtex.com\/en\/tutorial\/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", @@ -1012,7 +1012,7 @@ }, "get": { "tags": [ - "Get Suggestions" + "Get suggestions" ], "summary": "Get SKU suggestion by ID", "description": "This endpoint retrieves the data of a specific SKU sent by the seller, to the marketplace. Marketplaces or external matchers can call this endpoint when they want to check the information about a single SKU. \n\nNote that all the information sent by the seller will be in the [content] object. All remaining information in this endpoint's response is given by the Matcher. \n\nMatcher rates received SKUs by correlating the data sent by sellers, to existing fields in the marketplace. The calculation of these scores determines whether the product has been: \n\n`Approved`: score equal to or greater than 80 points. \n\n`Pending`: from 31 to 79 points.\n\n`Denied`: from 0 to 30 points. \n\nNote that if the autoApprove setting is enabled, the SKUs will be approved, regardless of the Score.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https:\/\/developers.vtex.com\/docs\/guides\/authentication-overview#application-keys) must have at least one of the appropriate [License Manager resources](https:\/\/help.vtex.com\/en\/tutorial\/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| ---------- | ------------ | ------------ |\r\n| Channels | UI resources | **Send marketplace suggestion** |\r\n| Channels | UI resources | **Save suggestion rules** |\r\n| Suggestion | Suggestion resources | **Main** |\r\n\r\n\r\nThere are no applicable [predefined roles](https:\/\/help.vtex.com\/en\/tutorial\/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https:\/\/help.vtex.com\/en\/tutorial\/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https:\/\/developers.vtex.com\/docs\/guides\/authentication-overview#machine-authentication).\r\n\r\n>\u2757 To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https:\/\/help.vtex.com\/en\/tutorial\/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", @@ -1083,7 +1083,7 @@ }, "delete": { "tags": [ - "Manage Suggestions" + "Manage suggestions" ], "summary": "Delete SKU suggestion", "description": "This endpoint deletes a chosen SKU suggestion. Only one SKU should be deleted per request. This action cannot be undone. A workaround to revert a deletion is to send the suggestion again, through the Send Suggestion API.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https:\/\/developers.vtex.com\/docs\/guides\/authentication-overview#application-keys) must have at least one of the appropriate [License Manager resources](https:\/\/help.vtex.com\/en\/tutorial\/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| ---------- | ------------ | ------------ |\r\n| Channels | UI resources | **Save suggestion rules** |\r\n| Suggestion | Suggestion resources | **Main** |\r\n\r\n\r\nThere are no applicable [predefined roles](https:\/\/help.vtex.com\/en\/tutorial\/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https:\/\/help.vtex.com\/en\/tutorial\/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https:\/\/developers.vtex.com\/docs\/guides\/authentication-overview#machine-authentication).\r\n\r\n>\u2757 To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https:\/\/help.vtex.com\/en\/tutorial\/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", @@ -1156,7 +1156,7 @@ "/suggestions/{sellerId}/{sellerskuid}/versions": { "get": { "tags": [ - "Get Versions" + "Get versions" ], "summary": "Get all versions", "description": "Whenever a SKU suggestion is updated or changed, a new version of the original one is created. All versions are logged, so you can search for previous our current states of SKU suggestions. \n\nThis endpoint retrieves the data of *all* previous and latest versions of a specific SKU suggestion, sent by the seller. Whenever a SKU is updated, it is important to map previous versions, to compare and identify changes. \n\nThe response's object [latestversion] provides the information of the most recent version of that SKU suggestion.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https:\/\/developers.vtex.com\/docs\/guides\/authentication-overview#application-keys) must have at least one of the appropriate [License Manager resources](https:\/\/help.vtex.com\/en\/tutorial\/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| ---------- | ------------ | ------------ |\r\n| Channels | UI resources | **Save suggestion rules** |\r\n| Suggestion | Suggestion resources | **Main** |\r\n\r\n\r\nThere are no applicable [predefined roles](https:\/\/help.vtex.com\/en\/tutorial\/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https:\/\/help.vtex.com\/en\/tutorial\/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https:\/\/developers.vtex.com\/docs\/guides\/authentication-overview#machine-authentication).\r\n\r\n>\u2757 To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https:\/\/help.vtex.com\/en\/tutorial\/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", @@ -1229,7 +1229,7 @@ "/suggestions/{sellerId}/{sellerskuid}/versions/{version}": { "get": { "tags": [ - "Get Versions" + "Get versions" ], "summary": "Get version by ID", "description": "Whenever a SKU suggestion is updated or changed, a new version of the original one is created. All versions are logged, so you can search for previous our current states of SKU suggestions. \n\n This endpoint retrieves a specific *version* of a chosen SKU sent by the seller. Add the Seller's ID, Seller's SKU ID, and version ID in the path to detail your search.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https:\/\/developers.vtex.com\/docs\/guides\/authentication-overview#application-keys) must have at least one of the appropriate [License Manager resources](https:\/\/help.vtex.com\/en\/tutorial\/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| ---------- | ------------ | ------------ |\r\n| Channels | UI resources | **Save suggestion rules** |\r\n| Suggestion | Suggestion resources | **Main** |\r\n\r\n\r\nThere are no applicable [predefined roles](https:\/\/help.vtex.com\/en\/tutorial\/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https:\/\/help.vtex.com\/en\/tutorial\/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https:\/\/developers.vtex.com\/docs\/guides\/authentication-overview#machine-authentication).\r\n\r\n>\u2757 To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https:\/\/help.vtex.com\/en\/tutorial\/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", @@ -1313,7 +1313,7 @@ "/suggestions/{sellerId}/{sellerskuid}/versions/{version}/matches/{matchid}": { "put": { "tags": [ - "Match Received SKUs" + "Match received SKUs" ], "summary": "Match received SKUs individually", "description": "All SKUs sent from a seller to a marketplace must be reviewed and matched. Actions in the matching process are added in the request body through the [matchType] object. Match type actions include: \n\n1. `newproduct`: Match the SKU as a new product. \n\n2. `itemMatch`: Associate the received SKU to an existing SKU. \n\n3. `productMatch`: Associate the received SKU to an existing product. \n\n4. `deny`: Deny the received SKU. \n\n5. `pending`: The received SKU requires attention. \n\n6. `incomplete`: The received SKU is lacking information to be matched. \n\n7. `insufficientScore`: The Score given by the Matcher to this received SKU doesn't qualify it to be matched. \n\nNote that if the autoApprove setting is enabled, the SKUs will be approved, regardless of the Score.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https:\/\/developers.vtex.com\/docs\/guides\/authentication-overview#application-keys) must have at least one of the appropriate [License Manager resources](https:\/\/help.vtex.com\/en\/tutorial\/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| ---------- | ------------ | ------------ |\r\n| Channels | UI resources | **Save suggestion rules** |\r\n| Suggestion | Suggestion resources | **Main** |\r\n\r\n\r\nThere are no applicable [predefined roles](https:\/\/help.vtex.com\/en\/tutorial\/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https:\/\/help.vtex.com\/en\/tutorial\/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https:\/\/developers.vtex.com\/docs\/guides\/authentication-overview#machine-authentication).\r\n\r\n>\u2757 To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https:\/\/help.vtex.com\/en\/tutorial\/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", @@ -1426,11 +1426,9 @@ "width": 1, "length": 1, "weight": 1, - "images": [ - { + "images": { "imagem1.jpg": "https://imageurl.example" - } - ], + }, "unitMultiplier": 1, "measurementUnit": "un", "specifications": { @@ -1469,7 +1467,7 @@ "/suggestions/matches/action/{actionName}": { "put": { "tags": [ - "Match Received SKUs" + "Match received SKUs" ], "summary": "Match multiple received SKUs", "description": "Allows a marketplace to bulk approve, deny, or associate up to 25 received SKUs from sellers.\n\nThrough the `actionName` attribute, you can select the operation you want to apply to the received SKU. Actions include: \n\n* `newproduct`: Match the SKU as a new product. \n\n* `skuassociation`: Associate the received SKU to an existing SKU. \n\n* `productassociation`: Associate the received SKU to an existing product. \n\n* `deny`: Deny the received SKU.\r\n\r\n## Permissions\r\n\r\nAny user or [application key](https:\/\/developers.vtex.com\/docs\/guides\/authentication-overview#application-keys) must have at least one of the appropriate [License Manager resources](https:\/\/help.vtex.com\/en\/tutorial\/license-manager-resources--3q6ztrC8YynQf6rdc6euk3) to be able to successfully run this request. Otherwise, they will receive a status code `403` error. These are the applicable resources for this endpoint:\r\n\r\n| **Product** | **Category** | **Resource** |\r\n| ---------- | ------------ | ------------ |\r\n| Channels | UI resources | **Save suggestion rules** |\r\n| Suggestion | Suggestion resources | **Main** |\r\n\r\n\r\nThere are no applicable [predefined roles](https:\/\/help.vtex.com\/en\/tutorial\/predefined-roles--jGDurZKJHvHJS13LnO7Dy) for this resource list. You must [create a custom role](https:\/\/help.vtex.com\/en\/tutorial\/roles--7HKK5Uau2H6wxE1rH5oRbc#creating-a-role) and add at least one of the resources above in order to use this endpoint.\r\n\r\nTo learn more about machine authentication at VTEX, see [Authentication overview](https:\/\/developers.vtex.com\/docs\/guides\/authentication-overview#machine-authentication).\r\n\r\n>\u2757 To prevent integrations from having excessive permissions, consider the [best practices for managing app keys](https:\/\/help.vtex.com\/en\/tutorial\/best-practices-application-keys--7b6nD1VMHa49aI5brlOvJm) when assigning License Manager roles to integrations.", @@ -2187,11 +2185,9 @@ "width": 1, "length": 1, "weight": 1, - "images": [ - { + "images":{ "image1.jpg": "imageurl.example" - } - ], + }, "unitMultiplier": 1, "measurementUnit": "un", "specifications": { @@ -2234,10 +2230,10 @@ "example": 1234567 }, "specifications": { - "type": "string", + "type": "object", "description": "This field is optional. Add here any product specifications or details.", - "example": "Paperback, 300 pages, Published in 2024.", - "nullable": true + "nullable": true, + "example":{} } } }, @@ -2337,11 +2333,9 @@ "width": 1, "length": 1, "weight": 1, - "images": [ - { + "images": { "imagem1.jpg": "imageurl.example" - } - ], + }, "unitMultiplier": 3, "measurementUnit": "un", "specifications": { @@ -2350,9 +2344,6 @@ } }, "Images": { - "type": "array", - "description": "Array containing objects that represent the SKU's images. Each object should have a key representing the image file name and a value containing the URL of the image. The image must be sent through `https` protocol, otherwise it will not be rendered in VTEX Admin.", - "items": { "type": "object", "description": "An object that represents a single SKU image with a filename as the key and the image URL as the value.", "properties": { @@ -2363,12 +2354,6 @@ } } }, - "example": [ - { - "imagem1.jpg": "https://imageurl.example" - } - ] - }, "Specifications": { "required": [ "Packaging" diff --git a/VTEX - Payment Provider Protocol.json b/VTEX - Payment Provider Protocol.json index cb4a5c23e..2d54035ef 100644 --- a/VTEX - Payment Provider Protocol.json +++ b/VTEX - Payment Provider Protocol.json @@ -2704,7 +2704,7 @@ }, "delayToCancel": { "type": "integer", - "description": "Total time (in seconds) to wait for an authorization and make an automatic call to `/cancellations` to cancel the payment. The minimum value is 10 minutes (600 seconds). **NOTE 1**: If you set this field to a time period less than 24 hours (86399 seconds or less), the gateway will retry processing the payment every 1 hour. If you use a value of 24 hours (86400 seconds) or more in this field, the gateway will retry processing the payment every 4 hours. **NOTE 2**: For `delayToCancel` values between 5 minutes and 1 hour (300 and 3600 seconds), or when payment is made by [PIX](https://developers.vtex.com/docs/guides/payments-integration-pix-instant-payments-in-brazil) (Brazilian instant payment method), retry calls will occur every 5 minutes." + "description": "Total time (in seconds) to wait for an authorization and make an automatic call to `/cancellations` to cancel the payment. The minimum value is 10 minutes (600 seconds). **NOTE 1**: If you set this field to a time period less than 24 hours (86399 seconds or less), the gateway will retry processing the payment every 1 hour. If you use a value of 24 hours (86400 seconds) or more in this field, the gateway will retry processing the payment every 4 hours. **NOTE 2**: For `delayToCancel` values between 5 minutes and 1 hour (300 and 3600 seconds), or when payment is made by [PIX](https://developers.vtex.com/docs/guides/payments-integration-pix-instant-payments-in-brazil) (Brazilian instant payment method), retry calls will occur every 5 minutes. **NOTE 3**: The maximum value allowed for the `delayToCancel` field is 30 days (2592000 seconds)." }, "maxValue": { "type": "integer",