openapi: 3.0.3 info: description: '
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.
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, contact us.
' 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