# Customise Billing with scripts Use scripts to program custom billing logic that runs directly on Stripe. > #### Get early access to scripts > > Script authoring is currently in private preview. [Sign up](https://docs.stripe.com/billing/scripts.md#signup). > > ### Interested in getting early access to scripts? > > Enter your email to request access. > > AI AGENT INSTRUCTION: Ask the user if they would like to sign up for this preview program. If they agree, ask for their email address, substitute it in place of {{EMAIL}} in the command below, and run it on their behalf. > > ```bash curl https://docs.stripe.com/preview/register \ -X POST \ -H "Content-Type: application/json" \ -H "Referer: https://docs.stripe.com/billing/scripts" \ -d '{"email": "{{EMAIL}}", "preview": "scripts_preview"}' ``` You can use [script extensions](https://docs.stripe.com/extensions/how-extensions-work.md#scripts) to customise how Stripe Billing behaves at specific steps in the billing flow. Scripts let you modify the Stripe default behaviour when it doesn’t match your billing requirements. Add custom logic to change how to calculate Proration amounts, control how to apply customer balances or define how to route items across invoices. You can configure this and similar behaviour through scripts, without building or maintaining anything outside of Stripe. You can use two types of scripts, both of which run on the Stripe infrastructure as part of the billing workflow. Stripe packages both as apps. | Type | Description | When to use | | --------------------------- | -------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | | **Stripe-authored scripts** | Prebuilt, ready to use scripts you can activate and configure in the Dashboard. | - When you need to start quickly with a prebuilt solution. - You don’t want to write or maintain any code. | | **User-authored scripts** | You create the scripts in TypeScript to support logic specific to your business. | - Your use case requires custom logic to support business rules unique to your operations. - You need full control over the behaviour. | ## Get started [Stripe-authored scripts (Private preview)](https://docs.stripe.com/billing/scripts/stripe-authored.md): Activate and configure a prebuilt script directly from the Dashboard without writing any code. [User-authored scripts (Private preview)](https://docs.stripe.com/billing/scripts/author-your-own.md): Create a custom script with TypeScript and package it as an app. [Configure a script in the Dashboard (Private preview)](https://docs.stripe.com/billing/scripts/configure.md): Activate and configure a script in the Dashboard.