Adyen · Arazzo Workflow

Adyen Classic Authorise and Cancel

Version 1.0.0

Authorise a payment with the classic Payment API then cancel it.

1 workflow 1 source API 1 provider
View Spec View on GitHub PaymentsFinancial ServicesFintechArazzoWorkflows

Provider

adyen

Workflows

authorise-and-cancel
Authorise a classic payment and cancel it by original reference.
Authorises a payment and, when the result code is Authorised, cancels the authorisation using the PSP reference from the authorisation as the original reference.
2 steps inputs: amount, card, merchantAccount, reference outputs: authPspReference, cancelPspReference, response
1
authorise
post-authorise
Authorise the payment with the supplied card and amount to obtain a PSP reference and result code.
2
cancel
post-cancel
Cancel the authorisation using the PSP reference from the authorisation as the original reference, releasing the hold before capture.

Source API Descriptions

Arazzo Workflow Specification

adyen-classic-authorise-and-cancel-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Adyen Classic Authorise and Cancel
  summary: Authorise a payment with the classic Payment API then cancel it.
  description: >-
    This workflow authorises a payment with the classic PAL Payment API,
    confirms the result is Authorised, and then cancels the authorisation using
    the authorisation PSP reference as the original reference. Cancel releases an
    authorisation that has not yet been captured. Every step spells out its
    request inline so the flow can be read and executed without opening the
    underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: paymentsApi
  url: ../openapi/payments-openapi-original.yml
  type: openapi
workflows:
- workflowId: authorise-and-cancel
  summary: Authorise a classic payment and cancel it by original reference.
  description: >-
    Authorises a payment and, when the result code is Authorised, cancels the
    authorisation using the PSP reference from the authorisation as the original
    reference.
  inputs:
    type: object
    required:
    - merchantAccount
    - amount
    - reference
    - card
    properties:
      merchantAccount:
        type: string
        description: The merchant account identifier that processes the payment.
      amount:
        type: object
        description: The authorisation amount object with currency and value.
      reference:
        type: string
        description: Your unique reference for the payment.
      card:
        type: object
        description: The card details object (number, expiryMonth, expiryYear, cvc, holderName).
  steps:
  - stepId: authorise
    description: >-
      Authorise the payment with the supplied card and amount to obtain a PSP
      reference and result code.
    operationId: post-authorise
    requestBody:
      contentType: application/json
      payload:
        merchantAccount: $inputs.merchantAccount
        amount: $inputs.amount
        reference: $inputs.reference
        card: $inputs.card
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      pspReference: $response.body#/pspReference
      resultCode: $response.body#/resultCode
    onSuccess:
    - name: authorised
      type: goto
      stepId: cancel
      criteria:
      - context: $response.body
        condition: $.resultCode == "Authorised"
        type: jsonpath
  - stepId: cancel
    description: >-
      Cancel the authorisation using the PSP reference from the authorisation as
      the original reference, releasing the hold before capture.
    operationId: post-cancel
    requestBody:
      contentType: application/json
      payload:
        merchantAccount: $inputs.merchantAccount
        originalReference: $steps.authorise.outputs.pspReference
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      cancelPspReference: $response.body#/pspReference
      response: $response.body#/response
  outputs:
    authPspReference: $steps.authorise.outputs.pspReference
    cancelPspReference: $steps.cancel.outputs.cancelPspReference
    response: $steps.cancel.outputs.response