Non-Bacs customer migration: Autogiro, BECS AU, BECS NZ, Betalingsservice, PAD, SEPA and ACH
Covers Australia (BECS), Canada (PAD), Denmark (Betalingsservice), Eurozone (SEPA), New Zealand (BECS NZ), Sweden (Autogiro), and the US (ACH).
For the UK (BACS), please see Bacs (GBP) customer migration.
Moving your customers from your current provider to GoCardless? A bulk change transfers their existing mandates to GoCardless, so your customers don't need to set up a new Direct Debit. To learn more about the process, please see Move Customers to Gocardless.
Before you start
- Complete your GoCardless account verification
- Know your migration dates (all must be business days):
- Final collection date: The day you collect your last payment with the current provider (must be at least 1 business day before the Bulk Change date)
- Bulk Change date: The day GoCardless sets up your mandates, and the current provider cancels them on their systems.
- First collection date: The first date of payment collection on GoCardless (At least 1 business day after the migration date to allow for the mandates to activate)
Good to know:
- Only the authorisation transfers. Payments and subscriptions don't – you'll set those up again in GoCardless afterwards.
- If your billing cycle is complex and has no quiet period for a migration, we can do a phased bulk change across a few dates. Let us know when opening the request, as this will be a special request and not the default option.
- Notice periods and a couple of steps vary by scheme – find yours below.
Find your scheme
Click your scheme below to see its notice period, required bank fields, and anything else specific to it.
BECS (Australia)
-
Starting out: self-service
- Go to the GoCardless Dashboard
- Click on Settings
- Select Imports from the drop-down > Import > Migrate customers and follow the flow
- Notice needed: ~14 days (check your existing Service Agreement)
- Bank fields: account number + branch code
- Also required: full address
Client migration data requirements
| COLUMN | DATA | INFORMATION |
|---|---|---|
| A, B, C | Customer.given_name & customer.family_name OR customer.company_name |
Enter either customer given name + surname OR company name. If your previous provider exported your customers' full names in a single cell per whole name, rather than splitting between given name and family name, you can use the text to columns function in Excel to separate. Example: John & Smith OR John’s Gym Ltd |
| D | customer.email | A valid email address is required for each customer so that they receive notifications from GoCardless about their payments. If you are planning to send your own notifications to your customers, please speak with your Account Executive. Example: john.smith@example.com |
| E, F, G, H, I, J |
|
Enter the customer's postal address; each line of the address split across the corresponding columns. |
| K | customer.phone_number |
(Optional) Example: +61 2 5550 4321 |
| L | bank_account.account_holder_name | This is separate to the 'name' entry fields, since account holder name can differ from the individual (e.g., it could include a middle name) or company name. Example: John Smith |
| M | bank_account.account_number | An AUD-enabled bank account must be used for BECS Direct Debit payments. Example: 123456789 |
| N | bank_account.branch_code | 6 character format. This can be entered with or without hyphens / spaces e.g., 200000, 20-00-00, and 20 00 00 will all work. Example: 200000 |
| O | bank_account.metadata.bank_custom_key | (Optional) - Use this field to add a custom reference for your customer if required. This will be assigned to your bank account within your dashboard and is a searchable field. Example: JAM12251 |
| P | customer.metadata.custom_reference |
(Optional) - Use this field to add a custom reference for your customer if required. This will be assigned to your customer within your dashboard and is a searchable field. Example: GYM441231 |
| Q | mandate.metadata.mandate_custom_key |
(Optional) - Use this field to add a custom reference for your customer if required. This will be assigned to your mandate within your dashboard and is a searchable field. Example: WIL12251 |
| R | customer.language | This will determine the language of customer notifications. Example: en |
PAD (Canada)
-
Starting out: self-service
- Go to the GoCardless Dashboard
- Click on Settings
- Select Imports from the drop-down > Import > Migrate customers and follow the flow
- Notice needed: 10 calendar days
- Bank fields: account number, branch transit number, institution number
- Also required: province
Client migration data requirements
| COLUMN | DATA | INFORMATION |
|---|---|---|
| A, B, C | Customer Given Name & Customer Family Name OR Customer Company Name |
Enter either customer given name + surname OR company name. If your previous provider exported your customers' full names in a single cell per whole name, rather than splitting between given name and family name, you can use the text to columns function in Excel to separate. Example: John & Smith OR John’s Gym Ltd |
| D | Customer Email | A valid email address is required for each customer so that they receive notifications from GoCardless about their payments. If you are planning to send your own notifications to your customers, please speak with your Account Executive. Example: john.smith@example.com |
| E | Customer Language | (Optional) This will determine the language of customer notifications. Example: en |
| F, G, H, I, J, K, L |
|
(Optional) - The customer's address to be stored against their PAD Pre-Authorised Debit.
Example: 80 Wellington Street, Imagination Office, 123 Imagination Building, Ottawa, ON, K1A 0A2, CA |
| M | Customer Phone Number | Example: +1 617 555 1294 |
| N | Bank Account Holder Name |
This is separate to the 'name' entry fields, since account holder name can differ from the individual (e.g., it could include a middle name) or company name.
Example: John Smith |
| O | Bank Account Number |
7-digit account number. A CAD-enabled bank account must be used for CAD Debit payments.
Example: 0123456 |
| P | Bank Branch Transit Number |
5-digit brand code
Example: 00063 |
| Q | Bank Financial Institution Number |
4-digit bank code
Example: 0036 |
| R |
Bank Account Metada: bank_custom_key |
(Optional) - Use this field to add a custom reference for your customer if required. This will be assigned to your bank account within your dashboard and is a searchable field.
Example: Jam12251 |
| S | Customer Metadata: custom_reference |
(Optional) - Use this field to add a custom reference for your customer if required. This will be assigned to your bank account within your dashboard and is a searchable field.
Example: Gym12251 |
| T | Mandate Metadate: mandate_custom_key |
(Optional) - Use this field to add a custom reference for your customer if required. This will be assigned to your bank account within your dashboard and is a searchable field.
Example: WIL12251 |
BECS (New Zealand)
-
Starting out: self-service
- Go to the GoCardless Dashboard
- Click on Settings
- Select Imports from the drop-down > Import > Migrate customers and follow the flow
- Notice needed: 10 calendar days
- Bank fields: account number with a hyphen before the suffix (e.g. 1234567-00), branch code, bank code
- Also required: full address
Client migration data requirements
| COLUMN | DATA | INFORMATION |
|---|---|---|
| A, B, C | Customer.given_name & customer.family_name OR customer.company_name |
Enter either customer given name + surname OR company name. If your previous provider exported your customers' full names in a single cell per whole name, rather than splitting between given name and family name, you can use the text to columns function in Excel to separate. Example: Billy & Jean OR James's Jeans |
| D | customer.email | A valid email address is required for each customer so that they receive notifications from GoCardless about their payments. If you are planning to send your own notifications to your customers, please speak with your Account Executive. Example: billy.jean@example.com |
| E | customer.language | This will determine the language of customer notifications. Example: en |
| F | customer.phone_number | Example: +64 4 817 9999 |
| G, H, I, J, K, L |
|
Enter the customer's postal address; each line of the address split across the corresponding columns. Example: Flat 12, Half Moon Bay (suburb), Auckland, 2012, NZ |
| M | bank_account.account_holder_name | This is separate to the 'name' entry fields, since account holder name can differ from the individual (e.g., it could include a middle name) or company name. Example: Billy Jean |
| N | bank_account.account_number | A BECS NZ-enabled bank account must be used for BECS NZ Direct Debit payments. Example: 1234567-00 Important: A hyphen must be added between the account number and suffix, as outlined in the example above (1234567-00). |
| O | bank_account.branch_code | Example: 0123 |
| P | bank_account.bank_code | Example: 01 |
| Q | bank_account.metadata.bank_custom_key | (Optional) - Use this field to add a custom reference for your customer if required. This will be assigned to your bank account within your dashboard and is a searchable field. Example: JAM12251 |
| R | customer.metadata.custom_reference | (Optional) - Use this field to add a custom reference for your customer if required. This will be assigned to your customer within your dashboard and is a searchable field Example: GYM12251 |
| S | mandate.metadata.mandate_custom_key | (Optional) - Use this field to add a custom reference for your customer if required. This will be assigned to your mandate within your dashboard and is a searchable field. Example: WIL12251 |
ACH (United States)
-
Starting out: self-service
- Go to the GoCardless Dashboard
- Click on Settings
- Select Imports from the drop-down > Import > Migrate customers and follow the flow
- Notice needed: only if the charge date or amount is changing – 7 days for a date change, 10 days for an amount change
- Bank fields: account number, routing number, account type
- Also required: full address; worth including the payer's IP address at authorisation if you have it
Client migration data requirements
| COLUMN | DATA | INFORMATION |
|---|---|---|
| A, B, C | Customer.given_name & customer.family_name OR customer.company_name |
Enter either customer given name + surname OR company name. If your previous provider exported your customers' full names in a single cell per whole name, rather than splitting between given name and family name, you can use the text to columns function in Excel to separate. Example: John & Smith OR John’s Gym Ltd |
| D | customer.email | A valid email address is required for each customer so that they receive notifications from GoCardless about their payments. If you are planning to send your own notifications to your customers, please speak with your Account Executive. Example: john.smith@example.com |
| E | customer.language | This will determine the language of customer notifications. Example: en |
| F, G, H, I, J, K, L |
|
The customer's address must be stored against their ACH Debit Authorization. Example: 1600 Pennsylvania Ave NW, Oval Office,123 Imagination Building, Washington, DC, 20500, US |
| M | customer.phone_number |
(Optional) Example: +1 617 555 1294 |
| N | bank_account.account_holder_name | This is separate to the 'name' entry fields, since account holder name can differ from the individual (e.g., it could include a middle name) or company name. Example: John Smith |
| O | bank_account.account_number | 10-12 digit account number. A USD enabled bank account must be used for ACH Debit payments. Example: 2715500356 |
| P | bank_account.bank_code | 9-digit routing number. Example: 026073150 |
| Q | bank_account.bank_type | Checking or Saving account type. Example: checking |
| R | mandate.payer_ip_address |
(Recommended) The IP address of the customer at the point that their ACH Debit Authorization was set up. Used as evidence to dispute potential unauthorized return claims. Example: 8.8.8.8 |
| S | bank_account.metadata.bank_custom_key | (Optional) - Use this field to add a custom reference for your customer if required. This will be assigned to your bank account within your dashboard and is a searchable field. Example: JAM12251 |
| T | customer.metadata.custom_reference | (Optional) - Use this field to add a custom reference for your customer if required. This will be assigned to your customer within your dashboard and is a searchable field. Example: GYM12251 |
| U | mandate.metadata.mandate_custom_key | (Optional) - Use this field to add a custom reference for your customer if required. This will be assigned to your mandate within your dashboard and is a searchable field. Example: WIL12251 |
Betalingsservice (Denmark)
-
Starting out: self-service
- Go to the GoCardless Dashboard
- Click on Settings
- Select Imports from the drop-down > Import > Migrate customers and follow the flow
- Notice needed: 6 working days before the charge month starts
- Bank fields: account number, bank code
- Also required: customer's CPR number (no address needed)
Client migration data requirements
| COLUMN | DATA | INFORMATION |
|---|---|---|
| A, B, C | Customer.given_name & customer.family_name OR customer.company_name |
Enter either customer given name + surname OR company name. If your previous provider exported your customers' full names in a single cell per whole name, rather than splitting between given name and family name, you can use the text to columns function in Excel to separate. Example: William & Svensson OR William's Jeans |
| D | customer.email | A valid email address is required for each customer so that they receive notifications from GoCardless about their payments. If you are planning to send your own notifications to your customers, please speak with your Account Executive. Example: william@example.com |
| E | customer.danish_identity_number | Each customer is required to provide their Danish identity number, usually consisting of 9 characters. Example: 0101701234 |
| F | bank_account.account_holder_name | This is separate to the 'name' entry fields, since account holder name can differ from the individual (e.g., it could include a middle name) or company name. William Svensson |
| G | bank_account.account_number | A DKK-enabled bank account must be used for Betalingsservice Direct Debit payments. Example: 123456789 |
| H | bank_account.bank_code | Please be aware that the character length of Danish bank codes varies; they are usually either 3 or 4 characters in length. Example: 7000 |
| I | customer.metadata.custom_reference | (Optional) - Use this field to add a custom reference for your customer if required. This will be assigned to your customer within your dashboard and is a searchable field. Example: WIL12251 |
| J | customer.language | You can use this column to specify the language in which you would like your customers to receive GoCardless notifications in. Example: da |
Autogiro (Sweden)
-
Starting out: self-service
- Go to the GoCardless Dashboard
- Click on Settings
- Select Imports from the drop-down > Import > Migrate customers and follow the flow
- Notice needed: 30 days
- Bank fields: account number (kontonummer), branch code (clearingnummer)
- Also required: customer's personnummer (no address needed); everyone's phone number and address for us to process the request
Client migration data requirements
| COLUMN | DATA | INFORMATION |
|---|---|---|
| A, B, C | Customer.given_name & customer.family_name OR customer.company_name |
Enter either customer given name + surname OR company name. If your previous provider exported your customers' full names in a single cell per whole name, rather than splitting between given name and family name, you can use the text to columns function in Excel to separate. Example: William & Svensson OR William's Jeans |
| D | customer.email | A valid email address is required for each customer so that they receive notifications from GoCardless about their payments. If you are planning to send your own notifications to your customers, please speak with your Account Executive. Example: william@example.com |
| E | customer.swedish_identity_number | Personnummer Example: 670919-9530 |
| F | bank_account.account_holder_name | The account holder name can differ from the individual (e.g. includes a middle name) or company name and so is a separate required field. Example: William Svensson |
| G | bank_account.account_number | Kontonummer Example: 00000055839825746 |
| H | bank_account.branch_code | Clearingnummer Example: 500 |
| I | customer.metadata.custom_reference | (Optional) - Use this field to add a custom reference for your customer if required. This will be assigned to your customer within your dashboard and is a searchable field Example: WIL12251 |
| J | customer.language | This will determine the language of customer notifications. Example: sv |
SEPA (Eurozone)
-
Starting out: self-service – and let your old provider know you're bulk changing away from them too
- Go to the GoCardless Dashboard
- Click on Settings
- Select Imports from the drop-down > Import > Migrate customers and follow the flow
- Notice needed: agreed directly with us
- Bank fields: IBAN, or local bank code + branch code + account number + country code
-
Also required: full address, plus a Creditor Identifier (CID) decision – see below
Picking your CID option
This is the one extra decision SEPA needs, and it changes which columns your CSV needs.
- Option 1 - keeps mandate references; changes CID and CID name.
- Option 2 - keeps nothing; changes CID, CID name, and mandate references.
- Option 3 - keeps CID, CID name, and mandate references; changes nothing.
- Option 4 - keeps CID and CID name; changes mandate references.
Keeping your CID (options 3 or 4)? Send a separate e-mail to GoCardless asking for your existing CID to be applied (a custom CID monthly add-on charge will apply), or add this as a note to your bulk change request. Our team will first process the CID request and then proceed with the bulk change process.
Changing your CID (options 1 or 2)? You'll set up a GoCardless CID first, and your first payment run tells the payer's bank the mandate's moved.
If you’re setting up a custom CID with GoCardless (this is a monthly add-on), you must wait for a confirmation that the CID has been applied to your account and then proceed with opening a bulk change request. Alternatively, add a note on your bulk change request that a custom CID has been requested and is in progress.
Whichever option you're on, the rule for extra fields is simple: for anything you're changing, add the matching "original" field so we know what it's changing from. For anything you're keeping, leave that field out (or delete it if it's already in your downloaded template).
- Option 1 (changing CID only): add amendment.original_creditor_id and amendment.original_creditor_name – your current CID and the name registered to it.
- Option 2 (changing everything): add all three – amendment.original_mandate_reference, amendment.original_creditor_id, and amendment.original_creditor_name.
- Option 3 (keeping everything): no extra fields needed.
- Option 4 (changing mandate references only): add amendment.original_mandate_reference – the customer's current mandate reference.
Not sure of your current CID name or mandate references? Check with your existing provider – getting these wrong can cause mass payment and mandate failures once submitted.
Prefer local bank details over an IBAN? Just add columns for the bank code, branch code, account number, and country code.
Client migration data requirements
amendment.original_mandate_reference—This reference should be unique per customer and should be the unique identifier attached to the original mandate when it was first created.
amendment.original_creditor_id—This ID should be the current Creditor Identifier against which all of the mandates are currently held. We would expect this field to be the same for all customers.
amendment.original_creditor_name—This should be the current Creditor, aka the name that is currently attached to the CID. It could be your organisation name or the name of your existing provider. If you're not sure, best to check with your existing provider so they can confirm.
| DATA | INFORMATION |
|---|---|
| Customer.given_name & customer.family_name OR customer.company_name |
Enter either customer given name + surname OR company name. If your previous provider exported your customers' full names in a single cell per whole name, rather than splitting between given name and family name, you can use the text to columns function in Excel to separate. Example: Jean & Dupont OR Jean’s Shop |
| customer.email |
A valid email address is required for each customer so that they receive notifications from GoCardless about their payments. If you are planning to send your own notifications to your customers, please speak with your Account Executive.
|
|
Enter the customer's postal address; each line of the address split across the corresponding columns. (Note: columns E, H, I, and J are required fields). Example: Flat 12, 123 Imagination Lane, 7th arrondissement, Paris, 75007, FR |
| customer.phone_number | (Optional) |
| bank_account.account_holder_name |
This is separate to the 'name' entry fields, since account holder name can differ from the individual (e.g., it could include a middle name) or company name. Example: Jean Dupont |
| bank_account.iban |
IBAN can be entered with, or without spaces; our system accepts either format. Example: FR1420041010050500013M02607 |
| amendment.original_mandate_reference |
Customer's mandate reference
|
| amendment.original_creditor_id |
This is your Creditor ID (CID) through which your customers' payments are processed. Example: FR123OTHERBANK |
| amendment.original_creditor_name |
Existing Creditor name (CID name) Example: The name on your existing CID |
| bank_account.metadata.bank_custom_key |
(Optional) - Use this field to add a custom reference for your customer if required. This will be assigned to your bank account within your dashboard and is a searchable field. Example: JAM12251 |
| customer.metadata.custom_reference |
(Optional) - Use this field to add a custom reference for your customer if required. This will be assigned to your customer within your dashboard and is a searchable field Example: JEAN441231 |
| mandate.metadata.mandate_custom_key |
(Optional) - Use this field to add a custom reference for your customer if required. This will be assigned to your mandate within your dashboard and is a searchable field. Example: WIL12251 |
| customer.language |
This will determine the language of customer notifications. Example: fr |
The steps
1. Start your request. Create your GoCardless account, then head to Settings → Imports → Import → Existing customers (Betalingsservice and Autogiro work a little differently here – check your scheme above)
2. Notify your customers. How much notice you need to give depends on your scheme – check yours below. For most schemes, you'll get a template from us to send out yourself; for Denmark and Sweden, we handle sending the template as part of Step 1.
3. Tell us it's done. Email us on the open bulk change request to confirm customers have been notified, with copies of what you sent (Betalingsservice and Autogiro need a bit more from you here too — see above)
4. Prepare your data. Every scheme's template wants the customer's name (or company name), email, and account holder name, plus optional phone number, custom references, and a language code. What else you need depends on your scheme – check above.
Once your template's ready, set your spreadsheet to Text format before entering data, so nothing gets misread – select all cells, then Format Cells → Text (Excel) or Cell → Data Format → Text (Numbers). Test-upload before the big day if you can.
5. Migration day. Upload your CSV. Once we approve it, the new authorisations go live – then you (or your old provider) cancel the old ones. Ideally, this happens the same day, so there's no gap or double collection.
Once you've migrated
Set up your payments and subscriptions again – they don't come across automatically. We can't liaise with your old provider or touch your customer data on your behalf, but we're around if you get stuck.
If you are using a partner integration, make sure the customer mandates are matched, so payments can be scheduled against them.
Using GoCardless for Xero?
If you are using GoCardless for Xero (GC4X), it matches mandates in both directions. Once connected, it imports your mandates and your Xero customers and matches them by email address. Where a mandate's email address doesn't match the Xero contact, you'll need to match it manually.
Two things to be aware of:
- Matching runs automatically whenever a new mandate is imported, a new Xero contact is imported, or an existing Xero contact is updated. When an Xero contact is imported, matching runs only if the contact doesn't have a mandate linked.
- Xero contacts are imported only after a sales invoice has been raised against them. A draft invoice is enough.
Using GoCardless in Xero?
If you are using GoCardless in Xero (GCIX), it handles mandate matching within Xero, so you'll follow the process for that in Xero rather than GoCardless. Migrated mandates appear as unmatched Direct Debit forms in Xero, which you match to contacts manually. See Xero's guide to matching a GoCardless Direct Debit form with a contact for the steps.
After the bulk change, matching a mandate to a contact triggers payments for all invoices for that contact with a future due date. For any overdue invoices, you can edit the invoice, click save without making any changes, and Xero will schedule the payment to be charged via GoCardless as soon as possible. For any invoice to be collected via GoCardless, it must have GoCardless selected as the payment method (Direct Debit), and the contact must have a mandate linked.
Using any other partner integration?
If you are using another third-party partner integration, contact the partner's team to confirm their requirements — whether they can import mandates, how mandate matching works, and when in the process is most optimal for you to connect. Most partners can import mandates into their system, but it's worth confirming before your migration date.