How to create, configure, and share payment links that let customers pay you directly through a checkout URL.
Payment links are shareable checkout URLs you create from the admin dashboard. Customers open the link, choose a payment method, and complete the payment - no invoice or API integration required.
Fixed amount - enter a value in the Amount field. The customer sees the price locked and cannot change it.
Variable amount - leave the Amount field blank. The checkout page shows an input where the customer types their own value. Use this for donations, tips, or flexible service fees.
Set Max uses to 1 for single-use links (for example a specific invoice payment). Set an Expires at date to prevent stale links from being used weeks later. When a link expires or reaches its use limit, customers see a “Link expired” message.
When a customer completes payment, they are redirected to the Redirect URL you configured. OwnPay appends trx_id and status as query parameters so you can confirm the result on your side.
You can embed a payment link in an <iframe> on your own website. Use the checkout URL as the src attribute. Make sure your website allows the OwnPay domain in your Content Security Policy headers.
At least one payment gateway must be active for the link’s currency before you share it. Otherwise customers see an error at checkout with no available payment methods.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"OwnPay","description":"Open-source, Self-hosted payment gateway with multi-brand support, white-label domains, and 100+ payment gateways.","colors":{"primary":"#0F97ED","light":"#5BB8F5","dark":"#102963"},"logo":{"light":"https://mintcdn.com/ownpay/S70Th8VweRBV-OVo/logo/light.svg?fit=max\u0026auto=format\u0026n=S70Th8VweRBV-OVo\u0026q=85\u0026s=0c0e2df69a1c85bdc1297590e8be64c5","dark":"https://mintcdn.com/ownpay/S70Th8VweRBV-OVo/logo/dark.svg?fit=max\u0026auto=format\u0026n=S70Th8VweRBV-OVo\u0026q=85\u0026s=9be8f7a4a0258f42abf703e80659f76b","href":"https://ownpay.org/docs"},"favicon":"https://mintcdn.com/ownpay/S70Th8VweRBV-OVo/favicon.svg?fit=max\u0026auto=format\u0026n=S70Th8VweRBV-OVo\u0026q=85\u0026s=38a2465d7330cd7f513a442ea6bb9b6d","api":{"playground":{"display":"interactive","proxy":true,"credentials":false},"examples":{"defaults":"all","languages":["curl","php","python","javascript","go","java","nodejs"],"prefill":true,"autogenerate":true},"url":"full","mdx":{"auth":{"method":"bearer","name":"Authorization"},"server":"https://demo.ownpay.org"}},"appearance":{"default":"system"},"background":{"decoration":"gradient"},"navbar":{"links":[{"href":"https://github.com/own-pay/OwnPay","label":"GitHub","type":"github"},{"href":"https://ownpay.org","label":"ownpay.org"},{"href":"/quickstart","label":"Get Started"}],"primary":{"type":"button","label":"Get Started","href":"/quickstart"}},"footer":{"socials":{"github":"https://github.com/own-pay/OwnPay","website":"https://ownpay.org","x":"https://x.com/ownpayorg","facebook":"https://facebook.com/ownpay.org","youtube":"https://youtube.com/@ownpayorg"},"links":[{"header":"Product","items":[{"label":"Quickstart","href":"/docs/quickstart"},{"label":"Installation","href":"/docs/installation"},{"label":"Download","href":"https://update.ownpay.org"},{"label":"Features","href":"/docs/resources/features"},{"label":"Roadmap","href":"/docs/resources/roadmap"},{"label":"Changelog","href":"/docs/resources/changelog"}]},{"header":"Developers","items":[{"label":"API Reference","href":"/docs/api/overview"},{"label":"API Quick Start","href":"/docs/developer/quickstart"},{"label":"Webhooks","href":"/docs/api/webhooks"},{"label":"Plugins","href":"/docs/developer/plugins/overview"}]},{"header":"Resources","items":[{"label":"Architecture","href":"/docs/resources/architecture"},{"label":"Security","href":"/docs/resources/security-compliance"},{"label":"FAQ","href":"/docs/resources/faq"},{"label":"Community","href":"https://github.com/own-pay/OwnPay/discussions"},{"label":"Contributing","href":"/docs/resources/contributing"}]}]},"search":{"prompt":"Search OwnPay docs..."},"seo":{"metatags":{"og:site_name":"OwnPay Documentation","og:locale":"en_US","twitter:card":"summary_large_image","twitter:site":"@ownpayorg","robots":"index, follow, max-snippet:-1, max-image-preview:large","canonical":"https://ownpay.org/docs","fb:app_id":"2933285433703137","og:image:alt":"OwnPay - Open-Source, Self-Hosted Payment Gateway Platform"},"organization":{"id":"https://ownpay.org/#organization","name":"OwnPay","legalName":"OwnPay","url":"https://ownpay.org","logo":"https://ownpay.org/docs/logo/light.svg","sameAs":["https://github.com/own-pay/OwnPay","https://x.com/ownpayorg","https://youtube.com/@ownpayorg","https://facebook.com/ownpay.org","https://github.com/own-pay","https://www.npmjs.com/package/ownpay-nodejs","https://marketplace.whmcs.com/product/8845-ownpay-whmcs","https://github.com/own-pay/OwnPay-Mobile-App","https://facebook.com/groups/ownpay.org"]},"indexing":"all","trailingSlash":false},"icons":{"library":"tabler"},"styling":{"eyebrows":"section","codeblocks":{"theme":{"light":"github-light","dark":"github-dark"}},"latex":true},"integrations":{"clarity":{"projectId":"xfbp4tcicy"},"telemetry":{"enabled":true}},"banner":{"content":"OwnPay v0.2.0 is available. [See what's new](/resources/changelog).","dismissible":true,"type":"info"},"errors":{"404":{"redirect":false,"title":"Lost in transit?","description":"The page you are looking for has moved or does not exist. Try the search bar at the top or explore these key sections:\n\n* **[Getting Started](/quickstart)** - Set up your self-hosted instance.\n* **[Installation](/installation)** - Deploy on shared hosting, VPS, or Docker.\n* **[API Reference](/api/overview)** - Merchant, Mobile, and Admin API specs.\n* **[Developer Hub](/developer/quickstart)** - Build custom plugins and integrations."}},"contextual":{"options":["copy","assistant","view","download-pdf","download-spec","mcp","add-mcp","claude","chatgpt","grok","aistudio","devin","windsurf","devin-mcp","vscode","cursor","perplexity"],"display":"header"},"interaction":{"drilldown":true},"metadata":{"timestamp":true},"variables":{"version":"0.2.0","github":"https://github.com/own-pay/OwnPay","website":"https://ownpay.org","github-docs":"https://github.com/own-pay/ownpay-docs","github-wordpress":"https://github.com/own-pay/OwnPay-WordPress","github-whmcs":"https://marketplace.whmcs.com/product/8845-ownpay-whmcs","docs-url":"https://ownpay.org/docs","mcp-url":"https://ownpay.org/docs/mcp","skills-url":"https://ownpay.org/docs/skill.md","support-email":"ping@ownpay.org","llms-txt":"https://ownpay.org/docs/llms.txt"},"markdown":{"schema":true,"instructions":["OwnPay is licensed under AGPL-3.0 and is completely free - no licensing fees.","Production docs URL: https://ownpay.org/docs - append .md to any page URL for clean markdown.","OwnPay requires PHP 8.3+, MySQL/MariaDB, and Redis.","MCP server available at https://ownpay.org/docs/mcp for programmatic documentation queries.","Use root-relative links (e.g. /quickstart) for internal navigation - do NOT include /docs prefix.","Plugin development: consult /developer/plugins/ pages for correct interfaces and manifests.","Canonical locations: API auth = /api/authentication, webhook verification = /api/webhooks, rate limits = /resources/rate-limiting, transaction statuses = /fundamentals/payment-flow.","The documentation uses the Diataxis framework: Tutorials (learning), How-to (tasks), Reference (lookup), Explanation (understanding)."]},"navigation":{"global":{"anchors":[{"anchor":"Changelog","icon":"history","href":"/resources/changelog"}]},"languages":[{"language":"en","default":true,"href":"introduction"},{"language":"zh","href":"zh/introduction"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"ownpay","hasAudioNarration":false,"actualSubdomain":"ownpay","customDomains":["ownpay.org"],"gitSource":{"type":"github","owner":"own-pay","repo":"ownpay-docs","deployBranch":"master","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"collectionId":"cb0f1eb3-944e-45c3-aa40-1642f8ad8963","liveDeploymentHistoryId":"6ad921c22b0fc3f48bb38a76","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ad921c22b0fc3f48bb38a76"},"feedback":{"thumbs":true,"edits":true,"issues":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ad921c22b0fc3f48bb38a76","clientVersion":"0.0.3990","searchFilterCounts":[{"language":"en","tag":"API Reference","count":72},{"language":"en","tag":"Documentation","count":50},{"language":"en","tag":"Developer","count":24},{"language":"en","tag":"Resources","count":18},{"language":"en","tag":"Merchant API","count":16},{"language":"en","tag":"Mobile API","count":12},{"language":"en","tag":"Plugin System","count":7},{"language":"en","tag":"Fundamentals","count":7},{"language":"en","tag":"SDKs \u0026 Libraries","count":6},{"language":"en","tag":"Security \u0026 Access","count":6}],"searchSettings":{"showContentSnippets":true,"isFiltersEnabled":true}},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":true,"enableContextualStarterQuestions":true,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"email":"ping@ownpay.org"}},"basePath":"/docs","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"@keyframes pulse-green{0%{transform:scale(.95);box-shadow:0 0 0 0 rgba(16,185,129,.7)}70%{transform:scale(1);box-shadow:0 0 0 6px transparent}to{transform:scale(.95);box-shadow:0 0 0 0 transparent}}@keyframes slide-right{0%{color:#334155;transform:translateX(0)}50%{color:#38bdf8}to{color:#334155;transform:translateX(4px)}}footer a[href*=\"mintlify.com\"],footer button[aria-label*=\"Switch to dark\"],footer button[aria-label*=\"Switch to light\"],footer button[aria-label*=\"Switch to system\"]{display:none!important}footer#footer{background:#fafbfc;border-top:1px solid #e2e8f0}.dark footer#footer{background:#0f172a;border-top-color:#1e293b}footer#footer>div:first-child{max-width:1200px;margin:0 auto;padding:4rem 2rem 0}footer#footer p.text-sm.font-semibold{font-size:14px!important;font-weight:600;color:#0f172a;margin-bottom:1rem!important}.dark footer#footer p.text-sm.font-semibold{color:#f1f5f9}footer#footer [style*=grid-template-columns]{gap:2rem!important}footer#footer [style*=grid-template-columns] a{font-size:14px!important;padding:5px 0!important;transition:color .15s ease}footer#footer [style*=grid-template-columns] a:hover{color:#10b981!important}#navbar nav a[href*=\"github.com/own-pay\"] span,footer#footer .footer-description{display:none!important}footer#footer>div:first-child>div:last-child{display:none!important}footer#footer::after{content:\"Built by the Community, for the Community.\";display:block;text-align:center;font-size:12px;color:#94a3b8;padding:0 0 1.5rem;margin:0;border-top:1px solid #e2e8f0}.dark footer#footer::after{color:#64748b;border-top-color:#1e293b}#sidebar+div footer,#sidebar+div>div:last-child footer{margin-left:0!important;width:100%!important;border-top:1px solid #e5e7eb}.dark #sidebar+div footer,.dark #sidebar+div>div:last-child footer{border-top-color:#374151}footer{z-index:0!important;position:relative!important;display:block!important}footer [style*=grid-template-columns]{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:2rem!important;padding:0 1rem}@media (max-width:767px){footer [style*=grid-template-columns]{grid-template-columns:repeat(2,1fr)!important;gap:1.5rem!important}}footer .flex.items-center.justify-between{display:flex!important;flex-direction:column!important;align-items:center!important;text-align:center!important;gap:1rem!important;padding:1rem!important}@media (min-width:768px){footer .flex.items-center.justify-between{flex-direction:row!important;justify-content:space-between!important;align-items:center!important;text-align:left!important}}.github-stars-badge{display:inline-flex;align-items:center;gap:3px;font-size:12px;font-weight:600;color:#374151;padding:2px 8px;border-radius:9999px;border:1px solid #e5e7eb;background:#f9fafb;line-height:1;margin-left:-4px}.dark .github-stars-badge{color:#d1d5db;border-color:#374151;background:#1f2937}.github-stars-badge svg{width:12px;height:12px;fill:#fbbf24}#changelog-content h1,#changelog-content h2{font-size:1.75rem;font-weight:700;margin-top:2rem;margin-bottom:.5rem;color:#111827}.dark #changelog-content h1{color:#f9fafb}#changelog-content h2{font-size:1.35rem;font-weight:600;margin-top:1.75rem;padding-bottom:.25rem;border-bottom:1px solid #e5e7eb}.dark #changelog-content h2{color:#f9fafb;border-bottom-color:#374151}#changelog-content h3{font-size:1.1rem;font-weight:600;margin-top:1.25rem;margin-bottom:.35rem;color:#374151}.dark #changelog-content h3,.dark #changelog-content li{color:#d1d5db}#changelog-content ul{list-style:disc;padding-left:1.5rem;margin:.5rem 0}#changelog-content li{margin-bottom:.35rem;line-height:1.6;color:#374151}#changelog-content blockquote{border-left:3px solid #0178c8;padding-left:1rem;margin:1rem 0;color:#6b7280;font-style:italic}#changelog-content p{margin:.5rem 0;line-height:1.6}#changelog-content hr{border:0;border-top:1px solid #e5e7eb;margin:1.5rem 0}.dark #changelog-content hr{border-top-color:#374151}#changelog-content a{color:#0178c8;text-decoration:underline}html{color-scheme:light dark;scroll-behavior:smooth}.card,.card-group a,[role=button],a,button{transition:all .25s cubic-bezier(.4,0,.2,1)!important}@media (prefers-reduced-motion:reduce){*,::after,::before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}html{scroll-behavior:auto}}*{scrollbar-width:thin;scrollbar-color:rgba(156,163,175,.35) transparent}.dark *{scrollbar-color:rgba(156,163,175,.2) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:rgba(156,163,175,.25);border-radius:9999px}::-webkit-scrollbar-thumb:hover{background:rgba(156,163,175,.45)}.dark ::-webkit-scrollbar-thumb{background:rgba(156,163,175,.15)}.dark ::-webkit-scrollbar-thumb:hover{background:rgba(156,163,175,.35)}#navbar,.sticky,header{backdrop-filter:blur(12px) saturate(180%)!important;-webkit-backdrop-filter:blur(12px) saturate(180%)!important}.homepage-container{max-width:1200px;margin:0 auto;padding:3rem 1.5rem}@media (min-width:768px){.homepage-container{padding:5rem 2rem}}.homepage-hero{display:flex;flex-direction:column;gap:3rem;margin-bottom:5rem;align-items:center}@media (min-width:1024px){.homepage-hero{flex-direction:row;justify-content:space-between;text-align:left}}.hero-content{flex:1.2;max-width:600px}.hero-visual{flex:.8;width:100%;max-width:500px;display:flex;justify-content:center}.hero-pill-badge{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:500;color:#0178c8;background:rgba(15,151,237,.08);padding:6px 14px;border-radius:9999px;border:1px solid rgba(15,151,237,.15);margin-bottom:1.5rem}.dark .hero-pill-badge{color:#7ec8fc;background:rgba(126,200,252,.08);border-color:rgba(126,200,252,.15)}.hero-title{font-size:2.5rem;line-height:1.15;font-weight:800;color:#102963;letter-spacing:-.02em;margin-bottom:1.25rem}@media (min-width:768px){.hero-title{font-size:3.25rem}}.dark .hero-title{color:#fff}.hero-description{font-size:1.125rem;line-height:1.6;color:#4b5563;margin-bottom:2rem}.dark .hero-description{color:#9ca3af}.hero-actions{display:flex;flex-wrap:wrap;gap:1rem}.btn-primary,.btn-secondary{display:inline-flex;align-items:center;justify-content:center;font-weight:600;font-size:15px;padding:10px 22px;border-radius:8px;text-decoration:none!important}.btn-primary{background-color:#0178c8!important;color:#fff!important;border:1px solid #0178c8;box-shadow:0 4px 12px rgba(15,151,237,.15)}.btn-primary:hover{background-color:#007fd6!important;border-color:#007fd6;box-shadow:0 6px 16px rgba(15,151,237,.25);transform:translateY(-1px)}.btn-secondary{background-color:#fff!important;color:#374151!important;border:1px solid #d1d5db}.btn-secondary:hover{background-color:#f9fafb!important;border-color:#9ca3af;transform:translateY(-1px)}.dark .btn-secondary{background-color:#1e293b!important;color:#f3f4f6!important;border-color:#334155}.dark .btn-secondary:hover{background-color:#334155!important;border-color:#475569}.code-mockup-card{background-color:#0b0f19;border:1px solid #1e293b;border-radius:12px;box-shadow:0 20px 40px rgba(0,0,0,.35);width:100%;overflow:hidden;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.code-mockup-header{background-color:#121826;border-bottom:1px solid #1e293b;padding:10px 16px;display:flex;align-items:center;justify-content:space-between}.code-mockup-dots{display:flex;gap:6px}.code-mockup-dot{width:10px;height:10px;border-radius:50%}.dot-red{background-color:#ef4444}.dot-yellow{background-color:#f59e0b}.dot-green{background-color:#10b981}.code-mockup-title{color:#6b7280;font-size:12px;font-weight:500}.code-mockup-body{padding:1.25rem;font-size:13.5px;line-height:1.6;color:#e2e8f0;overflow-x:auto}.section-header{text-align:center;max-width:700px;margin:0 auto 3.5rem}.section-title{font-size:2rem;font-weight:700;color:#102963;letter-spacing:-.01em;margin-bottom:.75rem}.dark .section-title{color:#fff}.section-subtitle{font-size:1.125rem;line-height:1.5;color:#4b5563}.dark .section-subtitle{color:#9ca3af}.bento-grid{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:1.5rem;margin-bottom:5rem}@media (min-width:768px){.bento-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.bento-card{background-color:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:1.75rem;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 4px 6px -1px rgba(0,0,0,.05)}.dark .bento-card{background-color:#0f172a;border-color:#1e293b;box-shadow:0 4px 6px -1px rgba(0,0,0,.2)}.bento-card:hover{border-color:#0178c8;box-shadow:0 10px 15px -3px rgba(15,151,237,.08)}.dark .bento-card:hover{border-color:#7ec8fc;box-shadow:0 10px 15px -3px rgba(126,200,252,.08)}@media (min-width:768px){.bento-col-span-2{grid-column:span 2}}.bento-card-icon{width:42px;height:42px;border-radius:8px;background-color:rgba(15,151,237,.08);display:flex;align-items:center;justify-content:center;color:#0178c8;margin-bottom:1.25rem}.dark .bento-card-icon{background-color:rgba(126,200,252,.08);color:#7ec8fc}.bento-card-title{font-size:1.25rem;font-weight:700;color:#102963;margin-bottom:.5rem}.dark .bento-card-title{color:#fff}.bento-card-desc{font-size:14.5px;line-height:1.5;color:#4b5563}.dark .bento-card-desc{color:#9ca3af}.timeline-section{margin-bottom:5rem}.checkpoints-bar{display:flex;flex-direction:column;gap:1.25rem;border-top:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb;padding:1.25rem 1rem;margin-bottom:4rem;justify-content:space-around;align-items:center;width:100%}@media (min-width:768px){.checkpoints-bar{flex-direction:row;padding:1.5rem 2rem}}.dark .checkpoints-bar{border-color:#1e293b}.checkpoint-item{display:flex;align-items:center;gap:8px;font-size:14.5px;font-weight:500;color:#374151}.dark .checkpoint-item{color:#d1d5db}.checkpoint-icon{color:#10b981}.explorer-grid{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:1.5rem;margin-bottom:5rem}@media (min-width:640px){.explorer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.explorer-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.explorer-card{background-color:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:1.5rem;box-shadow:0 4px 6px -1px rgba(0,0,0,.05);display:flex;flex-direction:column;text-decoration:none!important;transition:all .25s cubic-bezier(.4,0,.2,1)!important;position:relative;overflow:hidden}.dark .explorer-card{background-color:#0f172a;border-color:#1e293b;box-shadow:0 4px 6px -1px rgba(0,0,0,.2)}.explorer-card:hover{transform:translateY(-2px);box-shadow:0 10px 15px -3px rgba(0,0,0,.08);border-color:#cbd5e1}.dark .explorer-card:hover{border-color:#334155;box-shadow:0 10px 15px -3px rgba(0,0,0,.25)}.explorer-card::before{content:\"\";position:absolute;top:0;left:0;right:0;height:3px;background-color:transparent}.explorer-card-blue::before{background-color:#0178c8}.explorer-card-green::before{background-color:#10b981}.explorer-card-purple::before{background-color:#7e3aed}.explorer-card-amber::before{background-color:#f59e0b}.explorer-card-navy::before{background-color:#102963}.explorer-card-pink::before{background-color:#ec4899}.custom-footer-socials a,.explorer-icon-wrapper{display:flex;align-items:center;justify-content:center;border-radius:6px}.explorer-icon-wrapper{width:36px;height:36px;margin-bottom:1rem}.explorer-icon-blue{background-color:rgba(15,151,237,.08);color:#0178c8}.explorer-icon-green{background-color:rgba(16,185,129,.08);color:#10b981}.explorer-icon-purple{background-color:rgba(126,58,237,.08);color:#7e3aed}.explorer-icon-amber{background-color:rgba(245,158,11,.08);color:#f59e0b}.explorer-icon-navy{background-color:rgba(16,41,99,.08);color:#102963}.explorer-icon-pink{background-color:rgba(236,72,153,.08);color:#ec4899}.dark .explorer-icon-navy{background-color:rgba(126,200,252,.08);color:#7ec8fc}.explorer-title{font-size:1.1rem;font-weight:700;color:#102963;margin-bottom:.5rem}.dark .explorer-title{color:#fff}.explorer-desc{font-size:13.5px;line-height:1.5;color:#4b5563}.dark .explorer-desc{color:#9ca3af}.bento-mini-table{width:100%;border-collapse:collapse;font-size:12px;margin-top:1rem;border:1px solid #e5e7eb;border-radius:6px;overflow:hidden;background-color:#f9fafb}.dark .bento-mini-table{border-color:#1e293b;background-color:#0b0f19}.bento-mini-table td,.bento-mini-table th{padding:8px 12px;text-align:left;border-bottom:1px solid #e5e7eb}.dark .bento-mini-table td,.dark .bento-mini-table th{border-bottom-color:#1e293b}.bento-mini-table th{background-color:#f3f4f6;font-weight:600;color:#374151}.dark .bento-mini-table th{background-color:#121826;color:#9ca3af}.custom-footer{margin-top:4rem;border-top:1px solid #e2e8f0;padding-top:0;padding-bottom:0;width:100%;background:#fafbfc}.dark .custom-footer{border-top-color:#1e293b;background:#0f172a}.custom-footer-brand-row{display:flex;flex-direction:column;gap:1rem;margin-bottom:2rem}@media (min-width:768px){.custom-footer-brand-row{flex-direction:row;justify-content:space-between;align-items:flex-start}}.custom-footer-brand{gap:.5rem}.custom-footer-logo-row img{height:24px}.custom-footer-desc{display:none}.custom-footer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3rem;max-width:1200px;margin:0 auto;padding:0 2rem 2rem}@media (max-width:767px){.custom-footer-grid{grid-template-columns:1fr 1fr;gap:2rem;padding:0 1.5rem 2rem}}.custom-footer-col{display:flex;flex-direction:column;gap:0}.custom-footer-heading{font-size:14px;font-weight:600;color:#0f172a;margin-bottom:1rem;letter-spacing:0;text-transform:none}.dark .custom-footer-heading,.dark .custom-footer-link:hover{color:#f1f5f9}.custom-footer-link{display:block;font-size:14px;color:#64748b;padding:6px 0;text-decoration:none!important;transition:color .15s ease;line-height:1.5}.custom-footer-link:hover{color:#0f172a}.dark .custom-footer-link{color:#94a3b8}.custom-footer-bottom{max-width:1200px;margin:0 auto;justify-content:space-between}@media (max-width:767px){.custom-footer-bottom{flex-direction:column;gap:1rem;text-align:center;padding:1.5rem}}.dark .custom-footer-bottom{border-color:#1e293b}.custom-footer-socials{gap:8px}.custom-footer-socials a{width:32px;height:32px;background:0 0;color:#94a3b8;transition:all .15s ease}.custom-footer-socials a:hover{background:#f1f5f9;color:#0f172a}.dark .custom-footer-socials a:hover{background:#1e293b;color:#f1f5f9}.custom-footer-bottom{border-top:1px solid #e5e7eb;padding:2rem 2rem 1.5rem;display:flex;flex-direction:column;gap:1.5rem;align-items:flex-start;text-align:left;width:100%}@media (min-width:768px){.custom-footer-bottom{flex-direction:row;justify-content:space-between;text-align:left;align-items:flex-start}}.custom-footer-brand{max-width:360px;display:flex;flex-direction:column;align-items:flex-start}.custom-footer-logo-row{display:flex;align-items:center;gap:10px;margin-bottom:.75rem}.custom-footer-copyright{font-size:12.5px;color:#9ca3af;margin-top:.5rem}.custom-footer-socials{display:flex;gap:1.25rem;align-items:center}@media (max-width:767px){.custom-footer-socials{margin-top:1rem}}.custom-footer-social-link{color:#4b5563;transition:color .2s ease}.custom-footer-social-link:hover{color:#0178c8}.dark .custom-footer-social-link{color:#9ca3af}.dark .custom-footer-social-link:hover{color:#7ec8fc}#page-title,h1,h2,h3,h4{text-wrap:balance}p{text-wrap:pretty}@media (max-width:767px){table{min-width:0!important}pre{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}}.gateway-router-card{background-color:#0b0f19;border:1px solid #1e293b;border-radius:12px;box-shadow:0 20px 40px rgba(0,0,0,.35);width:100%;overflow:hidden;font-family:'Inter',sans-serif;color:#e2e8f0}.router-header{background-color:#121826;border-bottom:1px solid #1e293b;padding:12px 18px;display:flex;align-items:center;justify-content:space-between}.status-indicator{display:flex;align-items:center;gap:8px}.pulse-dot{width:8px;height:8px;background-color:#10b981;border-radius:50%;box-shadow:0 0 0 0 rgba(16,185,129,.7);animation:pulse-green 2s infinite}.status-text{font-size:11px;font-weight:600;color:#10b981;text-transform:uppercase;letter-spacing:.05em}.router-title{color:#64748b;font-size:13px;font-weight:500}.router-body{padding:24px}.flow-node,.route-flow{display:flex;align-items:center}.route-flow{justify-content:space-between;background-color:#121826;border:1px solid #1e293b;border-radius:8px;padding:16px;margin-bottom:24px}.flow-node{flex-direction:column;gap:6px;font-size:12px;color:#94a3b8}.flow-node svg{color:#64748b}.active-node{color:#38bdf8;font-weight:600}.active-node svg{color:#38bdf8;filter:drop-shadow(0 0 8px rgba(56,189,248,.5))}.flow-arrow{color:#334155;font-size:16px;animation:slide-right 2s infinite linear}.gateway-list{display:flex;flex-direction:column;gap:12px}.gateway-info,.gateway-item{display:flex;align-items:center}.gateway-item{justify-content:space-between;background-color:rgba(30,41,59,.4);border:1px solid rgba(226,232,240,.05);border-radius:8px;padding:12px 16px}.gateway-info{gap:10px}.gateway-dot{width:6px;height:6px;border-radius:50%}.status-active{background-color:#10b981;box-shadow:0 0 8px #10b981}.gateway-badge{font-size:11px;background-color:rgba(56,189,248,.1);color:#38bdf8;padding:2px 8px;border-radius:4px;font-weight:500}"}],"page":{"pagePath":"payments/payment-links","slug":"/payments/payment-links","pageMetadata":{"title":"Create payment links","description":"How to create, configure, and share payment links that let customers pay you directly through a checkout URL.","keywords":"payment links, shareable URL, checkout link, variable amount, payment link options","sidebarTitle":"Payment Links","icon":"link","href":"/payments/payment-links"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"How to create, configure, and share payment links that let customers pay you directly through a checkout URL.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Table,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Payment links are shareable checkout URLs you create from the admin dashboard. Customers open the link, choose a payment method, and complete the payment - no invoice or API integration required.`}),`\n`,_jsx(Heading,{level:`2`,id:`create-a-payment-link`,children:`Create a payment link`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Go to `,_jsx(_components.strong,{children:`Payments`}),` → `,_jsx(_components.strong,{children:`Payment Links`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Click `,_jsx(_components.strong,{children:`+ Create Link`}),`.`]}),`\n`,_jsx(_components.li,{children:`Fill in the details (see options below).`}),`\n`,_jsxs(_components.li,{children:[`Click `,_jsx(_components.strong,{children:`Create Link`}),`.`]}),`\n`,_jsx(_components.li,{children:`Copy the shareable URL from the link list and send it to your customer.`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`link-options`,children:`Link options`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Option`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Title`})}),_jsx(_components.td,{children:`Text`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Name shown to the customer at checkout (for example “Consultation fee”)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Description`})}),_jsx(_components.td,{children:`Text area`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Additional instructions or details displayed on the checkout page`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Amount`})}),_jsx(_components.td,{children:`Number`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Fixed price. Leave blank to let the customer enter their own amount`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Currency`})}),_jsx(_components.td,{children:`Select`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Billing currency (must match a gateway that supports it)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Custom fields`})}),_jsx(_components.td,{children:`JSON schema`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Extra input fields the customer must fill out (for example “Order ID”)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Max uses`})}),_jsx(_components.td,{children:`Number`}),_jsx(_components.td,{children:`No`}),_jsxs(_components.td,{children:[`Maximum number of times the link can be paid. `,_jsx(_components.code,{children:`0`}),` means unlimited`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Expires at`})}),_jsx(_components.td,{children:`Date/time`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Link automatically deactivates after this date`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Redirect URL`})}),_jsx(_components.td,{children:`URL`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Where to send the customer after successful payment`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Webhook URL`})}),_jsx(_components.td,{children:`URL`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Custom webhook endpoint for this link only`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`fixed-vs-variable-amount`,children:`Fixed vs. variable amount`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Fixed amount`}),` - enter a value in the Amount field. The customer sees the price locked and cannot change it.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Variable amount`}),` - leave the Amount field blank. The checkout page shows an input where the customer types their own value. Use this for donations, tips, or flexible service fees.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`expiry-and-usage-limits`,children:`Expiry and usage limits`}),`\n`,_jsxs(_components.p,{children:[`Set `,_jsx(_components.strong,{children:`Max uses`}),` to `,_jsx(_components.code,{children:`1`}),` for single-use links (for example a specific invoice payment). Set an `,_jsx(_components.strong,{children:`Expires at`}),` date to prevent stale links from being used weeks later. When a link expires or reaches its use limit, customers see a “Link expired” message.`]}),`\n`,_jsx(Heading,{level:`2`,id:`redirect-urls`,children:`Redirect URLs`}),`\n`,_jsxs(_components.p,{children:[`When a customer completes payment, they are redirected to the `,_jsx(_components.strong,{children:`Redirect URL`}),` you configured. OwnPay appends `,_jsx(_components.code,{children:`trx_id`}),` and `,_jsx(_components.code,{children:`status`}),` as query parameters so you can confirm the result on your side.`]}),`\n`,_jsx(Heading,{level:`2`,id:`embedding-payment-links`,children:`Embedding payment links`}),`\n`,_jsxs(_components.p,{children:[`You can embed a payment link in an `,_jsx(_components.code,{children:`\u003ciframe>`}),` on your own website. Use the checkout URL as the `,_jsx(_components.code,{children:`src`}),` attribute. Make sure your website allows the OwnPay domain in your Content Security Policy headers.`]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`At least one payment gateway must be active for the link’s currency before you share it. Otherwise customers see an error at checkout with no available payment methods.`})}),`\n`,_jsx(Heading,{level:`2`,id:`related-pages`,children:`Related Pages`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/developer/quickstart`,children:`Developer quickstart`}),` - create payment links via the API`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/payments/transactions`,children:`Transactions`}),` - view payments made through payment links`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/gateways/configuration`,children:`Gateways`}),` - configure the payment methods available at checkout`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/checkout/customer-experience`,children:`Checkout experience`}),` - what customers see when they open a link`]}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":{"theme":{"light":"github-light","dark":"github-dark"}},"config":{},"pageMetadata":{"title":"Create payment links","description":"How to create, configure, and share payment links that let customers pay you directly through a checkout URL.","keywords":"payment links, shareable URL, checkout link, variable amount, payment link options","sidebarTitle":"Payment Links","icon":"link","href":"/payments/payment-links"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Create a payment link","slug":"create-a-payment-link","depth":2,"children":[]},{"title":"Link options","slug":"link-options","depth":2,"children":[]},{"title":"Fixed vs. variable amount","slug":"fixed-vs-variable-amount","depth":2,"children":[]},{"title":"Expiry and usage limits","slug":"expiry-and-usage-limits","depth":2,"children":[]},{"title":"Redirect URLs","slug":"redirect-urls","depth":2,"children":[]},{"title":"Embedding payment links","slug":"embedding-payment-links","depth":2,"children":[]},{"title":"Related Pages","slug":"related-pages","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/ownpay/bc03f67168c469e9/script.js"],"subdomain":"ownpay","siteName":"OwnPay","title":"Create payment links - OwnPay","relatedPagesConfig":{"enabled":true,"limit":5,"mode":"automatic"},"contextualStarterQuestions":[{"_id":"6a8d3b6f3a3ee223ca159641","deploymentId":"6a4eb393b0b17ad26d4e5eea","questionText":"What happens after payment?","status":"active","generatedBy":"contextual","path":"payments/payment-links","createdAt":"2026-08-25T06:51:27.180Z","updatedAt":"2026-08-25T06:51:27.180Z","__v":0},{"_id":"6a8d3b6f3a3ee223ca159640","deploymentId":"6a4eb393b0b17ad26d4e5eea","questionText":"Can customers set their own amount?","status":"active","generatedBy":"contextual","path":"payments/payment-links","createdAt":"2026-08-25T06:51:27.180Z","updatedAt":"2026-08-25T06:51:27.180Z","__v":0},{"_id":"6a8d3b6f3a3ee223ca15963f","deploymentId":"6a4eb393b0b17ad26d4e5eea","questionText":"How do I create a payment link?","status":"active","generatedBy":"contextual","path":"payments/payment-links","createdAt":"2026-08-25T06:51:27.180Z","updatedAt":"2026-08-25T06:51:27.180Z","__v":0}],"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/payments/payment-links","matchLevel":0},"zh":{"href":"/zh/introduction","matchLevel":4}}},"lastModified":"2026-08-25T06:51:08.987Z","gitLastModified":"2026-08-25T12:02:04.000Z","originalFileLocation":"payments/payment-links.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"How to create, configure, and share payment links that let customers pay you directly through a checkout URL.\">\u003cmeta data-mint-head name=\"application-name\" content=\"OwnPay\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003cmeta data-mint-head name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/ownpay/JIvzQy_7GPsgYuLC/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/ownpay/JIvzQy_7GPsgYuLC/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/ownpay/JIvzQy_7GPsgYuLC/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/ownpay/JIvzQy_7GPsgYuLC/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/ownpay/JIvzQy_7GPsgYuLC/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/ownpay/JIvzQy_7GPsgYuLC/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/ownpay/JIvzQy_7GPsgYuLC/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/ownpay/JIvzQy_7GPsgYuLC/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/ownpay/JIvzQy_7GPsgYuLC/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create payment links - OwnPay\">\u003cmeta data-mint-head property=\"og:description\" content=\"How to create, configure, and share payment links that let customers pay you directly through a checkout URL.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"OwnPay Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://ownpay.org/docs/payments/payment-links\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://ownpay.mintlify.app/_mintlify/api/og/v2?division=Payments\u0026amp;title=Create+payment+links\u0026amp;description=How+to+create%2C+configure%2C+and+share+payment+links+that+let+customers+pay+you+directly+through+a+checkout+URL.\u0026amp;theme=104e90172858186ecb085a5d\u0026amp;signature=1577bd459e5e099ca636a33660eb8cbb0262f6ece276ee42ba6e914be1d19c74\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Create payment links - OwnPay\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"How to create, configure, and share payment links that let customers pay you directly through a checkout URL.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://ownpay.mintlify.app/_mintlify/api/og/v2?division=Payments\u0026amp;title=Create+payment+links\u0026amp;description=How+to+create%2C+configure%2C+and+share+payment+links+that+let+customers+pay+you+directly+through+a+checkout+URL.\u0026amp;theme=104e90172858186ecb085a5d\u0026amp;signature=1577bd459e5e099ca636a33660eb8cbb0262f6ece276ee42ba6e914be1d19c74\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/ownpay/JIvzQy_7GPsgYuLC/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"OwnPay\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0F97ED\">\u003cmeta data-mint-head name=\"og:locale\" content=\"en_US\">\u003cmeta data-mint-head name=\"fb:app_id\" content=\"2933285433703137\">\u003cmeta data-mint-head name=\"og:image:alt\" content=\"OwnPay - Open-Source, Self-Hosted Payment Gateway Platform\">\u003clink data-mint-head rel=\"canonical\" href=\"https://ownpay.org/docs/payments/payment-links\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/payments/payment-links.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://ownpay.org/#organization\",\"name\":\"OwnPay\",\"legalName\":\"OwnPay\",\"url\":\"https://ownpay.org\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://ownpay.org/docs/logo/light.svg\"},\"sameAs\":[\"https://github.com/own-pay/OwnPay\",\"https://x.com/ownpayorg\",\"https://youtube.com/@ownpayorg\",\"https://facebook.com/ownpay.org\",\"https://github.com/own-pay\",\"https://www.npmjs.com/package/ownpay-nodejs\",\"https://marketplace.whmcs.com/product/8845-ownpay-whmcs\",\"https://github.com/own-pay/OwnPay-Mobile-App\",\"https://facebook.com/groups/ownpay.org\"]},{\"@type\":\"WebSite\",\"@id\":\"https://ownpay.org/docs#website\",\"name\":\"OwnPay\",\"url\":\"https://ownpay.org/docs\",\"publisher\":{\"@id\":\"https://ownpay.org/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://ownpay.org/docs/payments/payment-links#webpage\",\"url\":\"https://ownpay.org/docs/payments/payment-links\",\"name\":\"Create payment links\",\"description\":\"How to create, configure, and share payment links that let customers pay you directly through a checkout URL.\",\"dateModified\":\"2026-08-25T12:02:04.000Z\",\"isPartOf\":{\"@id\":\"https://ownpay.org/docs#website\"},\"breadcrumb\":{\"@id\":\"https://ownpay.org/docs/payments/payment-links#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://ownpay.org/docs/payments/payment-links#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"OwnPay\",\"item\":\"https://ownpay.org/docs\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create payment links\",\"item\":\"https://ownpay.org/docs/payments/payment-links\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://ownpay.org/docs/payments/payment-links#article\",\"headline\":\"Create payment links\",\"name\":\"Create payment links\",\"description\":\"How to create, configure, and share payment links that let customers pay you directly through a checkout URL.\",\"url\":\"https://ownpay.org/docs/payments/payment-links\",\"mainEntityOfPage\":{\"@id\":\"https://ownpay.org/docs/payments/payment-links#webpage\"},\"dateModified\":\"2026-08-25T12:02:04.000Z\",\"publisher\":{\"@id\":\"https://ownpay.org/#organization\"},\"isPartOf\":{\"@id\":\"https://ownpay.org/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"OwnPay\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"OwnPay","nav":{"global":{"anchors":[{"anchor":"Changelog","icon":"history","href":"/resources/changelog"}]},"languages":[{"language":"en","default":true,"tabs":[{"tab":"Documentation","icon":"book","groups":[{"group":"Get Started","icon":"rocket","pages":[{"title":"OwnPay: Self-Hosted Payment Orchestrator","sidebarTitle":"Introduction","icon":"bolt","href":"/introduction"},{"title":"Quickstart - Accept Your First Payment in 5 Minutes","sidebarTitle":"Quickstart","icon":"rocket","href":"/quickstart"},{"title":"Install OwnPay on Shared Hosting, VPS, or Docker","sidebarTitle":"Installation","icon":"feather","href":"/installation"}]},{"group":"Fundamentals","icon":"stack-2","pages":[{"title":"How OwnPay Works","sidebarTitle":"How OwnPay Works","icon":"brain","href":"/fundamentals/how-ownpay-works"},{"title":"Brands - Multi-Tenant Merchant Isolation","sidebarTitle":"Brands","icon":"building-store","href":"/fundamentals/brands"},{"title":"Payment Flow - Transaction Statuses and Lifecycle","sidebarTitle":"Payment Flow","icon":"cash","href":"/fundamentals/payment-flow"},{"title":"Gateways - Payment Provider Integrations","sidebarTitle":"Gateways","icon":"wallet","href":"/fundamentals/gateways"},{"title":"Ledger - Double-Entry Bookkeeping for Payments","sidebarTitle":"Ledger","icon":"book","href":"/fundamentals/ledger"},{"title":"Plugin System - Extensible Architecture","sidebarTitle":"Plugins","icon":"puzzle","href":"/fundamentals/plugins"},{"title":"Custom Domains - White-Label Checkout URLs","sidebarTitle":"Domains","icon":"world","href":"/fundamentals/domains"}]},{"group":"People","icon":"users","pages":[{"title":"Create and manage brands","sidebarTitle":"Brands","icon":"building-store","href":"/people/brands"},{"title":"Invite and manage staff","sidebarTitle":"Staff","icon":"user-plus","href":"/people/staff"},{"title":"Roles and permissions","sidebarTitle":"Roles","icon":"shield-check","href":"/people/roles"},{"title":"Customer profiles","description":"How customer profiles are auto-created, what fields they store, and how to search and view customer data in OwnPay.","sidebarTitle":"Customers","icon":"id","href":"/people/customers"}]},{"group":"Payments","icon":"credit-card","pages":[{"title":"Create payment links","sidebarTitle":"Payment Links","icon":"link","href":"/payments/payment-links"},{"title":"Transaction management","description":"How to view, search, filter, and manage transactions in the OwnPay admin dashboard. The canonical reference for transaction UI operations.","sidebarTitle":"Transactions","icon":"receipt","href":"/payments/transactions"},{"title":"Issue refunds","sidebarTitle":"Refunds","icon":"rotate","href":"/payments/refunds"},{"title":"Create and manage invoices","sidebarTitle":"Invoices","icon":"file-text","href":"/payments/invoices"},{"title":"Ledger UI","sidebarTitle":"Ledger","icon":"book","href":"/payments/ledger"}]},{"group":"Gateways \u0026 Currencies","icon":"wallet","pages":[{"title":"Configure payment gateways","sidebarTitle":"Gateways","icon":"settings","href":"/gateways/configuration"},{"title":"Manual payment methods","sidebarTitle":"Manual Methods","icon":"cash","href":"/gateways/manual-methods"},{"title":"Manage currencies and exchange rates","sidebarTitle":"Currencies","icon":"coins","href":"/gateways/currencies"},{"title":"SMS auto-verification","sidebarTitle":"SMS Verification","icon":"message-circle","href":"/gateways/sms-verification"}]},{"group":"Appearance","icon":"palette","pages":[{"title":"Brand identity settings","sidebarTitle":"Branding","icon":"brush","href":"/appearance/branding"},{"title":"Checkout themes","sidebarTitle":"Themes","icon":"palette","href":"/appearance/themes"},{"title":"Landing page configuration","sidebarTitle":"Landing Page","icon":"app-window","href":"/appearance/landing-page"}]},{"group":"Notifications","icon":"bell","pages":[{"title":"Email Notifications","sidebarTitle":"Email","icon":"mail","href":"/notifications/email"},{"title":"Webhooks","sidebarTitle":"Webhooks","icon":"webhook","href":"/notifications/webhooks"},{"title":"Telegram Notifications","sidebarTitle":"Telegram","icon":"send","href":"/notifications/telegram"},{"title":"SMS Center","sidebarTitle":"SMS Center","icon":"message","href":"/notifications/sms-center"}]},{"group":"Mobile","icon":"device-mobile","pages":[{"title":"Companion App","sidebarTitle":"Companion App","icon":"device-mobile","href":"/mobile/companion-app"},{"title":"Devices","sidebarTitle":"Devices","icon":"device-mobile","href":"/mobile/devices"},{"title":"SMS Templates","sidebarTitle":"SMS Templates","icon":"file-code","href":"/mobile/sms-templates"}]},{"group":"Reports \u0026 Finance","icon":"chart-bar","pages":[{"title":"Dashboard","sidebarTitle":"Dashboard","icon":"layout-dashboard","href":"/reports/dashboard"},{"title":"Audit Log","sidebarTitle":"Audit Log","icon":"scroll","href":"/reports/audit-log"},{"title":"Balance Verification","sidebarTitle":"Balance Verification","icon":"scale","href":"/reports/balance-verification"},{"title":"Disputes","sidebarTitle":"Disputes","icon":"alert-circle","href":"/reports/disputes"}]},{"group":"System","icon":"settings","pages":[{"title":"Settings","sidebarTitle":"Settings","icon":"settings","href":"/system/settings"},{"title":"Domains","sidebarTitle":"Domains","icon":"world","href":"/system/domains"},{"title":"Plugins","sidebarTitle":"Plugins","icon":"puzzle","href":"/system/plugins"},{"title":"Addons","sidebarTitle":"Addons","icon":"package","href":"/system/addons"},{"title":"Languages","sidebarTitle":"Languages","icon":"language","href":"/system/languages"},{"title":"System Update","sidebarTitle":"System Update","icon":"refresh","href":"/system/system-update"}]},{"group":"Security \u0026 Access","icon":"lock","pages":[{"title":"Login","sidebarTitle":"Login","icon":"login","href":"/security/login"},{"title":"Two-Factor Authentication","sidebarTitle":"Two-Factor Authentication","icon":"shield","href":"/security/two-factor"},{"title":"Password Reset","sidebarTitle":"Password Reset","icon":"key","href":"/security/password-reset"},{"title":"API Keys","sidebarTitle":"API Keys","icon":"key","href":"/security/api-keys"},{"title":"Developer Hub","sidebarTitle":"Developer Hub","icon":"terminal","href":"/security/developer-hub"},{"title":"My Account","sidebarTitle":"My Account","icon":"user","href":"/security/my-account"}]},{"group":"Checkout","icon":"shopping-cart","pages":[{"title":"Customer Experience","sidebarTitle":"Customer Experience","icon":"shopping-bag","href":"/checkout/customer-experience"}]}]},{"tab":"API Reference","icon":"terminal-2","pages":[{"title":"API Reference","href":"/api/overview"}]},{"tab":"Developer","icon":"code","pages":[{"title":"Developer","href":"/developer/quickstart"}]},{"tab":"Resources","icon":"folder","pages":[{"title":"Resources","href":"/resources/features"}]}]},{"language":"zh","pages":[{"title":"zh","href":"/zh/introduction"}]}]},"title":"Create payment links - OwnPay","buildId":"dpl_3rfzHPCtRhDFBbetXZ3oLkN5tjmA","deploymentId":"dpl_3rfzHPCtRhDFBbetXZ3oLkN5tjmA","dynamics":["10e4515597"],"chunks":["BannerMarkdown-3zwwRfY7.js","dist-DMuJXOAm.js","lib--scc4DXi.js","lib-B8HbPgcC.js","clsx-eUAxaTXI.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js"]}