<Signup />
If you have products or plans that you want anyone (outside your organization) to be able to sign up for, you can set up the Signup component on your website.
Create an API Client with limited scopes
Go to Settings > API Clients in Bunny
Create a new client and only grant the following scopes:
signup:read
signup:write
Important: Do not add any other scopes. This ensures you don’t unintentionally expose broader data in Bunny to the public.
Copy the token (the client’s access token), as you’ll need it to construct the URL.
For more detailed instructions on creating and managing API clients, click here.
Usage
Because Signup must use a special token, it should have its own BunnyProvider that is not a child of any other BunnyProvider.
import { BunnyProvider, Signup } from "@bunnyapp/components";
function App() {
return (
<BunnyProvider token={tokenWithSignupScope} apiHost={apiHost}>
<Signup
companyName="Acme"
entityId="1"
priceListCode="business-monthly"
returnUrl="https://acme.com/dashboard" // Optional, the customer will be led to this url after signing up
/>
</BunnyProvider>
);
}

Using signup on your portal page
Instead of embedding the Signup component and creating you're own page, you can do this easily with the Bunny portal page. Refer to these docs.
What happens after signup?
After a user arrives at the Bunny signup page and submits the form, two outcomes are possible:
User completes the form but does not make a payment
A new account of type “prospect” is created in Bunny.
No subscription is created, since no payment was made.
You can configure follow-up workflows (e.g., automated emails or reminders) to convert these prospects into paying customers.
User completes the form and makes a payment
A new account of type “Customer” is created in Bunny.
Inside this new account, Bunny will create:
A new billing contact, containing the user’s name and email.
A new tenant for the user’s data.
A new payment method to charge future invoices.
A new subscription, corresponding to the
priceListCode
you included in the URL.

Last updated
Was this helpful?