The three webhook endpoints documented here handle all inbound communication from OneInc.
The Three Webhook Endpoints
| Endpoint | Purpose | Flow |
|---|---|---|
OneIncAcknowledgePaymentMethod | Customer submitted bank account details | Payout |
OneIncPaymentFeedback | Payment status changed (issued, completed, failed, voided) | Payout |
OneIncManageAutoPayFeedback | Customer enrolled in or canceled autopay | AutoPay |
All three are POST endpoints under /api/OnlinePolicyPayment/. All three are called BY OneInc — Origami never calls them itself.
Two Independent Workflows
OneInc handles two unrelated concerns for Origami. They share the same payment provider but do not interact with each other:
┌─────────────────────────────────────────────────────────────┐
│ PAYOUT FLOW │
│ Purpose: Send money to a broker/customer (e.g., refund, │
│ commission disbursement) │
│ │
│ Webhooks involved: │
│ 1. OneIncAcknowledgePaymentMethod (payment method saved) │
│ 2. OneIncPaymentFeedback (payment status updates) │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ AUTOPAY FLOW │
│ Purpose: Track whether a customer has enrolled in │
│ recurring payments for a policy or billing account │
│ │
│ Webhook involved: │
│ 1. OneIncManageAutoPayFeedback (enrollment toggled) │
└─────────────────────────────────────────────────────────────┘
Payout Flow — Complete Workflow
The payout flow sends money from Origami to a broker or customer via ACH. There are three possible paths depending on whether the customer already has a saved payment token.
Path A: Customer already has a saved payment token
No webhooks are involved from this document's set. Origami talks directly to OneInc's API.
Origami OneInc Customer
│ │ │
│ 1. Create payout order │ │
│ (internal — OnlineOrder) │ │
│ │ │
│ 2. Check customer wallet │ │
│ → Token exists │ │
│ │ │
│ 3. CreditBankAccount API ───► │ │
│ (initiate ACH payout) │ │
│ │ 4. Process ACH (2-3 days) │
│ │ │
│ ◄─── OneIncPaymentFeedback │ │
│ 5. Status: Issued │ │
│ │ │
│ ◄─── OneIncPaymentFeedback │ │
│ 6. Status: Success │ ◄─── Money deposited │
│ (order → Complete) │ │
Path B: Customer has no saved payment token
Both webhooks are involved. The process pauses while the customer provides bank details.
Origami OneInc Customer
│ │ │
│ 1. Create payout order │ │
│ (internal — OnlineOrder) │ │
│ │ │
│ 2. Check customer wallet │ │
│ → No token │ │
│ │ │
│ 3. SendSavePaymentMethodLink │ │
│ API call ──────────────────► │ │
│ (ClientReferenceData1 = │ 4. Email link ──────────► │
│ "OnlineOrderID:456") │ │
│ │ │
│ Order status: SavePayment │ │
│ (waiting) │ │
│ ┄┄┄┄┄ time passes (hours/days) ┄┄┄┄┄ │
│ │ │
│ │ 5. Customer clicks link, │
│ │ ◄── enters bank details ──── │
│ │ │
│ ◄─── OneIncAcknowledgePaymentMethod │
│ 6. Save token to wallet │ │
│ 7. Auto-initiate payout: │ │
│ CreditBankAccount API ──► │ │
│ │ │
│ │ 8. Process ACH (2-3 days) │
│ │ │
│ ◄─── OneIncPaymentFeedback │ │
│ 9. Status: Issued │ │
│ │ │
│ ◄─── OneIncPaymentFeedback │ │
│ 10. Status: Success │ ◄─── Money deposited │
│ (order → Complete) │ │
Path C: Admin saves payment method for future use (no payout)
Only the first webhook is involved. No money moves.
Origami OneInc Customer/Broker
│ │ │
│ 1. Admin clicks "Save │ │
│ Payment Method" in UI │ │
│ │ │
│ 2. SendSavePaymentMethodLink │ │
│ API call ──────────────────► │ │
│ (ClientReferenceData1 = │ 3. Email link ──────────► │
│ "ManualSavePaymentMethod") │ │
│ │ │
│ ┄┄┄┄┄ time passes ┄┄┄┄┄ │
│ │ │
│ │ 4. Broker clicks link, │
│ │ ◄── enters bank details ──── │
│ │ │
│ ◄─── OneIncAcknowledgePaymentMethod │
│ 5. Save token to wallet │ │
│ Done. Token available for │ │
│ future payouts (Path A). │ │
Order Status Progression (Path B)
Pending → SavePayment → Payout → PayoutRequested → Issued → Complete
└→ Error
└→ Void
| Status | Set by | Meaning |
|---|---|---|
| Pending | Origami (order creation) | Order created, not yet processed |
| SavePayment | Origami (no token found) | Waiting for customer to provide bank details via OneInc |
| Payout | OneIncAcknowledgePaymentMethod | Token saved, CreditBankAccount API called |
| PayoutRequested | CreditBankAccount API response | OneInc accepted the payout request |
| Issued | OneIncPaymentFeedback | Payment issued by OneInc |
| Complete | OneIncPaymentFeedback | ACH succeeded, PaidAmount and PaidDate set |
| Error | OneIncPaymentFeedback | ACH failed, LastErrorMessage set |
| Void | OneIncPaymentFeedback | Payment canceled or stopped |
| StopPending | OneIncPaymentFeedback | Stop request is pending |
AutoPay Flow — Complete Workflow
The autopay flow is simple. OneInc manages the customer-facing enrollment UI. When a customer enrolls or cancels, OneInc notifies Origami so it can update its records.
Origami OneInc Customer
│ │ │
│ │ 1. Customer enrolls in │
│ │ ◄── autopay via OneInc UI ── │
│ │ │
│ ◄─── OneIncManageAutoPayFeedback │
│ 2. InstallmentPlanStatus = │ │
│ "Active" │ │
│ 3. Set IsRecurringPayment = │ │
│ true on Policy or │ │
│ BillingAccount │ │
│ Done. │ │
Cancellation is the same flow with InstallmentPlanStatus ≠ "Active", which sets IsRecurringPayment = false.
The target record is determined by ClientReferenceData1 (PolicyID) and ClientReferenceData2 (BillingAccountID). If PolicyID is nonzero, the Policy is updated. If PolicyID is "0", the BillingAccount is updated.
Configuration
Origami Settings
OnlinePaymentProvidermust be set to"OneInc"- OneInc API credentials must be configured
- OneInc modal authentication key must be set
OneInc Dashboard
Three webhook URLs must be registered:
| Event type | Webhook URL |
|---|---|
| Payment method submitted | https://{OrigamiEnvironment}/api/OnlinePolicyPayment/OneIncAcknowledgePaymentMethod |
| Payment status changed | https://{OrigamiEnvironment}/api/OnlinePolicyPayment/OneIncPaymentFeedback |
| AutoPay enrollment changed | https://{OrigamiEnvironment}/api/OnlinePolicyPayment/OneIncManageAutoPayFeedback |
Key Origami Internal Methods
These are not API endpoints — they are internal Origami methods that initiate the outbound calls to OneInc:
| Method | What it does |
|---|---|
InitiateSavePaymentMethodOrCreditBankAccount(onlineOrder) | Checks if customer has a token. If yes: calls CreditBankAccount. If no: calls SendSavePaymentMethodLink (sets ClientReferenceData1 = "OnlineOrderID:{id}"). |
InitiateManualSavePaymentMethod(brokerID) | Calls SendSavePaymentMethodLink with ClientReferenceData1 = "ManualSavePaymentMethod". No order involved. |
InitiateCreditBankAccount(onlineOrder) | Calls OneInc's CreditBankAccount API using the customer's saved token. |
Endpoint Details at a Glance
| AcknowledgePaymentMethod | PaymentFeedback | ManageAutoPayFeedback | |
|---|---|---|---|
| Route | /api/OnlinePolicyPayment/OneIncAcknowledgePaymentMethod | /api/OnlinePolicyPayment/OneIncPaymentFeedback | /api/OnlinePolicyPayment/OneIncManageAutoPayFeedback |
| Called when | Customer submits bank details | Payment status changes | Customer enrolls/cancels autopay |
| Can fire multiple times? | Once per payment method submission | Yes, as status progresses | Once per enrollment change |
| Response format | Structured JSON (OneIncAcknowledgePaymentMethodResponse) | Plain string | Plain string |
| Success response | 200 with IsSuccessful: true | 200 "Payment feedback acknowledged successfully" | 200 "OneInc AutoPay enrollment feedback acknowledged successfully" |
| Error responses | 400, 404, 304 (granular) | 500 only | 500 only |
| Creates transactions? | Yes (multiple) | Yes (one per status change) | No |
| Updates order status? | Yes (SavePayment → Payout) | Yes (various transitions) | No |
| Other side effects | Saves payment token, may initiate CreditBankAccount | Sets PaidAmount/PaidDate or LastErrorMessage | Sets IsRecurringPayment flag |
| Flow | Payout | Payout | AutoPay |
| Full documentation | Link | Link | Link |
Key Database Tables
| Table | Role in OneInc integration |
|---|---|
OnlineOrder | Tracks payout orders through their lifecycle (status, amount, errors) |
OnlineTransaction | Audit trail of all payment events (token saves, status changes, credits) |
OnlineCustomer | Links Origami customers to OneInc customer IDs |
OnlineCustomerPaymentToken | Stores saved payment tokens (bank account references) for reuse |
Policy | IsRecurringPayment flag toggled by autopay webhook |
BillingAccount | IsRecurringPayment flag toggled by autopay webhook |