Skip to main content
Version: Next

Billing - Overview

The billing system is how you're able to bill customers. The goal of the billing system is to make it easy for companies to have professional level billing that is flexible and extendable.

Setup

  1. Add target entity alias
doctrine:
// ...
orm:
resolve_target_entities:
Parthenon\Billing\Entity\CustomerInterface: App\Entity\Team
  1. Add Routes
parthenon_billing_controllers:
prefix: /api
resource: ../../src/Parthenon/Billing/Controller/
type: annotation

Main Configs

NameTypeDescription
enabledbooleanIf billing is enabled
customer_typestringteam if teams are enabled and the team owner should be billed. Or user if single accounts are being used.
plan_managementstringconfig if static plans from the Parthenon yaml config should be used. Or athena if they are to be managed in Athena.
paymentsarrayThe payments config

Payment Configs

NameTypeDescription
providerstringWhat payment provider is to use.
pci_modebooleanIf PCI mode is enabled where it's possible to sent card details directly to the payment gateway.
return_urlstringThe return url to give to the payment gateway
cancel_urlstringThe cancel url to give to the payment gateway
adyenarrayThe adyen config
stripearrayThe Stripe Config

Adyen Configs

NameTypeDescription
api_keystringThe API key
merchant_accountstringThe merchant account for Adyen.
test_modebooleanIf you're using test servers for Adyen. For development mode.
prefixstringThe prefix Adyen has given you for production access.

Stripe Configs

NameTypeDescription
private_api_keystringThe private API key
public_api_keystringThe public API key
payment_methodsarrayThe payment methods to be used for Stripe hosted checkout

PCI Mode

Processing card details yourself is a security risk and some payment providers demand you've passed PCI checks to even allow it.