{"openapi":"3.1.0","info":{"title":"LNemail","version":"0.5.0"},"paths":{"/api/v1/email":{"post":{"summary":"Create Email Account","description":"Create a new email account and generate Lightning invoice.\n\nArgs:\n    background_tasks: FastAPI background tasks\n    db: Database session dependency\n\nReturns:\n    Invoice details and payment instructions","operationId":"create_email_account_api_v1_email_post","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/EmailCreateRequest"},{"type":"null"}],"title":"Request Data"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvoiceResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/email/{payment_hash}/new-invoice":{"post":{"summary":"New Account Invoice","description":"Re-issue the signup invoice from a different payment provider.\n\nLets a user who cannot pay the current invoice get a fresh one (from\nanother provider when configured) for the same pending account. The\nold invoice's ``payment_hash`` is replaced.","operationId":"new_account_invoice_api_v1_email__payment_hash__new_invoice_post","parameters":[{"name":"payment_hash","in":"path","required":true,"schema":{"type":"string","title":"Payment Hash"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NewInvoiceRequest"},{"type":"null"}],"title":"Request Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvoiceResponse"}}}},"404":{"description":"Pending payment not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Account already paid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/payment/{payment_hash}":{"get":{"summary":"Check Payment","description":"Check payment status for a given payment hash.\n\nArgs:\n    payment_hash: The Lightning payment hash to check\n    db: Database session dependency\n\nReturns:\n    Payment status and account details if paid","operationId":"check_payment_api_v1_payment__payment_hash__get","parameters":[{"name":"payment_hash","in":"path","required":true,"schema":{"type":"string","title":"Payment Hash"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentStatusResponse"}}}},"404":{"description":"Payment not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/email/send":{"post":{"summary":"Send Email","description":"Initiate sending an email from the authenticated account.\n\nGenerates a Lightning invoice that the user must pay to send the email.\nThe email itself will be sent in a background task after the invoice is paid.\n\nArgs:\n    send_request: Details of the email to send (recipient, subject, body).\n    account: Authenticated EmailAccount from token validation.\n    db: Database session dependency.\n\nReturns:\n    EmailSendInvoiceResponse: Details of the Lightning invoice to pay.","operationId":"send_email_api_v1_email_send_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailSendRequest"}}},"required":true},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailSendInvoiceResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Account not paid or expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/email/send/{payment_hash}/new-invoice":{"post":{"summary":"New Send Invoice","description":"Re-issue an outgoing-email invoice from a different provider.","operationId":"new_send_invoice_api_v1_email_send__payment_hash__new_invoice_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"payment_hash","in":"path","required":true,"schema":{"type":"string","title":"Payment Hash"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NewInvoiceRequest"},{"type":"null"}],"title":"Request Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailSendInvoiceResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Pending send not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Send already paid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/email/send/status/{payment_hash}":{"get":{"summary":"Check Send Email Payment Status","description":"Check payment and delivery status for an outgoing email send.","operationId":"check_send_email_payment_status_api_v1_email_send_status__payment_hash__get","parameters":[{"name":"payment_hash","in":"path","required":true,"schema":{"type":"string","title":"Payment Hash"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailSendStatusResponse"}}}},"404":{"description":"Payment not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/email/sends/recent":{"get":{"summary":"Get Recent Sends","description":"Get recent email sends for the authenticated account.","operationId":"get_recent_sends_api_v1_email_sends_recent_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecentSendsResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Account not paid or expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/account":{"get":{"summary":"Get Account","description":"Get account details for the authenticated user.","operationId":"get_account_api_v1_account_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Account not paid or expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/emails":{"get":{"summary":"List Emails","description":"List emails for the authenticated account.\n\nArgs:\n    account: Authenticated EmailAccount from token validation\n\nReturns:\n    List of email headers","operationId":"list_emails_api_v1_emails_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailListResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Account not paid or expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]},"delete":{"summary":"Delete Emails Bulk","description":"Delete multiple emails in bulk.\n\nArgs:\n    delete_request: List of email IDs to delete\n    account: Authenticated EmailAccount from token validation\n\nReturns:\n    EmailDeleteResponse: Result of the bulk deletion operation","operationId":"delete_emails_bulk_api_v1_emails_delete","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDeleteRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDeleteResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Account not paid or expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/emails/{email_id}":{"get":{"summary":"Get Email","description":"Get detailed content of a specific email.\n\nArgs:\n    email_id: ID of the email to retrieve\n    account: Authenticated EmailAccount from token validation\n\nReturns:\n    Detailed email content","operationId":"get_email_api_v1_emails__email_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"email_id","in":"path","required":true,"schema":{"type":"string","title":"Email Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailContent"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Account not paid or expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Email not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete Email","description":"Delete a specific email.\n\nArgs:\n    email_id: ID of the email to delete\n    account: Authenticated EmailAccount from token validation\n\nReturns:\n    EmailDeleteResponse: Result of the deletion operation","operationId":"delete_email_api_v1_emails__email_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"email_id","in":"path","required":true,"schema":{"type":"string","title":"Email Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDeleteResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Account not paid or expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Email not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/account/renew":{"post":{"summary":"Renew Account","description":"Initiate account renewal by creating a Lightning invoice.\n\nGenerates a Lightning invoice for the renewal payment. The account\nexpiration will be extended after payment is confirmed. If the account\nis currently expired (within the grace period), the new expiration is\ncalculated from the old expiration date, not from today.\n\nArgs:\n    renewal_request: Optional request with number of years (default 1).\n    account: Authenticated EmailAccount from token validation.\n    db: Database session dependency.\n\nReturns:\n    RenewalInvoiceResponse: Lightning invoice details for renewal payment.","operationId":"renew_account_api_v1_account_renew_post","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/RenewalRequest"},{"type":"null"}],"title":"Renewal Request"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RenewalInvoiceResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Account not eligible for renewal","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/account/renew/{payment_hash}/new-invoice":{"post":{"summary":"New Renewal Invoice","description":"Re-issue a renewal invoice from a different provider.","operationId":"new_renewal_invoice_api_v1_account_renew__payment_hash__new_invoice_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"payment_hash","in":"path","required":true,"schema":{"type":"string","title":"Payment Hash"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/NewInvoiceRequest"},{"type":"null"}],"title":"Request Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RenewalInvoiceResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Renewal payment not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/account/renew/status/{payment_hash}":{"get":{"summary":"Check Renewal Status","description":"Check payment status for a renewal invoice.\n\nArgs:\n    payment_hash: The Lightning payment hash to check.\n    db: Database session dependency.\n\nReturns:\n    RenewalStatusResponse: Current renewal payment status.","operationId":"check_renewal_status_api_v1_account_renew_status__payment_hash__get","parameters":[{"name":"payment_hash","in":"path","required":true,"schema":{"type":"string","title":"Payment Hash"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RenewalStatusResponse"}}}},"404":{"description":"Payment not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/health":{"get":{"tags":["health","health"],"summary":"Health Check","description":"Health check endpoint.\n\nReturns:\n    Health status information","operationId":"health_check_api_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"}}}}}}},"/api/v1/health":{"get":{"tags":["health","health"],"summary":"Health Check","description":"Health check endpoint.\n\nReturns:\n    Health status information","operationId":"health_check_api_v1_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"}}}}}}},"/":{"get":{"summary":"Index","description":"Home page with payment interface and service information.","operationId":"index__get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/inbox":{"get":{"summary":"Inbox","description":"Inbox access page for authenticated users.","operationId":"inbox_inbox_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/tos":{"get":{"summary":"Tos","description":"Terms of Service page.","operationId":"tos_tos_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}}},"components":{"schemas":{"AccountResponse":{"properties":{"email_address":{"type":"string","title":"Email Address"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"is_expired":{"type":"boolean","title":"Is Expired","default":false},"days_until_expiry":{"type":"integer","title":"Days Until Expiry","default":0},"renewal_eligible":{"type":"boolean","title":"Renewal Eligible","default":false}},"type":"object","required":["email_address","expires_at"],"title":"AccountResponse"},"EmailAttachment":{"properties":{"filename":{"type":"string","title":"Filename"},"content_type":{"type":"string","title":"Content Type"},"size":{"type":"integer","title":"Size"},"content":{"type":"string","title":"Content"},"encoding":{"type":"string","title":"Encoding"}},"type":"object","required":["filename","content_type","size","content","encoding"],"title":"EmailAttachment","description":"Schema for an email attachment."},"EmailContent":{"properties":{"id":{"type":"string","title":"Id"},"subject":{"type":"string","title":"Subject"},"sender":{"type":"string","title":"Sender"},"date":{"type":"string","title":"Date"},"body":{"type":"string","title":"Body"},"body_plain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Body Plain"},"body_html":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Body Html"},"content_type":{"type":"string","title":"Content Type"},"attachments":{"items":{"$ref":"#/components/schemas/EmailAttachment"},"type":"array","title":"Attachments"},"read":{"type":"boolean","title":"Read"},"message_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message Id"},"references":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"References"}},"type":"object","required":["id","subject","sender","date","body","content_type","attachments","read"],"title":"EmailContent","description":"Response schema for detailed email content."},"EmailCreateRequest":{"properties":{"include_email":{"type":"boolean","title":"Include Email","default":false},"include_token":{"type":"boolean","title":"Include Token","default":false}},"type":"object","title":"EmailCreateRequest"},"EmailDeleteRequest":{"properties":{"email_ids":{"items":{"type":"string"},"type":"array","title":"Email Ids"}},"type":"object","required":["email_ids"],"title":"EmailDeleteRequest","description":"Request schema for deleting emails."},"EmailDeleteResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"deleted_count":{"type":"integer","title":"Deleted Count"},"failed_ids":{"items":{"type":"string"},"type":"array","title":"Failed Ids"},"message":{"type":"string","title":"Message"}},"type":"object","required":["success","deleted_count","message"],"title":"EmailDeleteResponse","description":"Response schema for email deletion operations."},"EmailHeader":{"properties":{"id":{"type":"string","title":"Id"},"subject":{"type":"string","title":"Subject"},"sender":{"type":"string","title":"Sender"},"date":{"type":"string","title":"Date"},"read":{"type":"boolean","title":"Read"}},"type":"object","required":["id","subject","sender","date","read"],"title":"EmailHeader","description":"Schema for email list items with metadata only."},"EmailListResponse":{"properties":{"emails":{"items":{"$ref":"#/components/schemas/EmailHeader"},"type":"array","title":"Emails"}},"type":"object","required":["emails"],"title":"EmailListResponse","description":"Response schema for email listing endpoint."},"EmailSendInvoiceResponse":{"properties":{"payment_request":{"type":"string","title":"Payment Request"},"payment_hash":{"type":"string","title":"Payment Hash"},"price_sats":{"type":"integer","title":"Price Sats"},"sender_email":{"type":"string","title":"Sender Email"},"recipient":{"type":"string","title":"Recipient"},"subject":{"type":"string","title":"Subject"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider"}},"type":"object","required":["payment_request","payment_hash","price_sats","sender_email","recipient","subject"],"title":"EmailSendInvoiceResponse","description":"Response schema for initiating an email send, returning an invoice."},"EmailSendRequest":{"properties":{"recipient":{"type":"string","title":"Recipient"},"subject":{"type":"string","title":"Subject"},"body":{"type":"string","title":"Body"},"in_reply_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"In Reply To"},"references":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"References"},"attachments":{"items":{"$ref":"#/components/schemas/SendAttachment"},"type":"array","title":"Attachments"}},"type":"object","required":["recipient","subject","body"],"title":"EmailSendRequest","description":"Request schema for sending an email."},"EmailSendStatusResponse":{"properties":{"payment_status":{"type":"string","title":"Payment Status"},"delivery_status":{"type":"string","title":"Delivery Status"},"delivery_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Delivery Error"},"sender_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sender Email"},"recipient":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recipient"},"subject":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject"},"sent_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Sent At"},"retry_count":{"type":"integer","title":"Retry Count","default":0}},"type":"object","required":["payment_status","delivery_status"],"title":"EmailSendStatusResponse","description":"Response schema for checking payment and delivery status."},"ErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail"}},"type":"object","required":["detail"],"title":"ErrorResponse","description":"Standard error response schema."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthResponse":{"properties":{"status":{"type":"string","title":"Status"},"version":{"type":"string","title":"Version"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"reissue_available":{"type":"boolean","title":"Reissue Available","default":false}},"type":"object","required":["status","version"],"title":"HealthResponse","description":"Health check response schema."},"InvoiceResponse":{"properties":{"email_address":{"type":"string","title":"Email Address"},"access_token":{"type":"string","title":"Access Token"},"payment_request":{"type":"string","title":"Payment Request"},"payment_hash":{"type":"string","title":"Payment Hash"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"price_sats":{"type":"integer","title":"Price Sats"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider"}},"type":"object","required":["email_address","access_token","payment_request","payment_hash","expires_at","price_sats"],"title":"InvoiceResponse","description":"Response schema for newly created Lightning invoice."},"NewInvoiceRequest":{"properties":{"exclude_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Exclude Provider"},"years":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Years"}},"type":"object","title":"NewInvoiceRequest","description":"Request to re-issue a pending invoice from a different provider."},"PaymentStatusResponse":{"properties":{"payment_status":{"type":"string","title":"Payment Status"},"email_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email Address"},"access_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"}},"type":"object","required":["payment_status"],"title":"PaymentStatusResponse","description":"Response schema for payment status check."},"RecentSendItem":{"properties":{"payment_hash":{"type":"string","title":"Payment Hash"},"recipient":{"type":"string","title":"Recipient"},"subject":{"type":"string","title":"Subject"},"payment_status":{"type":"string","title":"Payment Status"},"delivery_status":{"type":"string","title":"Delivery Status"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"sent_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Sent At"}},"type":"object","required":["payment_hash","recipient","subject","payment_status","delivery_status","created_at"],"title":"RecentSendItem","description":"Schema for recent send history items."},"RecentSendsResponse":{"properties":{"sends":{"items":{"$ref":"#/components/schemas/RecentSendItem"},"type":"array","title":"Sends"}},"type":"object","required":["sends"],"title":"RecentSendsResponse","description":"Response schema for recent send history."},"RenewalInvoiceResponse":{"properties":{"payment_request":{"type":"string","title":"Payment Request"},"payment_hash":{"type":"string","title":"Payment Hash"},"price_sats":{"type":"integer","title":"Price Sats"},"years":{"type":"integer","title":"Years"},"new_expires_at":{"type":"string","format":"date-time","title":"New Expires At"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider"}},"type":"object","required":["payment_request","payment_hash","price_sats","years","new_expires_at"],"title":"RenewalInvoiceResponse","description":"Response schema for a renewal Lightning invoice."},"RenewalRequest":{"properties":{"years":{"type":"integer","maximum":10.0,"minimum":1.0,"title":"Years","default":1}},"type":"object","title":"RenewalRequest","description":"Request schema for account renewal."},"RenewalStatusResponse":{"properties":{"payment_status":{"type":"string","title":"Payment Status"},"new_expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"New Expires At"}},"type":"object","required":["payment_status"],"title":"RenewalStatusResponse","description":"Response schema for checking renewal payment status."},"SendAttachment":{"properties":{"filename":{"type":"string","title":"Filename"},"content_type":{"type":"string","title":"Content Type"},"content":{"type":"string","title":"Content"}},"type":"object","required":["filename","content_type","content"],"title":"SendAttachment","description":"Schema for an attachment to be sent with an outgoing email."},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}}