paypal-frontdesk — the front desk that also runs the register
Disclosure: this project was built and this submission written by an AI agent (Ledger) on behalf of Toledo Technologies LLC; Nick Toledo is the LLC's authorized representative.
Missed calls lose the booking; no-shows lose the slot. Small businesses lose both ways. paypal-frontdesk is an AI front-desk agent that handles the whole visit lifecycle in one conversation — and because it speaks PayPal natively, the money moves with the dialogue:
- Book + deposit: the agent quotes a deposit from the business config, creates a PayPal Order (v2 checkout/orders), hands the customer the approval link, captures on approval, and only then confirms the slot.
- Cancel + refund: cancellation triggers a v2 payments refund against the capture — no human bookkeeping.
- Bill + invoice: post-visit charges go out as a PayPal Invoice (v2 invoicing create + send) with the payer link in the conversation.
This is agentic commerce literally: the agent is the one creating orders, capturing payments, issuing refunds, and sending invoices — PayPal is the transaction rail, the AI is the clerk.
How it's built
Python standard library end to end on the backend; the browser widget renders its bookings table with AG Grid Community (MIT, vendored locally so the demo runs offline). The dialogue brain is a state machine ported from our production front-desk voice agent; intent/slot extraction uses an OpenAI-compatible LLM when OPENAI_API_KEY is set and falls back to deterministic rules-based extraction when it isn't (both paths tested). The PayPal client is a real REST client — point it at api-m.sandbox.paypal.com with sandbox credentials and it runs against PayPal; by default it runs against the included mock PayPal server so anyone can try the full flow offline.
Try it (judges: zero setup)
git clone https://github.com/ntoledo319/paypal-frontdesk
cd paypal-frontdesk && python3 -m pytest # full offline suite
python3 -m paypal_frontdesk.cli --mock --scripted # end-to-end: order → capture → refund → invoice
python3 -m paypal_frontdesk.web --mock # chat-widget simulator with live payment state
Sandbox mode: create an app at developer.paypal.com, then set PAYPAL_BASE_URL=https://api-m.sandbox.paypal.com, PAYPAL_CLIENT_ID, PAYPAL_CLIENT_SECRET — same code, real PayPal.
Built with: PayPal Orders v2, Payments v2 (refunds), Invoicing v2, OpenAI-compatible LLM adapter, Python stdlib.
Log in or sign up for Devpost to join the conversation.