Sale completion

This guide covers the Sale completion process in Vortex Global Payments. It includes payload samples, expected responses, and implementation guidance for processing refunds to customers.

Sale Completion

The Sale Completion transaction is used to finalize a previously authorized amount from a sale transaction. A Sale Completion may capture the full or partial amount of the original authorization.

Prerequisites & Limitations

  • merchant.processor.name must be "priority".
  • currencyCode must be "CAD" (Canadian Dollars).
  • totalAmount must be greater than 0.50.
  • originalExternalId must reference the original sale transaction to be completed.
  • Only one sale completion is allowed per original authorization.
  • If the completion amount is less than the original authorization, the remainder will be released.

In this guide, you’ll find:

  • How to perform a full sale completion that matches the original authorization amount
  • How to process a partial sale completion for less than the authorized amount
  • How to interpret the response payload from a sale completion request

Full Sale Completion

Request Payload

{
    "ecom": false,
    "moto": false,
    "recurring": true,
    "externalId": "some-external-id",
    "originalExternalId": "some-original-external-id",
    "transactionType": "saleCompletion",
    "totalAmount": 100.24,
    "currencyCode": "CAD",
    "merchant": {
        "name": "PPS Engineering UAT 2",
        "sic": "3501",
        "number": "518089240725465",
        "processor": {
            "name": "priority"
        },
        "globalAccountId": "acct_global-account-id"
    },
    "account": {
        "form": "plastic",
        "expiry": "2027-12",
        "number": "4242424242424242"
    },
    "device": {},
    "customer": {
        "address": {
            "street1": "2001 Westside",
            "city": "Alpharetta",
            "state": "GA",
            "postalCode": "30004"
        }
    }
}

Response Body

{
  "reference": "pi_3RQaGoKX2PidZXm21cmjOzSD",
  "status": "succeeded",
  "approved": true,
  "declined": false,
  "message": "Approved",
  "requiredActions": "none",
  "totalAmount": 100.24,
  "requestedAmount": 100.24,
  "surchargeAmount": 0,
  "code": 0,
  "authCode": null,
  "availableAmount": 0,
  "transferId": "tr_3RQaGoKX2PidZXm21eRkb2uy",
  "authorization": {
    "avsChecks": {
      "addressLine1": true,
      "postalCode": true,
      "cvc": false
    },
    "network": {
      "adviceCode": null,
      "networkAdviceCode": null,
      "networkStatus": "approved_by_network"
    }
  },
  "cardType": "Discover",
  "network": "discover",
  "cardBin": {
    "type": "",
    "bank": {
      "www": "",
      "name": "",
      "phone": ""
    },
    "bin": "60111111",
    "brand": "DISCOVER",
    "country": {
      "iso": "840",
      "info": "",
      "name": "United States",
      "abbreviation2": "US",
      "abbreviation3": "USA"
    },
    "id": "60111111",
    "source": "pci.bindb.com",
    "level": "",
    "prepaid": null,
    "reloadable": null,
    "business": null,
    "regulated": false
  },
  "accountNumberMask": "1117",
  "id": "QnPhZrCPb8G0F2f95yyrAg==",
  "meta": {
    "id": "QnPhZrCPb8G0F2f95yyrAg==",
    "externalId": "1747686515046",
    "received": "2025-05-19T20:28:35.278Z",
    "tenantId": "A1A9550E-830C-474E-9836-DFD4DB492BC0",
    "tenantName": "Test Tenant",
    "replicationGroup": "qa",
    "virtualEnv": "qa-atl",
    "originatingInstance": "natl",
    "environment": "default"
  }
}

Partial Sale Completion

Request Payload

{
    "ecom": false,
    "moto": false,
    "recurring": true,
    "externalId": "some-external-id",
    "originalExternalId": "some-original-external-id",
    "transactionType": "saleCompletion",
    "totalAmount": 50.24,
    "currencyCode": "CAD",
    "merchant": {
        "name": "PPS Engineering UAT 2",
        "sic": "3501",
        "number": "518089240725465",
        "processor": {
            "name": "priority"
        },
        "globalAccountId": "acct_global-account-id"
    },
    "account": {
        "form": "plastic",
        "expiry": "2027-12",
        "number": "4242424242424242"
    },
    "device": {},
    "customer": {
        "address": {
            "street1": "2001 Westside",
            "city": "Alpharetta",
            "state": "GA",
            "postalCode": "30004"
        }
    }
}
💡

The original sale transaction authorized 100.24. This partial completion captures only 50.24.

Response Body

{
  "reference": "pi_3RQaPrKX2PidZXm20Rd5Xc4l",
  "status": "requires_capture",
  "approved": true,
  "declined": false,
  "message": "Approved",
  "requiredActions": "none",
  "totalAmount": 50.24,
  "requestedAmount": 50.24,
  "surchargeAmount": 0,
  "code": 0,
  "authCode": null,
  "authorization": {
    "avsChecks": {
      "addressLine1": true,
      "postalCode": true,
      "cvc": false
    },
    "network": {
      "adviceCode": null,
      "networkAdviceCode": null,
      "networkStatus": "approved_by_network"
    }
  },
  "cardType": "Discover",
  "network": "discover",
  "cardBin": {
    "type": "",
    "bank": {
      "www": "",
      "name": "",
      "phone": ""
    },
    "bin": "60111111",
    "brand": "DISCOVER",
    "country": {
      "iso": "840",
      "info": "",
      "name": "United States",
      "abbreviation2": "US",
      "abbreviation3": "USA"
    },
    "id": "60111111",
    "source": "pci.bindb.com",
    "level": "",
    "prepaid": null,
    "reloadable": null,
    "business": null,
    "regulated": false
  },
  "accountNumberMask": "1117",
  "id": "YYrBO8dFAFk2lgPvOw7fug==",
  "meta": {
    "id": "YYrBO8dFAFk2lgPvOw7fug==",
    "externalId": "1747686967330",
    "received": "2025-05-19T20:36:07.531Z",
    "tenantId": "A1A9550E-830C-474E-9836-DFD4DB492BC0",
    "tenantName": "Test Tenant",
    "replicationGroup": "qa",
    "virtualEnv": "qa-atl",
    "originatingInstance": "natl",
    "environment": "default"
  }
}

Implementation Notes

  • Sale Completions must reference the originalExternalId from a previous sale authorization.
  • Only one sale completion is allowed per authorization (either full or partial).
  • If partially completed, the unused portion of the authorization is automatically released.
  • If the total amount in the request exceeds the available amount from the original sale, the transaction will be declined.

Did this page help you?
Priority Technology Holdings Logo