Share on Social Media

0 Shares
Clap 0Share Count on Clap
0Share Count on Clap
Toot 0Share Count on Mastodon
0Share Count on Mastodon
Share 0Share Count on Facebook
0Share Count on Facebook
Share 0Share Count on Linkedin
0Share Count on Linkedin
E-mail 0Share Count on Email
0Share Count on Email
WhatsApp 0Share Count on Whatsapp
0Share Count on Whatsapp
Copy 0Share Count on Clipboard
0Share Count on Clipboard
Print 0Share Count on Print
0Share Count on Print

ochProjects turns the time you spend and the materials you buy into invoices your customers can review, approve and pay - all inside your own Joomla site. This page explains how the parts fit together, what each one is for, and how people typically use it.

The big picture

Everything in ochProjects follows one line:

Customer → Project → Time and material logs → Invoice → Payment

  • A Customer is who you bill. It holds contact details, a VAT number, and how they want to pay.
  • A Project belongs to one Customer. It holds the hourly rate, the currency, and how the work is billed.
  • Time logs (hours worked) and Materials (costs you incurred) are logged against a Project.
  • Logged work must be approved before it can be billed, so nothing is invoiced by accident.
  • An Invoice is built from approved work. It starts as an editable draft, and once finalized it gets a permanent number and is locked.
  • Payments are recorded against the invoice - manually, or automatically when the customer pays online.

Customers are ordinary Joomla users. A customer logs in to your site and sees only their own projects, logs and invoices. Nothing else about your site changes.

Customers

A Customer record stores the billing name and address, whether it is a private person or a business, and the VAT number for businesses. Each Customer is linked to a Joomla user account, which is how they get access to the front end.

  • One Joomla user can be linked to more than one Customer. This suits a bookkeeper or office manager who handles several companies with a single login.
  • Each Customer chooses (or you choose for them) a payment method: one of the online payment plugins you have installed, or plain bank transfer.
  • Each Customer has an invoice grouping setting. Combined lets one invoice cover several projects. Per project forces one invoice per project, which suits an agency that re-invoices its own clients per project.

Projects and billing models

A Project has its own hourly rate and currency, so one Customer can have projects in different currencies. Every Project uses one of three billing models:

Billing model Use it when What happens
Actual hours You bill exactly the hours worked. Every approved hour and material becomes an invoice line at the project rate.
Capped at budget The customer has a maximum number of hours. You invoice actual hours as normal, but you get a warning before an invoice would push the project past its budget hours. The warning does not block you - the decision stays yours.
Fixed price You agreed a price for the whole project. You invoice amounts against the fixed price - a deposit, progress payments, a final invoice - in whatever steps you agreed. The project shows how much has been invoiced and how much remains. Each invoice's specification lists all the time and materials logged on the project so far, so the customer can see the effort behind the price.

For Capped and Fixed price projects, only you (the administrator) create invoices. The terms you agreed are yours to translate into invoices, so customers cannot start an invoice for these projects themselves. They can still see the logged time and materials, which lets them follow progress.

Time logs and materials

You log hours (with a description and a rate) and materials (a description and an amount) against a Project. Hours can be rounded to a set interval, such as 15 minutes - either for the whole site or per project.

Each entry has an approved state:

  • By default, entries wait for approval.
  • A project can be set to auto-approve, so entries are approved the moment they are created. Use this for trusted, repeat work where a review step adds nothing.
  • Customers with the right permission can approve entries themselves from the front end.

Only approved, not-yet-invoiced entries can be put on an invoice. Once an entry is on an invoice, it cannot be invoiced twice.

Invoices

An invoice moves through a simple life:

  1. Draft - editable. You (or a customer with invoicing permission) add approved entries, remove items, add manual lines such as a deposit or a one-off fee, or pick reusable lines from the catalog.
  2. Finalized - the invoice gets its permanent, sequential number (with a prefix you choose) and is locked. If the customer uses an online payment method, a payment link and QR code are added to the document. A PDF is created and stored.
  3. Sent - the invoice has been emailed to the customer.
  4. Partially paid / Paid - payments have been recorded.
  5. Void - the invoice was cancelled.

Voiding releases the time and materials back to "approved, not yet invoiced" so they can go on a new invoice. The stored PDF is replaced by a copy stamped VOID on every page, so your records show the cancelled document instead of one that still looks payable.

The PDF contains the invoice followed by a specification, a detailed breakdown of the underlying hours and materials.

VAT

VAT is worked out for you when an invoice is created, based on the Customer:

  • Customers outside the EU get "VAT not applicable" instead of an unexplained 0% line.
  • Business customers elsewhere in the EU with a VAT number that checks out against the EU's VIES service get the reverse charge, and the invoice says so.
  • Everyone else - private customers within the EU, and business customers in your own country - is charged VAT at your default rate.

If VIES cannot be reached, you decide (in the options) whether to charge VAT until the number is confirmed, or to trust the number the customer entered.

Documents and templates

Invoices, specifications and the payment information box are built from templates you can edit, with shared header and footer parts. Templates can differ by language, falling back to a universal default, so a customer can receive an invoice in their own language.

Payments

Payment methods are separate add-on plugins, so you only install the ones you use:

  • Stripe, PayPal and Mollie each add an online payment link and QR code to the invoice.
  • Without a plugin, invoices carry your bank details for a normal bank transfer. You can record a manual payment yourself, in full or in part.

The link a customer receives always points to your own site first, and your site then creates a fresh payment page at the moment the customer opens it. An old email or PDF therefore keeps working, and forwarding an invoice to a colleague does not create a second payment.

Emails

Invoice and payment-received emails use Joomla's own Mail Templates (System → Mail Templates), so you edit and translate the wording the same way as any other Joomla email. By default nothing is sent automatically - you send the emails from the toolbar when you are ready. Switch on Automatically Email Invoices in the options to send them the moment an invoice is finalized or fully paid.

The customer portal

Give customers access by adding menu items to your site:

  • Dashboard - their projects, totals and what is new since their last visit.
  • Time Logs & Materials - search and review everything logged for them, and approve entries.
  • Invoices - status and PDF download for each invoice.
  • My Details - their own contact, VAT and payment-method details.
  • Payment Link - optional; gives online payment links a clean address on your site.

What a customer can do is controlled by three permission levels that you assign to Joomla user groups, exactly like any other Joomla permission:

Level The customer can
View See their logs and invoices.
Approve Everything above, plus approve logged time and materials.
Invoice Everything above, plus create and finalize an invoice from what they approved (Actual hours projects only).

Customers cannot log time themselves. The people who actually do the work can, though, without needing a Customer account at all - see Team Logging.

Reporting for your bookkeeper

On the invoice list, Download VAT Report produces a PDF for a year, quarter or month. It lists every issued invoice in that period grouped by how VAT was treated - outside the EU, EU reverse charge, VAT charged on an EU business customer, and standard - each with amount excluding VAT, VAT, and total, per currency. A separate list of reverse-charge VAT numbers with their totals gives you what you need for an EU sales listing. The report uses the treatment recorded when each invoice was finalized, so it does not change if a customer's details are edited later.

Each project also shows its own totals: hours, value logged, invoiced so far and outstanding.

Team Logging

Time does not always need to be logged by you. A Team Member - someone who works on a project but is not the customer being billed for it - can log their own hours from the front end, without any back-end access at all.

A separate role from Customer

Team membership is entirely independent from the Customer relationship described under Parts. The same Joomla user could be a Customer on one project and a Team Member on another - or even both on the same project - without the two roles affecting each other. A Team Member never sees who the customer is, what the project's hourly rate is, or anything else about the commercial side of the work.

Setting it up

  1. Create a Joomla User Group for your team (for example, "Project Team"), and grant it the Front End: Log Time as Team Member permission under Users → Permissions.
  2. Add the people who will log time to that group.
  3. Open a Project's edit screen and go to the Team tab. Everyone you just added to the group appears there - tick who may log time on this specific project.
  4. Add a My Time Logs menu item pointing your team to the front end.

Only people in a group with that permission ever appear on a Project's Team tab, so picking the right person stays quick even on a site with thousands of users.

What a Team Member sees and can do

  • A plain list of the Project names they are assigned to - nothing else about the project.
  • Their own logged time only. They cannot see or manage anyone else's entries, even on a project they share with other team members.
  • A log entry records a description and a start/end time, exactly like the entries you log yourself. The hourly rate always comes from the project - a Team Member never sets or sees it.
  • An entry can be edited or deleted right up until it is approved. Once approved, it is locked, the same as everywhere else in ochProjects.
  • Materials are not covered yet - Team Members log time only, for now.

How it fits the rest of the pipeline

A Team Member's entry flows into exactly the same approve-then-invoice pipeline as anything you log yourself. If the project has auto-approve switched on, it is approved immediately; otherwise it waits, just like any other entry. It shows up in the Customer's own Time Logs & Materials view automatically - the customer sees and approves it exactly as if you had logged it, with no extra step on your side.

A freelancer billing by the hour

Create a Customer and a Project with your hourly rate. Log your hours during the month, approve them, and use Create Invoice on the project to pull everything approved into one draft. Check it, finalize it, and send it. The customer pays through the link in the email.

An agency where the customer reviews the time

Give your customer contact the Approve level. You log time as normal, and they log in, read the descriptions and approve what they agree with. Disputes are settled before any invoice exists. Turn on auto-approve for the projects where a review adds nothing.

A customer who invoices for themselves

Give a trusted customer the Invoice level. They approve their own entries, select the ones they want, and create and finalize the invoice on your site, which delivers it to them the same way as one from the admin. Suits customers who need invoices on their own schedule, such as at month end for their bookkeeping.

A fixed-price website build with a deposit

Set the project to Fixed price and enter the agreed amount. Create the first invoice for the deposit, and later ones for progress payments. The final invoice is pre-filled with whatever remains. The amounts and the number of invoices are entirely up to you. The customer can follow how much time went into the work while you bill against the agreed price.

A support contract with a monthly hour limit

Set the project to Capped at budget with the agreed number of hours. Invoice the actual hours each month. If an invoice would take the project over budget, you are warned first and can decide whether to go ahead - for example, when the customer has agreed to extra work.

A bookkeeper managing several companies

Link one Joomla login to several Customers. After logging in, the bookkeeper sees the projects, logs and invoices of every linked company, each clearly tied to its own Customer.

An agency re-invoicing its own clients

Set the Customer to Per project invoice grouping. Each project always gets its own invoice, so the agency can pass each end client's costs on separately.

Selling to customers in several countries

Projects can use different currencies, and VAT is treated automatically for each customer's country and VAT number. At quarter end, the VAT report gives your bookkeeper the figures split by treatment.

Subcontractors who log their own hours

Add each subcontractor as a Team Member on the projects they work on, instead of relaying their hours from an email or spreadsheet yourself. They log their own time from the front end, seeing only the project names they are assigned to. Their entries follow your normal approve-then-invoice flow, and the customer sees them exactly like any other entry.

What ochProjects is not

  • It is not a public portfolio or project showcase. It is for billing.
  • It does not run subscriptions or recurring charges. Each invoice is created by you or by an authorized customer.
  • It is not a full accounting package. It records what you invoice and what has been paid, and gives your bookkeeper the VAT overview, but it does not keep your ledger.

Requirements

Joomla! 6 Joomla! 5 Joomla! 4 (EOL - Not supported) Joomla! 3 (EOL - Not supported) PHP 8.1+

  • Basic Joomla! knowledge available between the chair and the keyboard :)

Installation is easy!

  1. Download the package
  2. in the Back-end go to menu Extensions > Manage
  3. in the tab [Upload file package] click [browse]  and select your downloaded package
  4. click [Upload & Install], wait for the installation to finish

Component Configuration

  1. In the back-end go to menu Components > ochProjects.
  2. In the component click on the [Options] button and configure:
    1. [Company Profile] This is your information that willbe used on the invoices. Important: Your country is requiredd as it is used to determine EU VAT excemptions!
    2. [Email Sending] Configure the Email settings
    3. [Billing] Here you can configure the way your timelogs will be 'rounded up': no rounding = 1 minute , 5 / 6 / 10 / 15 / 30 / 60 minutes
    4. [Invoicing] Configure the Invoicing settings
    5. [Front-end] Configure to load the style sheet or not
    6. [Permissions], permissions are used for the administrator, but here you can also give front-end users rights via membership of Joomla User Groups (you need to create these):
      • Front End: View Own Logs/Invoices > this gives the user access to the front-end view
      • Front End: Approve Own Timelogs/Materials > this gives the user view + approve rights for his own timelogs
      • Front End: Create/Finalize Own Invoices > this gives the user view, approve and the right to initiate invoices for time and material logs
      • Front End: Log Time as Team Member > this gives project members rights to manage and log time for the project via the front-end
  3. [Optional] Install and publish a ochprojectspayment plugin: when none installed, invoiced need to be paid manually as well as the processing of the payments.
  4. Create SEF url menu items:
    1. ochProject » Dashboard > The front end's entry point - a logged-in Customer's own linked Customer(s), a Project-by-Project time/materials/invoicing summary, and what's new since their last visit.
    2. ochProject » Invoices > A logged-in Customer's own Invoices - view status and download the PDF, with Finalize for Customers granted that front-end permission.
    3. ochProjects » My Details > A self-service page where a logged-in Customer can view and edit their own contact/billing details.
    4. ochProjects » Payment Link > Never opened directly - creating this menu item just gives an Invoice's own online payment link a clean, memorable URL (named/aliased however you like) instead of the generic default. Visiting it always redirects straight to the Customer's configured payment gateway.
    5. ochProjects » Time Logs & Materials > A logged-in Customer's own Timelogs/Materials - search/filter/sort/paginate, with an Approve action for Customers granted that front-end permission.
    6. ochProjects » Ochprojects » My Time Logs > A logged-in Team Member's own self-service time logging - independent of the Customer-facing Dashboard/Logs/Invoices views. Requires the "Front End: Log Time as Team Member" permission and being assigned to at least one Project's Team.
  5. Look at the templates and Mail Templates, and adapt the wording and layout to your own style.

Activate Joomla! One Click update and change-log integration

When you install the extension, it will automatically integrate with the Joomla Updater for both updates and change-logs.

On first use, the Joomla updater will prompt you with a 'Download Key is missing!' message.

  1. On this site: Go to [Tools > My Account > My Download Keys], and copy your Download ID#.
  2. On your site: Go to System > Update Sites, locate the extension, and paste the Download ID into the 'Download Key' field. Click [Save and Close].

Important:
If you're using this Download ID on a new server, you’ll receive an email to approve the device. Click the link in the email to enable downloads from this server.
Without approval, updates won’t be authorized, and the Joomla updater will display a 401 Unauthorized error when trying to fetch updates.

That’s it! You're all set.

ochProjects is equipped with a simple yet powerful system that enables you to place variables inserted into your templates into text fields. These variables are replaced by values and enable you to customize and personalize messages and text.

A variable consists of two parts: {object:field}

The object is the actual ochProjects object, so all fields in these objects are available.

If an object or field is not available, the variable will not be replaced and displayed as is.
If a field is empty (not filled in), the variable will be replaced with the value of the field (empty).

There is one more object, {subtemplate:alias}, which is not a field lookup but inlines another Template row's own rendered output - used to share the header/footer between the Invoice and Specification, and to build the Invoice's items table and payment information from their own separately editable Templates.

  Templates
Object Field Variable Header Footer Invoice Specification Invoice-items-row Invoice-items-table Invoice-items-summary-row Invoice-items-summary-table Invoice-payment-info-unpaid Invoice-payment-info-paid
config company_name {config:company_name} x                  
  company_address_line1 {config:company_address_line1} x                  
  company_address_line2 {config:company_address_line2} x                  
  company_postal_code {config:company_postal_code} x                  
  company_city {config:company_city} x                  
  company_country_code {config:company_country_code} x                  
  company_email {config:company_email} x x                
  company_phone {config:company_phone}   x                
  company_website {config:company_website} x x                
  company_registration_number {config:company_registration_number} x                  
  company_vat_number {config:company_vat_number} x                  
  company_account_holder {config:company_account_holder}                 x  
  company_iban {config:company_iban} x               x  
  company_bic {config:company_bic} x               x  
  company_bank_name {config:company_bank_name}                 x  
  company_bank_address {config:company_bank_address}                 x  
customer name {customer:name}     x              
  address_line1 {customer:address_line1}     x              
  address_line2 {customer:address_line2}     x              
  postal_code {customer:postal_code}     x              
  city {customer:city}     x              
  country_code {customer:country_code}     x              
  vat_number {customer:vat_number}     x              
invoice invoice_no {invoice:invoice_no}     x x         x  
  currency {invoice:currency}     x x x   x   x  
  issue_date {invoice:issue_date|shortdate}     x              
  due_date {invoice:due_date|shortdate}     x           x  
  subtotal {invoice:subtotal|amount}     x x            
  vat_rate {invoice:vat_rate}     x              
  vat_amount {invoice:vat_amount|amount}     x              
  total {invoice:total|amount}     x              
  notes {invoice:notes}     x x            
  items {invoice:items}       x            
  items_summary {invoice:items_summary}     x              
  items_rows {invoice:items_rows}           x        
  items_summary_rows {invoice:items_summary_rows}               x    
  payment_status {invoice:payment_status}     x              
  payment_status_key {invoice:payment_status_key}                 x  
  balance_due {invoice:balance_due}                 x  
  payment_info {invoice:payment_info}     x              
  payment_link {invoice:payment_link}     x              
  payment_qr {invoice:payment_qr}     x              
item description {item:description}         x          
  quantity {item:quantity}         x          
  unit {item:unit}         x          
  unit_price {item:unit_price|amount}         x          
  amount {item:amount|amount}         x   x      
  label {item:label}             x      
variable document_title {variable:document_title}     x              
  vat_treatment {variable:vat_treatment}     x              
subtemplate header {subtemplate:header}     x x            
  footer {subtemplate:footer}     x x            

Fields marked with |amount or |shortdate above are formatted for display (currency/number formatting, or a locale-appropriate short date) rather than shown as a raw database value.

The two invoice emails ("Invoice Sent", "Payment Received") are not built with this system - they are Joomla's own core Mail Templates (System > Mail Templates), using plain {TAG} syntax. Available tags: {CUSTOMERNAME}, {INVOICENO}, {TOTAL}, {CURRENCY}, {COMPANYNAME}, plus {DUEDATE} on the invoice email only.

The ochpayment - Mollie plugin is NOT part of the ochProjects package. You need an additional subscription.

This payment plugin gives your customers the possibility to pay via the Mollie Checkout. Mollie is a dutch payment provider that originally started out as an iDEAL payment gateway but currently has many different payment options you can configure in the Mollie dashboard:

  • Wero / iDEAL
  • Creditcard
  • Apple Pay (requires credit card)
  • Klarna
  • PayPal
  • Overboeking
  • Sofort
  • Cadeau cart
  • Bancontact
  • EPS
  • Giropay
  • Przelewy24
  • KBC/CBC Payment Button
  • Belfius Direct Net
  • Voucher
  • SEPA-incasso

Getting Started with Mollie

The plugin has the following configuration settings:

  • API Credentials Tab:
    • set the mode of the plugin, use Live on production sites, test when testing
    • Mollie Live API Key: the Mollie Live API key as generated for your Mollie account / site. This key will be used when Mollie Mode = Live
    • Mollie Test API Key: the Mollie Test API key as generated for your Mollie account / site. This key will be used when Mollie Mode = Test

Agency Bundle - 12 months

Supercharge your Joomla! toolbox with the Agency Bundle! Get all extensions plus 2 Hours of expert support – Subscribe today!
More Information

ochProjects - Mollie - 6 months

Enable your customers to pay with the flexible Mollie payment gateway.
More Information

The ochpayment - PayPal plugin is NOT part of the ochProjects package. You need an additional subscription.

This payment plugin gives your customers the possibility to pay via the PayPal Checkout. PayPal checkout will offer your Customer a dynamic set of payment options depending on variables like Country of origin. The following Payment providers are supported by PayPal

  • Creditcard or debit card
  • PayPal Credit
  • Bancontact
  • BLIK
  • EPS
  • Giropay
  • iDEAL
  • Mercado Pago
  • MyBank
  • Przelewy24
  • SEPA-lastschrift
  • Sofort
  • Venmo

You need to create a set of PayPal API credentials: 1 for the production environment and 1 for the sandbox (test) environment: https://developer.paypal.com/docs/platforms/get-started/

The credentails are configured in the plugin configuration.

Getting Started with PayPal

Webhook(s)

Add a webhook in your PayPal Developer Dashboard (Apps & Credentials > your app > Webhooks) pointing at your site's "index.php?option=com_ochprojects&task=invoice.webhook&processor=paypal" URL (Live and Sandox have their own webhooks!)

Webhooks should be subscribed to:

  • Payment capture completed (marks the Invoice paid)
  • Payment capture denied
  • Checkout order voided (logged for troubleshooting, no other action taken).

The plugin has the following configuration settings:

  • API Credentials Tab:
    • PayPal Mode: Live or Sandbox, set the mode of the plugin, use Live on production sites, sandbox when testing
    • Live Client ID: the PayPal Live Client ID key as generated in your PayPal Developer Dashboard This key will be used when PayPal Mode = Live
    • Live Secret: the PayPal Live Secret key as generated in your PayPal Developer Dashboard This key will be used when PayPal Mode = Live
    • Live Webhook ID: The ID PayPal assigns the webhook you register (see the note above) - needed to verify that a webhook call genuinely came from PayPal.
    • Sandbox Client ID: the PayPal Sandbox Client ID key as generated in your PayPal Developer Dashboard This key will be used when PayPal Mode = Sandbox
    • Sandbox Secret:the PayPal Sandbox Secret key as generated in your PayPal Developer Dashboard This key will be used when PayPal Mode = Sandbox
    • Sandbox Webhook ID: The ID PayPal assigns the webhook you register (see the note above) - needed to verify that a webhook call genuinely came from PayPal.

Agency Bundle - 12 months

Supercharge your Joomla! toolbox with the Agency Bundle! Get all extensions plus 2 Hours of expert support – Subscribe today!
More Information

ochProjects - PayPal - 6 months

Enable your customers to pay with the state-of-the-art PayPal checkout payment gateway.
More Information

The ochpayment - Stripe plugin is NOT part of the ochProjects package. You need an additional subscription.

This payment plugin gives your customers the possibility to pay via the Stripe Checkout. Stripe checkout will offer your Customer a dynamic set of payment options depending on variables like Country of origin and device. The following Payment providers are supported by Stripe

  • Creditcards
  • Canadia PADs
  • Afterpay / Clearpay
  • Alipay
  • Bancontact
  • Boleto
  • EPS
  • FPX
  • giropay
  • GrabPay
  • iDEAL
  • OXXO
  • P24
  • SEPA Direct Debit
  • Sofrt
  • WeChat Pay

The credentails are configured in the plugin configuration.

Getting Started with Stripe

Prerequisites

Before configuring the ochProjects - Stripe plugin on your website you to:

  1. Create a Customer Account on Stripe
  2. In the stripe Developers Dashboard you need to copy both the Live Secret key and Test Secret key (note: NOT the publishable keys) > https://dashboard.stripe.com/apikeys
  3. In the stripe Developers Dashboard you need to create a WebHook endpoint for both the Live Mode as well as the Test Mode > https://dashboard.stripe.com/webhooks
    1. URL: https://[yourdomain]/index.php?option=com_ochprojects&task=invoice.webhook&processor=stripe
    2. Events to send (6) :
      1. checkout.session.expired
      2. checkout.session.completed
      3. checkout.session.async_payment_succeeded
      4. checkout.session.async_payment_failed
  4. Configure all the Payment Methods that you want to use > https://dashboard.stripe.com/settings/payments

The plugin has the following configuration settings:

  • API Credentials Tab:
    • Stripe Mode: Live or Test, set the mode of the plugin, use Live on production sites, test when testing
    • Stripe Live Secret Key: the Stripe Live Secret key as generated in your Stripe Developer Dashboard. This key will be used when Stripe Mode = Live
    • Stripe Test Secret Key: the Stripe Test Secret key as generated in your Stripe Developer Dashboard. This key will be used when Stripe Mode = Test
    • Stripe Live WebHook Signing Secret: the Stripe webhook signing key as generated in your Stripe Developer Dashboard. This key will be used when Stripe Mode = Live
    • Stripe Test WebHook Signing Secret: the Stripe webhook signing key as generated in your Stripe Developer Dashboard. This key will be used when Stripe Mode = Test
    • Limit WebHook to Stripe IP Addresses: setting to only process webhook request originating from Stripe.

Agency Bundle - 12 months

Supercharge your Joomla! toolbox with the Agency Bundle! Get all extensions plus 2 Hours of expert support – Subscribe today!
More Information

ochProjects - Stripe - 6 months

Enable your customers to pay with the flexible Stripe payment gateway.
More Information

Tips & Tricks

  • none yet

Technical support and feature requests via our forum (You need a valid subscription to be able to post)

Joomla! 6 Joomla! 5 Joomla! 4 (EOL - Not supported) Joomla! 3 (EOL - Not supported) PHP 8.1+

Security updates Free Available to all licence holders within the support period, including expired subscriptions. Temporary download access (30 days) is activated for all license holders on the day of release.
Bug fixes & improvements Active subscription Available to customers with an active subscription.
New features Active subscription Available to customers with an active subscription.
End-of-life platforms Not available Security updates are not backported to Joomla or PHP versions that have reached end of life. Customers on unsupported platforms are advised to upgrade.

Conformite Europeenne EU Declaration of Conformity - ochProjects
Manufacturer OnlineCommunityHub, Netherlands
Product name ochProjects
Supported series 1.0.x (minor and patch releases included)
Product description Joomla extension - regular product with digital elements
CRA product class Regular product (CRA Annex III not applicable)
Conformity procedure Self-assessment - Article 32(1), Regulation (EU) 2024/2847
Supported platforms

Joomla! 6 Joomla! 5 Joomla! 4 (EOL - Not supported) Joomla! 3 (EOL - Not supported) PHP 8.1+

Support period Minimum 5 years from date of first purchase
Regulation Regulation (EU) 2024/2847 of the European Parliament and of the Council

Software Bill of Materials (SBOM)

Third-party libraries bundled with this extension. All versions have been verified against known vulnerability databases at the time of release.

Library Version
dompdf/dompdf v3.1.6
dompdf/php-font-lib 1.0.2
dompdf/php-svg-lib 1.0.2
sabberworm/php-css-parser v9.4.0
masterminds/html5 2.11.0
bacon/bacon-qr-code v3.1.1
dasprid/enum 1.0.7
endroid/qr-code 6.0.9
thecodingmachine/safe v3.4.0

See our vulnerability disclosure policy or report directly via the contact form.

Joomla! 6 Joomla! 5 Joomla! 4 (EOL - Not supported) Joomla! 3 (EOL - Not supported) PHP 8.1+

Security updates Free Available to all licence holders within the support period, including expired subscriptions. Temporary download access (30 days) is activated for all license holders on the day of release.
Bug fixes & improvements Active subscription Available to customers with an active subscription.
New features Active subscription Available to customers with an active subscription.
End-of-life platforms Not available Security updates are not backported to Joomla or PHP versions that have reached end of life. Customers on unsupported platforms are advised to upgrade.

Conformite Europeenne EU Declaration of Conformity - ochProjects - Mollie
Manufacturer OnlineCommunityHub, Netherlands
Product name ochProjects - Mollie
Supported series 1.0.x (minor and patch releases included)
Product description Joomla extension - regular product with digital elements
CRA product class Regular product (CRA Annex III not applicable)
Conformity procedure Self-assessment - Article 32(1), Regulation (EU) 2024/2847
Supported platforms

Joomla! 6 Joomla! 5 Joomla! 4 (EOL - Not supported) Joomla! 3 (EOL - Not supported) PHP 8.1+

Support period Minimum 5 years from date of first purchase
Regulation Regulation (EU) 2024/2847 of the European Parliament and of the Council

Software Bill of Materials (SBOM)

No third-party libraries bundled with this extension.

Library Version
   

See our vulnerability disclosure policy or report directly via the contact form.

Joomla! 6 Joomla! 5 Joomla! 4 (EOL - Not supported) Joomla! 3 (EOL - Not supported) PHP 8.1+

Security updates Free Available to all licence holders within the support period, including expired subscriptions. Temporary download access (30 days) is activated for all license holders on the day of release.
Bug fixes & improvements Active subscription Available to customers with an active subscription.
New features Active subscription Available to customers with an active subscription.
End-of-life platforms Not available Security updates are not backported to Joomla or PHP versions that have reached end of life. Customers on unsupported platforms are advised to upgrade.

Conformite Europeenne EU Declaration of Conformity - ochProjects - PayPal
Manufacturer OnlineCommunityHub, Netherlands
Product name ochProjects - PayPal
Supported series 1.0.x (minor and patch releases included)
Product description Joomla extension - regular product with digital elements
CRA product class Regular product (CRA Annex III not applicable)
Conformity procedure Self-assessment - Article 32(1), Regulation (EU) 2024/2847
Supported platforms

Joomla! 6 Joomla! 5 Joomla! 4 (EOL - Not supported) Joomla! 3 (EOL - Not supported) PHP 8.1+

Support period Minimum 5 years from date of first purchase
Regulation Regulation (EU) 2024/2847 of the European Parliament and of the Council

Software Bill of Materials (SBOM)

Third-party libraries bundled with this extension. All versions have been verified against known vulnerability databases at the time of release.

Library Version
paypal/paypal-server-sdk 2.4.0
apimatic/core 0.3.18
apimatic/core-interfaces 0.1.5
apimatic/jsonmapper 3.1.7
apimatic/unirest-php 4.0.8
php-jsonpointer/php-jsonpointer v3.0.2
psr/log 3.0.2
symfony/http-foundation v7.4.19
symfony/deprecation-contracts v3.7.1
symfony/polyfill-mbstring v1.38.2

See our vulnerability disclosure policy or report directly via the contact form.

Joomla! 6 Joomla! 5 Joomla! 4 (EOL - Not supported) Joomla! 3 (EOL - Not supported) PHP 8.1+

Security updates Free Available to all licence holders within the support period, including expired subscriptions. Temporary download access (30 days) is activated for all license holders on the day of release.
Bug fixes & improvements Active subscription Available to customers with an active subscription.
New features Active subscription Available to customers with an active subscription.
End-of-life platforms Not available Security updates are not backported to Joomla or PHP versions that have reached end of life. Customers on unsupported platforms are advised to upgrade.

Conformite Europeenne EU Declaration of Conformity - ochSubscriptions - Stripe
Manufacturer OnlineCommunityHub, Netherlands
Product name ochSubscriptions - Stripe
Supported series 5.2.x (minor and patch releases included)
Product description Joomla extension - regular product with digital elements
CRA product class Regular product (CRA Annex III not applicable)
Conformity procedure Self-assessment - Article 32(1), Regulation (EU) 2024/2847
Supported platforms

Joomla! 6 Joomla! 5 Joomla! 4 (EOL - Not supported) Joomla! 3 (EOL - Not supported) PHP 8.1+

Support period Minimum 5 years from date of first purchase
Regulation Regulation (EU) 2024/2847 of the European Parliament and of the Council

Software Bill of Materials (SBOM)

Third-party libraries bundled with this extension. All versions have been verified against known vulnerability databases at the time of release.

Library Version
stripe/stripe-php v21.3.2

See our vulnerability disclosure policy or report directly via the contact form.