Cards v4 - Credit Card Transaction

Create Card Transactions (Bulk)

Endpoint to create credit card transactions as bulk operation. Assuming that the request is properly authorized and the schema validation passes, the API immediately returns 202 (Request Accepted) and performs the actual processing asynchronously.

Scopes

cards.transaction.writeonly - Refer to Scope Usage for full details.

URI

POST https://{datacenterURI}/cards/v4/companies/{companyId}/transactions/bulk

Parameters

Name Type Format Description
companyId string - Required The unique identifier of the SAP Concur company.

Payloads

Notes:

  • This API can only be used for creating new transactions. If the same externalId is sent a second time, it will be ignored with an error during processing.
  • The externalId is a unique identifier for a card transaction as defined by an external system (outside the SAP Concur platform). It must not contain the primary account number (PAN). It may contain the same value as referenceNumber as long as it is unique.
  • A transaction contains a reference to an account using the account externalId. Referenced accounts need to be created via Card Accounts (Bulk) API.
  • The authorizationExternalId can be used to reference a posted transaction to a preceding authorization. In this case the authorization will be overwritten by the posted transaction.
  • A transaction can only contain one type of addendum data (car rental, fleet, lodging, purchase, or travel) at the same time.

Headers

HTTP Status Codes

In case of success, HTTP status code 202 (Request Accepted) is returned. In case of a bad request, HTTP status code 400 (Bad Request) is returned along with an error code describing the cause. Possible error codes are: invalidRequest, invalidJson. For invalidRequest the error response usually contains a detailed error list.

To learn more about response HTTP status codes for this API see HTTP Status Codes.

Examples

Valid Request

POST https://us.api.concursolutions.com/cards/v4/companies/1700f4bc-4166-4516-bffe-91d7ae423189/transactions/bulk
Content-Type: application/json
Accept: application/json
Authorization: Bearer {token}
Concur-CorrelationId: 90f23ece-cb6c-476f-818d-1412bdb23749
{
  "transactions": [{
      "account": {
        "externalId": "59edf00e-6e0a-46c4-bf59-c233000c5b98"
      },
      "billedAmount": {
        "currencyCode": "USD",
        "value": 405.10
      },
      "description": "ACME Hotels,123-456-7890,Seattle",
      "externalId": "1047ecc3-bc47-4b2f-bcf5-6c8e13291338",
      "lodging": {
        "charges": [{
            "amount": {
              "currencyCode": "USD",
              "value": 19.90
            },
            "name": "INTNT"
          }
        ],
        "checkInDate": "2022-08-14",
        "checkOutDate": "2022-08-17",
        "dailyRoomRate": {
          "currencyCode": "USD",
          "value": 120
        },
        "folioNumber": "F344145-51VD",
        "guestName": "DOE,JOHN",
        "lodgingAddress": {
          "city": "Vancouver",
          "countryCode": "CA",
          "state": "BC",
          "streetAddress": "433 Hotel Street",
          "zip": "v6b 6l9"
        },
        "numberOfRoomNights": 3,
        "numberOfRooms": 1,
        "totalLodgingAmount": {
          "currencyCode": "USD",
          "value": 360
        },
        "totalNonRoomChargeAmount": {
          "currencyCode": "USD",
          "value": 19.90
        },
        "totalTaxAmount": {
          "currencyCode": "USD",
          "value": 25.2
        }
      },
      "merchant": {
        "address": {
          "city": "Seattle",
          "countryCode": "US",
          "state": "WA",
          "streetAddress": "1 Hotel Way",
          "zip": "90001"
        },
        "categoryCode": "7011",
        "doingBusinessAs": "ACME Hotels",
        "id": "ACME34393",
        "name": "ACME Corporation"
      },
      "postedAmount": {
        "currencyCode": "USD",
        "value": 405.10
      },
      "postedDate": "2018-08-19",
      "referenceNumber": "gWp859SqAX97DsIVt5aoZmSNh4y8iH6qc",
      "transactionAmount": {
        "currencyCode": "USD",
        "value": 405.10
      },
      "transactionDate": "2018-08-17",
      "transactionDateTime": "2018-08-17T09:15:23.000",
      "type": "RPE"
    }
  ]
}

Success Response

202 Accepted
Content-Type: application/json
{
  "links": [
    {
      "href": "https://us.api.concursolutions.com/cards/v4/companies/1700f4bc-4166-4516-bffe-91d7ae423189/bulkrequests/55e45023-813f-46a2-b83c-1a0b0b7bdda6",
      "rel": "self"
    }
  ],
  "requestId": "55e45023-813f-46a2-b83c-1a0b0b7bdda6"
}

Invalid Request

POST https://us.api.concursolutions.com/cards/v4/companies/1700f4bc-4166-4516-bffe-91d7ae423189/transactions/bulk
Content-Type: application/json
Accept: application/json
Authorization: Bearer {token}
Concur-CorrelationId: 90f23ece-cb6c-476f-818d-1412bdb23749
{
  "transactions": [{
      "account": {
        "externalId": "59edf00e-6e0a-46c4-bf59-c233000c5b98"
      },
      "externalId": "1047ecc3-bc47-4b2f-bcf5-6c8e13291338-this-is-too-long-must-only-be-50-chars-max",
      "merchant": {
        "name": "ACME Corporation"
      },
      "postedDate": "2018-08-19",
      "transactionAmount": {
        "currencyCode": "USD",
        "value": 405.10
      },
      "transactionDate": "2018-08-17",
      "type": "XXX"
    }
  ]
}

Error Response

400 Bad Request
Content-Type: application/json
[
  {
    "errorCode": "invalidRequest",
    "errorMessage": "The request contains errors",
    "dataPath": "/v4/companies/1700f4bc-4166-4516-bffe-91d7ae423189/transactions/bulk",
    "errors": [
      {
        "errorCode": "invalidEnum",
        "errorMessage": "Value is not one of the allowed values",
        "dataPath": "transactions[0].type"
      },
      {
        "errorCode": "missingRequiredField",
        "errorMessage": "Missing required field",
        "dataPath": "transactions[0].postedAmount"
      },
      {
        "errorCode": "invalidFieldSize",
        "errorMessage": "size must be between 1 and 50",
        "dataPath": "transactions[0].externalId"
      }
    ]
  }
]

Retrieve Card Transactions by User

Endpoint to retrieve credit card transactions of a user. Only cleared card transactions received via file feed, or bespoke API integration are supported; Card transactions received via the Yodlee integration (including personal card transactions) are not exposed.

By default only basic transaction data is returned. It is recommended to only request required options for optimal performance. It is possible to request multiple options in one call.

This endpoint supports user level access tokens only.

Scopes

cards.transaction.read - Refer to Scope Usage for full details.

URI

GET https://{datacenterURI}/cards/v4/users/{userId}/transactions

Parameters

Name Type Format Description
userId string - Required The unique identifier of the SAP Concur user.
status array string Filter transactions by status. Allowed values: UN - Unassigned from Report, AS - Assigned to Report
transactionDateFrom date ISO 8601 YYYY-MM-DD Filter transactions from this transaction date (inclusive). Defaults to 24 months ago; cannot be earlier than 24 months in the past.
transactionDateTo date ISO 8601 YYYY-MM-DD Filter transactions up to this transaction date (inclusive).
pageSize integer - Page size (max limit: 100); default: 100
pageToken string - Next page token as returned in a previous request.
sort string - Sort criteria. Allowed values: transactionDate, lastModified; default: transactionDate
order string - Sort order (ASC - Ascending or DESC - Descending); default: DESC
includeAddendumFor array string Option to additionally fetch addendum data. Allowed values: * / all, carRental, fleet, lodging, purchase, travel; default behavior: no addendum data is returned.
includeAddendumDetailsFor array string Option to additionally fetch addendum detail data. Allowed values: * / all, fleet, lodging, purchase, travel; default behavior: no addendum detail data is returned.

Payload

Headers

HTTP Status Codes

  • 200 OK
  • 400 Bad Request
  • 401 Unauthorized
  • 403 Forbidden
  • 404 Not Found
  • 500 Internal Server Error
  • 503 Service Unavailable

To learn more about response HTTP status codes for this API see HTTP Status Codes.

Examples

Request

GET https://us.api.concursolutions.com/cards/v4/users/e48fda91-15c8-4670-afe5-6c76501813c9/transactions
Accept: application/json
Authorization: Bearer {token}
Concur-CorrelationId: 90f23ece-cb6c-476f-818d-1412bdb23749

Response

{
  "transactions": [
    {
      "type": "RPE",
      "transactionAmount": {
        "currencyCode": "USD",
        "value": 405.1
      },
      "postedAmount": {
        "currencyCode": "USD",
        "value": 405.1
      },
      "transactionDate": "2018-08-17",
      "postedDate": "2018-08-19",
      "billedAmount": {
        "currencyCode": "USD",
        "value": 405.1
      },
      "description": "ACME Hotels,123-456-7890,Seattle",
      "description2": null,
      "description3": null,
      "description4": null,
      "description5": null,
      "referenceNumber": "gWp859SqAX97DsIVt5aoZmSNh4y8iH6qc",
      "processorReferenceNumber": null,
      "acquirerReferenceNumber": null,
      "merchantReferenceNumber": null,
      "customerVatNumber": "",
      "totalTaxAmount": null,
      "taxes": [],
      "statement": {
        "referenceNumber": null,
        "billingDate": "2018-08-31"
      },
      "id": "d1c555dc",
      "companyId": "5c381619-4980-4eac-bf63-d229ce0be23b",
      "account": {
        "id": "C2593B6F67E44F4587A812CDD4105FF7",
        "lastSegment": "4801",
        "paymentType": {
          "id": "IBCP"
        },
        "cardProductType": "CORP"
      },
      "billingAccount": null,
      "administrativeData": {
        "status": "UN",
        "processType": "REG",
        "receiptImageId": null,
        "integrationPartner": "BATCH",
        "addendumType": null,
        "lastModified": "2025-08-15T18:23:34.487+00:00",
        "hasRichData": false,
        "isDeletable": false
      },
      "merchant": {
        "name": "ACME Corporation",
        "categoryCode": "7011",
        "doingBusinessAs": "ACME Hotels",
        "id": "3321329401"
        "vatNumber": "",
        "address": {
          "city": "Seattle",
          "countryCode": "US",
          "state": "WA",
          "streetAddress": "1 Hotel Way",
          "zip": "90001"
        }
      }
    }
  ],
  "paging": {
    "totalElements": 1,
    "nextPageToken": null,
    "page": 1,
    "pageSize": 1,
    "totalPages": 1
  }
}

On this page