Some changes to payment processor options and how we handle bank references allow additional requested flexibility and more scope for automatic reconciliation.

Background

forms that take payments

Six form types currently take payments:

  • booking (event tickets)
  • invoice (payment of invoices and acceptance of quotations)
  • join (new member)
  • payment (arbitrary payments, especially donations independent of membership)
  • renew (manual renewal of membership)
  • shopping (merchandise shopping basket)

partial account and card numbers

Currently, Cameo’s payment processors Bank and Stripe collect and store some information about the customer’s account:

  • Bank asks the customer for the last four digits of their account number.
  • Stripe automatically provides the last four digits of the card number, which Cameo stores.

However, it has become apparent that not all banks routinely supply the payer’s sort code and bank account number when making payments. Where they do, the last four digits of the account number are invaluable for matching payments with payers when names are ambiguous and/or any requested references are not supplied or are mis-entered. However, where your bank doesn’t supply these, the last four digits are not helpful, and there is no point in asking for them.

Also, Cameo does not use the last four digits of card numbers, except to report back in some notifications. Therefore, it may be better not to store these at all, even though they aren’t a substantial privacy risk on their own.

interim transactions and bank references

Cameo introduced interim transactions to provide a place-holder in your bank statements until the corresponding real transaction arrives from the bank.

Most forms know what they are taking payment for and how to attribute it. So the form can store the reconciliation attribution in the interim transaction.

In most cases, we can match the interim transaction to the real one automatically when it arrives. Automatic reconciliation relies on the real transaction providing a code to match the same code in the interim transaction. Where that’s not possible, you can do it manually, during reconciliation. This all makes reconciliation much simpler.

Clearing bank transactions, however, couldn’t match interim transactions automatically. These arise when someone does a bank transfer, pays by standing order, or gives you a cheque. In these cases, Cameo had no way to provide the code to the bank. In the past, we’ve shied away from asking the customer to enter the code manually as a reference in a bank transfer. By way of experiment, we’ll try this out now and see if it helps. Too many customers may incorrectly enter codes. But the absence of account number to match on from some banks, it may be positive overall. It should allow Cameo to automatically reconcile the majority of these transactions in future.

Turn off partial account number collection

Control collection of partial bank account and card numbers using manage credentials in organisation settings → payment methods (Fig 1). You must be an administrator to change the credentials settings. You must quote your two-factor authentication number or password to make the changes.

Fig 1: manage credentials

For the Bank processor (Fig 2), you can now choose from:

  • optional: the form asks the customer to fill in the boxes for the last four digits of their account number, but can proceed without doing so. This is now the default. For existing payment methods, you may want to change the wording of the prompt (just underneath manage credentials, Fig 1).
  • required: the form requires them to fill in the boxes to proceed (of course, there is nothing to stop them lying by entering fake data, such as 0000).
  • never: this skips the payment details step entirely (in the same way as Cheque does). They go straight to the confirmation step. That provides information about how to send the payment, as before.
Fig 2: Bank processor credentials box

For Stripe (Fig 3), you can now choose:

  • Yes: receive the last four digits of card number, or
  • No: don’t

When you turn this off, the last four card number digits are still available in Stripe’s dashboard, should you need them. You cannot turn that off. This option does not, therefore, resolve any data protection issues you may have around collecting these.

Applepay transactions also use your Stripe account. However, it has never collected the partial card number. StripeCheckout (see below) also never collects it.

Fig 3: Stripe processor credentials box

References

Interim transactions now use an eight letter and digit code. For example: A3BC5EFM. The code embodies a couple of patterns that make it far less likely that we can accidentally mistaken some other random string quoted by the payment processor for our identifier. I have dropped the dashes around a 6-character code that previously helped to do this. We now sometimes want customers to enter the code. I felt that they would often not realise the dashes were a part of what they should quote.

For clearing bank transactions (processor Bank, for faster payment transfers and standing orders), we now ask the customer to quote the eight character interim identifier as the reference. Previously we asked them to quote something that varied between forms: for example, the membership number for joining in the join form. Similarly for Cheque, the form now asks them to write the identifier on the back of their cheque.

Processors that can receive the code automatically work as before. We provide the processor with the code and a short description of the transaction. This includes other data such as membership number when joining, booking reference(s) when buying tickets and so on. However, the interim code is essential. Therefore, Cameo forms no longer offers a setting to customise the reference description that they provide to the processor.

payment form

Because the payment form offers general payments for arbitrary purposes, identifying them is a little different.

As before, payment form options let you choose

  • where a reference, of your choosing, comes from; and
  • its purpose (how we should interpret the reference).

Where possible, Cameo supplies this reference, along with the interim code, to the payment processor to identify the transaction (as above).

The form now differs a little, however, by:

  • offering a new option to treat the reference as a book-keeping chart-of-accounts code. This means you can apply a payment to the account automatically that you would otherwise have manually reconciled it with
  • creating an interim transaction for other unattributed income. Previously the form did not create one when you selected this option. You would have manually reconciled such payments as other income. By creating an interim transaction, along with receiving interim identifiers for Bank transactions (as above), we can now often reconcile it automatically.

Payment processor StripeCheckout

Cameo now provides a payment processor called StripeCheckout. This takes a credit or debit card payment using your Stripe account. However, it does so using a page on Stripe’s own website, rather than embedding it within the form on your own site. This is similar to how PayPal and GoCardless processors already work. This is not quite so slick. However, it makes it easier to secure because Stripe handles nearly all precautions on your behalf. There is nowhere anyone enters card details in your own website. Your responsibility boils down to preventing introduction of malicious code re-directing to a fake payment page.

“Stripe Checkout” is Stripe’s name for this method of checking out. They designed it to work with an inventory of things you could buy, maintained in your Stripe account. However, Cameo does not use that: behind the scenes, it introduces a unique “product” for each payment. In this way it just changes the visual presentation of the payment page so far as the customer is concerned.

To use StripeCheckout, select it and provide credentials like any other processor. Credentials are the same as Stripe: provide a pair of keys provided by Stripe to allow Cameo to interact with your Stripe account. The manage credentials box explains where to find these.

switching from Stripe to StripeCheckout

To switch a payment method from Stripe to StripeCheckout:

  • Before you change the payment processor, in your payment method that uses Stripe, first choose manage credentials (Fig 1). Provide your password or 2FA number when asked.
  • Make a note of the two keys (copy them into Text Edit or Notepad, for example). To see the secret key, press the eye. Drag the eye out of the box to keep it displayed in clear text so you can copy it.
  • Close the box.
  • Change the processor from Stripe to StripeCheckout.
  • Manage credentials again, for the new processor. Enter the same keys that you made a note of.

StripeCheckout never collects the last four digits of the customer’s card number.