---
title: "Create report"
method: POST
path: "/connectivity/v2beta/connections/{cid}/reports"
tags: ["Connections"]
---

# Create report

`POST /connectivity/v2beta/connections/{cid}/reports`

## Request

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

Create a report. This is used for manual upload of data. For instance if having raw camt.053/mt940 files
but not wanting to set up a connection to automatically fetch them, or, if the atlar/third-party does not support
fetching of the data.

## Path parameters

- `cid` string, required

## Request body

- CreateConnectionReportRequest: A manual upload of statement data for a connection. Use this when Atlar cannot fetch the data itself — a bank with no automatable channel, or a one-off backfill. What you send is stored verbatim and stays retrievable as the report's content, so it is the audit record of the upload. The JSON body may not exceed 10 MiB. Transactions are what usually push an upload towards that, so split a large backfill across requests rather than sending one request per day for a whole year.
  - `statements` CreateStatementRequest[], required: One entry per account and local date. Entries are independent and may cover different accounts and different dates in the same request; each becomes its own statement. The request is accepted or rejected as a whole and forms a single report, so group everything belonging to one upload together rather than sending one request per statement. At most 100 entries — split larger backfills across several requests.
    - `type` 'BOOKED', required: Only `BOOKED` is accepted. What you upload is treated as settled and final for the day, and safe to reconcile against. Upload intraday figures once the day has closed rather than as they stand.
    - `period` StatementPeriodInput, required: The local calendar date a statement covers. Atlar stores a period as two absolute instants and derives them from `localDate` interpreted in the account's timezone: the period starts at the very beginning of that local day and ends at the very end of it. Nothing you send carries a UTC offset — the offset comes entirely from the account's timezone, so an incorrect timezone can shift the whole statement onto the neighbouring day.
      - `type` 'EODY' | 'NONE', required
      - `localDate` 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`.
    - `account` StatementAccountInput, required: Identifies the account a statement belongs to, as the source system reports it.
      - `market` string, required: Two-letter ISO 3166-1 alpha2 country code.
      - `timezone` string: The timezone of the date and time. This is a standard timezone identifier, such as "Europe/Stockholm", "America/Los_Angeles", or "Europe/London". Ie. this is not an offset from UTC.
      - `currency` string, required: Three-letter ISO 4217 currency code.
      - `identifiers` AccountIdentifier[], required: How the bank identifies the account. This is what Atlar matches on, so send the identifiers as the bank reports them: prefer the `IBAN` where there is one, and include the local `NUMBER` alongside it if the bank reports that too. At least one identifier must be valid. Identifiers Atlar cannot validate are tolerated as long as a valid one remains, so an IBAN plus an unrecognised local number is fine, but a request in which every identifier is invalid is rejected.
        - `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[]: How the account's bank is identified — a `BIC`, a sort code, a routing number. Worth sending even for an IBAN account, since a `BIC` is the last fallback for resolving the account's timezone. A `BIC` may be given in either its 8- or 11-character form and is normalised to 11 characters before the account is matched or created. Atlar may also add routing identifiers it can derive itself, so the account's routing list can end up longer than what you sent.
        - `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
      - `name` string: The account's name at the bank, if the source reports one. Purely descriptive — it is never used to match the account.
      - `type` 'WALLET' | 'SAVINGS' | 'CHECKING' | 'INVESTMENT'
      - `fictive` boolean: Marks the account as not real, for test and demonstration data. Leave it unset for production data.
    - `holder` ConnAccountHolderInput, required: The legal owner of a bank account.
      - `legalName` string, required: The account holder's name as registered with the bank. Use the registered legal name rather than a trading name or an internal label — it is used when matching the account holder to a party Atlar already knows.
      - `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: The holder's email address, if the source reports one.
      - `phone` string: The holder's phone number, if the source reports one.
    - `balances` ConnBalanceInput[], required: The account's balances for the statement's local date. Always send at least the day's opening and closing booked balances: one entry with `type: BOOKED` and `reportedType: OPEN`, and one with `type: BOOKED` and `reportedType: CLOSE`. Both are needed for the statement to be processed — without them the request is accepted and then fails during processing. Every entry's `localDate` must equal `period.localDate`, and the combination of `type` and `reportedType` must be unique across the array, so a statement cannot carry two closing booked balances.
      - `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.
      - `type` 'BOOKED' | 'BOOKED_ADJUSTED' | 'AVAILABLE', required: Which balance this is. `BOOKED` is the settled ledger balance and the only one Atlar reconciles against, so every statement must carry a `BOOKED` `OPEN` and a `BOOKED` `CLOSE` — the day's net movement is derived from those two. `AVAILABLE` (what is usable right now, after holds and overdraft) and `BOOKED_ADJUSTED` are stored for reference only and cannot stand in for the booked pair.
      - `reportedType` 'OPEN' | 'CLOSE', required: Whether this is the balance the day opened with or the one it closed with. It is what fixes the balance's timestamp within `localDate`, so it has to reflect the real position: one date's closing balance and the next date's opening balance should normally be equal.
      - `localDate` 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`.
    - `transactions` ConnTransactionInput[]: The individual movements the day's booked balances are made up of. Optional, but send them whenever the source system reports them — without them a statement only shows that the balance moved, not what moved it, and nothing can be reconciled against a payment. When you do send them they must account for the day in full: each `uniqueID` may occur only once in the statement, each `bookedDate` must equal `period.localDate`, each `amount.currency` must equal `account.currency`, and the signed sum of the entries — credits positive, debits negative — must equal the closing booked balance minus the opening one exactly. A request that breaks any of these is rejected. At most 1000 entries per statement — a day with more movements than that cannot be split across two statements, since an account and local date can only be recorded once, so contact Atlar. If you omit the array, Atlar reconstructs the day's net movement from the balances — a single transaction for the closing booked balance minus the opening one, a credit if that is positive and a debit if it is negative, dated on the statement's local date. If the two balances are equal, the day gets no transaction at all.
      - `uniqueID` string, required: A stable identifier for this movement, unique within the account. Reuse the source system's own transaction identifier if it has one. Atlar enforces that a `uniqueID` occurs at most once per account. Re-uploading the same movement unchanged is ignored and leaves the stored movement untouched — it is not an update — but reusing a `uniqueID` for a movement with a different amount or booked date is a conflict and fails during processing. A `uniqueID` must therefore be stable across re-uploads and must never be reused for a different movement. Between 10 and 256 characters.
      - `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.
      - `bookedDate` 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`.
      - `valueDate` string, date: `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`.
      - `description` string, required: The description as reported by the source system, verbatim. This is what a user sees when reconciling, so keep it human-readable and do not substitute an internal code for it. It usually carries the same text as the underlying payment's remittance information.
      - `status` 'BOOKED', required: Only `BOOKED` is accepted. A statement is always a settled end-of-day statement, so it cannot carry pending movements.
      - `counterparty` TransactionCounterparty
        - `holder` ReferencedParty: A party on the other side of a movement, as the source system reports it.
          - `legalName` string, required: The party's name as the source system reports it, not a normalised or internal label. It is used to match the movement to a counterparty Atlar already knows.
          - `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.
          - `rawAddressLines` string[]: The address exactly as the source system reports it, one entry per line, neither parsed nor reordered.
        - `account` ReferencedAccount: An account on the other side of a movement, as the source system reports it.
          - `rawIdentifierNumber` string, required: The account number exactly as the source system reports it, neither parsed nor normalised — an IBAN, a local account number, a wallet reference. Atlar parses it itself in order to match the account, so send it verbatim rather than a cleaned-up form.
          - `market` string: Two-letter ISO 3166-1 alpha2 country code.
          - `currency` string: Three-letter ISO 4217 currency code.
          - `identifiers` AccountIdentifier[]: How the source system identifies the account, if known beyond rawIdentifierNumber — e.g. a parsed IBAN alongside a local number.
            - `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[]: How the account's bank is identified, if known — a BIC, a sort code, a routing number.
            - `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`.
              - …
      - `instructedAmount` union
        - 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.
      - `references` object: Payment references carried by the movement, keyed by reference kind. Use the well-known keys `endToEndId` and `mandateReference` where they apply, so that Atlar can match the movement to a payment or a mandate; other keys are stored but not interpreted. At most 32 entries.
      - `bankTransactionCode` BankTransactionCode: ISO 20022 Bank Transaction Code
        - `domain` string, required: ISO 20022 BTC Domain - Defines the business area of the underlying transaction, e.g. payments or cash management.
        - `family` string, nullable: ISO 20022 BTC Family - May for example define the type of transaction, e.g. credit transfer or direct debit.
        - `subfamily` string, nullable: ISO 20022 BTC Subfamily - May for example specify a scheme specific transaction type, e.g. SEPA credit transfer, or a Cross-Border credit transfer.
        - `proprietary` ProprietaryBankTransactionCode: Proprietary bank transaction codes are provided when the bank provides a proprietary transaction code. This field will be set as the code provided by the bank.
          - `code` string, nullable
          - `issuer` string, nullable
        - `description` string, nullable: Free-form textual description of the Bank Transaction Code.

## Response `201`

The created report.

- ConnectionReport
  - `organizationId` string, required: Unique resource identifier for an Organization.
  - `connectionId` string, required: Unique resource identifier.
  - `id` string, required: Unique resource identifier.
  - `details` ConnectionReportDetails, required
    - `type` 'STATEMENT' | 'INVESTMENT' | 'ACCOUNTING' | 'FX_RATES' | 'PAYMENT_STATUS' | 'BENCHMARK_RATES' | 'INSTRUMENT_PRODUCTS' | 'ACCOUNTS' | 'OTHER', required: The type of the report.
    - `statementType` 'BOOKED' | 'PENDING', required
  - `content` ContentMetadata, required: Metadata describing the contents that was retrieved over the Connection.
    - `contentType` 'application/vnd.iso20022.pain.001.001.03+xml' | 'application/vnd.iso20022.pain.001.001.03.ch.02+xml' | 'application/vnd.iso20022.pain.001.001.09+xml' | 'application/vnd.iso20022.pain.001.001.09.ch.03+xml' | 'application/vnd.iso20022.pain.002.001.03+xml' | 'application/vnd.iso20022.pain.002.001.10+xml' | 'application/vnd.iso20022.pain.008.001.02+xml' | 'application/vnd.iso20022.pain.008.001.02.ch.03+xml' | 'application/vnd.iso20022.pain.008.001.03+xml' | 'application/vnd.iso20022.pain.008.001.08+xml' | 'application/vnd.iso20022.camt.052.001.02+xml' | 'application/vnd.iso20022.camt.052.001.03+xml' | 'application/vnd.iso20022.camt.052.001.04+xml' | 'application/vnd.iso20022.camt.052.001.08+xml' | 'application/vnd.iso20022.camt.053.001.02+xml' | 'application/vnd.iso20022.camt.053.001.03+xml' | 'application/vnd.iso20022.camt.053.001.04+xml' | 'application/vnd.iso20022.camt.053.001.08+xml' | 'application/vnd.iso20022.camt.053.001.10+xml' | 'application/vnd.iso20022.camt.053.001.11+xml' | 'application/vnd.iso20022.camt.053.001.12+xml' | 'application/vnd.iso20022.camt.054.001.02+xml' | 'application/vnd.iso20022.pacs.002.001.10+xml' | 'application/vnd.iso20022.pacs.008.001.02+xml' | 'application/vnd.iso20022.pacs.008.001.08+xml' | 'application/vnd.swift.mt.101' | 'application/vnd.swift.mt.103' | 'application/vnd.swift.mt.900' | 'application/vnd.swift.mt.940' | 'application/vnd.swift.mt.942' | 'application/vnd.bai.bai2' | 'application/vnd.bgc.autogiro.payee' | 'application/vnd.bgc.autogiro.payments.rejected' | 'application/vnd.bgc.autogiro.payments.spec' | 'application/vnd.bgc.autogiro.mandate' | 'application/vnd.bgc.payins.bgmax' | 'application/vnd.nacha.ach' | 'application/vnd.atlar.testbank.mandate+json' | 'application/vnd.atlar.testbank.transaction+json' | 'application/vnd.atlar.connectivity.proprietary' | 'application/vnd.atlar.connectivity.proprietary+json' | 'application/vnd.atlar.connectivity.proprietary+xml' | 'application/vnd.atlar.connectivity.proprietary+csv' | 'application/vnd.atlar.connectivity.v2.investment-statement+json' | 'application/vnd.atlar.connectivity.v2.accounting-statement+json' | 'application/vnd.atlar.connectivity.v2.fx-rate-statement+json' | 'application/vnd.atlar.connectivity.v2.benchmark-rate-statement+json' | 'application/vnd.atlar.connectivity.v2.instrument-product-statement+json' | 'application/vnd.atlar.connectivity.v2.statement+json' | 'application/vnd.atlar.connectivity.v2.statement+csv' | 'application/vnd.deutsche.wealth-online+csv' | 'application/vnd.m2.m006.m001+xml' | 'application/vnd.m2.m006.m005+xml' | 'application/vnd.ebics.htd.v30+xml' | 'application/vnd.ebics.hac.v25+xml' | 'application/vnd.ebics.hac.v30+xml' | 'application/vnd.jpm.daily-feed+zip' | 'application/vnd.jpm.morgan-money.balance-report+csv' | 'application/vnd.jpm.morgan-money.transaction-report+csv' | 'application/vnd.jpm.soci.holdings+csv' | 'application/vnd.jpm.soci.transactions+csv' | 'application/vnd.jpm.soci.cash-balance+csv' | 'application/vnd.nordea.investments.abasec.pos+csv' | 'application/vnd.nordea.investments.abasec.tra+csv' | 'application/vnd.blackrock.cachematrix.balance+csv' | 'application/vnd.blackrock.cachematrix.transactions+csv' | 'application/vnd.adyen.balance-platform.statement-report+csv' | 'application/vnd.ms-excel' | 'application/x-ofx' | 'application/json' | 'application/zip' | 'application/pdf' | 'text/plain' | 'text/csv' | 'application/vnd.edi.820' | 'application/vnd.edi.824' | 'application/vnd.edi.997', required: The content type of the data.
    - `size` integer, required: The size of the input content in bytes.
    - `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.
    - `name` string, required: The name of the content that retrieved over the connection. If the connection is a file transfer, the filename will be used. If the third-party does not provide a name, Atlar will create one.
  - `converted` boolean, required
  - `thirdPartyCodes` string[]: The third parties this report holds data for. Typically, the bank BICs occurring in the report, for example an end-of-day report carrying several statements, each reporting for one BIC. Reports from parties without a BIC, such as PSPs and ERPs, use a synthetic code instead, for example `PSP_AIRWALLEX`.
  - `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.
  - `version` integer, required: Resource version. Starts at value `1` when the resource is created and increases by one for each successive update.
  - `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.
  - `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`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/atlar/apis/atlar-api-v2/changes/connectivity/v2beta/connections/:cid/reports/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)
