Skip to main content
← Back to plugins
Accept Blue Subscriptions

Accept Blue Subscriptions

Create recurring subscriptions with the Accept Blue platform.

Version3.8.0
Compatibility>=3.2.0
CategoryPayment & Tax
Downloads799 monthly
Last updatedFeb 5, 2026

Official documentation here

Create recurring subscriptions with the Accept Blue platform.

  1. A customer places an order with products that represent subscriptions
  2. Customer adds a payment to order with addPaymentToOrder and supplies credit card details:
    • A customer is created in Accept Blue
    • A payment method with the card details is added to the customer
    • A charge is created for the customer with the initial amount due
    • A recurring subscription(s) for that customer is created
  3. If all succeed, the order is transitioned to PaymentSettled
  1. Add to your Vendure config:
Ts
  1. Start the server, create a payment method and select Accept Blue as handler
  2. Place an order and use one of the payment methods below:

:warning: Set Use test mode in your payment handler in the admin UI to use Accept Blue in test mode.

Payment methods

These are the different payment methods you can use to pay for an order. Keep in mind that these examples use sample input data.

You can use the query eligibleAcceptBluePaymentMethods to check what payment methods and card types are enabled. This is configured in Vendure: your Accept Blue API Key should have all methods enabled for this to work.

Pay with Saved Payment Method

If a customer already has a payment method saved in Accept Blue, you can use that to pay for an order.

Graphql

Pay with Check

Graphql

Pay with Nonce/Tokenized card

With the hosted tokenization form, you can obtain a token that represents a credit card, and use that to pay for an order. More info on hosted tokenization here: https://docs.accept.blue/tokenization/v0.2

Graphql

Managing payment methods

You can fetch payment methods on a customer: on active customer when you are logged in, or on any customer via the Admin API.

Graphql

To update payment methods, you can use the following mutations. For the Shop API, you need to be logged in as the customer and be owner of the payment method. For the Admin API, you only need to be logged in as an admin and have UpdateCustomer permissions.

Graphql

Or for a check payment method:

Graphql

For creating a a card payment method, you need to use Hosted Tokenization (see Pay with Nonce/Tokenized card above). After getting a nonce token, you can use the following mutation to create a card payment method. For the Shop API, you need to be logged in. For the Admin API, you need to pass an Accept Blue customer ID into the mutation.

Graphql

To create a check payment method, you can use the createAcceptBlueCheckPaymentMethod mutation.

To connect a new payment method to a subscription, you can use the updateAcceptBlueSubscription mutation.

Graphql

For the Shop API, you need to be logged in as the customer and be owner of the payment method and the recurring schedule. For the Admin API, you only need to be logged in as an admin and have UpdateOrder permissions.

Fetching Transactions and Subscriptions for placed orders

After an order is placed, the order.lines.acceptBlueSubscriptions is populated with the actual subscription values from the Accept Blue platform, so it will not call your strategy anymore. This is to better reflect the subscription that was actually created at the time of ordering.

This means you can now also get the transactions per subscriptions with the field order.lines.acceptBlueSubscriptions.transactions. To refund a transaction, you first need to get the transaction id.

Graphql

Refunding

Only the initial payment is handled as a Vendure payment, any other refunds are done via a dedicated mutation:

  1. Fetch transactions for a customer or a subscription as explained above
  2. Use the transaction ID to create a refund:
Graphql

The arguments amount and cvv2 are optional, see the Accept Blue Docs for more info.

Updating Subscriptions

You can update created subscriptions in Accept Blue as Admin via de admin-api with UpdateOrder permissions:

Graphql

This wil emit an AcceptBlueSubscriptionEvent of type updated.

Accept Blue Surcharges

You can use the query acceptBlueSurcharge to see what surcharges your account has configured.

CORS

If you run into CORS issues loading the Accept Blue hosted tokenization javascript library, you might need to remove the cross-origin key on your script tag.

Incoming events and webhooks

This plugin emits an AcceptBlueTransactionEvent whenever it receives a webhook with a transaction update from Accept Blue.

Ts

Google Pay

This plugin also allows you to integration Google Pay. You will need to implement the Google Pay button on your storefront first.

After that, you end up with a token you receive from Google. Send that data to Vendure like so:

Graphql

Make sure that your amount equals the amount of the order! The amount is passed in as whole amount, not in cents, because this is how you will receive it from Google.

You can configure the Merchant ID and Gateway Merchant ID on the payment method in Vendure, and fetch them via eligiblePaymentMethods or eligibleAcceptBluePaymentMethods.

Additional Charge Input

For the initial charge, you can pass additional input to the charge creation. This is useful if you want to add additional information to the charge, such as tax, surcharges,shipping information, etc.

In your plugin initialization, you can pass a function that returns the additional input:

Ts
Changelog
  • Upgraded to Vendure 3.5.3
  • Allow passing additional input when creating a charge via the additionalChargeInput option.
  • Use parent order instead of orderLine.order in getSubscriptionsForOrderLine to prevent hydration issues.
  • Documentation update
  • Updated official documentation URL
  • Allow disabling sending receipt emails to the customer via the Accept Blue platform.
  • Breaking: amountDueNow was not actually being used to calculate the line price! If you used variant.price in your subscription strategy, or used the default subscription strategy, everything still works as expected.
  • Allow subscriptions with amount=0
  • Delete created subscriptions if the one-time charge fails after that.
  • Store payment metadata for declined transactions. Create recurring schedule after successful charge.
  • POTENTIALLY BREAKING: Creating a card payment method now accepts a Vendure customer ID, which changed the input from Int! to ID!.
  • Prevent empty metadata for orders with $0
  • Enable updating payment method on a subscription via the Shop API for logged in customers
  • Bug fix: Prevent updating a subscription to a payment method type (Visa, MasterCard, etc) that is not allowed. Only allow the methods set via the Admin UI.
  • Enable creating and deleting payment methods via the Shop API for logged in customers
  • Enable creating and deleting payment methods via the Admin API for all customers
  • Upgraded to Vendure 3.3.2
  • Added updating of payment methods via the Shop API for logged in customers
  • Added updating of payment methods via the Admin API for all customers
  • Changed testMode log statement from warn to verbose
  • BREAKING: Removed account_number from UpdateCheckPaymentMethodInput as it is never returned by Accept Blue
  • Correctly encode email addresses when looking up customers in Accept Blue. This prevents incorrect Customer not found errors when using email addresses with + in them.
  • Fixed typo in error message
  • BREAKING: AcceptBlueSubscription.recurring.endDate is removed.
  • BREAKING: AcceptBlueSubscription.recurring.startDate is now optional.
  • The fields createdAt, nextRunDate, previousRunDate and numLeft have been added to AcceptBlueSubscription.recurring.
  • Prevent throwing an error when no enabled Accept Blue payment method is found when fetching other eligible Payment Methods.
  • Don't expose Accept Blue config on non Accept Blue Payment Method Quotes
  • Expose acceptBlueTestMode on Payment Method Quotes
  • Expose tokenization key, and Google merchant id's on payment method quote and eligible Accept Blue methods.
  • Added Apple Pay and Google Pay to eligible Accept Blue payment methods
  • Fixed typo Allow Pay to Apple Pay
  • Added Google Pay and Apple pay for creating subscriptions
  • Renamed internals to Amex as well
  • Not checking for sec_code input anymore, as it is an optional argument
  • Renamed payment method American Express to Amex
  • Allow disabling certain payment methods, e.g. 'visa' or 'check', via the Vendure Admin UI
  • Expose surcharges used by Accept Blue via GraphQL query
  • Update a customer's shipping and billing details in Accept Blue on subscription creation
  • Allow updating created subscriptions via the Admin API
  • Moved refunding to admin-api, and only allow with permission UpdateOrder
  • Publicly expose ctx in AcceptBlueTransactionEvent
  • Add ctx to AcceptBlueTransactionEvent
  • Update Vendure to 3.1.1
  • Recurring amounts divided by 100
  • Round up nrOfBillingCyclesLeft, to prevent unwanted never-ending subscriptions. See #532
  • Made both custom fields customer.acceptBlueCustomerId and orderLine.acceptBlueSubscriptionIds nullable and readonly. DB migration needed
  • Included custom field type declaration file in published package
  • Return Declined when payment handling fails, instead of throwing
  • Bug fix: Return Settled state for successful refunds
  • Implemented refunding via admin UI for initial AC transaction
  • Export AcceptBlueTransactionEvent from package
  • Don't throw error while resolving PaymentMethodQuote.acceptBlueHostedTokenizationKey if there is no AcceptBlue method (#452)
  • Automatically register webhooks with Accept Blue on payment method creation and update
  • Emit AcceptBlueTransactionEvent on incoming webhooks from Accept Blue
  • Update compatibility range (#480)
  • Convert biannually to every 6 months instead of once every 2 years
  • Allow test mode to be set at payment method level.
  • Removed the usage of env var ACCEPT_BLUE_TEST_MODE for test mode. Use the setting on payment method.
  • Update Version to 2.2.6
  • Return subscription id in Graphql type for created Accept Blue subscriptions
  • Allow refunding a transaction via refundAcceptBlueTransaction mutation.
  • Order.lines.acceptBlueSubscriptions now fetches created subscriptions from Accept Blue for placed orders, instead of calling your subscription strategy
  • Order.lines.acceptBlueSubscriptions.transactions shows the transactions made for the given subscriptions
  • Refactored order line custom field subscriptionIds to acceptBlueSubscriptionIds to avoid conflicts with for example the Stripe Plugin
  • Correctly check given input types
  • Always save payment methods and create recurring schedules and one time charges with a saved payment method
  • Allow payment for order with a saved payment method ID
  • Implement Charge Transaction with e2e tests
  • Implement Tokenized Credit Card Payment with e2e tests
  • Initial release