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

# Make a payment

> > 🚧 Beta
> This is a Beta endpoint. Feedback from the community is welcome. We may make breaking changes to this endpoint.

Make a one-time payment against a lending account (e.g. a card paydown), funded
either from an internal Synctera platform account or an external ACH-linked account.
If effective_date is today or omitted, the payment executes immediately and the
response reflects its final status (EXECUTED, FAILED, or SKIPPED). If effective_date
is in the future, the payment is scheduled and executes on that date.




## OpenAPI

````yaml openapi-v1.json post /payments
openapi: 3.0.3
info:
  description: >-
    This is the official reference documentation for Synctera APIs. If you need
    something specific or have a question, <a class='text-blue-600'
    href='https://synctera.com/contact-us' target='_blank'
    rel='noreferrer'>contact us</a>.</p>
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  title: Synctera API
  version: 1.184.0
servers:
  - description: Production
    url: https://api.synctera.com/v1
  - description: Sandbox (no real world financial impact)
    url: https://api-sandbox.synctera.com/v1
security:
  - bearerAuth: []
tags:
  - description: |
      Requests to create and manage Rewards
    name: Rewards (beta)
  - description: Requests to generate simulated webhooks
    name: Card Webhook Simulations
  - description: >-
      Testing endpoints to simulate in-store cash deposits. Available in sandbox
      environments only.
    name: In-Store Cash Deposit Simulations
  - description: Create and manage spending controls
    name: Spend Controls (beta)
  - description: Rates
    name: Rates
  - description: Requests to create and manage webhooks
    name: Webhooks
  - description: Tenant Config
    name: Tenant Config
  - description: FDX authentication and data transfer using Plaid Core Exchange
    name: Plaid Core Exchange (beta)
  - description: Create and manage disputes
    name: Disputes
  - description: Requests to simulate card payments
    name: Card Simulations
  - description: |
      Manage fee products and fee configs for automated fee collection
    name: Fee Products
  - description: Apple Pay APIs
    name: Apple Pay
  - description: Lending Config
    name: Lending Config
  - description: Payments related to lending accounts
    name: Payments
  - description: Manage negative balance processes
    name: Negative Balance
  - description: Configuration for mapping LoanPro events to Payola transaction parameters
    name: LoanPro Transaction Event Config
  - description: Requests to generate simulated transactions
    name: Cash Transaction Simulations (alpha)
  - description: Create and manage transactions
    name: Transactions (beta)
  - description: Autopay payment records for billing periods
    name: Autopays
  - description: Create and manage accounts
    name: Accounts
  - description: |
      Requests to create and manage batch payments
    name: Batch Payments (alpha)
  - description: Billing rates
    name: Billing Rates
  - description: Bank Delinquency Configuration
    name: Bank Delinquency Configuration
  - description: >-
      Rules that map a posted payment transaction (bank/partner + transaction
      attributes) to a regulatory payment code. NULL match columns act as
      wildcards.
    name: Payment Code Configuration
  - description: Create and manage Synctera Pay templates
    name: SyncteraPay
  - description: |
      Manage reward products and reward configs for automated cashback rewards
    name: Reward Products
  - description: Requests to create and manage card disputes
    name: Card Disputes
  - description: >-
      Per bank/partner account-type mapping to FFIEC collateral codes used for
      regulatory call report furnishment.
    name: Collateral Code Configuration
  - description: Bulk card issuance
    name: Bulk Issuance
  - description: Autopay configuration management for lending accounts
    name: Autopay Configs
  - description: Request to create and manage exclusions
    name: Statements
  - description: Create and manage barcodes for in-store cash deposits
    name: In-Store Cash Deposits
  - description: Customer Service Details for disputes and billing inquiries
    name: Customer Service Details
  - description: Create a credit application.
    name: Applications (beta)
  - description: Requests to generate simulated transactions
    name: Card Transaction Simulations
  - description: Billing period summaries
    name: Billing Period Summaries
  - description: Requests to issue and manage cards
    name: Cards
  - description: Push and pull from cards
    name: External Cards
  - description: |
      Requests to create and manage fees
    name: Fees (beta)
paths:
  /payments:
    summary: Payments
    post:
      tags:
        - Payments
      summary: Make a payment
      description: >
        > 🚧 Beta

        > This is a Beta endpoint. Feedback from the community is welcome. We
        may make breaking changes to this endpoint.


        Make a one-time payment against a lending account (e.g. a card paydown),
        funded

        either from an internal Synctera platform account or an external
        ACH-linked account.

        If effective_date is today or omitted, the payment executes immediately
        and the

        response reflects its final status (EXECUTED, FAILED, or SKIPPED). If
        effective_date

        is in the future, the payment is scheduled and executes on that date.
      operationId: makePayment
      parameters:
        - $ref: '#/components/parameters/idempotency_key'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/payment_create_request'
        description: Payment to make
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/payment'
          description: Payment created (and, if effective immediately, executed)
        '400':
          $ref: '#/components/responses/bad_request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '500':
          $ref: '#/components/responses/internal_server_error'
components:
  parameters:
    idempotency_key:
      description: >-
        An idempotency key is an arbitrary unique value generated by client to
        detect subsequent retries of the same request. It is recommended that a
        UUID or a similar random identifier be used as an idempotency key. A
        different key must be used for each request, unless it is a retry.
      in: header
      name: Idempotency-Key
      schema:
        example: 7d943c51-e4ff-4e57-9558-08cab6b963c7
        type: string
  schemas:
    payment_create_request:
      description: >
        Request to make a one-time payment against a lending account (e.g. a
        card

        paydown). Exactly one of person_id or business_id must be provided to
        identify

        the customer initiating the payment; exactly one of payment_configs.ach
        or

        payment_configs.internal_transfer must be provided to identify the
        funding source.
      properties:
        amount:
          description: >
            Amount to pay, in cents. Paid in full as requested, even if it
            exceeds the

            account's current balance -- an intentional overpayment is honored,
            not

            truncated to the balance.
          example: 5000
          format: int64
          minimum: 1
          type: integer
        business_id:
          description: >
            The business ID initiating this payment. Mutually exclusive with
            person_id --

            exactly one must be provided.
          example: b2c3d4e5-f6a7-8901-bcde-f12345678901
          format: uuid
          type: string
        description:
          description: Optional description for the payment. Defaults to "Payment".
          example: Card paydown
          type: string
        effective_date:
          description: >
            Date the payment should be made. Defaults to today. If today or in
            the past,

            the payment is executed immediately and the response reflects its
            final

            status; if in the future, the payment is scheduled and executes on
            that date.
          example: '2024-01-25'
          format: date
          type: string
        lending_account_id:
          description: The lending account (card/account) to pay down
          example: 7d943c51-e4ff-4e57-9558-08cab6b963c7
          format: uuid
          type: string
        payment_configs:
          $ref: '#/components/schemas/autopay_payment_configs'
        person_id:
          description: >
            The person ID initiating this payment. Mutually exclusive with
            business_id --

            exactly one must be provided.
          example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
          format: uuid
          type: string
        tenant:
          $ref: '#/components/schemas/tenant_id'
      required:
        - amount
        - lending_account_id
        - payment_configs
      type: object
    payment:
      description: A one-time payment made against a lending account.
      properties:
        attempt_history:
          $ref: '#/components/schemas/autopay_attempt_history'
        creation_time:
          description: Timestamp when the payment was created
          example: '2024-01-15T10:30:00Z'
          format: date-time
          type: string
        current_amount:
          description: >
            The amount in cents associated with this payment. For PENDING
            payments this

            is the originally requested amount (payments are not capped at the
            current

            balance -- an intentional overpayment is honored). For EXECUTED
            payments this

            mirrors executed_amount.
          example: 5000
          format: int64
          type: integer
        description:
          description: Description for the payment
          example: Payment
          type: string
        effective_date:
          description: Date the payment was (or will be) made
          example: '2024-01-25'
          format: date
          type: string
        executed_amount:
          description: The amount in cents actually paid, once executed.
          example: 5000
          format: int64
          type: integer
        id:
          description: Unique identifier for the payment
          example: 2d0f7601-ecc6-48b4-b82f-5d64fa84628b
          format: uuid
          type: string
        last_updated_time:
          description: Timestamp when the payment was last updated
          example: '2024-01-15T10:30:00Z'
          format: date-time
          type: string
        lending_account_id:
          description: The lending account this payment was made against
          example: 7d943c51-e4ff-4e57-9558-08cab6b963c7
          format: uuid
          type: string
        payment_attributes:
          $ref: '#/components/schemas/autopay_payment_attributes'
        payment_configs:
          $ref: '#/components/schemas/autopay_payment_configs'
        status:
          $ref: '#/components/schemas/autopay_status'
        tenant:
          $ref: '#/components/schemas/tenant'
      required:
        - creation_time
        - description
        - effective_date
        - id
        - last_updated_time
        - lending_account_id
        - payment_configs
        - status
      type: object
    autopay_payment_configs:
      description: Payment method-specific configurations
      properties:
        ach:
          $ref: '#/components/schemas/ach_payment_config'
        internal_transfer:
          $ref: '#/components/schemas/internal_transfer_payment_config'
      type: object
    tenant_id:
      description: |
        The id of the tenant containing the resource.
      example: abcdef_ghijkl
      type: string
    autopay_attempt_history:
      description: History of execution attempts for an autopay
      properties:
        attempts:
          description: List of execution attempts, ordered chronologically
          items:
            $ref: '#/components/schemas/autopay_attempt'
          type: array
      required:
        - attempts
      type: object
    autopay_payment_attributes:
      description: |
        Identifiers for the payment created by an autopay execution.
        Only one field will be populated depending on the payment method used.
      properties:
        ach_id:
          description: ACH transaction ID when payment method is "ach"
          example: 6a4b1045-cdd0-82f8-f26c-9e08ce28062f
          format: uuid
          type: string
        transaction_id:
          description: Internal transaction UUID when payment method is "internal_transfer"
          example: 7b5c2156-dee1-93a9-a37d-0f19df39173a
          format: uuid
          type: string
      type: object
    autopay_status:
      description: |
        Status of the autopay:
        - PENDING: Autopay is scheduled and waiting to be executed
        - EXECUTED: Autopay was successfully executed
        - SKIPPED: Autopay was skipped (e.g., no balance due)
        - FAILED: Autopay failed to execute
      enum:
        - EXECUTED
        - FAILED
        - PENDING
        - SKIPPED
      type: string
    tenant:
      properties:
        bank_id:
          description: Bank ID
          example: 6
          type: integer
        partner_id:
          description: Partner ID
          example: 6
          type: integer
      required:
        - bank_id
        - partner_id
      title: Tenant
      type: object
    error:
      description: Synctera error responses in API v1 implement a custom error schema.
      properties:
        code:
          description: >
            A machine-readable string that identifies the error for programmatic
            use.
          example: BAD_REQUEST_BODY
          type: string
        detail:
          description: |
            A human-readable string explaining this particular error.
          example: 'Missing required fields: first_name, dob'
          type: string
        status:
          description: HTTP status code for this response
          example: 400
          type: integer
      title: Synctera error response
      type: object
    ach_payment_config:
      description: Configuration specific to ACH payment method
      properties:
        external_account_id:
          description: The external account ID to debit via ACH
          example: 8f5b4c62-f5a0-4e68-9669-19dbc7a74d8e
          format: uuid
          type: string
        is_same_day:
          description: Whether to send as same-day ACH (default false)
          example: true
          type: boolean
        sec_code:
          description: Standard Entry Class Code (WEB, CCD, or PPD). Default is WEB.
          enum:
            - CCD
            - PPD
            - WEB
          example: WEB
          type: string
      required:
        - external_account_id
      type: object
    internal_transfer_payment_config:
      description: Configuration specific to internal transfer payment method
      properties:
        source_account_id:
          description: The internal Synctera platform account ID to transfer funds from
          example: 8f5b4c62-f5a0-4e68-9669-19dbc7a74d8e
          format: uuid
          type: string
        subtype:
          description: >-
            Transaction subtype for the internal transfer (default
            "autopay_payment")
          example: autopay_payment
          type: string
      required:
        - source_account_id
      type: object
    autopay_attempt:
      description: A single attempt to execute an autopay
      properties:
        attempted_at:
          description: Timestamp when the attempt was made
          example: '2024-01-25T14:30:00Z'
          format: date-time
          type: string
        payment_attributes:
          $ref: '#/components/schemas/autopay_payment_attributes'
        reason:
          description: Reason for failure or skip (if applicable)
          example: Insufficient funds in payment source account
          type: string
        status:
          $ref: '#/components/schemas/autopay_attempt_status'
      required:
        - attempted_at
        - status
      type: object
    autopay_attempt_status:
      description: >
        Status of an autopay attempt:

        - SUCCESS: The attempt succeeded and payment was initiated

        - FAILED: The attempt failed (e.g., insufficient funds, validation
        error)

        - SKIPPED: The attempt was skipped (e.g., no balance due, already paid)
      enum:
        - FAILED
        - SKIPPED
        - SUCCESS
      type: string
  responses:
    bad_request:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
      description: Bad request
    unauthorized:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
      description: Unauthorized
    forbidden:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
      description: Forbidden
    internal_server_error:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
      description: Internal server error
  securitySchemes:
    bearerAuth:
      bearerFormat: api_key
      scheme: bearer
      type: http

````