Import a batch of payment transactions settled outside the platform Beta

Add MCP server to your AI tool

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

https://developer.pace.cloud/doc/payment/mcp

Standard setup for AI tools providing an mcp.json file

mcp.json
{
  "Payment MCP server": {
    "url": "https://developer.pace.cloud/doc/payment/mcp"
  }
}

Close
POST /2026-4/payment-transaction-imports

Imports payment transactions that were settled outside the platform, so they appear in the transaction history next to platform transactions. The import never moves money: the records are stored as they are, as IMPORTED transactions that can neither be captured, cancelled nor documented. Every record is decided individually - imported, skipped because its external id was imported before, or failed with a reason - and include=items reports each result, so a partially failed batch is retried with the failed records only. A malformed record rejects the whole request instead.

Query parameters

  • include array[string]

    Related resources to include in the response.

    Value is items.

application/json

Body Required

  • clientId string

    The identifier of the client the imported transactions belong to. Required if not requesting with the :authenticated scope, which defaults it to the requesting client and allows no other.

  • transactions array[object] Required

    The transactions to import, at most 100 per request. Each externalId must be unique within the request. A single malformed entry rejects the whole request; larger backfills page through multiple requests.

    At least 1 but not more than 100 elements.

    Hide transactions attributes Show transactions attributes object
    • additionalData object

      Free-form JSON object of integration-specific fields, e.g. a card scheme reference or an odometer reading. Stored and returned exactly as received, not interpreted, and visible to everyone who may read the transaction.

      Additional properties are allowed.

    • authorizedAmount string(decimal) Required

      The amount that was originally authorized, e.g. a pre-authorization at the pump. May differ from the captured amount; repeat the captured amount if the origin system does not report it separately.

      Minimum value is 0.

    • authorizedAt string(date-time) Required

      When the authorization happened. Must be in the past and not after capturedAt; repeat capturedAt if the origin system does not report it separately.

    • capturedAmount string(decimal) Required

      The amount that was captured, which is what the user was charged.

      Minimum value is 0.

    • capturedAt string(date-time) Required

      When the payment settled outside the platform. Must be in the past. An imported transaction is always CAPTURED.

    • currency string Required

      The currency of the transaction.

    • externalId string Required

      The identifier the importing system assigns to the transaction. Unique per importing client across its imports and users: re-sending an id is a no-op that reports the record as SKIPPED. Another client may use the same id without interfering.

      Minimum length is 1, maximum length is 255.

    • language string Required

      The language the transaction's labels (products, configurations) are in.

      Values are DA, DE, EN, CS, ES, FR, IT, NL, PL, PT, RO, or RU.

    • paymentMethodId string(uuid) Required

      The unique identifier of the payment method the transaction was paid with. Must exist and belong to the user; the transaction's kind is derived from it.

    • poi object

      The point of interaction (POI) where the transaction took place. Omit if the origin system does not know it; its identifier alone may be omitted when the site cannot be resolved to one.

      Hide poi attributes Show poi attributes object
      • address object Required

        The address of the point of interest (POI).

        Hide address attributes Show address attributes object
        • city string Required

          The city of the POI address.

        • country string Required

          The country of the POI address.

        • houseNumber string | null Required

          The house number of the POI address.

        • postalCode string Required

          The postal code of the POI address.

        • street string Required

          The street name of the POI address.

      • id string(uuid)

        The unique identifier of the point of interest (POI) the transaction took place at. Omit if the importing system cannot resolve the site to one.

      • name string Required

        The name of the point of interest (POI).

    • products array[object] Required

      The products of the transaction, at least one.

      At least 1 element.

      Hide products attributes Show products attributes object
      • configurations object Required

        The configurations of the product, each named once, as its type requires them. A configuration's value is the platform-defined identifier, independent of the transaction's language, while its label is the text shown to the user in that language.

        One of:
      • label string Required

        The label of the product, in the transaction's language.

      • priceExcludingVAT string(decimal) Required

        The total price of this product excluding VAT.

        Minimum value is 0.

      • priceIncludingVAT string(decimal) Required

        The total price of this product including VAT.

        Minimum value is 0.

      • pricePerUnitExcludingVAT string(decimal) Required

        The price per unit of the product excluding VAT.

        Minimum value is 0.

      • pricePerUnitIncludingVAT string(decimal) Required

        The price per unit of the product including VAT.

        Minimum value is 0.

      • quantity string(decimal) Required

        The quantity of the product.

        Minimum value is 0.

      • type string Required

        The type of the product.

      • unit string Required

        The unit of the product.

      • vatAmount string(decimal) Required

        The VAT amount of the product.

        Minimum value is 0.

      • vatRate string(decimal) Required

        The VAT rate of the product from 0 (0%) to 1 (100%).

        Minimum value is 0, maximum value is 1.

    • summary object Required

      The totals of the transaction, in the transaction's currency. Each total must equal the sum of the corresponding field across the products: totalAmountExcludingVAT the sum of their priceExcludingVAT, totalAmountIncludingVAT the sum of their priceIncludingVAT, and vatAmount the sum of their vatAmount.

      Hide summary attributes Show summary attributes object
      • currency string Required

        The currency of the transaction. This value matches the currency of each product in the transaction.

      • totalAmountExcludingVAT string(decimal) Required

        The total transaction amount excluding VAT.

        Minimum value is 0.

      • totalAmountIncludingVAT string(decimal) Required

        The total transaction amount including VAT.

        Minimum value is 0.

      • vatAmount string(decimal) Required

        The total VAT amount for the transaction.

        Minimum value is 0.

  • userId string(uuid)

    The unique identifier of the user the imported transactions belong to. Required if not requesting with the :authenticated scope, which defaults it to the authenticated user and allows no other.

Responses

  • 201 application/json

    The import was processed. Request include=items for the result of every record.

    Hide response attribute Show response attribute object
    • data object Required

      The created import with the result of every submitted record.

      Hide data attributes Show data attributes object
      • clientId string Required

        The identifier of the client that submitted the import, read from its access token.

      • counts object Required

        How many records ended up with which result.

        Hide counts attributes Show counts attributes object
        • failed integer Required

          The number of records that were rejected.

          Minimum value is 0.

        • imported integer Required

          The number of records that created a transaction.

          Minimum value is 0.

        • skipped integer Required

          The number of records whose external id was already imported and that were left unchanged.

          Minimum value is 0.

        • total integer Required

          The number of records that were submitted.

          Minimum value is 0.

      • createdAt string(date-time) Required

        When the import was created.

      • id string(uuid) Required

        The unique identifier of the import.

      • items array[object]

        The result of every submitted record, ordered by position. Only present when requested via the include query parameter.

        Hide items attributes Show items attributes object
        • externalId string Required

          The identifier the importing system assigned to the record.

        • failureCode string | null Required

          Why the record was rejected; null unless the result is FAILED. PAYMENT_METHOD_NOT_FOUND: the payment method is not one of the import user's, which covers a method the payment integration does not know and one that belongs to somebody else.

        • position integer Required

          The 0-based index of the record in the submitted transactions array.

          Minimum value is 0.

        • result string Required

          What became of the record. IMPORTED: a transaction was created. SKIPPED: the external id was already imported, the existing transaction is left unchanged. FAILED: the record was rejected, see failureCode.

          Values are IMPORTED, SKIPPED, or FAILED.

        • transactionId string(uuid) | null Required

          The transaction the record refers to: the one this import created (IMPORTED), the one that already carried the external id (SKIPPED), or null (FAILED).

      • status string Required

        The summary of the record results. COMPLETED: no record failed (skipped records count as success). PARTIAL: some records failed, the others were imported or skipped. FAILED: every record failed. Imports are processed synchronously, so there is no in-progress value.

        Values are COMPLETED, PARTIAL, or FAILED.

      • updatedAt string(date-time) Required

        When the import was last updated.

      • userId string(uuid) Required

        The unique identifier of the user the imported transactions belong to.

  • 400

    The request body is invalid: a missing client or user, a malformed record, a duplicate external id, an empty or too large batch, an authorization after its capture, a timestamp in the future, invalid product configurations, or totals that do not match the products. Nothing was imported.

  • 401

    Client authentication failed.

  • 403

    The caller may only import its own transactions and named another client or another user.

    Missing one or more required scopes.

  • 500

    An internal server error occurred.

POST /2026-4/payment-transaction-imports
curl \
 --request POST 'https://api.pace.cloud/payment/2026-4/payment-transaction-imports' \
 --header "Authorization: Bearer $ACCESS_TOKEN" \
 --header "Content-Type: application/json" \
 --data '{
  "clientId": "pace-drive-app",
  "transactions": [
    {
      "additionalData": {
        "cardSchemeReference": "MCC-5541",
        "legacyInvoiceNo": "R-2024-88213",
        "odometerKm": 143902
      },
      "authorizedAmount": "80.00",
      "authorizedAt": "2024-03-11T09:38:12.000Z",
      "capturedAmount": "46.87",
      "capturedAt": "2024-03-11T09:42:00.000Z",
      "currency": "EUR",
      "externalId": "dkv:TXN-2024-0009182",
      "language": "DE",
      "paymentMethodId": "b4fd81c9-8969-4323-98b7-855a7d7f0d60",
      "poi": {
        "address": {
          "city": "Karlsruhe",
          "country": "DE",
          "houseNumber": "18",
          "postalCode": "76131",
          "street": "Haid-und-Neu-Straße"
        },
        "id": "154e01ae-557a-48b3-a68a-609f1507db1d",
        "name": "PACE Fuel Station"
      },
      "products": [
        {
          "configurations": {
            "label": "Pump Number",
            "name": "PUMP_NUMBER",
            "type": "INPUT",
            "value": "100.00"
          },
          "label": "Diesel",
          "priceExcludingVAT": "39.39",
          "priceIncludingVAT": "46.87",
          "pricePerUnitExcludingVAT": "1.020",
          "pricePerUnitIncludingVAT": "1.214",
          "quantity": "38.62",
          "type": "FUELING",
          "unit": "LITER",
          "vatAmount": "7.48",
          "vatRate": "0.19"
        }
      ],
      "summary": {
        "currency": "EUR",
        "totalAmountExcludingVAT": "88.90",
        "totalAmountIncludingVAT": "104.84",
        "vatAmount": "15.94"
      }
    }
  ],
  "userId": "a1c782d9-7a6c-4e5a-b05b-1d11b93c510a"
}'
Request examples
{
  "clientId": "pace-drive-app",
  "transactions": [
    {
      "additionalData": {
        "cardSchemeReference": "MCC-5541",
        "legacyInvoiceNo": "R-2024-88213",
        "odometerKm": 143902
      },
      "authorizedAmount": "80.00",
      "authorizedAt": "2024-03-11T09:38:12.000Z",
      "capturedAmount": "46.87",
      "capturedAt": "2024-03-11T09:42:00.000Z",
      "currency": "EUR",
      "externalId": "dkv:TXN-2024-0009182",
      "language": "DE",
      "paymentMethodId": "b4fd81c9-8969-4323-98b7-855a7d7f0d60",
      "poi": {
        "address": {
          "city": "Karlsruhe",
          "country": "DE",
          "houseNumber": "18",
          "postalCode": "76131",
          "street": "Haid-und-Neu-Straße"
        },
        "id": "154e01ae-557a-48b3-a68a-609f1507db1d",
        "name": "PACE Fuel Station"
      },
      "products": [
        {
          "configurations": {
            "label": "Pump Number",
            "name": "PUMP_NUMBER",
            "type": "INPUT",
            "value": "100.00"
          },
          "label": "Diesel",
          "priceExcludingVAT": "39.39",
          "priceIncludingVAT": "46.87",
          "pricePerUnitExcludingVAT": "1.020",
          "pricePerUnitIncludingVAT": "1.214",
          "quantity": "38.62",
          "type": "FUELING",
          "unit": "LITER",
          "vatAmount": "7.48",
          "vatRate": "0.19"
        }
      ],
      "summary": {
        "currency": "EUR",
        "totalAmountExcludingVAT": "88.90",
        "totalAmountIncludingVAT": "104.84",
        "vatAmount": "15.94"
      }
    }
  ],
  "userId": "a1c782d9-7a6c-4e5a-b05b-1d11b93c510a"
}
Response examples (201)
{
  "data": {
    "clientId": "backoffice-importer",
    "counts": {
      "failed": 1,
      "imported": 1,
      "skipped": 1,
      "total": 3
    },
    "createdAt": "2026-07-20T10:15:00.000Z",
    "id": "9b1c0f4e-2f3a-4c5d-8e6f-7a8b9c0d1e2f",
    "items": [
      {
        "externalId": "dkv:TXN-2024-0009182",
        "failureCode": "PAYMENT_METHOD_NOT_FOUND",
        "position": 0,
        "result": "IMPORTED",
        "transactionId": "6fc2acbd-3afd-4df3-9967-836a7929b13f"
      }
    ],
    "status": "PARTIAL",
    "updatedAt": "2026-07-20T10:15:00.000Z",
    "userId": "a1c782d9-7a6c-4e5a-b05b-1d11b93c510a"
  }
}