> ## Documentation Index
> Fetch the complete documentation index at: https://apidocs.noyax.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create credit card collection

> Adds a new credit card collection voucher with its lines in one transaction.

See the [overview](/en/v1/finance/credit-card-collections/overview) page for required fields, lines and the value date (Valor) calculation.

## Error codes

Codes this endpoint can return. The [general errors](/en/v1/guides/result-codes) that apply to every endpoint (authentication, permissions, request headers, daily limit) are not repeated here.

| Code   | HTTP | Meaning                                                                                                                                                               |
| ------ | ---- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `0002` | 400  | Request body could not be read (malformed JSON, wrong field type)                                                                                                     |
| `0003` | 400  | A field exceeds its maximum length (the message names the field and the limit)                                                                                        |
| `0580` | 400  | A value given as text (a code or a name) matches more than one record; add the detail that tells them apart (for example `City` for a district, `Country` for a city) |
| `8180` | 400  | No `"BANKAFİŞNO"` serial number definition was found for the company                                                                                                  |
| `8181` | 400  | The serial number definition has no detail rows                                                                                                                       |
| `8182` | 400  | Unsupported serial number part type                                                                                                                                   |
| `8183` | 400  | The generated voucher number exceeds the maximum length                                                                                                               |
| `8184` | 400  | The generated voucher number is already used in the company                                                                                                           |
| `8185` | 400  | The voucher number could not be generated                                                                                                                             |
| `8701` | 400  | `VoucherNumber` is required                                                                                                                                           |
| `8702` | 400  | `VoucherNumber` is already used in the company (among all bank voucher types)                                                                                         |
| `8703` | 400  | `VoucherNumber` cannot be "Next" on update                                                                                                                            |
| `8704` | 400  | `Date` is required                                                                                                                                                    |
| `8705` | 400  | `BankAccountCode` is required                                                                                                                                         |
| `8706` | 400  | `BankAccountCode` was not found                                                                                                                                       |
| `8707` | 400  | At least one line is required                                                                                                                                         |
| `8710` | 400  | `SharingCode` is not one of the user's sharing codes                                                                                                                  |
| `8800` | 400  | Line `CustomerCode` is required                                                                                                                                       |
| `8801` | 400  | Customer not found for the line                                                                                                                                       |
| `8802` | 400  | Line `Amount` must be greater than 0                                                                                                                                  |
| `8803` | 400  | Line `ExchangeRate` (or `CustomerExchangeRate`) is required and must be greater than 0                                                                                |
| `8804` | 400  | Line `PosChargeDate` is required                                                                                                                                      |
| `8805` | 400  | Line `RepaymentPlanName` was not found                                                                                                                                |
| `8806` | 400  | Line `CustomerCurrencyCode` was not found                                                                                                                             |
| `8807` | 400  | Line `CustomerAmount x CustomerExchangeRate` does not equal `Amount x ExchangeRate`                                                                                   |
| `8808` | 400  | Line `CustomerAmount` and `CustomerCurrencyCode` must be sent together                                                                                                |


## OpenAPI

````yaml api-reference/openapi.json POST /api/v1/finance/credit-card-collections
openapi: 3.1.1
info:
  title: Noyax API
  description: Server-to-server API for integrations to access Noyax data.
  version: '1.0'
servers:
  - url: https://dev.noyax.com/services/noyax_api
security:
  - Bearer: []
tags:
  - name: Sections
  - name: Warehouses
  - name: Quotes
  - name: Product Critical Stock
  - name: Product groups
  - name: Product Parameter Definitions
  - name: Product Parameters
  - name: Product Prices
  - name: Products
  - name: Orders
  - name: Bank Accounts
  - name: Bank Internal Transfers
  - name: Bank Openings
  - name: Banks
  - name: Bank Transfers
  - name: Credit Card Collections
  - name: Repayment Plans
  - name: Despatches
  - name: Cities
  - name: Countries
  - name: Currencies
  - name: Districts
  - name: Line Groups
  - name: Shipment Definitions
  - name: Units
  - name: VAT rates
  - name: Customer Addresses
  - name: Customer Bank Accounts
  - name: Customer Definitions
  - name: Customer Group Members
  - name: Customer Links
  - name: Customer Parameters
  - name: Customer Representatives
  - name: Customers
  - name: Customer Statement
  - name: Customer Telephones
paths:
  /api/v1/finance/credit-card-collections:
    post:
      tags:
        - Credit Card Collections
      summary: Create credit card collection
      description: >-
        Creates a credit card collection voucher with its lines in one
        transaction. Each line records money collected from a customer's credit
        card; the customer's own ledger entry mirrors the line's
        Amount/ExchangeRate unless
        CustomerAmount/CustomerCurrencyCode/CustomerExchangeRate override it.
        PosChargeDate is required on every line. When RepaymentPlanName is sent,
        the line's value date (Valor) is calculated as the voucher Date plus the
        plan's DayCount. Send VoucherNumber as "Next" to generate it from the
        company's bank voucher number series.
      parameters:
        - name: X-UserID
          in: header
          description: >-
            ID of the Noyax user the request is made on behalf of. Written to
            the audit fields of created, updated and deleted records.
          required: true
          schema:
            minimum: 1
            type: integer
            format: int32
        - name: X-CompanyID
          in: header
          description: >-
            ID of the company. The user must be assigned to this company. All
            reads and writes are limited to this company.
          required: true
          schema:
            minimum: 1
            type: integer
            format: int32
        - name: X-PeriodID
          in: header
          description: >-
            ID of the accounting period. Optional for customer endpoints; if
            sent, it is written to created records.
          schema:
            minimum: 1
            type: integer
            format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreditCardCollectionRequestDto'
          text/json:
            schema:
              $ref: '#/components/schemas/CreditCardCollectionRequestDto'
          application/*+json:
            schema:
              $ref: '#/components/schemas/CreditCardCollectionRequestDto'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataResultOfCreditCardCollectionDetailDto'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResult'
              example:
                Success: false
                ResultCode: '8707'
                Message: At least one line is required.
                Errors:
                  - Code: '8707'
                    Message: At least one line is required.
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResult'
              example:
                Success: false
                ResultCode: '0102'
                Message: Token has expired. Obtain a new token using the refresh token.
                Errors:
                  - Code: '0102'
                    Message: >-
                      Token has expired. Obtain a new token using the refresh
                      token.
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResult'
              example:
                Success: false
                ResultCode: '0110'
                Message: You do not have permission for this operation.
                Errors:
                  - Code: '0110'
                    Message: You do not have permission for this operation.
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResult'
              example:
                Success: false
                ResultCode: '0120'
                Message: Daily request limit (10000) exceeded.
                Errors:
                  - Code: '0120'
                    Message: Daily request limit (10000) exceeded.
components:
  schemas:
    CreditCardCollectionRequestDto:
      type: object
      properties:
        VoucherNumber:
          type:
            - 'null'
            - string
          description: >-
            Required. Voucher number, unique within the company among all bank
            vouchers. Send "Next" on create to generate it from the company's
            bank voucher number series. At most 20 characters.
          example: Next
        Date:
          type:
            - 'null'
            - string
          description: >-
            Required. Voucher date. If a time is sent it is stored as the
            voucher time, otherwise the current time is used.
          format: date-time
          example: '2026-09-24T16:02:00'
        BankAccountCode:
          type:
            - 'null'
            - string
          description: >-
            Required. Bank account name (Name from GET
            /api/v1/finance/bank-accounts). All lines are recorded against this
            account.
          example: TEST POS
        Description:
          type:
            - 'null'
            - string
          description: Description. At most 1000 characters.
        SharingCode:
          type:
            - 'null'
            - string
          description: >-
            Sharing code that limits who can see the voucher. Empty means
            visible to everyone; otherwise it must be one of the user's sharing
            codes.
        Lines:
          type: array
          items:
            $ref: '#/components/schemas/CreditCardCollectionLineRequestDto'
          description: Required, at least one line.
    DataResultOfCreditCardCollectionDetailDto:
      required:
        - Success
        - ResultCode
        - Data
      type: object
      properties:
        Success:
          type: boolean
          description: Whether the operation succeeded.
          example: true
        ResultCode:
          type: string
          description: >-
            "0000" on success. On failure, the code of the first error; all
            errors are listed in Errors.
          example: '0000'
        Message:
          type:
            - 'null'
            - string
          description: >-
            Error message when Success is false. Messages of all errors are
            joined into a single text.
        Data:
          $ref: '#/components/schemas/CreditCardCollectionDetailDto'
    ErrorResult:
      type: object
      properties:
        Success:
          type: boolean
          description: Whether the operation succeeded.
          example: false
        ResultCode:
          type:
            - 'null'
            - string
          description: >-
            "0000" on success. On failure, the code of the first error; all
            errors are listed in Errors.
        Message:
          type:
            - 'null'
            - string
          description: >-
            Error message when Success is false. Messages of all errors are
            joined into a single text.
        Errors:
          type:
            - 'null'
            - array
          items:
            $ref: '#/components/schemas/ResultError'
          description: All errors with their codes. Only present when Success is false.
    CreditCardCollectionLineRequestDto:
      type: object
      properties:
        CustomerCode:
          type:
            - 'null'
            - string
          description: >-
            Required. Customer code (the customer's CustomerCode from GET
            /api/v1/customers).
          example: C-0001
        Amount:
          type: number
          description: >-
            Required. Amount, in the bank account's own currency. Must be
            greater than 0.
          format: double
          example: 800
        ExchangeRate:
          type:
            - 'null'
            - number
          description: >-
            Exchange rate of the bank account's currency against the company's
            default currency. Required, and must be greater than 0, only when
            the bank account's currency differs from the default currency;
            otherwise treated as 1.
          format: double
          example: 1
        PosChargeDate:
          type:
            - 'null'
            - string
          description: Required. Date the card was charged (POS çekim tarihi).
          format: date-time
          example: '2026-09-24T16:03:00'
        RepaymentPlanName:
          type:
            - 'null'
            - string
          description: >-
            Repayment plan name, from GET
            /api/v1/finance/bank-accounts/{bankAccountId}/repayment-plans of the
            voucher's own bank account. Optional; when sent, the value date
            (Valor) is computed as the voucher Date plus the plan's DayCount.
        Description:
          type:
            - 'null'
            - string
          description: Description. At most 255 characters.
        CustomerAmount:
          type:
            - 'null'
            - number
          description: >-
            Overrides the amount recorded on the customer's own account (send
            together with CustomerCurrencyCode and CustomerExchangeRate, or
            leave all three empty to record the customer movement with the same
            amount, currency and rate as the bank movement). CustomerAmount
            multiplied by CustomerExchangeRate must equal Amount multiplied by
            ExchangeRate.
          format: double
        CustomerCurrencyCode:
          type:
            - 'null'
            - string
          description: >-
            Currency code for the customer movement override (from GET
            /api/v1/definitions/currencies). Send together with CustomerAmount
            and CustomerExchangeRate.
        CustomerExchangeRate:
          type:
            - 'null'
            - number
          description: >-
            Exchange rate for the customer movement override. Required, and must
            be greater than 0, when CustomerCurrencyCode differs from the
            company's default currency.
          format: double
    CreditCardCollectionDetailDto:
      type: object
      properties:
        Id:
          type: string
          description: Voucher ID.
          format: uuid
        VoucherNumber:
          type:
            - 'null'
            - string
          description: Voucher number.
        Date:
          type:
            - 'null'
            - string
          description: Voucher date.
          format: date-time
        BankAccountCode:
          type:
            - 'null'
            - string
          description: Bank account name.
        BankAccountId:
          type:
            - 'null'
            - string
          description: Bank account ID.
          format: uuid
        CurrencyCode:
          type:
            - 'null'
            - string
          description: Currency code of the bank account (and of every line's Amount).
        CurrencyId:
          type:
            - 'null'
            - string
          description: Currency ID of the bank account.
          format: uuid
        ExchangeRate:
          type: number
          description: >-
            Weighted average exchange rate across the lines: sum(Amount x
            ExchangeRate) / sum(Amount).
          format: double
        Amount:
          type: number
          description: Total amount (sum of the lines' Amount).
          format: double
        Description:
          type:
            - 'null'
            - string
          description: Description.
        SharingCode:
          type:
            - 'null'
            - string
          description: Sharing code that limits who can see the voucher.
        SharingCodeId:
          type:
            - 'null'
            - string
          description: Sharing code ID.
          format: uuid
        IsPosted:
          type: boolean
          description: >-
            Whether the voucher has been posted to accounting. A posted voucher
            cannot be updated or deleted.
        IsRepaid:
          type: boolean
          description: >-
            Whether this collection has already been settled by a bank repayment
            voucher. A settled voucher cannot be updated or deleted.
        CreateDate:
          type:
            - 'null'
            - string
          format: date-time
        ModifyDate:
          type:
            - 'null'
            - string
          format: date-time
        Lines:
          type: array
          items:
            $ref: '#/components/schemas/CreditCardCollectionLineDto'
          description: Lines, in line order.
      description: Response data. Null when Success is false.
    ResultError:
      required:
        - Code
        - Message
      type: object
      properties:
        Code:
          type: string
          description: Error code. See the result codes page for the full list.
        Message:
          type: string
          description: Error description.
    CreditCardCollectionLineDto:
      type: object
      properties:
        CustomerName:
          type:
            - 'null'
            - string
          description: Customer name.
        Valor:
          type:
            - 'null'
            - string
          description: >-
            Value date (Valor): Date plus the repayment plan's DayCount. Null
            when no repayment plan was given.
          format: date-time
        CustomerId:
          type:
            - 'null'
            - string
          format: uuid
        RepaymentPlanId:
          type:
            - 'null'
            - string
          format: uuid
        CustomerCurrencyId:
          type:
            - 'null'
            - string
          format: uuid
        CustomerCode:
          type:
            - 'null'
            - string
          description: >-
            Required. Customer code (the customer's CustomerCode from GET
            /api/v1/customers).
          example: C-0001
        Amount:
          type: number
          description: >-
            Required. Amount, in the bank account's own currency. Must be
            greater than 0.
          format: double
          example: 800
        ExchangeRate:
          type:
            - 'null'
            - number
          description: >-
            Exchange rate of the bank account's currency against the company's
            default currency. Required, and must be greater than 0, only when
            the bank account's currency differs from the default currency;
            otherwise treated as 1.
          format: double
          example: 1
        PosChargeDate:
          type:
            - 'null'
            - string
          description: Required. Date the card was charged (POS çekim tarihi).
          format: date-time
          example: '2026-09-24T16:03:00'
        RepaymentPlanName:
          type:
            - 'null'
            - string
          description: >-
            Repayment plan name, from GET
            /api/v1/finance/bank-accounts/{bankAccountId}/repayment-plans of the
            voucher's own bank account. Optional; when sent, the value date
            (Valor) is computed as the voucher Date plus the plan's DayCount.
        Description:
          type:
            - 'null'
            - string
          description: Description. At most 255 characters.
        CustomerAmount:
          type:
            - 'null'
            - number
          description: >-
            Overrides the amount recorded on the customer's own account (send
            together with CustomerCurrencyCode and CustomerExchangeRate, or
            leave all three empty to record the customer movement with the same
            amount, currency and rate as the bank movement). CustomerAmount
            multiplied by CustomerExchangeRate must equal Amount multiplied by
            ExchangeRate.
          format: double
        CustomerCurrencyCode:
          type:
            - 'null'
            - string
          description: >-
            Currency code for the customer movement override (from GET
            /api/v1/definitions/currencies). Send together with CustomerAmount
            and CustomerExchangeRate.
        CustomerExchangeRate:
          type:
            - 'null'
            - number
          description: >-
            Exchange rate for the customer movement override. Required, and must
            be greater than 0, when CustomerCurrencyCode differs from the
            company's default currency.
          format: double
  securitySchemes:
    Bearer:
      type: http
      description: Access token obtained from the Noyax auth service with your API key.
      scheme: bearer
      bearerFormat: JWT

````