Authorize transaction

You can use this call to authorize an existing Apple Pay transaction using the CM.com Online Payments API.

Prerequisite

Get an access_token and use it as 'Bearer' token in your request. Find more details here.

Request

POST https://api.pay.cm.com/api/v1/paymentmethods/apple-pay/v1/transactions/{transactionId}/authorize

The request data is passed on as-is received from the Apple device in the on authorize payment event. Modifications are not allowed.

Response

{
  "id": "8db1e7fa-ba8a-4189-92fd-67a20217443d",
  "orderId": "8db1e7fa-ba8a-4189-92fd-67a20217443d",
  "reference": "20210623130413",
  "amount": 1200,
  "currency": "EUR",
  "description": "Order at yourdomain.tld",
  "expiresAt": "2006-01-02T15:04:05Z",
  "language": "nl",
  "country": "NL",
  "webhooks": [
    {
      "url": "https://yourdomain.tld/order-webhooks?purchaseId=order123",
      "events": [
        "FINALSTATUS"
      ]
    },
    {
      "url": "https://yourdomain.tld/payment-webhooks?purchaseId=order123",
      "events": [
        "REFUND_STATUS"
      ]
    },
    {
      "url": "https://yourdomain.tld/payment-webhooks?purchaseId=order123",
      "events": [
        "STATUS_CHANGE"
      ]
    }
  ],
  "status": "OPEN",
  "details": {
    "merchantCountry": "DE",
    "serverUrl": "https://www.example.com/api/",
    "allowedCardNetworks": [
      "mastercard"
    ],
    "merchantName": "My Merchant Name"
  },
  "action": {
    "redirect": {
      "url": "https://checkout.tld/3ds/v2/creditcard/123"
    }
  },  
  "createdAt": "2006-01-02T15:04:05Z",
  "refunds": {
    "refundedAmount": 300,
    "refundedPendingAmount": 100
  },
  "returnUrls": {
    "success": "https://yourdomain.tld/order/payment-success.html",
    "cancelled": "https://yourdomain.tld/order/payment-cancelled.html",
    "expired": "https://yourdomain.tld/order/payment-expired.html",
    "failed": "https://yourdomain.tld/order/payment-failed.html"
  }
}

Parameters

ParameterTypeDescriptionConstraints
idString(36)Transaction unique identifier.
orderIdString(36)Unique identifier.
referenceString(1...255)An identifier specified by you. If webhooks were specified in the request this identifier is added to the webhook request payload.Specified in the initialize transaction request.
amountInt(1...99999999)Integer representing the amount of the checkout. Denomination in the smallest currency subunit (e.g. eurocents).Specified in the initialize transaction request.
currencyString (ISO 4217)Currency code.Specified in the initialize transaction request.
descriptionString(1...255)Description of the transaction.Specified in the initialize transaction request.
expiresAtString(RFC3339)Expiration time.ISO 8601 date and time.
languageString(ISO 639-1)Preferred language of the user interface.Specified in the initialize transaction request.
countryStringCountry of the Customer.Specified in the initialize transaction request.
statusStringOPEN - Transaction has been created. This is the initial status.
SUCCESS - Transaction successfully paid.
CANCELLED - Transaction has been cancelled by your customers.
EXPIRED - Transaction has not succeeded; expired.
FAILURE - Transaction has not succeeded; unknown reason.
AUTHORIZED - Transaction is authorized.
createdAtString(RFC3339)Creation time.ISO 8601 date and time.
returnUrlString(2000)Specifies the URL where your customers will be redirected to.Specified in the initialize transaction request.
returnUrlsreturnUrls ObjectSpecifies a URL where your customers will be redirected to per transaction status. For example, your customers will be redirected to returnUrls.success when the status of the transaction changes to SUCCESS.Specified in the initialize transaction request.

Optional parameters

ParameterTypeDescriptionConstraints
webhooksArray of objectsWebhooks enable receiving a web request once a given event occurs.Specified in the initialize transaction request.
detailsdetails ObjectThese are the details used to render the Apple Pay button in your own page.This is nullable.
actionaction ObjectThe next action to be performed by you for this transaction. This includes a URL where you should redirect your customer to.This is nullable.
refundsrefund ObjectIndicates refundedAmount and refundedPendingAmount.

Response codes

HTTP statusDescription
201Transaction authorized.
4XXClient error response (See message for details). This response is given when the user input was incorrect or something illegal was attempted (eg. using a service without having that service configured for the user, or not being authorized).
5XXServer error response (See message for details).