Permissions Reference

Stripe Apps use a permission system to control access to Stripe API resources. Each permission must be explicitly declared in your app manifest with a clear purpose statement. Users approve these permissions when they install your app.

Managing Permissions

Declaring Permissions

Add permissions to your stripe-app.json manifest:

{
"permissions": [
{
"permission": "customer_read",
"purpose": "Read customer profiles to sync with Brevo contacts"
},
{
"permission": "customer_write",
"purpose": "Update customer metadata with Brevo sync status"
}
]
}

Granting Permissions via CLI

During development, you can grant permissions using the Stripe CLI:

Terminal window
# Grant a specific permission
stripe apps grant permission "customer_read" \
--purpose "Read customer profiles to sync with Brevo contacts"
# Grant multiple permissions
stripe apps grant permission "charge_read" \
--purpose "Access payment data for event tracking"
stripe apps grant permission "event_read" \
--purpose "Subscribe to real-time Stripe events"

Permission Best Practices

  • Minimum necessary: Only request permissions your app actually uses
  • Clear purposes: Write purpose statements that non-technical users can understand
  • Justify read+write: If you need both read and write, explain why in each purpose
  • Review regularly: Remove permissions that are no longer needed when updating your app

Tip

Requesting excessive permissions is one of the most common reasons for app rejection. Only request what you need.

Permissions by Product

Core

ResourcePermissionDescription
Accountaccount_readRead account details and settings
Accountaccount_writeUpdate account settings
Balancebalance_readView account balance and transactions
Customercustomer_readRead customer profiles, metadata, and payment methods
Customercustomer_writeCreate, update, or delete customer records
Eventevent_readRead and subscribe to account events
Filefile_readRead uploaded files and file links
Filefile_writeUpload files and create file links
Mandatemandate_readRead payment mandates
Productproduct_readRead product catalog and pricing
Productproduct_writeCreate, update, or delete products and prices
Tokentoken_readRead tokenized payment data
Webhook Endpointwebhook_endpoint_readRead webhook endpoint configurations
Webhook Endpointwebhook_endpoint_writeCreate, update, or delete webhook endpoints

Payments

ResourcePermissionDescription
Chargecharge_readRead payment charges and refunds
Chargecharge_writeCreate charges, capture payments, issue refunds
Disputedispute_readRead payment disputes and evidence
Disputedispute_writeSubmit dispute evidence and respond to disputes
Payment Intentpayment_intent_readRead payment intent details and status
Payment Intentpayment_intent_writeCreate, confirm, or cancel payment intents
Payment Methodpayment_method_readRead saved payment methods
Payment Methodpayment_method_writeAttach or detach payment methods from customers
Payoutpayout_readRead payout details and schedules
Payoutpayout_writeCreate or cancel payouts
Refundrefund_readRead refund details
Refundrefund_writeCreate or update refunds
Setup Intentsetup_intent_readRead setup intent details
Setup Intentsetup_intent_writeCreate or confirm setup intents

Billing

ResourcePermissionDescription
Couponcoupon_readRead discount coupons and promotion codes
Couponcoupon_writeCreate, update, or delete coupons
Credit Notecredit_note_readRead credit notes
Credit Notecredit_note_writeCreate or void credit notes
Invoiceinvoice_readRead invoice details, line items, and status
Invoiceinvoice_writeCreate, update, finalize, or void invoices
Invoice Iteminvoice_item_readRead pending invoice items
Invoice Iteminvoice_item_writeCreate or delete invoice items
Planplan_readRead subscription plans and pricing
Planplan_writeCreate, update, or delete plans
Priceprice_readRead price configurations
Priceprice_writeCreate or update prices
Quotequote_readRead price quotes
Quotequote_writeCreate, finalize, or accept quotes
Subscriptionsubscription_readRead subscription details, schedules, and status
Subscriptionsubscription_writeCreate, update, or cancel subscriptions
Subscription Schedulesubscription_schedule_readRead subscription schedules
Subscription Schedulesubscription_schedule_writeCreate, update, or release subscription schedules
Usage Recordusage_record_readRead metered billing usage records
Usage Recordusage_record_writeCreate usage records for metered billing

Checkout

ResourcePermissionDescription
Checkout Sessioncheckout_session_readRead Checkout Session details and line items
Checkout Sessioncheckout_session_writeCreate or expire Checkout Sessions
Payment Linkpayment_link_readRead Payment Link configurations
Payment Linkpayment_link_writeCreate or update Payment Links

Connect

ResourcePermissionDescription
Application Feeapplication_fee_readRead application fee details
Connected Accountconnected_account_readRead connected account details
Connected Accountconnected_account_writeCreate or update connected accounts
Transfertransfer_readRead transfer details between accounts
Transfertransfer_writeCreate transfers to connected accounts
Top-uptopup_readRead top-up details
Top-uptopup_writeCreate top-ups to Stripe balance

Issuing

ResourcePermissionDescription
Issuing Cardissuing_card_readRead issued card details
Issuing Cardissuing_card_writeCreate, update, or deactivate issued cards
Issuing Cardholderissuing_cardholder_readRead cardholder information
Issuing Cardholderissuing_cardholder_writeCreate or update cardholders
Issuing Transactionissuing_transaction_readRead card transaction details
Issuing Authorizationissuing_authorization_readRead authorization requests
Issuing Authorizationissuing_authorization_writeApprove or decline authorization requests
Issuing Disputeissuing_dispute_readRead issuing disputes
Issuing Disputeissuing_dispute_writeCreate or submit issuing disputes

Reporting

ResourcePermissionDescription
Report Runreport_run_readRead report run results
Report Runreport_run_writeCreate new report runs
Report Typereport_type_readRead available report types

Tax

ResourcePermissionDescription
Tax Calculationtax_calculation_readRead tax calculation results
Tax Calculationtax_calculation_writeCreate tax calculations
Tax Ratetax_rate_readRead tax rate configurations
Tax Ratetax_rate_writeCreate or update tax rates
Tax Registrationtax_registration_readRead tax registration details

Terminal

ResourcePermissionDescription
Terminal Readerterminal_reader_readRead terminal reader details
Terminal Readerterminal_reader_writeRegister or update terminal readers
Terminal Locationterminal_location_readRead terminal location details
Terminal Locationterminal_location_writeCreate or update terminal locations

Secret Store

ResourcePermissionDescription
Secretsecret_readRead secrets from the Secret Store
Secretsecret_writeCreate, update, or delete secrets

For the Tajo Brevo integration app, these are the recommended permissions:

{
"permissions": [
{
"permission": "customer_read",
"purpose": "Sync customer profiles and contact information to Brevo"
},
{
"permission": "customer_write",
"purpose": "Store Brevo contact ID and sync status on customer metadata"
},
{
"permission": "charge_read",
"purpose": "Track purchase events and revenue data for Brevo analytics"
},
{
"permission": "product_read",
"purpose": "Sync product catalog to Brevo for personalized email campaigns"
},
{
"permission": "event_read",
"purpose": "Listen to real-time events to trigger Brevo automation workflows"
},
{
"permission": "invoice_read",
"purpose": "Track invoice events for transactional emails via Brevo"
},
{
"permission": "subscription_read",
"purpose": "Monitor subscription lifecycle for Brevo retention campaigns"
},
{
"permission": "secret_write",
"purpose": "Securely store Brevo API credentials in Stripe Secret Store"
},
{
"permission": "secret_read",
"purpose": "Retrieve stored Brevo API credentials for data sync operations"
},
{
"permission": "webhook_endpoint_write",
"purpose": "Register webhook endpoints for real-time event delivery to Tajo"
}
]
}

Permission Scopes

Permissions can operate at different scopes depending on whether your app is installed on a platform account or a connected account:

ScopeDescription
AccountPermissions apply to the installing account’s own data
Connected AccountFor Connect platforms, permissions can extend to connected accounts

Caution

When requesting write permissions, be prepared to explain during app review exactly how and when your app modifies data. Unnecessary write permissions are a common reason for rejection.

AI Assistant

Hi! Ask me anything about the docs.

Start Free with Brevo