The API supports 1-pass payments (Purchase) where the authorization and capture happen in a single request as well 2-pass payments (Auth/Capture) where the authorization and capture are two separate requests.

Requests to create new payments are submitted as POST requests to the /payments path.

1-pass Payment (Purchase)
This is the default payment type created.

POST /payments
{
  "amount": 100,
  "terminal": {"gateway_id": "YOUR_GW_ID"},
  "payment_method": {
    "credit_card": {
      "cardholder": "Bob Jones",
      "number": "4111111111111111",
      "expiry_month": "02",
      "expiry_year": "2026"
    }
  }
}

2-pass Payment (PreAuth, or Authorization)
In order to prevent the capture, you just need to send "capture": false in the request body.

POST /payments
{
  "capture": false,
  "amount": 100,
  "terminal": {"gateway_id": "YOUR_GW_ID"},
  "payment_method": {
    "credit_card": {
      "cardholder": "Bob Jones",
      "number": "4111111111111111",
      "expiry_month": "02",
      "expiry_year": "2026"
    }
  }
}

Once a payment has been created, a payment_id will be returned in the response which can then be used for capture, refunds or voids.