Synctera Card Transaction Simulations API

Requests to generate simulated transactions

OpenAPI Specification

synctera-card-transaction-simulations-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  description: '<h2>Let''s build something great.</h2><p>Welcome to the official reference documentation for Synctera APIs. Our APIs are the best way to automate your company''s banking needs and are designed to be easy to understand and implement.</p><p>We''re continuously growing this library and what you see here is just the start, but if you need something specific or have a question, <a class=''text-blue-600'' href=''https://synctera.com/contact'' 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 Accounts Card Transaction Simulations API
  version: 0.20.0
servers:
- description: Production
  url: https://api.synctera.com/v0
- description: Sandbox (no real world financial impact)
  url: https://api-sandbox.synctera.com/v0
security:
- bearerAuth: []
tags:
- description: Requests to generate simulated transactions
  name: Card Transaction Simulations
paths:
  /cards/transaction_simulations/authorization:
    summary: Simulate Authorization
    post:
      description: 'Simulate an `authorization` type transaction by including the `card_token` and other authorization details in your request.

        '
      operationId: simulateAuthorization
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/auth_request_model'
        description: Authorization details
        required: false
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/simulation_response_model'
          description: Success
        '400':
          $ref: '#/components/responses/bad_request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '500':
          $ref: '#/components/responses/internal_server_error'
      summary: Simulate authorization
      tags:
      - Card Transaction Simulations
      x-external: true
  /cards/transaction_simulations/authorization/advice:
    summary: Simulate Authorization Advice
    post:
      description: 'An authorization advice allows an amount to be decreased after the authorization. This endpoint allows you to simulate post-swipe adjustments.


        Simulate an `authorization.advice` type transaction by including the `original_transaction_token` and other authorization details in your request.

        '
      operationId: simulateAuthorizationAdvice
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/authorization_advice_model'
        description: Authorization advice details
        required: false
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/simulation_response_model'
          description: Success
        '400':
          $ref: '#/components/responses/bad_request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '500':
          $ref: '#/components/responses/internal_server_error'
      summary: Simulate authorization advice
      tags:
      - Card Transaction Simulations
      x-external: true
  /cards/transaction_simulations/clearing:
    summary: Simulate Clearing or Refund
    post:
      description: 'Simulate an `authorization.clearing` type transaction by including the `original_transaction_token` and `amount` in your request. To simulate a refund type transaction, set the `is_refund` field to true.

        '
      operationId: simulateClearing
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/clearing_model'
        description: Transaction clearing or refund details
        required: false
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/simulation_response_model'
          description: Success
        '400':
          $ref: '#/components/responses/bad_request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '500':
          $ref: '#/components/responses/internal_server_error'
      summary: Simulate clearing or refund
      tags:
      - Card Transaction Simulations
      x-external: true
  /cards/transaction_simulations/financial:
    summary: Simulate Financial
    post:
      description: 'A "financial" is a transaction message class that includes ATM transactions, PIN-debit transactions, and balance inquiries.


        Simulate a `pindebit` type transaction by including the `card_token` and `amount` in your request.

        '
      operationId: simulateFinancial
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/financial_request_model'
        description: Financial details
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/simulation_response_model'
          description: Success
        '400':
          $ref: '#/components/responses/bad_request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '500':
          $ref: '#/components/responses/internal_server_error'
      summary: Simulate financial
      tags:
      - Card Transaction Simulations
      x-external: true
  /cards/transaction_simulations/financial/advice:
    summary: Simulate Financial Advice
    post:
      description: 'Simulate a financial advice by including the `original_transaction_token` and other authorization details in JSON format in the body of the request.

        '
      operationId: simulateFinancialAdvice
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/authorization_advice_model'
        description: Financial advice details
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/simulation_response_model'
          description: Success
        '400':
          $ref: '#/components/responses/bad_request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '500':
          $ref: '#/components/responses/internal_server_error'
      summary: Simulate financial advice
      tags:
      - Card Transaction Simulations
      x-external: true
  /cards/transaction_simulations/financial/balance_inquiry:
    summary: Simulate Balance Inquiry
    post:
      description: 'Simulate a `pindebit.balanceinquiry` type transaction by sending a POST request to the `/simulate/financial/balanceinquiry` endpoint.

        '
      operationId: simulateBalanceInquiry
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/balance_inquiry_request_model'
        description: Balance inquiry details
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/simulation_response_model'
          description: Success
        '400':
          $ref: '#/components/responses/bad_request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '500':
          $ref: '#/components/responses/internal_server_error'
      summary: Simulate balance inquiry
      tags:
      - Card Transaction Simulations
      x-external: true
  /cards/transaction_simulations/financial/original_credit:
    summary: Simulate OCT
    post:
      description: 'This Original Credit Transaction (OCT) enables the cardholder to receive funds on the specified card from an external source via the card network. Use this endpoint to simulate a transaction that is similar to a wire transfer and not linked to any purchase.


        Simulate an OCT by including the `card_token`, `amount`, `mid`, and `type` in your request.

        '
      operationId: simulateOriginalCredit
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/original_credit_request_model'
        description: OCT details
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/simulation_response_model'
          description: Success
        '400':
          $ref: '#/components/responses/bad_request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '500':
          $ref: '#/components/responses/internal_server_error'
      summary: Simulate OCT
      tags:
      - Card Transaction Simulations
      x-external: true
  /cards/transaction_simulations/financial/withdrawal:
    summary: Simulate ATM Withdrawal
    post:
      description: 'Simulate a `pindebit.atm.withdrawal` type transaction by including the `card_token` and `amount` in your request.

        '
      operationId: simulateWithdrawal
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/withdrawal_request_model'
        description: ATM withdrawal details
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/simulation_response_model'
          description: Success
        '400':
          $ref: '#/components/responses/bad_request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '500':
          $ref: '#/components/responses/internal_server_error'
      summary: Simulate ATM withdrawal
      tags:
      - Card Transaction Simulations
      x-external: true
  /cards/transaction_simulations/reversal:
    summary: Simulate Reversal
    post:
      description: 'A reversal releases the hold that was placed on account funds by an authorization, thus returning the funds to the account.


        Simulate an `authorization.reversal` type transaction by including the `original_transaction_token` and `amount` in your request.

        '
      operationId: simulateReversal
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/reversal_model'
        description: Reversal details
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/simulation_response_model'
          description: Success
        '400':
          $ref: '#/components/responses/bad_request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '500':
          $ref: '#/components/responses/internal_server_error'
      summary: Simulate reversal
      tags:
      - Card Transaction Simulations
      x-external: true
components:
  schemas:
    card_options:
      properties:
        billing_address:
          $ref: '#/components/schemas/billing_address'
        card_present:
          default: false
          type: boolean
        cvv:
          maxLength: 3
          minLength: 0
          type: string
        expiration:
          maxLength: 4
          minLength: 4
          type: string
      type: object
    auth_request_model:
      properties:
        amount:
          description: The amount of the transaction in the smallest whole denomination of the applicable currency (eg. For USD use cents)
          type: integer
        card_acceptor:
          $ref: '#/components/schemas/card_acceptor_model'
        card_id:
          format: uuid
          type: string
        card_options:
          $ref: '#/components/schemas/card_options'
        cash_back_amount:
          type: integer
        is_pre_auth:
          default: false
          type: boolean
        mid:
          maxLength: 50
          minLength: 1
          type: string
        network_fees:
          items:
            $ref: '#/components/schemas/network_fee_model'
          type: array
        pin:
          maxLength: 50
          minLength: 1
          type: string
        transaction_options:
          $ref: '#/components/schemas/transaction_options'
      required:
      - amount
      - card_id
      - mid
      type: object
    clearing_model:
      example:
        amount: 80
        card_acceptor:
          address: address
          city: city
          country: country
          ecommerce_security_level_indicator: ecommerce_security_level_indicator
          mcc: mcc
          name: name
          partial_approval_capable: false
          state: state
          zip: zip
        force_post: false
        is_refund: false
        mid: mid
        network_fees:
        - amount: 123
          credit_debit: C
          type: ISSUER_FEE
        - amount: 123
          credit_debit: C
          type: ISSUER_FEE
        original_transaction_id: original_transaction_id
      properties:
        amount:
          description: The amount of the transaction in the smallest whole denomination of the applicable currency (eg. For USD use cents)
          type: integer
        card_acceptor:
          $ref: '#/components/schemas/card_acceptor_model'
        force_post:
          default: false
          type: boolean
        is_refund:
          default: false
          type: boolean
        mid:
          maxLength: 50
          minLength: 1
          type: string
        network_fees:
          items:
            $ref: '#/components/schemas/network_fee_model'
          type: array
        original_transaction_id:
          format: uuid
          type: string
      required:
      - amount
      - original_transaction_id
      type: object
    withdrawal_request_model:
      properties:
        account_type:
          enum:
          - checking
          - savings
          - credit
          type: string
        amount:
          description: The amount of the transaction in the smallest whole denomination of the applicable currency (eg. For USD use cents)
          type: integer
        card_acceptor:
          $ref: '#/components/schemas/card_acceptor_model'
        card_id:
          format: uuid
          type: string
        mid:
          maxLength: 50
          minLength: 1
          type: string
        pin:
          maxLength: 15
          minLength: 1
          type: string
      required:
      - amount
      - card_id
      - mid
      type: object
    billing_address:
      properties:
        address:
          type: string
        compressed_zip:
          type: string
        first_name:
          type: string
        last_name:
          type: string
        zip:
          type: string
      type: object
    reversal_model:
      example:
        amount: 80
        find_original_window_days: 6
        is_advice: false
        network_fees:
        - amount: 123
          credit_debit: C
          type: ISSUER_FEE
        - amount: 123
          credit_debit: C
          type: ISSUER_FEE
        original_transaction_id: original_transaction_id
      properties:
        amount:
          description: The amount of the transaction in the smallest whole denomination of the applicable currency (eg. For USD use cents)
          type: integer
        find_original_window_days:
          format: int32
          type: integer
        is_advice:
          default: false
          type: boolean
        network_fees:
          items:
            $ref: '#/components/schemas/network_fee_model'
          type: array
        original_transaction_id:
          format: uuid
          type: string
      required:
      - amount
      - original_transaction_id
      type: object
    financial_request_model:
      properties:
        amount:
          description: The amount of the transaction in the smallest whole denomination of the applicable currency (eg. For USD use cents)
          type: integer
        card_acceptor:
          $ref: '#/components/schemas/card_acceptor_model'
        card_id:
          format: uuid
          type: string
        cash_back_amount:
          description: Cash back amount in the smallest whole denomination of the applicable currency (eg. For USD use cents)
          type: integer
        is_pre_auth:
          default: false
          type: boolean
        mid:
          maxLength: 50
          minLength: 1
          type: string
        pin:
          maxLength: 15
          minLength: 1
          type: string
        transaction_options:
          $ref: '#/components/schemas/transaction_options'
      required:
      - amount
      - card_acceptor
      - card_id
      - mid
      type: object
    original_credit_request_model:
      properties:
        amount:
          description: The amount of the transaction in the smallest whole denomination of the applicable currency (eg. For USD use cents)
          type: integer
        card_acceptor:
          $ref: '#/components/schemas/card_acceptor_model'
        card_id:
          format: uuid
          type: string
        mid:
          maxLength: 50
          minLength: 1
          type: string
        screening_score:
          type: string
        sender_data:
          $ref: '#/components/schemas/original_credit_sender_data'
        transactionPurpose:
          type: string
        type:
          enum:
          - account_to_account
          - person_to_person
          - prepaid
          - wallet_transfer
          - money_transfer_by_bank
          - business_to_business
          - disbursement
          - government_disbursement
          - gambling_payout
          - loyalty
          - merchant_disbursement
          - online_gambling_payout
          - pension_disbursement
          - prepaid_loads
          - card_bill_payment
          - bill_payment
          - cash_claim
          - cash_in
          - cash_out
          - mobile_air_time_payment
          - money_transfer_by_merchant
          - face_to_face_merchant_payment
          - government_payment
          - payments_goods_services
          type: string
      required:
      - amount
      - card_id
      - mid
      - type
      type: object
    card_acceptor_model:
      example:
        address: address
        city: city
        country: country
        ecommerce_security_level_indicator: ecommerce_security_level_indicator
        mcc: mcc
        name: name
        partial_approval_capable: false
        state: state
        zip: zip
      properties:
        address:
          maxLength: 255
          minLength: 0
          type: string
        city:
          maxLength: 40
          minLength: 0
          type: string
        country:
          type: string
        ecommerce_security_level_indicator:
          type: string
        mcc:
          maxLength: 5
          minLength: 0
          type: string
        name:
          maxLength: 50
          minLength: 0
          type: string
        partial_approval_capable:
          default: false
          type: boolean
        state:
          type: string
        zip:
          maxLength: 10
          minLength: 0
          type: string
      type: object
    network_fee_model:
      example:
        amount: 123
        credit_debit: C
        type: ISSUER_FEE
      properties:
        amount:
          description: The amount of the fee in the smallest whole denomination of the applicable currency (eg. For USD use cents)
          type: integer
        credit_debit:
          description: C = credit; D = debit
          enum:
          - C
          - D
          type: string
        type:
          enum:
          - ISSUER_FEE
          - SWITCH_FEE
          - PINDEBIT_ASSOC_FEE
          - ACQUIRER_FEE
          - INTERCHANGE_FEE
          - CUR_CONV_CARDHOLDER_FEE
          - CUR_CONV_ISSUER_FEE
          - CROSS_BORDER_ISSUER_FEE
          type: string
      required:
      - type
      - amount
      type: object
    authorization_advice_model:
      properties:
        amount:
          description: The amount of the transaction in the smallest whole denomination of the applicable currency (eg. For USD use cents)
          type: integer
        network_fees:
          items:
            $ref: '#/components/schemas/network_fee_model'
          type: array
        original_transaction_id:
          format: uuid
          type: string
        transaction_options:
          $ref: '#/components/schemas/transaction_options'
      required:
      - amount
      - original_transaction_id
      type: object
    transaction_options:
      properties:
        additional_data:
          type: string
        card_expiration_date_yymm:
          type: string
        database_transaction_timeout:
          format: int32
          type: integer
        encryption_key_id:
          type: string
        is_async:
          default: false
          type: boolean
        pre_auth_time_limit:
          type: string
        send_expiration_date:
          default: false
          type: boolean
        send_track_data:
          default: false
          type: boolean
        transaction_id:
          type: string
        transaction_timeout_threshold_seconds:
          format: int64
          type: integer
      type: object
    error:
      properties:
        detail:
          description: a human-readable string explaining this particular error
          example: 'missing required fields: first_name, dob'
          type: string
        status:
          description: the HTTP status code for this response
          example: 400
          type: integer
        title:
          description: a human-readable string for this general category of error
          example: Bad Request Body
          type: string
        type:
          description: a URI that identifies this general category of error
          example: https://dev.synctera.com/errors/bad-request-body
          type: string
      title: Standard error response (RFC 7807 problem report)
      type: object
    original_credit_sender_data:
      properties:
        funding_source:
          enum:
          - credit
          - debit
          - prepaid
          - deposit_account
          - cash
          - mobile_money_payment
          - non_visa_credit
          type: string
        sender_account_number:
          type: string
        sender_account_type:
          enum:
          - other
          - rtn_bank_account
          - iban
          - card_account
          - email
          - phone_number
          - bank_account_number_and_identification_code
          - wallet_id
          - social_network_id
          type: string
        sender_address:
          type: string
        sender_city:
          type: string
        sender_country:
          type: string
        sender_name:
          type: string
        sender_reference_number:
          type: string
        sender_state:
          type: string
        transaction_purpose:
          enum:
          - family_support
          - labor_transfers
          - travel
          - education
          - medical_treatment
          - emergency_need
          - savings
          - gifts
          - other
          - salary
          - lending
          - crypto_currency
          type: string
        unique_transaction_reference_number:
          maxLength: 17
          minLength: 1
          type: string
      required:
      - funding_source
      type: object
    simulation_response_model:
      type: object
    balance_inquiry_request_model:
      properties:
        account_type:
          enum:
          - checking
          - savings
          - credit
          type: string
        card_acceptor:
          $ref: '#/components/schemas/card_acceptor_model'
        card_id:
          format: uuid
          type: string
        mid:
          maxLength: 50
          minLength: 1
          type: string
        network_fees:
          items:
            $ref: '#/components/schemas/network_fee_model'
          type: array
        pin:
          maxLength: 15
          minLength: 1
          type: string
      required:
      - account_type
      - card_acceptor
      - card_id
      - mid
      type: object
  responses:
    bad_request:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/error'
      description: BadRequest
    forbidden:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/error'
      description: Forbidden error
    internal_server_error:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/error'
      description: Internal server error
    unauthorized:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/error'
      description: Unauthorized
  securitySchemes:
    bearerAuth:
      bearerFormat: api_key
      scheme: bearer
      type: http
x-readme:
  explorer-enabled: true
  proxy-enabled: true
  samples-enabled: true