[{"data":1,"prerenderedAt":405},["ShallowReactive",2],{"navigation_docs":3,"-api-validate-source-app-credentials":84,"-api-validate-source-app-credentials-surround":400},[4,30,67],{"title":5,"path":6,"stem":7,"children":8,"page":29},"Getting Started","\u002Fgetting-started","1.getting-started",[9,13,17,21,25],{"title":10,"path":11,"stem":12},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction",{"title":14,"path":15,"stem":16},"Authentication","\u002Fgetting-started\u002Fauthentication","1.getting-started\u002F2.authentication",{"title":18,"path":19,"stem":20},"Concepts","\u002Fgetting-started\u002Fconcepts","1.getting-started\u002F3.concepts",{"title":22,"path":23,"stem":24},"Order keys","\u002Fgetting-started\u002Forder-keys","1.getting-started\u002F4.order-keys",{"title":26,"path":27,"stem":28},"Errors and retries","\u002Fgetting-started\u002Ferrors-and-retries","1.getting-started\u002F5.errors-and-retries",false,{"title":31,"path":32,"stem":33,"children":34,"page":29},"API","\u002Fapi","2.api",[35,39,43,47,51,55,59,63],{"title":36,"path":37,"stem":38},"Create order","\u002Fapi\u002Fcreate-order","2.api\u002F1.create-order",{"title":40,"path":41,"stem":42},"Fetch order","\u002Fapi\u002Ffetch-order","2.api\u002F2.fetch-order",{"title":44,"path":45,"stem":46},"Fetch order status","\u002Fapi\u002Ffetch-order-status","2.api\u002F3.fetch-order-status",{"title":48,"path":49,"stem":50},"Fetch printers","\u002Fapi\u002Ffetch-printers","2.api\u002F4.fetch-printers",{"title":52,"path":53,"stem":54},"Print orders","\u002Fapi\u002Fprint-orders","2.api\u002F5.print-orders",{"title":56,"path":57,"stem":58},"Fetch order PDF","\u002Fapi\u002Ffetch-order-pdf","2.api\u002F6.fetch-order-pdf",{"title":60,"path":61,"stem":62},"Links","\u002Fapi\u002Flinks","2.api\u002F7.links",{"title":64,"path":65,"stem":66},"Validate source app credentials","\u002Fapi\u002Fvalidate-source-app-credentials","2.api\u002F8.validate-source-app-credentials",{"title":68,"path":69,"stem":70,"children":71,"page":29},"3PL teams","\u002F3pl-teams","3.3pl-teams",[72,76,80],{"title":73,"path":74,"stem":75},"Overview","\u002F3pl-teams\u002Foverview","3.3pl-teams\u002F1.overview",{"title":77,"path":78,"stem":79},"Manage merchant teams","\u002F3pl-teams\u002Fmanage-merchants","3.3pl-teams\u002F2.manage-merchants",{"title":81,"path":82,"stem":83},"Send orders to merchants","\u002F3pl-teams\u002Fsend-orders","3.3pl-teams\u002F3.send-orders",{"id":85,"title":64,"body":86,"description":393,"extension":394,"links":395,"meta":396,"navigation":397,"path":65,"seo":398,"stem":66,"__hash__":399},"docs\u002F2.api\u002F8.validate-source-app-credentials.md",{"type":87,"value":88,"toc":386},"minimark",[89,93,96,101,118,129,171,176,180,183,186,190,197,232,246,250,330,336,340,379,382],[90,91,92],"p",{},"Use this endpoint during integration setup to confirm that a Yuzu API key and source App ID work together.",[90,94,95],{},"The request is read-only. It does not create, update, ingest, render, or print an order.",[97,98,100],"h2",{"id":99},"request","Request",[102,103,108],"pre",{"className":104,"code":105,"language":106,"meta":107,"style":107},"language-http shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","GET https:\u002F\u002Fapp.yuzu.so\u002Fapi\u002Fapps\u002Fvalidate?appId={appId}\n","http","",[109,110,111],"code",{"__ignoreMap":107},[112,113,116],"span",{"class":114,"line":115},"line",1,[112,117,105],{},[90,119,120,121,124,125,128],{},"Send the API key in the ",[109,122,123],{},"X-API-Key"," header. Set ",[109,126,127],{},"appId"," to the UUID of the source app that supplies the merchant's orders.",[102,130,134],{"className":131,"code":132,"language":133,"meta":107,"style":107},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","curl 'https:\u002F\u002Fapp.yuzu.so\u002Fapi\u002Fapps\u002Fvalidate?appId=73ecf92c-4aaa-4abe-a8e9-f2986a5ee2a6' \\\n  --header 'X-API-Key: YOUR_API_KEY'\n","bash",[109,135,136,157],{"__ignoreMap":107},[112,137,138,142,146,150,153],{"class":114,"line":115},[112,139,141],{"class":140},"sBMFI","curl",[112,143,145],{"class":144},"sMK4o"," '",[112,147,149],{"class":148},"sfazB","https:\u002F\u002Fapp.yuzu.so\u002Fapi\u002Fapps\u002Fvalidate?appId=73ecf92c-4aaa-4abe-a8e9-f2986a5ee2a6",[112,151,152],{"class":144},"'",[112,154,156],{"class":155},"sTEyZ"," \\\n",[112,158,160,163,165,168],{"class":114,"line":159},2,[112,161,162],{"class":148},"  --header",[112,164,145],{"class":144},[112,166,167],{"class":148},"X-API-Key: YOUR_API_KEY",[112,169,170],{"class":144},"'\n",[90,172,173,175],{},[109,174,127],{}," must be a source app UUID. Do not send a team ID, merchant-team ID, order ID, or Shopify order ID.",[97,177,179],{"id":178},"access-rules","Access rules",[90,181,182],{},"A team API key can validate a source app owned by the same team.",[90,184,185],{},"A parent 3PL API key can also validate a source app owned by one of its managed merchant teams. It cannot validate an app owned by an unrelated team.",[97,187,189],{"id":188},"successful-response","Successful response",[90,191,192,193,196],{},"A valid and accessible combination returns ",[109,194,195],{},"200 OK",":",[102,198,202],{"className":199,"code":200,"language":201,"meta":107,"style":107},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"valid\": true\n}\n","json",[109,203,204,209,226],{"__ignoreMap":107},[112,205,206],{"class":114,"line":115},[112,207,208],{"class":144},"{\n",[112,210,211,214,218,221,223],{"class":114,"line":159},[112,212,213],{"class":144},"  \"",[112,215,217],{"class":216},"spNyl","valid",[112,219,220],{"class":144},"\"",[112,222,196],{"class":144},[112,224,225],{"class":144}," true\n",[112,227,229],{"class":114,"line":228},3,[112,230,231],{"class":144},"}\n",[90,233,234,235,238,239,241,242,245],{},"Treat the integration as active only when the response is ",[109,236,237],{},"200"," and ",[109,240,217],{}," is ",[109,243,244],{},"true",".",[97,247,249],{"id":248},"error-responses","Error responses",[251,252,253,269],"table",{},[254,255,256],"thead",{},[257,258,259,263,266],"tr",{},[260,261,262],"th",{},"Status",[260,264,265],{},"Meaning",[260,267,268],{},"What to do",[270,271,272,288,304,317],"tbody",{},[257,273,274,280,285],{},[275,276,277],"td",{},[109,278,279],{},"400",[275,281,282,284],{},[109,283,127],{}," is missing or is not a UUID.",[275,286,287],{},"Check the query parameter and source App ID. Do not retry unchanged.",[257,289,290,295,298],{},[275,291,292],{},[109,293,294],{},"401",[275,296,297],{},"The API key is missing, invalid, or revoked.",[275,299,300,301,303],{},"Check the ",[109,302,123],{}," header or replace the key.",[257,305,306,311,314],{},[275,307,308],{},[109,309,310],{},"403",[275,312,313],{},"The key cannot access the supplied App ID.",[275,315,316],{},"Check that the app belongs to the key's team or a merchant managed by its 3PL team.",[257,318,319,324,327],{},[275,320,321],{},[109,322,323],{},"500",[275,325,326],{},"Yuzu could not complete the validation.",[275,328,329],{},"Retry with backoff. Contact Yuzu if the error continues.",[90,331,332,333,335],{},"The ",[109,334,310],{}," response uses a generic error. It does not reveal whether an inaccessible App ID exists for another team.",[97,337,339],{"id":338},"recommended-setup-flow","Recommended setup flow",[341,342,343,347,358,364,367],"ol",{},[344,345,346],"li",{},"Ask the merchant for a Yuzu API key and source App ID.",[344,348,349,350,357],{},"Call ",[351,352,354],"a",{"href":353},"\u002Fgetting-started\u002Fauthentication#verify-a-key",[109,355,356],{},"GET \u002Fapi\u002Fauth\u002Fwhoami"," to confirm which team owns the key.",[344,359,349,360,363],{},[109,361,362],{},"GET \u002Fapi\u002Fapps\u002Fvalidate"," with the source App ID.",[344,365,366],{},"Mark the connection as active only after a successful validation response.",[344,368,369,370,372,373,375,376,378],{},"Ask the merchant to correct the credentials after a ",[109,371,279],{},", ",[109,374,294],{},", or ",[109,377,310],{}," response.",[90,380,381],{},"This endpoint validates access only. It does not list apps, return app metadata, discover an App ID, or validate an order.",[383,384,385],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}",{"title":107,"searchDepth":159,"depth":159,"links":387},[388,389,390,391,392],{"id":99,"depth":159,"text":100},{"id":178,"depth":159,"text":179},{"id":188,"depth":159,"text":189},{"id":248,"depth":159,"text":249},{"id":338,"depth":159,"text":339},"Confirm that an API key can access a source App ID without creating or printing an order.","md",null,{},true,{"title":64,"description":393},"IBrhlTLexG0SmG6hhEQhzMfx6uRqPS_5u7gp4c59_vs",[401,403],{"title":60,"path":61,"stem":62,"description":402,"children":-1},"Match orders across sources before Yuzu merges them.",{"title":73,"path":74,"stem":75,"description":404,"children":-1},"Manage merchant teams and their orders with one 3PL API key.",1786713552730]