How to create invoices with line items, send them to customers, track payment status, and generate PDF receipts in OwnPay.
Invoices are structured payment requests you send to customers. Each invoice generates a unique checkout link where the customer can pay using any active gateway. Invoices differ from payment links because they carry line items, a due date, and a formal invoice number.
When you create an invoice, OwnPay generates a payment link behind the scenes. The customer clicks the invoice link, sees the itemized total, and completes payment through the checkout. You can also create standalone payment links without line items - see Payment links.
Open an invoice and click Download PDF to get a formatted receipt. The PDF includes your brand logo, the customer’s details, all line items, the total amount, and the payment status. Use this for accounting records or to email to the customer as a receipt.
Click Send via Email on any invoice in Sent or Draft status. OwnPay sends the customer an email with the invoice details and the payment link. The email uses your brand’s SMTP configuration and support email as the sender.
OwnPay does not auto-increment invoice numbers. You set the number manually when you create each invoice. This gives you flexibility to match your existing accounting system (for example INV-2025-0042, REC-0042, or any format you prefer).
Every invoice must have at least one line item with a quantity and unit price greater than zero. An invoice with no line items or a total of 0.00 cannot be paid.
{"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":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"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/invoices","slug":"/payments/invoices","pageMetadata":{"title":"Create and manage invoices","description":"How to create invoices with line items, send them to customers, track payment status, and generate PDF receipts in OwnPay.","keywords":"invoices, invoice creation, invoice PDF, invoice status, invoice numbering","sidebarTitle":"Invoices","icon":"file-text","href":"/payments/invoices"},"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 invoices with line items, send them to customers, track payment status, and generate PDF receipts in OwnPay.\"\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:`Invoices are structured payment requests you send to customers. Each invoice generates a unique checkout link where the customer can pay using any active gateway. Invoices differ from payment links because they carry line items, a due date, and a formal invoice number.`}),`\n`,_jsx(Heading,{level:`2`,id:`how-invoices-relate-to-payment-links`,children:`How invoices relate to payment links`}),`\n`,_jsxs(_components.p,{children:[`When you create an invoice, OwnPay generates a payment link behind the scenes. The customer clicks the invoice link, sees the itemized total, and completes payment through the checkout. You can also create standalone payment links without line items - see `,_jsx(_components.a,{href:`/payments/payment-links`,children:`Payment links`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`create-an-invoice`,children:`Create an invoice`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Go to `,_jsx(_components.strong,{children:`Payments`}),` → `,_jsx(_components.strong,{children:`Invoices`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Click `,_jsx(_components.strong,{children:`+ Create Invoice`}),`.`]}),`\n`,_jsx(_components.li,{children:`Fill in the invoice details (see table below).`}),`\n`,_jsxs(_components.li,{children:[`Add one or more `,_jsx(_components.strong,{children:`line items`}),` with a description, quantity, and unit price.`]}),`\n`,_jsxs(_components.li,{children:[`Click `,_jsx(_components.strong,{children:`Create Invoice`}),`.`]}),`\n`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_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:`Invoice number`})}),_jsx(_components.td,{children:`Yes`}),_jsxs(_components.td,{children:[`Unique serial (for example `,_jsx(_components.code,{children:`INV-2025-0042`}),`). The system does not auto-generate this - you control the numbering scheme`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Customer`})}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Select from existing customer profiles`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Currency`})}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Billing currency for this invoice`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Due date`})}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Deadline for payment`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Notes`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Instructions shown to the customer on the checkout page`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Line item description`})}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`What the customer is being billed for`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Quantity`})}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Number of units (default 1)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Unit price`})}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Price per unit`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`invoice-statuses`,children:`Invoice statuses`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Status`}),_jsx(_components.th,{children:`Meaning`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Draft`})}),_jsx(_components.td,{children:`Saved but not yet shared with the customer`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Sent`})}),_jsx(_components.td,{children:`Checkout link has been generated and can be shared`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Paid`})}),_jsx(_components.td,{children:`Customer completed payment through the checkout link`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Overdue`})}),_jsx(_components.td,{children:`Due date passed without payment`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Cancelled`})}),_jsx(_components.td,{children:`Invoice was voided and is no longer payable`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`generate-invoice-pdfs`,children:`Generate invoice PDFs`}),`\n`,_jsxs(_components.p,{children:[`Open an invoice and click `,_jsx(_components.strong,{children:`Download PDF`}),` to get a formatted receipt. The PDF includes your brand logo, the customer’s details, all line items, the total amount, and the payment status. Use this for accounting records or to email to the customer as a receipt.`]}),`\n`,_jsx(Heading,{level:`2`,id:`send-invoices-via-email`,children:`Send invoices via email`}),`\n`,_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Send via Email`}),` on any invoice in Sent or Draft status. OwnPay sends the customer an email with the invoice details and the payment link. The email uses your brand’s SMTP configuration and support email as the sender.`]}),`\n`,_jsx(Heading,{level:`2`,id:`invoice-numbering`,children:`Invoice numbering`}),`\n`,_jsxs(_components.p,{children:[`OwnPay does not auto-increment invoice numbers. You set the number manually when you create each invoice. This gives you flexibility to match your existing accounting system (for example `,_jsx(_components.code,{children:`INV-2025-0042`}),`, `,_jsx(_components.code,{children:`REC-0042`}),`, or any format you prefer).`]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Every invoice must have at least one line item with a quantity and unit price greater than zero. An invoice with no line items or a total of 0.00 cannot be paid.`})}),`\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:`/payments/payment-links`,children:`Payment links`}),` - create simple shareable payment URLs`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/payments/transactions`,children:`Transactions`}),` - view payments from paid invoices`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/people/customers`,children:`Customers`}),` - manage customer profiles for invoicing`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/payments/ledger`,children:`Ledger`}),` - accounting entries from invoice payments`]}),`\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 and manage invoices","description":"How to create invoices with line items, send them to customers, track payment status, and generate PDF receipts in OwnPay.","keywords":"invoices, invoice creation, invoice PDF, invoice status, invoice numbering","sidebarTitle":"Invoices","icon":"file-text","href":"/payments/invoices"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"How invoices relate to payment links","slug":"how-invoices-relate-to-payment-links","depth":2,"children":[]},{"title":"Create an invoice","slug":"create-an-invoice","depth":2,"children":[]},{"title":"Invoice statuses","slug":"invoice-statuses","depth":2,"children":[]},{"title":"Generate invoice PDFs","slug":"generate-invoice-pdfs","depth":2,"children":[]},{"title":"Send invoices via email","slug":"send-invoices-via-email","depth":2,"children":[]},{"title":"Invoice numbering","slug":"invoice-numbering","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 and manage invoices - OwnPay","relatedPagesConfig":{"enabled":true,"limit":5,"mode":"automatic"},"contextualStarterQuestions":[{"_id":"6a8d3b6f3a3ee223ca159657","deploymentId":"6a4eb393b0b17ad26d4e5eea","questionText":"How do I create an invoice?","status":"active","generatedBy":"contextual","path":"payments/invoices","createdAt":"2026-08-25T06:51:27.657Z","updatedAt":"2026-08-25T06:51:27.657Z","__v":0},{"_id":"6a8d3b6f3a3ee223ca159658","deploymentId":"6a4eb393b0b17ad26d4e5eea","questionText":"Can I add line items to invoices?","status":"active","generatedBy":"contextual","path":"payments/invoices","createdAt":"2026-08-25T06:51:27.657Z","updatedAt":"2026-08-25T06:51:27.657Z","__v":0}],"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/payments/invoices","matchLevel":0},"zh":{"href":"/zh/introduction","matchLevel":4}}},"lastModified":"2026-08-25T06:51:09.016Z","gitLastModified":"2026-08-25T12:02:04.000Z","originalFileLocation":"payments/invoices.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 invoices with line items, send them to customers, track payment status, and generate PDF receipts in OwnPay.\">\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 and manage invoices - OwnPay\">\u003cmeta data-mint-head property=\"og:description\" content=\"How to create invoices with line items, send them to customers, track payment status, and generate PDF receipts in OwnPay.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"OwnPay Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://ownpay.org/docs/payments/invoices\">\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+and+manage+invoices\u0026amp;description=How+to+create+invoices+with+line+items%2C+send+them+to+customers%2C+track+payment+status%2C+and+generate+PDF+receipts+in+OwnPay.\u0026amp;theme=104e90172858186ecb085a5d\u0026amp;signature=8cd5c0c76cb961ce2d2ff08909f30daacf1f61d785de36b013fc756a5ad705c9\">\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 and manage invoices - OwnPay\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"How to create invoices with line items, send them to customers, track payment status, and generate PDF receipts in OwnPay.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://ownpay.mintlify.app/_mintlify/api/og/v2?division=Payments\u0026amp;title=Create+and+manage+invoices\u0026amp;description=How+to+create+invoices+with+line+items%2C+send+them+to+customers%2C+track+payment+status%2C+and+generate+PDF+receipts+in+OwnPay.\u0026amp;theme=104e90172858186ecb085a5d\u0026amp;signature=8cd5c0c76cb961ce2d2ff08909f30daacf1f61d785de36b013fc756a5ad705c9\">\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/invoices\">\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/invoices.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/invoices#webpage\",\"url\":\"https://ownpay.org/docs/payments/invoices\",\"name\":\"Create and manage invoices\",\"description\":\"How to create invoices with line items, send them to customers, track payment status, and generate PDF receipts in OwnPay.\",\"dateModified\":\"2026-08-25T12:02:04.000Z\",\"isPartOf\":{\"@id\":\"https://ownpay.org/docs#website\"},\"breadcrumb\":{\"@id\":\"https://ownpay.org/docs/payments/invoices#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://ownpay.org/docs/payments/invoices#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Payments\",\"item\":\"https://ownpay.org/docs/payments/payment-links\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create and manage invoices\",\"item\":\"https://ownpay.org/docs/payments/invoices\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://ownpay.org/docs/payments/invoices#article\",\"headline\":\"Create and manage invoices\",\"name\":\"Create and manage invoices\",\"description\":\"How to create invoices with line items, send them to customers, track payment status, and generate PDF receipts in OwnPay.\",\"url\":\"https://ownpay.org/docs/payments/invoices\",\"mainEntityOfPage\":{\"@id\":\"https://ownpay.org/docs/payments/invoices#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","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","sidebarTitle":"Transactions","icon":"receipt","href":"/payments/transactions"},{"title":"Issue refunds","description":"How to issue full or partial refunds, understand gateway-specific refund behavior, and troubleshoot failed refunds in OwnPay.","sidebarTitle":"Refunds","icon":"rotate","href":"/payments/refunds"},{"title":"Create and manage invoices","sidebarTitle":"Invoices","icon":"file-text","href":"/payments/invoices"},{"title":"Ledger UI","description":"How to use the ledger page to view journal entries, filter by account type and date, and check balance summaries in OwnPay.","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 and manage invoices - 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"]}