Vendor Onboarding
Vendor Onboarding Flow
There are two pathways to onboard vendors to Lumanu:
Option 1: Send Invitation (Recommended)
Use the Invite Partners to Workspace endpoint to invite vendors.
Option 2: Create Payable with Invitation
Use the Create Payable endpoint with send_invite set to true. This creates a payable and simultaneously sends an invitation to the vendor, prompting them to complete onboarding.
For most integrations, we recommend Option 1 because it ensures you have verified, payment-ready vendors before creating payables.
Value of the Lumanu IDOnboarding vendors (or "partners") efficiently is key to managing your payments. A common challenge is that the email address you use to invite a vendor might not be the same one they use for their Lumanu account.
To solve this and prevent duplicate records, we use a
Lumanu ID—a unique, immutable identifier for every vendor. The goal of the onboarding flow is to reliably retrieve and store thisLumanu IDfor all your partners.
The Recommended Onboarding Flow
We recommend the following asynchronous process using webhooks to ensure you always have the correct Lumanu ID for a vendor, even if they sign up with a different email address.
-
Check for an Existing
Lumanu ID: Before inviting a new vendor, first check your own system to see if you have already stored aLumanu IDfor them. If you have one, you can skip the invitation process entirely and use that ID for all future API calls. -
Send the Partner Invite: If you don't have a
Lumanu ID, send an invitation using the vendor's email address.- API Call:
POST /workspace/{id}/partner/invite
- API Call:
-
Store the Invitation ID: The API response will contain a unique
invitation_id. You must store this ID and associate it with the pending vendor in your database. This ID is the key to linking the invitation to the vendor who eventually signs up. -
Receive the
partner-invite.claimedWebhook: When the vendor clicks the invite link and successfully signs up or logs in, the Lumanu platform will send apartner-invite.claimedwebhook to your registered endpoint. This webhook payload will contain both the originalinvitation_idand the vendor's permanentLumanu ID. -
Match and Store the
Lumanu ID: Your application should use theinvitation_idfrom the webhook to look up the pending vendor you stored in step 3. Once matched, save theLumanu IDfrom the webhook to that vendor's record. You can now use this ID as a reliable, permanent identifier for the vendor.
Interaction Diagram
This diagram illustrates the asynchronous flow of inviting a partner and receiving their permanent Lumanu ID.
sequenceDiagram
participant Client App as Client Application
participant LumanuAPI as Lumanu API
participant Partner as Vendor / Partner
alt Lumanu ID not found in local DB
Client App->>+LumanuAPI: 1. POST /workspace/{id}/partner/invite
LumanuAPI-->>-Client App: 2. Returns { invitation_id }
Client App->>Client App: 3. Store invitation_id with pending vendor record
LumanuAPI-->>Partner: 4. Sends email invitation
Partner-->>LumanuAPI: 5. Clicks link, signs up or logs in
LumanuAPI-->>Client App: 6. Webhook: `partner-invite.claimed` <br/> (payload includes invitation_id and lumanu_id)
Client App->>Client App: 7. Match invitation_id, <br/> store permanent lumanu_id
endUpdated about 1 month ago