Events

The event object

The table below lists all events you can subscribe to.

When creating a subscription, include the event type codes in your request JSON (API) or select the events via your admin dashboard account (no-code).

FamilyEvent Type codes (event resource.event trigger type)Purpose
Embedded Capital / Embedded Insightsauthorisation.enabledIndicates a state when a merchant successfully authorises access of his/her PSP account to Groov via the Connect consent flow.
Embedded Capital / Embedded Insightsauthorisation.failedIndicates a state when a merchant does not authorise access of his/her PSP account to Groov via the Connect consent flow. As an institution, you will need to check with the merchant directly on reasons for not proceeding.
Embedded Capital / Embedded Insightsauthorisation.revokedIndicates a state when a merchant removes access to his/her PSP/commerce account having previously providing authorisation to the same. This could be merchant revoking directly via PSP account platform or requesting for data access removal via a provider like yourselves.
Embedded Capital / Embedded Insightsauthorisation.connection_lostIndicates a state when Groov has temporarily lost access to the partner/PSP/commerce provider. Groov will act swiftly to restore access back ASAP. Whilst in this state any new connections via the Connect flow will be unsuccessful.
Embedded Capital / Embedded Insightsauthorisation.otp_requiredOnly relevant to institutions who use Groov's Connect API. Indicates a state when a merchant is required to provide OTP to Groov to get successfully authorised to access the merchant's PSP/commerce partner account.
Embedded Capital / Embedded Insightsledger_alldata.primary_sync.completeIndicates a state when Groov has completed data processing successfully for an authorised connected account. This will be the trigger for an institution to access Groov's unified API to retrieve ledgerAccount details/insights.
Embedded Capital / Embedded Insightsledger_alldata.primary_sync.failedIndicates a state when Groov has encountered an error whilst processing data for an authorised connected account. Whilst in this state, any call to Groov's API will return an error. The institution is advised to wait for the primary_sync.complete event before calling Groov's Unified data/insights API.
Embedded Capitallead.createdIndicates a state when a lead has shown interest for Business Funding.
Embedded Capitalaccount.qualifiedIndicates a state when a lead has converted to a fully qualified account and submitted all details for the Funding qualification step.
Embedded Capitallead.not_qualifiedIndicates a state when a lead has not converted to a fully qualified account and cannot be served.
Embedded Capitaldeal_flow.createdInitiates a new deal flow / workflow for the account.
Embedded Capitaldeal_flow.banking_info_availableA business account has either connected via Open Banking or has made banking information available.
Embedded Capitaldeal_flow.business_details_updatedA business account has updated its KYC/KYB info.
Embedded Capitaldeal_flow.qualification_in_progressThe funding request from the business account is in qualification/quotation cycle.
Embedded Capitaldeal_flow.onboarding_in_progressThe funding request has an offer accepted and onboarding with a lender is in progress.
Embedded Capitaldeal_flow.wonThe funding request was approved, account funded and deal is now won.
Embedded Capitaldeal_flow.closedThe funding request was declined or cancelled or offers expired, account couldn't be funded, the deal flow stands closed.
Embedded Capitalcapital_application.submittedMCA application has been submitted with a qualified lender.
Embedded Capitalcapital_application.offer_availableMCA application has received 1 or more offers from a lender.
Embedded Capitalcapital_application.offer_submittedMCA application has a confirmed offer accepted and submitted for processing.
Embedded Capitalcapital_application.action_requiredMCA application has pending actions (e.g. additional documents) to progress.
Embedded Capitalcapital_application.contract_signedBusiness customer has signed the funding application contract.
Embedded Capitalcapital_application.approvedMCA application has been approved by the lender.
Embedded Capitalcapital_application.declinedMCA application has been declined by the lender.
Embedded Capitalcapital_application.cancelledMCA application has been cancelled by the lender or the business customer didn't wish to proceed.
Embedded Capitalcapital_account.fundedMCA advance has been funded to the customer's bank account.
Embedded Capitalcapital_account.activeMCA account has been set up successfully and is active/funding available.
Embedded Capitalcapital_account.closedMCA account repaid and/or has been closed.
Embedded Capitalemail_verification.completeOTP verification has been successful for your customer.
Embedded Capitalemail_verification.failedOTP verification has failed for your customer.
Embedded Capitalbusiness_loan_application.submittedBusiness Loan application has been submitted with a qualified lender.
Embedded Capitalbusiness_loan_application.offer_availableBusiness Loan application has received 1 or more offers from a lender.
Embedded Capitalbusiness_loan_application.offer_submittedBusiness Loan application has a confirmed offer accepted and submitted for processing.
Embedded Capitalbusiness_loan_application.action_requiredBusiness Loan application has pending actions (e.g. additional documents) to progress.
Embedded Capitalbusiness_loan_application.contract_signedBusiness customer has signed the funding application contract.
Embedded Capitalbusiness_loan_application.approvedBusiness Loan application has been approved by the lender.
Embedded Capitalbusiness_loan_application.declinedBusiness Loan application has been declined by the lender.
Embedded Capitalbusiness_loan_application.cancelledBusiness Loan application has been cancelled by the lender or the business customer didn't wish to proceed.
Embedded Capitalbusiness_loan_account.fundedThe customer has withdrawn the funds.
Embedded Capitalbusiness_loan_account.activeBusiness Loan account has been set up successfully and is active/funding available.
Embedded Capitalbusiness_loan_account.closedBusiness Loan account repaid and/or has been closed.

Receive Groov events in your webhook endpoint

📘

Listen for events from Groov on your webhook endpoint so your integration/your app can automatically trigger reactions/CTAs.

Create an event destination to receive events at an HTTPS webhook endpoint. After you register a webhook endpoint, Groov can push real-time event data to your application’s webhook endpoint when events happen in your Groov account. Groov uses HTTPS to send webhook events to your app as a JSON payload that includes an Event related object.

Receiving webhook events helps you respond to asynchronous events, such as when a customer gets funded for MCA, a customer gets offers or any of the supported event types as per the list above

Get started

To start receiving webhook events in your app:

  • Create a webhook endpoint handler to receive event data POST requests.
  • Test your webhook endpoint handler locally or in a sandbox mode.
  • Create a new event destination (using the admin dashboard console or using the webhook endpoints) to register your webhook endpoint’s accessible URL so Groov knows where to deliver events. Registered webhook endpoints must be publicly accessible HTTPS URLs.
  • Secure your webhook endpoint - Secure your integration by making sure your handler verifies that all webhook requests are generated by Groov.

You can register and create one endpoint to handle several different event types at the same time, or set up individual endpoints for specific events.

📘

The webhook secret key (Base64 encoded) is shared with you the first time when you register a new webhook URL OR you can call the GET webhook endpoint to retrieve the details later.

Groov-Signature Know-How

Groov generates signatures using a hash-based message authentication code (HMAC) with SHA-256. The X-Groov-Webhook-Signature is included in each signed event. To prevent downgrade attacks, refer to Note below.

Here's a step-by-step guide on how to process/verify the X-Groov-Webhook-Signature block:

  1. Extract the base64 encoded signature from the X-Groov-Webhook-Signature header.
  2. Retrieved signature is Base64 encode, so you will need to decode it first.
  3. Compute the expected signature with the SHA-256 function. Use the webhook secret key (which is also Base64 encoded) and the request payload string as the message.
  4. Compare the generated hash signature with the decoded one extracted from the header.
❗️

Note: To protect against timing attacks, use a constant-time-string comparison to compare the expected signature to each of the received signatures.


Receive Groov events via Notifications

👍

Groov currently supports in-app notifications and email based notifications

Create a Notification subscription using your admin account dashboard to

  • receive events at your configured email accounts (tab: Platform Notifications)
  • to send email notifications to your customer (Tab: Customer Notifications).

After you register and configure an email notification entry, Groov can push real-time event data to the destination email accounts when events happen in your Groov account. Groov uses a standard template to notify you of all Platform Notifications but allows you to define bespoke/custom templates for your customer notifications.

Receiving email based notification events helps you as well as your customer respond to journey lifecycle events, such as when a customer gets funded for MCA, a customer gets offers or any of the supported event types as per the list above.

📘

Platform Notifications

You can register and create one email notification and add multiple email accounts to recieve several different event types at the same time, or set up individual email notifications for specific events or email notifications per email account to customise who gets what notifcation.


📘

Customer Notifications

You can register and create email notifications per event resource so all your customers recieve the configured event type codes using the event resource template