On This Page
Process a Sale
This section describes how to send a sale request to process a payment.
A sale request authorizes and captures a payment in the same request. A successful sale
response includes an GroupUp redirect URL and a
PENDING
status.
Redirect the customer to the GroupUp URL to allow the customer to complete the checkout
using their GroupUp account. When the customer completes the checkout, the customer is
redirected to your website.When you receive a successful response, save the sale request ID in the
id
response
field to perform a follow-on check status request or refund request.Calculating the Grand Total
Include the grand total in the request by using the
orderInformation.amountDetails.totalAmount
field. Endpoints
Production:
POST
https://api.cybersource.com
/pts/v2/paymentsTest:
POST
https://apitest.cybersource.com
/pts/v2/paymentsProcessing a Sale
Follow these steps to successfully process sale.
- Send aPOSTrequest to the endpoint and include these required fields:
- clientReferenceInformation.code
- merchantInformation.cancelUrl
- merchantInformation.failureUrl
- merchantInformation.successUrl
- orderInformation.amountDetails.currency
- Set toEUR.
- orderInformation.amountDetails.totalAmount
- orderInformation.billTo.country
- orderInformation.billTo.email
- orderInformation.billTo.firstName
- orderInformation.billTo.lastName
- paymentInformation.paymentType.method.name
- Set toGROUPUP.
- paymentInformation.paymentType.name
- processingInformation.actionList
- Set toAP_SALE.
- You can include these optional fields in the request:
- merchantDefinedInformation[].key
- merchantInformation.merchantDescriptor
- orderInformation.billTo.address1
- orderInformation.billTo.address2
- orderInformation.billTo.administrativeArea
- orderInformation.billTo.locality
- orderInformation.billTo.phoneNumber
- orderInformation.billTo.postalCode
- orderInformation.lineItems[].productCode
- orderInformation.lineItems[].productName
- orderInformation.lineItems[].productSku
- orderInformation.lineItems[].quantity
- orderInformation.lineItems[].taxAmount
- orderInformation.lineItems[].totalAmount
- orderInformation.lineItems[].unitPrice
- Redirect the customer to the returned URL in themerchantInformation.successUrlresponse field."successUrl": "https://www.valid.merchant.redirect.url.from.request.html?actionsuccess"
- When the customer completes the checkout using their GroupUp credentials, the customer is redirected to the merchant website based on the URL that you included in themerchantInformation.successUrlrequest field.
- Save the request ID in theidfield from the sale response. Include the request ID in a check status request to confirm that the payment is complete."id": "7546757907606782704806"
Example: Processing a Sale
Request
{ "clientReferenceInformation": { "code": "123" }, "merchantInformation": { "cancelUrl": "https://www.valid.merchant.redirect.url.from.request.html?actioncancel", "failureUrl": "https://www.valid.merchant.redirect.url.from.request.html?actionfailure", "successUrl": "https://www.valid.merchant.redirect.url.from.request.html?actionsuccess" }, "paymentInformation": { "paymentType": { "method": { "name": "GROUPUP" }, "name": "Voucher" } }, "orderInformation": { "billTo": { "firstName": "John", "lastName": "Doe", "country": "FR", "email": "test@test.com" }, "amountDetails": { "totalAmount": "10.00", "currency": "EUR" } }, "processingInformation": { "actionList": [ "AP_SALE" ] } }
Response to a Successful Request
{ "_links": { "void": { "method": "POST", "href": "/pts/v2/payments/7546757907606782704806/voids" }, "billingAgreement": { "method": "POST", "href": "/pts/v2/billing-agreements/7546757907606782704806" }, "self": { "method": "POST", "href": "/pts/v2/payments/7546757907606782704806" }, "refund": { "method": "POST", "href": "/pts/v2/payments/7546757907606782704806/refunds" }, "status": { "method": "POST", "href": "/pts/v2/refresh-payment-status/7546757907606782704806" } }, "clientReferenceInformation": { "code": "123" }, "id": "7546757907606782704806", "message": "Request was processed successfully.", "orderInformation": { "amountDetails": { "totalAmount": "10.00", "currency": "EUR" } }, "processorInformation": { "responseDetails": "00001", "paymentUrl": "https://payment.limonetikqualif.com/Conecs/Order/PayPage/960636547358", "transactionId": "960636547358", "responseCode": "00001" }, "reconciliationId": "XFZ55E33PZ6F", "status": "PENDING", "submitTimeUtc": "2025-08-08T17:56:32Z" }
Response Statuses for Processing a Sale
Cybersource
responds to your sale request with one of these statuses
in the status
field:- FAILED: The sale cannot be completed.
- PENDING: The sale request is accepted but is not completed. Send a check status request as often as necessary to obtain the information that you need. For more information, see Check a Transaction Status.