# Capture

Transfer authorised funds to your account and complete a POS transaction.

## Capture a transaction

/v1/pos-transactions/{systemTransactionId}/modifications

### Request example

Use the following request to capture a previously authorised transaction.


```json
{
  "merchant": "MERCHANT-1",
  "site": "SITE-1",
  "merchantTransactionId": "POS_002",
  "merchantTransactionDate": "2025-01-27T08:51:02.826Z",
  "amounts": {
    "transaction": 24.99,
    "currencyCode": "GBP",
    "gratuity": 0
  },
  "operation": "Capture",
  "offerDcc": false,
  "statusCallbackUrl": "http://192.168.204.43:5000/statuspacket"
}
```

| Parameter | Description |
|  --- | --- |
| `merchant`string (≤ 20 characters) | Your unique merchant identifier, as assigned by PXP. |
| `site`string (≤ 20 characters) | Your unique site identifier, as assigned by PXP. |
| `merchantTransactionId`string (≤ 50 characters) | The unique identifier for this transaction, as chosen by you. |
| `merchantTransactionDate`date-time | The date and time when the initial transaction happened, in ISO 8601 format. |
| `amounts`object | Details about the transaction amount. |
| `amounts.transaction`number | The value of the transaction. This can't be more than the original transaction value. |
| `amounts.currencyCode`string | The currency code associated with the transaction, in ISO 4217 format. |
| `amounts.gratuity`number | The gratuity or tip amount added by the customer to the transaction total. |
| `operation`string | The type of modification that you want to make. Set this to `Capture`.Possible values:`Capture``Refund``Incremental``Void` |
| `offerDcc`boolean | Whether the customer is physically present during a `Capture` operation with DCC opt-out functionality. Defaults to `false`. |
| `merchantDeeplink`string (URI) | A custom URI scheme that allows your mobile app to handle payment callbacks. When provided, the payment terminal will use this deeplink to redirect users back to your app after the transaction is completed. |
| `statusCallbackUrl`string | The webhook URL that PXP should send status updates to, if the *Return status packets* feature is enabled for the device. This overrides the webhook URL configured in the Unity Portal. |


### Response example

If your request is successful, you'll receive a `200` response containing a new `systemTransactionId`. The `state` will also be updated to `Captured`. You'll also receive a Transaction (Card Captured) webhook notification.


```json
{
  "state": "Captured",
  "stateData": {},
  "approvalCode": "",
  "merchantTransactionId": "POS_002",
  "systemTransactionId": "fff4cf23-9c69-40cc-8a8b-b5c86b302b74",
  "merchantTransactionDate": "2025-04-08T09:51:02.826445+01:00",
  "fundingData": {
    "maskedPrimaryAccountNumber": "476173******0027",
    "expiryMonth": "12",
    "expiryYear": "2025",
    "cardScheme": "Visa",
    "gatewayTokenId": "2ae96210-c8a3-459e-8ad8-7d481a90ff71",
    "providerResponse": {
      "provider": "PXP Financial",
      "code": "",
      "message": "",
      "merchantId": "",
      "terminalId": "",
      "paymentAccountReference": "",
      "schemeTransactionId": "",
      "merchantAdvice": {
        "code": "",
        "message": ""
      },
      "settlementDate": "2025-04-08T11:58:17.234175+01:00"
    }
  },
  "amounts": {
    "gratuity": 0
  },
  "dccData": {
    "dccSelectedIndicator": "Selected",
    "amounts": {
      "local": {
        "transaction": 100.00,
        "currencyCode": "USD"
      },
      "cardholder": {
        "transaction": 85.50,
        "currencyCode": "EUR"
      }
    },
    "exchangeRate": 0.855,
    "markupRate": 3.92,
    "disclaimer": "You are offered to pay in EUR. This includes a 3.5% commission above the base rate of 0.9245 provided by Elavon.",
    "providerData": {
      "provider": "Elavon",
      "referenceId": "REF123456789",
      "merchantId": "MERCH001",
      "terminalId": "TERM001",
      "markupTextIndicator": 1
    }
  }
}
```