---
title: "Process a prepare Debit"
method: POST
path: "/transaction/{apiKey}/prepare-debit"
tags: ["prepare-transaction"]
---

# Process a prepare Debit

`POST /transaction/{apiKey}/prepare-debit`

## Request

- Base URL: `https://gateway.tillpayments.com/api/v3`
- URL: `https://gateway.tillpayments.com/api/v3/transaction/{apiKey}/prepare-debit`
- Auth: HTTP basic
- TypeScript: <https://skmtc.dev/tillpayments/apis/till-payments-gateway/docs/transaction/:apiKey/prepare-debit/post.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `apiKey` string, required

## Request body

- PrepareDebitRequest
  - `merchantTransactionId` string
  - `additionalId1` string
  - `additionalId2` string
  - `extraData` ExtraData
  - `merchantMetaData` string
  - `referenceUuid` string
  - `amount` string, required
  - `currency` string, required
  - `successUrl` string
  - `cancelUrl` string
  - `errorUrl` string
  - `callbackUrl` string
  - `transactionToken` string
  - `description` string
  - `items` object[]
    - `identification` string
    - `name` string
    - `description` string
    - `quantity` union
      - integer
      - string
    - `price` union
      - number
      - string
    - `currency` string
    - `l2l3Data` object
      - `type` string
      - `unit` string
      - `unitPrice` string
      - `discount` string
      - `discountRate` string
      - `shippingAmount` string
      - `taxAmount` string
      - `taxRate` string
      - `commodityCode` string
      - `taxDetails` object[]
        - `type` string
        - `amount` string
        - `rate` string
        - `code` string
        - `taxId` string
        - `applied` string
        - `exemptionCode` string
    - `extraData` ExtraData
  - `withRegister` boolean
  - `transactionIndicator` 'SINGLE' | 'INITIAL' | 'RECURRING' | 'FIRST-CARDONFILE' | 'CARDONFILE' | 'CARDONFILE-MERCHANT-INITIATED'
  - `customer` Customer
    - `identification` string
    - `firstName` string
    - `lastName` string
    - `birthDate` string
    - `gender` 'M' | 'F'
    - `billingAddress1` string
    - `billingAddress2` string
    - `billingCity` string
    - `billingPostcode` string
    - `billingState` string
    - `billingCountry` string
    - `billingPhone` string
    - `shippingFirstName` string
    - `shippingLastName` string
    - `shippingCompany` string
    - `shippingAddress1` string
    - `shippingAddress2` string
    - `shippingCity` string
    - `shippingPostcode` string
    - `shippingState` string
    - `shippingCountry` string
    - `shippingPhone` string
    - `company` string
    - `email` string
    - `emailVerified` boolean
    - `ipAddress` string
    - `nationalId` string
    - `extraData` ExtraData
    - `paymentData` union
      - IbanData
        - `ibanData` object
          - `iban` string
          - `bic` string
          - `mandateId` string
          - `mandateDate` string
      - WalletData
        - `walletData` object
          - `walletReferenceId` string
          - `walletOwner` string
          - `walletType` string
  - `schedule` Schedule
    - `amount` string, required
    - `currency` string, required
    - `periodLength` integer, required
    - `periodUnit` 'DAY' | 'WEEK' | 'MONTH' | 'YEAR', required
    - `startDateTime` string
    - `merchantMetaData` string
    - `callbackUrl` string
  - `customerProfileData` CustomerProfileData
    - `profileGuid` string
    - `customerIdentification` string
    - `paymentToken` string
    - `markAsPreferred` boolean
  - `threeDSecureData` ThreeDSecureData
    - `3dsecure` 'OFF' | 'OPTIONAL' | 'MANDATORY'
    - `schemeId` 'CB' | 'Eftpos'
    - `channel` '01' | '02' | '03'
    - `authenticationIndicator` '01' | '02' | '03' | '04' | '05' | '06'
    - `cardholderAuthenticationMethod` '01' | '02' | '03' | '04' | '05' | '06'
    - `cardholderAuthenticationDateTime` string
    - `cardHolderAuthenticationData` string
    - `challengeIndicator` '01' | '02' | '03' | '04' | '05' | '06' | '07' | '08' | '09'
    - `priorReference` string
    - `priorAuthenticationMethod` '01' | '02' | '03' | '04'
    - `priorAuthenticationDateTime` string
    - `priorAuthenticationData` string
    - `cardholderAccountType` '01' | '02' | '03' | '04'
    - `cardholderAccountAgeIndicator` '01' | '02' | '03' | '04' | '05'
    - `cardholderAccountDate` string
    - `cardholderAccountChangeIndicator` '01' | '02' | '03' | '04'
    - `cardholderAccountLastChange` string
    - `cardholderAccountPasswordChangeIndicator` '01' | '02' | '03' | '04' | '05'
    - `cardholderAccountLastPasswordChange` string
    - `shippingAddressUsageIndicator` '01' | '02' | '03' | '04'
    - `shippingAddressFirstUsage` string
    - `transactionActivityDay` number
    - `transactionActivityYear` number
    - `addCardAttemptsDay` number
    - `purchaseCountSixMonths` number
    - `suspiciousAccountActivityIndicator` '01' | '02'
    - `shippingNameEqualIndicator` '01' | '02'
    - `paymentAccountAgeIndicator` '01' | '02' | '03' | '04' | '05'
    - `paymentAccountAgeDate` string
    - `billingAddressLine3` string
    - `shippingAddressLine3` string
    - `billingShippingAddressMatch` 'Y' | 'N'
    - `homePhoneCountryPrefix` string
    - `homePhoneNumber` string
    - `mobilePhoneCountryPrefix` string
    - `mobilePhoneNumber` string
    - `workPhoneCountryPrefix` string
    - `workPhoneNumber` string
    - `purchaseInstalData` number
    - `shipIndicator` '01' | '02' | '03' | '04' | '05' | '06' | '07'
    - `deliveryTimeframe` '01' | '02' | '03' | '04'
    - `deliveryEmailAddress` string
    - `reorderItemsIndicator` '01' | '02'
    - `preOrderPurchaseIndicator` '01' | '02'
    - `preOrderDate` string
    - `giftCardAmount` number
    - `giftCardCurrency` string
    - `giftCardCount` number
    - `purchaseDate` string
    - `recurringExpiry` string
    - `recurringFrequency` number
    - `transType` '01' | '03' | '10' | '11' | '28'
    - `exemptionIndicator` '01' | '02' | '03' | '04' | '05' | '06' | '07'
    - `threeRIIndicator` '01' | '02' | '03' | '04' | '05' | '06' | '07' | '08' | '09' | '10' | '11' | '12'
    - `browserChallengeWindowSize` '01' | '02' | '03' | '04' | '05'
    - `browserAcceptHeader` string
    - `browserIpAddress` string
    - `browserJavaEnabled` boolean
    - `browserLanguage` string
    - `browserColorDepth` union
      - integer
      - '1' | '4' | '8' | '15' | '16' | '24' | '30' | '32' | '48'
    - `browserScreenHeight` union
      - number
      - string
    - `browserScreenWidth` union
      - number
      - string
    - `browserTimezone` union
      - integer
      - string
    - `browserUserAgent` string
    - `browserPlatform` string
    - `sdkInterface` '01' | '02' | '03'
    - `sdkUiType` string
    - `sdkAppID` string
    - `sdkEncData` string
    - `sdkEphemPubKey` string
    - `sdkMaxTimeout` number
    - `sdkReferenceNumber` string
    - `sdkTransID` string
  - `language` string

## Response `200`

Prepare Debit response

- PrepareDebitResponse
  - `success` boolean
  - `error` string

## Changes

- **2026-11-07** `42c40d316a83`: 1 warning, 2 info
  - changed the pattern of the request property `threeDSecureData/browserTimezone/anyOf[subschema #2]/` from `^[\-]?\d+$` to `^[\-\+]?\d{1,4}$`
  - added the new optional request property `customerProfileData/paymentToken`
  - added the new `Eftpos` enum value to the request property `threeDSecureData/schemeId`

[Operation history](https://skmtc.dev/tillpayments/apis/till-payments-gateway/changes/transaction/:apiKey/prepare-debit/post.md)

---

[API](https://skmtc.dev/tillpayments/apis/till-payments-gateway.md) - [All operations](https://skmtc.dev/tillpayments/apis/till-payments-gateway/llms.txt) - [OpenAPI document](https://skmtc.dev/tillpayments/apis/till-payments-gateway/revisions/42c40d316a83?raw)
