Skip to main content
Logo
Identify a payment Support GoCardless
Status pages
  • GoCardless status
  • IBP status
  1. Support Centre
  2. Payments
  3. One-off payments

Bulk importing payments

CSV Import

XML Import

CSV Import

Single payments can be created for multiple existing customers in bulk via a CSV import.

IMPORTANT: Please note that:

  1. You cannot add new, or update details for existing customers into the payments import CSV. The upload will return an error.
  2. There is a character limit of 100 characters per cell.
  1. Click Payments
  2. Select Import
  3. Click Download template
  4. Once downloaded, click the blue .csv link in the Export window to open 

    A link to download the export will also be emailed to you

  5. Enter the payment amount, description, and charge dates* into the respective rows of the customers you wish to create payments for (columns G, I, and J). Please note: There is a character limit of 100 characters per cell.
  6. Save the updated csv file
  7. Return to your dashboard and click Choose file to upload your saved csv
  8. Click Import payments

    If there are any errors in your uploaded file, this will be highlighted on the Imports page. You will then be required to correct the errors and then re-upload the csv.

  9. Once the upload has successfully validated, you will see confirmation of this on the Imports page. 

    Here, you can confirm that the payments you have created for each customer entry are correct via the Valid rows section at the bottom.

  10. When you're ready, click Process payments.

If you now navigate to the Payments page of your dashboard via the blue menu on the left, you should see these payments available to view with a pending submission status.

* Entering charge dates

The charge date must be entered in the format YYYY-MM-DD.

You must enter a date that allows for sufficient pre-collection processing time; determined by the advance notice and payment submission deadline requirements of the payment scheme applicable to where your customer is based.

If you wish to collect the payment as soon as possible, you can instead leave the payment.charge_date (column J) field blank.
 

COLUMN COLUMN TITLE REQUIRES INPUT / ACTION
A mandate.id No
B customer.id No
C customer.given_name No
D customer.family_name No
E customer.company_name No
F customer.email No
G payment.amount Yes
H payment.currency No
I payment.description Optional
J payment.charge_date Optional
K payment.metadata.YOUR_CUSTOM_FIELD Optional

Please note: Column K "payment.metadata.YOUR_CUSTOM_FIELD" needs to be given a unique name.

Handling accents in the bulk upload tool

If your customers' details contain accents or other special characters, you might experience issues when we run our automated checks.

This is because spreadsheet software like Excel by default doesn't understand the special characters in the file, so when you save it and upload it back to us, the special characters are corrupted, and the details no longer match up. This is because Excel doesn't handle what is called "UTF-8 encoding" properly.

On Excel on Windows, you can fix this by using the "Import Text File" tool to open the CSV file.

On Mac, Excel isn't able to open UTF-8 encoded files at all. You'll need to use alternative spreadsheet software (for example Apple's Numbers) or edit the CSV file carefully using a text editor.

XML Import

GoCardless supports bulk payment creation via PAIN.008 XML files — the industry-standard format exported directly by ERP and accounting systems. This means you can start processing SEPA Direct Debit payments immediately, using the files your system already generates, without any manual conversion.

Before you start, make sure:

  • Your organisation has SEPA Direct Debit enabled on your GoCardless account
  • Your file is in PAIN.008.001.08 or PAIN.008.001.02 format (other  versions are not accepted)
  • Your file is under 20 MB

How it works:

  1. Click Payments 
  2. Select Import
  3. Upload your PAIN.008.001.08 XML file — GoCardless detects the file type automatically
  4. Review the payments on the confirmation screen, including any errors flagged at the transaction level
  5. Click Process payments when you're ready.

The review screen, error handling, and processing steps are identical to the existing CSV import flow. If you're familiar with CSV imports, you already know how to use XML imports.

FAQs

Is the XML import feature available to all GoCardless merchants?
Can I upload an XML file to create SEPA Direct Debit payments in the GoCardless dashboard?
Which XML file format does GoCardless support?
Do I need a template to create my XML file?
Do I need to do anything differently when uploading an XML file versus a CSV file?
What is the maximum file size I can upload?
I use an ERP system (such as SAP or Microsoft Dynamics) that exports PAIN.008 XML files. Will these work?
Do I need to notify the customers of the mandate migration?
What happens if a mandate in my XML file doesn't exist in GoCardless yet?
Some transactions in my file failed. Does that mean my whole file is rejected?
What errors might cause my entire XML file to be rejected?
I uploaded an XML file but I'm getting an error about the wrong version. What should I do?
How can I tell whether my import was processed as a CSV or an XML file?

Getting Started & Eligibility

Is the XML import feature available to all GoCardless merchants?

XML imports are available to merchants who have SEPA Direct Debit enabled on their GoCardless account. If you don't yet have access to XML imports, please reach out to your account manager or our support team and we'll get you set up.

Can I upload an XML file to create SEPA Direct Debit payments in the GoCardless dashboard?

Yes! If your organisation’s SEPA scheme is enabled, you can upload a PAIN.008.001.08 XML file directly through the dashboard, without any conversion needed. This is the same file your ERP or accounting system already generates for bank submission, so you can start processing payments right away.

Which XML file format does GoCardless support?

GoCardless supports the PAIN.008.001.08 format, which is the ISO 20022 standard for SEPA Direct Debit initiation. If you try to upload an older version (such as PAIN.008.001.02), you'll see a clear error message letting you know only version 001.08 is accepted.

Uploading your file

Do I need a template to create my XML file?

No template is needed. Unlike CSV imports, your XML file should be exported directly from your ERP or accounting system (such as SAP, Microsoft Dynamics, or Sage) in PAIN.008.001.08 format. GoCardless reads this file as-is, so there's nothing to fill in or reformat before uploading.

Do I need to do anything differently when uploading an XML file versus a CSV file?

No, the experience is identical. GoCardless automatically detects whether your file is XML or CSV, so you don't need to toggle any settings or change your workflow. You'll see the same review screen, the same error reporting, and the same processing steps either way.

What is the maximum file size I can upload?

The file size limit is 20 MB, which is the same limit that applies to CSV imports. For most merchants, this comfortably accommodates tens of thousands of transactions per file.

Mandates & Customers

I use an ERP system (such as SAP or Microsoft Dynamics) that exports PAIN.008 XML files. Will these work?

Yes, that's exactly what this feature is designed for. GoCardless reads the mandate reference (called "MndtId") from your XML file, which is the same reference your ERP system uses internally. You don't need to replace these references with GoCardless-specific IDs.

Do I need to notify the customers of the mandate migration?

Yes, under bank debit scheme requirements, you are required to notify customers of the change in SEPA Direct Debit provider, any changes to their mandate reference, and confirmation of the old and new CID. The letter should also detail the date the change will occur. For more information on the requirements, see here

What happens if a mandate in my XML file doesn't exist in GoCardless yet?

As part of onboarding with GoCardless, we recommend migrating your existing customers and mandates into your account so that your XML files process smoothly from day one. If a mandate reference in your file doesn't match an existing mandate in GoCardless, for example, if the mandate wasn't included in your initial migration, GoCardless will automatically migrate the mandate using the details in your XML file, but you will be required to confirm this migration in the dashboard. The migration ensures that mandates you've previously set up with your clients can be used to create payments through GoCardless. This is a safety net to ensure no payments are missed, but we don't recommend relying on it as a substitute for a complete customer migration during onboarding, as timing mismatches between when payments are created and when mandates become active can affect your processing.

Errors & Troubleshooting

Some transactions in my file failed. Does that mean my whole file is rejected?

Not necessarily. There's a difference between file-level errors and transaction-level errors:

  • File-level errors (such as an unsupported XML version or a corrupted file) will reject the entire upload. You'll see the reason clearly on the import detail page.
  • Transaction-level errors (such as an invalid bank account number on a specific payment) only affect those individual transactions. The rest of your payments will proceed normally, and you can download an error report as a CSV to see exactly which transactions need attention and why.

What errors might cause my entire XML file to be rejected?

Your file will be rejected if any of the following apply:

  • It uses an unsupported PAIN.008 version (PAIN.008.001.08 and PAIN.008.001.02 are accepted)
  • It isn't a valid or parseable XML document
  • It fails structural validation against the PAIN.008.001.08/PAIN.008.001.02 standard
  • It contains a payment type other than SEPA Core Direct Debit (B2B direct debit is not supported)
  • The transaction count or total amount in the file header doesn't match the actual contents
  • The same file has already been imported (GoCardless detects duplicates using the file's unique Message ID)

In each case, you'll see a specific error message explaining what went wrong.

I uploaded an XML file but I'm getting an error about the wrong version. What should I do?

GoCardless supports PAIN.008.001.08 and PAIN.008.001.02. If your ERP or bank software is generating an older version, you'll need to update your export settings to one of these output versions. Check your export configuration or contact your ERP vendor for help.

Import history & Tracking

How can I tell whether my import was processed as a CSV or an XML file?

Your import history in the dashboard shows a label , either "CSV" or "XML", next to each import so you can easily tell them apart.

Was this article helpful?
  • Promoted articles

    • Credit card payments
    • Bulk importing payments
    • Overview of payment statuses
    • Refund a payment
  • Recently Added Articles

  • Top Articles

API Documentation

Our detailed docs have everything you need to know about using our Payments and Bank account data APIs

View documentation

Need help identifying a payment?

Seen ‘GoCardless Ltd’ on your bank statement? Use our secure tool below to find out more.

Payment Lookup

Need support?

Contact

Our support team are available 24/7 to answer any questions you may have.

Quick links

Knowledge base
Visit GoCardless.com

About GoCardless

Legal
Privacy
Security
Blog

Support

Contact support
Complaints
Contact sales

Seen ‘GoCardless Ltd’ on your bank statement?

Identify a payment

GoCardless Ltd, 55 Collins Street, Melbourne VIC 3000, Australia


GoCardless Ltd (company registration number 07495895) is registered as a foreign company in Australia, ABN 17 606 261 74, and holds an Australian Financial Services licence (AFSL), number 478976.





English (Australia) Deutsch English (Canada) English (United Kingdom) English (New Zealand) English (United States) Español Français
Search help articles
https://gocardless.com/en-au/partner-with-us/
/hc/theming_assets/01K6CWEX65HDS7SN48AB4BJ0FJ
Partner with us
Partner with us to shape the future of payments.
custom
https://gocardless.com/en-au/stories/
/hc/theming_assets/01K6CWEXFM1KVSFD87E8NNH1HK
Customer Stories
GoCardless helps thousands of businesses with their payments everyday.
custom
https://payersupport.gocardless.com/hc
/hc/theming_assets/01K6CWEXSCTABZBKYYHZK1HCVV
Paying a merchant via GoCardless
Our Payer Support provides resources on paying through GoCardless.
Payment timings, Verification, Xero, 2fa