v1

latestOpenAPI 3.1.0Payrails GmbH2026-07-2614905.7 MB
Actions

Capture a payment

Request a payment capture during a workflow execution.

post/merchant/workflows/{workflowCode}/executions/{executionId}/capture

Path parameters

workflowCodestring required

Machine-friendly code of Workflow.

Path parameter to specify the workflow code.

executionIdstring uuid required

Identifier of the resource in Payrails.

Headers

x-idempotency-keystring uuid required

Idempotency key to be used. Sending again the same key would return the same result without re-executing the update.

Request body

reason'BetterPrice' | 'CustomerDontNeed' | 'DamagedProduct' | 'Duplicate' | 'FraudulentProduct' | 'LateDelivery' | 'NoReason' | 'ProductMismatchDescription' | 'WrongProduct' | 'WrongProductSpecification'

Reason for invoking the operation or action.

reasonDescriptionstring

An optional field to include any necessary information for the capture action.

finalboolean

The final parameter indicates if multiple partial captures are expected, if the value is false and the captured amount is less than the authorized amount then multiple partial captures can be applied until reaching the original authorized amount, if the value is true or the parameter is not sent the capture will be treated as a final capture and no further capture request will be accepted for it.

Example request

{
  "amount": {
    "value": "12.50",
    "currency": "EUR"
  },
  "reasonDescription": "Customer's automatic subscription.",
  "meta": {
    "order": {
      "storeId": "store-123",
      "reference": "order_3573894940903",
      "placement": {
        "country": {
          "code": "DE"
        },
        "city": "Berlin"
      },
      "deliveryAddress": {
        "city": "Ankeborg",
        "country": {
          "code": "SE"
        },
        "doorNumber": "1",
        "street": "Stargatan",
        "postalCode": "12345",
        "name": "Peter",
        "lastName": "Parker",
        "email": "notbatman@gmail.com"
      },
      "billingAddress": {
        "city": "Ankeborg",
        "country": {
          "code": "SE"
        },
        "doorNumber": "1",
        "street": "Stargatan",
        "postalCode": "12345",
        "name": "Bruno",
        "lastName": "Diaz",
        "email": "iambatman@gmail.com"
      },
      "lines": [
        {
          "id": "123",
          "quantity": 1,
          "taxPercentage": {
            "value": "5"
          },
          "description": "Delicious Beer.",
          "name": "Beer 1",
          "total": {
            "value": "100",
            "currency": "SEK"
          },
          "links": {
            "productUrl": "https://www.amazingmerchant.com/products/1",
            "imageUrl": "https://www.amazingmerchant.com/products/1.jpeg"
          }
        }
      ]
    },
    "customer": {
      "reference": "1231905323475",
      "name": "FirstName",
      "lastName": "LastName",
      "email": "someone@email.com",
      "type": "VIP",
      "country": {
        "code": "SE"
      }
    },
    "clientContext": {
      "ipAddress": "217.110.239.132",
      "osType": "ios",
      "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36",
      "acceptHeader": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
      "language": "nl_NL",
      "colorDepth": 24,
      "screenHeight": 723,
      "screenWidth": 1536,
      "timeZoneOffset": 0,
      "javaEnabled": true,
      "javaScriptEnabled": true,
      "cookiesAccepted": true,
      "origin": "https://merchant.com/checkout",
      "host": "merchant.com"
    },
    "vendor": {
      "reference": "vendor-123",
      "name": "Cool Restaurant"
    },
    "risk": {
      "score": "80",
      "skipPaymentProviderRules": false,
      "force3DS": true,
      "threeDSMode": "Default",
      "allowNative3DS": true,
      "sessionId": "34567890123",
      "exemptionIndicator": "lowValue"
    },
    "subscription": {
      "chargeFrequency": "P2D",
      "expiration": "2000-09-01"
    },
    "tags": {
      "customKey": "customValue"
    }
  }
}

Response

The payment capture was requested.

name'capture' required

Triggers the selected payments on PSP and book the movements on the ledger.

actionIdstring uuid required

Unique identifier for this action execution. If its processing is done asynchronously, you will receive a notification with the same actionId.

workspaceIdstring uuid

Unique identifier of a workspace in Payrails.

executedAtstring date-time required

Date and time when execution of the Action was started.

reason'BetterPrice' | 'CustomerDontNeed' | 'DamagedProduct' | 'Duplicate' | 'FraudulentProduct' | 'LateDelivery' | 'NoReason' | 'ProductMismatchDescription' | 'WrongProduct' | 'WrongProductSpecification'

Reason for invoking the operation or action.

reasonDescriptionstring

An optional field to include any necessary information for the capture action.

Example response

{
  "reasonDescription": "Monthly subscription."
}