Synctera Card Transaction Simulations API
Requests to generate simulated transactions
Requests to generate simulated transactions
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