Skip to main content

Documentation

Poll - Completion

Complete a transaction using the poll method to finalize the transaction on the terminal.

A completion request finalizes a previously completed pre-authorization. To submit this request, extract the panFirstSix, panLastFour, authCode, stan, and cardLength from the original pre-authorization response and include them in the new request.

Upon receiving the request, the CloudLink API forwards it to the terminal, which immediately registers a SALE_RECEIVED event. Once the terminal processes the completion using the card details, it triggers a final SALE_COMPLETED event. The client can retrieve these events by continuously polling the /poll/terminalresponse/{pollId} endpoint until the terminal response is available.

    • panFirstSix

    • First six digits of PAN from response e.g. 123456******7890 input: "123456"

    • panLastFour

    • Last four digits of PAN from response e.g. 123456******7890 input: "7890"

    • authCode

    • Input authCode from original transaction.

    • stan

    • Input Stan from original transaction.

    • cardLength

    • Input length of card e.g. 123456******7890 input: "16"

    • amount

    • The amount represented with two minor units, e.g. 12 EUR is 1200.

    • disablePrinting

    • Indicates if to print a receipt.

    • referenceId

    • Optional reference from merchants.

    • description

    • Receipt description.

    • language

    • The language that the PAX POS will use to display information on the device. One of the following:

      • en_GB

      • ar_EG

      • da_DK

      • de_DE

      • es_ES

      • fi_FI

      • fr_FR

      • hi_IN

      • is_IS

      • it_IT

      • nb_NO

      • nl_NL

      • pl_PL

      • pt_PT

      • ru_RU

      • sl_SI

      • sv_SE

      • zh_CN

    • pollId

    • The ID used to poll after a terminal response

    • deviceToken

    • The token of a PAX POS device.

    • correlationId

    • An ID provided by the caller. Will be returned in the callback for message matching. In a cancel request, use the value from the sale/refund that is being cancelled.

    • timeToLive

    • The maximum time, in seconds, for a request to reach the physical terminal. The default value is 5 seconds.

    • terminalId

    • If terminal has more than one merchant, this field is used to identify the merchant. To get a list of merchants, use the requestMerchantConfig request. Value can be null.

    • type

    • Example: https://tools.ietf.org/html/rfc7231#section-6.5.1

    • title

    • Bad Request

    • status

    • 400

    • detail

    • DeviceId not registered

    • message

    • Unauthorized

    • message

    • Server Error

  • /poll/completion

  • 202 Accepted completion

  • curl -X
    post https://CloudLinkApi/poll/completion
    -H 'X-API-KEY: your-access-key-here'
    -d '
    {
      "panFirstSix": "123456",
      "panLastFour": "7890",
      "authCode": "123456",
      "stan": "99",
      "cardLength": "16",
      "amount": "100",
      "description": "Completion for prior pre-auth",
      "disablePrinting": true,
      "referenceId": "merchant-ref-number-abc123",
      "language": "en_GB",
      "pollId": "20e68907-e1b0-444f-a8a3-ac6c2208dd85",
      "deviceToken": "b16526c3447ba6cea4818d",
      "correlationId": "5d1d4ea-8229-44d7-b517-26a5ae6c2fda",
      "timeToLive": 5,
      "terminalId": null
    }
    ' 
  • {
      "message": "Accepted"
    }
  • 400 Bad Request

  • curl -X
    post https://CloudLinkApi/poll/completion
    -H 'X-API-KEY: your-access-key-here'
    -d '
    {
      "panFirstSix": "123456",
      "panLastFour": "7890",
      "authCode": "123456",
      "stan": "99",
      "cardLength": "16",
      "amount": "100",
      "description": "Completion for prior pre-auth",
      "disablePrinting": true,
      "referenceId": "merchant-ref-number-abc123",
      "language": "en_GB",
      "pollId": "20e68907-e1b0-444f-a8a3-ac6c2208dd85",
      "deviceToken": "b16526c3447ba6cea4818d",
      "correlationId": "5d1d4ea-8229-44d7-b517-26a5ae6c2fda",
      "timeToLive": 5,
      "terminalId": null
    
    }
    '  
  • {
      "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
      "title": "Bad Request",
      "status": 400,
      "detail": "DeviceId not registered"  
    }
  • 401 Unauthorized completion

  • curl -X
    post https://CloudLinkApi/poll/completion
    -H 'X-API-KEY: your-access-key-here'
    -d '
    {
      "panFirstSix": "123456",
      "panLastFour": "7890",
      "authCode": "123456",
      "stan": "99",
      "cardLength": "16",
      "amount": "100",
      "description": "Completion for prior pre-auth",
      "disablePrinting": true,
      "referenceId": "merchant-ref-number-abc123",
      "language": "en_GB",
      "pollId": "20e68907-e1b0-444f-a8a3-ac6c2208dd85",
      "deviceToken": "b16526c3447ba6cea4818d",
      "correlationId": "5d1d4ea-8229-44d7-b517-26a5ae6c2fda",
      "timeToLive": 5,
      "terminalId": null
    }
    ' 
  • {
      "message": "Unauthorized"
    }
  • 500 Server Error

  • curl -X
    post https://CloudLinkApi/poll/completion
    -H 'X-API-KEY: your-access-key-here'
    -d '
    {
      "panFirstSix": "123456",
      "panLastFour": "7890",
      "authCode": "123456",
      "stan": "99",
      "cardLength": "16",
      "amount": "100",
      "description": "Completion for prior pre-auth",
      "disablePrinting": true,
      "referenceId": "merchant-ref-number-abc123",
      "language": "en_GB",
      "pollId": "20e68907-e1b0-444f-a8a3-ac6c2208dd85",
      "deviceToken": "b16526c3447ba6cea4818d",
      "correlationId": "5d1d4ea-8229-44d7-b517-26a5ae6c2fda",
      "timeToLive": 5,
      "terminalId": null
    }
    ' 
  • {
      "message": "Server Error"
    }