Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
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.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/wordline-contract-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
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: Wordline Contract API
version: '1.0'
description: 'Operations tagged Contract across 2 of this provider''s published API definitions: worldline-card-issuing-api-2.41.1.json, worldline-merchant-contract-api-2.0.4.yaml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://sbx-wlip.api1-eu2.psapigateway.preprod.giservices.io/card-issuing/api/v2
- url: /MerchantApiContract/api
tags:
- name: Contract
description: Contract Api Controller
paths:
/issuers/{issuerId}/contracts/brand-advice:
post:
tags:
- Contract
summary: Get a brand selection advice (beta)
operationId: getBrandAdvice
description: "This API allows getting an advice on which brand to select for a card creation (either first card along new contract, additional card or replacement card). This is applicable for products on which brand selection is configured. \nThe API returns the product extension for the advised card brand"
parameters:
- name: WL-Correlation-ID
in: header
required: false
schema:
type: string
- name: WL-Origin
in: header
required: false
schema:
type: string
- name: WL-Username
in: header
required: false
schema:
type: string
- name: issuerId
in: path
description: Issuer ID
required: true
schema:
type: string
responses:
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestErrorApiResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedErrorApiResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenErrorApiResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundErrorApiResponse'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerErrorErrorApiResponse'
'502':
description: Bad gateway
content:
application/json:
schema:
$ref: '#/components/schemas/BadGatewayErrorApiResponse'
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponseEntityBrandAdvice'
security:
- basic: []
deprecated: true
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/BrandAdviceRequest'
required: true
servers:
- url: https://sbx-wlip.api1-eu2.psapigateway.preprod.giservices.io/card-issuing/api/v2
/issuers/{issuerId}/contracts/advise-product-extension:
post:
tags:
- Contract
summary: Advice a product extension (beta)
operationId: adviceProductExtension
description: "This API is used to get the product extension for a card creation depending on the configured algorithm. It can be used for the first card or additional card. \nThe main input fields are:\n- The issuer ID\n- The issuer product external reference for which the advice is requested.\nThe API returns the product extension advised for the card creation."
parameters:
- name: WL-Correlation-ID
in: header
required: false
schema:
type: string
- name: WL-Origin
in: header
required: false
schema:
type: string
- name: WL-Username
in: header
required: false
schema:
type: string
- name: issuerId
in: path
description: Issuer ID
required: true
schema:
type: string
responses:
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestErrorApiResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedErrorApiResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenErrorApiResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundErrorApiResponse'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerErrorErrorApiResponse'
'502':
description: Bad gateway
content:
application/json:
schema:
$ref: '#/components/schemas/BadGatewayErrorApiResponse'
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponseEntityAdviceProductExtensionResponse'
security:
- basic: []
deprecated: false
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AdviceProductExtensionRequest'
required: true
servers:
- url: https://sbx-wlip.api1-eu2.psapigateway.preprod.giservices.io/card-issuing/api/v2
/issuers/{issuerId}/contracts/brand-advice-config/{issuerProductExternalReference}:
get:
tags:
- Contract
summary: Retrieve brand advice algorithm configuration by issuer product external reference (beta)
operationId: retrieveBrandAdviceConfigByIssuerProductExtRef
description: 'The API allows the brand advice configuration to be retrieved.
The main input fields are:
- The issuer ID
- The issuer product external reference for which the configuration details are requested.'
parameters:
- name: WL-Correlation-ID
in: header
required: false
schema:
type: string
- name: WL-Origin
in: header
required: false
schema:
type: string
- name: WL-Username
in: header
required: false
schema:
type: string
- name: issuerId
in: path
description: Issuer ID
required: true
schema:
type: string
- name: issuerProductExternalReference
in: path
description: Issuer Product External Reference
required: true
schema:
type: string
responses:
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestErrorApiResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedErrorApiResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenErrorApiResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundErrorApiResponse'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerErrorErrorApiResponse'
'502':
description: Bad gateway
content:
application/json:
schema:
$ref: '#/components/schemas/BadGatewayErrorApiResponse'
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponseEntityBrandAdviceConfig'
security:
- basic: []
deprecated: true
patch:
tags:
- Contract
summary: Update brand advice algorithm configuration by issuer product external reference (beta)
operationId: modifyBrandAdviceConfigByIssuerProductExtRef
description: 'The API allows a list of pre-defined parameters (attributes) of a brand advice configuration to be updated.
The main input fields are:
- The issuer ID
- The issuer product external reference for which configuration updates are required.
- Parameters to be updated
The brand advice configuration parameters can be retrieved using the Retrieve brand advice detail API.
The updated parameters should be consistent with the initial product configuration defined in the system (e.g., the profiles to be updated must exist in the system to be found).'
parameters:
- name: WL-Correlation-ID
in: header
required: false
schema:
type: string
- name: WL-Origin
in: header
required: false
schema:
type: string
- name: WL-Username
in: header
required: false
schema:
type: string
- name: issuerId
in: path
description: Issuer ID
required: true
schema:
type: string
- name: issuerProductExternalReference
in: path
description: Issuer Product External Reference
required: true
schema:
type: string
responses:
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestErrorApiResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedErrorApiResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenErrorApiResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundErrorApiResponse'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerErrorErrorApiResponse'
'502':
description: Bad gateway
content:
application/json:
schema:
$ref: '#/components/schemas/BadGatewayErrorApiResponse'
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponseEntityModifyBrandAdviceConfigResponse'
security:
- basic: []
deprecated: true
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ModifyBrandAdviceConfigRequest'
servers:
- url: https://sbx-wlip.api1-eu2.psapigateway.preprod.giservices.io/card-issuing/api/v2
/issuers/{issuerId}/contracts/create-consumer-contract:
post:
x-wl-idempotent: true
x-wl-lra-operation: true
x-wl-lra-interface: true
tags:
- Contract
summary: Create consumer contract
description: "The Create Consumer Contract API allows the creation of a new consumer contract already signed by the customer or not, and its first card(s), either with physical support (plastic) or not (virtual card).\n\nPre-conditions: \n- The request correlation ID, if provided by the issuer, must be unique. \nIn case of re-use of a request correlation ID from an existing contract, the system will return the data from the existing contract (e.g., if the API call returns a \"time-out“ response, the same request correlation ID can be provided to retrieve contract data from WL system for further checks).\n Idempotency is managed by the API; that is, if the request with the same WL-Correlation-ID is sent multiple times, it will be executed only once. The response will be retrieved directly from our system.\n- An active consumer product exists with a physical or pure virtual card.\n\nThe issuer can request the creation of a new consumer contract from the provided active consumer product with additional information such as\n- the contract is already signed (status as \"SIGNED\") by the customer or not (status as \"AWAITING_SIGNATURE\")\n- The issuer can provide a list of new customers or the references to existing customers in Worldline system\n\nAs a result, the contract is created\n- with the provided status by the issuer: either the contract is already signed (its account hierarchy is immediately in \"ACTIVE\" status) or not (its account hierarchy is in \"AWAITING_SIGNATURE\" status)\n- with each card and its status set to created or active, depending on the card product configuration \n- with related card order to produce the physical card, if plastic required and the pin mailer order if required. \n\nThe API response returns newly created contract information such as\n- the new contract itself\n- the different identifiers such as the contract reference, contract owner, account owner, add-on, card contract, card and cardholder. Each identifier is composed of the Worldline internal reference and the external reference (is not present if not provided by the issuer and not generated by any algorithm) \n\nThe references are used to: retrieve/update/close contracts, list accounts for a contract, retrieve the contract owner for a contract, retrieve/update legitimacy documents, etc.. "
operationId: createConsumerContract
parameters:
- name: WL-Correlation-ID
in: header
required: false
schema:
type: string
- name: WL-Origin
in: header
required: false
schema:
type: string
- name: WL-Username
in: header
required: false
schema:
type: string
- name: filter
in: query
description: Filtered Fields
required: false
style: form
explode: true
schema:
type: array
items:
type: string
- name: issuerId
in: path
description: Issuer ID
required: true
schema:
type: string
responses:
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestErrorApiResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedErrorApiResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenErrorApiResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundErrorApiResponse'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerErrorErrorApiResponse'
'502':
description: Bad gateway
content:
application/json:
schema:
$ref: '#/components/schemas/BadGatewayErrorApiResponse'
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponseEntityCreateConsumerContractResponse'
security:
- basic: []
deprecated: false
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateConsumerContractRequest'
servers:
- url: https://sbx-wlip.api1-eu2.psapigateway.preprod.giservices.io/card-issuing/api/v2
/issuers/{issuerId}/contracts/{contractReference}/sign:
post:
x-wl-idempotent: true
x-wl-lra-operation: true
tags:
- Contract
summary: Sign Contract
description: "The API allows to \n- sign a contract, identified by the Issuer Contract external reference or the Contract reference (the contract must be in \"awaiting signature\" status)\n- request to activate all cards within this contract simultaneously\n\nAs a result :\n- the contract is signed\n- the accounts within the contract are activated\n- the cards within the contract are activated if requested\n- the contract can be updated"
operationId: signContract
parameters:
- name: WL-Correlation-ID
in: header
required: false
schema:
type: string
- name: WL-Origin
in: header
required: false
schema:
type: string
- name: WL-Username
in: header
required: false
schema:
type: string
- name: filter
in: query
description: Filtered Fields
required: false
style: form
explode: true
schema:
type: array
items:
type: string
- name: issuerId
in: path
description: Issuer ID
required: true
schema:
type: string
- name: contractReference
in: path
description: Contract Reference
required: true
schema:
type: string
responses:
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestErrorApiResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedErrorApiResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenErrorApiResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundErrorApiResponse'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerErrorErrorApiResponse'
'502':
description: Bad gateway
content:
application/json:
schema:
$ref: '#/components/schemas/BadGatewayErrorApiResponse'
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponseEntitySignContractResponse'
security:
- basic: []
deprecated: false
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SignContractRequest'
servers:
- url: https://sbx-wlip.api1-eu2.psapigateway.preprod.giservices.io/card-issuing/api/v2
/issuers/{issuerId}/contracts/external-contracts/{issuerContractExternalReference}/sign:
post:
x-wl-idempotent: true
x-wl-lra-operation: true
tags:
- Contract
summary: Sign Contract by external reference
description: "The API allows to \n- sign a contract, identified by the Issuer Contract external reference or the Contract reference (the contract must be in \"awaiting signature\" status)\n- request to activate all cards within this contract simultaneously\n\nAs a result :\n- the contract is signed\n- the accounts within the contract are activated\n- the cards within the contract are activated if requested\n- the contract can be updated"
operationId: signExternalContract
parameters:
- name: WL-Correlation-ID
in: header
required: false
schema:
type: string
- name: WL-Origin
in: header
required: false
schema:
type: string
- name: WL-Username
in: header
required: false
schema:
type: string
- name: filter
in: query
description: Filtered Fields
required: false
style: form
explode: true
schema:
type: array
items:
type: string
- name: issuerId
in: path
description: Issuer ID
required: true
schema:
type: string
- name: issuerContractExternalReference
in: path
description: Issuer Contract External Reference
required: true
schema:
type: string
responses:
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestErrorApiResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedErrorApiResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenErrorApiResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundErrorApiResponse'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerErrorErrorApiResponse'
'502':
description: Bad gateway
content:
application/json:
schema:
$ref: '#/components/schemas/BadGatewayErrorApiResponse'
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponseEntitySignContractResponse'
security:
- basic: []
deprecated: false
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SignContractRequest'
servers:
- url: https://sbx-wlip.api1-eu2.psapigateway.preprod.giservices.io/card-issuing/api/v2
/issuers/{issuerId}/contracts/external-contracts/{issuerContractExternalReference}:
get:
tags:
- Contract
summary: Retrieve contract by external reference
operationId: retrieveContractByIssuerExtRef
description: 'This API allows retrieving a particular contract from its reference or its issuer external reference.
The API response contains contract information such as:
- contract identifier with the contract reference and the issuer external contract reference if previously provided
- product change information if any, such as its current status (scheduled, done, cancelled), new product, new contract if it exists
- embedded fields if requested such as list of all customers or identifiers linked to this contract (e.g. contract owner, root account owner, cardholder(s)), card contracts'
parameters:
- name: WL-Correlation-ID
in: header
required: false
schema:
type: string
- name: WL-Origin
in: header
required: false
schema:
type: string
- name: WL-Username
in: header
required: false
schema:
type: string
- name: relatedResourceIdentifiersOnly
in: query
description: "If relatedResourceIdentifiersOnly is true, the API returns only identifiers related to the embedded resources (for example, if embedded fields cardContracts.cards are requested and relatedResourceIdentifiersOnly is true, only cardContractIdentifier in CardContract and cardIdentifier in Card will be returned). \nIf relatedResourceIdentifiersOnly is false, the API returns all resource information (for example, if embedded fields cardContracts.cards are requested and relatedResourceIdentifiersOnly is false, all information in CardContract and all information in Card will be returned).\nBy default, relatedResourceIdentifiersOnly is false."
required: false
schema:
type: boolean
default: false
- name: relatedResourceBaseInfoOnly
in: query
description: 'relatedResourceBaseInfoOnly (cannot be used with relatedResourceIdentifiersOnly):<br/><br/>If relatedResourceBaseInfoOnly is true, the API returns only main information related to the embedded resources (for example, if embedded fields accounts and cardContracts are requested and relatedResourceBaseInfoOnly is true, only main information of Account and Card Contract will be returned).<br/><br/>The main information is as follows :<br/><br/>- For Account: accountIdentifier, root, status, accountOwnerIdentifier and accountGuarantorIdentifier<br/>- For Card Contract: cardContractIdentifier, cardHolderIdentifier and status<br/>- For Card: cardIdentifier, pan, maskedPan, expiryDate, panSequenceNumber, status, externalStatus, panReference and blockingReason<br/>- For Customer: customerIdentifier, courtesyTitle, firstName and lastName<br/><br/>If relatedResourceBaseInfoOnly is false, the API returns all resource information (for example, if embedded fields accounts and cardContracts are requested and relatedResourceBaseInfoOnly is false, all information in Account and all information in CardContract will be returned).<br/><br/>By default, relatedResourceBaseInfoOnly is false.'
required: false
schema:
type: boolean
default: false
- name: filter
in: query
description: Filtered Fields
required: false
style: form
explode: true
schema:
type: array
items:
type: string
- name: issuerId
in: path
description: Issuer ID
required: true
schema:
type: string
- name: issuerContractExternalReference
in: path
description: Issuer Contract External Reference
required: true
schema:
type: string
- name: embed
in: query
description: Embedded Fields
required: false
style: form
explode: true
schema:
type: array
items:
type: string
enum:
- advertisementFlags
- deliveryChannel
- legitimacyDocuments
- contractFees
- accountIdentifiers
- accounts
- cardContractIdentifiers
- cardContracts
- dataAnalysisFlags
- contractCustomerIdentifiers
- contractCustomers
- addonSubscriptions
responses:
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestErrorApiResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedErrorApiResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenErrorApiResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundErrorApiResponse'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerErrorErrorApiResponse'
'502':
description: Bad gateway
content:
application/json:
schema:
$ref: '#/components/schemas/BadGatewayErrorApiResponse'
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponseEntityContract'
security:
- basic: []
deprecated: false
patch:
tags:
- Contract
summary: Update contract by external reference
operationId: modifyContractByIssuerExtRef
description: 'The API allows to update certain data of an existing consumer contract, identified by the Issuer Contract external reference or the Contract reference :
- allowed advertisement channels (flags)
- allowed data analysis
- the issuer branch code (e.g. bank agency in charge of this contract)
- allowed delivery channel for possible letters
- if the membership fee should be reimbursed when a card contract is closed
- how many cards should free of membership fee and/or account setup fee
- if the primary card should be considered as the first to be free for membership/account setup fees or if only additional cards should be considered
- if both membership and account setup fees should be waived during contract lifecycle (can be changed at any moment)
- the membership fee anniversary date can be changed
- pass-through data can be updated (specificFields)
As a result the contract is immediately updated with provided data in our system.'
parameters:
- name: WL-Correlation-ID
in: header
required: false
schema:
type: string
- name: WL-Origin
in: header
required: false
schema:
type: string
- name: WL-Username
in: header
required: false
schema:
type: string
- name: filter
in: query
description: Filtered Fields
required: false
style: form
explode: true
schema:
type: array
items:
type: string
- name: issuerId
in: path
description: Issuer ID
required: true
schema:
type: string
- name: issuerContractExternalReference
in: path
description: Issuer Contract External Reference
required: true
schema:
type: string
responses:
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestErrorApiResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedErrorApiResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenErrorApiResponse'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundErrorApiResponse'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerErrorErrorApiResponse'
'502':
description: Bad gateway
content:
application/json:
schema:
$ref: '#/components/schemas/BadGatewayErrorApiResponse'
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponseEntityM
# --- truncated at 32 KB (643 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/wordline/refs/heads/main/openapi/wordline-contract-api-openapi.yml