Billing.js
  • Introduction
  • Features
  • Getting started
    • Installation
    • Add to your app
      • Wrap your app
      • Setup Pricing page
      • Setup Customer Portal
    • Configure Webhooks and Triggers
      • Subscription webhook
      • Customer Webhook
      • New user trigger
  • Guides
    • Single Sign-On
    • Shared subscriptions
    • Local currency support
    • Automatic Dispute Response
  • Components
    • <BillingProvider />
    • Pricing Page
      • <PaymentField />
      • <PaymentSummary />
      • <PromotionCode />
      • <PaymentModal />
    • Customer Portal
      • <CustomerProfile />
      • <Subcriptions />
      • <ManageSharedSubscriptionModal />
      • <PaymentMethods />
      • <Invoices />
  • Hooks
    • useAuth
    • useProducts
  • Methods
    • Product
      • getProducts
    • Customer
      • getCustomerSubscriptions
      • getCustomerPaymentMethods
      • getCustomerInvoices
    • Subscription
      • addSubscription
      • cancelSubscription
      • updateSubscription
    • Payment Method
      • attachPaymentMethodToCustomer
      • detachPaymentMethodFromCustomer
      • setPaymentMethodAsDefault
    • Shared Subscription
      • getSharedSubscription
      • getSharedSubscriptionUsers
      • updateSharedSubscriptionUsers
Powered by GitBook
On this page

Was this helpful?

  1. Guides

Automatic Dispute Response

Automatically respond to your incoming payment disputes and avoid chargebacks by following the best practices

PreviousLocal currency supportNext<BillingProvider />

Last updated 1 year ago

Was this helpful?

Billing.js automatically sets a webhook on your incoming disputes to allow you to autofill the response and submit it directly if you prefer.

This will save you time and energy by contesting every incoming disputes with proof of your refund/cancellation policy in place as well as a clear description of your product.

Set up your product to automatically contest incoming disputes

1. Go on your products page from the

2. Select the product you want to automatically contest disputes from

3. Add the following metadatas

  • billing_auto_submit_dispute = true (default to false)

this will automatically submit the dispute response so you don't have to submit it manually from the dashboard

  • cancellationPolicyDisclosure = An explanation of how and when the customer was shown your refund policy prior to purchase. Has a maximum character count of 20,000.

Example: The customer is presented with the cancellation policy on the payment page (https://gpt.space/pricing) (see the attached screenshot) And on the Terms of service page (https://gpt.space/terms-of-service) which is always accessible from the footer of all the website pages. (See the attached screenshot)

  • cancellationPolicyFileUrl = the downloadable url of a screenshot of your cancellation policy. We recommend uploading it to a Google Drive and set it to public access.

Example:

Make sure that clicking on the link directly downloads the image and don't open it in a preview page or the file won't be correctly sent to Stripe and will likely cause the dispute to be lost

  • cancellationRebuttal = A justification for why the customer’s subscription was not canceled. Has a maximum character count of 20,000.

Example: The customer did not send us any emails to ask for a cancellation of the subscription. He neither canceled the subscription manually from the subscription management page.

  • productDescription = A description of the product or service that was sold. Has a maximum character count of 20,000.

Example: gpt.space is an addon that allows users to use AI features in Google Workspace and other websites. We have a free tier plan with limited usage per day and an unlimited usage Paid plan.

  • refundPolicyDisclosure = Documentation demonstrating that the customer was shown your refund policy prior to purchase. Has a maximum character count of 20,000.

Example: The customer is presented with the refund policy on the payment page (https://gpt.space/pricing) (see the attached screenshot) And on the Terms of service page (https://gpt.space/terms-of-service) which is always accessible from the footer of all the website pages. (see the attached screenshot)

  • refundPolicyFileUrl = the downloadable url of a screenshot of your refund policy. We recommend uploading it to a Google Drive and set it to public access.

Make sure that clicking on the link directly downloads the image and don't open it in a preview page or the file won't be correctly sent to Stripe and will likely cause the dispute to be lost

  • refundRefusalExplanation = A justification for why the customer is not entitled to a refund. Has a maximum character count of 20,000.

Example:

Example: The refund details are “To receive a refund from a paid subscription you must request the refund within 30 days of subscribing at this email address:

Stripe Dashboard
https://drive.google.com/uc?id=1b0aoM0DDId5Fu2eXBesnFYATziaBkY8r&export=download
https://drive.google.com/uc?id=1WAoZDyGBUXvZa8bZaf1nZisDkDfh1HR_&export=downloa
contact@gpt.space”