Skip to main content
Business Visa & Personal Visa only The Authorization Decision API lets you make real-time approve/decline decisions on card transactions. When a transaction passes UQPAY’s internal risk controls, the transaction details are forwarded to your endpoint for a final decision.
Prerequisites
  • Pass UQPAY’s risk control review to enable the feature
  • A publicly accessible HTTPS endpoint to receive authorization requests
  • PGP key pair for request/response encryption

How it works

Key principles:
  • You only receive authorization requests for transactions that have already passed UQPAY’s risk controls.
  • Transactions declined by UQPAY are not sent to your endpoint — you receive only the issuing.transaction.authorization webhook notification.
  • You must respond within the configured timeout period (1 to 5 seconds, set per your agreement with UQPAY). If no valid response is received, the transaction result is determined by your configured default timeout action (approve or decline).

Security: PGP encryption

The entire request and response body is PGP-encrypted. Before integration, you and UQPAY exchange PGP public keys:

API specification

Request

UQPAY sends a POST request to your configured endpoint with these headers: The decrypted request body contains:
Example request body (decrypted):

Response

Respond with HTTP 200 and the following JSON body, encrypted with UQPAY’s PGP public key: Example response body (before encryption):

Response codes

The transaction is approved only when all three conditions are met:
  1. HTTP status code is 200
  2. response_code is "00"
  3. transaction_id matches the request
All other cases result in a decline.

Integration steps

  1. Contact UQPAY — Reach out to UQPAY to enable the Authorization Decision API feature for your account.
  2. Exchange configuration — Provide the following to UQPAY:
    • Your PGP public key (RSA 2048-bit)
    • Your authorization decision endpoint URL (HTTPS)
    • Decision timeout window (1 to 5 seconds; defaults to 2 seconds)
    • Default timeout action: decline (auto-decline on timeout) or delegate (UQPAY decides on your behalf)
    UQPAY will provide their PGP public key (see above) and the egress IPs to add to your firewall allowlist: Production 18.139.246.78, 54.251.52.172.
  3. Implement your endpoint — Build a POST endpoint that decrypts the request body using your PGP private key, evaluates the transaction based on your business logic, encrypts the response using UQPAY’s public key, and returns the encrypted response within the configured timeout period.
  4. Test the integration — Work with UQPAY to run test transactions in the sandbox environment and verify correct encryption, decryption, and response handling.
Transactions are declined if your endpoint fails to respond correctly, including malformed responses, mismatched transaction_id, or responses received after the timeout. Test thoroughly before going live.