---
title: "Create credit transfer batch"
method: POST
path: "/payments/v2beta/credit-transfer-batches"
tags: ["Credit Transfers"]
---

# Create credit transfer batch

`POST /payments/v2beta/credit-transfer-batches`

## Request

- Base URL: `https://api.atlar.com`
- URL: `https://api.atlar.com/payments/v2beta/credit-transfer-batches`
- Auth: HTTP basic
- TypeScript: <https://skmtc.dev/atlar/apis/atlar-api-v2/docs/payments/v2beta/credit-transfer-batches/post.ts> (a function with typed inputs; its response is checked against the schema)

Create a batch of credit transfer payments.

See https://docs.atlar.com/docs/batch-payments for more information.

## Request body

- CreateCreditTransferBatchRequest
  - `treatment` 'INDIVIDUAL_PAYMENTS' | 'BATCH', required: Deprecated: You can approve or reject on batch and individual level regardless of the treatment type.
  - `payments` CreateCreditTransferRequest[], required
    - `amount` union, required
      - AmountIntegerValueInput
        - `currency` string, required: Three-letter ISO 4217 currency code.
        - `value` integer, required: The amount value as an integer (int64) represented in currency minor units (e.g. 15.02 EUR is represented as the value 1502).
      - AmountStringValueInput
        - `currency` string, required: Three-letter ISO 4217 currency code.
        - `stringValue` string, required: A string representation of the amount value, which will be a decimal number if the currency has decimals. The number is not formatted for display purposes (e.g. with thousand separator) and always contains the dot `.` character as decimal separator.
    - `scheme` 'SCT' | 'SCT_INST' | 'CROSS_BORDER' | 'GB_CT_BACS' | 'GB_CT_CHAPS' | 'GB_CT_FPS' | 'SE_A2A' | 'SE_GIRO' | 'DK_A2A' | 'DK_CT_SAMEDAY' | 'DK_CT_INST' | 'DK_CT_FIK71' | 'DK_CT_FIK73' | 'DK_CT_FIK75' | 'DK_CT_NEMKONTO' | 'DK_CT_T2' | 'CH_CT' | 'NO_CT' | 'NO_CT_KID' | 'US_CT_ACH' | 'US_CT_WIRE' | 'IS_CT' | 'AU_CT' | 'AU_CT_BECS' | 'AU_CT_BPAY' | 'HK_CT' | 'HK_CT_CHATS' | 'HK_CT_FPS' | 'IL_CT' | 'SG_CT' | 'SG_CT_FAST' | 'SG_CT_GIRO' | 'SG_CT_MEPS' | 'BG_CT' | 'CL_CT' | 'CO_CT' | 'CR_CT' | 'CZ_CT' | 'MX_CT' | 'MX_CT_SPID' | 'MX_CT_SPEI' | 'MX_CT_TEF' | 'MY_CT_IBG' | 'MY_CT_JOMPAY' | 'MY_CT_RENTAS' | 'KR_CT' | 'TW_CT_ACH' | 'TW_CT_FISC' | 'TH_CT' | 'TH_CT_BAHTNET' | 'TH_CT_SMART' | 'CA_CT_LYNX' | 'CA_CT_ACSS' | 'PE_CT' | 'PL_CT' | 'RO_CT' | 'TR_CT' | 'AE_CT' | 'AE_CT_IPI' | 'DE_CT' | 'FR_CT' | 'IN_IMPS' | 'IN_NEFT' | 'IN_RTGS' | 'BR_CT_PIX' | 'BR_CT_TED' | 'BOOK_TRANSFER' | 'CN_CT_BEPS' | 'CN_CT_HVPS' | 'VN_CT' | 'PH_CT_PESONET' | 'PH_CT_INSTAPAY' | 'PH_CT_PHILPASS' | 'PH_CT_PDDTS' | 'RS_CT' | 'JP_CT' | 'MU_CT' | 'KE_CT_RTGS' | 'GE_CT_RTGS' | 'ZA_CT_EFT' | 'BD_CT_BEFTN' | 'BD_CT_RTGS' | 'MA_CT' | 'SA_CT_SARIE' | 'HU_CT_VIBER' | 'HU_CT_GIRO', required: Payment scheme. Choose among: <ul> <li><code>SCT</code> (<a href="https://www.europeanpaymentscouncil.eu/what-we-do/sepa-credit-transfer">SEPA Credit Transfer</a>)</li> <li><code>SCT_INST</code> (<a href="https://www.europeanpaymentscouncil.eu/what-we-do/sepa-instant-credit-transfer">SEPA Instant Credit Transfer</a>)</li> <li><code>CROSS_BORDER</code> (<a href="https://www.swift.com">Swift</a>)</li> <li><code>GB_CT_BACS</code> (UK account-to-account <a href="https://www.bacs.co.uk">BACS</a>) <li><code>GB_CT_CHAPS</code> (UK account-to-account <a href="https://www.bankofengland.co.uk/payment-and-settlement/chaps">CHAPS</a>)</li> <li><code>GB_CT_FPS</code> (UK account-to-account <a href="https://www.wearepay.uk/what-we-do/payment-systems/faster-payment-system/">Faster Payments</a>)</li> <li><code>SE_A2A</code> (Swedish account-to-account)</li> <li><code>SE_GIRO</code> (Swedish <a href="https://www.bankgirot.se">Bankgiro</a> and/or <a href="https://en.wikipedia.org/wiki/PlusGirot">PlusGiro</a>)</li> <li><code>DK_A2A</code> (Danish account-to-account)</li> <li><code>DK_CT_SAMEDAY</code> (Danish same-day credit transfer)</li> <li><code>DK_CT_INST</code> (Danish instant credit transfer)</li> <li><code>DK_CT_FIK71</code> (Danish FIK71 credit transfer)</li> <li><code>DK_CT_FIK73</code> (Danish FIK73 credit transfer)</li> <li><code>DK_CT_FIK75</code> (Danish FIK75 credit transfer)</li> <li><code>DK_CT_NEMKONTO</code> (Danish NemKonto credit transfer)</li> <li><code>DK_CT_T2</code> (Danish T2 credit transfer)</li> <li><code>CH_CT</code> (Swiss account-to-account)</li> <li><code>NO_CT</code> (Norwegian account-to-account)</li> <li><code>NO_CT_KID</code> (Norwegian KID payment)</li> <li><code>US_CT_ACH</code> (US ACH)</li> <li><code>US_CT_WIRE</code> (US Wire)</li> <li><code>IS_CT</code> (Icelandic account-to-account)</li> <li><code>AU_CT</code> (Australian account-to-account)</li> <li><code>AU_CT_BECS</code> (Australian BECS)</li> <li><code>AU_CT_BPAY</code> (Australian <a href="https://www.bpay.com.au/">BPAY</a>)</li> <li><code>HK_CT</code> (Hong Kong account-to-account)</li> <li><code>HK_CT_CHATS</code> (Hong Kong CHATS)</li> <li><code>HK_CT_FPS</code> (Hong Kong Faster Payment System)</li> <li><code>IL_CT</code> (Israel account-to-account)</li> <li><code>SG_CT</code> (Singapore account-to-account)</li> <li><code>SG_CT_FAST</code> (Singapore FAST)</li> <li><code>SG_CT_GIRO</code> (Singapore Giro)</li> <li><code>SG_CT_MEPS</code> (Singapore MEPS+)</li> <li><code>BG_CT</code> (Bulgarian account-to-account)</li> <li><code>CL_CT</code> (Chilean account-to-account)</li> <li><code>CO_CT</code> (Colombian account-to-account)</li> <li><code>CR_CT</code> (Costa Rican account-to-account)</li> <li><code>CZ_CT</code> (Czech account-to-account)</li> <li><code>MX_CT</code> (Mexican account-to-account)</li> <li><code>MX_CT_SPID</code> (Mexican account-to-account SPID USD)</li> <li><code>MX_CT_SPEI</code> (Mexican SPEI)</li> <li><code>MX_CT_TEF</code> (Mexican TEF)</li> <li><code>MY_CT_IBG</code> (Malaysian Interbank GIRO)</li> <li><code>MY_CT_JOMPAY</code> (Malaysian JomPAY)</li> <li><code>MY_CT_RENTAS</code> (Malaysian RENTAS)</li> <li><code>KR_CT</code> (South Korean account-to-account)</li> <li><code>TW_CT_ACH</code> (Taiwan ACH Credit Transfer)</li> <li><code>TW_CT_FISC</code> (Taiwan FISC Credit Transfer)</li> <li><code>TH_CT</code> (Thai account-to-account)</li> <li><code>TH_CT_BAHTNET</code> (Thailand BAHTNET)</li> <li><code>TH_CT_SMART</code> (Thailand SMART Credit)</li> <li><code>CA_CT_LYNX</code> (Canadian Lynx credit transfer)</li> <li><code>CA_CT_ACSS</code> (Canadian ACSS credit transfer)</li> <li><code>PE_CT</code> (Peruvian account-to-account)</li> <li><code>PL_CT</code> (Polish account-to-account)</li> <li><code>RO_CT</code> (Romanian account-to-account)</li> <li><code>TR_CT</code> (Turkish account-to-account)</li> <li><code>AE_CT</code> (UAE account-to-account)</li> <li><code>AE_CT_IPI</code> (UAE Instant Payment Instruction)</li> <li><code>DE_CT</code> (Legacy German account-to-account)</li> <li><code>FR_CT</code> (Legacy French account-to-account)</li> <li><code>IN_IMPS</code> (India Immediate Payment Service)</li> <li><code>IN_NEFT</code> (India National Electronic Funds Transfer)</li> <li><code>IN_RTGS</code> (India Real-Time Gross Settlement)</li> <li><code>BR_CT_PIX</code> (Brazilian <a href="https://www.bcb.gov.br/en/financialstability/pix_en">PIX</a>)</li> <li><code>BR_CT_TED</code> (Brazilian <a href="https://www.bcb.gov.br/meubc/faqs/p/o-que-e-transferencia-eletronica-disponivel-ted">TED</a>))</li> <li><code>BOOK_TRANSFER</code> (Book Transfer)</li> <li><code>CN_CT_BEPS</code> (Chinese Bulk Electronic Payment System)</li> <li><code>CN_CT_HVPS</code> (Chinese High Value Payment System)</li> <li><code>VN_CT</code> (Vietnamese account-to-account)</li> <li><code>PH_CT_PESONET</code> (Philippines PESONet)</li> <li><code>PH_CT_INSTAPAY</code> (Philippines InstaPay)</li> <li><code>PH_CT_PHILPASS</code> (Philippines PhilPaSS)</li> <li><code>PH_CT_PDDTS</code> (Philippines Domestic Dollar Transfer System)</li> <li><code>RS_CT</code> (Serbian account-to-account)</li> <li><code>JP_CT</code> (Japanese account-to-account)</li> <li><code>MU_CT</code> (Mauritian account-to-account)</li> <li><code>KE_CT_RTGS</code> (Kenya Real-Time Gross Settlement)</li> <li><code>GE_CT_RTGS</code> (Georgia Real-Time Gross Settlement)</li> <li><code>ZA_CT_EFT</code> (South African domestic EFT)</li> <li><code>BD_CT_BEFTN</code> (Bangladesh Electronic Funds Transfer Network)</li> <li><code>BD_CT_RTGS</code> (Bangladesh Real-Time Gross Settlement)</li> <li><code>MA_CT</code> (Moroccan account-to-account)</li> <li><code>SA_CT_SARIE</code> (Saudi Arabian SARIE)</li> <li><code>HU_CT_VIBER</code> (Hungarian VIBER)</li> <li><code>HU_CT_GIRO</code> (Hungarian GIRO)</li> </ul>
    - `schemeDetails` SchemeDetailsInput
      - `instrument` InstrumentInput
        - `type` 'US_ACH' | 'CITI_WORLDLINK', required: The type of the payment instrument.
      - `intraCompany` boolean: Whether the payment is between companies within the same group.
      - `urgency` 'HIGH': The urgency of the payment.
    - `date` string, date, required: `full-date` notation as defined by [RFC 3339, section 5.6](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), for example, `2017-07-21`.
    - `source` InternalAccountRef, required: A reference to an (internal) Account.
      - `type` 'ACCOUNT' | 'EXTERNAL_ACCOUNT' | 'INLINE', required: Account type specifier. `ACCOUNT` for internal _Account_ resources. `EXTERNAL_ACCOUNT` for _External Account_ resources.
      - `id` string, required: ID of an (internal) Account.
    - `destination` union, required: A reference identifying the destination account. Can be either an internal or an external account.
      - InternalAccountRef: A reference to an (internal) Account.
        - `type` 'ACCOUNT' | 'EXTERNAL_ACCOUNT' | 'INLINE', required: Account type specifier. `ACCOUNT` for internal _Account_ resources. `EXTERNAL_ACCOUNT` for _External Account_ resources.
        - `id` string, required: ID of an (internal) Account.
      - ExternalAccountRef: A reference to an External Account.
        - `type` 'ACCOUNT' | 'EXTERNAL_ACCOUNT' | 'INLINE', required: Account type specifier. `ACCOUNT` for internal _Account_ resources. `EXTERNAL_ACCOUNT` for _External Account_ resources.
        - `id` string, required: ID or External ID of an External Account. Prefix External IDs with `external:`.
      - InlineExternalAccount: An inline-defined (from the point of the payment) Account. This is used in the context of payment initiation.
        - `type` 'ACCOUNT' | 'EXTERNAL_ACCOUNT' | 'INLINE', required: Account type specifier. `ACCOUNT` for internal _Account_ resources. `EXTERNAL_ACCOUNT` for _External Account_ resources.
        - `market` string, required: Two-letter ISO 3166-1 alpha2 country code.
        - `identifiers` AccountIdentifier[], required
          - `type` 'IBAN' | 'NUMBER' | 'ADYEN' | 'AU_BPAY_BILLER_CODE' | 'DK_FIK' | 'INVESTMENT_NUMBER' | 'MY_JOMPAY_BILLER_CODE' | 'NATIONAL_ID_NUMBER' | 'PAYPAL' | 'PROPRIETARY' | 'SE_BANKGIRO' | 'SE_PLUSGIRO' | 'SOLDO' | 'WALLET_ADYEN_BALANCE_PLATFORM' | 'WALLET_AIRWALLEX' | 'WALLET_AIRWALLEX_NUMBER' | 'WALLET_CURRENCYCLOUD' | 'WALLET_FLASH_PAYMENTS' | 'WALLET_FREEMARKET' | 'WALLET_HYPERWALLET' | 'WALLET_INPAY' | 'WALLET_LEAD' | 'WALLET_MERCURY' | 'WALLET_MONEYCORP' | 'WALLET_PAYHAWK' | 'WALLET_REVOLUT' | 'WALLET_SKRILL' | 'WALLET_STRIPE' | 'WALLET_SWISSQUOTE' | 'WALLET_UNIT', required: Account Identifier type. Choose among: <ul> <li><code>IBAN</code> — IBAN</li> <li><code>NUMBER</code> — Account number</li> <li><code>ADYEN</code> — Adyen identifier</li> <li><code>AU_BPAY_BILLER_CODE</code> — Australian BPAY Biller Code</li> <li><code>DK_FIK</code> — FIK creditor number</li> <li><code>INVESTMENT_NUMBER</code> — Investment number</li> <li><code>MY_JOMPAY_BILLER_CODE</code> — Malaysian JomPAY Biller Code</li> <li><code>NATIONAL_ID_NUMBER</code> — National Identification Number</li> <li><code>PAYPAL</code> — PayPal wallet identifier</li> <li><code>PROPRIETARY</code> — Proprietary identifier</li> <li><code>SE_BANKGIRO</code> — <a href="https://www.bankgirot.se/en/">Bankgiro number</a></li> <li><code>SE_PLUSGIRO</code> — <a href="https://www.nordea.se/foretag/produkter/betala/plusgirot.html">Plusgiro number</a></li> <li><code>SOLDO</code> — Soldo entity identifier</li> <li><code>WALLET_ADYEN_BALANCE_PLATFORM</code> — Adyen balance platform wallet identifier</li> <li><code>WALLET_AIRWALLEX</code> — Airwallex wallet identifier</li> <li><code>WALLET_AIRWALLEX_NUMBER</code> — Airwallex account number</li> <li><code>WALLET_CURRENCYCLOUD</code> — Currencycloud wallet identifier</li> <li><code>WALLET_FLASH_PAYMENTS</code> — Flash Payments wallet identifier</li> <li><code>WALLET_FREEMARKET</code> — Freemarket wallet identifier</li> <li><code>WALLET_HYPERWALLET</code> — Hyperwallet wallet identifier</li> <li><code>WALLET_INPAY</code> — Inpay account identifier</li> <li><code>WALLET_LEAD</code> — Lead wallet identifier</li> <li><code>WALLET_MERCURY</code> — Mercury wallet identifier</li> <li><code>WALLET_MONEYCORP</code> — Moneycorp wallet identifier</li> <li><code>WALLET_PAYHAWK</code> — Payhawk wallet identifier</li> <li><code>WALLET_REVOLUT</code> — Revolut wallet identifier</li> <li><code>WALLET_SKRILL</code> — Skrill wallet identifier</li> <li><code>WALLET_STRIPE</code> — Stripe wallet identifier</li> <li><code>WALLET_SWISSQUOTE</code> — Swissquote wallet identifier</li> <li><code>WALLET_UNIT</code> — Unit wallet identifier</li> </ul> For further information please refer to <a href="https://docs.atlar.com/v2.0/docs/payment-details#account-identifiers">Account Identifiers</a>
          - `market` string, required: Two-letter ISO 3166-1 alpha2 country code.
          - `number` string, required: The unformatted identifier itself. For type `NUMBER` the structure of the account number is country-specific.
          - `invalid` boolean: Will be `true` if the account identifier is invalid according to Atlar account identifier validation rules.
        - `routing` RoutingIdentifier[]
          - `type` 'BIC' | 'AT_BLZ' | 'AU_BSB' | 'BD_BRN' | 'BR_BRANCH' | 'BR_COMPE' | 'BR_ISP' | 'CA_CPA' | 'CH_BCC' | 'CH_SIC' | 'CL_SBIF' | 'CN_APS' | 'CZ_NBC' | 'DE_BLZ' | 'ES_NCC' | 'GB_DSC' | 'GR_BIC' | 'HK_NCC' | 'IE_NCC' | 'IL_NCC' | 'IN_FSC' | 'IT_NCC' | 'JP_ZGN' | 'KR_BOK' | 'KR_KFTC' | 'MX_ABM' | 'MY_NCC' | 'NZ_NCC' | 'PH_BRSTN' | 'PL_KNR' | 'PT_NCC' | 'RU_CBC' | 'SE_SBA' | 'SG_IBG' | 'TH_CBC' | 'TW_NCC' | 'US_ABA' | 'US_PID' | 'VN_CITAD' | 'ZA_NCC', required: A routing identifier of type `BIC` must be provided to support cross-border/SWIFT payments.
          - `number` string, required: The form of the routing number depends on `type`. E.g. for `BIC` the value should be an 8 or 11 character BIC/SWIFT code. For `GB_DSC` (UK domestic routing) the value should be a six digit sort code.
          - `invalid` boolean: Will be `true` if the routing identifier is invalid according to Atlar validation rules.
          - `constraints` RoutingConstraints: Constraints on a `RoutingIdentifier`.
            - `accountNumberType` 'IBAN' | 'NUMBER' | 'ADYEN' | 'AU_BPAY_BILLER_CODE' | 'DK_FIK' | 'INVESTMENT_NUMBER' | 'MY_JOMPAY_BILLER_CODE' | 'NATIONAL_ID_NUMBER' | 'PAYPAL' | 'PROPRIETARY' | 'SE_BANKGIRO' | 'SE_PLUSGIRO' | 'SOLDO' | 'WALLET_ADYEN_BALANCE_PLATFORM' | 'WALLET_AIRWALLEX' | 'WALLET_AIRWALLEX_NUMBER' | 'WALLET_CURRENCYCLOUD' | 'WALLET_FLASH_PAYMENTS' | 'WALLET_FREEMARKET' | 'WALLET_HYPERWALLET' | 'WALLET_INPAY' | 'WALLET_LEAD' | 'WALLET_MERCURY' | 'WALLET_MONEYCORP' | 'WALLET_PAYHAWK' | 'WALLET_REVOLUT' | 'WALLET_SKRILL' | 'WALLET_STRIPE' | 'WALLET_SWISSQUOTE' | 'WALLET_UNIT': Account Identifier type. Choose among: <ul> <li><code>IBAN</code> — IBAN</li> <li><code>NUMBER</code> — Account number</li> <li><code>ADYEN</code> — Adyen identifier</li> <li><code>AU_BPAY_BILLER_CODE</code> — Australian BPAY Biller Code</li> <li><code>DK_FIK</code> — FIK creditor number</li> <li><code>INVESTMENT_NUMBER</code> — Investment number</li> <li><code>MY_JOMPAY_BILLER_CODE</code> — Malaysian JomPAY Biller Code</li> <li><code>NATIONAL_ID_NUMBER</code> — National Identification Number</li> <li><code>PAYPAL</code> — PayPal wallet identifier</li> <li><code>PROPRIETARY</code> — Proprietary identifier</li> <li><code>SE_BANKGIRO</code> — <a href="https://www.bankgirot.se/en/">Bankgiro number</a></li> <li><code>SE_PLUSGIRO</code> — <a href="https://www.nordea.se/foretag/produkter/betala/plusgirot.html">Plusgiro number</a></li> <li><code>SOLDO</code> — Soldo entity identifier</li> <li><code>WALLET_ADYEN_BALANCE_PLATFORM</code> — Adyen balance platform wallet identifier</li> <li><code>WALLET_AIRWALLEX</code> — Airwallex wallet identifier</li> <li><code>WALLET_AIRWALLEX_NUMBER</code> — Airwallex account number</li> <li><code>WALLET_CURRENCYCLOUD</code> — Currencycloud wallet identifier</li> <li><code>WALLET_FLASH_PAYMENTS</code> — Flash Payments wallet identifier</li> <li><code>WALLET_FREEMARKET</code> — Freemarket wallet identifier</li> <li><code>WALLET_HYPERWALLET</code> — Hyperwallet wallet identifier</li> <li><code>WALLET_INPAY</code> — Inpay account identifier</li> <li><code>WALLET_LEAD</code> — Lead wallet identifier</li> <li><code>WALLET_MERCURY</code> — Mercury wallet identifier</li> <li><code>WALLET_MONEYCORP</code> — Moneycorp wallet identifier</li> <li><code>WALLET_PAYHAWK</code> — Payhawk wallet identifier</li> <li><code>WALLET_REVOLUT</code> — Revolut wallet identifier</li> <li><code>WALLET_SKRILL</code> — Skrill wallet identifier</li> <li><code>WALLET_STRIPE</code> — Stripe wallet identifier</li> <li><code>WALLET_SWISSQUOTE</code> — Swissquote wallet identifier</li> <li><code>WALLET_UNIT</code> — Unit wallet identifier</li> </ul> For further information please refer to <a href="https://docs.atlar.com/v2.0/docs/payment-details#account-identifiers">Account Identifiers</a>
            - `scheme` string
        - `externalId` string: External ID is optional to use, but if used, the Atlar platform will persist it, index it, as well as require it to be unique across all resources. It is possible to retrieve a resource using the external ID using the prefix `external:`.
        - `holder` InlineAccountHolder, required: Information about the legal holder of an account.
          - `externalId` string: External ID is optional to use, but if used, the Atlar platform will persist it, index it, as well as require it to be unique across all resources. It is possible to retrieve a resource using the external ID using the prefix `external:`.
          - `legalName` string, required: The legal name of the account holder. Some banks, and for some payment schemes, the correctness of the legal name will be validated and payments may be rejected if legal names do not match.
          - `partyType` 'INDIVIDUAL' | 'COMPANY': The legal type of a party
          - `address` Address: Postal address.
            - `country` string: Two-letter ISO 3166-1 alpha2 country code.
            - `countrySubdivision` string: Country subdivision code (second part of the ISO 3166-2 code). E.g. state code `CA` for the state of California in the USA, `ON` for the province of Ontario in Canada, `NSW` for the state of New South Wales in Australia. ISO 3166-2 codes can be found on the ISO website, for example, for the USA: https://www.iso.org/obp/ui/#iso:code:3166:US. In the USA the state code is required for domestic payments, in Canada the province code is required for domestic payments.
            - `city` string
            - `postalCode` string
            - `streetName` string
            - `streetNumber` string
          - `nationalIdentifier` NationalIdentifier
            - `type` 'CIVIC' | 'COMPANY', required: Type of the national identifier.
            - `market` string, required: Two-letter ISO 3166-1 alpha2 country code.
            - `number` string, required: The identifier itself.
          - `email` string: Email of the account holder.
          - `phone` string: Phone number of the account holder.
    - `reference` string, required: This reference will be sent to the destination bank and recipient. (This type of reference is sometimes also referred to as remittance information.)
    - `referenceType` 'STRUCTURED' | 'UNSTRUCTURED' | 'CREDITOR_REFERENCE': The kind of reference carried by a payment's remittance information. - `UNSTRUCTURED`: free-text remittance information, carried on pain.001 as `<RmtInf><Ustrd>`. - `CREDITOR_REFERENCE`: a structured creditor reference such as ISO 11649 (RF), Finnish Viitenumero, Norwegian KID, or Swedish Bankgiro/Plusgiro OCR. Carried on pain.001 as `<RmtInf><Strd><CdtrRefInf>` with `<Cd>SCOR</Cd>`. - `STRUCTURED`: **deprecated** — use `CREDITOR_REFERENCE` instead. Retained so existing persisted records still parse.
    - `categoryPurpose` string: ISO 20022 Category Purpose Code (ExternalCategoryPurpose1Code).
    - `chargeBearer` 'SHARED' | 'DEBTOR' | 'CREDITOR' | 'SERVICE_LEVEL': Charge bearer specifies which party should bear the charges of the transaction.
    - `regulatoryReporting` RegulatoryReportingDetails[]: Regulatory reporting can be used to provide additional information when needed due to regulatory and statutory requirements.
      - `market` string, required: Two-letter ISO 3166-1 alpha2 country code.
      - `indicator` 'CREDITOR' | 'DEBTOR' | 'BOTH', required: Determines which side of the payment the regulatory reporting code applies to. When making a payment _to_ Thailand, one should supply a `CREDITOR` code (equivalent to iso20022 `CRED`), while making a payment _out of_ Sweden or Norway may require a `DEBTOR` code (equivalent to iso20022 `DEBT`).
      - `code` string, required: The actual code to report. Codes are market-specific and found on https://docs.atlar.com
    - `taxDetails` TaxDetailsInput: Tax payment details for split payment schemes like Polish MPP (Mechanizm Podzielonej Płatności).
      - `type` 'PL_MPP', required: Type of tax payment scheme.
      - `amount` union, required
        - AmountIntegerValueInput
          - `currency` string, required: Three-letter ISO 4217 currency code.
          - `value` integer, required: The amount value as an integer (int64) represented in currency minor units (e.g. 15.02 EUR is represented as the value 1502).
        - AmountStringValueInput
          - `currency` string, required: Three-letter ISO 4217 currency code.
          - `stringValue` string, required: A string representation of the amount value, which will be a decimal number if the currency has decimals. The number is not formatted for display purposes (e.g. with thousand separator) and always contains the dot `.` character as decimal separator.
      - `creditorId` string: Tax identification number (NIP) of the creditor/vendor. In Poland, for example, it must be exactly 10 digits.
      - `invoiceNumber` string: Invoice or document reference number.
    - `fxInstruction` FXInstruction: Foreign exchange instructions for a payment, including a reference to a previously negotiated FX rate. Support depends on the bank and payment scheme.
      - `reference` string: Reference identifying the previously negotiated FX rate.
      - `rate` FXRate: Foreign exchange rate negotiated for a payment.
        - `value` string, required: Decimal exchange rate represented as a string to preserve precision.
        - `unitCurrency` string: Three-letter ISO 4217 currency code.
      - `additionalInfo` string: Additional information about the foreign exchange instruction.
    - `externalId` string: External ID is optional to use, but if used, the Atlar platform will persist it, index it, as well as require it to be unique across all resources. It is possible to retrieve a resource using the external ID using the prefix `external:`.
    - `metadata` Metadata, nullable: Metadata is a `string-string` key-value container that can be used to store information known at the time of resource creation. This can be retrieved later on, for instance when a payment or expected transaction is reconciled with the booked transaction on the bank statement. Metadata can have at most 20 entries. Keys may have a maximum length of 64 chars and values a maximum length of 512 chars. By default, this field is optional. It is possible to make it required in the Atlar Dashboard by visiting the [Metadata keys page](https://app.atlar.com/metadata-keys). Requirement rules can be specified per API resource. Both the Dashboard and the API will then enforce these rules and give validation errors when the required fields are not set.
    - `paymentScheduleId` string: Unique resource identifier.
  - `externalId` string: External ID is optional to use, but if used, the Atlar platform will persist it, index it, as well as require it to be unique across all resources. It is possible to retrieve a resource using the external ID using the prefix `external:`.
  - `skipValidationErrors` boolean: Skip/ignore input records that contain validation errors.
  - `metadata` Metadata, nullable: Metadata is a `string-string` key-value container that can be used to store information known at the time of resource creation. This can be retrieved later on, for instance when a payment or expected transaction is reconciled with the booked transaction on the bank statement. Metadata can have at most 20 entries. Keys may have a maximum length of 64 chars and values a maximum length of 512 chars. By default, this field is optional. It is possible to make it required in the Atlar Dashboard by visiting the [Metadata keys page](https://app.atlar.com/metadata-keys). Requirement rules can be specified per API resource. Both the Dashboard and the API will then enforce these rules and give validation errors when the required fields are not set.

## Response `201`

The created credit transfer batch.

- PaymentBatch
  - `id` string, required: Unique resource identifier.
  - `organizationId` string, required: Unique resource identifier for an Organization.
  - `treatment` 'INDIVIDUAL_PAYMENTS' | 'BATCH', required: Deprecated: You can approve or reject on batch and individual level regardless of the treatment type.
  - `input` BatchInputMetadata, required: Metadata describing the original input that was used to create a payments batch.
    - `recordCount` integer, required: Deprecated. Has moved into `content`. Total count of input records (payments) in the input batch.
    - `sums` Amount[], required: The total amount sum per each currency of resources in this batch. Note that batch amount sums reported on the batch input metadata refer to the total amount sums of the input records (resources) while the batch amount sums reported on the batch result refer to the total amount sums of the successfully processed records (resources). This means that there may be a difference in the total sum for the input vs the result, due to skipped records (resources).
      - `currency` string, required: Three-letter ISO 4217 currency code.
      - `stringValue` string, required: A string representation of the amount value. This will be a decimal number if the currency has decimals. The number is not formatted for display purposes (e.g. with locale specific thousand separator) and always contains the dot `.` character as decimal separator.
      - `value` integer, required: The amount value as an integer (int64) represented in currency minor units (e.g. 15.02 EUR is represented as the value 1502).
    - `content` BatchInputContent, required: Metadata describing the input contents that was used to create this batch.
      - `contentType` string, required
      - `recordCount` integer, required: Total count of input records (resources) in the input batch.
      - `size` integer, required: The size of the input content in bytes. If the batch was created by uploading a file using `multipart/form-data` the `contentSize` will be the file size. If the batch was created with JSON input this will be the raw JSON size.
      - `checksum` string, required: A checksum of the batch input contents. The checksum digest value will be prefixed by an identifier of the hash algorithm used, e.g. `sha256`. A colon `:` is used as separator between the algorithm identifier and the digest value.
      - `filename` string: The name of the file that was used as input to create the batch. Filename will only available if the batch input was provided using `multipart/form-data`.
  - `inputContent` BatchInputContent, required: Metadata describing the input contents that was used to create this batch.
    - `contentType` string, required
    - `recordCount` integer, required: Total count of input records (resources) in the input batch.
    - `size` integer, required: The size of the input content in bytes. If the batch was created by uploading a file using `multipart/form-data` the `contentSize` will be the file size. If the batch was created with JSON input this will be the raw JSON size.
    - `checksum` string, required: A checksum of the batch input contents. The checksum digest value will be prefixed by an identifier of the hash algorithm used, e.g. `sha256`. A colon `:` is used as separator between the algorithm identifier and the digest value.
    - `filename` string: The name of the file that was used as input to create the batch. Filename will only available if the batch input was provided using `multipart/form-data`.
  - `inputDetails` PaymentBatchDetails, required: Details summarizing the contents of the batch — primarily amount totals per currency.
    - `sums` Amount[], required: The total amount sum per each currency of resources in this batch. Note that batch amount sums reported on the batch input metadata refer to the total amount sums of the input records (resources) while the batch amount sums reported on the batch result refer to the total amount sums of the successfully processed records (resources). This means that there may be a difference in the total sum for the input vs the result, due to skipped records (resources).
      - `currency` string, required: Three-letter ISO 4217 currency code.
      - `stringValue` string, required: A string representation of the amount value. This will be a decimal number if the currency has decimals. The number is not formatted for display purposes (e.g. with locale specific thousand separator) and always contains the dot `.` character as decimal separator.
      - `value` integer, required: The amount value as an integer (int64) represented in currency minor units (e.g. 15.02 EUR is represented as the value 1502).
  - `results` BatchResultsSummary: Aggregate summary of payment batch processing results.
    - `total` integer, required: Deprecated. Moved to `processed`. Number of input records that were attempted to be processed.
    - `succeeded` integer, required: Deprecated. Moved to `processed`. Number of input records that resulted in a successfully created payment.
    - `failed` integer, required: Deprecated. Moved to `processed`. Number of failed records.
    - `skipped` integer, required: Deprecated. Moved to `processed`. Number of input records that were skipped.
    - `processed` BatchResultSummary, required: Aggregate summary of batch processing results.
      - `total` integer, required: Number of input records that were attempted to be processed.
      - `succeeded` integer, required: Number of input records that resulted in a successfully created resource.
      - `failed` integer, required: Number of failed records.
      - `skipped` integer, required: Number of input records that were skipped.
    - `sums` Amount[], required: The total amount sum per each currency of resources in this batch. Note that batch amount sums reported on the batch input metadata refer to the total amount sums of the input records (resources) while the batch amount sums reported on the batch result refer to the total amount sums of the successfully processed records (resources). This means that there may be a difference in the total sum for the input vs the result, due to skipped records (resources).
      - `currency` string, required: Three-letter ISO 4217 currency code.
      - `stringValue` string, required: A string representation of the amount value. This will be a decimal number if the currency has decimals. The number is not formatted for display purposes (e.g. with locale specific thousand separator) and always contains the dot `.` character as decimal separator.
      - `value` integer, required: The amount value as an integer (int64) represented in currency minor units (e.g. 15.02 EUR is represented as the value 1502).
  - `resultSummary` BatchResultSummary: Aggregate summary of batch processing results.
    - `total` integer, required: Number of input records that were attempted to be processed.
    - `succeeded` integer, required: Number of input records that resulted in a successfully created resource.
    - `failed` integer, required: Number of failed records.
    - `skipped` integer, required: Number of input records that were skipped.
  - `resultDetails` PaymentBatchDetails: Details summarizing the contents of the batch — primarily amount totals per currency.
    - `sums` Amount[], required: The total amount sum per each currency of resources in this batch. Note that batch amount sums reported on the batch input metadata refer to the total amount sums of the input records (resources) while the batch amount sums reported on the batch result refer to the total amount sums of the successfully processed records (resources). This means that there may be a difference in the total sum for the input vs the result, due to skipped records (resources).
      - `currency` string, required: Three-letter ISO 4217 currency code.
      - `stringValue` string, required: A string representation of the amount value. This will be a decimal number if the currency has decimals. The number is not formatted for display purposes (e.g. with locale specific thousand separator) and always contains the dot `.` character as decimal separator.
      - `value` integer, required: The amount value as an integer (int64) represented in currency minor units (e.g. 15.02 EUR is represented as the value 1502).
  - `status` 'CREATED' | 'PROCESSING_STARTED' | 'COMPLETED', required: The status of this batch. The status only refers to the processing of the input, not the processing or success of the resources themselves. `COMPLETED` is the only end-state. Failure is indicated by a non-empty list of `errors`.
  - `errors` ErrorDetails[]: A list of error details if the batch failed. Only populated once the batch has reached status `COMPLETED`. Only the first 255 errors (if any) will be present in this list. If there are more errors, the complete list can be retrieved using the results endpoint for the batch.
    - `code` string: An error code for this error. Not always present.
    - `error` string: A description of this specific error.
    - `field` string: The field which has an error. This only set if the error has to do with a specific field, such as for validation errors. Nested fields are concatenated with `.`, as well as indexed fields in lists.
    - `metadata` object: Optional machine-readable data about the error. What it contains typically depends on `code`. At most 16 entries and 1 KiB in total (keys and values), keys up to 64 chars and values up to 256.
  - `externalId` string: External ID is optional to use, but if used, the Atlar platform will persist it, index it, as well as require it to be unique across all resources. It is possible to retrieve a resource using the external ID using the prefix `external:`.
  - `approvalResults` ApprovalResults, required
    - `approved` integer, required: Number of fully approved credit transfers.
    - `rejected` integer, required: Number of rejected credit transfers.
  - `creatorUserId` string: Unique resource identifier.
  - `sourceAccountIds` ResourceID[]: IDs of the accounts that the payments in this batch are initiated from.
  - `metadata` Metadata, nullable: Metadata is a `string-string` key-value container that can be used to store information known at the time of resource creation. This can be retrieved later on, for instance when a payment or expected transaction is reconciled with the booked transaction on the bank statement. Metadata can have at most 20 entries. Keys may have a maximum length of 64 chars and values a maximum length of 512 chars. By default, this field is optional. It is possible to make it required in the Atlar Dashboard by visiting the [Metadata keys page](https://app.atlar.com/metadata-keys). Requirement rules can be specified per API resource. Both the Dashboard and the API will then enforce these rules and give validation errors when the required fields are not set.
  - `etag` string, required: [ETag](https://en.wikipedia.org/wiki/HTTP_ETag) based on the resource version. This can be passed along in `If-Match` HTTP header when updating a resource to perform a conditional update.
  - `version` integer, required: Resource version. Starts at value `1` when the resource is created and increases by one for each successive update.
  - `created` string, date-time, required: Time at which the resource was created.
  - `updated` string, date-time, required: Time at which the resource was last updated.

## Other responses

- `400`: Bad request.

## Changes

- **2026-11-03** `b49df1e4b3e9`: 2 breaking, 43 info
  - removed the enum value `CN_CT` of the request property `payments/items/scheme`
  - removed the required property `approvalSteps` from the response with the `201` status
  - added the new optional request property `payments/items/destination/oneOf[#/components/schemas/InlineExternalAccount]/holder/email`
  - added the new optional request property `payments/items/destination/oneOf[#/components/schemas/InlineExternalAccount]/holder/phone`
  - …41 more

[Operation history](https://skmtc.dev/atlar/apis/atlar-api-v2/changes/payments/v2beta/credit-transfer-batches/post.md)

---

[API](https://skmtc.dev/atlar/apis/atlar-api-v2.md) - [All operations](https://skmtc.dev/atlar/apis/atlar-api-v2/llms.txt) - [OpenAPI document](https://skmtc.dev/atlar/apis/atlar-api-v2/revisions/b49df1e4b3e9?raw)
