Worldpay SplitPayments API
The SplitPayments API from Worldpay — 3 operation(s) for splitpayments.
The SplitPayments API from Worldpay — 3 operation(s) for splitpayments.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/worldpay-splitpayments-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Split Payments API
description: Divide funds from a single payment amongst yourself and your parties/sellers.
version: '2025-06-25'
x-metadata:
business:
- Enterprise
- Marketplaces
catalog-list: true
category:
- Card Payments
generated: true
servers:
- url: https://try.access.worldpay.com
description: Test (Try)
- url: https://access.worldpay.com
description: Live
security:
- BasicAuth: []
tags:
- name: SplitPayments
paths:
/splitPayments:
post:
summary: Create split payments request
description: Create a request allowing you to split your payment.
operationId: splitPayments
parameters:
- name: Content-Type
in: header
description: The Content-Type.
required: true
schema:
type: string
description: The Content-Type.
example: application/json
example: application/json
- name: WP-Api-Version
in: header
description: The API version.
required: true
schema:
type: string
description: The API version.
example: '2025-06-25'
example: '2025-06-25'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SplitRequest'
examples:
SplitPayment:
$ref: '#/components/examples/split'
required: true
responses:
'201':
description: Merchant Pay-in accepted
headers:
WP-CorrelationId:
example: c85762a8-93af-47e7-beae-345d3dddbe94
schema:
type: string
format: uuid
content:
application/json:
schema:
$ref: '#/components/schemas/SplitResponse'
examples:
Purchase:
$ref: '#/components/examples/split-201'
'400':
description: Bad request format or data
headers:
WP-CorrelationId:
example: c85762a8-93af-47e7-beae-345d3dddbe94
schema:
type: string
format: uuid
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponseWithValidationErrors'
examples:
headerIsMissing:
$ref: '#/components/examples/400-headerIsMissing'
bodyIsEmpty:
$ref: '#/components/examples/400-bodyIsEmpty'
bodyIsNotJson:
$ref: '#/components/examples/400-bodyIsNotJson'
bodyDoesNotMatchSchema:
$ref: '#/components/examples/400-bodyDoesNotMatchSchema'
'401':
description: Un-authorized access, Insufficient permissions to fulfil request.
headers:
WP-CorrelationId:
example: c85762a8-93af-47e7-beae-345d3dddbe94
schema:
type: string
format: uuid
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse401'
examples:
unauthorizedAccess:
$ref: '#/components/examples/401-unauthorizedAccess'
headerHasInvalidValue:
$ref: '#/components/examples/401-headerHasInvalidValue'
headerIsMissing:
$ref: '#/components/examples/401-headerIsMissing'
'406':
description: The API version is not supported
headers:
WP-CorrelationId:
example: c85762a8-93af-47e7-beae-345d3dddbe94
schema:
type: string
format: uuid
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse406'
examples:
headerHasInvalidValue:
$ref: '#/components/examples/406'
'415':
description: Media type not supported
headers:
WP-CorrelationId:
example: c85762a8-93af-47e7-beae-345d3dddbe94
schema:
type: string
format: uuid
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse415'
examples:
headerHasInvalidValue:
$ref: '#/components/examples/415'
'422':
description: Wrong party info, or no balanceAccount
headers:
WP-CorrelationId:
example: c85762a8-93af-47e7-beae-345d3dddbe94
schema:
type: string
format: uuid
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse422'
examples:
fieldHasInvalidValue:
$ref: '#/components/examples/422-FieldHasInvalidValue'
fieldIsMissing:
$ref: '#/components/examples/422-FieldIsMissing'
'500':
description: internalErrorOccurred
headers:
WP-CorrelationId:
example: c85762a8-93af-47e7-beae-345d3dddbe94
schema:
type: string
format: uuid
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse500'
examples:
Internal server error:
$ref: '#/components/examples/500'
x-noTag: noTag
x-orderingPosition: '1'
tags:
- SplitPayments
/splitPayments/{splitPaymentId}/fulfillments:
post:
summary: Fully settle/refund a payment
description: Confirm a settlement/refund of all line items within a split payment.
operationId: fullCaptureFulfillments
parameters:
- name: splitPaymentId
in: path
required: true
schema:
type: string
minLength: 25
maxLength: 25
pattern: ^spl[A-Za-z0-9_-]{21}0$
example: spld1dcd2dee333cae1bfdea0
description: ID of the split payment.
- name: Content-Type
in: header
description: The Content-Type.
required: true
schema:
type: string
description: The Content-Type
example: application/json
example: application/json
- name: WP-Api-Version
in: header
description: The API version.
required: true
schema:
type: string
description: The API version.
example: '2025-06-25'
example: '2025-06-25'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/FulfillmentsRequest'
examples:
Full Settlement:
$ref: '#/components/examples/FulfillmentsRequest'
Full Refund:
$ref: '#/components/examples/RefundRequest'
required: true
responses:
'201':
description: Merchant Pay-in accepted
headers:
WP-CorrelationId:
example: c85762a8-93af-47e7-beae-345d3dddbe94
schema:
type: string
format: uuid
content:
application/json:
schema:
$ref: '#/components/schemas/FulfillmentsResponse'
examples:
Full Settlement:
$ref: '#/components/examples/fulfillments-201'
'400':
description: Bad request format or data
headers:
WP-CorrelationId:
example: c85762a8-93af-47e7-beae-345d3dddbe94
schema:
type: string
format: uuid
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponseWithValidationErrors'
examples:
headerIsMissing:
$ref: '#/components/examples/400-headerIsMissing'
bodyIsEmpty:
$ref: '#/components/examples/400-bodyIsEmpty'
bodyIsNotJson:
$ref: '#/components/examples/400-bodyIsNotJson'
bodyDoesNotMatchSchema:
$ref: '#/components/examples/400-bodyDoesNotMatchSchema'
'401':
description: Un-authorized access, insufficient permissions to fulfil request
headers:
WP-CorrelationId:
example: c85762a8-93af-47e7-beae-345d3dddbe94
schema:
type: string
format: uuid
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse401'
examples:
unauthorizedAccess:
$ref: '#/components/examples/401-unauthorizedAccess'
headerHasInvalidValue:
$ref: '#/components/examples/401-headerHasInvalidValue'
headerIsMissing:
$ref: '#/components/examples/401-headerIsMissing'
'406':
description: The API version is not supported
headers:
WP-CorrelationId:
example: c85762a8-93af-47e7-beae-345d3dddbe94
schema:
type: string
format: uuid
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse406'
examples:
headerHasInvalidValue:
$ref: '#/components/examples/406'
'415':
description: Media type not supported
headers:
WP-CorrelationId:
example: c85762a8-93af-47e7-beae-345d3dddbe94
schema:
type: string
format: uuid
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse415'
examples:
headerHasInvalidValue:
$ref: '#/components/examples/415'
'500':
description: internalErrorOccurred
headers:
WP-CorrelationId:
example: c85762a8-93af-47e7-beae-345d3dddbe94
schema:
type: string
format: uuid
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse500'
examples:
Internal server error:
$ref: '#/components/examples/500'
x-orderingPosition: '2'
tags:
- SplitPayments
/splitPayments/{splitPaymentId}/items/{itemId}/fulfillments:
post:
summary: Partially settle/refund a payment
description: Confirm a settlement/refund of individual line items within a payment.
operationId: singItemCaptureFulfillments
parameters:
- name: splitPaymentId
in: path
required: true
schema:
type: string
minLength: 25
maxLength: 25
pattern: ^spl[A-Za-z0-9_-]{21}0$
example: spld1dcd2dee333cae1bfdea0
description: ID of the split payment.
- name: itemId
in: path
required: true
schema:
$ref: '#/components/schemas/ItemID'
description: ID of the line item listed in a split payment request.
- name: Content-Type
in: header
description: The Content-Type.
required: true
schema:
type: string
example: application/json
example: application/json
- name: WP-Api-Version
in: header
schema:
type: string
description: The API version.
example: '2025-06-25'
example: '2025-06-25'
required: true
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ItemFulfillmentsRequest'
examples:
Single Item Settlement:
$ref: '#/components/examples/FulfillmentRequestSingle'
Single Item Refund:
$ref: '#/components/examples/RefundRequest'
required: true
responses:
'201':
description: Merchant Pay-in accepted
headers:
WP-CorrelationId:
example: c85762a8-93af-47e7-beae-345d3dddbe94
schema:
type: string
format: uuid
content:
application/json:
schema:
$ref: '#/components/schemas/ItemFulfillmentsResponse'
examples:
Single Item Settlement:
$ref: '#/components/examples/fulfillments-201'
'400':
description: Bad request format or data
headers:
WP-CorrelationId:
example: c85762a8-93af-47e7-beae-345d3dddbe94
schema:
type: string
format: uuid
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponseWithValidationErrors'
examples:
headerIsMissing:
$ref: '#/components/examples/400-headerIsMissing'
bodyIsEmpty:
$ref: '#/components/examples/400-bodyIsEmpty'
bodyIsNotJson:
$ref: '#/components/examples/400-bodyIsNotJson'
bodyDoesNotMatchSchema:
$ref: '#/components/examples/400-bodyDoesNotMatchSchema'
'401':
description: Un-authorized access, insufficient permissions to fulfil request
headers:
WP-CorrelationId:
example: c85762a8-93af-47e7-beae-345d3dddbe94
schema:
type: string
format: uuid
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse401'
examples:
unauthorizedAccess:
$ref: '#/components/examples/401-unauthorizedAccess'
headerHasInvalidValue:
$ref: '#/components/examples/401-headerHasInvalidValue'
headerIsMissing:
$ref: '#/components/examples/401-headerIsMissing'
'406':
description: The API version is not supported
headers:
WP-CorrelationId:
example: c85762a8-93af-47e7-beae-345d3dddbe94
schema:
type: string
format: uuid
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse406'
examples:
headerHasInvalidValue:
$ref: '#/components/examples/406'
'415':
description: Media type not supported
headers:
WP-CorrelationId:
example: c85762a8-93af-47e7-beae-345d3dddbe94
schema:
type: string
format: uuid
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse415'
examples:
headerHasInvalidValue:
$ref: '#/components/examples/415'
'500':
description: internalErrorOccurred
headers:
WP-CorrelationId:
example: c85762a8-93af-47e7-beae-345d3dddbe94
schema:
type: string
format: uuid
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse500'
examples:
Internal server error:
$ref: '#/components/examples/500'
x-orderingPosition: '3'
tags:
- SplitPayments
components:
schemas:
ItemFulfillmentsRequest:
required:
- paymentCommandId
- transactionType
type: object
properties:
reference:
maxLength: 64
minLength: 1
pattern: ^[-A-Za-z0-9_!@#$%()*=.:;?\[\]{}~`/+]*$
type: string
description: Command reference generated by you.
description:
type: string
maxLength: 50
description: Description of the fulfillment
example: optional description of fulfillment
paymentCommandId:
$ref: '#/components/schemas/PaymentCommandID'
transactionType:
$ref: '#/components/schemas/TransactionType'
ErrorResponse415:
type: object
required:
- errorName
- message
properties:
errorName:
type: string
description: A header 'Content-Type' in the request does not contain an expected value. Content-type must be - 'application/json'
message:
type: string
description: A human readable message giving a corrective action for the error. *This is not for machine consumption*.
ItemFulfillmentsResponse:
type: object
properties:
fulfillment:
type: string
description: Update status to fulfilled
ItemID:
type: string
description: Unique reference generated by us to identify a line item.
minLength: 25
maxLength: 25
pattern: ^itm[A-Za-z0-9_-]{21}0$
LineItems:
type: array
items:
required:
- itemReference
- partyReference
- amount
type: object
properties:
itemReference:
maxLength: 64
minLength: 1
pattern: ^[-A-Za-z0-9_!@#$%()*=.:;?\[\]{}~`/+]*$
type: string
description: Unique reference generated by you to identify a line item.
partyReference:
maxLength: 64
minLength: 1
type: string
description: Unique reference generated by you to identify a party.
amount:
$ref: '#/components/schemas/Amount'
description:
maxLength: 50
pattern: ^[a-zA-Z0-9 ,./-]*$
type: string
description: Text to appear on the customer's billing statement. Sometimes referred to as a billing descriptor. If this isn't set, the value from the merchant profile is used.
deductions:
$ref: '#/components/schemas/Deductions'
Merchant:
required:
- entity
type: object
properties:
entity:
maxLength: 64
minLength: 1
pattern: ^[-A-Za-z0-9_!@#$%()*=.:;?\[\]{}~`/+]*$
type: string
description: Used to route the request in Access Worldpay, created as part of on-boarding.
example: default
AutoFulfillment:
required:
- auto
- paymentCommandId
type: object
properties:
auto:
type: boolean
description: Set to 'true' for auto fulfillment, otherwise to 'false'
paymentCommandId:
$ref: '#/components/schemas/PaymentCommandID'
Value:
required:
- currency
- totalAmount
type: object
properties:
currency:
$ref: '#/components/schemas/Currency'
totalAmount:
$ref: '#/components/schemas/TotalAmount'
TotalAmount:
type: integer
example: 250
description: Implied decimal. For example, 250 GBP = £2.50.
Amount:
type: integer
example: 250
description: Implied decimal. For example, 250 GBP = £2.50
FulfillmentsResponse:
type: object
properties:
fulfillment:
type: string
description: Update status to fulfilled
TransactionType:
type: string
description: Defines the type of payment lifecycle action.
enum:
- settle
- refund
example: settle
ErrorResponse500:
type: object
required:
- errorName
- message
properties:
errorName:
type: string
enum:
- internalErrorOccurred
description: An error occurred within the service.
message:
type: string
description: A human readable message giving a corrective action for the error. *This is not for machine consumption*.
PaymentCommandID:
type: string
description: A unique ID generated by us for each lifecycle event on a payment. You have received this in the [response of your payment authorization request](/products/card-payments/openapi/other/authorize#other/authorize/t=response&c=201&path=&d=0/commandid) in our Card Payments API.
minLength: 25
maxLength: 25
pattern: ^cmd[A-Za-z0-9_-]{21}0$
ValidationError:
required:
- errorName
- message
- jsonPath
type: object
properties:
errorName:
type: string
description: A machine and human readable error type for clarity and semantic understanding of the error.
enum:
- fieldIsNull
- fieldIsEmpty
- numberIsTooLarge
- numberIsTooSmall
- stringFailedRegexCheck
message:
type: string
description: A human readable message giving a corrective action for the error. *This is not for machine consumption*.
jsonPath:
type: string
description: The field presents the JSONPath of th element within the request body associated with the error.
SplitRequest:
required:
- reference
- fulfillment
- merchant
- value
- lineItems
properties:
reference:
type: string
description: Reference for the split payments generated by you.
description:
maxLength: 50
pattern: ^[a-zA-Z0-9 ,./-]*$
type: string
description: Text to appear on the customer's billing statement. Sometimes referred to as a billing descriptor. If this isn't set, the value from the merchant profile is used.
fulfillment:
$ref: '#/components/schemas/AutoFulfillment'
merchant:
$ref: '#/components/schemas/Merchant'
value:
$ref: '#/components/schemas/Value'
lineItems:
$ref: '#/components/schemas/LineItems'
SplitResp:
type: object
properties:
items:
$ref: '#/components/schemas/LineItemsResp'
ErrorResponse401:
required:
- errorName
- message
type: object
properties:
errorName:
type: string
enum:
- unauthorizedAccess
- headerHasInvalidValue
- headerIsMissing
description: Un-authorized access, Insufficient permissions to fulfil request.
message:
type: string
description: A human readable message giving a corrective action for the error. *This is not for machine consumption*.
LineItemsResp:
type: array
items:
required:
- itemId
- itemReference
type: object
properties:
itemId:
$ref: '#/components/schemas/ItemID'
itemReference:
maxLength: 64
minLength: 1
pattern: ^[-A-Za-z0-9_!@#$%()*=.:;?\[\]{}~`/+]*$
type: string
description: Unique reference generated by you to identify a line item.
SplitPaymentID:
type: string
description: Unique reference generated by us to identify a split payment.
minLength: 25
maxLength: 25
pattern: ^spl[A-Za-z0-9_-]{21}0$
ErrorResponse406:
type: object
required:
- errorName
- message
properties:
errorName:
type: string
description: A header 'WP-Api-Version' or URL path in the request is misconfigured
message:
type: string
description: A human readable message giving a corrective action for the error. *This is not for machine consumption*.
FulfillmentsRequest:
required:
- paymentCommandId
- transactionType
type: object
properties:
reference:
maxLength: 64
minLength: 1
pattern: ^[-A-Za-z0-9_!@#$%()*=.:;?\[\]{}~`/+]*$
type: string
description: A reference generated by you to identify each lifecycle event of a payment.
description:
type: string
maxLength: 50
description: Description of the fulfillment
example: optional description of fulfillment
paymentCommandId:
$ref: '#/components/schemas/PaymentCommandID'
transactionType:
$ref: '#/components/schemas/TransactionType'
Deductions:
type: array
items:
type: object
required:
- type
- value
properties:
type:
type: string
description: Type of deduction.
enum:
- commission
- fee
example: commission
value:
type: object
required:
- type
- amount
properties:
type:
type: string
description: Type of value.
enum:
- percentage
- flat
example: percentage
amount:
type: integer
example: 75
description: percentage or flat amount of the deduction. For example, 75 = 0.75% or £0.75
description:
type: string
maxLength: 50
description: Description of the deduction.
example: Deduction description
Currency:
type: string
description: The [3 letter ISO-4217 currency code](/products/reference/supported-countries-currencies#iso-currency-codes).
example: GBP
pattern: ^[A-Z]{3}$
ErrorResponseWithValidationErrors:
type: object
required:
- errorName
- message
properties:
errorName:
type: string
enum:
- headerIsMissing
- headerHasInvalidValue
- bodyIsEmpty
- bodyIsNotJson
- bodyDoesNotMatchSchema
message:
type: string
description: A human readable message giving a corrective action for the error. *This is not for machine consumption*.
validationErrors:
type: array
description: If there were field validation errors, they will be collected in this array.
items:
$ref: '#/components/schemas/ValidationError'
ErrorResponse422:
type: object
required:
- errorName
- message
properties:
errorName:
type: string
enum:
- fieldIsMissing
- fieldHasInvalidValue
description: A machine and human readable error type for clarity and semantic understanding of the error.
example: fieldHasInvalidValue
message:
type: string
description: A human readable message giving a corrective action for the error. *This is not for machine consumption*.
SplitResponse:
type: object
required:
- splitPaymentId
- lineItems
properties:
splitPaymentId:
$ref: '#/components/schemas/SplitPaymentID'
lineItems:
$ref: '#/components/schemas/SplitResp'
examples:
fulfillments-201:
value:
fulfillment: accepted
400-bodyDoesNotMatchSchema:
value:
errorName: bodyDoesNotMatchSchema
message: There were field validation errors. The errors that occurred are within the validationErrors array.
validationErrors:
- errorName: fieldIsEmpty
message: must not be blank
jsonPath: domain
- errorName: fieldIsEmpty
message: must not be blank
jsonPath: subject
split:
description: Example request for creating a split payment
value:
reference: 5D262CB9-57F2-4176-AA7C-B76A79284277
description: optional split payment description
fulfillment:
auto: false
paymentCommandId: cmdJxsTja3Daad6dig338w2R0
merchant:
entity: default
value:
currency: GBP
totalAmount: 10000
lineItems:
- itemReference: aaa1
partyReference: The Baker Street Café
amount: 9000
description: Item description
deductions:
- type: commission
value:
type: percentage
amount: 1
description: Deduction description
- itemReference: bbb1
partyReference: John Watson
amount: 1000
description: Item description
deductions:
- type: fee
value:
type: flat
amount: 200
description: Deduction description
FulfillmentRequestSingle:
value:
reference: 5D262CB9-57F2-4176-AA7C-B76A79284276
description: optional description of fulfillment
paymentCommandId: cmdJxsTja3Daad6dig338w2R0
transactionType: settle
400-bodyIsNotJson:
value:
errorName: bodyIsNotJson
message: The body within the request is not a valid JSON. This body is required to be a valid JSON.
'415':
value:
errorName: headerHasInvalidValue
message: A header 'Content-Type' in the request does not contain an expected value. Content-type must be - application/vnd.worldpay.split-payments-service-v1+json
split-201:
value:
splitPaymentId: spl9wdyDYROy6-boa2mSFfn20
lineItems:
- itemId: itmZRsCU4vjopY6q9HH9znXQ0
itemReference: aaa1
- itemId: itmO9IHhLjjamTh9oHcR1wH-0
itemReference: bbb1
401-headerHasInvalidValue:
value:
errorName: headerHasInvalidValue
message: A header 'WP-CorrelationId' in the request does not contain an expected pattern.
RefundRequest:
value:
reference: 5D262CB9-57F2-4176-AA7C-B76A79284276
description: optional description of fulfillment
paymentCommandId: cmdJxsTja3Daad6dig338w2R0
transactionType: refund
422-FieldIsMissing:
value:
errorName: fieldIsMissing
message: There is no payoutInstrument for the settlement currency, to resolve this please create a payoutInstrument by calling POST /parties/{{this}}/payoutInstruments for the settlement currency.
401-headerIsMissing:
value:
errorName: headerIsMissing
message: A required header field is missing.
401-unauthorizedAccess:
value:
errorName: unauthorizedAccess
message: The provided secret does not contain valid authentication.
'406':
value:
errorName: headerHasInvalidValue
message: A header 'Accept' in the request does not contain an expected pattern. It must be application/json, or not set.
FulfillmentsRequest:
value:
reference: 5D262CB9-57F2-4176-AA7C-B76A79284276
description: optional description of fulfillment
paymentCommandId: cmdJxsTja3Daad6dig338w2R0
transactionType: settle
400-headerIsMissing:
value:
errorName: headerIsMissing
message: A mandatory request header field is missing. The name of the missing request header field is %s.
400-bodyIsEmpty:
value:
errorName: bodyIsEmpty
message: The body within the request is empty. A body is required to be non-empty.
'500':
value:
errorName: internalErrorOccurred
message: An error occurred within the service.
422-FieldHasInvalidValue:
value:
errorName: fieldHasInvalidValue
message: The party with reference '{{input reference } }' is not active, please re-activate it before using it for payIns or payOuts.
securitySchemes:
BasicAuth:
type: http
scheme: basic