Getnet DocsGetnet Docs

Create Card Present Payments with Installments

This guide explains how to process installment-based payment transactions in a Card Present (CP) environment using the Getnet Regional API. Installments allow customers at a physical terminal to divide the total purchase price into smaller, equal amounts paid over time, with the transaction secured by the physical presence of the card.

Requirements

Before following the steps, you need to:

  • API Credentials: Contact the Integration Support team to get your client_id and client_secret.
  • Bearer Token: Generate your token using the Authentication endpoint.
  • Hardware Setup: Ensure your physical terminal (POS/mPOS) is registered and you have valid terminal identifiers: terminal_number, logical_code, and serial_number.

Getnet provides a Bruno/Postman Collection to help you replicate these hardware-specific use cases locally.

Payment facilitators: When Getnet enables your credential as a payment facilitator, you must also send the data.sub_merchant object on this request. Card-present payment facilitator transactions are available in Brazil. See Payment Facilitators.

Use Case Specifics: Card Verification Methods

Card Present transactions require a Cardholder Verification Method (CVM) and an Entry Mode defined in the card object.

  • Chip + PIN: Requires the hardware to capture an encrypted pin_block and a ksn (Key Serial Number).
  • Chip (No CVM): Used for low-value transactions or contactless taps that do not require a PIN.
  • Magnetic Stripe: The card is swiped, and the full track_2 data is transmitted.

Understanding Card Present Installments

In a Card Present flow, an installment payment is created as a single transaction. The breakdown and settlement are managed automatically by the card network based on the plan selected during the physical card read.

How Settlement Works

Installment settlement rules vary by region and card scheme. For a full breakdown of merchant vs. issuer financing and regional constraints, refer to the Installments Reference.

Installment Payment Process

The process involves two main steps: requesting available installment offers for the specific card inserted into the terminal and submitting the payment with the selected option.

Step 1: Request Available Installment Offers

Before initiating the payment, you must query the available installment offers for the card inserted into your hardware reader using the Get Installments endpoint.

The API expects the following details:

AttributeDescriptionRequired
amountTotal transaction amount in cents.Yes
binThe first 6 or 9 digits of the physical card read.Yes
installment_type_filterFilter results by no_interest or with_interest.No

Example Request:

curl --request POST \
  --url https://api.pre.globalgetnet.com/dpm/payments-gwproxy/v2/payments/quotes \
  --header 'authorization: Bearer <YOUR_TOKEN>' \
  --header 'content-type: application/json' \
  --data '{
  "amount": 100000,
  "bin": "515590122",
  "installment_type_filter": "no_interest"
}'

Extract the quote_id and schema from the response to use in the payment request.

Step 2: Create the Card Present Payment with Installments

Once the customer selects their installment plan on the terminal, use the Create - Authorize endpoint to process the payment.

For Card Present installment flows, you must set the data.payment.payment_method to DIRECT_CREDIT.

CP-Specific Installment Attributes

For base payment fields, refer to the Payment API Reference.

ObjectAttributeDescriptionRequired
terminalterminal_numberThe unique ID of the hardware reading the card.Yes
terminallogical_codeThe logical code assigned to the terminal.Yes
terminalserial_numberThe physical serial number of the terminal device.Yes
cardentry_modeIdentifies how the card was read (chip, magnetic_stripe, etc.).Yes
cardcardholder_verification_methodLogic for cardholder verification (online_pin or no_cvm).Yes (Chip)
cardemvThe TLV string captured from the card’s chip.Yes (Chip)
cardksnThe DUKPT Key Serial Number for PIN decryption.Yes (PIN)
additional_data.installmentquote_idThe unique identifier from the installment query response.Yes
additional_data.installmentschemaThe specific installment schema selected.Yes

Example 1: Installment Payment with Chip + Online PIN

Used when the customer inserts their card and enters a PIN on the physical terminal to pay in installments.

{
  "idempotency_key": "63c7f8ee-51a6-470d-bb76-ef762b62bfb9",
  "request_id": "daac03dc-73db-453f-9bea-b1391669d5d3",
  "order_id": "RETAIL-ORDER-202",
  "data": {
    "amount": 100000,
    "currency": "CLP",
    "customer_id": "ed2da8dd-1ba9-46e9-8501-f7987dcd9964",
    "payment": {
      "payment_method": "DIRECT_CREDIT",
      "transaction_type": "INSTALL_NO_INTEREST",
      "number_installments": 3,
      "soft_descriptor": "MINHA*LOJA",
      "terminal": {
        "terminal_number": "21000334",
        "logical_code": "21000334",
        "serial_number": "CS21000334A"
      },
      "card": {
        "entry_mode": "chip",
        "cardholder_verification_method": "online_pin",
        "seq_number": "000",
        "pin_block": "A0B6BA8D53C8D3C3",
        "ksn": "BC756011020000400001",
        "emv": "9f2701809f3303e0f8c8950580000080009f37045d21705a9f100706010a03a0b8089f2608819ba36f3f7934149f360205b782021c009c01009f1a0204849a032002279f02060000000309605F2A0200325f3401019f34031e03009f120c56495341204352454449544f5f201a2f435249535449414E2047414C494E444F2043484156455A2020",
        "aid": "A0000000031010",
        "track_2": "4508830000001759=281028102800006930"
      }
    },
    "additional_data": {
      "installment": {
        "schema": "no_interest",
        "type": "no_interest",
        "quote_id": "4a29251d-41af-41fc-ac74-fa131e215e1b"
      }
    }
  }
}

Example 2: Installment Payment with Chip (No PIN)

Used for installment payments where no PIN entry is required.

{
  "idempotency_key": "c07372cf-6d11-4980-801f-a365840a0386",
  "data": {
    "amount": 100000,
    "currency": "CLP",
    "payment": {
      "payment_method": "DIRECT_CREDIT",
      "transaction_type": "INSTALL_NO_INTEREST",
      "number_installments": 3,
      "terminal": {
        "terminal_number": "123456",
        "logical_code": "123456",
        "serial_number": "CS123456A"
      },
      "card": {
        "entry_mode": "chip",
        "cardholder_verification_method": "no_cvm",
        "emv": "9f2701809f3303e0f8c8950580000080009f37045d21705a9f100706010a03a0b8089f2608819ba36f3f7934149f360205b782021c009c01009f1a0204849a032002279f02060000000309605F2A0200325f3401019f34031e03009f120c56495341204352454449544f5f201a2f435249535449414E2047414C494E444F2043484156455A2020",
        "aid": "A0000000031010",
        "track_2": "4508830000001759=281028102800006930"
      }
    },
    "additional_data": {
      "installment": {
        "schema": "no_interest",
        "type": "no_interest",
        "quote_id": "4a29251d-41af-41fc-ac74-fa131e215e1b"
      }
    }
  }
}

Response Example

Upon success, the API returns the calculated installment breakdown.

{
  "status": "APPROVED",
  "payment_id": "053de7f9-3725-437b-bdfc-bbf3ed0acb75",
  "installments": {
    "number_installments": 3,
    "installment_value": 33334,
    "total_amount": 100002
  }
}

Step 3: Check Payment Status (Optional)

Successful installment payments will return a status of APPROVED. You can verify the transaction status at any time using the Get Transaction endpoint.

Next Steps