1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[40],{517:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(t,{default:function(){return c},getImageProps:function(){return i}});let o=n(6637),r=n(9979),a=n(1087),s=o._(n(6977));function i(e){let{props:t}=(0,r.getImgProps)(e,{defaultLoader:s.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1}});for(let[e,n]of Object.entries(t))void 0===n&&delete t[e];return{props:t}}let c=a.Image},2342:(e,t,n)=>{"use strict";n.d(t,{default:()=>r.a});var o=n(517),r=n.n(o)},3915:(e,t,n)=>{Promise.resolve().then(n.bind(n,9184))},9184:(e,t,n)=>{"use strict";n.d(t,{ApiDocs:()=>u});var o=n(7130),r=n(6559),a=n(2342),s=n(3650);let i=[{id:"intro",title:"Introduction",content:(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("p",{className:"text-lg leading-relaxed text-grey-600 mb-4",children:"In this manual we will take you through a few simple steps to integrate our API in your webshop. This will enable your customers to choose from our vast range of digital goods in your webshop environment. Whether it is e-gift cards, game keys, phone credit or prepaid payment cards - your customer chooses, our API delivers and your webshop converts - directly from our stock!"}),(0,o.jsx)("p",{className:"text-lg leading-relaxed text-grey-600",children:"Ready to make this happen? Let's go!"})]})},{id:"setup",title:"Setting Up",description:(0,o.jsxs)("p",{className:"text-grey-600 mb-4",children:["Let's start with the configurations on your platform. First: Create an account on"," ",(0,o.jsx)("a",{href:"https://app.prepaidforge.com",className:"text-brand-orange hover:underline",target:"_blank",rel:"noopener noreferrer",children:"https://app.prepaidforge.com"})," ","to follow the next steps."]}),subSections:[{title:"Test it in Sandbox Mode (optional)",content:(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("p",{className:"text-grey-600 mb-4",children:"This step is optional, but enables you to safely test our API in Sandbox Mode. This way you can try out making orders and API calls without any risk. You will receive test codes to try out all functionality before you go live and order real codes."}),(0,o.jsxs)("p",{className:"text-grey-600 mb-4",children:["You can find the Toggle Sandbox option in your"," ",(0,o.jsx)("strong",{children:"Settings"}),", in the tab ",(0,o.jsx)("strong",{children:"API"}),". When you have tested everything to your satisfaction, simply disable the Sandbox Mode and you are live!"]})]}),image:{src:"https://korsit.notion.site/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F71efd417-482c-4d2a-b6ad-726276c6a19b%2FUntitled.png?table=block&id=a969d079-905a-428e-956e-c5f5f1a398a4&spaceId=42f8de50-302e-4672-b3ba-05425b76a3fa&width=2000&userId=&cache=v2",alt:"Sandbox Mode"}},{title:"Top up your account balance",content:(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("p",{className:"text-grey-600 mb-4",children:"Before we can start, you need to deposit some credit on your account. That is necessary to enable automatic delivery of the codes, which will be paid for by your account balance."}),(0,o.jsxs)("p",{className:"text-grey-600 mb-4",children:["Go to the ",(0,o.jsx)("strong",{children:"Balance"})," page and request a"," ",(0,o.jsx)("strong",{children:"Deposit"}),". Then, find your invoice in the transaction list and issue a payment. In Sandbox Mode, invoices are automatically approved."]})]}),image:{src:"https://korsit.notion.site/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Ffc622023-edc8-439d-9ca4-b30fe0748002%2FUntitled.png?table=block&id=c408ac1f-c30f-4c1f-8e1a-ef18c6c301cd&spaceId=42f8de50-302e-4672-b3ba-05425b76a3fa&width=2000&userId=&cache=v2",alt:"Top up balance"}},{title:"Enable Server IP",content:(0,o.jsxs)("p",{className:"text-grey-600 mb-4",children:["Add your IP-address to your ",(0,o.jsx)("strong",{children:"settings"})," in the"," ",(0,o.jsx)("strong",{children:"API"}
1)," tab. Give your server a name so you know which IP belongs to what server. Request an approval of your server. After we have approved it, you are ready to go!"]}),image:{src:"https://korsit.notion.site/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Ff318e618-9af1-4ccf-8463-9c332f9a8d02%2FUntitled.png?table=block&id=26dee560-fa9b-4e55-aac0-fd4114ba7423&spaceId=42f8de50-302e-4672-b3ba-05425b76a3fa&width=2000&userId=&cache=v2",alt:"Enable Server IP"}}]},{id:"auth",title:"Authentication",description:(0,o.jsx)("p",{className:"text-grey-600 mb-4",children:"To find your prices and create orders, you need an API Token. This is an expiring code, so you need to recreate this token after it has expired."}),codeBlock:{method:"POST",endpoint:"https://api.prepaidforge.com/v1/1.0/signInWithApi",code:'// Request\n{\n "email":"[email protected]",\n "password":"YourPassword123!"\n}\n\n// Response\n{\n "apiToken": "YOUR API TOKEN",\n "tokenValidUntil": 1509722838615\n}'}},{id:"products",title:"Products",description:(0,o.jsx)("p",{className:"text-grey-600 mb-4",children:"You can find all our products with one API call."}),codeBlock:{method:"GET",endpoint:"https://api.prepaidforge.com/v1/1.0/findAllProducts",code:'[\n {\n "sku": "Netflix-25-EUR",\n "name": "Netflix 25 EUR",\n "gtin": "5051644047703",\n "brand": "Netflix",\n "faceValue": {\n "amount": 0,\n "currency": "EUR",\n "formattedString": "â¬0,0000"\n },\n "currencyCode": "EUR",\n "isCurrencyProduct": true,\n "imageUrl": "//cdn.prepaidforge.com/productimages/netflix2.png",\n "active": true,\n "countries": ["be", "de"],\n "categories": ["Giftcards"]\n },\n ...\n]'},subSections:[{title:"Find your product (paged)",content:(0,o.jsx)("p",{className:"text-grey-600 mb-4",children:"If you don't want to get all products at once, you can provide a page size and page number."}),codeBlock:{method:"POST",endpoint:"https://api.prepaidforge.com/v1/1.0/findProductPage",code:'// Request\n{\n "page": 369,\n "pageSize": 10\n}'}},{title:"Find your product online",content:(0,o.jsxs)("p",{className:"text-grey-600 mb-4",children:["Alternatively, you can look up all our products online in the"," ",(0,o.jsx)("a",{href:"https://app.prepaidforge.com",className:"text-brand-orange hover:underline",children:"WebApp"}),"! Every product has an API Identifier that you can use to order the product in our API."]}),image:{src:"https://korsit.notion.site/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F1f0ab55c-66a4-44e2-8b68-51d0fa0168fa%2FUntitled.png?table=block&id=4d704ba4-20be-4eb5-a2b6-63a522c4b5b2&spaceId=42f8de50-302e-4672-b3ba-05425b76a3fa&width=1420&userId=&cache=v2",alt:"Find product online"}}]},{id:"stock",title:"Stock",description:(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("p",{className:"text-grey-600 mb-4",children:"We have different stock options for (most of) our products. Each stock option has a different pricing, depending on the type of code (e.g. text or scan) and available quantity."}),(0,o.jsxs)("p",{className:"text-grey-600 mb-4",children:[(0,o.jsx)("strong",{children:"Quantity Explained:"})," If you see a positive number, that is the amount we have. If quantity is -1, stock is undefined and you can just order. Only if quantity is 0, it is sold out."]})]}),codeBlock:{method:"POST",endpoint:"https://api.prepaidforge.com/v1/1.0/findStocks",code:'// Request\n{\n "types":["TEXT", "SCAN"],\n "skus":["Netflix-25-Eur"]\n}\n\n// Response\n[\n {\n "product": "Netflix-25-EUR",\n "type": "SCAN",\n "quantity": 286,\n "purchasePrice": 25.14\n },\n {\n "product": "Netflix-25-EUR",\n "type": "TEXT",\n "quantity": -1,\n "purchasePrice": 27.24\n }\n]'}},{id:"orders",title:"Orders",description:(0,o.jsxs)("p",{className:"text-grey-600 mb-4",children:["If you are ready to order a code, simply provide the price, code type and product identifier in your order call. You can optionally include a"," ",(0,o.jsx)("code",{className:"bg-grey-100 px-1 rounded",children:"customOrderReference"}),"."]}),codeBlock:{method:"POST",endpoint:"https://api.prepaidforge.com/v1/1.
10/createApiOrder",code:'// Request\n{\n "sku": "Netflix-25-EUR",\n "price": 25.14,\n "codeType": "SCAN",\n "customOrderReference": "myOwnReference-00001"\n}\n\n// Response\n{\n "orderReference": "PF-ORDER00000000000001",\n "customOrderReference": "myOwnReference-00001",\n "code": null,\n "serial": "21512521352161253214885",\n "image": {\n "filename": "PF-ITEM0000000000",\n "filetype": "PNG",\n "downloadLink": "https://api.prepaidforge.com/v1/orderDownload/..."\n },\n "codeType": "SCAN"\n}'},subSections:[{title:"Look up orders (optional)",content:(0,o.jsx)("p",{className:"text-grey-600 mb-4",children:"Look up orders by date range (epoch format)."}),codeBlock:{method:"POST",endpoint:"https://api.prepaidforge.com/v1/1.0/getApiOrders",code:'// Request\n{\n "page": 1,\n "startDate": 1571184000000,\n "endDate": 1571616000000\n}'}},{title:"Look up by custom reference (optional)",content:null,codeBlock:{method:"POST",endpoint:"https://api.prepaidforge.com/v1/1.0/getResponseOfSingleApiCodeRequest",code:'// Request\n{\n "customOrderReference": "myOwnReference-00001"\n}'}}]},{id:"account",title:"Account & Invoices",description:(0,o.jsx)("p",{className:"text-grey-600 mb-4",children:"Request your current balance (optional)."}),codeBlock:{method:"GET",endpoint:"https://api.prepaidforge.com/v1/1.0/balance",code:'// Response\n{\n "amount": 643.2795,\n "currency": "EUR",\n "formattedString": "⬠643,2795"\n}'},subSections:[{title:"Find your invoices (optional)",content:null,codeBlock:{method:"GET",endpoint:"https://api.prepaidforge.com/v1/1.0/getInvoice/PF-INV00XXXXXXX",code:'// Response\n{\n "invoiceType": "EU_VAT_VERIFIED",\n "expiryDate": 1568623066000,\n "subtotal": {\n "amount": 492.0000,\n "currency": "EUR"\n },\n "balanceAfterPayment": {\n "amount": 2399478.2500\n }\n}'}}]},{id:"support",title:"Support & Legal",content:(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("p",{className:"text-grey-600 mb-4",children:"If you encounter any issues during the integration process or have any questions about using the PrepaidForge API, our support team is here to help!"}),(0,o.jsx)("h3",{className:"text-xl font-semibold mb-2",children:"How to Reach Us"}),(0,o.jsxs)("p",{className:"text-grey-600 mb-4",children:["You can reach out to our dedicated support team by emailing us at"," ",(0,o.jsx)("a",{href:"mailto:[email protected]",className:"text-brand-orange hover:underline",children:"[email protected]"}),"."]}),(0,o.jsx)("h3",{className:"text-xl font-semibold mb-2",children:"What to Include in Your Email"}),(0,o.jsxs)("ul",{className:"list-disc pl-6 mb-8 text-grey-600 space-y-1",children:[(0,o.jsx)("li",{children:"Your account details (email associated with your account)"}),(0,o.jsx)("li",{children:"A detailed description of your issue or question"}),(0,o.jsx)("li",{children:"Any relevant API request/response data, logs, or error messages"}),(0,o.jsx)("li",{children:"The steps you've already taken to resolve the issue, if applicable"})]}),(0,o.jsx)("h3",{className:"text-xl font-semibold mb-2",children:"Terms and Conditions"}),(0,o.jsxs)("p",{className:"text-grey-600 mb-6",children:["By integrating and using the PrepaidForge API, you agree to our"," ",(0,o.jsx)("a",{href:"/terms",className:"text-brand-orange hover:underline",children:"Terms and Conditions"}),". This document details the contractual relationship between you and PrepaidForge."]}),(0,o.jsx)("h3",{className:"text-xl font-semibold mb-2",children:"Privacy Policy"}),(0,o.jsxs)("p",{className:"text-grey-600 mb-4",children:["We take data privacy seriously. Our"," ",(0,o.jsx)("a",{href:"/privacy",className:"text-brand-orange hover:underline",children:"Privacy Policy"})," ","explains how we collect, use, and protect personal information."]})]})}];function c(e){let{method:t,endpoint:n,code:a}=e;return(0,o.jsxs)("div",{className:"bg-white border border-grey-200 rounded-lg overflow-hidden mb-6",children:[(0,o.jsxs)("div",{className:"bg-grey-100 px-4 py-2 text-xs font-mono border-b border-grey-200 flex items-center gap-2",children:[(0,o.jsx)("span",{className:(0,r.cn)("font-bold","GET"===t?"text-green-600":"text-blue-600"),children:t}),(0,o.jsx)("span",{className:"text-grey-700",children:n})]}),(0,o.jsx)("div",{className:"p-4 bg-grey-50 overflow-x-auto",children:(0,o.jsx)("pre",{className:"text-sm text-grey-700 font-mono whitespace-pre-wrap",children:a})})]})}function d(e){let{src:t,alt:n}
1=e,[r,i]=(0,s.useState)(!1);return r?(0,o.jsx)("div",{className:"mb-6 rounded-lg overflow-hidden border border-grey-200 bg-grey-100 h-48 flex items-center justify-center",children:(0,o.jsx)("span",{className:"text-grey-500",children:"Image not available"})}):(0,o.jsx)("div",{className:"mb-6 rounded-lg overflow-hidden border border-grey-200",children:(0,o.jsx)(a.default,{src:t,alt:n,width:800,height:400,className:"w-full h-auto",onError:()=>i(!0),unoptimized:!0})})}function l(e){let{subSection:t}=e;return(0,o.jsxs)("div",{className:"mt-6",children:[(0,o.jsx)("h3",{className:"text-xl font-semibold mb-4",children:t.title}),t.content,t.image&&(0,o.jsx)(d,{src:t.image.src,alt:t.image.alt}),t.codeBlock&&(0,o.jsx)(c,{...t.codeBlock})]})}function p(e){var t;let{section:n}=e;return(0,o.jsxs)("section",{id:n.id,className:"scroll-mt-24",children:[(0,o.jsx)("h2",{className:"mb-6",children:n.title}),n.description,n.content,n.image&&(0,o.jsx)(d,{src:n.image.src,alt:n.image.alt}),n.codeBlock&&(0,o.jsx)(c,{...n.codeBlock}),null==(t=n.subSections)?void 0:t.map((e,t)=>(0,o.jsx)(l,{subSection:e},t))]})}function u(){var e,t;let[n,a]=(0,s.useState)(null!=(t=null==(e=i[0])?void 0:e.id)?t:"");return(0,o.jsxs)("div",{className:"w-full min-h-screen flex flex-col",children:[(0,o.jsx)("div",{className:"bg-brand-grey-lighter py-12 border-b border-grey-200",children:(0,o.jsxs)("div",{className:"container mx-auto px-4 lg:px-6",children:[(0,o.jsx)("h1",{children:"API Documentation"}),(0,o.jsx)("p",{className:"text-xl text-grey-600 mt-2",children:"Integrate PrepaidForge into your webshop."})]})}),(0,o.jsxs)("div",{className:"container mx-auto px-4 lg:px-6 flex flex-col lg:flex-row gap-8 py-12 flex-1",children:[(0,o.jsx)("aside",{className:"w-full lg:w-64 flex-shrink-0 hidden lg:block",children:(0,o.jsxs)("div",{className:"sticky top-24 space-y-1",children:[(0,o.jsx)("h3",{className:"font-bold text-lg mb-4 px-4",children:"Contents"}),(0,o.jsx)("nav",{className:"space-y-1 pr-4",children:i.map(e=>(0,o.jsx)("button",{onClick:()=>(e=>{a(e);let t=document.getElementById(e);t&&t.scrollIntoView({behavior:"smooth",block:"start"})})(e.id),className:(0,r.cn)("w-full text-left px-4 py-2 rounded-md text-sm font-medium transition-colors",n===e.id?"bg-brand-orange text-white":"hover:bg-grey-100 text-grey-600 hover:text-grey-900"),children:e.title},e.id))})]})}),(0,o.jsx)("div",{className:"flex-1 max-w-4xl min-w-0 space-y-16",children:i.map(e=>(0,o.jsx)(p,{section:e},e.id))})]})]})}}},e=>{e.O(0,[611,415,87,559,478,763,358],()=>e(e.s=3915)),_N_E=e.O()}]);
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.