---
title: "Create a transaction"
method: POST
path: "/v1/transactions"
tags: ["Transactions"]
---

# Create a transaction

`POST /v1/transactions`

Creating Transactions for Future Payment Association

In the case where the transaction allows the bank slip payment method, the property `transaction_details.payment_limit_date` must be later than `transaction_details.due_date`

## SANDBOX Mode
- The SANDBOX mode enables you to generate transactions within a controlled testing environment.

- In case a transaction is initiated under the SANDBOX mode and is associated with a credit card payment, an immediate response indicating success or failure will be generated based on the provided credit card number, as detailed earlier.

- For transactions involving a PIX or BANK_SLIP payment method, utilize the `v1/transactions/{transaction_id}/settle` endpoint to simulate the payment process. This will trigger a payment notification to be sent to the `notification_url` specified within the transaction.

## Request body

- EdubankTransactionDto
  - `reference_id` string, required — Reference ID of your application VARCHAR(500)
  - `transaction_limit_date` string, required — Deadline to use this transaction for payment
  - `transaction_description` string — Description of the sale for payment
  - `sandbox` boolean, required — Defines whether the account is in test or production mode
  - `is_pinpad_transaction` boolean — Defines that a transaction is pinpad. In this case, the transaction may respect some specific parameters, such as a different pix fees
  - `allows_pix` boolean, required — Allows you to pay with pix
  - `allows_credit_card` boolean, required — Allows you to pay with credit card
  - `allows_bank_slip` boolean, required — Allows you to pay with bank slip
  - `transaction_items` EdubankTransactionItems[] — Edubank transaction items
    - `item` string, required — Item Description
    - `amount` string, required — Item amount
    - `reference` string — Item reference
    - `note` string — Item note
  - `transaction_details` EdubankTransactionDetails, required
    - `amount` number, required — Gross amount to be paid. Ex: 2010 = 20.10
    - `due_date` string, required — Due date
    - `payment_limit_date` string, required — Deadline for payment
    - `body_instructions` string[] — Up to five bank slip instructions
    - `late_fee` EdubankLateFee
      - `mode` string, required — Billing mode. Accepted values: FIXED (fixed) or PERCENTAGE (percentage)
      - `amount` string, required — Late fee amount. Ex: 2.00
    - `interest` EdubankInterest
      - `mode` string, required — Billing mode. Accepted values: DAILY_AMOUNT, DAILY_PERCENTAGE
      - `amount` string, required — Interest fee amount. Ex: 0.033
    - `discount` EdubankDiscount
      - `mode` string, required — Billing mode. Accepted values: FIXED (fixed) or PERCENTAGE (percentage)
      - `date_1` string, required — Deadline for payment to occur with discount 1. It must be before the date entered in "Due date"
      - `amount_1` number, required — Discount 1 amount. Ex: 2010 = 20.10
      - `date_2` string — Deadline for payment to occur with discount 2. It must be before the date entered in "date_1"
      - `amount_2` number — Discount 2 amount. Ex: 2010 = 20.10
      - `date_3` string — Deadline for payment to occur with discount 3. It must be before the date entered in "date_2"
      - `amount_3` number — Discount 3 amount. Ex: 2010 = 20.10
  - `split_rules` EdubankSplit[] — Split rules for the transaction.<br>All objects in the 'split_rules' array must have the same properties.<br>They must all be by value or by percentage
    - `recipient` string, required — Recipient seller_id
    - `amount` number — Value that will be split. Ex: 2010 = 20.10
    - `percentage` string, required — Split percentage
    - `processing_fee` string, required — Defines which seller should process fees. MAIN = Seller who created the transaction. RECIPIENT = Seller informed in the split.
  - `notification_url` string, required — URL that will receive a POST call when the transaction changes
  - `buyer` EdubankBuyerDto, required
    - `first_name` string, required — Buyer's first name
    - `last_name` string, required — Buyer's last name
    - `email` string — Buyer's email
    - `taxpayer_id` string, required — Buyer's CPF/CNPJ
    - `birthdate` string — Buyer's date of birth
    - `phone_number` string — Buyer's phone number
    - `address` EdubankBuyersAddress, required
      - `city` string, required — City
      - `additional_information` string — Additional address data. In this field you can inform complement, references
      - `number` string, required — Number
      - `state_code` string, required — State (UF)
      - `street` string, required — Street / Patio
      - `neighborhood` string, required — Neighborhood
      - `zip` string, required — Postal Zone / ZIP Code)
      - `country_code` 'BR', required — Buyer's country code

## Response `201`

The object has been successfully created

- EdubankTransactionCreationResponse
  - `transaction_id` string, required — Edubank transaction id
  - `amount_to_pay_today` number — Amount to be paid today. Ex: 2010 = 20.10
  - `expires_in` string — Deadline to allow a credit card or pix payment to be made with this transaction. Default: creation date
  - `status_code` number, required — Status code

## Other responses

- `400` — Client specified an invalid argument, request body or query param
- `401` — The user is unauthorized
- `403` — Authenticated user is not allowed to access this resource
- `404` — The resource was not found
- `408` — Request timeout
- `422` — Error: Unprocessable Entity
- `429` — Too many requests
- `500` — Internal server error

---

[API](https://skmtc.dev/edubank/apis/api-edubank.md) · [All operations](https://skmtc.dev/edubank/apis/api-edubank/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/edubank/api-edubank/revisions/dce4008191d4/schema)
