---
title: "Authorize payment charge or agreement"
method: POST
path: "/v1/payment-sessions/{session-id}/authorizations"
tags: ["Payment Sessions"]
---

# Authorize payment charge or agreement

`POST /v1/payment-sessions/{session-id}/authorizations`

Authorize underlying payment charge or agreement of the given payment session.

## Path parameters

- `session-id` string, required

## Request body

- AuthorizationRequest
  - `paymentMethod` string, required — The payment method which should be used to process the payment.
  - `consumer` Consumer
    - `name` string — The consumer name.
    - `email` string — The consumer email.
    - `phone` string — The consumer phone number.
    - `country` string — 2-letter ISO code of the country where the payment instrument or account has been issued or established (for example GB, US, DE).
    - `locale` string — The locale describing the preferred language of the consumer
    - `taxIdentification` string — The consumer's tax identification number, like CUIT in Argentina, CPF in Brazil, RUT in Chile, NIF in Spain or Portugal, Numéro fiscal in France, and Codice Fiscale in Italy, or the equivalent tax identifier applicable in the consumer's country.
    - `merchantConsumerReference` string — The merchant provided consumer reference.
    - `billingAddress` Address
      - `street` string, required
      - `city` string, required
      - `region` string
      - `postalCode` string — Required for countries that use postal codes. This field can be omitted for the following country codes: AO,AI,AG,AW,BS,BZ,BJ,BM,BO,BQ,BW,CF,TD,KM,CG,CD,CK,CI,CW,DJ,DM,TL,GQ,ER,FJ,TF,GA,GM,GY,GD,HK,HM,IO,MO,MH,MS,NR,NU,NF,PW,PA,WS,KN,LC,VC,ST,SC,SL,SX,SB,SS,GS,SH,TC,TK,TO,TV,UG,AE,VA,VU,YE,ZW
      - `country` string, required — ISO 3166-1 alpha-2 Country Code
    - `client` Client
      - `ip` string — The IP address of the client
      - `userAgent` string — The user agent of the client device
  - `amount` MoneyWithType
    - `value` integer, required — The amount in currency's smallest unit.
    - `currency` string, required — ISO 4217 3-letter currency code.
    - `type` 'MAX' | 'EXACT' | 'VARIABLE' — Defines if the provided 'amount' is a maximum value or an exact value. This field is relevant only for recurring payments.
  - `amountType` 'MAX' | 'EXACT' | 'VARIABLE' — Defines if the provided 'amount' is a maximum value or an exact value. This field is relevant only for recurring payments.
  - `initialPaymentCharge` InitialPaymentCharge
    - `initiator` 'MERCHANT' | 'CONSUMER' — The charge initiator
    - `paymentDescriptor` string — The transaction descriptor (arbitrary string). May be presented to the consumer.
    - `amount` Money, required — The operation amount
      - `value` integer, required — The monetary value to be charged or processed, expressed in the smallest currency unit (e.g., cents for EUR).
      - `currency` string, required — The three-letter ISO 4217 currency code representing the currency in which the amount is denominated
    - `autoCapture` boolean — Indicates whether the payment charge should be automatically captured after a successful authorization.
    - `merchantPaymentChargeReference` string — The merchant payment charge reference. Aka, Transaction Reference.
    - `webhooksUrl` string — The URL to which the payment charge state changes will be notified
    - `labels` object — Custom labels associated with the initial payment charge.
  - `instrument` union — The payment instrument. This field is required for a subset of PPRO's supported payment methods.
    - BancontactAccountInstrument
      - `type` 'BANCONTACT_ACCOUNT', required — The BANCONTACT_ACCOUNT payment instrument type.
      - `details` BancontactAccount, required
        - `bin` string
        - `last4Digits` string
        - `expiryMonth` integer
        - `expiryYear` integer
        - `panAlias` string
    - BankAccountInstrument
      - `type` 'BANK_ACCOUNT', required — The BANK_ACCOUNT payment instrument type
      - `details` BankAccountDetails, required
        - `accountNumber` string — The account number.
        - `holderName` string — The account holder name.
        - `iban` string — The IBAN.
        - `swiftCode` string — The SWIFT code.
        - `bankName` string — The bank name.
        - `bankCode` string — The bank code.
        - `debitMandateId` string — The reference id for a mandate that allows debit charges on the bank account.
    - CardNetworkTokenInstrument
      - `type` 'CARD_NETWORK_TOKEN', required — The CARD_NETWORK_TOKEN payment instrument type
      - `details` CardNetworkTokenDetails, required
        - `brand` string
        - `holderName` string
        - `expiryMonth` integer
        - `expiryYear` integer
        - `tokenNumber` string
        - `eci` string
        - `cryptogram` string
    - MockInstrument
      - `type` 'MOCK', required — The MOCK payment instrument type
      - `details` object — The MOCK payment details
    - PassthroughWalletInstrument
      - `type` 'PASSTHROUGH_WALLET', required — The PASSTHROUGH_WALLET payment instrument type.
      - `details` PassthroughWallet, required
        - `fingerprint` string
        - `paymentReference` string
        - `displayIdentifier` string
        - `country` string
        - `fundingType` 'CREDIT' | 'DEBIT'
    - VaultedCardInstrument
      - `type` 'CARD_PPRO_VAULTED', required — The CARD_PPRO_VAULTED payment instrument type.
      - `details` VaultedCardDetails, required
        - `brand` string — The card brand.
        - `bin` string, required — The card BIN number.
        - `last4Digits` string, required — The last 4 digits of the card.
        - `expiryMonth` integer, required — The card expiration month.
        - `expiryYear` integer, required — The card expiration year.
        - `holderName` string, required — The card holder name.
        - `panAlias` string, required — The card PAN alias.
        - `cvvAlias` string — The card CVV alias.
  - `authenticationSettings` union[] — Authorization-time authentication settings overrides.
    - union
      - object
        - `type` 'MULTI_FACTOR', required — The MULTI_FACTOR authentication type.
        - `settings` MultiFactorAuthenticationSettingsDetails
          - `verificationCode` string — Code generated to authenticate the user.
      - object
        - `type` 'APP_NOTIFICATION', required — The APP_NOTIFICATION authentication type.
        - `settings` AppNotificationAuthenticationSettingsDetails
          - `instrumentProviderIdentity` string — App identifier, for instance email, phone number
  - `startDate` string, date-time — The start date of the agreement
  - `endDate` string, date-time — The end date of the agreement
  - `frequency` Frequency
    - `type` 'DAILY' | 'WEEKLY' | 'MONTHLY' | 'YEARLY' | 'UNSCHEDULED', required — The type of frequency between consecutive payment charges.
    - `interval` integer — The interval between consecutive payment charges. The unit of the interval depends on the frequency type. For example, if type is MONTHLY and interval is 3, it means every 3 months.
  - `labels` object — Custom labels associated with the payment charge or agreement.

## Response `200`

OK

## Other responses

- `400` — Invalid request.

---

[API](https://skmtc.net/ppro/apis/payment-charges.md) · [All operations](https://skmtc.net/ppro/apis/payment-charges/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/ppro/payment-charges/versions/112e8bb4c815/schema)
