Invoice Address API

Use Case

The use case that led to this extension: our members log in on the website and have to be able to renew their membership, buy products and training, buy job adverts and register for events. When it comes to paying they need to be able to select an invoice address for this specific occassion. That could be their own private address, but also the address of their employer or the address of the co-operative group they are part of, or the address of their own company.


This extension exposes multiple geocoder providers to CiviCRM for the purpose of retrieving additional information about addresses when entered into CiviCRM. It does this using a generic geocoder library (which itself supports multiple providers) . 

Note that the terms of data use by geocoding providers varies and it is your responsibility to understand and adhere to them.

Custom Data Naming

This extension is designed for developers and power users. It exposes the table name and machine name fields when creating a custom data set, and the column name and field name fields when creating a custom field. This provides much more control over table and field construction, which is most useful when fields are later referenced by name through the API, or through direct SQL calls. 


The area extension provides a way to define geographical areas and automaticly link contacts to the area based on their primary address.

This extension is developed and sponsored by Velt. At velt they have local chapters, each chapter covers an area which might be a province,
a local community, a local neighbourhood or a combination of both. For example the chapter Veluwe-South exists of the municipality Arnhem,  municipality Wageningen and the city Bennekom.

Opt-in communication fields

This is a simple extension that provides a set of "Communication Preferences" custom fields for each contact.  Email, Phone and Mail(Post) are provided.


The fields are provided as "Yes/No" fields so that when placed on a form (eg. a profile) the user must explicitly set one or the other.  When they are updated the corresponding "Do not" fields on the contact record are updated accordingly.

Note that "Phone" incorporates both the "Do not Phone" and "Do not SMS" flags.