Batch Payments & CSV Imports

Credit Transfer Batches

Credit transfer batches can be created by uploading a CSV file via https://app.atlar.com/credit-transfers-batches or as a JSON payload using API endpoint https://api.atlar.com/payments/v2beta/credit-transfer-batches.

CSV format

The CSV content must include a header line (first row). Some field names are required in the header line while some are optional. Header field names are one-to-one mapped to JSON property names in our API (except for the simplifications mentioned below: CSV format differences to JSON API formats.

Fields

The table below lists all supported fields and whether they are required or optional. Note that some fields are conditionally required based on values of other fields. If any record line in the file meets the conditions for whether a field is required or not that also implies that the field must be specified in the header line. E.g. if any record line specifies the value INLINE for the field destination.type that also means destination.market, destination.holder.legalName and destination.identifier.{type,market,number} are required in the header line.

Also see the API reference docs for more details on the fields and valid values.

FieldRequiredFormat
amount.currencyRequired3-letter code
amount.stringValueRequiredMust have same number of decimals as currency. Use period . as decimal point.
dateRequiredyyyy-mm-dd
schemeRequiredSee create credit-transfer
referenceRequired
source.typeRequiredACCOUNT
source.idRequiredThe Atlar identifier of the source account. Find it in the Atlar dashboard.
destination.typeRequiredACCOUNT for internal transfers of own Accounts, EXTERNAL_ACCOUNT for already created ExternalAccount, or INLINE
destination.idRequired when destination.type is EXTERNAL_ACCOUNT or ACCOUNTThe Atlar identifier of the destination account. Find it in the Atlar dashboard.
destination.marketRequired when destination.type is INLINE2-letter code
destination.holder.legalNameRequired when destination.type is INLINE
destination.identifier.typeRequired when destination.type is INLINEOne of: NUMBER, IBAN, SE_BANKGIRO, SE_PLUSGIRO
destination.identifier.marketRequired when destination.type is INLINE2-letter code
destination.identifier.numberRequired when destination.type is INLINENo formatting like spaces or dashes
destination.bicOptional8, or 11 characters
destination.routing.typeOptionalSee create credit-transfer
destination.routing.numberOptionalNo formatting like spaces or dashes
categoryPurposeOptionalISO 20022 Category Purpose Code
chargeBearerOptionalSHARED, DEBTOR or CREDITOR
regulatoryReporting.CREDITOR.codeOptionalThe actual code to report for the creditor. Codes are market-specific and found in Regulatory Reporting .
regulatoryReporting.DEBTOR.codeOptionalThe actual code to report for the debtor. Codes are market-specific and found in Regulatory Reporting.
externalIdOptionalMust be unique across all your payments.

See External IDs.
metadata.<key>Optional. Multiple fields with different <key> values are allowed.

Inlining destination account

As an alternative to referencing pre-existing External Accounts and Counterparties (by IDs) the destination account information can be inlined in the CSV file. This is done by specifying the value INLINE as destination.type and including additional fields destination.market, destination.holder.legalName etc.

Inline data example:

amount.currency,amount.stringValue,date,scheme,reference,source.type,source.id,destination.type,destination.market,destination.holder.legalName,destination.identifier.type,destination.identifier.market,destination.identifier.number,destination.bic
USD,123.45,2024-01-23,CROSS_BORDER,invoice-no.205,ACCOUNT,d89b7f42-62b9-47d2-8969-0743f32ebc0d,INLINE,US,John Smith,NUMBER,US,123456789012,CHASUS33XXX

When a payments batch with INLINE content is processed, corresponding external accounts and counterparties will automatically be created. If the destination fields can be matched to an existing counterparty and external account then the existing counterparty and account will be used and no new will be created. Note that for a record line to be considered matching an existing API resources it must be an exact match in terms of:

  • destination.holder.legalName matching the Counterparty.legalName
  • destination account number and routing information must be an exact match.

Examples

The following example shows a mix of all the functionality described above:

  • Inline destination account information.
  • Referencing existing destination account API resources.
  • Specifying destination routing information (GB sort code, BIC, US ABA routing number).
  • Optional fields like externalId and metadata.<key>.
amount.currency,amount.stringValue,date,scheme,reference,externalId,source.type,source.id,destination.type,destination.id,destination.market,destination.holder.legalName,destination.identifier.type,destination.identifier.market,destination.identifier.number,destination.bic,destination.routing.type,destination.routing.number,metadata.comment,metadata.my-id
SEK,12.34,2024-02-20,SE_GIRO,invoice-no.119,,ACCOUNT,d73067c3-5427-40b5-b63b-76f89acb5a72,INLINE,,SE,anders andersson,SE_BANKGIRO,SE,12345678,,,,,
DKK,51.35,2024-02-20,DK_A2A,invoice-no.120,,ACCOUNT,57f6dcce-a4f9-4fc7-b496-182c4df0a60c,ACCOUNT,eb2ba9c1-ec7d-43e2-8724-9c85af870308,,,,,,,,,,
EUR,2.00,2024-02-20,SCT,invoice-no.121,,ACCOUNT,d89b7f42-62b9-47d2-8969-0743f32ebc0d,EXTERNAL_ACCOUNT,31380a97-f54b-4ae3-8f7e-3541c2914db6,,,,,,,,,,
GBP,531.42,2024-02-20,GB_CT_FPS,invoice-no.122,,ACCOUNT,5755d02f-0937-492b-adf3-c045cc4e0fa9,INLINE,,GB,John Doe,NUMBER,GB,12345678,,GB_DSC,123456,this is the payment for xyz,21743612948719284
USD,123.45,2024-02-20,CROSS_BORDER,invoice-no.123,,ACCOUNT,5755d02f-0937-492b-adf3-c045cc4e0fa9,INLINE,,US,John Smith,NUMBER,US,123456789012,BOFAUS3NXXX,US_ABA,123456789,"use the metadata fields, to set anything you would like",129572198421

See more example scenarios and which fields are required below .

Metadata fields

Creating payments with multiple metadata keys are supported by specifying multiple header fields on the form metadata.<your metadata key>.

Example:

...,metadata.comment,metadata.my-id
...,"My comment #1",my-id-123
...,"My comment #2",my-id-456

CSV format differences to JSON API formats

  • destination.bic is shorthand for adding a routing identifier (destination.routing) of type BIC.
  • destination.identifier and destination.routing can in the CSV format only represent a single account identifier and routing identifier in contrast to the API JSON format where destination.identifiers and destination.routing are array types.
  • Only a single regulatoryReporting can be specified in the CSV format, while the API JSON format accepts an array.

Batch treatment type

When creating a payments batch you can specify batch treatment which can be either INDIVIDUAL_PAYMENTS or BATCH. The difference between the two is how payment approvals are handled. When treatment is INDIVIDUAL_PAYMENTS, approvals and rejections are managed on per payment basis just as if the payment was created as a single payment (i.e. not part a batch). If treatment is BATCH, approvals and rejections are managed on the batch level.

Note that if treatment is BATCH, payments can only be approved on batch level and cannot be approved or rejected on an individual basis. Vice versa also applies for treatment INDIVIDUAL_PAYMENTS, that payments cannot be approved or rejected on batch level but only on an individual basis.

Example scenarios with inlined destination account

The tables below illustrate which optional fields must be populated for certain schemes in different scenarios when inlined destination account information is used. These tables focus only on fields that are marked as optional in the fields table; all other required fields remain mandatory.

Cross border payment to GB

A cross border payment to GB when you have the IBAN of the destination account.

FieldCross border payment to GB
schemeCROSS_BORDER
amount.currencyany
destination.typeINLINE
destination.marketGB
destination.holder.legalNamerequired
destination.identifier.typeIBAN
destination.identifier.marketGB
destination.identifier.numberGBddaaaaccccccnnnnnnnn
destination.bicrequired

UK account to account Faster Payments (FPS)

When making a domestic payment over Faster Payments and you have the destination account number and sort code.

FieldUK account to account Faster Payments
schemeGB_CT_FPS
amount.currencyGBP
destination.typeINLINE
destination.marketGB
destination.holder.legalNamerequired
destination.identifier.typeNUMBER
destination.identifier.marketGB
destination.identifier.number8 digit account number
destination.routing.typeGB_DSC
destination.routing.number6 digit sort code: cccccc

Cross border payment to the US

When making a cross border payment to the US, an account number and an ABA routing number are required.

FieldCross border payment to the US
schemeCROSS_BORDER
amount.currencyany
destination.typeINLINE
destination.marketUS
destination.holder.legalNamerequired
destination.identifier.typeNUMBER
destination.identifier.marketUS
destination.identifier.number6-17 digit account number
destination.bicrequired
destination.routing.typeUS_ABA
destination.routing.numberRouting number:xxxxxxxxx

Cross border payment to India

When making a cross border payment to India, note that regulatory reporting is required.

FieldCross border payment to India
schemeCROSS_BORDER
amount.currencyany
destination.typeINLINE
destination.marketIN
destination.holder.legalNamerequired
destination.identifier.typeNUMBER
destination.identifier.marketIN
destination.identifier.number10-20 digit account number.
destination.bicrequired
destination.routing.typeIN_FSC
destination.routing.numberIndian financial system code:xxxxxxxxxxx
regulatoryReporting.CREDITOR.codeWhen sending a payment to India, it is required to include a regulatory reporting code on the creditor. See Regulatory Reporting for the list of codes.

SEPA Credit transfer

SEPA is a single payment area that uses the euro as its currency. Only payments sent and received in euro can be made as SEPA payments. Both the sending and receiving bank accounts must be domiciled within the SEPA zone.

FieldSEPA credit transfer
schemeSCT
amount.currencyEUR
destination.typeINLINE
destination.marketDE
destination.holder.legalNamerequired
destination.identifier.typeIBAN
destination.identifier.marketDE
destination.identifier.numberDEddccccccccnnnnnnnnnn