1"use strict";(self.webpackChunk_amzn_startup_guide=self.webpackChunk_amzn_startup_guide||[]).push([[3542],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>f});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function s(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?s(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):s(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function i(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},s=Object.keys(e);for(n=0;n<s.length;n++)a=s[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n<s.length;n++)a=s[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var l=n.createContext({}),u=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,s=e.originalType,l=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),p=u(a),f=r,m=p["".concat(l,".").concat(f)]||p[f]||c[f]||s;return a?n.createElement(m,o(o({ref:t},d),{},{components:a})):n.createElement(m,o({ref:t},d))}));function f(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var s=a.length,o=new Array(s);o[0]=p;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i.mdxType="string"==typeof e?e:r,o[1]=i;for(var u=2;u<s;u++)o[u]=a[u];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}p.displayName="MDXCreateElement"},5162:(e,t,a)=>{a.d(t,{Z:()=>o});var n=a(7294),r=a(6010);const s="tabItem_Ymn6";function o(e){let{children:t,hidden:a,className:o}=e;return n.createElement("div",{role:"tabpanel",className:(0,r.Z)(s,o),hidden:a},t)}},4866:(e,t,a)=>{a.d(t,{Z:()=>x});var n=a(7462),r=a(7294),s=a(6010),o=a(2466),i=a(6775),l=a(1980),u=a(7392),d=a(12);function c(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:a,attributes:n,default:r}}=e;return{value:t,label:a,attributes:n,default:r}}))}function p(e){const{values:t,children:a}=e;return(0,r.useMemo)((()=>{const e=t??c(a);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,a])}function f(e){let{value:t,tabValues:a}=e;return a.some((e=>e.value===t))}function m(e){let{queryString:t=!1,groupId:a}=e;const n=(0,i.k6)(),s=function(e){let{queryString:t=!1,groupId:a}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!a)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return a??null}({queryString:t,groupId:a});return[(0,l._X)(s),(0,r.useCallback)((e=>{if(!s)return;const t=new URLSearchParams(n.location.search);t.set(s,e),n.replace({...n.location,search:t.toString()})}),[s,n])]}function b(e){const{defaultValue:t,queryString:a=!1,groupId:n}=e,s=p(e),[o,i]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:a}=e;if(0===a.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!f({value:t,tabValues:a}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${a.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const n=a.find((e=>e.default))??a[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:t,tabValues:s}))),[l,u]=m({queryString:a,groupId:n}),[c,b]=function(e){let{groupId:t}=e;const a=function(e){return e?`docusaurus.tab.${e}`:null}(t),[n,s]=(0,d.Nk)(a);return[n,(0,r.useCallback)((e=>{a&&s.set(e)}),[a,s])]}({groupId:n}),v=(()=>{const e=l??c;return f({value:e,tabValues:s})?e:null})();(0,r.useLayoutEffect)((()=>{v&&i(v)}),[v]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!f({value:e,tabValues:s}))throw new Error(`Can't select invalid tab value=${e}`);i(e),u(e),b(e)}),[u,b,s]),tabValues:s}}var v=a(2389);const h="tabList__CuJ",k="tabItem_LNqP";function y(e){let{className:t,block:a,selectedValue:i,selectValue:l,tabValues:u}=e;const d=[],{blockElementScrollPositionUntilNextRender:c}=(0,o.o5)(),p=e=>{const t=e.currentTarget,a=d.indexOf(t),n=u[a].value;n!==i&&(c(t),l(n))},f=e=>{let t=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const a=d.indexOf(e.currentTarget)+1;t=d[a]??d[0];break}case"ArrowLeft":{const a=d.indexOf(e.currentTarget)-1;t=d[a]??d[d.length-1];break}}t?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.Z)("tabs",{"tabs--block":a},t)},u.map((e=>{let{value:t,label:a,attributes:o}=e;return r.createElement("li",(0,n.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>d.push(e),onKeyDown:f,onClick:p},o,{className:(0,s.Z)("tabs__item",k,o?.className,{"tabs__item--active":i===t})}),a??t)})))}function g(e){let{lazy:t,children:a,selectedValue:n}=e;
1const s=(Array.isArray(a)?a:[a]).filter(Boolean);if(t){const e=s.find((e=>e.props.value===n));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},s.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==n}))))}function _(e){const t=b(e);return r.createElement("div",{className:(0,s.Z)("tabs-container",h)},r.createElement(y,(0,n.Z)({},e,t)),r.createElement(g,(0,n.Z)({},e,t)))}function x(e){const t=(0,v.Z)();return r.createElement(_,(0,n.Z)({key:String(t)},e))}},8577:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>d,contentTitle:()=>l,default:()=>f,frontMatter:()=>i,metadata:()=>u,toc:()=>c});var n=a(7462),r=(a(7294),a(3905)),s=a(4866),o=a(5162);const i={sidebar_position:4,slug:"/specification/api/refund"},l="Refund",u={unversionedId:"specification/api/refund",id:"specification/api/refund",title:"Refund",description:"Session initiated",source:"@site/i18n/en/docusaurus-plugin-content-docs/current/specification/api/refund.md",sourceDirName:"specification/api",slug:"/specification/api/refund",permalink:"/en/specification/api/refund",draft:!1,tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4,slug:"/specification/api/refund"},sidebar:"tutorialSidebar",previous:{title:"Charge",permalink:"/en/specification/api/charge"},next:{title:"productType",permalink:"/en/specification/parameter/productType"}},d={},c=[{value:"Create Refund",id:"create-refund",level:2},{value:"Get Refund",id:"get-refund",level:2}],p={toc:c};function f(e){let{components:t,...a}=e;return(0,r.kt)("wrapper",(0,n.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"refund"},"Refund"),(0,r.kt)("admonition",{type:"diagram"},(0,r.kt)("div",{class:"flex_container"},(0,r.kt)("div",{class:"flex_container"},(0,r.kt)("div",{class:"radius_box_s box_status justify"},"Session initiated"),(0,r.kt)("div",{class:"radius_box_s"})),(0,r.kt)("div",{class:"flex_container"},(0,r.kt)("div",{class:"radius_box_s box_status justify"},"Order confirmation"),(0,r.kt)("div",{class:"radius_box_s"})),(0,r.kt)("div",{class:"flex_container"},(0,r.kt)("div",{class:"radius_box_s box_status justify"},"Authorization/Settlement"),(0,r.kt)("div",{class:"radius_box_s"})),(0,r.kt)("div",{class:"flex_container"},(0,r.kt)("div",{class:"radius_box_s box_status justify"},"Refund"),(0,r.kt)("div",{class:"radius_box_s"}))),(0,r.kt)("div",{class:"flex_container"},(0,r.kt)("div",{class:"flex_container"},(0,r.kt)("div",{class:"radius_box_s box_green bold"},"Checkout Session",(0,r.kt)("br",null),"(checkoutSessionId)"),(0,r.kt)("div",{class:""},(0,r.kt)("div",{class:"text_api"},"API"),(0,r.kt)("div",{class:"radius_box_s box_lightgrey bold"},"Get Checkout Session"),(0,r.kt)("div",{class:"radius_box_s box_lightgrey bold"},"Update Checkout Session"),(0,r.kt)("div",{class:"radius_box_s box_lightgrey bold"},"Complete Checkout Session"))),(0,r.kt)("div",{class:"flex_container"},(0,r.kt)("div",{class:"radius_box_s box_green bold"},"Charge Permission",(0,r.kt)("br",null),"(chargePermissionId)"),(0,r.kt)("div",{class:""},(0,r.kt)("div",{class:"text_api"},"API"),(0,r.kt)("div",{class:"radius_box_s box_lightgrey bold"},"Get Charge Permission"),(0,r.kt)("div",{class:"radius_box_s box_lightgrey bold"},"Update Charge Permission"),(0,r.kt)("div",{class:"radius_box_s box_lightgrey bold"},"Close Charge Permission"))),(0,r.kt)("div",{class:"flex_container"},(0,r.kt)("div",{class:"radius_box_s box_green bold"},"Charge",(0,r.kt)("br",null),"(chargeId)"),(0,r.kt)("div",{class:"flex_container"},(0,r.kt)("div",{class:""},(0,r.kt)("div",{class:"text_api"},"API"),(0,r.kt)("div",{class:"radius_box_s box_lightgrey"},(0,r.kt)("span",{class:"bold"},"Create Charge")),(0,r.kt)("div",{class:"radius_box_s box_lightgrey"},(0,r.kt)("span",{class:"bold"},"Get Charge")),(0,r.kt)("div",{class:"radius_box_s box_lightgrey"},(0,r.kt)("span",{class:"bold"},"Cancel Charge")),(0,r.kt)("div",{class:"radius_box_s box_lightgrey"},(0,r.kt)("span",{class:"bold"},"Capture Charge")),(0,r.kt)("div",{class:"radius_box_s"})))),(0,r.kt)("div",{class:"flex_container"},(0,r.kt)("div",{class:"radius_box_s box_green bold"},"Refund",(0,r.kt)("br",null),"(refundId)"),(0,r.kt)("div",{class:"box_red_focus"},(0,r.kt)("div",{class:"text_api"},"API"),(0,r.kt)("div",{class:"radius_box_s box_lightgrey"},(0,r.kt)("span",{class:"bold"},"Create Refund")),(0,r.kt)("div",{class:"radius_box_s box_lightgrey"},(0,r.kt)("span",{class:"bold"},"Get Refund")),(0,r.kt)("div",{class:"radius_box_s"}),(0,r.kt)("div",{class:"radius_box_s"}))))),(0,r.kt)("br",null),(0,r.kt)("h2",{id:"create-refund"},"Create Refund"),(0,r.kt)(s.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"JP",mdxType:"TabItem"},(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"https://developer.amazon.com/docs/amazon-pay-api-v2/refund.html#create-refund"},(0,r.kt)("strong",{parentName:"a"},"Create Refund")," - POST https://pay-api.amazon.jp/:environment/:version/refunds"))),(0,r.kt)(o.Z,{value:"US",mdxType:"TabItem"},(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"https://developer.amazon.com/docs/amazon-pay-api-v2/refund.html#create-refund"},(0,r.kt)("strong",{parentName:"a"}
1,"Create Refund")," - POST https://pay-api.amazon.com/:environment/:version/refunds"))),(0,r.kt)(o.Z,{value:"EU/UK",mdxType:"TabItem"},(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"https://developer.amazon.com/docs/amazon-pay-api-v2/refund.html#create-refund"},(0,r.kt)("strong",{parentName:"a"},"Create Refund")," - POST https://pay-api.amazon.eu/:environment/:version/refunds")))),(0,r.kt)("admonition",{type:"merchant"},(0,r.kt)("p",{parentName:"admonition"},"When do I use Create Refund?")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"When you want to refund buyer")),(0,r.kt)("p",null,"When you call Create Refund API, Refund object is created. ",(0,r.kt)("br",null),'\nNote Refund is processed asynchronously, and it starts with the status "RefundInitiated". After Amazon completes it\'s process, status changes to "Refunded" or "Declined". This means that you may not get the final refund result immediately in Create Refund API response. Thus, you need to call Get Refund API to get the final status after a while.'),(0,r.kt)("p",null,"You can use Seller Central to Refund as a alternative to Create Refund API."),(0,r.kt)("p",null,"See"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://developer.amazon.com/docs/amazon-pay-api-v2/refund.html#states-and-reason-code"},"Integration Guide - Refund - States and reason code")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://developer.amazon.com/docs/amazon-pay-api-v2/refund.html#create-refund"},"Integration Guide - Create Refund"))),(0,r.kt)("br",null),(0,r.kt)("h2",{id:"get-refund"},"Get Refund"),(0,r.kt)(s.Z,{mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"JP",mdxType:"TabItem"},(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"https://developer.amazon.com/docs/amazon-pay-api-v2/refund.html#get-refund"},(0,r.kt)("strong",{parentName:"a"},"Get Refund")," - GET https://pay-api.amazon.jp/:environment/:version/refunds/:refundId"))),(0,r.kt)(o.Z,{value:"US",mdxType:"TabItem"},(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"https://developer.amazon.com/docs/amazon-pay-api-v2/refund.html#get-refund"},(0,r.kt)("strong",{parentName:"a"},"Get Refund")," - GET https://pay-api.amazon.com/:environment/:version/refunds/:refundId"))),(0,r.kt)(o.Z,{value:"EU/UK",mdxType:"TabItem"},(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"https://developer.amazon.com/docs/amazon-pay-api-v2/refund.html#get-refund"},(0,r.kt)("strong",{parentName:"a"},"Get Refund")," - GET https://pay-api.amazon.eu/:environment/:version/refunds/:refundId")))),(0,r.kt)("admonition",{type:"merchant"},(0,r.kt)("p",{parentName:"admonition"},"When do I use Get Refund?")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"When you want to get refund result"),"."),(0,r.kt)("p",null,"As Create Refund is processed asynchronously, you may not get the result immediately. Thus, you call Get Refund API to check the refund status."),(0,r.kt)("p",null,"See"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://developer.amazon.com/docs/amazon-pay-api-v2/refund.html#states-and-reason-code"},"Integration Guide - Refund - States and reason code")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://developer.amazon.com/docs/amazon-pay-api-v2/refund.html#create-refund"},"Integration Guide - Create Refund"))),(0,r.kt)("br",null))}f.isMDXComponent=!0}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.