---
title: "Pay"
method: POST
path: "/v2/direct/pay"
---

# Pay

`POST /v2/direct/pay`

## Request body

- object
  - `sessionId` string, required — A session ID, is a unique identifier that a server generates as part of the create session API call and assigns to a merchant transaction for the duration of the session (15 min).
  - `orderId` string, required — This is a unique identifier for this order to discern it from others order you created. If orderId is not sent with the request, an orderId is created by the server and returned in the response. The orderid can be used to refer to this order in subsequent transactions and in retrieving meta data about the order. The orderId must always be unique for every order created under your merchant profile. This must be a valid GUID.
  - `threeDSecureId` string, required — 3D Secure ID of the order created through the Authenticate Payer operation.
  - `paymentMethod` object, required — Details of the card used for the purchase.
    - `cardholderName` string, required — Name on card
    - `cardNumber` string, required — Valid card number, as a string without any separators.
    - `cvv` string, required — Card Verification Value. This code is usually composed of a three-digit number provided available at the back of the card or 4 digit number above the card number on the right side on the front of the card
    - `expiryDate` object — Expiry month and year of the card
      - `month` string, required — 2 digit number for the month
      - `year` string, required — 2-digit year code
  - `source` 'HPP' | 'MobileApp' | 'DirectAPI' — Source of capturing the transaction. Use "DirectAPI" for this call.
  - `paymentOperation` 'PreAuthorize' | 'AuthorizeCapture' | 'Pay' — Type of payment operation that is carried out with this transaction
  - `customerPhoneNumber` string — Customer's phone number eg: "511111111". If phoneCountryCode is passed, phoneNumber must be passed.
  - `customerPhoneCountryCode` string — Country code of customer's phone number eg: "+971". If phoneNumber is passed, phoneCountryCode must be passed
  - `ReturnUrl` string — The URL where the client will be automatically redirected to once the Authentication process has been successful. Must be dynamic, based on the order being created. Must be a URL with a HTTPS protocol.

## Response `200`

200

- object
  - `order` object
    - `orderId` string
    - `amount` integer
    - `tipAmount` integer
    - `convenienceFeeAmount` integer
    - `totalAmount` integer
    - `settleAmount` integer
    - `currency` string
    - `settleCurrency` string
    - `language` string
    - `detailedStatus` string
    - `status` string
    - `threeDSecureId` string
    - `merchantId` string
    - `merchantPublicKey` string
    - `parentOrderId` unknown
    - `merchantReferenceId` unknown
    - `mcc` string
    - `callbackUrl` string
    - `billingAddress` unknown
    - `shippingAddress` unknown
    - `returnUrl` string
    - `cardOnFile` boolean
    - `tokenId` unknown
    - `initiatedBy` string
    - `agreementId` unknown
    - `agreementType` unknown
    - `amountVariability` unknown
    - `paymentOperation` string
    - `custom` unknown
    - `paymentIntent` unknown
    - `restrictPaymentMethods` boolean
    - `paymentMethods` unknown
    - `platform` unknown
    - `statementDescriptor` unknown
    - `description` unknown
    - `setDefaultPaymentMethod` boolean
    - `recurrence` unknown
    - `transactions` object[]
      - `transactionId` string
      - `type` string
      - `status` string
      - `amount` integer
      - `currency` string
      - `source` string
      - `authorizationCode` unknown
      - `rrn` unknown
      - `stan` string
      - `paymentMethod` object
        - `type` string
        - `brand` string
        - `cardholderName` string
        - `maskedCardNumber` string
        - `wallet` unknown
        - `expiryDate` object
          - `month` integer
          - `year` integer
        - `sameBank` boolean
        - `issuingCountry` unknown
        - `fundingType` unknown
        - `issuingBank` unknown
        - `cardCategory` unknown
      - `codes` object
        - `acquirerCode` unknown
        - `acquirerMessage` unknown
        - `responseCode` string
        - `responseMessage` string
        - `detailedResponseCode` string
        - `detailedResponseMessage` string
      - `authenticationDetails` object
        - `acsEci` string
        - `authenticationToken` string
        - `paResStatus` unknown
        - `veResEnrolled` unknown
        - `xid` string
        - `accountAuthenticationValue` unknown
        - `proofXml` unknown
        - `threeDSecureServerTransactionId` unknown
        - `acsTransactionId` string
        - `directoryServerId` string
        - `dsTransactionId` string
        - `methodCompleted` boolean
        - `methodSupported` string
        - `protocolVersion` string
        - `requestorId` string
        - `requestorName` string
        - `transactionStatus` string
        - `statusReasonCode` unknown
        - `acsReferenceNumber` unknown
        - `dsReferenceNumber` unknown
      - `postilionDetails` unknown
      - `terminalDetails` unknown
      - `meezaDetails` unknown
      - `bnplDetails` unknown
      - `bankInstallmentDetails` unknown
      - `correlationId` string
      - `parentTransactionId` unknown
      - `paymentAttemptId` string
      - `acquirer` object
        - `additionalResponseData` unknown
        - `batch` unknown
        - `customData` unknown
        - `date` unknown
        - `id` unknown
        - `merchantId` string
        - `settlementDate` unknown
        - `time` unknown
        - `timeZone` unknown
        - `transactionId` unknown
      - `authorizationResponse` object
        - `autoExpiry` unknown
        - `avsCode` unknown
        - `cardLevelIndicator` unknown
        - `cardSecurityCodeError` unknown
        - `cardSecurityCodePresenceIndicator` unknown
        - `commercialCard` unknown
        - `commercialCardIndicator` unknown
        - `financialNetworkCode` unknown
        - `financialNetworkDate` unknown
        - `marketSpecificData` unknown
        - `merchantAdviceCode` unknown
        - `paySvcData` unknown
        - `posData` unknown
        - `posEntryMode` unknown
        - `posEntryModeChanged` unknown
        - `processingCode` unknown
        - `responseCode` unknown
        - `date` unknown
        - `responseMessage` unknown
        - `returnAci` unknown
        - `time` unknown
        - `timeZone` unknown
        - `trackQuality` unknown
        - `transactionIdentifier` unknown
        - `transactionIntegrityClass` unknown
        - `validationCode` unknown
        - `vpasResponse` unknown
      - `madaDetails` unknown
      - `refundType` unknown
      - `refundStatus` unknown
      - `isExtensionComplete` unknown
      - `extensionDate` string
      - `deviceId` string
      - `createdDate` string
      - `createdBy` string
      - `updatedDate` string
      - `updatedBy` string
    - `orderItems` unknown[]
      - unknown
    - `isTokenPayment` boolean
    - `paymentMethod` object
      - `type` string
      - `brand` string
      - `cardholderName` string
      - `maskedCardNumber` string
      - `wallet` unknown
      - `expiryDate` object
        - `month` integer
        - `year` integer
      - `sameBank` boolean
      - `issuingCountry` unknown
      - `fundingType` unknown
      - `issuingBank` unknown
      - `cardCategory` unknown
    - `totalAuthorizedAmount` integer
    - `totalCapturedAmount` integer
    - `totalRefundedAmount` integer
    - `orderSource` string
    - `paymentBrands` string[]
    - `multiCurrency` object
      - `authCurrency` string
      - `authAmount` integer
      - `settleCurrency` string
      - `settleAmount` integer
      - `exchangeRate` unknown
      - `exchangeFeePercentage` unknown
      - `exchangeFeeAmount` unknown
    - `isTest` boolean
    - `cashOnDelivery` boolean
    - `amountToCollect` unknown
    - `isDownPayment` boolean
    - `exchangeRate` unknown
    - `exchangeFeePercentage` unknown
    - `exchangeFeeAmount` unknown
    - `deviceId` string
    - `gatewayDecision` string
    - `subscriptionId` unknown
    - `subscriptionOccurrenceId` unknown
    - `refundType` unknown
    - `refundStatus` unknown
    - `bankId` string
    - `isPayWithToken` boolean
    - `customerName` unknown
    - `customerEmail` unknown
    - `createCustomer` boolean
    - `customerReferenceId` unknown
    - `customerId` unknown
    - `customerPhoneNumber` unknown
    - `customerPhoneCountryCode` unknown
    - `customerCustomValue` unknown
    - `airLine` unknown
    - `createdDate` string
    - `createdBy` string
    - `updatedDate` string
    - `updatedBy` string
  - `responseMessage` string
  - `detailedResponseMessage` string
  - `language` string
  - `responseCode` string
  - `detailedResponseCode` string

## Other responses

- `400` — 400

---

[API](https://skmtc.dev/geidea/apis/checkout-v2.md) · [All operations](https://skmtc.dev/geidea/apis/checkout-v2/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/geidea/checkout-v2/revisions/873e534eeb01/schema)
