---
title: "authorize"
method: POST
path: "/v1/Payment/authorize/json"
tags: ["Card Payments"]
---

# authorize

`POST /v1/Payment/authorize/json`

## Request

- Base URL: `https://payment.pay.nl`
- URL: `https://payment.pay.nl/v1/Payment/authorize/json`
- Auth: HTTP basic

API handles the calls for starting and completing the transaction in one go. The
merchant calls this API with the same parameters as the Transaction Start V16 with
the necessary card data appended to it. For existing transactions the orderId and
entranceCode can be passed on instead of the transaction details.

Note: this API can only handle:
1. NON 3DS transactions - no fallback to 3DS auth
2. 3DS transactions where the merchant provides the 3DS data (using 3rd party 3DSecure provider)
3. 3DS transactions where the merchant adds the transaction ID of the integrated 3DSecure provider
4. Wallet transactions (e.g. Apple Pay / Google Pay)

## Request body

- Authorize
  - `transaction` Transaction, required
    - `type` 'POS' | 'CIT' | 'MIT' | 'MOTO' | 'ECOM', required: Defines the type of the transaction. Possible values are: `CIT` = Customer initiated simple e-com transaction, `MIT` = Merchant initiated transaction, `MOTO` = Customer initiated payment where card number entered manually, `POS` = Point of sale, `ECOM`
    - `serviceId` Id, required (unresolved $ref)
    - `description` string: The description of the transaction.
    - `reference` string: The merchants reference for the transaction, eg. an order number or invoice id.
    - `amount` integer, required: The amount in cents.
    - `currency` string: The currency in ISO-4217 format, e.g.: EUR, USD, CHF
    - `ipAddress` string, required: An ip address
    - `language` string: The language code consisting of 2 uppercase letters.
    - `exchangeUrl` string, uri: The URL of the exchange that needs to be called.
    - `expireDate` number: Timestamp of the date the transaction should expire.
  - `options` Options
    - `tokenization` -1 | 0 | 1: Include the `tokenize` option in the options array and set the value to override the default settings for this payment. Possible values are: `-1` = disable, `1` = enable or `0` = use default.
  - `payment` PaymentAuthorize, required: Afhankelijk van de keuze voor CSE of CARD, kies hier de bijbehorende data
    - `method` 'cse' | 'card' | 'token', required: Defines the method in which the card details are submitted. Choose CSE when submitting the details in `cse` format, `card` when submitting plain card data. Note: the corresponding array must be included in the request.
    - `cse` Cse
      - `data` string, required: The encrypted card details, base64 encoded. See the `card` option for the fields that should be part of the encrypted card data.
      - `identifier` string, required: ID of the public key that is used to encrypt the card details.
    - `card` Card
      - `number` string, required: The customer's card number
      - `expire_month` string, required: Expire month of the card in MM format (2 digits).
      - `expire_year` string, required: Year the card expires in YY format (2 digits).
      - `cvc` string: Card verification code / safekey code of the card used
      - `name` string, required: The name of the customer as printed on his/her card
    - `token` Token
      - `id` string, required
    - `auth` Auth: Provide the data that you have received from your 3DS provider to process the transaction 3DSecure. The payment will be processed without 3DSecure if no data is provided.
      - `dsTransactionId` string: The identifier of the 3DS2 authentication session
      - `cryptogram` string: Authentication value/cryptogram received from your 3DSecure or Wallet provider
      - `eci` number: ECI (Electronic Commerce Indicator) returned by 3DSecure provider indicating the outcome of authentication attempted.
      - `status` string: 3DSecure status returned by the provider indicating the outcome of authentication attempted.
      - `version` string: Provide the protocol version returned by your 3DSecure provider
      - `type` 'challenged' | 'frictionless' | 'wallet': The type of 3DSecure authentication; eg. `challenged`, `frictionless`, `wallet`
      - `walletProvider` 'applepay' | 'googlepay': When processing Wallet payments like Apple Pay or Google Pay the corresponding value must be selected. Submitting Wallet cryptograms without the wallet provider correctly set, can result in declines or non-3ds processed transactions.
      - `payTdsTransactionId` string
      - `payTdsAcquirerId` number
  - `stats` Stats
    - `info` string: The used info code which can be tracked in the stats.
    - `tool` string: The used tool code which can be tracked in the stats.
    - `object` string: The object which can be tracked in stats.
    - `extra1` string: The first free value which can be tracked in the stats.
    - `extra2` string: The second free value which can be tracked in the stats.
    - `extra3` string: The third free value which can be tracked in the stats.
  - `customer` Customer
    - `reference` string: The reference for the customer, eg. a customer ID or account identification number.
    - `trust` integer: Indicates whether you trust the customer, scale -10 -> 10 (10 Reliable, -10 Unreliable).
    - `firstName` string: The forename (also known as a given name, Christian name or a first name).
    - `lastName` string: The surname (also known as a family name or a last name).
    - `gender` 'M' | 'F' | 'X': The subject's gender. Choose either M for male or F for female.
    - `dob` string, date: Date of birth.
    - `phoneNumber` string: The subject's phone number.
    - `emailAddress` string, email: An email address.
    - `company` Company
      - `name` string: Name of the company when processing a business order.
      - `cocNumber` string: The Chamber of commerce registration number of the business for which this payment is processed. This format differs per country.
      - `vatNumber` string: VAT number of the business for which this payment is processed.
    - `address` Address
      - `streetName` string: The name of the street.
      - `streetNumber` string: The street number.
      - `streetNumberExtension` string: A house number extension is required to deal with apartments or other addresses sharing the same front door.
      - `zipCode` string: A zip/postal code. see https://en.wikipedia.org/wiki/List_of_postal_codes for a list of formats per country.
      - `city` string: The name of a city.
      - `regionCode` string: Region code (iso-3166-2).
      - `countryCode` string: The country code consisting of 2 uppercase letters.
    - `invoice` Invoice
      - `firstName` FirstName (unresolved $ref)
      - `lastName` LastName (unresolved $ref)
      - `gender` Gender (unresolved $ref)
      - `company` Company
        - `name` string: Name of the company when processing a business order.
        - `cocNumber` string: The Chamber of commerce registration number of the business for which this payment is processed. This format differs per country.
        - `vatNumber` string: VAT number of the business for which this payment is processed.
      - `address` Address
        - `streetName` string: The name of the street.
        - `streetNumber` string: The street number.
        - `streetNumberExtension` string: A house number extension is required to deal with apartments or other addresses sharing the same front door.
        - `zipCode` string: A zip/postal code. see https://en.wikipedia.org/wiki/List_of_postal_codes for a list of formats per country.
        - `city` string: The name of a city.
        - `regionCode` string: Region code (iso-3166-2).
        - `countryCode` string: The country code consisting of 2 uppercase letters.
  - `order` Order
    - `deliveryDate` string, date: The date of delivery.
    - `invoiceDate` string, date: The date of the invoice
    - `products` Product[]
      - `id` string: The product identifier.
      - `type` 'shipping' | 'article' | 'discount' | 'rounding' | 'handling' | 'payment' | 'credit' | 'giftcard' | 'emoney' | 'crypto': The type of product.
      - `description` string: The description of the product.
      - `amount` number, float: The amount in cents.
      - `quantity` number, float: The quantity.
      - `vatPercentage` number, float

## Response `200`

Successful operation

- AuthorizationResponse
  - `request` RequestResponse
    - `result` integer: Indicates whether the request was successfully processed (`1`) or some error has occurred (`0`).
    - `errorId` string: If the request was not successfully processed this parameter holds the ID of the error that has occurred.
    - `errorTag` string: The error tag can be used to generate an error response for the customer.
    - `errorMessage` string: Description of the error that occurred. This message is returned in the language (if available) in which the transaction is/was submitted.
  - `payment` PaymentResponse
    - `bankCode` string: Response code returned from the issuer indicating the outcome of the authorization.
    - `bankMessage` string: Description of the response code.
    - `approvalCode` string
    - `schemeTransactionId` string
    - `cvcCheck` string
    - `threeDs` string
    - `avsResult` string
  - `transaction` TransactionResponse
    - `transactionId` string: The Id of the transaction.
    - `orderId` string: The orderId of the transaction.
    - `entranceCode` string: The orderId of the transaction.
    - `paymentProfileId` integer: The payment profile identifier.
    - `state` integer
    - `stateName` string
    - `amount` MonetaryAmount
      - `amount` integer: The amount in cents.
      - `currency` string: The currency in ISO-4217 format, e.g.: EUR, USD, CHF
    - `created` number
    - `identifierName` string
    - `identifierPublic` string
    - `identifierHash` string
    - `startIpAddress` string
    - `completedIpAddress` string
    - `orderNumber` string: The merchants reference for the transaction, eg. an order number or invoice id.
    - `amountOriginal` MonetaryAmount
      - `amount` integer: The amount in cents.
      - `currency` string: The currency in ISO-4217 format, e.g.: EUR, USD, CHF
    - `amountPaidOriginal` MonetaryAmount
      - `amount` integer: The amount in cents.
      - `currency` string: The currency in ISO-4217 format, e.g.: EUR, USD, CHF
    - `amountPaid` MonetaryAmount
      - `amount` integer: The amount in cents.
      - `currency` string: The currency in ISO-4217 format, e.g.: EUR, USD, CHF
    - `amountRefundOriginal` MonetaryAmount
      - `amount` integer: The amount in cents.
      - `currency` string: The currency in ISO-4217 format, e.g.: EUR, USD, CHF
    - `amountRefund` MonetaryAmount
      - `amount` integer: The amount in cents.
      - `currency` string: The currency in ISO-4217 format, e.g.: EUR, USD, CHF

## Other responses

- `400`: Bad request. See response for details.
- `401`: Unauthorized.
- `403`: Forbidden.
- `404`: Not found.

---

[API](https://skmtc.dev/pay/apis/pay-card-payment-api-v1-2-3.md) - [All operations](https://skmtc.dev/pay/apis/pay-card-payment-api-v1-2-3/llms.txt) - [OpenAPI document](https://skmtc.dev/pay/apis/pay-card-payment-api-v1-2-3/revisions/07c50a8d28b1?raw)
